Collaboration?

Posted By: swingtraderkk

Collaboration? - 10/25/13 12:24

Hi all,

It strikes me as very inefficient that we are all trying to develop profitable strategies independently. Reading about strategies in books or online forums and trying to combine them, tweak them, code them, no doubt repeatedly coding similar strategies that do not work or are profitable but not tradable - too low return, too high drawdown, not enough trades etc.

I know that we are all hoping to secretly code the infinite money making script, but realistically what are our chances and how long is that going to take? If we find it it is unlikely to work forever, and we will have to find a new one.

I have already reached a point where I doubt I'll ever have the time or skills to test the ideas I have. Certainly not with a family and a day-job.

Is there anyone else out there prepared to share and collaborate?

I'm not sure how this should be done, but I do know that virtual collaboration seems to work well in the open source programming world.

Is anyone interested?

Does anyone have ideas on how to organize ourselves? share workloads? find tasks for people with different levels of trading, coding, testing & research skills?

My idea is that we copy the structure of successful hedge funds, who no doubt have research, design, test, & operations units, but this must have a planning and decision making core that everyone is happy with and it possibly needs a limited membership to preserve some element of secrecy - even jcl doesn't share z strategies code ;-)

I'm sure there are other looser and tighter models, and would appreciate a chance to discuss them.
Posted By: dusktrader

Re: Collaboration? - 10/25/13 14:02

Hey swingtraderkk, thanks for bringing up this topic.

I just wanted to say that I agree, collaborating might be a great way to keep us all from reinventing the wheel. At the very least, I want to share what I have learned so far, and then see if others have input or improvements.

I'm a n00b so I'm sure there are better programmers than me, but I think the best way to find out and hone my own skills is to look at what others would. At the same time I'm sharing ideas, I could get new ideas from others that share.

I am in the middle of a refining process for building bots, and I'm ready to start sharing. I know that I'm "ready" because for the first time now, I feel comfortable to let Zorro trade with real money. Up until this point, I don't think I fully trusted myself. I've never had trust issues with Zorro itself, it's more my own coding abilities, or lack thereof.

My philosophy thus far has been that a successful tradebot should not be ENTIRELY about "the edge" (ie, the logic of the trading itself). Rather, my hypothesis has been that other factors, such as risk controls, are MORE important than even the edge. I'm not convinced that "no edge" could be profitable (after all, we're not gambling here) but I wanted to prove to myself that a slight/marginal edge could be developed into something worthy.

Therefore, so far I have not yet focused at all on "the edge" or tried to use my energy toward coding any type of holy grail (I'm using mostly just Workshop examples so far). Instead, I've studied how Zorro works, done a lot of testing iterations/refinements, and come up with a set of tools that help create (any) bot that I could be comfortable to trade with. For example, there are certain things I noticed the bots doing that I did not like, so I wrote various functions, etc. that could weed that stuff out. Collectively together I call these functions and routines my "toolbox" and this is an infrastructure that will evolve and be used in every bot I build.

Anyway, back to the philosophy... I mentioned that I had no focus on the edge -- well I took all these toolbox items and several refinements of process, and came up with a new breed that I'm calling a slop-bot. The core logic of this bot is a very simple moving-average crossover -- that's it. But when combined with the infrastructure of my toolbox, and using what I've learned about optimization and risk control... I honestly feel that it has evolved into something statistically worthy.

And that's enlightening to me... because if I can take slop and turn it into something tasty... then I can only imagine how good a tradebot would be if it started with a GOOD trading edge. The mechanics of the edge I think could be ripped from anywhere... there are a lot of successful positive-expectation systems out there. But to be successful, you have to look at the big picture. I am beginning to believe that the edge is only a SMALL part of what makes a bot successful.

I want to share my process, as well as the entire bot and tools. I am trying to decide the best way to do this, because I want to hear feedback from others at every step of the process. For that reason, I'm kindof thinking to start multiple threads to keep the steps separate (but I don't want to overrun the forum). I could also try to put it in one thread, but I don't want the earlier steps to be glossed-over as as result. The process I'm using as been refined at least 4 times now, and I'm sure it will be refined even further.

My goal is be able to take ANY edge logic, and pop it right into this design process. It's a very mechanical step-by-step evaluation process. At the end, I'd like to have a worthy bot that can be added to my legion. For diversification, I plan to start core-edge-logic with a flavor, and that would be carried throughout the process. For example, the MA-crossover is a simple trendfollower. But next I might build a mean-reversion bot.
Posted By: DMB

Re: Collaboration? - 10/25/13 14:41

The Bot concept sounds very interesting and promising. I have many edge ideas that are worthy, but my programming skills and general code infrastructure let me down. Anyway, I will help anyway I can.
Posted By: Sundance

Re: Collaboration? - 10/25/13 15:15

It seems we are only a hand full of people here being active. I think it will be really difficult to make a project together as a team. Sharing strategy's is one thing building them together. Puuuhhhh....

Till now I had not programmed that much in Zorro. But I wanted to change that right now. So if there is a chance to help, i will.
Posted By: DdlV

Re: Collaboration? - 10/26/13 03:43

Thanks swingtraderkk, & others. Just a quick note that I definitely like the idea of not reinventing the wheel(s). laugh But there are definitely issues. Besides those pointed out so far, there are different priorities, time available, definition of the group ("team" may be going too far?), mechanics of working together, expectations of trust, compatibility with Zorro's objectives, and so on - a fair bit to bite off...
Posted By: DMB

Re: Collaboration? - 10/26/13 04:46

DdIV makes good points. I have worked in many engineering teams, but never in an online software collaboration team. Also it is pretty certain to say that skill levels vary greatly in this group. And I for one am at the lower end of the scale.

I have thought about it a little bit and would like to suggest a simple model. It is a little rigid, but for starting out it could result in working strategies that people can later alter to suit their individual objectives. Let's assume that the bot concept that dusktrader is developing works out very well. I assume that this code provides all the surrounding infrastructure required to a take full advantage of an 'edge.'

So this leaves the development of out individual ideas of an edge. First, we list all the different areas of trading that we want to test. For example, MA cross, candle patterns, Larry Williams patterns, Turtle / Donchian, range breakout, some idea someone read in a book or website. There can't be many more than a couple dozen. Then each of us take an area that we like, code the edge and apply the bot tools. Maybe we have a private thread for each of the area of trading. That way the person looking at that edge can report to the group and get suggestions. Hopefully, at the end of the thread the person is able to make a post that has code, results summary and other comments.

Finally, people can make suggestions for improving the bot infrastructure code.

The wheel I am trying to avoid each of us inventing is the bot code that covers risk management, portfolio trading, and whatever else is common to every system. Then the collaboration aspect means that we each aren't wasting out time trying to code a single trading concept. And if someone reviews someone else's work, particularly an abandoned concept, and has a spark of genius, then they can continue where the other person left off.

Will have to decide on a few overall concepts, like the risk sizing / position sizing strategy. JCL made public the section of code in the Zs that covers this. Do we want to use this model or have options for others. We may want a second positions sizing code that simply makes 1 micro lot trade size for live testing for a few months.

Also keeping a running list of things to check as we are developing code would be handy. Obviously the compiler takes care of syntax. But common logic errors, setting the right flags such as Weekend, doing a final test with the Tick flag before posting to group, etc.

Summary:
1. We use the bot code as the basic common system infrastructure.
2. We list the areas of trading / edges that we want to investigate.
3. One person takes an edge, creates a thread, codes the edge with the bot code and reports back to the thread.
4. An overall thread is maintained with tips and tricks. Every once in a while someone should summarise the tips and tricks, maybe into an ongoing PDF. Includes the edge areas and the person who is currently working on it.

Actions:
1. Allow dusktrader time and opportunity to prove his bot concept. Possibly some discussion and revision will be required. If the group is happy to proceed on this basis, then….
2. Create a private thread and flesh out the details of how this will work and what edge areas are to be investigated. At this point we will need a project leader type person to manage this overall effort. This is simply updating a common PDF with group decided items. The person will need to have a clear vision for the initiative. Hence a champion to keep the idea alive during times when people are distracted with the rest of their life.
Posted By: Sundance

Re: Collaboration? - 10/26/13 11:59

As you sad DMB; we really should keep it simple. Today you can do so many things to collaborate and use data together with the help of even more tools. But you can be overwhelming and confusing, so its more a showstopper.

One of the problems is to keep the source in one place. Always up to date and with revisions in the background. For the dynamic part of the code we need another place like sourceforge cause I can't see something like a repository here in the forum (Could be that jcl has an idea). I agree that we develop some code which should be part of every script like (money management, trade management. Using Zs risk/position sizing scripts will surely be the way to go till we see a chance of improving a strategy any further when changing some of the management code.

Okay dusk. Hope to see some bot code :-)
Posted By: 3DCat

Re: Collaboration? - 10/26/13 12:37

ok. Count me in.
Don't know how much i can contribute or profit from that - but it sounds ok to me to share what i've done so far for a little help.

Perhaps we shouldn't take this too far also: perhaps a private section with threads like "Discuss my strategy I've developed with ideas from XY's work" suffices our needs.

The best parts will eventually evolve into something we can trade with.
Posted By: blaub4r

Re: Collaboration? - 10/26/13 15:22

I am also interested in this kind of collaboration.
I have few trading experiences and knowledge but I am some good at coding so I would opt for this task.
Posted By: dusktrader

Re: Collaboration? - 10/26/13 15:45

One thing I've learned, when working on and refining the design process, is that slight changes can cause seemingly large swings in the annual return and other metrics. For that reason, I'm really not worried at all in sharing all my findings. I still have a lot to learn and was hoping by just laying everything out on the table, maybe it can inspire others to think up new ideas or submit more tools and improvements.

I've tried to assemble the tools in a skeleton way where the core trade logic can just be plugged in. I sometimes have to rewrite logic to fit in this box, because my goal is to try to keep the tools/infrastructure separate. That way I'm not reinventing the wheel each time, only changing the limited trade logic.

Also consistency is very important: I need the test/design process to be as consistent as possible so I can compare bots at the end, to see which might be more worthy vs others.

I've put some standards in my test procedure to try to make sure I don't shoot myself in the foot. For example, I design only with flat lots and then add margin only at the very last stage. This is the only way to know if the logic really works vs chance. Also I try to
incorporate everything I've learned about avoiding overfitting. I will explain the reasons behind each design step in regard to that. With that said, I'm still learning and researching so feedback positive-or-negative is welcome.

In the final stages, the trader has an opportunity to decide themself if the bot is worthy for a live account. They have comparison metrics between this and other bots developed with this process. And perhaps on some level, comparison with Z strategies (an expert benchmark, for example). My bots don't come close to the quality of the Z bots I think, but I prefer to have full understanding of how the bot works behind the scenes. (Sidenote: I think that is also the intent of the Zorro developers.) If the metrics are satisfying, then the process allows the trader to simulate how it would perform in their right-size account, and then gain confidence starting with a small live account.

In my legion example, and the way I intend to implement - the trader would unleash the first bot on an appropriate sized account. Then the workflow shifts to design (of the next legionbot) + monitoring (of the trading bots, to make sure they are executing as expected) + evaluation (of the trading bots as compared to testing spec, to see if they should be replaced or decommissioned).
Posted By: DMB

Re: Collaboration? - 10/27/13 01:10

You seem to have a strong and clear vision for what you are creating. Kudos.

I am excited about the idea of simplifying the creation process to just dropping edge code into a template. I am not so naive as to think it will be that easy, but it is a nice goal to have.

I envisage this project having iterative phases. In the first phase we get everyone comfortable with a bot code. Next we work collaboratively to stuff it with, say, 10 or 20 tradable algos. People can then start live testing and trading and generate some money. Then in the next phase we review the bot code possibly to improve, possibly to meet different objectives. Then stuff the new bot with 10 or 20 algos. Rinse and repeat.

If someone doesn't feel comfortable trading with a particular algo, they remove it or switch it off.

So I guess I am saying take your time to get your bot code the way you want it. Then the group will do a review. After people have worked with it for a few months I am sure they will want to make changes, which we'll do all at once in the next phase.

If the bot code is not suitable for a project like this, or too many people don't believe they can work with it, then I don't think my suggested collaboration model will with a more opened ended coding style. It would just be a 'swap meet' which is effectively what the forum is at the moment.
© 2024 lite-C Forums