Systematic Traders - How many systems do you run?

Discussion in 'Strategy Building' started by gmst, Aug 6, 2012.

How many systematic strategies do you run concurrently?

  1. <3

    35 vote(s)
    50.7%
  2. 3-5

    9 vote(s)
    13.0%
  3. 6-8

    3 vote(s)
    4.3%
  4. 9-12

    6 vote(s)
    8.7%
  5. >12

    16 vote(s)
    23.2%

  1. I only see the market in terms of sentiment. Sentiment is binary: dominant and non dominant.

    The definition of dominant is from the Right Trend Line towards the Left Trend Line.

    Conversely, blah blah...

    Suppose, the market is in a lateral movement (meaning a shaddow of a prior high volatility bar); this drift is from the LTL towards the RTL. It fits the nondominant definition above.

    All thrends have 3 parts. : two dominant and a nondominant in between.

    It is important that a system be complete. If so, it is certain.

    If certain, then you always know that you know. This is what separates the bettors (CW) from the non bettors. Betting involves risk so betting is improper.

    Now, to your incisive question.

    People who trade always know how solid the ground they walk on IS.

    Behavioral Finance lays it out.

    If a person is at risk and betting (CW) he feels the four price drivers at work below his neck. this makes rational thinking impossible above his neck where there is found a non differentiated mind. A mind with no referential touch stone for what he doesn't see.

    His irrational behavioral response is a price driver.

    At that time a person who knows that he knows uses this advantage to keep making money until the contemporary price segment comes to a close (where he reverses).

    Good question. "Price drivers" is just now comming into the market slang.
     
    #61     Aug 17, 2012
  2. gmst

    gmst

    That Obama and Merkel visualization can make for a good cartoon :D

    Your example proves that position size of a trade in a strategy say S4 has to depend on currently existing portfolio. So, my statement was wrong. Thanks for giving a counter-example. :)

    After a lot of thought :), this problem can be solved as below:
    Step 1: Determine individual position size algorithms for each strategy.
    Step 2: Create either the correlated or independent boolean table with 0/1 for strategies either trading or not trading for each day.
    Step 3: Re-sample using time priority. So, if some strategies trade primarily in the morning, for any given day, first sample trades of those strategies, then sample the strategies that trade primarily later in the day. Position size of the trades resulting from later strategies will depend on the risk in the portfolio that accrues from the strategies that trade early in the day.

    You must have a column vector to store maximum different risks you are willing to take. E.g. if you trade only FX, the column vector should have risk limits for dollar, euro, yen, aud etc.

    However, if you trade a more diversified portfolio, then you will need a correlation matrix between different risks. So, since ES and CL are positively correlated, say individual risk limit is 30 contracts of ES and 20 contracts CL limit, but if you have both the exposures then maybe just 15 ES and 10 CL limit.

    This approach will ensure that your weights w1, w2,... to different strategies are not constant rather vary from sample to sample - which is what it should be. I think this is the general approach that will do by far the most accurate backtesting of resamples. Happy to hear your thoughts!

    Problem becomes more challenging when you have to allocate between multiple strategies that trade mostly during overlapping time period say in morning session. In this case, you cannot sample using time prioritization. So, if you enter S1 and S2 generates a signal 30 minutes after S1, you might have to skip the S2 signal because of margin/risk limits. Or, consider if trades generated in S1 and S2 are on same symbol but are opposite in direction, you might want to reverse the trade generated in S1.

    At least in the case when you have a limited number of strategies say < 10 or so, this problem can be solved by constructing a very case-specific tailor-made intricate chain of rules. I would first rank all the strategies, then have a lot of If -> Then -> Else conditions to formulate the strategy prioritization rules - which will be invoked to decide on position sizing, given the current portfolio.

    The approach in the above paragraph of highly customizable intricate strategy preference rules is especially suitable for my kind of trading portfolio - highly selective low frequency intra-day trades. If someone is trading hundreds of stocks, then a very different and generic position sizing algorithm will be needed.

    Again, there will be lots of changes in this approach over-time. But for the time being, I think this is most suitable for my work - unless someone can challenge this approach on some point or suggest something better.
     
    #62     Aug 17, 2012
  3. gmst

    gmst

    Hi, your suggestion seems much simpler than what I have proposed in my post above this reply. However, I am not completely following you. If you have time, can you please write a psuedo code for what you suggest? And probably illustrate with an example of say 3 strategies and 10 trades. That will be really helpful.
     
    #63     Aug 17, 2012
  4. gmst

    gmst

    Following is the PM that sle sent me. Posting here with his permission and my response following it. Thanks!

    Thanks for your comments. Great points. If I understand correctly, both of us are conceptually tackling this problem in an identical fashion. We differ in implementation. You are adopting an optimization to make the portfolio factor neutral after each strategy fires a trade on a given day, whereas I was suggesting an intricate chain of rules on deciding how much weight to assign to the new trade.

    Its obvious that for larger portfolios say an equity book over 30 symbols and possibly vol/credit and even FX thrown in, your approach is the only feasible approach. My approach doesn't stand a chance.

    However, how do you deal with following problem in your implementation? If you have 10 trades a day that happen at different times, you must do the optimization after each trade fires. This re-optimization will lead to changing position size for all the trades that are in current portfolio. E.g. first trade buys x shares of Citi, after 9 trades fired by other strategies, you 'might' have to re-balance number of C shares potentially 9 times. You might have to rebalance 2nd trade size 8 times and so on. So, potential number of rebalances per day is factorial 9 times. I agree you will have a minimum % change in positionsize required after which only you will actually do rebalancing, but still this approach might mean at least 50 to 200 rebalances per day on a portfolio that trades say 10 times a day.

    Every time you are rebalancing a position size that resulted from a particular strategy, you are modifying the execution of that particular strategy. So, the end result of this would be that your realized edge would change substantially from the calculated edge. Think of original strategy as buying 1000 shares of C and closing after 3 hrs. Compare it to what might actually happen: you buy 1000 C, then sell 300 after 20 minutes, then sell 200 after 30 minutes, then buy 400 after 50 minutes and finally exit after 3 hrs. You will end up buying and selling when other strategies fire and most likely the edge from original strategy would be gone completely. Also, you pay transaction costs after each rebalancing.

    The only way to deal with this problem is to fix the positionsize of the trades that have already fired for a day. So, once trade#2 fires, don't change the position size of trade#1, rather just decide on position size of trade#2. Once trade#3 fires, don't change positionsize of trade#2 and #1. So on and so forth. You might want to hedge with some market portfolios to get risk limits in order after each trade though - this should be possible imo.

    Under my proposed implementation, when you have an intricate rule substructure, intuitively it will be possible to minimize the number of extra transactions - at least till number of trades in a day is small - like upto 10 trades a day. Also, it will be possible to rank different systems using their edges and use one system over another when they give conflicting results. You might say positionsize rebalancing after optimization would achieve the same result under your implementation also - in the sense that it will keep the stronger system's position and discard the weaker system's conflicting position. The difference is -> optimization between conflicting signals will just give the position sizing result which is 'most correct on average', whereas defining an intricate ruleset of priority will allow you to choose S1 over conflicting S2 under a variety of different circumstances. E.g. S1 fires long ES, and then S2 fires short ES. You might want to change your position from long to short if your S1 position has achieved >60% of its average profit. In other cases, you might want to continue with S1 long position and discard S2 short position. Optimization won't be able to make such case-specific decisions. Do you think I make sense?

    Note: My example above with 1000 C shares would be valid only if you are optimizing for factor neutrality after each strategy fires a trade. However, if you are optimizing after every day has passed, then my example is wrong. But then your backtesting is not accurate.

    So, my Question is:
    1. Are you optimizing for factor neutrality while maximizing returns after each trade or are you optimizing after each day in your sampling?
    2. Are you running this methodology for backtesting or do you use this only for live trading?
     
    #64     Aug 17, 2012
  5. hoppla

    hoppla

    If you don't mind me asking, do you use "physical/ tangible" risk factors or latent ones (or a combination of both)?
     
    #65     Aug 18, 2012
  6. Thanks for this algorithm JCL.

    By the way, I would like to apologize to you like I promised to someone for attacking you but you also have to admit that you have talked very harsh about me in this forum by saying that I talk about bizarre things.

    I think you are a great guy and your knowledge of math and trading is excellent.
     
    #66     Aug 18, 2012
  7. gmst

    gmst

    Bill, thanks for adopting this civil tone. Much appreciated. I suggest you approach the moderators to delete the earlier attacking posts you made in this thread. This topic of creating a portfolio of systems is a hard problem - a clean thread will make it much easier to follow the thoughts and multiple methodologies. I believe the discussion in this thread is even hard to find in many books. If you can do that, that will be gentlemanly behavior. Cheers.

    Edit: I am sure jcl can also ask mods to delete any out of the character post he made in the heat of the moment. Thank you guys.
     
    #67     Aug 18, 2012
  8. Thanks gmst. This has been a hard period for everyone in several fronts, from markets to weather. I think this forum is useful and we have to support the moderators in keeping it clean of attacks, etc. My apologies to all for the sidetracking. JCL is a good man I think and he knows a lot we can learn from. I will ask the moderatos to delete the posts. I hope others will do the same.
     
    #68     Aug 18, 2012
  9. sle

    sle

    I have an interesting question. The ones of you who run multiple systems in different asset classes all by yourself - how do you handle the IT/data and other organizational aspects? How many computers do you have? Do you run your own data DB and data collection?
     
    #69     Aug 18, 2012
  10. jcl

    jcl

    Wow, people are so kind with me lately. I wonder if I've won the lottery somewhere without knowing it.

    I accept your apology, and also apologize for my harsh remarks, which were not particularly directed against yourself but also against the business and advertising methods of a certain software. I am glad that future discussions can now be more civil and constructive.
    I have all systems and assets put together in a single strategy, so I run them on only two computers - one for life trading and one for the same strategy on a demo account. The price data is collected by an event handler.

    The broker API I'm using does not support several instances on the same PC - otherwise it tends to crash. Therefore, without a compound strategy or some platform that runs many strategies simultaneously, I'd need indeed 100 computers for 100 strategy/asset combinations.
     
    #70     Aug 19, 2012