Home > General Topics > Journals > Fully automated futures trading

Fully automated futures trading

  1. Here's my trading journal. I've been running this system since April last year. It's fully automated, futures trading, with a bias towards trend following.

    Here is the p&l to date. I will do a more thorough analysis after a full year

    [​IMG]

    Current positions (hope the codes make sense):

    AEX 201502 1
    ASX 201503 1
    AUD 201503 -1
    AUS10 201503 1
    AUS3 201503 2
    AUSSTIR 201603 1
    BOBL 201503 5
    BTP 201503 2
    BUND 201503 1
    CAC 201502 2
    CORN 201512 -1
    CRUDE_W 201512 -1
    EDOLLAR 201806 3
    EUR 201503 -1
    EUROSTX 201503 -9
    FEEDCOW 201503 1
    FTSE 201503 -2
    GAS_US 201504 -1
    GBP 201503 -1
    JPY 201503 -1
    KR10 201503 1
    KR3 201503 5
    LIVECOW 201510 -1
    MXP 201503 -1
    NASDAQ 201503 1
    SHATZ 201503 23
    SMI 201503 1
    SP500 201503 1
    US10 201503 1
    US2 201503 3
    US5 201503 1
    V2X 201503 -1
    VIX 201503 -1
    WHEAT 201512 -1


    More information to follow. I'll try and answer any questions.
     
  2. That's a lot of current positions. How many are in negative territory ?
    Which platform are you using ?
     
  3. Just to explain the two graphs. The first graph is pure hard cash profit. However during this period I was experimenting with how I dealt with profits (I always scale down risk for losses, no exceptions). To begin with I rolled them up, adding them to my capital base. Then I decided to stop doing this, and keep a fixed maximum amount of capital at risk. Subsequently at the beginning of the year I decided to lower my risk target to a more conservative 25%.

    If I extract the effect of these changes and assume I stuck to the same notional capital and risk target then I get the second graph. If you were to invest in a stable version of what I did you would get the second graph, compounded. So the second graph is like a log scale graph of fund performance. You can see that the variability is more constant.

    Forgot to add I also have some stock

    DCG.L 12,411 shares
    IAP.L 20,000 shares
    IDVY.L 16,718 shares

    The short positions in Eurostoxx and FTSE 100 (9 lots and 2 lots respectively) are to hedge this stock exposure - they are not actively traded. So a (very small) fraction of my p&l is coming from this minature equity neutral portfolio.

    Effectively I decided to fund my account with stock and some cash, rather than all cash, to avoid having to pay capital gains tax. But I didn't want the account value to be driven by stock valuation, so I've hedged out the stock exposure.

    My current expected risk on this portfolio is £5,500 per day versus a long run average of £6,250 (£100,000 per year, or 25% annualised on the notional capital of £400,000). The difference reflects the current drawdown of around 5%, and the fact that the average signal is a little weaker than average.
     
  4. I'm using interactive brokers API via Gateway. I use the C++ API in python via swigibpy. More details here http://qoppac.blogspot.co.uk/2013/12/p-margin-bottom-0.html.

    I actually trade about 45 markets so there are a few empty boxes where the signal is too weak.
    I'd have more positions if I could. Diversification is the only free lunch and all that. The main advantage of automated trading is being able to diversify. I spend about 10 minutes a day on the system. If I had double the number of markets I'd spend 20 minutes a day. Capital is the constraint. I could get more markets spread betting, where the minimum sizes are smaller, but spread betting markets are more expensive and I'm wary of OTC exposure.

    To be honest I don't monitor the figure "positions in negative territory". For starters I don't have discrete positions, I don't open a position and then close it at a stop loss, its a continous signal system. I could tell you in theory whether I made or lost money on an instrument over a particular period, but that could be from a combination of being long or short, and would reflect trading around the average position over that period.

    In theory.... I don't actually have that report, though it would be easy to knock something up, so watch that space. I can tell you my biggest winners and losers over the last month if that's of interest:

    Biggest losers (excluding hedging): SMI (now famous black swan event - I wasn't in the currency but the equity hurt some), CRUDE (I trade pretty slow so I've remained short through this slow $6 rebound),

    Biggest winners: AEX, ASX, EUR
     
  5. Looks good.

    In the time frame between Jan 2014 and Jul 2014 the PL advances pretty fast. Maybe you could adjust the strategy in a way that the rest of the months advance at the same pace
     
  6. Hi. Thanks for posting the charts - interesting results. Is this paper trading or real money (I only ask because I've got some great looking paper trading profit charts - but some of the the "blips" would have wiped me out, so when I went live I went with a much more conservative approach - lower risk, lower profit). For example, if you started in July 2014, you'd be 80k down a month later.
     
  7. In the time frame between Jan 2014 and Jul 2014 the PL advances pretty fast. Maybe you could adjust the strategy in a way that the rest of the months advance at the same pace

    The only way to do that would be to boost the Sharpe Ratio whilst keeping the same skew (which would be lovely, if I knew how...) or to make the skew negative (which would improve Sharpe but isn't the kind of trading I like doing). Positive skew trend following will always have periods when it works, and longer periods when it doesn't.

    It's real money.
     
  8. Looks nice. Is this some kind of a "always in" correlation system?
     
  9. Sorry I don't understand what that means.
     
  10. Impressive 350k profit in under one year, what was your starting equity? could you talk a bit about your entry and exit.
     
  11. I guess I was wondering if your method scans all those markets and enters/exits based on inter-relations between each other at approx the same time or is it the same method just applied to each instrument individually.
    Based on your reply I assume its some form of the latter.
     
  12. Yes you're right its applied to each instrument individually, with a cross market risk management overlay (which isn't doing anything right now). There are some cross market signals in there, but they are aggregated up with everything else to a signal for each individual market.
     
  13. If you don't mind me asking further, how many degrees of freedom are being manipulated within each instrument to build up its meta signal. Instances of such degrees could be number of ticks analyzed, bar widths, number of days, sub signals,number of indicators, their thresholds etc. Just wondering about approximate numbers.
     
  14. Todays trade:

    Code:
         code contractid     filled_datetime  filledtrade  filledprice
    2757  KR3     201503 2015-02-11 01:01:56           -1       108.48
    
    Slippage in GBP, for entire trade
    
         code  gbpt_slippage_process  gbpt_slippage_bidask  gbpt_slippage_execution  gbpt_slippage_all_trading  gbpt_slippage_total
    2757  KR3                  -6.16                  3.08                    -6.16                      -3.08                -9.24
    A quick explanation of these tables.

    'gbpt' is just GBP total. Negative slippage means I made money executing, positive I lost.

    A= Mid Price when data grabbed
    B= Mid price when order issued
    C= Bid price when order issued
    D= Traded price

    'Process' is money lost (-ve = gained) between prices A and B, 'Bid-Ask' would be what I would have paid if I had just hit the bid i.e. C - B, 'Execution' is what I pay versus what I would have paid if I'd just hit the bid (i.e. D- C). So in this case I made £9.24, of which two thirds was just a fluke of the price moving in the right direction, and £3.08 from not just issuing a market order.

    Todays p & l: £1,350

    Starting equity was £300K, and as I said earlier I'm now operating with £400K, so I've withdrawn £220K (actual profit to date £320K) to pay taxes, living costs and to reinvest in safer portfolios which I run to to get a steady yield.

    I don't have discrete entry and exit. Each market has a continous signal; when it goes to zero I'll not hold a position. Signals are a mixture of trend following, breakout and Carry (or rolldown/contango if you prefer). The predominance of trend following means positions will tend to be cut when prices move against us, so its an implicit rather than an explicit stop loss.

    I use daily prices to generate the signal (but the most recent price used is the one we've just got, not yesterdays close). Signals vary in their use of time, the slowest uses about a year of data. There are currently four signal 'styles', covering seven signals, and each of those may have different lookbacks, so 17 subsignals. To take a concrete example one of my styles is trend following and one of the signals within that is a break out signal, and I use five different lookbacks for that.

    I'm not sure 'bars' or 'ticks' are relevant to me. I don't know what you mean by 'indicator' or 'threshold', perhaps you could give an example.
     
  15. Good to have the "hedging" stuff! Just don't know how much it would cost and how to do it.
     
  16. 2014 was a very good year for trend following systems, your trading result reflects this. Just wondering, how would your system perform from year 2009 - 2013 on backtest, I know most trend following systems had flat to negative returns during that period. If your system were able to capture profit during that period, you may have found the grail. ;)
     
  17. Am I understanding correctly that your signals are generated from OHLC daily values but after the signal aggregation procedure has taken place and an order is generated the ordered is entered as a limit or stop order based on the bid/ask spread you have at the moment in which the order is about to be placed.
     
  18. Not quite. Here's my raw price data for Eurodollar (just focus on column 1 - date, and column 3 which is price)
    Code:
    2015-02-09 19:22:51   1  97.7325         201806   363320
    2015-02-09 23:00:00   1  97.6900         201806   363500
    2015-02-10 12:20:38   1  97.6550         201806   363501
    2015-02-10 13:29:10   1  97.6525         201806   363528
    2015-02-10 14:43:39   1  97.6725         201806   363550
    2015-02-10 16:15:29   1  97.6775         201806   363594
    2015-02-10 17:33:11   1  97.6725         201806   363625
    2015-02-10 18:54:33   1  97.6975         201806   363649
    2015-02-10 23:00:00   1  97.6800         201806   363840
    2015-02-11 12:18:34   1  97.7125         201806   363841
    2015-02-11 13:31:01   1  97.7050         201806   363870
    2015-02-11 14:53:08   1  97.6975         201806   363896
    2015-02-11 16:24:26   1  97.6800         201806   363938
    2015-02-11 17:42:54   1  97.6725         201806   363969
    2015-02-11 19:01:55   1  97.7025         201806   363991
    2015-02-11 23:00:00   1  97.6700         201806   364161
    2015-02-12 12:00:16   1  97.6325         201806   364162
    2015-02-12 13:01:37   1  97.6400         201806   364191  
    You can see that the prices are a mixture of close and intraday prices. Right now the last price showing is intraday. Also note I have an irregular sampling regime. This is a product of the way my system works.

    I take the last price in each day (not an average, or it messes up estimates of vol)

    Code:
    2015-02-09 23:00:00   1  97.6900         201806   363500
    2015-02-10 23:00:00   1  97.6800         201806   363840 
    2015-02-11 23:00:00   1  97.6700         201806   364161 
    2015-02-12 13:01:37   1  97.6400         201806   364191  
    Normally this means I will have a bunch of close prices, and then one intraday price at the end.

    I then treat the above as daily data. If the price crashes intraday I will react to it rather than waiting until the next day. So its marginally better than just using closing data.

    This is all to make life easier. As I'm trading slowly it probably doesn't make much difference.

    There are some alternatives, all of which are more complicated:

    - use estimates of things like moving average that account for irregular time intervals
    - resample everything to say 3 times a day, then run on 3 times a day data

    I then do as you say - submit a limit order based on the spread when I place the order. That's typically 30 seconds after I've grabbed the original price.

    Hope I've explained that properly.
     
  19. Thanks global. By threshold I just meant, as a toy example, stuff like "if RSI > 70 then ..." where 70 is a calibrated threshold. Was just trying to get a sense of how many such degrees of freedom you are controlling and I think you were kind enough to answer it. I appreciate your answers and wish you the best. Will be stopping by from time to time to see how you are doing.
     
  20. Yesterdays trades

    Code:
            code contractid     filled_datetime  filledtrade  filledprice
    2758     BOBL     201503 2015-02-12 07:34:11            1      131.020
    2760  EDOLLAR     201806 2015-02-12 16:10:51           -1       97.705
    2759   NASDAQ     201503 2015-02-12 15:30:46            1     4324.500
    
    Slippage in GBP, for entire trade
    
             code  gbpt_slippage_process  gbpt_slippage_bidask  gbpt_slippage_execution  gbpt_slippage_all_trading  gbpt_slippage_total
    2760  EDOLLAR                  -0.00                  4.10                    -0.00                       4.10                 4.10
    2759   NASDAQ                  13.13                  1.64                    -3.28                      -1.64                11.49
    2758     BOBL                   7.43                  3.72                     7.43                      11.15                18.58
    An expensive BOBL trade....

    Code:
    2015-02-12 07:34:15 INFO    : trading      : Trade size for BOBL 201503 was 1 now 1 inside size is 191.000000 (issue_an_order)
    2015-02-12 07:34:15 INFO    : trading      : Placing order of 1 for BOBL 201503 (issue_an_order)
    2015-02-12 07:34:16 INFO    : trading      : Next orderid is 2758 (add_new_order)2015-02-12 07:34:22 INFO    : trading      : (algo, NA) Initial value of limit_price is 131.0 (update)
    2015-02-12 07:34:23 INFO    : trading      : (algo, NA) Initial value of side_price is 131.01 (update)
    2015-02-12 07:34:23 INFO    : trading      : (algo, NA) Initial value of offside_price is 131.0 (update)2015-02-12 07:34:26 INFO    : trading      : Placing order of 1 with limit 131.000000 for BOBL 201503 (EasyAlgo_new_order)
    2015-02-12 07:34:26 INFO    : trading      : Updating orderid 2758 submit_datetime from 2015-02-12 07:34:15 to 2015-02-12 07:34:15.947780 (update_order)2015-02-12 07:34:26 INFO    : trading      : (algo, NA) Detected change in side_price, from 131.01 to 131.02 (update)
    2015-02-12 07:34:26 INFO    : trading      : (algo, NA) Detected change in offside_price, from 131.0 to 131.01 (update)
    2015-02-12 07:34:28 INFO    : trading      : (algo, NA) Detected change in message, from StartingPassive to Adverse price move moving to aggressive for 2758
    BOBL 201503 (update)
    2015-02-12 07:34:29 INFO    : trading      : (algo, NA) Detected change in limit_price, from 131.0 to 131.02 (update)
    2015-02-12 07:34:32 INFO    : trading      : Fill done size 1 out of 1 for brokerid 2758 orderid 2758 at price 131.020000 (action_fill)
    
    When I put in the order the market was choice 131, so I bid at 131. However it then moved to 131.01 - 131.02. When the market moves against me my algo cuts its losses and hits the offer. So I moved my limit to 131.02, where I got filled. This is 2 ticks away from the mid, rather than 0.005 I'd expect to pay.

    Yesterdays profit £2,599

    Got it. No, I don't have anything like that. The only thresholds I have are when I combine my signals to get a joint signal, I don't trade very small signals below a certain level. This means I can make better use of my small capital.

    Good question. It would probably have been flat because of the contribution of carry but I will produce an up to date back-test when I do my year 1 review in April.
     
  21. Todays trades

    Code:
             code contractid     filled_datetime  filledtrade  filledprice
    2765  AUSSTIR     201606 2015-02-13 08:07:32            1        97.86
    2766    SP500     201503 2015-02-13 14:18:10            1      2087.50
    
    
    Slippage in GBP, for entire trade
    
    
             code  gbpt_slippage_process  gbpt_slippage_bidask  gbpt_slippage_execution  gbpt_slippage_all_trading  gbpt_slippage_total
    2766    SP500                 -16.36                  4.09                     0.00                       4.09               -12.27
    2765  AUSSTIR                    NaN                 12.19                   -24.37                     -12.19                  NaN
    
    The reason there are is no slippage for processing is because I'm rolling into the next contract, for which I don't yet have a sample price (until I've completely rolled out I calculate my signals from the old contract).

    Might be a good time to talk to you about rolling. This is the kind of report I get 3 times a day.

    Code:
           code                              msg  near_expiry_days  position price_contract  relative_volume rollstatus                 suggest
    25      V2X           Roll positions ongoing                 4        -1         201503         0.974434      ALLOW                CONTINUE
    28      VIX           Roll positions ongoing                 4        -1         201503         0.218656      ALLOW                CONTINUE
    40   GAS_US           Roll positions ongoing                11        -1         201504         0.282547      ALLOW                CONTINUE
    41  AUSSTIR           Roll positions ongoing                16         1         201603         0.672121      ALLOW                CONTINUE
    42  EDOLLAR           Roll positions ongoing                 3         2         201806         1.008589      ALLOW                CONTINUE
    20      AEX  Roll near on price, not liquid.                 6         1         201502         0.003839        NOT  START ROLL...NOTLIQUID
    21      CAC  Roll near on price, not liquid.                 6         2         201502         0.011452        NOT  START ROLL...NOTLIQUID
    msg: Current rolling status. Roll positions ongoing means I will do closing trades in the near contract, and opening trades in the far one (a natural one). If that doesn't work out and I still have positions when the time comes I will do a forced roll

    near_expiry_days: Number of days to when I'd ideally get out. The ideal contract depends on the market. So for example for STIR to avoid the very low volatility at the front end I like to stay about 3.5 years out for Eurodollar and about a year for Aussie STIR.

    price_contract

    relative_volume: 1.0 means the next and current contract have the same price

    suggest: What the report thinks I should do. For the first 5 instruments, nothing. For the last two, nothing yet because there is no liquidity yet (and there won't be until Wednesday or Thursday).

    PROFIT: £2295

    It's quite dull reading this thread this isn't it? Automated trading is dull, if done correctly. Tens of thousands of lines of code to make sure things stay as boring as possible.
     
  22. Got a question: Based on the picture you posted on your first post, how much was the beginning Account Balance? Was it 500k?
     
  23. No, 300K.
     
  24. OK makes sense: Another question. You use many different instruments to trade. What is the advantage for you to trade many instruments instead of focusing on just one single instrument?
     
  25. Hello globalarbtrader, first of all thanks for your reply concerning the order placement approach.
    After reading your post about roll trades I have some passages that I did not understand.

    So as far as I understood the rolling dates for you contracts are not fixed but they depend on the relative values of prices and volume for front and back month.

    However I did not understand clearly this passage:

    What do you mean exactly by saying "I like to stay about 3.5 years out for Eurodollar".

    Furthermore, for a correct calculation of the roll dates, information about exchange holidays should be known. Is it there a clean way you might suggest to get the exchange holiday calendar. I know that they are available on the exchange website, but that would require scrapping the values.

    Thank you again for your posts, they are really helpful for a beginner like me.
     
  26. Diversification. The back-tested Sharpe Ratio on a single instrument probably averages about 0.5. On a system of 45 instruments, if they are properly diversified, the back-test comes out closer to 2.0.

    "I like to stay about 3.5 years out for Eurodollar".

    What this means right now I'd like to be trading the September 2018 contract, i.e. the 14th quarterly contract in the future (ignoring the monthly serials in the first year). In a years time I'd like to be trading September 2019. The nearer contracts don't have enough volatility. The later ones don't have enough liquidity.

    IB provides a contact object which includes the expiry date of the contract. The caveat is that in some contracts, like bond futures, you actually want to be out by the first notice date which is a couple of weeks before. I use this expiry calendar https://www.interactivebrokers.com/calendar/2015/

    I don't see why I need the full exchange holiday calendar to calculate roll dates - can you explain why you think this is required?
     
  27. I thought that the holiday calendar should be needed in order to be able to know how many "active trading days" are left before the expiration date or first notice date.
     
  28. I guess I would need that if the decision to go from 'passively rolling' (trade contracts such that we're increasing in the new contract, and reducing in the old one) to 'force rolling' was automatic. But it's not, it's manual. The decision is quite complicated, market specific, and involves a lot of knowledge that the system doesn't have, so it's not worth coding it up for the few minutes a month it would save me.
     
  29. Trades from the last couple of days:

    Code:
    Trades take 1
    
            code contractid     filled_datetime  filledtrade  filledprice
    2770  GAS_US     201504 2015-02-16 16:47:23            1        2.886
    2771  AUSSTIR     201606 2015-02-17 02:37:15            1        97.85
    2774     BUND     201503 2015-02-17 08:41:21            1       159.16
    2772      V2X     201503 2015-02-17 08:37:06            1        23.90
    2773      V2X     201504 2015-02-17 08:37:06           -1        23.25
    
            code  gbpt_slippage_process  gbpt_slippage_bidask  gbpt_slippage_execution  gbpt_slippage_all_trading  gbpt_slippage_total
    2770  GAS_US                 111.25                  6.54                    -6.54                          0               111.25
    2774     BUND                 -66.64                  3.70                      7.4                      11.11               -55.53
    2772      V2X                  53.68                  1.85                      0.0                       1.85                55.53
    2771  AUSSTIR                    NaN                  6.08                      0.0                       6.08                  NaN
    2773      V2X                    NaN                 -1.85                      3.7                       1.85                  NaN
    
    You can see that I did a spread trade to roll V2X, which I managed to do at a good level.

    Yesterdays LOSS: £192
    Todays LOSS £3,511
     
  30. I've been away for a few days, but naturally my system has continued to trade. I'm confident enough in the checks and balances I have in place to do this, even without email access. If I'm going away for more than a week then I might have to do some work in advance, for example to avoid missing a roll. If my risk looks quite high I might even prevent the system from opening new positions whilst I am away.

    First P&L. Three good days. I should go on holiday more often.

    18th Feb: £6,214
    19th Feb: £5,592
    20th Feb: £816

    My expected risk is £6,277 per day, so none of these are large days. One more day like Wednesday or Thursday and I will be up to my high water mark.

    Here are my trades:

    Code:
    2783      AEX     201503 2015-02-18 10:42:32            1       466.65
    2784      AEX     201503 2015-02-18 10:47:19            1       466.75
    2785      AEX     201502 2015-02-18 10:51:47           -1       466.35
    2777      ASX     201503 2015-02-18 02:31:48            1      5857.00
    2778      CAC     201502 2015-02-18 08:01:38           -2      4780.00
    2779      CAC     201503 2015-02-18 08:01:38            2      4781.00
    2786  LEANHOG     201506 2015-02-18 14:34:07           -1        78.05
    2780      VIX     201503 2015-02-18 10:04:53            1        18.20
    2782      VIX     201504 2015-02-18 12:55:34           -1        18.80
    2787  AUSSTIR     201606 2015-02-19 02:00:30            1        97.91
    2788  AUSSTIR     201606 2015-02-20 05:17:01            1        97.91
    2789      CAC     201503 2015-02-20 11:30:30            1      4825.00
    You can see there are quite a few roll trades there.

    And the slippage:

    Code:
    2778      CAC                -547.95                  3.70                   -14.81                     -11.11              -559.06
    2786  LEANHOG                 -19.51                 13.01                    -0.00                      13.01                -6.50
    2780      VIX                   0.00                 16.26                     0.00                      16.26                16.26
    2784      AEX                    NaN                  7.40                    0.00                      7.40                  NaN
    2785      AEX                  77.75                  3.70                    -0.00                       3.70                81.45
    2777      ASX                -259.69                  6.33                   430.70                     437.04               177.35
    2779      CAC                    NaN                 -3.70                    14.81                      11.11                  NaN
    2782      VIX                    NaN                 16.26                   -32.52                     -16.26                  NaN
    2783      AEX                    NaN                  7.40                   -14.81                      -7.40                  NaN
    2787  AUSSTIR                    NaN                  6.12                        0                       6.12                  NaN
    2789      CAC                  -5.54                  1.85                    -3.69                      -1.85                -7.39
    2788  AUSSTIR                    NaN                  6.11                   -12.21                      -6.11                  NaN
    Sticking out like a sore thumb is the ASX trade, which merits further investigation. A sample mid price of 5843 was taken at 02:30:30, UK time. 70 seconds later after the signal was processed and when we went to the market to trade the offer was 5823, and the bid was 5822. We joined the bid at 5822, but a few seconds later the price updated to 5856 - 5857. The algo immediately cut its losses and took the offer, with the fill coming in 8 seconds after we submitted the trade at 02:31:48.

    Looking closely at the bars the price at the time of the order of 5822 - 5823 was incorrect, and at least a couple of hours old. So the fill was a good one, and the slippage much smaller than the figure above suggests.

    It's worth having a discussion about how one should spot bad prices, and what one should do with them. The basic ways to spot bad prices (apart from obvious SNAFU's like zeros or Nan's) are a large change from a previous price, a large bid-offer suggesting an illiquid market, or delays on timestamps. Its easy to exclude stale prices and to set a maximum bid-offer at which you'd accept a price.

    Its a bit harder to know where to set the threshold for a large change. After all we don't want to be prompted every time the price moves a 'normal' amount. Even if you set the trigger where it goes off once a month, given I trade 45 markets, that implies I'd get about two prompts every trading day, which is too many.

    The 30 odd tick movement above wasn't big enough to trigger any concern, and no action was taken.

    What should we do with a bad price? One option is to live with it, as I did here. If you have enough robustness in your system then that isn't a problem. If you're trading slowly enough then the impact of the last tick on your signal should be minimal. In simple terms if you're using say a 50 day moving average then a bad price will only affect 2%, as long as the price isn't way off, say by a factor of 10. Of course if you're high frequency trading then a 30 tick error over 8 seconds could make a huge difference.

    We can warn on bad prices. This might make sense if a price moves more than expected, but not enough to justify exclusion. The price can then be checked at the end of the day, and if necessary changed post hoc. Note that this means that simulations will be slightly biased with forward looking information.

    We can exclude bad prices. If a price exceeds my threshold, I don't add it to the database, but my system emails me.

    Code:
    2015-02-20 20:14:18 CRITICAL: dailyprocess : Sample WHEAT 201612 failed spike check price move from 584.750000 to 565.500000 was -10.71 vols (vol of 1.798195) *RERUN WITH MANUAL ENTRY*  (resolveprice)
    Most of these warnings like this one are on illiquid contracts which I'm not trading yet, that might not see trades for several days. I then have to rerun the price collection process manually, and confirm I'm happy with those prices.

    To give you some insight into what an automated system trader does with their time (apart from spend more time on holiday) a little project I have been working on over the last few days involves refactoring the storage of prices. The simple and dirty software I use doesn't optimise for things like using a small number of large files, or a large number of small files.

    The answer depends on how many processes you are running, wether they are in serial, whether they are likely to be locking files to read, and so on. I came to the conclusion that a large number of small files was better in this use case. This is good old fashioned computer engineering.

    Another thing I've done is to change the way my system diagnostic outputs are produced. This has created a smaller disk footprint allowing the system to be easily run on my less powerful backup machine, and sped up the process. Essentially I'll be using the backup machine to generate additional diagnostic information. This means enforcing backup and replicate, and . All this means it will be easier to switch between the live and backup machines, again something I've neglected. More engineering.

    It's also an opportunity to think about how diagnosis is done. I created quite a lot of over complicated diagnostic tools that I don't really use, which as a result have become deprecated as I've changed the system. The essential problem is to summarise a relatively complicated picture in such a way that issues can easily be spotted, and then to have drilldown tools allowing you to see where things went wrong.

    As part of this effort I want to create a suite of functions to analyse various aspects of live performance, with a deadline of April 1st when I'd like to be able to report on my first year of trading. Rather than the big over complicated generic solution, I'm going to try and build a large number of functions to answer some specific questions, but which will sit on some shared classes to get data out of the system.

    This then leads into simulation. Again my simulation tools are rusty from lack of use. I've now got a better understanding of what I want from them. There are three main areas of interest once I get the tools working again. The first is to be able to use intra-day data better. One is to adapt trading systems to the cost of trading markets (at the moment I tailor my system to the most expensive markets). I didn't want to do this until I had collected enough data on trading costs. The other is to revisit some promising mean reversion systems that I removed from the system as I didn't feel I had enough evidence that they worked.

    This is quite a modest research program, as I have many other things I am doing with my life, and endlessly polishing my trading system isn't something that interests me, nor do I think it is of much value.
     
  31. Interesting thread and impressive results so far.

    What is your average holding period?
     
  32. Thanks, and a good question. My average holding period is about one month.
     
  33. Yesterdays trades

    Code:
             code contractid     filled_datetime  filledtrade  filledprice
    2791  AUSSTIR     201606 2015-02-23 02:57:41            2      97.9200
    2794  EDOLLAR     201806 2015-02-23 17:29:18           -1      97.6250
    2796  EDOLLAR     201809 2015-02-23 17:39:54            1      97.5650
    2793      GBP     201503 2015-02-23 15:58:40            1       1.5447
    2790    KOSPI     201503 2015-02-23 01:39:09            1     251.8500
    2792      VIX     201504 2015-02-23 11:06:54           -1      18.1000
    
    Code:
             code  gbpt_slippage_process  gbpt_slippage_bidask  gbpt_slippage_execution  gbpt_slippage_all_trading  gbpt_slippage_total
    2790    KOSPI                 -45.67                  7.61                   -15.22                      -7.61               -53.28
    2792      VIX                  -0.00                 16.22                   -32.44                     -16.22               -16.22
    2794  EDOLLAR                  -0.00                  4.05                    -8.11                      -4.05                -4.05
    2793      GBP                  60.82                  2.03                     0.00                       2.03                62.85
    2791  AUSSTIR                    NaN                 12.26                     0.00                      12.26                  NaN
    2796  EDOLLAR                    NaN                  4.05                     8.11                      12.16                  NaN
    
    Total slippage: process 15.150000; bidask 46.220000; execution -47.660000; all trading -1.430000; grand total -10.700000
    No major scares, but the Eurodollar trade where I sold then bought is worth examining (although these were in different contracts this wasn't a roll trade, since I'm not forcing a roll in this contract). Buys and sells a few minutes apart should be fairly rare with my trading speed.

    Code:
             code     sample_datetime     submit_datetime     filled_datetime  delay_to_trade  delay_to_fill  total_delay
    2794  EDOLLAR 2015-02-23 16:17:46 2015-02-23 16:19:27 2015-02-23 17:29:18             101           4191         4292
    2796  EDOLLAR 2015-02-23 17:30:29 2015-02-23 17:34:34 2015-02-23 17:39:54             245            320          565
    Interesting to see that the trades were actually submitted over an hour apart (not a few minutes), but the sell didn't fill until a few minutes before the buy was issued. So I sat on the offer for an hour. In these kinds of markets you often need to be patient, and the algo got a little extra by not getting bored and crossing the spread as a human might do. I once sat on the offer for four hours in the swiss interest rate future (not a market I would trade now), though I did eventually have to cross the spread.

    Yesterdays profit: £8528. I'm now above my HWM and trading with maximum capital at risk.

    Today I started rolling my US bond futures. These are a tricky one because they are physically settled and if you're long you have to worry about the broker (IB in my case) auto liquidating you before the first notice date (FND), which is on Friday, rather than the expiry date which is a few weeks away. There is no way to get the FND from IB so you just need to be aware of this (IB do send very frequent emails on the subject!) and check the CME calendar.

    Another wrinkle is the US 20 year (treasury bond) roll which is a bit weird this time:
    http://www.elitetrader.com/et/index...-2015-cbot-treasury-bond-futures-roll.289854/

    Effectively the volatility of the new bond will be 50% higher. This kind of thing is a pain for futures traders. We calculate our volatility on the stitched price series of individual contracts. The volatility update will take a few weeks to process the information that the volatility on the new contract is higher than the old.

    I don't currently have a position in the 20 year bond, but if I had say a 3 contract position the system would naturally want to buy say 3 contracts when the roll occurred, and then sell one of them (all other things being equal). Some kind of manual override would be needed to cope with this.
     
  34. Todays trades

    Code:
             code contractid     filled_datetime  filledtrade  filledprice
    2802  AUSSTIR     201606 2015-02-24 04:42:47            1    97.890000
    2807     US10     201503 2015-02-24 14:08:22           -1   127.781250
    2808     US10     201506 2015-02-24 14:08:22            1   127.109375
    2803      US2     201503 2015-02-24 14:02:30           -3   109.617188
    2804      US2     201506 2015-02-24 14:02:30            3   109.187500
    2805      US5     201503 2015-02-24 14:03:35           -1   119.632812
    2806      US5     201506 2015-02-24 14:03:35            1   118.914062
    Code:
             code  gbpt_slippage_process  gbpt_slippage_bidask  gbpt_slippage_execution  gbpt_slippage_all_trading  gbpt_slippage_total
    2803      US2                  30.41                 15.21                   -30.41                     -15.21                15.21
    2805      US5                  25.34                  2.53                    -0.00                       2.53                27.88
    2807     US10                  91.23                  5.07                   -10.14                      -5.07                86.17
    2802  AUSSTIR                    NaN                  6.13                   -12.26                      -6.13                  NaN
    2804      US2                    NaN                -15.21                    60.82                      45.62                  NaN
    2806      US5                    NaN                 -2.53                     5.07                       2.53                  NaN
    2808     US10                    NaN                 -5.07                    10.14                       5.07                  NaN
    
    Total slippage: process 146.980000; bidask 6.130000; execution 23.220000; all trading 29.340000; grand total 129.260000
    Mostly rolls, with a bad beat on the US 2 year.

    P&L: £5,623. So still making new highs.

    One of the hardest things about a trend following style is that it gives you a positive skew of returns - lots of small loss-making days, a few days with large profits. This also means you spend most of your time in a draw-down, even during a period of relatively high profitability. Whereas if I was selling volatility, I'd have lots of days with small profits and a few horrific losses, and spend most of my time making new highs.

    Periods like the last couple of days are relatively rare then, but to be savored.
     
  35. such a great journal, thanks for sharing
     
  36. Do you calculate risk number like daily VAR for the portfolio?
     
  37. Yesterdays trades

    Code:
             code contractid     filled_datetime  filledtrade  filledprice
    2809  AUSSTIR     201606 2015-02-25 06:14:16            1        97.90
    2810      VIX     201504 2015-02-25 10:30:12           -1        17.45
    
    
    Code:
             code  gbpt_slippage_process  gbpt_slippage_bidask  gbpt_slippage_execution  gbpt_slippage_all_trading  gbpt_slippage_total
    2810      VIX                     -0                  16.2                   -32.41                      -16.2                -16.2
    2809  AUSSTIR                    NaN                   6.1                   -12.20                       -6.1                  NaN
    
    The steady downtrend in VIX since the start of February means we are are starting to build a position again.

    Yesterdays profit:£4,625. At HWM.

    My key risk number is the expected daily standard deviation. With full capital as now, average signals and correlations, this would be the capital at risk (£400,000) multiplied by the daily risk target (annual risk target of 25% divided by 16 to get daily) or £6,250. It's currently £6,504, reflecting signal strength and correlation patterns. If this is above £12,500, twice the long run average, then I reduce all my positions to keep it at that level.

    I then calculate two other worst case risks to see if I need to take further action.

    I also calculate the worst case risk, assuming correlations break down, and volatilities remain the same. This is as simple as adding up the absolute value of my signals - assuming my longs sell off and shorts rally. This is currently £16,659 per day, or would be if I didn't reduce my signals when a limit of 2.5 times my normal risk, or £15,624 is exceeded.

    Finally I calculate the worst case risk assuming volatilities spike to the highest levels seen in the last 5 years, but correlations remain unchanged. Right now this comes in at £8,885 per day, which is well below my limit.

    I also cap expected risk per market. All of this is completely automatic of course.

    I don't calculate VAR which confounds the volatility and correlation stress, since I prefer to keep an eye on these separately.
     
  38. You ran a $25 billion fund and now you are trolling for business on elite trader and doing consulting? Something does not seem right here. What happened??
     

  39. Oh Jesus here we go.

    Surf please don't ruin this thread. It's one of few decent threads left.
     
  40. If you read his blog somewhere it was mentioned he worked as a fund manager for AHL, that may explain the large fund he was handling. His results are quite impressive to date but I'm still waiting to see how his system perform from 2009-2013, a period that was brutal to trend followers. We should take this opportunity to pick his brain instead of running him off.
     
  41. I like this thread, is good to see one of the 5% who is actually profitable
     
  42. Yesterdays trades

    Code:
             code contractid     filled_datetime  filledtrade  filledprice
    2816      AEX     201503 2015-02-26 16:37:30            1   482.400000
    2814      AUD     201503 2015-02-26 16:17:42            1     0.782100
    2817      CAC     201503 2015-02-26 16:38:02            1  4910.500000
    2815  LEANHOG     201506 2015-02-26 16:24:13            1    83.050000
    2821      MXP     201503 2015-02-26 16:55:18            1     0.066800
    2819   NASDAQ     201503 2015-02-26 16:46:13            1  4455.750000
    2811      OAT     201503 2015-02-26 16:10:41            1   150.470000
    2822     PLAT     201504 2015-02-26 17:00:00           -1  1177.300000
    2818      SMI     201503 2015-02-26 16:43:14           -1  8977.000000
    2812     US10     201506 2015-02-26 16:13:41           -1   127.781250
    2813      US2     201506 2015-02-26 16:17:05           -1   109.242188
    2820      VIX     201504 2015-02-26 18:10:18            2    17.300000
    2826      VIX     201504 2015-02-26 18:20:09           -2    17.350000
    
    
    Slippage in GBP, for entire trade
    
    
             code  gbpt_slippage_process  gbpt_slippage_bidask  gbpt_slippage_execution  gbpt_slippage_all_trading  gbpt_slippage_total
    2820      VIX                   0.00                 32.41                   -64.81                     -32.41               -32.41
    2815  LEANHOG                 -32.41                  6.48                     0.00                       6.48               -25.93
    2812     US10                 -10.13                  5.06                   -10.13                      -5.06               -15.19
    2813      US2                 -20.25                  5.06                    -0.00                       5.06               -15.19
    2818      SMI                 -20.50                  6.83                    -0.00                       6.83               -13.66
    2811      OAT                  -7.35                  3.67                    -7.35                      -3.67               -11.02
    2816      AEX                 -11.02                  7.35                     0.00                       7.35                -3.67
    2814      AUD                   0.00                  3.24                    -6.48                      -3.24                -3.24
    2819   NASDAQ                 -11.34                  3.24                     6.48                       9.72                -1.62
    2821      MXP                   6.48                  1.62                    -3.24                      -1.62                 4.86
    2817      CAC                   1.84                  3.67                     0.00                       3.67                 5.51
    2822     PLAT                  11.34                  6.48                    -0.00                       6.48                17.82
    2826      VIX                 129.63                 32.41                   -64.81                     -32.41                97.22
    
    Total slippage: process 36.290000; bidask 117.520000; execution -150.340000; all trading -32.820000; grand total 3.480000
    
    Quite a busy day, with some rare, and fortunately profitable 'scalping' on the VIX.

    Yesterdays p&L: £1,859


    I didn't run a $25 billion dollar fund; I ran about a third of a $15 billion dollar fund (AHL - now sadly about half that size but doing much better than when Ieft!). I'll reply more fully on the thread where I mentioned that figure as its out of context here. Although systematic quant trading isn't as well paid as the discretionary sort I'm very fortunate to have achieved a degree of financial independence. I could just sock all my money into a diversified set of ETF's, and indeed most of my funds are in that, but I enjoy systematic trading so to keep things interesting I've put a proportion of my net worth into trading capital.

    Yes I do very occasional consulting, where I find the work interesting, but I'm lucky that I don't need to it full time to earn a living. But I wasn't aware I was 'trolling' for business. Please point to the messages here where I did that.

    I'm really here just to share my mistakes experience, and hopefully learn a bit from others.

    As promised I'll post a simulation in a few weeks. I'm currently revamping my simulation code.

    Feel free to pick my brains, or if I'm bothering you I guess you could avoid this thread and put me on ignore.
     
  43. Hi globalarbtrader, I do hope that the conversation on this thread will remain on a pure technical level, also because I think that no one has time to waste on bla bla bla talking..

    I have several questions concerning your risk management approach.

    Question 1.

    I found this quite confusing. You first mention the expected daily standard deviation, which you calculate based upon average signals and correlations and its value is now £6,504.
    Then you introduce a threshold value for the expected daily standard deviation, that you set equal to the daily risk target computed as follows

    annual risk target = 25% of capital at risk = £100,000
    daily risk target = annual risk target divided by 16 = £6,250

    At this point you change again your threshold value to twice the daily risk target (2 x £6,250 = £12,500) and you say that if the rolling estimate of the expected standard deviation is above £12,500, then you reduce all the positions to keep it at that level ( which level? the £6,250 or the £12,500 ).

    I could not grasp too much logic in this approach, I would be extremely grateful if you could elaborate more on this.

    Question 2.

    Which scenarios are you considering?

    Question 3.

    Should I interpret this statement in the framework of the Markowitz portfolio theory where your expected standard deviation is derived by computing the Markowitz portfolio variance and then in the case of the worst scenario you artificially modify the correlation matrix or you just simply assume that all of your open positions (long or short) will hit the stop loss level?

    Question 4.

    The volatility spike does not contain any information concerning the direction in which the market will move, what is your assumption concerning the path that the price will follow during the day?
     
  44. Okay I'll try and be very explicit.

    I have an average, long run expected risk target (not a threshold):

    annual risk target = 25% of capital at risk = £100,000
    daily risk target = annual risk target divided by 16 = £6,250

    Then on any given day I have an expected risk, derived in a standard markowitz way. That will depend on:

    - If I am in a drawdown, then I will have reduced my total capital at risk.
    - The current strength of my signals. Higher signals will mean more expected risk.
    - My current estimate of volatility. Since positions are signals scaled for volatility the current level of volatility in any market won't affect my expected risk. If vol doubles in a market, my positions will half, and expected
    - The current estimated correlation matrix. If for example correlations were unusually high, or my positions were unusually correlated (maybe I'm normally equity neutral, but at the moment I have a large beta - this isn't true, just a contrived example) then it would increase expected risk.

    The estimated risk in the OP was £6,504, a bit higher than the average.

    What I do is take the natural positions my system would want to take, and recalculate the risk according to different scenarios, and then compare the risk that comes out to a threshold. If the risk exceeds a threshold in any of those scenarios, then I reduce all my positions proportionally. I use the most conservative de-risking of the three.

    Scenario 1: Measuring expected risk the normal way, without changing vol or correlation

    For normal expected risk I set a limit of twice my long run risk, £12,500. If for example my natural risk was £25,000 then I would halve all my positions to get down to the threshold.

    This just helps me sleep at night.

    Scenario 2: Measuring expected risk with the worst possible correlation matrix

    If all my positions go against me, but volatility is unchanged, then the correlation matrix would contain lots of 1 and -1 values. My threshold when calculating risk this way is 2.5 times normal risk, eg 6250 x 2.5 = £15,625. So if my natural risk when doing the calculation this way was £31K, then again I'd be halving my positions. Out of interest this is the risk measure that tends to kick in the most, which is a function of my diversified portfolio.

    I don't have explicit stop losses, but if I did this wouldn't be as bad as assuming all markets hit their stop loss, since its a one day risk measure and I would set stop losses according to my expected holding period which is longer than one day.

    This protects me against days when correlation breaks down, usually due to huge deleveraging.

    Scenario 3: Measuring expected risk with the "worst possible" volatilities

    Let's assume that all markets are at half the highest vol seen in the last 5 years. Then my risk computed with this method would be double the normal measure. Again I have a threshold, of 3 times the average risk, or 3 x 6250 = £18,750

    This protects me against unusually low vol (CDS in 2006, or euroyen 2010 for example).

    In all of this I'm not assuming anything about the path the price will follow during the day. That is the job of the signals. The risk management is as scared of an unusually good day as an unusually bad one.

    Does that make more sense, or have I still not explained it properly?

     
  45. Hi globalarbtrader, thanks a lot for your reply.
    It is clear now.
     
  46. Todays trades

    Code:
            code contractid     filled_datetime  filledtrade  filledprice
    2827     ASX     201503 2015-02-27 01:26:43            1     5885.000
    2829    AUS3     201503 2015-02-27 01:57:46            1       98.230
    2835    BOBL     201503 2015-02-27 09:00:27           -6      131.250
    2836    BOBL     201506 2015-02-27 09:00:27            6      129.420
    2832    BUND     201503 2015-02-27 08:11:38           -2      159.540
    2833    BUND     201506 2015-02-27 08:11:38            2      157.330
    2831     CAC     201503 2015-02-27 08:06:14            1     4917.000
    2828   KOSPI     201503 2015-02-27 01:27:22           -1      251.400
    2830     KR3     201503 2015-02-27 01:50:45           -1      108.500
    2837  NASDAQ     201503 2015-02-27 15:15:51            1     4454.500
    2834   SHATZ     201503 2015-02-27 08:12:08          -23      111.325
    
    
    Slippage in GBP, for entire trade
    
    
            code  gbpt_slippage_process  gbpt_slippage_bidask  gbpt_slippage_execution  gbpt_slippage_all_trading  gbpt_slippage_total
    2837  NASDAQ                 -40.34                  3.23                     0.00                       3.23               -37.11
    2828   KOSPI                 -30.29                  7.57                    -0.00                       7.57               -22.72
    2830     KR3                  -0.00                  3.03                    -0.00                       3.03                 3.03
    2827     ASX                  25.37                 12.69                   -12.69                       0.00                25.37
    2831     CAC                  12.80                  1.83                    10.97                      12.80                25.59
    2834   SHATZ                  -0.00                 42.04                    -0.00                      42.04                42.04
    2835    BOBL                  43.87                 21.94                    -0.00                      21.94                65.81
    2829    AUS3                  53.48                  7.64                    15.28                      22.92                76.40
    2832    BUND                 190.11                  7.31                   -14.62                      -7.31               182.80
    2833    BUND                    NaN                 -7.31                    29.25                      21.94                  NaN
    2836    BOBL                    NaN                -21.94                    43.87                      21.94                  NaN
    
    Total slippage: process 255.000000; bidask 78.030000; execution 72.060000; all trading 150.100000; grand total 361.210000
    Lots of rolling, including a pricey Bobl roll. Notice that I did a big Shatz trade, completely closing my position. If you want to know why, then here is a blog post I did.

    Todays p&L: A loss, though fortunately just £250
     
  47. No intention of this. This guy comes across as decent, expereinced legit trader-- lots to learn here. Peace, surf

    PS-- not to mention Ed of a Spec is on his book pile! :)
     
  48. Yesterdays trades

    Code:
          code contractid     filled_datetime  filledtrade  filledprice
    2838  BOBL     201506 2015-03-02 07:32:43            3       129.33
    2839   BTP     201503 2015-03-02 07:31:57           -2       141.16
    2843   BTP     201506 2015-03-02 07:44:18            1       139.49
    2840   OAT     201503 2015-03-02 07:32:29           -1       150.20
    2841   OAT     201506 2015-03-02 07:36:49            1       154.53
    2844   VIX     201505 2015-03-02 11:08:15           -1        17.75
    
    Slippage
    
          code  gbpt_slippage_process  gbpt_slippage_bidask  gbpt_slippage_execution  gbpt_slippage_all_trading  gbpt_slippage_total
    2839   BTP                -131.90                  7.33                    -0.00                       7.33              -124.57
    2838  BOBL                 -87.93                 10.99                   -21.98                     -10.99               -98.93
    2840   OAT                 113.58                  3.66                    -7.33                      -3.66               109.92
    2841   OAT                    NaN                  3.66                    14.66                      18.32                  NaN
    2843   BTP                    NaN                 10.99                   -21.98                     -10.99                  NaN
    2844   VIX                    NaN                 16.17                   -32.34                     -16.17                  NaN
    
    Total slippage: process -106.250000; bidask 52.800000; execution -68.970000; all trading -16.160000; grand total -113.580000
    
    Bond rolling season continues with the OAT and BTP; these are also physically delivered so you need to be out of them before

    I rolled these using outrights rather than spreads, as the spread market wasn't liquid enough and I wanted to
    A recap, there are three ways that I do rolls:

    - A natural roll, where I reduce my H5 position when I'm selling (assuming I'm long initially) and increase my M5 position when buying
    - A spread trade, where I put a bid in the market for the spread H5-M5. This is the lowest risk, but not all spread markets are liquid enough.
    - An outright trade, where I simultanously put in a bid for M5 and an offer for H5. A good outcome will mean capturing the spread on both contracts. A worse outcome is I have to pay the spread twice. A really bad outcome is that the market moves sharply, one half of the spread trades and I have to chase the other contract price to fill.

    Naturally this is all automated.

    The BOBL trade was the last one required to move my risk from the Shatz (where volatility is too low, and I am scared of jump risk) into the other two german bonds I trade.

    Yesterdays profit: £2339
     
  49. Trades yesteday

    Code:
        code contractid     filled_datetime  filledtrade  filledprice
    2846  BTP     201506 2015-03-03 07:32:43            1       139.19
    2845  KR3     201503 2015-03-03 02:02:01            1       108.69
    
    
    Slippage in GBP, for entire trade
    
    
         code  gbpt_slippage_process  gbpt_slippage_bidask  gbpt_slippage_execution  gbpt_slippage_all_trading  gbpt_slippage_total
    2846  BTP               -1231.08                 10.99                   -21.98                     -10.99             -1242.07
    2845  KR3                   0.00                  3.04                     0.00                       3.04                 3.04
    
    Total slippage: process -1231.080000; bidask 14.030000; execution -21.980000; all trading -7.950000; grand total -1239.030000
    Quiet day then. And here is the p&L:

    MINUS £10,958

    So my biggest loss since I started posting these updates. This, in my opinion, is when an automated system comes into its own. After a loss like that it would be hard for me personally to concentrate on sticking to a plan. I guess I am not cut out for this trading business. But I've completely outsourced my trading to a set of chips that doesn't care. It doesn't know that a loss of 2.5% of my trading capital is painful. It just readjusts its target risk capital appropriately by the same amount, and if losses continue will cut the positions involved as it sees trends reverse.
     
  50. In my past i used work for an affiliated firm of ahl so i was somewhat familiar with their product. Ahl, Aspect and the like would have gradually building and tapering positions in various markets over multi systems like what you are doing. But such firms had a sharpe of maybe 1.0.
    You have a sharpe of twice that. What would you say you are doing differently from them?
     
  51. Code:
             code contractid     filled_datetime  filledtrade  filledprice
    2849      AEX     201503 2015-03-04 08:02:38           -1   481.250000
    2848  AUSSTIR     201603 2015-03-04 02:34:45           -1    97.980000
    2850      US5     201506 2015-03-04 14:20:22           -1   118.867188
    
    
    Slippage in GBP, for entire trade
    
    
             code  gbpt_slippage_process  gbpt_slippage_bidask  gbpt_slippage_execution  gbpt_slippage_all_trading  gbpt_slippage_total
    2849      AEX                -247.44                  7.28                    -0.00                       7.28              -240.17
    2850      US5                  -0.00                  2.54                    -0.00                       2.54                 2.54
    2848  AUSSTIR                  18.34                  6.11                   -12.23                      -6.11                12.23
    
    Total slippage: process -229.100000; bidask 15.930000; execution -12.230000; all trading 3.710000; grand total -225.400000
    These are mainly risk reduction trades on the back of the recent drawdown.

    The AEX sample price was grabbed at closing time, and traded the next morning, hence the large positive price movement.

    Yesterdays LOSS: £1,645

    Not much differently (I don't know if you are aware of this but I used to work for AHL). AHL also had a very high Sharpe last year. On a risk adjusted basis we're probably pretty even. I will soon post my simulated returns. The average SR from 1980 onwards is about 0.9. So in a similar ballpark.

    For what its worth:

    Reasons why AHL should do better than me, in order of importance:

    - Much wider set of markets traded; perhaps 300 versus 43.
    - Much lower execution commissions paid
    - Smarter execution algos, but more importantly experienced execution traders.
    - Large team of researchers refining and developing models

    Reasons why I might do better, most important first:

    - I have a lower allocation to trend following, so a more diversified style of trading.
    - There are no fees
    - Institutional pressures leading to models changing and frequent overrides (http://qoppac.blogspot.co.uk/2014/05/why-black-box-hedge-funds-should-have.html)
    - Smaller size, so lower slippage
     
  52. I've finally got round to producing a new backtest which can be found here

    The bottom line is that the last year has indeed been exceptionally good, versus a realistic long run back tested Sharpe of 0.88.

    2009, 2011 - 2013 are flat. However 2010 is more interesting, as my backtest made some money whilst the CTA industry generally didn't. I've done a bit more digging since I wrote that post and this is a further breakdown by trading rule:

    [​IMG]

    'globaltrend', 'breakout', 'normmom' and 'momentum' are different flavours of trend following. Although AHL (and I guess other CTA's) use similar versions of these rules (with the possible exception of 'normmom' which is my own entirely original, though very simple, creation) they don't have them in the same proportions as I do. In particular 'momentum', which is an EWMAC system, was a relatively large part of a typical CTA system in 2010*, wheras I have a more equal weighting. The highest blue line (below the red line) is this type of system, which did the worst in 2010.

    This scale of outperformance may not be repeatable, but in general I think its better to have a spread of different kinds of trading rules rather than relying too much on one.

    * I have no idea what the typical proportions are now.
     
  53. Nice work. Don't want to sidetrack this thread but I working on a system activator/de-activator algorithm and like to test it out on other people's return streams as a robustness check. Any possibility you could upload an excel file containing daily returns for each of your systems? If you'd rather not, I completely understand ...
     
  54. Yes, no problem, but it might take me a couple of days to organise myself.
     
  55. Yesterdays trades:

    Code:
    Trades take 1
    
             code contractid     filled_datetime  filledtrade  filledprice
    2851      AEX     201503 2015-03-05 08:04:21            1   485.050000
    2855      AEX     201503 2015-03-05 12:26:36           -1   488.650000
    2852     BOBL     201506 2015-03-05 12:09:07           -2   129.070000
    2864     BOBL     201506 2015-03-05 12:59:29           -1   129.030000
    2873     BOBL     201506 2015-03-05 15:00:27            1   129.270000
    2853     BUND     201506 2015-03-05 12:13:02           -1   156.390000
    2857      CAC     201503 2015-03-05 12:31:35           -4  4963.500000
    2869     CORN     201512 2015-03-05 14:30:00           -3   413.750000
    2876     CORN     201512 2015-03-05 16:30:08           -1   416.000000
    2877     CORN     201512 2015-03-05 18:15:11            1   414.750000
    2863  EDOLLAR     201809 2015-03-05 12:49:28            2    97.495000
    2856   GAS_US     201505 2015-03-05 12:29:52           -1     2.825000
    2858     GOLD     201506 2015-03-05 12:33:13           -1  1202.300000
    2875  LIVECOW     201510 2015-03-05 16:45:21            1   146.800000
    2866   NASDAQ     201503 2015-03-05 14:05:08           -2  4455.000000
    2854      OAT     201506 2015-03-05 12:12:56           -1   153.540000
    2867    SP500     201503 2015-03-05 14:05:40           -1  2101.750000
    2868     US10     201506 2015-03-05 14:08:27            1   127.062500
    2872      US2     201506 2015-03-05 14:23:08            1   109.226562
    2871      US5     201506 2015-03-05 14:15:47            1   118.976562
    2862    WHEAT     201512 2015-03-05 13:30:22           -2   529.000000
    2865    WHEAT     201512 2015-03-05 14:30:03            1   528.500000
    
    
    Slippage in GBP, for entire trade
    
    
             code  gbpt_slippage_process  gbpt_slippage_bidask  gbpt_slippage_execution  gbpt_slippage_all_trading  gbpt_slippage_total
    2857      CAC                -652.72                  7.25                    -0.00                       7.25              -645.47
    2855      AEX                -380.76                  3.63                     7.25                      10.88              -369.88
    2875  LIVECOW                -162.55                 13.00                   -26.01                     -13.00              -175.55
    2856   GAS_US                -133.29                  9.75                   -19.51                      -9.75              -143.04
    2862    WHEAT                 -97.53                 16.25                   -32.51                     -16.25              -113.78
    2876     CORN                -105.66                  4.06                    -8.13                      -4.06              -109.72
    2863  EDOLLAR                 -48.76                  8.13                   -16.25                      -8.13               -56.89
    2851      AEX                 -65.27                  7.25                    14.50                      21.76               -43.51
    2858     GOLD                 -35.76                  6.50                    -0.00                       6.50               -29.26
    2867    SP500                 -24.38                  4.06                    -8.13                      -4.06               -28.45
    2877     CORN                 -12.19                  4.06                    -8.13                      -4.06               -16.25
    2866   NASDAQ                  -3.25                  3.25                   -13.00                      -9.75               -13.00
    2872      US2                   0.00                  5.08                   -10.16                      -5.08                -5.08
    2873     BOBL                  -7.25                  3.63                     0.00                       3.63                -3.63
    2869     CORN                  -0.00                 -0.00                    -0.00                      -0.00                -0.00
    2864     BOBL                  14.50                  3.63                    -7.25                      -3.63                10.88
    2865    WHEAT                  16.25                  4.06                    -8.13                      -4.06                12.19
    2871      US5                   5.08                  2.54                     5.08                       7.62                12.70
    2852     BOBL                  43.51                  7.25                    -0.00                       7.25                50.77
    2854      OAT                  50.77                  3.63                    -0.00                       3.63                54.39
    2853     BUND                  65.27                  3.63                    -7.25                      -3.63                61.65
    2868     US10                 142.23                  5.08                   -20.32                     -15.24               126.99
    
    Total slippage: process -1391.760000; bidask 125.720000; execution -157.950000; all trading -32.180000; grand total -1423.940000
    
    Lots of trading today, I'll explain why in a second

    P&L: £12427

    Good day. Only about £3K below HWM at yesterdays close.

    Yesterday I made some changes to my trading system. I try and avoid changing it frequently. One of the issues with my professional career in this business is that system changes are all too common. Generally you should only change an automated system when you have new information, or a serious concern about its behaviour (a bug if you like).

    In this case after nearly a year of trading I felt I had some new information. Not about raw performance, a year being not enough to influence a 30 year plus year backtest, but about costs. Up to now I've run all instruments at the same trading speed. Now I feel confident about the numbers I have for slippage to use these to optimise my allocation to faster or slower signals differently for NASDAQ (which is very cheap) versus say AUSSTIR (which costs 40 times more). Theres a brief description of how this is done in the last post on my blog.

    In terms of making changes to trading systems its important to minimise the impact this has. The trading above (which fortunately cost me nothing in execution -minus £158 in fact) represents about half the adjustment. In other markets where I will be rolling in the next few days and I'm increasing my position it would be expensive to buy more of the current contract, only to sell it again into the roll. Better to buy more of the new contract once that is liquid enough. It's my judgement that this cost is higher than the expected benefit I'd get from moving to the new positions now. This also means I'm temporarily underrisked. I'm cool with this -better than the converse situation.
     
  56. Thanks for the look at the backtest, so it's been 3 years since system made equity high, which parallels most trend following cta, drawdown seem shallow, good job nonetheless. What was your largest equity drawdown on backtest, did I see a dip in 1983?
     
  57. Here you go. Although its .txt extension, its actually csv (ET won't let me upload .csv files).

    Missing data is blank. Each return is based on its contribution to my system. So if you want to use them in isolation you'll need to adjust them so they have the same volatility, unless you use Sharpe Ratio as your filter.

    Every time I've looked at this issue in the past I've got nothing significant. Partly this might be because when we do this we're already preselecting models that work. If you used some random data from arbitrary models you could . But then you would just end up with a glorified significance test, whereas I imagine what you're more interested in is some kind of time series prediction of whether a model will work or not in the next year ahead.

    I can't imagine that working in isolation, though some kind of conditioning variable might help. For example the level of interest rates might be an interesting one to look at.

    Good luck!
     
  58. About 33% of capital. Yes, 1983 is the biggest; though there are only 4 markets with data then. The first interesting drawdown is 1994 (Fed tightening, particularly hits fixed income. Could have been worse, I guess it was for Orange county...).
     
  59. thanks for uploading. I volatility normalized your different systems and fed the return streams into my system picker. I didn't come out well. It underperformed your equally weighted portfolio. In my research, system timing does work but it tends to be sensitive to the characteristics of the systems that are fed in and also the correlations within the basket.
     
  60. Can you elaborate on "volatility normalized?"
     
  61. Trades

    Code:
            code contractid     filled_datetime  filledtrade  filledprice
    2884      AEX     201503 2015-03-06 08:02:31           -1    488.15000
    2878      ASX     201503 2015-03-06 01:00:49           -2   5870.00000
    2881    AUS10     201503 2015-03-06 01:14:04           -1     97.40500
    2880     AUS3     201503 2015-03-06 01:15:24           -1     98.08000
    2879  AUSSTIR     201606 2015-03-06 02:12:19            3     97.90000
    2882  AUSSTIR     201606 2015-03-06 02:23:32           -3     97.89000
    2883     BUND     201506 2015-03-06 07:36:48            1    156.99000
    2887     BUND     201506 2015-03-06 14:46:53           -1    156.57000
    2886     CORN     201512 2015-03-06 14:30:00           -1    410.75000
    2885   NASDAQ     201503 2015-03-06 14:05:22           -1   4447.00000
    2888     US10     201506 2015-03-06 15:16:13           -1    126.03125
    
    Slippage in GBP, for entire trade
    
             code  gbpt_slippage_process  gbpt_slippage_bidask  gbpt_slippage_execution  gbpt_slippage_all_trading  gbpt_slippage_total
    2879  AUSSTIR                 -37.06                 37.06                   -74.12                     -37.06               -74.12
    2887     BUND                 -21.91                  3.65                    -7.30                      -3.65               -25.56
    2883     BUND                   7.30                  3.65                    -7.30                      -3.65                 3.65
    2886     CORN                  -4.09                 -0.00                     8.18                       8.18                 4.09
    2880     AUS3                  -7.70                  7.70                    15.41                      23.11                15.41
    2888     US10                  30.69                  5.11                    10.23                      15.34                46.03
    2881    AUS10                  34.78                 11.59                    23.19                      34.78                69.56
    2882  AUSSTIR                  37.06                 37.06                    -0.00                      37.06                74.12
    2884      AEX                  94.93                  7.30                    -0.00                       7.30               102.23
    2885   NASDAQ                  83.47                  1.64                    36.00                      37.64               121.11
    2878      ASX                 371.01                 12.79                   -51.17                     -38.38               332.63
    
    Total slippage: process 588.480000; bidask 127.550000; execution -46.880000; all trading 80.670000; grand total 669.150000
    
    Most of these trades make sense; post NFP sell off reducing positions in both bonds and stocks, including selling the Bund I'd bought in the morning. The AUSSTIR is a little more perplexing. The system shouldn't just buy and then sell 3 lots, only one tick apart on price.

    I've dug into it a bit and I can't find any obvious bug or explanation. This is one of the reasons why I use trade limits - caps on the numbers of trades done in each day. I will watch carefully to see if this happens again.

    P&L: -£1153. I was actually up until the NFP came out when I dropped £4k quite quickly. Still could have been a lot worse.

    Here is another issue which was easier to diagnose and fix. On friday morning one of my regular 'health checks' highlighted an issue (actually it was Thursday night, but I had better things to do than sort it out then).

    Heres an extract:

    Code:
           code contractid  ib_position locked  my_position problem
    
    7   LIVECOW     201510            1  False            0    True
    Basically IB thinks I am long one october contract live cattle, whereas I think I am flat.

    It's vital that this issue is resolved. If I think my optimal position is 1 lot, which if IB is actually at I already have, then I'll buy an extra lot to bring me into line. For this reason whenever one of these health checks fails in this way it will lock that instrument so it won't trade until I manually unlock it. Heres an extra from the same regular report:

    Code:
    Instruments with trade control:
    
    LIVECOW NOOPEN
    AUS10 NOINCREASE
    AUS3 NOINCREASE
    KR10 NOINCREASE
    ....
    
    You can see that LIVECOW is in a state NOOPEN, which means no new trades will be placed until the state is changed. In the other contracts I am not allowing myself to increase my position, though will do reducing trades. Other valid states are OK, NOREDUCTION, STOP (cancel any existing orders and do not issue new ones), CLOSE (issue trades to immediately close the position).

    The first order of business is to have a look at Thursdays trades.

    Code:
    Code             contract_id  orderid        submit       fill   fill_date                   
    LIVECOW  LIVECOW     201510     2874             1            0    np.nan                    
    LIVECOW  LIVECOW     201510     2875             1            1   2015-03-05 16:45:21
    
    There is a shortfall in the first trade. Comparing this with IB account management I can see that both orders were actually filled. So the fill data didn't come back from the API, or was lost somehow.

    I run a function that inserts the fill into my database at the correct price, then run a report to make sure that the positions in my database now match, and then change the status of the LIVECOW instrument so that normal trading can begin again.

    The important thing here is that knowing what your position is, and what orders have been filled or not, is crucial. We have two sources for this information and by comparing them we can avoid problems. Relying on just one source would be dangerous, unless you can be 100% confident in it. That hasn't been my experience with IB. Sometimes the status of positions that comes back is wrong (which means my database is correct), and sometimes its fills that are missed (which means IB positions are right and my database is wrong).

    (Such problems are not uncommon in large funds eithier, where fortunately there are middle office staff to track down and solve the problems).

    The small downtime and work this creates is manageable with relatively slow trading. With quicker trading you'd need to think differently.

    That's what I would have expected. I'd be curious as to what kind of characteristics / correlations do work. Is your timing basically 'momentum' (systems that work continue to do so) or 'reversion' (bet against systems that have worked). I can think of examples where 'momentum' might work. For example if there is a secular trend then trend followers who are faster than that slow trend will pick up on it and outperformance will be repeated. I wouldn't bother as its simpler to capture the effect with another, slower, trend following model.
     
  62. Todays trades

    Code:
    Trades take 1
    
             code contractid     filled_datetime  filledtrade  filledprice
    2892      ASX     201503 2015-03-09 02:14:43           -1   5813.00000
    2891     AUS3     201503 2015-03-09 02:39:17           -2     98.02000
    2890  AUSSTIR     201606 2015-03-09 02:39:01           -4     97.84000
    2893     BOBL     201506 2015-03-09 07:35:23           -1    129.17000
    2904  EDOLLAR     201809 2015-03-09 12:18:35           -1     97.41000
    2906   NASDAQ     201503 2015-03-09 14:06:30           -1   4405.50000
    2903     PLAT     201504 2015-03-09 12:06:45           -1   1155.60000
    2905      US2     201506 2015-03-09 14:02:03           -1    109.09375
    2900      VIX     201504 2015-03-09 11:46:13            1     17.60000
    
    
    Slippage in GBP, for entire trade
    
    
             code  gbpt_slippage_process  gbpt_slippage_bidask  gbpt_slippage_execution  gbpt_slippage_all_trading  gbpt_slippage_total
    2905      US2                 -41.36                  5.17                   -10.34                      -5.17               -46.53
    2893     BOBL                 -36.13                  3.61                    -7.23                      -3.61               -39.75
    2890  AUSSTIR                  -0.00                 24.75                   -49.51                     -24.75               -24.75
    2900      VIX                   0.00                 16.54                   -33.09                     -16.54               -16.54
    2891     AUS3                  -0.00                 15.44                   -30.88                     -15.44               -15.44
    2904  EDOLLAR                   4.14                  8.27                   -16.54                      -8.27                -4.14
    2892      ASX                  32.05                 12.82                    -0.00                      12.82                44.86
    2906   NASDAQ                  46.32                  1.65                     3.31                       4.96                51.28
    2903     PLAT                  74.44                  9.93                    -0.00                       9.93                84.37
    
    Some nice fills there.

    Not so nice P&L: LOSS £2,303.
     
  63. Hello globalarbtrader,

    Very interesting thread and lots to learn from your experience.
    Could you post the profit factor you achieved in real money trading ?
     
  64. I'd never heard of that performance metric until just now. Googling it seems to be defined as gross profits over gross losses. Since I don't track individual 'bets' as such I can only do this in terms of days (I'm also not sure what 'gross' means). So I calculated the sum of profits achieved on up days, divided by the sum of losses on down days. And I get 1.62.
     
  65. Outside of "is the resultant P&L positive," what metric(s) matter most to you?
     
  66. In order:

    Realised volatlility versus expectations
    Costs versus expectations
    Skew, and related statistics like average gain to loss.
    Last, and least, Sharpe Ratio; as over short periods of time this has the largest variance.
     
  67. I'd be interested in hearing more about your thoughts re: volatility if you care to elaborate i.e., how you view a scenario such as realized vol > expected vol, how it might impact your trading, how you might tweak, etc.
     
  68. Todays trades
    Code:
             code contractid     filled_datetime  filledtrade  filledprice
    2913      AUD     201506 2015-03-10 06:52:56           -3     0.760800
    2919     BOBL     201506 2015-03-10 07:39:31            1   129.310000
    2924      CAC     201503 2015-03-10 11:27:32           -1  4888.500000
    2930     CORN     201512 2015-03-10 15:15:35           -1   408.250000
    2932     CORN     201512 2015-03-10 16:38:15            1   412.250000
    2907      EUR     201503 2015-03-10 06:41:10            1     1.086000
    2908      EUR     201506 2015-03-10 06:41:10           -1     1.087250
    2909      EUR     201506 2015-03-10 06:50:05           -1     1.080800
    2927   GAS_US     201506 2015-03-10 12:15:52           -1     2.781000
    2918      GBP     201506 2015-03-10 07:25:53           -4     1.507900
    2910      JPY     201503 2015-03-10 06:50:56            1     0.008251
    2911      JPY     201506 2015-03-10 06:50:56           -1     0.008260
    2915      JPY     201506 2015-03-10 06:56:43           -3     0.008224
    2931  LIVECOW     201510 2015-03-10 15:32:37           -1   146.975000
    2917      MXP     201506 2015-03-10 07:27:43           -5     0.063990
    2912      NZD     201506 2015-03-10 06:52:27           -1     0.724500
    2929    SP500     201503 2015-03-10 14:04:16           -1  2058.250000
    2920      V2X     201505 2015-03-10 08:15:39          -10    21.250000
    2925      V2X     201504 2015-03-10 11:35:50            1    21.550000
    2926      V2X     201505 2015-03-10 11:42:46            3    21.750000
    2928      V2X     201505 2015-03-10 13:44:51           -1    21.750000
    2923      VIX     201504 2015-03-10 10:06:53           -1    18.000000
    2933    WHEAT     201512 2015-03-10 16:41:51            1   521.250000
    
    
    Slippage in GBP, for entire trade
    
    
             code  gbpt_slippage_process  gbpt_slippage_bidask  gbpt_slippage_execution  gbpt_slippage_all_trading  gbpt_slippage_total
    2932     CORN                 -49.63                  4.14                    -8.27                      -4.14               -53.76
    2923      VIX                 -33.09                 16.54                   -33.09                     -16.54               -49.63
    2918      GBP                 -41.36                 16.54                    -0.00                      16.54               -24.81
    2928      V2X                  -3.61                  3.61                    -7.23                      -3.61                -7.23
    2925      V2X                   0.00                  3.61                    -7.23                      -3.61                -3.61
    2933    WHEAT                   0.00                  8.27                     0.00                       8.27                 8.27
    2919     BOBL                   0.00                  3.61                     7.23                      10.84                10.84
    2930     CORN                  -0.00                  4.14                     8.27                      12.41                12.41
    2924      CAC                  43.36                  1.81                    -3.61                      -1.81                41.55
    2931  LIVECOW                 109.18                  3.31                    -0.00                       3.31               112.49
    2910      JPY                  57.90                  4.14                   289.50                     293.63               351.53
    2912      NZD                 387.10                  3.31                    -6.62                      -3.31               383.79
    2907      EUR                   8.27                  4.14                   562.45                     566.58               574.86
    2917      MXP                 612.08                 24.81                   -49.63                     -24.81               587.26
    2929    SP500                 752.69                  4.14                    -8.27                      -4.14               748.55
    2913      AUD                 803.97                 19.85                    -0.00                      19.85               823.82
    2908      EUR                    NaN                 -4.14                  -566.58                    -570.72                  NaN
    2909      EUR                    NaN                  8.27                    -0.00                       8.27                  NaN
    2911      JPY                    NaN                 -4.14                  -289.50                    -293.63                  NaN
    2915      JPY                    NaN                 12.41                   -24.81                     -12.41                  NaN
    2920      V2X                    NaN                 72.27                  -144.53                     -72.27                  NaN
    2926      V2X                    NaN                 10.84                   -21.68                     -10.84                  NaN
    2927   GAS_US                    NaN                  9.93                    -6.62                       3.31                  NaN
    
    Total slippage: process 2646.860000; bidask 231.410000; execution -310.220000; all trading -78.830000; grand total 3516.330000
    Quite a bit of trading today. The vast majority was related to rolling, and to 'legging in' trades, as I continue to let the system adjust to the new parameters I put in last week. As new contracts become liquid I'm allowing the system to move to its full position. All this is creating a fair bit of noise, and things should settle down.

    PROFIT: £5039.

    Hit a new HWM today, though had a pullback during US trading and now £3800 below HWM.



    Depends on the strength of the difference, and how widespread it is.

    If its just one instrument and doesn't make the overall performance too variable I'd be relaxed . So the move in SMI when CHF depegged was about 4 sigma. This pushed me into a down day, but the overall p&l barely registered on the standard deviation scale.

    99.9999% of the time if risk spikes then the system will react by cutting positions (also on unexpected profits, though not by as much). Risk spikes are just part of life. You can reduce their effect using risk management, eg not leveraging up on really low vol; not targeting too high an overall risk; diversifying. And you can avoid them by not trading things with really nasty negative skew, like unhedged naked straddles.

    0.0001% of the time if I saw a massive move and the system not reacting as it should then and only then I'd manually cut the risk, say in half.

    I'd never 'tweak'. I might fix the system if the move unearthed a bug in my position scaling code.
     
  69. Todays trades

    Code:
             code contractid     filled_datetime  filledtrade  filledprice
    2934      AUD     201506 2015-03-11 01:57:19           -1       0.7592
    2940     BUND     201506 2015-03-11 14:47:33            1     158.6400
    2939  CRUDE_W     201512 2015-03-11 14:25:55           -1      56.2600
    2942   GAS_US     201505 2015-03-11 15:30:14            1       2.8430
    2943      MXP     201506 2015-03-11 16:30:35            1       0.0644
    2935      NZD     201506 2015-03-11 03:15:52           -1       0.7177
    2936      OAT     201506 2015-03-11 07:37:43            1     156.0600
    2938     PLAT     201504 2015-03-11 12:13:32           -1    1126.9000
    2937      V2X     201505 2015-03-11 09:05:44           -1      21.2500
    2941      V2X     201505 2015-03-11 15:00:59            1      21.6000
    
    
    Slippage in GBP, for entire trade
    
    
             code  gbpt_slippage_process  gbpt_slippage_bidask  gbpt_slippage_execution  gbpt_slippage_all_trading  gbpt_slippage_total
    2939  CRUDE_W                 -53.03                  9.94                   -19.89                      -9.94               -62.98
    2934      AUD                  -6.63                  6.63                    -6.63                      -0.00                -6.63
    2941      V2X                   0.00                  3.58                    -7.16                      -3.58                -3.58
    2942   GAS_US                   0.00                  3.31                    -6.63                      -3.31                -3.31
    2943      MXP                  -6.63                  3.31                     0.00                       3.31                -3.31
    2937      V2X                  -0.00                  1.79                    -0.00                       1.79                 1.79
    2935      NZD                  13.26                  9.94                   -19.89                      -9.94                 3.31
    2940     BUND                   7.16                  3.58                    -7.16                      -3.58                 3.58
    2938     PLAT                  -4.97                 11.60                    -0.00                      11.60                 6.63
    2936      OAT                  10.74                  3.58                     0.00                       3.58                14.33
    
    Total slippage: process -40.100000; bidask 57.260000; execution -67.360000; all trading -10.070000; grand total -50.170000
    Slightly choppy on the V2X today; buying and selling for the massive loss of..... 35 euros (plus commission).

    PROFIT: £6015. Good profits from EURUSD and GBPUSD shorts. So another HWM achieved today.

    An interesting pyschological note; I hadn't realised yesterday had seen quite a big down move on the FTSE. Trading systematically really does detach you from that kind of day to day noise.
     
  70. Yesterdays trades

    Code:
    Trades take 1
    
             code contractid     filled_datetime  filledtrade  filledprice
    2950      AUD     201506 2015-03-12 08:18:01            1       0.7620
    2945    AUS10     201506 2015-03-12 02:21:37            1      97.4575
    2948     AUS3     201506 2015-03-12 03:20:18            1      98.2000
    2944  AUSSTIR     201606 2015-03-12 03:17:13            1      97.9600
    2951  CRUDE_W     201512 2015-03-12 12:21:48            1      57.5600
    2954  CRUDE_W     201512 2015-03-12 16:52:50           -1      56.5800
    2952  EDOLLAR     201809 2015-03-12 12:25:25            1      97.5450
    2949      NZD     201506 2015-03-12 07:05:03            1       0.7297
    
    
    Slippage in GBP, for entire trade
    
    
             code  gbpt_slippage_process  gbpt_slippage_bidask  gbpt_slippage_execution  gbpt_slippage_all_trading  gbpt_slippage_total
    2951  CRUDE_W                 -29.83                  6.63                   -13.26                      -6.63               -36.46
    2950      AUD                  -3.31                  6.63                     0.00                       6.63                 3.31
    2952  EDOLLAR                   8.29                  4.14                    -8.29                      -4.14                 4.14
    2949      NZD                  19.89                  9.94                   -19.89                      -9.94                 9.94
    2954  CRUDE_W                  23.20                  6.63                   -19.89                     -13.26                 9.94
    2944  AUSSTIR                  -6.14                  6.14                    24.57                      30.71                24.57
    2948     AUS3                  19.15                  3.83                     7.66                      11.49                30.64
    2945    AUS10                  97.98                  5.76                     0.00                       5.76               103.75
    
    Total slippage: process 129.230000; bidask 49.700000; execution -29.100000; all trading 20.620000; grand total 149.830000
    
    Yesterdays LOSS £1289
     
  71. What leverage % does your fund typically use?

    Assuming your capital is 100,000 units

    On a futures contract of 100,000 notional value, requiring margin of 5000, how many contracts would you be long or short?
    (Assume no other positions)

    What leverage % is typically used by AHL?
     
  72. Trades

    Code:
    Trades take 1
    
             code contractid     filled_datetime  filledtrade  filledprice
    2965      AUD     201506 2015-03-13 02:08:15            1       0.7657
    2967  AUSSTIR     201606 2015-03-13 02:52:08            2      97.9200
    2970     BOBL     201506 2015-03-13 08:36:02           -1     129.3100
    2971     BUND     201506 2015-03-13 08:36:39           -1     157.7700
    2976     CORN     201512 2015-03-13 15:31:38           -1     407.0000
    2974   GAS_US     201506 2015-03-13 12:21:26           -1       2.7710
    2955     KR10     201506 2015-03-13 01:37:31            1     123.5300
    2959     KR10     201506 2015-03-13 01:50:16            1     123.5300
    2964     KR10     201506 2015-03-13 03:54:37            1     123.4600
    2968     KR10     201503 2015-03-13 03:55:09           -1     123.6200
    2956      KR3     201503 2015-03-13 01:03:10           -4     109.0400
    2975      US2     201506 2015-03-13 14:34:38            1     109.2500
    2969      V2X     201505 2015-03-13 08:11:44           -3      21.1000
    2973      V2X     201505 2015-03-13 13:47:11            1      21.3500
    
    
    Slippage in GBP, for entire trade
    
    
             code  gbpt_slippage_process  gbpt_slippage_bidask  gbpt_slippage_execution  gbpt_slippage_all_trading  gbpt_slippage_total
    2956      KR3                -150.48                 12.54                    -0.00                      12.54              -137.94
    2967  AUSSTIR                 -61.58                 12.32                   -24.63                     -12.32               -73.89
    2965      AUD                 -26.72                  3.34                     6.68                      10.02               -16.70
    2969      V2X                  -5.31                 10.62                   -21.24                     -10.62               -15.93
    2976     CORN                  -8.35                  4.18                    -8.35                      -4.18               -12.53
    2970     BOBL                 -14.16                  3.54                    -0.00                       3.54               -10.62
    2973      V2X                  -1.77                  3.54                    -7.08                      -3.54                -5.31
    2975      US2                   0.00                  5.22                     0.00                       5.22                 5.22
    2974   GAS_US                  16.70                  6.68                   -13.36                      -6.68                10.02
    2971     BUND                  14.16                  3.54                     7.08                      10.62                24.78
    2968     KR10                  25.08                  3.14                    -0.00                       3.14                28.22
    2955     KR10                    NaN                  9.41                   -18.81                      -9.41                  NaN
    2959     KR10                    NaN                  9.41                   -18.81                      -9.41                  NaN
    2964     KR10                    NaN                  6.27                   -12.54                      -6.27                  NaN
    
    Total slippage: process -212.430000; bidask 93.750000; execution -111.060000; all trading -17.350000; grand total -204.680000
    
    PROFIT: £8019. There was a HWM intraday, which I'm now £1200 below.

    The short answer to your question is that with my capital of £400,000 the total nominal size of my positions (using price, not nominal value, so for example a US 20 year bond is worth $160K rather than $100K) is £5.86 million, which is a ratio of 14.6:1.

    The longer answer is that raw leverage isn't a great way to measure risk.

    Fixed income contracts will have naturally higher leverage than say equities or commodities. Of the nearly £6 million of positions, around £1.2m is in australian STIR, £500K in Eurodollar. Another £1.7 million is in bond futures, for a total of £3.4 million. But on a risk weighted basis these are only about a fifth of my risk. Without them the leverage runs at 7 times for the rest of the portfolio.

    Does this mean that I have a dangerously high allocation to fixed income, and toxic leverage? No, as you have to look at things in context. I will remove an instrument whose vol has gone really low compared to its own vol, and the vol of similar instruments, as I did with shatz, where the vol is running at about a quarter of the comparable US 2 year bond future. Similarly if I had been trading CHFEUR before it was pegged, I would have removed it as the volatility post 2011 was much lower than other currencies. I've made similar decisions with things like Euroyen STIR in the past.

    I can't log into IB right now, but last time I checked I was using about £250K for margin out of my £400K capital, which is high but hardly suicidal.

    As for AHL, well the main influence will be that they have different volatility target. Mine is 25%, and theirs, depending on the fund is around 15%. On a pro rata basis they're probably running about 8.8 times leverage.

    However looking at their p&l by asset class, and based on some inside knowledge, I would say they have a higher allocation to fixed income and STIR in particular, which means the raw leverage for AHL is probably going to be higher.
     
  73. Great journal.
     
  74. It has clearly been a while since I checked my margin, or my memory isn't great. I'm currently using £127,000 of margin on a £400,000 account, or an average of 2.2% of the notional leveraged value of £5.9 million.
     
  75. Todays trades


    code contractid filled_datetime filledtrade filledprice
    2989 AEX 201503 2015-03-16 12:13:43 -1 497.10000
    2990 AEX 201504 2015-03-16 12:13:43 1 495.90000
    2980 BOBL 201506 2015-03-16 07:35:26 -4 129.29000
    2987 BOBL 201506 2015-03-16 09:34:53 -1 129.17000
    2982 CAC 201504 2015-03-16 08:07:40 1 5020.50000
    2992 CORN 201512 2015-03-16 14:05:03 -1 404.25000
    2983 EUROSTX 201503 2015-03-16 08:19:04 2 3673.00000
    2984 EUROSTX 201506 2015-03-16 08:19:04 -2 3597.00000
    2986 EUROSTX 201506 2015-03-16 08:23:31 -7 3596.00000
    2985 EUROSTX 201503 2015-03-16 08:23:31 7 3672.00000
    2978 KR10 201506 2015-03-16 01:08:09 -2 123.37000
    2979 KR3 201506 2015-03-16 01:13:41 5 108.98000
    2995 LIVECOW 201510 2015-03-16 15:44:16 -1 145.87500
    2991 MXP 201506 2015-03-16 12:21:56 1 0.06428
    2981 SMI 201506 2015-03-16 08:05:02 1 9011.00000
    2988 SOYBEAN 201511 2015-03-16 12:07:18 -1 951.50000
    2993 US10 201506 2015-03-16 14:13:59 1 127.50000
    2996 WHEAT 201512 2015-03-16 16:32:00 1 535.00000


    Slippage in GBP, for entire trade


    code gbpt_slippage_process gbpt_slippage_bidask gbpt_slippage_execution gbpt_slippage_all_trading gbpt_slippage_total
    2981 SMI -859.17 3.36 0.00 3.36 -855.82
    2995 LIVECOW -442.14 10.13 -20.25 -10.13 -452.27
    2979 KR3 -158.38 15.84 -31.68 -15.84 -174.22
    2985 EUROSTX 0.00 24.88 -99.51 -74.63 -74.63
    2983 EUROSTX -14.22 7.11 0.00 7.11 -7.11
    2992 CORN -0.00 4.22 -8.44 -4.22 -4.22
    2991 MXP -6.75 3.38 3.38 6.75 0.00
    2987 BOBL 7.11 3.55 -7.11 -3.55 3.55
    2982 CAC 3.55 3.55 3.55 7.11 10.66
    2988 SOYBEAN -0.00 4.22 8.44 12.66 12.66
    2996 WHEAT 8.44 4.22 0.00 4.22 12.66
    2993 US10 21.09 5.27 0.00 5.27 26.37
    2980 BOBL -0.00 14.22 28.43 42.65 42.65
    2989 AEX 78.19 3.55 -0.00 3.55 81.74
    2978 KR10 304.10 6.34 -12.67 -6.34 297.76
    2984 EUROSTX NaN -7.11 -0.00 -7.11 NaN
    2986 EUROSTX NaN -24.88 99.51 74.63 NaN
    2990 AEX NaN -3.55 7.11 3.55 NaN

    Total slippage: process -1058.180000; bidask 78.300000; execution -29.240000; all trading 49.040000; grand total -1080.220000


    (Has anyone else noticed that we've lost the CODE option in the editor?)

    Lots of rolls, nearly all done now, except FTSE which I have to roll manually, since I refuse to pay the LIFFE data fees. Annoyingly this involves stopping my IB API server, and all my code, going to IB web trader (you can only run one 'trading' thing at a time with IB), trading, and then restarting everything.

    Bad Bobl Beat, and worth checking out. You might think well its £40, you're targeting £6K a day vol, who cares? But £40 x 250 = £10,000; 2.5% of capital; one tenth of my volatility target. So this would reduce a sharpe of 1.0 to 0.9. Here are the diagnostics for this trade

    algo_side_price
    2015-03-16 07:34:34 129.30
    2015-03-16 07:34:36 129.29
    dtype: float64

    algo_offside_price
    2015-03-16 07:34:34 129.31
    2015-03-16 07:34:36 129.30
    dtype: float64

    algo_Mode
    2015-03-16 07:34:34 Passive
    2015-03-16 07:34:39 Aggresive
    2015-03-16 07:34:39 Aggressive
    2015-03-16 07:34:42 Finished
    dtype: object

    algo_message
    2015-03-16 07:34:34 StartingPassive
    2015-03-16 07:34:37 Adverse price move moving to aggressive for 29...
    2015-03-16 07:34:39 NowAggressive
    2015-03-16 07:34:39 tick no action 2980 BOBL 201506
    dtype: object

    algo_limit_price
    2015-03-16 07:34:34 129.31
    2015-03-16 07:34:39 129.29
    dtype: float64


    So basically we submitted a limit order to sell at 31's with the book at 129.30 -31. Then 2 seconds later the spread shifted to 129.29-30. My algo in these circumstances will cut its losses and hit the bid, so the limit was changed to 129.29, and executed there. Good thing as well, the price kept sinking and we had to sell another lot 12 ticks lower (which fortunately was executed at the offer).

    P&L LOSS £1942
     
  76. Todays trades

    Code:
            code contractid     filled_datetime  filledtrade  filledprice
    3005     BOBL     201506 2015-03-17 14:39:47           -1      129.050
    3002      BTP     201506 2015-03-17 11:21:05           -1      140.840
    2998     FTSE     201503 2015-03-17 10:11:16            2     6822.000
    2999     FTSE     201506 2015-03-17 10:14:36           -2     6762.000
    3004   GAS_US     201506 2015-03-17 13:15:24            1        2.898
    2997      KR3     201506 2015-03-17 01:05:03            2      108.980
    3003   PALLAD     201506 2015-03-17 13:10:44           -1      766.300
    3006  SOYBEAN     201511 2015-03-17 15:44:13           -1      946.250
    3001      V2X     201505 2015-03-17 11:09:21            2       21.950
    
    Slippage in GBP, for entire trade
    
    
             code  gbpt_slippage_process  gbpt_slippage_bidask  gbpt_slippage_execution  gbpt_slippage_all_trading  gbpt_slippage_total
    2997      KR3                 -25.34                  6.34                   -12.67                      -6.34               -31.68
    3001      V2X                  -3.55                  7.11                   -14.22                      -7.11               -10.66
    3005     BOBL                  -0.00                  3.55                    -0.00                       3.55                 3.55
    3002      BTP                  -0.00                  3.55                     7.11                      10.66                10.66
    3003   PALLAD                  15.19                  3.38                    -6.75                      -3.38                11.81
    3006  SOYBEAN                  12.66                  4.22                    -0.00                       4.22                16.88
    3004   GAS_US                  70.88                 10.13                   -20.25                     -10.13                60.75
    2998     FTSE                    NaN                   NaN                      NaN                        NaN                  NaN
    2999     FTSE                    NaN                   NaN                      NaN                        NaN                  NaN
    
    Total slippage: process 69.840000; bidask 38.280000; execution -46.780000; all trading -8.530000; grand total 61.310000
    
    
    The final roll is done for the season, the FTSE. This was a rather painful exercise since I have to trade it completely manually (hence all the NaN's above), which means shutting down my system since IB won't allow you to run both an API session and a trading front end, launching the web trader, doing the trade, entering the fills manually into my database, and restarting the system.

    I took this as an opportunity to switch over from my backup machine, which I've been running with for a few weeks as a test, back to my primary machine. It's good practice to do this regularly.

    I also did some trading to crystallise some tax losses in my long only IB account. If anyone from IB is reading this, I have to say that your trading front ends are all utter crud, and if I wasn't using the API 99.999% of the time I'd have given up on you a long time ago. TWS is hopelessly bloated, slow and unstable. Webtrader hangs when I try and use it. Webtrader Beta is barely useable, in the sense that I can submit one order and then it hangs when I try and do the second one, so I then I have to restart it, typing in my poxy security code each time.

    Profit £3198. Just over £3K under HWM. Profit since inception April 6th 2014, £373K. 13 trading days left in this tax year, so an outside chance I'll get to £400K (and an almost equal chance of dropping back to £350K).
     
  77. Todays trades

    Code:
             code contractid     filled_datetime  filledtrade  filledprice
    3008      AUD     201506 2015-03-18 06:27:30           -1      0.75690
    3012      AUD     201506 2015-03-18 16:23:36            1      0.76090
    3018      AUD     201506 2015-03-18 19:24:55            1      0.77370
    3007  AUSSTIR     201606 2015-03-18 03:04:33           -1     97.94000
    3009     BOBL     201506 2015-03-18 11:15:13            1    129.27000
    3011     CORN     201512 2015-03-18 14:17:21           -1    396.50000
    3013      EUR     201506 2015-03-18 18:25:04            1      1.07980
    3014      GBP     201506 2015-03-18 18:27:56            1      1.48450
    3015      MXP     201506 2015-03-18 18:32:33            2      0.06549
    3019      NZD     201506 2015-03-18 19:34:44            1      0.74310
    3010     PLAT     201504 2015-03-18 12:08:16           -1   1090.40000
    3017     PLAT     201504 2015-03-18 18:56:33            1   1112.00000
    
    
    Slippage in GBP, for entire trade
    
    
             code  gbpt_slippage_process  gbpt_slippage_bidask  gbpt_slippage_execution  gbpt_slippage_all_trading  gbpt_slippage_total
    3014      GBP                -116.23                  6.34                    12.68                      19.02               -97.21
    3007  AUSSTIR                 -43.64                  6.23                    -0.00                       6.23               -37.41
    3013      EUR                 -25.36                  4.23                    -8.45                      -4.23               -29.59
    3019      NZD                 -40.57                  6.76                    13.52                      20.29               -20.29
    3012      AUD                 -10.14                  6.76                    -6.76                       0.00               -10.14
    3017     PLAT                 -25.36                 11.83                     3.38                      15.22               -10.14
    3009     BOBL                   0.00                  3.57                    -7.15                      -3.57                -3.57
    3010     PLAT                   6.76                  5.07                    -0.00                       5.07                11.83
    3011     CORN                  -0.00                  4.23                     8.45                      12.68                12.68
    3008      AUD                  10.14                  3.38                    -0.00                       3.38                13.52
    3018      AUD                  30.43                  3.38                   -13.52                     -10.14                20.29
    3015      MXP                  60.86                  6.76                    20.29                      27.05                87.91
    
    Total slippage: process -153.110000; bidask 68.540000; execution 22.440000; all trading 91.000000; grand total -62.120000
    Cutting long USD positions left, right and centre. I wonder why? (rhetorical question)

    Todays LOSS: £7879

    Ouch. Thanks Janet. The annoying thing was I was up for the day, and at a new HWM, at lunchtime. Bet you can't guess when the FOMC announcement was:

    (columns are date/time, account value, gain or loss since last snapshot, drawdown from high water mark, total profits to date) All GBP.

    Code:
    2015-03-17 19:16:44.964834    556080.20  -837.51  -3247.95  373631.19
    2015-03-18 00:05:25.294808    557291.86  1211.66  -2036.29  374842.85
    2015-03-18 01:05:24.689432    556595.92  -695.94  -2732.23  374146.91
    2015-03-18 02:05:24.994396    556025.14  -570.78  -3303.01  373576.13
    2015-03-18 03:05:25.424133    556770.28   745.14  -2557.87  374321.27
    2015-03-18 04:05:25.232373    556059.78  -710.50  -3268.37  373610.77
    2015-03-18 05:05:24.866376    557235.84  1176.06  -2092.31  374786.83
    2015-03-18 06:05:25.239753    558442.70  1206.86   -885.45  375993.69
    2015-03-18 07:05:25.356672    558364.96   -77.74   -963.19  375915.95
    2015-03-18 08:05:25.333822    558187.11  -177.85  -1141.04  375738.10
    2015-03-18 09:05:25.257987    557515.97  -671.14  -1812.18  375066.96
    2015-03-18 10:05:25.257032    561707.22  4191.25      0.00  379258.21
    2015-03-18 11:05:25.914809    559794.71 -1912.51  -1912.51  377345.70
    2015-03-18 12:05:25.605905    562490.89  2696.18      0.00  380041.88
    2015-03-18 13:05:25.934402    563377.92   887.03      0.00  380928.91
    2015-03-18 14:05:25.221712    562596.39  -781.53   -781.53  380147.38
    2015-03-18 15:05:25.308285    562982.38   385.99   -395.54  380533.37
    2015-03-18 16:05:25.468955    558467.23 -4515.15  -4910.69  376018.22
    2015-03-18 17:05:25.408410    557261.09 -1206.14  -6116.83  374812.08
    2015-03-18 18:05:25.147163    550754.80 -6506.29 -12623.12  368305.79
    2015-03-18 19:05:25.184300    548201.16 -2553.64 -15176.76  365752.15
    
    You won't be surprised to hear that the biggest loser was EURUSD which moved 2 big figures (although to put in perspective, only back to the levels of 10 days ago); in risk terms it and the other dollar IMM's moved around 2 to 2.5 standard deviations; though I also lost in Crude and platinum today.

    I still have half my EURUSD position on, as I'm still short one lot due to the large risk of the contract (standard deviation of £12K a year), unlike say MXP where I cut by two thirds; from short 3 lots to one. This is the main disadvantage of having a relatively small account trading lots of instruments. But the diversification benefit outweighs the ability to reduce positions more gradually.
     
  78. Todays trades

    Code:
             code contractid     filled_datetime  filledtrade  filledprice
    3023     AUS3     201506 2015-03-19 02:35:05            1    98.280000
    3030     BOBL     201506 2015-03-19 14:44:25            1   129.400000
    3027  CRUDE_W     201512 2015-03-19 12:14:04            1    53.420000
    3020      GBP     201506 2015-03-19 02:01:57            1     1.493200
    3021      JPY     201506 2015-03-19 02:06:26            1     0.008331
    3032  LIVECOW     201510 2015-03-19 16:10:19            1   149.225000
    3022      MXP     201506 2015-03-19 02:13:09            1     0.065900
    3031     PLAT     201504 2015-03-19 16:01:38            1  1119.700000
    3033      US2     201506 2015-03-19 17:22:56           -1   109.351562
    3024      V2X     201505 2015-03-19 08:05:11           -1    21.200000
    3026      V2X     201505 2015-03-19 11:36:26            1    21.800000
    3029      V2X     201505 2015-03-19 16:23:11            1    21.900000
    3025      VIX     201505 2015-03-19 11:53:25           -1    17.600000
    
    
    Slippage in GBP, for entire trade
    
    
             code  gbpt_slippage_process  gbpt_slippage_bidask  gbpt_slippage_execution  gbpt_slippage_all_trading  gbpt_slippage_total
    3027  CRUDE_W                 -64.24                  6.76                   -13.52                      -6.76               -71.00
    3021      JPY                 -42.26                  4.23                    -8.45                      -4.23               -46.49
    3025      VIX                  -0.00                 16.91                   -33.81                     -16.91               -16.91
    3024      V2X                 -12.51                  3.57                    -0.00                       3.57                -8.93
    3029      V2X                   1.79                  1.79                    -3.57                      -1.79                 0.00
    3030     BOBL                   7.15                  3.57                    -7.15                      -3.57                 3.57
    3033      US2                  -0.00                  5.28                    -0.00                       5.28                 5.28
    3026      V2X                   1.79                  3.57                     0.00                       3.57                 5.36
    3020      GBP                  10.57                  4.23                    -8.45                      -4.23                 6.34
    3022      MXP                   0.00                 11.83                     0.00                      11.83                11.83
    3023     AUS3                  23.33                  7.78                   -15.55                      -7.78                15.55
    3032  LIVECOW                  13.52                  6.76                     0.00                       6.76                20.29
    3031     PLAT                  27.05                  6.76                    -3.38                       3.38                30.43
    
    Total slippage: process -33.810000; bidask 83.040000; execution -93.880000; all trading -10.880000; grand total -44.680000
    More cutting of long USD vs everything positions this morning.

    This might seem weird but I quite like sharp reversals. It's kind of cool watching the system robotically slash its risk, so often the system doesn't do very much so its nice to see the 'wheels turning' when you get some action, and pyschologically you think 'great banked the money from that trend, less what I lost on the pullback', you've got less risk on, and feel less nervous.

    Sharp reversals can often be more profitable than exiting after a long drawn out end to a trend. For example in 2013, my last year of institutional management, the 2013 JGB reversal was very clean and quick, and we cut positions very fast, and banked a huge profit with hardly any pullback. In contrast the May 2013 UST reversal was relatively long and drawn out and we gave a lot of profit back to the market.

    PROFIT: £768
    Now £14.4 K below the HWM set yesterday lunchtime

    Current positions, as not updated for a while: (ignore diagnostic columns - False is good basically)

    Code:
           code contractid  positions   Lock WrongContract InFwdNotRoll
    13      AEX     201504          1  False         False        False
    32      AUD     201506         -1  False         False        False
    19    AUS10     201506          1  False         False        False
    29     AUS3     201506          2  False         False        False
    24  AUSSTIR     201606          8  False         False        False
    18     BOBL     201506          2  False         False        False
    15      BTP     201506          1  False         False        False
    25     BUND     201506          1  False         False        False
    22      CAC     201504          1  False         False        False
    20     CORN     201512         -8  False         False        False
    7   CRUDE_W     201512         -1  False         False        False
    30  EDOLLAR     201809          3  False         False        False
    9       EUR     201506         -1  False         False        False
    0   EUROSTX     201506         -9  False         False        False
    16  FEEDCOW     201503          1  False         False        False
    2      FTSE     201506         -2  False         False        False
    17   GAS_US     201506         -1  False         False        False
    14      GBP     201506         -2  False         False        False
    4      GOLD     201506         -1  False         False        False
    1       JPY     201506         -3  False         False        False
    26     KR10     201506          1  False         False        False
    27      KR3     201506          7  False         False        False
    31      OAT     201506          1  False         False        False
    23   PALLAD     201506         -1  False         False        False
    28     PLAT     201504         -2  False         False        False
    21      SMI     201506          1  False         False        False
    10  SOYBEAN     201511         -2  False         False        False
    12     US10     201506          1  False         False        False
    5       US2     201506          2  False         False        False
    3       US5     201506          1  False         False        False
    11      V2X     201505         -5  False         False        False
    8       VIX     201505         -2  False         False        False
    6     WHEAT     201512         -2  False         False        False
    
     
  79. Trades

    Code:
             code contractid     filled_datetime  filledtrade  filledprice
    3034      ASX     201506 2015-03-20 01:49:56            1  5967.000000
    3052     BUND     201506 2015-03-20 16:28:05            1   158.760000
    3046     CORN     201512 2015-03-20 15:07:18            1   404.750000
    3051     CORN     201512 2015-03-20 16:19:44            1   408.750000
    3050  EDOLLAR     201809 2015-03-20 17:16:08            1    97.790000
    3048     GOLD     201506 2015-03-20 15:19:40            1  1182.200000
    3040      KR3     201506 2015-03-20 03:17:27            1   109.190000
    3053   NASDAQ     201506 2015-03-20 16:43:28            1  4461.000000
    3045   PALLAD     201506 2015-03-20 14:20:11            1   779.450000
    3047  SOYBEAN     201511 2015-03-20 15:07:14            1   961.250000
    3054    SP500     201506 2015-03-20 16:44:16            1  2101.750000
    3044      US2     201506 2015-03-20 14:11:53            1   109.445312
    3042      V2X     201505 2015-03-20 11:51:22           -1    21.450000
    3043      V2X     201505 2015-03-20 13:50:17           -1    21.350000
    3049    WHEAT     201512 2015-03-20 15:25:57            1   553.750000
    
    
    Slippage in GBP, for entire trade
    
    
             code  gbpt_slippage_process  gbpt_slippage_bidask  gbpt_slippage_execution  gbpt_slippage_all_trading  gbpt_slippage_total
    3052     BUND                   0.00                  3.60                    -7.21                      -3.60                -3.60
    3048     GOLD                   6.75                  6.75                   -13.50                      -6.75                 0.00
    3043      V2X                  -0.00                  1.80                    -0.00                       1.80                 1.80
    3051     CORN                   8.44                  4.22                    -8.44                      -4.22                 4.22
    3045   PALLAD                 -11.81                 10.13                    10.13                      20.25                 8.44
    3047  SOYBEAN                   0.00                  8.44                     0.00                       8.44                 8.44
    3042      V2X                   3.60                  1.80                     3.60                       5.41                 9.01
    3046     CORN                  16.88                  4.22                    -8.44                      -4.22                12.66
    3044      US2                   0.00                  5.27                    10.55                      15.82                15.82
    3040      KR3                   0.00                  3.17                    12.67                      15.84                15.84
    3053   NASDAQ                  20.25                  1.69                    -3.38                      -1.69                18.56
    3054    SP500                  25.31                  4.22                    -8.44                      -4.22                21.10
    3049    WHEAT                  16.88                  8.44                     0.00                       8.44                25.31
    3050  EDOLLAR                   0.00                  4.22                    33.75                      37.97                37.97
    3034      ASX                 272.02                 12.95                     0.00                      12.95               284.98
    
    Total slippage: process 358.320000; bidask 80.920000; execution 21.290000; all trading 102.220000; grand total 460.550000
    LOSS: £9708

    I won't lie to you, I don't like losing money!

    But if you're a medium term trend follower you spend a higher proportion of your time in drawdown than you do not in drawdown....
     
  80. Has this made length of drawdown as an objective function in your strategy design?

    You seem to be very proactive in avoiding the Max DD scenario already.
     
  81. Not really. Its a stat I look at, but not part of the formal design. I'm looking for all the characteristics of a positive skew, momentum style, strategy:

    • positive skew (obviously)
    • ratio of average profit week: average loss week over 1 (not day, as MTM makes it too noisy)
    • compared to zero skew, longer drawdowns
    • compared to zero skew, shallower drawdowns
    • less risk being taken in drawdowns (over and above kelly downsizing for account size)
    • wouldn't be concerned about win ratio being below 0.5
    You can then bootstrap the statistics of things like drawdowns for a given skew, SR, so that when you see a one year 15% drawdown you know how likely that is, and don't panic.
     
  82. Todays trades:

    Code:
             code contractid     filled_datetime  filledtrade  filledprice
    3057      AUD     201506 2015-03-23 07:25:55            1     0.777100
    3056  AUSSTIR     201606 2015-03-23 08:31:17            2    98.020000
    3063     CORN     201512 2015-03-23 14:06:19            2   413.000000
    3062      EUR     201506 2015-03-23 14:01:15            1     1.093000
    3059      JPY     201506 2015-03-23 10:34:54            1     0.008352
    3064  LEANHOG     201506 2015-03-23 15:33:09           -1    73.600000
    3060     PLAT     201504 2015-03-23 12:14:21            1  1142.300000
    3061  SOYBEAN     201511 2015-03-23 12:19:19            1   961.750000
    3058      V2X     201505 2015-03-23 09:12:10           -1    21.550000
    
    
    Slippage in GBP, for entire trade
    
    
             code  gbpt_slippage_process  gbpt_slippage_bidask  gbpt_slippage_execution  gbpt_slippage_all_trading  gbpt_slippage_total
    3056  AUSSTIR                 -37.61                 12.54                   -25.07                     -12.54               -50.14
    3062      EUR                 -25.14                  8.38                     0.00                       8.38               -16.76
    3061  SOYBEAN                   0.00                  8.38                   -16.76                      -8.38                -8.38
    3059      JPY                  -8.38                  4.19                     0.00                       4.19                -4.19
    3058      V2X                  -0.00                  3.62                    -7.23                      -3.62                -3.62
    3063     CORN                  16.76                  8.38                   -16.76                      -8.38                 8.38
    3060     PLAT                   6.70                  8.38                     0.00                       8.38                15.08
    3057      AUD                   6.70                  3.35                     6.70                      10.06                16.76
    3064  LEANHOG                  73.75                  6.70                   -13.41                      -6.70                67.04
    
    Total slippage: process 32.780000; bidask 63.920000; execution -72.530000; all trading -8.610000; grand total 24.170000
    
    Almost out of the long dollar trade now. Just have a short of 2 lots in JPY and the same in GBP. Beautiful trend, thank you market.

    LOSS: £1,437
    Below HWM: -£25K
    Since inception: +£355K

    Steady as she goes. Much less risk on now, expected variability of p&l is probably about half what it was before this 'rout' started.
     
  83. Trades

    Code:
             code contractid     filled_datetime  filledtrade  filledprice
    3070     AUS3     201506 2015-03-24 02:27:38            1     98.27000
    3067  AUSSTIR     201606 2015-03-24 02:04:13            1     98.05000
    3073     BOBL     201506 2015-03-24 07:33:16           -1    129.23000
    3074     BUND     201506 2015-03-24 07:36:27           -1    158.32000
    3080      CAC     201504 2015-03-24 14:24:28            1   5085.50000
    3082     CORN     201512 2015-03-24 17:50:23            1    416.25000
    3078  EDOLLAR     201809 2015-03-24 12:10:18            1     97.84500
    3072      GBP     201506 2015-03-24 06:22:50            1      1.49350
    3071     KR10     201506 2015-03-24 02:28:43            1    124.89000
    3081  LEANHOG     201506 2015-03-24 17:24:38            1     74.92500
    3079      US5     201506 2015-03-24 14:02:10            1    120.03125
    3075      V2X     201505 2015-03-24 09:03:04           -1     21.35000
    3076      V2X     201505 2015-03-24 10:04:52           -1     21.10000
    3077      V2X     201505 2015-03-24 12:02:22           -1     21.15000
    
    
    Slippage in GBP, for entire trade
    
    
             code  gbpt_slippage_process  gbpt_slippage_bidask  gbpt_slippage_execution  gbpt_slippage_all_trading  gbpt_slippage_total
    3071     KR10                 -12.58                  3.15                    -6.29                      -3.15               -15.73
    3080      CAC                 -10.85                  1.81                    -3.62                      -1.81               -12.65
    3078  EDOLLAR                   4.19                  8.38                   -16.76                      -8.38                -4.19
    3082     CORN                   0.00                  4.19                    -8.38                      -4.19                -4.19
    3073     BOBL                  -0.00                  3.62                    -7.23                      -3.62                -3.62
    3077      V2X                  -1.81                  3.62                    -0.00                       3.62                 1.81
    3072      GBP                  -4.19                  2.10                     4.19                       6.29                 2.10
    3079      US5                   5.24                  2.62                    -5.24                      -2.62                 2.62
    3075      V2X                  -0.00                  3.62                    -0.00                       3.62                 3.62
    3076      V2X                  -1.81                  1.81                     3.62                       5.42                 3.62
    3070     AUS3                  23.45                  7.82                   -15.64                      -7.82                15.64
    3074     BUND                   7.23                  3.62                     7.23                      10.85                18.08
    3067  AUSSTIR                  31.34                  6.27                   -12.54                      -6.27                25.07
    3081  LEANHOG                  40.23                  6.70                   -13.41                      -6.70                33.52
    
    Total slippage: process 80.440000; bidask 59.330000; execution -74.070000; all trading -14.760000; grand total 65.700000
    Starting to build up a short V2X on the back of a decent european stocks rally. Also building up bond risk.

    Risk is still low though, around £4,868 a day

    Here is an excerpt from my daily risk report

    Code:
    Expected annual risk more than GBP6400 per year, GBP400 per day
           code  multisignal  expected_annual_risk  expected_annual_risk_per_contract  position  expected_annual_risk_rounded_pos
    18      V2X         -9.8                  6603                                554       -11                              6095
    36     PLAT         -9.6                  6417                               6667        -1                              6667
    0      CORN        -11.6                  7768                               2494        -3                              7481
    29      GBP        -18.3                 12238                               7779        -1                              7779
    38   GAS_US        -15.2                 10189                               7909        -1                              7909
    19      VIX        -15.2                10214                              4790        -2                              9580
    30      JPY        -15.3                 10243                               5523        -2                             11046
    37  CRUDE_W        -28.3                 18977                              13165        -1                             13165
    
    11     BUND         13.6                  9096                               6533         1                              6533
    22      AEX         14.1                  9471                               8954         1                              8954
    20      ASX          9.8                  6600                               9252         1                              9252
    24      SMI         18.4                 12319                              10043         1                             10043
    23      CAC         11.9                  7988                               5140         2                             10280
    39  AUSSTIR         15.5                 10371                                936        11                             10295
    40  EDOLLAR         16.3                 10904                               2208         5                             11041
    
    Columns are code, signal (a normalised measure of risk, comparable across markets), expected risk annualised sigma if we could take non round positions, risk per contract, position in contracts, risk given we can only trade whole contracts.

    PROFIT: £4,385
    Below HWM £21K
     
  84. Trades

    Code:
            code contractid     filled_datetime  filledtrade  filledprice
    3086     CAC     201504 2015-03-25 11:24:37           -1      5049.50
    3083     KR3     201506 2015-03-25 02:21:55            1       109.29
    3093  NASDAQ     201506 2015-03-25 16:01:21           -1      4368.00
    3094   SP500     201506 2015-03-25 16:04:35           -1      2067.00
    3085     V2X     201505 2015-03-25 08:08:37           -2        21.05
    3092     V2X     201505 2015-03-25 13:06:33            1        21.40
    
    
    Slippage in GBP, for entire trade
    
    
            code  gbpt_slippage_process  gbpt_slippage_bidask  gbpt_slippage_execution  gbpt_slippage_all_trading  gbpt_slippage_total
    3086     CAC                 -12.80                  3.66                    -0.00                       3.66                -9.14
    3093  NASDAQ                  -6.70                  1.68                    -3.35                      -1.68                -8.38
    3092     V2X                  -3.66                  1.83                    -3.66                      -1.83                -5.48
    3085     V2X                 -14.62                 14.62                    -0.00                      14.62                -0.00
    3083     KR3                   0.00                  3.15                     0.00                       3.15                 3.15
    3094   SP500                  50.27                  4.19                     8.38                      12.57                62.83
    
    Total slippage: process 12.490000; bidask 29.130000; execution 1.370000; all trading 30.490000; grand total 42.980000
    
    LOSS £6201
    £27K below HWM

    Markets struggling to get purchase into new trends here. Looks like we're in for a period without any. So will lose some money, but risk reduction will keep losses under control. The game is to hang on to most of the money we made in the good days.
     
  85. Making this look waaaay too easy :cool:
     
  86. "Success in systematic trading is mostly down to avoiding mistakes: over complicating things, being too optimistic about likely returns, taking too much risk and trading too often. I will help you avoid these errors. This won't guarantee large profits, but it will make failure much less likely."
     
  87. Quote from the forthcoming book?

    Will you reference some of your Python code in the book (not necessarily the "secret sauce," but mostly how to handle various bits of data etc.)?
     
  88. I generally put that sort of thing on my blog, it's not a python book.

    If you have any requests for bits of code you'd like to see ('handle various bits of data' a bit vague...) then email me.
     
  89. Trades

    Code:
    Trades take 1
    
             code contractid     filled_datetime  filledtrade  filledprice
    3100      AEX     201504 2015-03-26 13:32:31           -1   482.750000
    3098      CAC     201504 2015-03-26 13:26:09           -1  4957.000000
    3107      CAC     201504 2015-03-26 16:59:17            1  5008.500000
    3102     CORN     201512 2015-03-26 14:06:19            1   418.500000
    3105     CORN     201512 2015-03-26 15:06:56           -1   413.500000
    3101  EDOLLAR     201809 2015-03-26 14:00:33           -1    97.765000
    3099   GAS_US     201506 2015-03-26 13:30:19           -1     2.798000
    3095      JPY     201506 2015-03-26 03:06:27            1     0.008392
    3104      SMI     201506 2015-03-26 14:23:28           -1  8903.000000
    3096      V2X     201505 2015-03-26 13:25:41            6    22.450000
    3103      V2X     201505 2015-03-26 14:22:51            1    22.650000
    3106    WHEAT     201512 2015-03-26 16:33:50           -1   532.000000
    
    
    Slippage in GBP, for entire trade
    
    
             code  gbpt_slippage_process  gbpt_slippage_bidask  gbpt_slippage_execution  gbpt_slippage_all_trading  gbpt_slippage_total
    3099   GAS_US                 -77.08                  3.35                    -6.70                      -3.35               -80.43
    3104      SMI                 -45.08                  3.47                    -6.94                      -3.47               -48.55
    3102     CORN                 -33.51                  4.19                     0.00                       4.19               -29.32
    3105     CORN                  -0.00                  4.19                    -8.38                      -4.19                -4.19
    3103      V2X                  -7.31                  3.66                     0.00                       3.66                -3.66
    3107      CAC                  -3.66                  1.83                     3.66                       5.48                 1.83
    3095      JPY                  16.76                  4.19                    -8.38                      -4.19                12.57
    3106    WHEAT                  -0.00                  8.38                     8.38                      16.76                16.76
    3098      CAC                  21.94                  1.83                    -0.00                       1.83                23.76
    3096      V2X                  21.94                 21.94                     0.00                      21.94                43.87
    3101  EDOLLAR                  16.76                  4.19                    33.51                      37.70                54.46
    3100      AEX                  76.77                  7.31                   -21.94                     -14.62                62.15
    
    Total slippage: process -12.470000; bidask 68.530000; execution -6.790000; all trading 61.740000; grand total 49.250000
    
    
    Continuing to cut risk, down to less than £4K a day expected now. Longs in bonds and STIR, and a short in Gas, are the only positions of note now.

    LOSS: £9891
    £37K below HWM
    P&L since inception: £344K

    Obviously some chunky losses on equities, but also short crude didn't play out well today. Yesterdays expected risk was £4554, so this was a 2 and a bit sigma day, or roughly one in two months loss. NOT so easy... How to put this into perspective? Since I began writing this thread I've made about 24K, or call it 16K a month. Annualised that would still be a 50% return. My conservative expectation is to make about 12% a year (SR of 0.5).

    This is just trading. Unless you're exceptional, or you're running a highly negative skew strategy which one day will blow up in your face, you don't make money every day or every week.

    I won't be updating this journal for a couple of weeks as I'm going to be on holiday, although with access to my system so I will be checking things are ticking over, but I want to do the absolute minimum of screen time otherwise.

    After that I will probably step back to updating weekly.
     
  90. Hello globalarbtrader,

    When you have the time, could you talk a bit about your back-testing methodology ? One interesting topic for me is the relation between in-sample and out-of-sample results.
     
  91. You expect a Sharpe of 12% unlevered, yes? Perhaps this is obvious, given you've returned nearly 100% on your starting capital.



     
  92. Well Sharpe Ratio is return over risk; so it should not be affected by the amount of leverage you are using.

    With a 25% annualised vol target, and an expected Sharpe Ratio of 0.5, my expected return is 12.5% a year with the leverage I've got (I talked about leverage in another post; I think its a poor measure of risk).

    Yes I've made a lot more than that this year (350K on 300K starting capital), for two reasons:

    - I was running a higher than 25% annualised vol target, and with more capital at risk, for much of the year.
    - It's been an exceptionally good year. Even if I'd had the same vol target all I would have made around 57% on my starting capital.
     
  93. ugh, sorry, I meant "return" not Sharpe. Too much Sharpe on my mind these days..
     
  94. Given that it's been such a great year, does that make you nervous that your 25% vol estimate might not be a good estimate (or that, say, its 95% confidence interval might be wider than you think?)

    In other words, what would be the probability of earning 150%, given you expected 12.5%?
     
  95. To be precise I target 25% annualised daily vol. So its the daily vol I'm targeting, not the annual vol. Because of time series correlation, the two might not be the same. Also I get a new figure for daily vol every day, so its easier to know if its in line. I watch my daily vol like a hawk. My vol estimates are pretty good. I've never had a 3 sigma day, up or down. I'm very comfortable with that.

    A better test is to say what is the probability of making 56%, given a 25% sigma, since that abstracts away from the change in my risk target (to repeat 56% is what I would have made if I hadn't adjusted my risk target throughout the year). The answer depends on your underlying Sharpe Ratio, which is unknown. I use 0.5 as a conservative figure. But the backtest, using robust out of sample fitting, comes in at 0.9 Sharpe.

    If the true Sharpe Ratio is 0.5, then the chance of making 56% is around 4%.

    If the true Sharpe is 0.9, then the chance of making 56% is 10%.

    So what we have is eithier a one in 25 year return, or a one in 10 year return.

    (This assumes a normal distribution, which for annual returns is probably okay).

    So my true Sharpe is probably higher than 0.5, but I'm comfortable with this as a conservative lower bound.
     
  96. This is probably something I will put on my blog in due course, and I'll post a link here.
     

  97. Thanks for the explanation.
     
  98. I look forward to it.
     
  99. Doesn't this provoke an interesting question. Is this risk profile really suitable for an individual?
    I can see a fund comprised of long term investments of a small % of liquid net worth tolerating multi year drawdowns or lackluster performance on a strategy which ought to outperform in the long run. Yet "in the long run, we're all dead."

    I think a strategy which either doesn't trade frequently enough or doesn't capture enough advantage per trade to recover to new equity highs quickly is very hard for an individual to cope with while those who can afford to take a longer term view may find it more valuable.

    Would be interested in your thoughts on this.

    I have always viewed trading as being on a continuum from insolvency to retirement. You haven't made it until you've taken your chips off the table for the last time. Although there are always some who are clearly a lot closer to making it than others. Have heard too many stories of blow ups, suicides, etc even amongst multi decade veterans. Flash crashes, errors in judgment, vice, human nature, complacency, or just old man vig.

    The successful traders I know all seem to have an undesirably high emotional exposure to their P&L - which persists well beyond the period of any initial doubts about whether they can make it in this business. There is the eternal trade off between having too much capital exposed - or the equally dangerous having too little exposed which then forces you to spend more time in the markets as you didn't capitalise on the opportunities available. It seems people are sensitive to risks to capital but not appropriately sensitive to risks to time. I would have liked to have realised this earlier in life.

    Speaking personally I have found a generalised anxiety arising in periods of poor strategy performance. It can affect how one views their overall competence and must be guarded against. In later years I determined that it was preferable to turn off the more marginal but still +EV strategies and keep the strategies which make higher and more consistent returns per contract traded. Somebody else can have the more marginal stuff because the cost in anxiety is not worth the increase in performance.* So one can end up with a strategy which trades less but is very very consistent.

    For you, it appears you are capturing an effect which requires long duration of market exposure and therefore this is not an option for you. Thanks for your contributions, always interesting to see how others are doing things.

    * - yet in making that trade off I am again exposed to more years in the market to achieve a goal - but otherwise "the game isn't worth the candle"
     
  100. I think you're right to an extent.

    It's mentally definitely very difficult to trade a positive skew strategy. To take an extreme example, suppose you have a Taleb style tail protect strategy which returns 100% every 10 years, and -5% every year. That is a positive expectation, so worth trading outright. In practice you'd really struggle mentally if that was your only strategy. It only makes sense if you had say a 40% exposure to that, and a 60% exposure to a stocks portfolio, such that the hedge gave you a zero loss in the every decade disaster. But even then you'd be cursing yourself for 9 out of 10 years for buying this insurance.

    On the contrary its very easy mentally to trade a negative skew strategy, and take profits every day. And then every year, or every 5 years, or every 10 years depending on the strategy; you get murdered. Mentally that is easier; at least 99% of the time.

    For a given sharpe ratio you can to an extent choose whether you get that return as positive or negative skew; lots of small up days or occasional large up days (though negative skew tends to have higher sharpe ratio, as thats a poor judge of returns with big tails).

    I know if I backtest only taking the highest sharpe ratio opportunities, then I'd reduce my sharpe ratio. I guess this might be a factor of the length of time I'm generally holding positions; as I'm not familiar with intra day trading I don't really know. However I think it may also be a function of trading style. If you're trend following, you have to cast a lot of lines, hoping one will bite and become a decent trend, taking small losses on the rest. If you wait until it already is a decent trend you've already missed half the profits. If you're mean reverting or relative value, then it often makes sense to wait until the mispricing is higher.

    (There are also higher trading costs if you don't 'leg into' positions but thats a different story)

    My own strategy is reasonably balanced, in the sense that its a combination of negative skew carry (and a bit of relative value) and positive skew trend following. Also, and perhaps that is the most important thing, I only trade a minority of my net worth. The rest is in dividend paying stocks and bonds. From a sharpe ratio perspective this is inefficient. However mentally having the cushion of those dividends coming in every year and not having to touch my trading capital, is more comforting than having to dip into trading capital in loss making years to pay living costs.

    I am however interested in this comment:

    "The successful traders I know all seem to have an undesirably high emotional exposure to their P&L"

    ... which goes against most 'market folklore', that the most succesful traders are those who can gain a degree of emotional detachment. I haven't spent enough time hanging around succesful discretionary traders to know if that is really true. I know plenty of hopeless discretionary traders, including myself, who suffer mental anguish when they lose money; which is why I think that system trading is better for the vast majority of people.

     
  101. Trades since I last posted (26th March):
    Code:
             code contractid     filled_datetime  filledtrade  filledprice
    3108      ASX     201506 2015-03-27 01:50:32           -1  5925.000000
    3136      AUD     201506 2015-03-27 14:13:14           -1     0.774800
    3205      AUD     201506 2015-04-02 02:01:25           -1     0.755400
    3154     AUS3     201506 2015-03-30 01:07:14            1    98.300000
    3166     AUS3     201506 2015-03-30 02:17:19            1    98.300000
    3157  AUSSTIR     201606 2015-03-30 01:24:39           -7    98.080000
    3235  AUSSTIR     201606 2015-04-08 01:36:36            1    98.060000
    3109     BOBL     201506 2015-03-27 07:32:33            1   129.410000
    3127     BOBL     201506 2015-03-27 14:09:42            2   129.410000
    3193     BOBL     201506 2015-04-01 07:34:13           -1   129.340000
    3169     BUND     201506 2015-03-30 07:20:24            1   158.590000
    3124     CORN     201512 2015-03-27 14:06:44           -3   413.250000
    3187     CORN     201512 2015-03-31 17:54:43            1   403.750000
    3214     CORN     201512 2015-04-06 14:30:00            1   412.000000
    3223  EDOLLAR     201809 2015-04-07 12:14:48            1    97.880000
    3178  FEEDCOW     201503 2015-03-30 17:21:51           -1   216.710000
    3145   GAS_US     201506 2015-03-27 14:16:53           -1     2.693000
    3202   GAS_US     201506 2015-04-01 12:16:57           -1     2.679000
    3110      GBP     201506 2015-03-27 07:45:50           -1     1.480500
    3196      GBP     201506 2015-04-01 11:15:11           -1     1.475700
    3238      GBP     201506 2015-04-08 06:11:47            1     1.483100
    3199     GOLD     201506 2015-04-01 12:11:16           -1  1183.500000
    3211     GOLD     201506 2015-04-02 13:10:30            1  1205.100000
    3121      JPY     201506 2015-03-27 13:28:10           -2     0.008403
    3160      KR3     201506 2015-03-30 01:01:36           -1   109.330000
    3151  LIVECOW     201510 2015-03-27 15:31:28           -1   151.700000
    3226  LIVECOW     201510 2015-04-07 15:41:44           -1   149.850000
    3139      MXP     201506 2015-03-27 14:14:57           -4     0.065820
    3190      MXP     201506 2015-04-01 02:04:06           -1     0.065240
    3093   NASDAQ     201506 2015-03-25 16:01:21           -1  4368.000000
    3148      NZD     201506 2015-03-27 14:20:47           -1     0.751900
    3241      OAT     201506 2015-04-08 10:56:17           -1   156.410000
    3181     PLAT     201504 2015-03-31 13:51:28            1  1128.100000
    3184     PLAT     201507 2015-03-31 13:51:28           -1  1129.000000
    3208     PLAT     201507 2015-04-02 12:13:33            1  1156.900000
    3133      SMI     201506 2015-03-27 14:12:02            1  8982.000000
    3094    SP500     201506 2015-03-25 16:04:35           -1  2067.000000
    3274    SP500     201506 2015-04-08 14:14:05            1  2073.000000
    3283      US2     201506 2015-04-09 14:17:25            1   109.640625
    3112      V2X     201506 2015-03-27 08:24:00           -2    21.800000
    3130      V2X     201506 2015-03-27 14:12:54           -7    22.100000
    3172      V2X     201506 2015-03-30 08:53:12           -1    21.550000
    3175      V2X     201506 2015-03-30 11:22:46           -1    21.700000
    3220      V2X     201506 2015-04-07 14:21:50           -1    21.300000
    3286      V2X     201506 2015-04-10 09:03:52           -1    20.600000
    3106    WHEAT     201512 2015-03-26 16:33:50           -1   532.000000
    
    Total slippage: process -611.080000; bidask 320.640000; execution -136.790000; all trading 183.880000; grand total -441.090000
    
    Managed to pay about a quarter of the spread on average, rather than half.

    Current positions:

    Code:
           code contractid  positions   Lock WrongContract InFwdNotRoll
    29      AUD     201506         -2  False         False        False
    18    AUS10     201506          1  False         False        False
    27     AUS3     201506          5  False         False        False
    23  AUSSTIR     201606          5  False         False        False
    17     BOBL     201506          3  False         False        False
    15      BTP     201506          1  False         False        False
    24     BUND     201506          2  False         False        False
    22      CAC     201504          1  False         False        False
    20     CORN     201512         -4  False         False        False
    8   CRUDE_W     201512         -1  False         False        False
    28  EDOLLAR     201809          5  False         False        False
    0   EUROSTX     201506         -9  False         False        False
    2      FTSE     201506         -2  False         False        False
    16   GAS_US     201506         -4  False         False        False
    14      GBP     201506         -2  False         False        False
    1       JPY     201506         -3  False         False        False
    25     KR10     201506          2  False         False        False
    26      KR3     201506          8  False         False        False
    3   LIVECOW     201510         -2  False         False        False
    5       MXP     201506         -5  False         False        False
    19      NZD     201506         -1  False         False        False
    21      SMI     201506          1  False         False        False
    11    SP500     201506          1  False         False        False
    13     US10     201506          1  False         False        False
    6       US2     201506          4  False         False        False
    4       US5     201506          2  False         False        False
    9       V2X     201506        -13  False         False        False
    12      V2X     201505         -5  False         False        False
    10      VIX     201505         -2  False         False        False
    7     WHEAT     201512         -2  False         False        False
    
    P&L in that period: £26,153
    To date: £337K
    Below HWM: £11.1K

    Decent profits in short VIX and GAS_US

    Expected risk: £5,575 per day

    Big shorts: GAS_US (risk £1800 a day), JPY, GBP, MXP, V2X, VIX (so long dollar, short volatility)
    Big longs: US2, AUS10, US10, US5, KR10, BUND, AUS3, KR3, SHATZ (yes.... all bonds)
     
  102. 12 V2X 201505 -5 False False False
    10 VIX 201505 -2 False False False

    What is the difference between these 2? I recognize the May VIX Futures in the first line, so what is the second line? Thanks
     
  103. The first line is the "European VIX" May contract. The second line is the US VIX, also May.

    Note that the VIX has about 9 times the contract value of the V2X, and about 8 times the risk.
     
  104. thank you
     
  105. Thanks for your interesting post.

    I'm not saying that they lose their cool when down on the day or week, or that it affects their judgement; just that negative periods (and the potential for negative periods) affects them more than they would like. And the decisions taken to mitigate this emotional exposure lead to worse returns than would otherwise be achieved. For example, both taking time off and trading smaller positions are detrimental to equity growth but seem to be required in order to maintain the necessary emotional balance.

    It is individual to each trader so not something we could categorise as strictly true or false beyond the broad generalisation that (most) people do not seem to enjoy losing money. As for any mental anguish it could create - I don't see why it would be different whether the losses occurred due to manual or automated trading. Though I agree that most people do not have the appropriate personality to be traders.


    This is almost an example of what I mean. Richard Thaler (U Chicago) termed this "mental accounting". However in your case I'm not sure your emotional exposure to P&L could be termed undesirable, unless a down year is going to cause you anxiety.

    Your posts remind me a little of an ex-IB chap I know who retired in his late 30s. Work and particularly his colleagues began to grate on him; the culture/attitudes, some people being less than honest with clients etc, and what he termed a myopic obsession with money and status. He was far happier with his freedom and time after leaving work than he ever was grousing about bonuses and chasing new toys.

    Given the diminishing marginal utility of money, choosing to trade at a level where it can be challenging and worthwhile but avoid risking your financial security is sensible. What you are protecting is the freedom and time money can buy. And with this foundation in place, an automated trend following strategy which might be in drawdown for more than a week or so could be a perfectly appropriate choice.

    Unless you're in the low latency space I'd be very surprised if there were any short term trading strategies which could be fully automated. For those using trading to bootstrap, short term futures strategies can make the most of the ability to leverage, reduce risk by being in the market for short periods of time and always flat at the end of each session. Of course the % of net worth risked will reduce after capacity is reached and the surplus invested elsewhere.
     
  106. Report since April 10th


    Market moves:

    Big falls in Korean bonds (7 daily sigma move), Aussie rates, Italian bonds (greek contagion?); all of which unfortunately are longs. Equities and US bonds were up, Korean equities biggest riser, also rallies in currencies against the $ (again, not great, the end of the best trend of the last few months).

    P&L: MINUS 27, 763, or 6.9% of capital
    Biggest losses in GBP, KR10

    Drawdown is 9.4% of capital
    The average DD from simulation is 9.2%.
    The worst drawdown in live trading until now was 8.9%

    Trades since I last posted:

    Code:
             code contractid     filled_datetime  filledtrade  filledprice
    3298      AEX     201504 2015-04-13 08:10:43            1    506.40000
    3352      AEX     201504 2015-04-15 08:22:46           -1    506.10000
    3355      AEX     201505 2015-04-15 08:22:46            1    501.35000
    3409      AEX     201505 2015-04-17 16:30:48           -1    489.65000
    3289      ASX     201506 2015-04-13 01:30:00            1   5981.00000
    3454      ASX     201506 2015-04-20 01:47:25           -1   5796.00000
    3367      AUD     201506 2015-04-16 02:54:28            1      0.77410
    3394    AUS10     201506 2015-04-17 02:28:22            1     97.64000
    3448     AUS3     201506 2015-04-20 01:02:57           -1     98.20000
    3457     AUS3     201506 2015-04-20 02:10:00           -1     98.19000
    3397     BOBL     201506 2015-04-17 07:40:05            1    129.70000
    3331      CAC     201504 2015-04-14 13:53:35           -1   5223.00000
    3334      CAC     201505 2015-04-14 13:53:35            1   5163.00000
    3370      CAC     201505 2015-04-16 08:05:37            1   5172.50000
    3403      CAC     201505 2015-04-17 11:44:58           -1   5098.50000
    3361     CORN     201512 2015-04-15 14:30:01           -1    396.75000
    3406  CRUDE_W     201512 2015-04-17 12:13:09            1     61.10000
    3385  EDOLLAR     201809 2015-04-16 16:42:36            1     97.89000
    3445  EDOLLAR     201809 2015-04-17 19:14:41           -1     97.95500
    3316      EUR     201506 2015-04-14 02:16:36           -1      1.05920
    3391      EUR     201506 2015-04-16 19:42:31            1      1.08090
    3337  EUROSTX     201506 2015-04-14 16:00:23           -3   3702.00000
    3388   GAS_US     201506 2015-04-16 18:06:47            1      2.70400
    3292      GBP     201506 2015-04-13 01:38:28           -1      1.46340
    3364      GBP     201506 2015-04-15 19:16:24            1      1.48420
    3493     GOLD     201506 2015-04-23 12:09:53           -1   1188.30000
    3487     KR10     201506 2015-04-23 02:28:40           -1    124.64000
    3451      KR3     201506 2015-04-20 01:10:31           -1    109.59000
    3460      KR3     201506 2015-04-20 02:20:18           -1    109.58000
    3490      KR3     201506 2015-04-23 03:26:40           -1    109.39000
    3472  LEANHOG     201506 2015-04-20 15:05:00           -1     76.50000
    3418      MXP     201506 2015-04-17 18:47:36            1      0.06502
    3313   NASDAQ     201506 2015-04-13 14:54:23            1   4435.50000
    3412   NASDAQ     201506 2015-04-17 16:36:14           -1   4345.75000
    3502   NASDAQ     201506 2015-04-24 14:03:09            1   4512.50000
    3358      OAT     201506 2015-04-15 11:16:46            1    157.30000
    3499      OAT     201506 2015-04-24 11:51:35           -1    156.88000
    3415  SOYBEAN     201511 2015-04-17 18:18:26           -1    956.00000
    3307      V2X     201505 2015-04-13 14:52:42            5     19.60000
    3310      V2X     201506 2015-04-13 14:52:42           -5     20.00000
    3463      V2X     201506 2015-04-20 08:06:05            4     22.15000
    3478      V2X     201506 2015-04-22 11:50:15            1     21.85000
    3496      V2X     201506 2015-04-24 08:10:54            2     21.75000
    3325      VIX     201505 2015-04-14 13:40:49            2     16.05000
    3328      VIX     201506 2015-04-14 13:41:13           -2     16.95000
    3400      VIX     201506 2015-04-17 10:18:53           -1     16.60000
    
    
    Total slippage £175.

    Positions:

    Code:
           code contractid  positions 
          AUD     201506         -1 
       AUS10     201506          2 
         AUS3     201506          3  
      AUSSTIR     201606          5 
         BOBL     201506          4 
          BTP     201506          1 
         BUND     201506          2 
        CAC     201505          1 
        CORN     201512         -5 
      EDOLLAR     201809          5 
      EUROSTX     201506        -12 
         FTSE     201506         -2 
       GAS_US     201506         -3 
          GBP     201506         -2 
         GOLD     201506         -1 
          JPY     201506         -3  
         KR10     201506          1 
          KR3     201506          5  
      LEANHOG     201506         -1 
       LIVECOW     201510         -2 
           MXP     201506         -4  
        NASDAQ     201506          1 
          NZD     201506         -1
          SMI     201506          1  
      SOYBEAN     201511         -1
        SP500     201506          1 
         US10     201506          1 
          US2     201506          4  
           US5     201506          2  
          V2X     201506        -11 
          VIX     201506         -3  
        WHEAT     201512         -2 
    


    Risk: Overall risk is low, as you'd expect given losses, £4500 per day target.

    Big shorts in GAS, JPY, GBP, GOLD, LIVECOW.
    Big longs in SMI, BUND, NASDAQ, Eurodollar, SP500.
     
  107. I enjoy reading how almost callously you regard your losses lol.
     
  108. If you can't do that, its very hard to trade...

    One trick I found is to only look at drawdown in %. Makes it easier than cash terms.

    I admit it would be harder if last financial year hadn't been so amazing.
     
  109. I should add that although I paid slippage of £175, I would have paid £240 had I paid half the bid/ask spread each time (i.e. just crossed the spread) which is what I assume I do in simulation. It doesn't make sense to include a figure like £175 in without explaining the context and what my expectations are.
     
  110. (This post doesn't form part of this thread, but I will be perma-linking to it from other posts to save time and hassle)

    I don't feed trolls. So if you see a reply to my posts that I've ignored, its because I've ignored that poster entirely (so I literally won't see anything they write on elitetrader).

    Trolls will often cast aspersions on other peoples abilities, skill or experience; or ask for proof.

    I do not think such criticism is valid in my case. If you click through to my blog (http://qoppac.blogspot.co.uk/p/about-me.html) you will see that there is a link to my linked in profile (http://uk.linkedin.com/pub/robert-carver/27/75a/132). So my real name and experience are there for all to see. When another poster claims I am ignorant in some way I suggest you have a look at my publically available CV and ask yourself whether it is really likely that such a claim is true. As the rest of this thread shows I'm also posting my actual trading record.

    Trolls will often claim that other people are "selling" something.

    Well I'm not. I will sometimes post links to my blog, but if you check you'll see there are no ads on my blog; it earns me nothing. I am writing a book on systematic trading. However as anyone who has done that themselves will know, its unlikely this will be hugely profitable. YesI also do consulting; but I don't tote for business on ET, and indeed I've turned away people who've offered to pay me to help them. I work only for institutional managers with whom I already have a relationship. Nearly all of my income comes from investment and trading.

    My overwhelming motivation for posting here is to educate others, and myself, and to have interesting, civil discussions.
     
  111. I do hope the volpikers of the world don't get you down and keep you from continuing to post. A lot of us are finding value in your posts. Thanks.
     
  112. Report since April 25th

    Market moves:
    Well in case you've had your head in the sand it's been quite exciting (http://www.bloomberg.com/news/articles/2015-05-06/there-have-been-some-big-mysterious-moves-in-markets-lately)

    The rout in European bonds continues with OAT and BUND really hard hit. FX continues its bounce against the dollar.

    P&L: LOSS £29,362 or 7.3% of capital
    Biggest losses in GAS_US, AUS10 year bonds.

    Drawdown is 16.7% of capital
    The average DD from simulation is 9.2%.

    I haven't done a formal comparision but I'm not the only one who has suffered from the sharp ending of these lovely trends (http://www.valuewalk.com/2015/05/cantab-returns-april-2015/). The trick is to hang on to as much of the profits as you can.

    [​IMG]


    Risk: £3150 per day, vs long run target of £6250.
    Note "Kelly" risk cutting would reduce my risk to £5237. The rest comes from signal changes.


    Trades since I last posted:

    Code:
     
            code contractid     filled_datetime  filledtrade  filledprice
    3514      AUD     201506 2015-04-28 06:28:42            1     0.785000
    3625    AUS10     201506 2015-05-06 03:20:46           -1    97.050000
    3580  AUSSTIR     201606 2015-05-04 05:06:28            4    97.900000
    3538     BOBL     201506 2015-04-29 07:34:02           -1   129.500000
    3544     BOBL     201506 2015-04-29 09:33:18           -1   129.370000
    3565     BOBL     201506 2015-04-30 08:34:23           -1   128.880000
    3586     BOBL     201506 2015-05-04 07:34:55            1   128.750000
    3667     BOBL     201506 2015-05-07 10:27:54           -1   127.940000
    3547      BTP     201506 2015-04-29 14:48:52           -1   138.490000
    3541     BUND     201506 2015-04-29 07:36:07           -1   159.180000
    3631     BUND     201506 2015-05-06 08:10:34           -1   154.530000
    3559      CAC     201505 2015-04-30 08:04:40           -1  4989.000000
    3589      CAC     201505 2015-05-04 08:04:04            1  5002.500000
    3607      CAC     201505 2015-05-05 06:41:09            1  5009.000000
    3610      CAC     201505 2015-05-05 08:01:37           -1  5035.000000
    3634      CAC     201505 2015-05-06 08:17:27           -1  4942.500000
    3601     CORN     201512 2015-05-04 14:30:00           -1   377.500000
    3679  EDOLLAR     201809 2015-05-08 17:35:22           -1    97.735000
    3508   GAS_US     201506 2015-04-27 12:03:54            3     2.518000
    3511   GAS_US     201507 2015-04-27 12:03:54           -3     2.575000
    3571   GAS_US     201507 2015-04-30 16:50:29            1     2.766000
    3658   GAS_US     201507 2015-05-06 18:14:10            1     2.866000
    3517      GBP     201506 2015-04-28 12:26:49            1     1.528000
    3670      GBP     201506 2015-05-08 02:00:12            1     1.539600
    3523     GOLD     201506 2015-04-28 19:23:52            1  1213.500000
    3550      JPY     201506 2015-04-30 02:14:09            1     0.008411
    3535      KR3     201506 2015-04-29 02:27:01           -1   108.970000
    3583      KR3     201506 2015-05-04 01:08:39            1   108.910000
    3628      KR3     201506 2015-05-06 05:18:47           -1   108.630000
    3673      KR3     201506 2015-05-08 02:18:03           -1   108.730000
    3604  LIVECOW     201510 2015-05-04 15:33:31            1   150.350000
    3568   NASDAQ     201506 2015-04-30 14:13:25           -1  4455.500000
    3574      NZD     201506 2015-05-04 01:03:33            1     0.749500
    3598     PLAT     201507 2015-05-04 12:07:27           -1  1133.400000
    3622      SMI     201506 2015-05-05 16:07:37           -1  9017.000000
    3655    SP500     201506 2015-05-06 15:18:57           -1  2075.750000
    3505      V2X     201506 2015-04-27 11:26:06            1    21.650000
    3520      V2X     201506 2015-04-28 16:14:30            1    21.300000
    3562      V2X     201506 2015-04-30 12:18:36            1    21.800000
    3592      V2X     201506 2015-05-04 10:25:12            2    21.750000
    3637      V2X     201506 2015-05-06 08:31:03            1    22.400000
    3664      V2X     201506 2015-05-07 12:04:49            2    23.200000
    3619      VIX     201507 2015-05-05 10:14:32           -1    16.850000
    3661      VIX     201506 2015-05-06 19:49:17            1    17.000000
    3595    WHEAT     201512 2015-05-04 12:01:00           -1   496.250000
    
    Total slippage £8.23
    Expected slippage (crossing the spread) £222.64

    Positions:

    Code:
     
     AUS10  201506  1  
     AUS3  201506  3  
     AUSSTIR  201606  9 
     BOBL  201506  1  
     CORN  201512  -6  
     EDOLLAR  201809  4 
      EUROSTX  201506  -12  
      FTSE  201506  -2  
      GAS_US  201507  -1  
      JPY  201506  -2  
      KR10  201506  1  
      KR3  201506  3  
      LEANHOG  201506  -1 
      LIVECOW  201510  -1  
      MXP  201506  -4  
      PLAT  201507  -1  
      SOYBEAN  201511  -1 
      US10  201506  1  
      US2  201506  4  
      US5  201506  2  
      VIX  201507  -1  
      VIX  201506  -2  
      WHEAT  201512  -3  
    


    Big shorts in WHEAT, CORN, VIX, MXP, JPY
    Big longs in AUSSTIR, EDOLLAR, US2, US5
     
  113. Thanks for updating. Like jj said, I find values in this thread.

    Two questions (and sorry if they have been answered already).

    1. How do you select which market to trade?

    2. If you trade a contract denominated in a foreign currency, do you hedge the fx exposure?
     
  114. 1.
    I trade the most diversified portfolio I can given the capital I have. In terms of choosing which instruments in which asset classes I look at costs, diversification, cost of data, volatility, liquidity and minimum size. So for example I don't trade gilts because of the data cost. I don't trade Buxl's because the contract is too big.

    This can only be a brief answer. The full one is a whole chapter!

    2.
    Well with futures your only FX exposure is on the margin, and on any profits or losses you make. If there was no margin, and the price in local currency was unchanged, even if the FX rate halved there would be no impact on your p&l.

    Obviously your net cash position in any currency will be a result of your current margin plus accrued p&l. I constantly monitor these net exposures. I try not to borrow in expensive currencies (KRW and AUD), but I'm happy to borrow in cheaper ones. I also try and diversify both my net borrowing and lending. When things move out of balance I do an FX trade.
     
  115. New post on futures rolling (cross post, please discuss at the other place).
     
  116. Report since May 10th (3 weeks, rather than two)

    P&L: GAIN £20,400 or 5.1% of capital

    Drawdown is 11.6% of capital

    I'm a bit short of time so I won't be posting a full report. What might interest you to know is that I was on holiday for a week, during which my system ran perfectly with just one fill missed in JPY (which I then had to manually update this morning), and started to draw itself nicely out of drawdown.
     
  117. Hi globalarbtrader, nice thread and blog. I found your blog last week and this thread now. i have CTA experience (similar to yours). I have a question about the margin you need to post to run your strategies.. what percentage of the account value gets tied up in margin (range).

    if you are trading in 40+ markets and have even 1 lot position then assuming 5k per lot (similar to CL), you will need to post 200k (i am sure you are using portfolio margin which shd reduce this). What is your range of margin requirement during past year?

    TIA
     
  118. Right now I'm using on my 400K account (running at 25% annualised risk target a year) about £102K in margin; so about 25.5% cash.

    However this will vary depending on how close I am to HWM and signal strength. Right now I'm running at about 73% of average risk. At average risk then my margin usage would be around 35%.

    To take a few other days as a sample

    April 1st: 29.5%
    Jan 1st: 30%

    2014:
    Sep 1st: 29.4%
    June 1st: 37.8%

    The numbers are perhaps less than you might expect (I have never been about 50%), perhaps because I won't always have positions in all 40 markets unless I have sufficiently strong signals in all of them, and also because margins aren't as chunky in say Eurodollar as they are in Emini's.

    But it's reasonable to say I'll use between 20 and 50% of account value as margin, averaging 35%.
     
  119. Thanks a lot for this. It gives a good idea on what margin (and thus capital requirements) one can expect. if max DD is 25% and margin requirement is 20-50%, this still gives 25% extra cash in the account.

    Have a good day!!
     
  120. I think in backtest my max DD is around 37%. This is probably optimistic, but on the other hand it doesn't allow for kelly reduction in capital as DD happens. Also reduction in risk as DD happens also reduces margin. So if you're paying 50% margin, and you lose half; by then you'd only need half your original margin (25% of capital).
     
  121. True. position sizing based on equity value (kelly's way) reduces the need. and in theory makes it impossible to go bust (asymptotically goes to 0 but never 0). Thanks for the insight into margin needs.

    One more question - since you are doing it outside large organization, what data sources are you able to use in your strategies. At ManAHL, you probably had lot of other data in addition to price and volume (say weather, supply, demand metrics, forecasts etc in case of different commodities).

    In your own trading, what data do you use apart from prices and volumes.

    Thanks again.
     
  122. I don't. I just use prices.

    This is a time related decision, rather than a 'I can't afford the data'. Theres plenty of free data out there.

    I like having a system I spend only a few minutes a day looking after my system (on average; rolls can be a bit hectic, sometimes I have to spend half a day with a new feature or very occasional bug). Time spent on price data filtering related issues is maybe half of that.

    With 45 markets, lets say I average 100 minutes a month doing on data filtering on my system, or 4 minutes per working day. If I added say 10 new data fields I'd be spending 40 minutes a day. Actually that might be an underestimate because system complexity also increases exponentially with the number of data fields, so I'd probably be spending an hour or more.

    I'd rather not.

    At AHL we had teams of people working 24 hour shifts across 2 sites worrying about this stuff. Now its just me.
     
  123. That's a very good argument. With more data you certainly have to put more time in making sure it is clean/accurate/adjusted etc.

    I guess if the extra data gives you benefit in overall sharpe/reducing drawdown etc, some may argue it is worth spending that time (or paying someone else to do it). But again that depends on what you want to do while trading this. If you want to minimize time spend in running the strategy, using just the price is best option.

    Large organization have more people but at the same time inefficiency creeps in so what a team of 5 people doing there full time, you might be able to do it alone in few hours a day (specially since you are skilled in programming).

    Thanks again for the insight. It is very useful to know from real trader what he or she thinks important.
     
  124. ?

    http://www.elitetrader.com/et/index.php?threads/ideas-for-a-conditional-hedge.289494/page-2

     
  125. The hedge I have in this account is much simpler than in that thread.

    Basically I started my account up with 300K at risk; but I didn't put 300K of cash into the account, as to realise that would have involved selling some stock and paying capital gains tax. Instead I funded the account partly with stock and partly with cash.

    Let's say I started with 200K in stock and 100K of cash, and I needed 150K to cover margin (exact figures not important). So I'm borrowing 50K against my stock to cover margin. If I make money (as I have done) my borrowing would go down.

    But ideally I want the p&l coming from my account to be purely from futures trading, rather than beta exposure.

    I don't expect the hedge to make money, though in the long run it should make some if the hedge was perfect. This is because:

    - I'm receiving say 4.5% yield on my UK stocks
    - Through the short FTSE futures hedge effectively paying the yield on the index which is lower
    - I'm also effectively receiving LIBOR through the future
    - I'll pay a little LIBOR on my margin borrowing; though that arguably belongs in the pure futures trading mental account

    There is also currency risk, since some of my stocks are European. This is effectively unhedged - the future only hedges the delta. If say the euro depreciates 10% on a £200K european equity; then I lose £20K. If at the same time the index doesn't move then I will make nothing on my hedge.

    As well as alpha risk and currency risk the beta hedge won't be perfect due to the large size of the future meaning I can't get the hedge ratio spot on.

    So part of my portfolio is like an unleveraged market neutral hedge fund.

    FYI last fiscal year I lost 2.3% on my hedging
    http://qoppac.blogspot.co.uk/2015/04/futures-trading-performance-year-one.html

    GAT
     
  126. Thanks GAT for your response. Here are my feedback.

    I think you have an excellent blog, a profile of outstanding background, a range of diversified knowledge and skills, and a keenness wanting to share with us on ET, which is much appreciated.

    However, your current threads suddenly offer us too much information covering too many important topics in a short time, that would easily cause some unwanted arguments with us on ET, perhaps a culture issue on ET.

    My suggestion is perhaps you would focus on just a few most important topics to start with. Then people on ET could comprehend and discuss effectively the topics with you in a more productive manner.

    Just my 2 cents!
     
  127. Okay pick a topic....
     
  128. Haven't got time to read through your threads yet.

    However, first at all. I think perhaps you would need to do some sort of of ABC analysis https://en.wikipedia.org/wiki/ABC_analysis
    and/or PCA analysis
    https://en.wikipedia.org/wiki/Principal_component_analysis to determine and let us know your main focus of income performance.

    A: Trading income, such as your trading edge and expected returns (for this category alone), money management logic, risk protection/ hedging, etc. Also the benefits of your full automation systems. My guess is ETers would be more interested in this category of topics.

    B: Long Term Investment income, such as international stocks, overseas properties, etc. Whether and how you perform any currency overlay for this category of incomes and related profit and loss performance analysis could be only covered/ disclosed/ discussed later, separately with different threads.

    C: Non-financial income, such as book publishing for financial programming, risk consultancy to financial institutions, etc. These could be minor issues to most ETers (in terms of discussion posts), I guess. Unless you would like to disclose your trading Edge in details here.

    Just some thoughts!
     
  129. Well usually I stick to 'A', except when responding to a question as earlier in the thread. But I'll bear this in mind.

    Generally if there are specific topics people would like to hear about, then I'm happy to hear what they are.

    GAT
     
  130. After briefly reading the first 2 pages, I can see there could be 3 questions.

    1. Systemic risk. I think, just unsure whether adding more instruments (like 40 - Pros and Cons) would reduce the portfolio's systemic risk. It could be. I could be most likely not (due to such as some overseas exchanges still close/illiquid during crash).

    2. SAR strategy. My guess is using robot for SAR strategy (without your personal ongoing attention) could possibly sometimes encounter huge risk/loss if volatility is drastic. (perhaps back-testing with intraday data would be required/ necessary)

    3. Hedge. Just unclear how you perform hedging for the 'A' trading portfolio (while maintaining good returns). ( I assume All your hedge is just for 'B' Investment. If not, then even more confusing!)
     
  131. Just one question - what does SAR stand for?
     
  132. It's Stop And Reverse. I suppose your futures positions are always-in-the-market . Now I'm afraid maybe I got my misunderstanding .
     
  133. 1. I guess the definition of systematic risk is that it won't be reduced through diversification. Will it be increased? Are we talking about market risk, or other risks (like market closure, which you mention).

    With market risk I think the biggest danger is you add diversification and then ramp up gearing in line with perceived correlation and the fall in vol. I have measures to prevent that; limits on the 'ramping up multiplier' and a check on the total size of my positions assuming all correlations 'go to one'. (http://www.elitetrader.com/et/index...ed-futures-trading.289589/page-5#post-4092502).

    With non market risk; well I suppose spreading across multiple exchanges / clearers is probably safer than not. I'm UK based so nearly all the markets I trade are 'foreign'.

    By the way one thing that would worry about cross country trading is where it's done on a relative value basis. Would you want to be long UK / short US after september 11th happened? No way; you'd be getting margin calls on your UK position whilst receiving no benefit from your US short whilst the market was closed.

    2. I'm unclear here if you are talking about

    a) a sharp jump / gap in prices
    b) a sharp move in prices over the day, which for some reason the robot (a term, by the way I hate) doesn't trade out of
    c) the robot doing something crazy on a day when prices seesaw up and down wildily.

    With (a) I guess humans and robots are both equally vulnerable (although a low latency robot - not what I'm running - would react faster). However you're right that daily market data will give a rosy picture of peak losses compared to intra day.

    With (b), perhaps in the event of system failure this is a problem; but this needs to be balanced against the benefit of not having an emotional human debating with itself whether to cut or not; it would just cut.

    I think you're talking about (c). Few points to make here:

    One is I trade relatively slowly (average holding period of perhaps a month), so I don't react much to intraday moves. Suppose I was long Emini and the market dropped 300 points; then reversed and rose 300 points, and then dropped 300 points. On the first drop I would have cut my position massively; partly because the trend has started to fade, mainly because volatility has spiked. On the move up I wouldn't do anything. Volatility hasn't fallen, if anything it's gone up. On the next down move again I wouldn't do anything.

    Two, I have controls in place to prevent over trading. The crudest is a limit on the number of contracts I will trade per day. I also have a 'lifetime' limit which I would set before a holiday where I can't monitor my trading.

    Here is an excerpt

    Code:
    run@bilbo ~/workspace/systematic_engine/sysdiag/scripts $ . displaylimits LIVE
    EDOLLAR 2015-06-18 12:07:42 Max pos:40 Current pos 5 Max day:10 Done:2 Max all:1000 Done:259
    SP500 2015-06-18 06:05:41 Max pos:6 Current pos 0 Max day:2 Done:0 Max all:1000 Done:61
    For S&P after I've traded two contracts I'll stop. Right now with a max strength signal I'd own 2 or at most 3 contracts (although the maximum position I'd allow is 6 contracts as shown). A trade of two contracts in a day is plenty (or two trades of one contract each).

    Were I to go on holiday I'd set the lifetime limit (max all) maybe to 10 contracts for a 2 week holiday.

    Notice the limits for Eurodollar, a lower risk contract, are higher.

    3. Hedging.

    It's a very simple hedge of two equity portfolios with two equity index futures (eurostoxx and FTSE); roughly delta neutral (or as close I can get given the size of the futures contracts).

    GAT
     
  134. OK, thanks for your response. Look forward to viewing your 'A' trading annual performance in the future.
     
  135. Sporadic update (been about 2 weeks since the last one)

    [​IMG]
    So down ~20K, or 5% if you prefer. Drawdown is -17.5%; slightly better than the worst level I've seen. As the picture shows the last few weeks I've just been "bobbling" around. I've said it before the trick with trend following is not to lose too much when you're losing; and win more when you gain. My long term return expectation is perhaps 18%. Last fiscal year I made 57% (or would have with constant risk - I actually did much better but that wasn't down to my trading system). This fiscal year I'm down 10%. Even if I lose another 10% this year I'd still be ahead of expectation.

    Big losses
    4.K Gas
    3.1K JPYUSD
    2.5K BTP
    2K Gold
    2.0K Crude
    1.6K MXPUSD

    Big gains
    3.3K Palladium
    2.4K NZDUSD
    1.5K copper
    1.4K corn
    1.2K Platinum

    Risk is pretty much unchanged; i.e. still low. No big trends to catch on to right now.

    Current positions
    Code:
           code contractid  positions   Lock WrongContract InFwdNotRoll
    16      BTP     201509         -1  False         False        False
    12   COPPER     201512         -1  False         False        False
    13     CORN     201512         -5  False         False        False
    15  EDOLLAR     201812          3  False         False        False
    18  EDOLLAR     201809          2  False         False        False
    8   EUROSTX     201509        -18  False         False        False  (hedge)
    17   GAS_US     201508         -1  False         False        False
    10      JPY     201509         -1  False         False        False
    14    KOSPI     201509         -1  False         False        False
    4       KR3     201509          5  False         False        False
    6       MXP     201509         -5  False         False        False
    11      NZD     201509         -2  False         False        False
    19   PALLAD     201509         -2  False         False        False
    1      PLAT     201507         -3  False         False        False
    9   SOYBEAN     201511          1  False         False        False
    5       US2     201509          3  False         False        False
    3       US5     201509          1  False         False        False
    0       V2X     201508          3  False         False        False
    2       VIX     201508         -4  False         False        False
    7     WHEAT     201512         -1  False         False        False
    
    Of interest is that I've closed all my australian markets (AUS3, AUS10 bonds, AUSSTIR and ASX) due to an increase in data feed costs. I probably have too many markets trading (quite a few positions a bit small), so I don't mind a little pruning.

    Also closed my FTSE hedge of 2 contracts and replaced with an increased Eurostoxx hedge.

    Trades
    Code:
             code contractid     filled_datetime  filledtrade  filledprice
    4003      AUD     201506 2015-06-10 06:43:28            1     0.767900
    4006      AUD     201509 2015-06-10 06:43:28           -1     0.764000
    4201      AUD     201509 2015-06-18 08:47:52            1     0.772800
    4114    AUS10     201506 2015-06-12 06:50:07           -1    96.987500
    4117    AUS10     201509 2015-06-12 06:50:19            1    96.940000
    4186    AUS10     201509 2015-06-18 06:54:17           -1    97.110000
    4120     AUS3     201506 2015-06-12 06:51:13           -2    97.910000
    4123     AUS3     201509 2015-06-12 06:51:24            2    97.880000
    4189     AUS3     201509 2015-06-18 06:55:11           -2    98.070000
    4192  AUSSTIR     201606 2015-06-18 06:57:12           -7    97.970000
    3970      BTP     201509 2015-06-08 07:32:04           -1   130.590000
    4081      BTP     201509 2015-06-11 13:58:12            1   132.110000
    4147      BTP     201509 2015-06-16 07:35:08           -1   127.840000
    4198      BTP     201509 2015-06-18 07:31:21            1   129.470000
    4216      BTP     201509 2015-06-18 09:46:42           -1   129.720000
    3964   COPPER     201512 2015-06-05 15:29:21           -1     2.717000
    4087     CORN     201512 2015-06-11 14:30:00            1   373.000000
    4039  CRUDE_W     201512 2015-06-10 12:16:38            1    62.900000
    4225  EDOLLAR     201812 2015-06-18 12:07:23            2    97.535000
    4162  EUROSTX     201506 2015-06-16 15:32:19            8  3442.000000
    4165  EUROSTX     201509 2015-06-16 15:32:19           -8  3437.000000
    4255  EUROSTX     201509 2015-06-19 13:53:52          -10  3478.000000
    4210     FTSE     201506 2015-06-18 09:36:09            2  6671.000000
    4213     FTSE     201509 2015-06-18 09:37:04           -2  6617.500000
    4252     FTSE     201509 2015-06-19 13:46:46            2  6677.500000
    3976   GAS_US     201508 2015-06-08 16:45:52            1     2.708000
    3997   GAS_US     201508 2015-06-09 14:23:51            1     2.841000
    4078   GAS_US     201508 2015-06-11 12:11:11            1     2.903000
    4033      GBP     201506 2015-06-10 07:47:00            1     1.537300
    4036      GBP     201509 2015-06-10 07:47:00           -1     1.536200
    4063      GBP     201509 2015-06-11 01:42:42            1     1.549100
    3973     GOLD     201508 2015-06-08 12:08:23           -1  1173.700000
    4075     GOLD     201508 2015-06-11 11:59:07            1  1178.400000
    4249     GOLD     201508 2015-06-19 12:05:23            1  1200.200000
    3979      JPY     201506 2015-06-08 19:26:14            1     0.008025
    4000      JPY     201506 2015-06-10 06:13:13            1     0.008127
    4009      JPY     201506 2015-06-10 06:46:46            2     0.008041
    4012      JPY     201509 2015-06-10 06:46:46           -2     0.008049
    4183      JPY     201509 2015-06-18 01:51:06            1     0.008113
    3967    KOSPI     201506 2015-06-08 01:27:52           -1   253.400000
    3982    KOSPI     201509 2015-06-09 01:01:07           -1   254.750000
    3985    KOSPI     201509 2015-06-09 01:03:07           -1   254.750000
    3988    KOSPI     201506 2015-06-09 01:04:51            1   253.900000
    3991    KOSPI     201509 2015-06-09 01:08:27            1   254.950000
    4138      KR3     201506 2015-06-16 01:01:23           -3   109.290000
    4141      KR3     201509 2015-06-16 01:06:11            2   109.150000
    4171      KR3     201509 2015-06-17 01:02:00            1   109.100000
    4237      KR3     201509 2015-06-19 01:04:49            2   109.090000
    4027      MXP     201506 2015-06-10 06:52:27            5     0.064240
    4030      MXP     201509 2015-06-10 06:52:27           -5     0.063830
    4015      NZD     201506 2015-06-10 06:47:35            1     0.714000
    4018      NZD     201509 2015-06-10 06:47:35           -1     0.708000
    4021      NZD     201506 2015-06-10 06:49:59            1     0.714000
    4024      NZD     201509 2015-06-10 06:49:59           -1     0.708000
    4072      NZD     201509 2015-06-11 01:58:41            1     0.696900
    4144      NZD     201509 2015-06-16 01:45:57           -1     0.693700
    4159   PALLAD     201509 2015-06-16 15:31:03           -1   736.250000
    4135     PLAT     201507 2015-06-15 16:28:28           -1  1087.200000
    3994  SOYBEAN     201511 2015-06-09 12:14:58            1   922.250000
    4126  SOYBEAN     201511 2015-06-15 12:19:59           -1   898.750000
    4168  SOYBEAN     201511 2015-06-16 18:15:58            1   922.500000
    4228  SOYBEAN     201511 2015-06-18 12:05:40            1   935.750000
    4234  SOYBEAN     201511 2015-06-18 16:36:39            1   940.250000
    4231      US2     201509 2015-06-18 14:05:52           -1   109.367188
    4084      US5     201509 2015-06-11 13:59:25           -1   118.359375
    4258      US5     201509 2015-06-19 14:36:31            1   119.328125
    4150      V2X     201508 2015-06-16 08:23:21            1    22.600000
    4240      V2X     201508 2015-06-19 08:10:32            1    22.650000
    4207      VIX     201507 2015-06-18 08:49:54            4    15.600000
    4219      VIX     201508 2015-06-18 10:03:35           -4    16.400000
    
    
    As you'd expect for this time of year a LOT of rolls; as well as the aforementioned closing and rehedging trades. Slippage was £281 vs an expectation of £402, or if you like my execution algo saved me £120.
     
  136. Correction:
    My long term return expectation is perhaps 16%. Last fiscal year I made 57% (or would have with constant risk - I actually did much better but that wasn't down to my trading system). This fiscal year I'm down 10%. Even if I lose another 14% this year I'd still be ahead of expectation.

    Addition: My worst drawdown in back test was 33%. If I lost another 14% I'd be at a 31.5% drawdown. So this is at the bottom end of my expectations.

    (Percentages are as total of maximum capital at risk so I can just add and subtract them rather than using geometric mean)
     
  137. BTW: Are you trading any of the following: XINA50, STW, HSI, HHI.CH, NIFTY, TOPX? I've been having fun with XINA50, and there is a trend there (although I just trade it in a daytrading fashion).
     
  138. Short answer no. But if I had a few million in this account I would
     
  139. Any particular reason for that? They're not big contracts.
     
  140. Adding one contract causes no problem. But to add 10 Asian equities would

    A: reduce the size I had in all other instruments proportionally causing me size issues elsewhere
    B: seriously un diversify my portfolio as right now I only have 4% optimal in Asian equitirs

    All in Chapter 12 ..... coming soon!
     
  141. the e-book isn't like, Kindle dependent, right? is it basically a downloadable pdf?

    i did a quick scan on the site and couldn't readily find the answer..
     
  142. No it isn't kindle dependent. You get an option of kindle or using a free e book reader.

    By the way it looks like the publisher haven't yet got the back end working for the pre-order. I'll let you know when that is sorted.

    Thanks for the support.

    GAT
     
  143. Time for the semi regular update (sorry been busy proofreading the book [pre-ordering system is now working] and doing TV stuff).

    [​IMG]
    Up a 'massive' 0.4% or £1600 in money terms, although it's been an interesting ride (you can probably see the point at which the greek government decided to shrug their shoulders and say 'sue' me). I had to reduce my Eurostoxx hedge, since it was clear that the beta was all wrong with what was going on.

    Drawdown is 17.1%.

    All about the ags complex this fortnight:

    Big gainers
    Soybeans £8.9K
    Wheat £2.6K
    NZD £2.4K
    PALLAD £1.9K
    GOLD £1.8K
    MXP £1.8K

    Big losers:
    Corn -£5.8K
    Kospi -£1.6K

    Soya: Was long 1 contract 2 weeks ago; now long 3 contracts
    Trades:
    4267 SOYBEAN 201511 2015-06-22 14:30:00 1 947.250000
    4294 SOYBEAN 201511 2015-06-24 15:22:48 1 961.750000
    4315 SOYBEAN 201511 2015-06-29 12:15:04 1 985.250000
    4375 SOYBEAN 201511 2015-07-02 12:03:36 -1 1029.750000


    [​IMG]

    Corn: Was short 5 contracts two weeks ago; now short just one contract
    Trades:

    4291 CORN 201512 2015-06-24 14:30:00 1 378.750000
    4303 CORN 201512 2015-06-25 18:11:08 1 391.250000
    4354 CORN 201512 2015-06-30 17:18:26 1 412.750000
    4390 CORN 201512 2015-07-02 14:30:00 1 430.000000


    [​IMG]
    .... I think this is what is known as a 'hedge'. Classic trend following behaviour; one system was the right way round and bought into the strengthening rally (with a little bit of profit taking at the end), the other cut it's position which was the wrong way round.

    These are such fascinating moves I will do a blog post in more detail explaining in more detail why I had these two positions on, and why I traded as I did.

    Current position:

    Code:
           code contractid  positions   Lock WrongContract InFwdNotRoll
    1       AUD     201509         -1  False         False        False
    3      BOBL     201509          1  False         False        False
    16   COPPER     201512         -1  False         False        False
    17     CORN     201512         -1  False         False        False
    10  CRUDE_W     201512         -1  False         False        False
    18  EDOLLAR     201812          3  False         False        False
    19  EDOLLAR     201809          2  False         False        False
    11  EUROSTX     201509        -13  False         False        False  (hedge)
    2    GAS_US     201509         -1  False         False        False
    8      GOLD     201508         -2  False         False        False
    14      JPY     201509         -1  False         False        False
    6       KR3     201509          6  False         False        False
    9       MXP     201509         -6  False         False        False
    15      NZD     201509         -3  False         False        False
    20   PALLAD     201509         -2  False         False        False
    12     PLAT     201510         -3  False         False        False
    13  SOYBEAN     201511          3  False         False        False
    7       US2     201509          3  False         False        False
    5       US5     201509          1  False         False        False
    0       V2X     201508          3  False         False        False
    4       VIX     201508         -2  False         False        False
    
    Risk:
    Code:
    Expected annual risk more than GBP6400 per year, GBP400 per day
           code  multisignal  expected_annual_risk  expected_annual_risk_per_contract  position  expected_annual_risk_rounded_pos
    25      EUR        -23.4                 14867                              38552         0                                 0
    24      AUD        -11.4                  7227                               5549        -1                              5549
    30   COPPER        -16.3                 10342                               6898        -1                              6898
    34  CRUDE_W        -15.8                 10039                               9963        -1                              9963
    28      MXP        -16.1                 10227                               1845        -6                             11067
    17      VIX        -20.6                 13104                               5852        -2                             11704
    33     PLAT        -25.6                 16259                               4882        -3                             14645
    31     GOLD        -32.1                 20418                               8127        -2                             16254
    29      NZD        -23.1                 14677                               5472        -3                             16415
    32   PALLAD        -26.5                 16858                               9646        -2                             19292
    36  EDOLLAR         11.7                  7466                               1757         5                              8786
    3   SOYBEAN         35.5                 22576                               7342         3                             22026
    
    This is a new table so let me explain. 'multisignal' is the signal I have on. 'expected annual risk expected' is the risk I would ideally have on if I could buy/sell partial contracts (in £ of annualised standard deviation). 'annal_risk_per_contract' is the risk of each contract. 'position' is in contracts. 'annual_risk_rounded' is the risk I actually have on. So you can see the effects of rounding; I'd like to have a EUR position on but each contract has an enormous risk so I can't justify it.

    Current expected portfolio risk is @ 95% of average; on 82% of maximum capital (due to the drawdown) or in money terms £4,880 a day or £78K a year (or if you like, 19.5% of my maximum capital, and 23.7% of my current reduced capital; versus long run targets of 25%).

    Trades:
    Code:
    
             code contractid     filled_datetime  filledtrade  filledprice
    4306      AUD     201509 2015-06-29 01:29:33           -1     0.759200
    4372     BOBL     201509 2015-07-02 07:32:49            1   129.590000
    4264      BTP     201509 2015-06-22 07:34:45            1   131.260000
    4291     CORN     201512 2015-06-24 14:30:00            1   378.750000
    4303     CORN     201512 2015-06-25 18:11:08            1   391.250000
    4354     CORN     201512 2015-06-30 17:18:26            1   412.750000
    4390     CORN     201512 2015-07-02 14:30:00            1   430.000000
    4312  CRUDE_W     201512 2015-06-29 12:09:45           -1    59.480000
    4255  EUROSTX     201509 2015-06-19 13:53:52          -10  3478.000000
    4336  EUROSTX     201509 2015-06-30 08:06:16            3  3460.000000
    4363  EUROSTX     201509 2015-07-01 07:59:58            3  3465.000000
    4366  EUROSTX     201509 2015-07-01 19:59:09           -1  3474.000000
    4252     FTSE     201509 2015-06-19 13:46:46            2  6677.500000
    4273   GAS_US     201508 2015-06-23 12:02:37            1     2.768000
    4276   GAS_US     201509 2015-06-23 12:02:37           -1     2.782000
    4261      GBP     201509 2015-06-22 02:39:42            1     1.587800
    4282      GBP     201509 2015-06-23 13:51:13           -1     1.573100
    4249     GOLD     201508 2015-06-19 12:05:23            1  1200.200000
    4279     GOLD     201508 2015-06-23 12:09:48           -1  1181.800000
    4300     GOLD     201508 2015-06-25 12:10:40           -1  1172.900000
    4360      JPY     201509 2015-07-01 01:45:00            1     0.008167
    4369      JPY     201509 2015-07-02 06:01:53           -1     0.008113
    4270    KOSPI     201509 2015-06-23 02:42:08            1   255.250000
    4297      KR3     201509 2015-06-25 01:48:59            1   108.970000
    4387      MXP     201509 2015-07-02 12:38:43           -1     0.062870
    4285   NASDAQ     201509 2015-06-23 14:41:02            1  4537.000000
    4318   NASDAQ     201509 2015-06-29 14:08:05           -1  4429.000000
    4393      NZD     201509 2015-07-02 18:20:29           -1     0.668300
    4309   PALLAD     201509 2015-06-29 12:08:42           -1   670.750000
    4378   PALLAD     201509 2015-07-02 12:09:34            1   695.850000
    4342     PLAT     201507 2015-06-30 12:01:36            2  1081.700000
    4345     PLAT     201510 2015-06-30 12:01:36           -2  1082.700000
    4348     PLAT     201507 2015-06-30 12:04:28            1  1081.500000
    4351     PLAT     201510 2015-06-30 12:04:28           -1  1082.500000
    4267  SOYBEAN     201511 2015-06-22 14:30:00            1   947.250000
    4294  SOYBEAN     201511 2015-06-24 15:22:48            1   961.750000
    4315  SOYBEAN     201511 2015-06-29 12:15:04            1   985.250000
    4375  SOYBEAN     201511 2015-07-02 12:03:36           -1  1029.750000
    4288    SP500     201509 2015-06-23 14:44:03            1  2116.500000
    4321    SP500     201509 2015-06-29 14:11:26           -1  2075.000000
    4258      US5     201509 2015-06-19 14:36:31            1   119.328125
    4333      VIX     201508 2015-06-29 17:12:02            1    16.400000
    4339      VIX     201508 2015-06-30 11:08:56            1    16.600000
    4357    WHEAT     201512 2015-06-30 18:23:59            1   603.750000
    
    Slippage was £192 vs £204 expected (so my simple execution algo saved me £12).
     
  144. Just read this thread and scrolled through your blog - nice work!

    I understand your current system is 'always-in' but can you run though how you would deal with position sizing if your signals would allow for 'no holding'? With position sizing a function of total portfolio risk, this would either require very frequent adjustment of 'existing' positions when a 'new' position is added / removed (and thereby potentially creating undesired 'noise' returns), or being constantly under invested by assuming a position in all instruments.
     
  145. First my system isn't 'always in'. There is a minimum signal strength I need before establishing a position. However if I had enough capital it would be 'always in'.

    Anyway, on to your question. I wouldn't trade any differently if I had a binary system, or a system where I had a lot of potential bets few of which were rarely active.

    I don't, as you are suggesting, have a constant target expected risk that I'm hoping to achieve.

    Effectively I size my portfolio according to the average number of bets I expect to have on over the long run; and according to what I expect the average correlation of those bets to be.

    Let's suppose that on average I expect to have 10 trinary (long/short or no position) bets on out of a total of 20 possibilities.

    I'll scale the overall system so I have on average the required amount of risk assuming I have 10 bets on, and for some average correlation of bets.

    If I had fewer bets on than normal I would be taking less risk than average. That makes sense; you should always have risk on proportional to the opportunities available.

    If I had more bets on than normal I would be taking more risk than average.

    Closing a bet or adding a new bet has no effect on existing bets, and so doesn't require any trading.
     
  146. Even using averages, it seems you could run into risk restrictions if you are running near maximum risk allowed under your "caps". In this case, would you opt not to add the additional bet or reduce the size of your existing bets?
     
  147. In the hypothetical trinary system in my last post I'd opt not add the additional bet.

    In my current 'always in' system a new bet might cause me to hit a risk limit. So yes I would reduce the size of existing bets. However the effect would be small (since I have so many markets - I might be adding 1 position to say an existing set of 33, implying a cut in existing bets of just 3%), and by using buffering any backward and forward trading is minimized.
     
  148. Thx for the insight
     
  149. Nice thread & Blog Rob.
     
  150. Thanks very much, appreciate it.
     
  151. A slightly delayed update (for reasons which will become apparent); last update was 3rd July.

    I'm doing this in two parts as I seem to have some kind of character limit.

    The last couple of weeks has been much more profitable than recently. I'm up over £40K in money terms, or 10%. Drawdown is 6.8%.

    Big gainers

    GOLD £12,800 (and that is why I delayed it... more below)
    PLAT £10,000
    PALLAD £9,400
    CRUDE £3,100

    Big losers

    WHEAT £3,800
    GAS £2,000
    SOYBEAN £2,000 (one of last fortnights big winners, remember)

    Gold of course was big news yesterday. As is often the case zerohedge has a nice comment on the story (in a future life I'd like to be zerohedge. Or maybe Matt Levine. Hopefully they'll both be dead in my future life [I don't mean that in a malicous way, it's a pure actuarial forecast], so I'd like to be the sort of current version of them.).

    But Gold (with the rest of the metals complex also playing a part) hasn't been doing great recently even without yesterdays fall
    [​IMG]


    I won't be doing an 'explainer' post on this position. The thing was going down. I was short a couple of contracts two weeks ago, and I've since sold another one. It's gone down some more. I'm at the max short I'd have (given the current volatility - if volatility falls I might sell some more).

    There is a point I'd like to make about risk management. An unexpectedly large gain is just as dangerous as an unexpectedly large loss. Reason being you're only a slightly biased coin flip (biased if your system has positive profit expectation) away from one becoming the other. So when I logged on yesterday morning and saw a £12K profit between my hourly checks of account value my first instinct was not 'hurray!', but rather 'there's a problem with my broker valuation' and my second (once I'd checked out what had happened) was a slight sense of panic.

    Anyway the Gold move was about 6 sigma at the low, although it finished just over 3 sigma down. A large move then, made worse by smaller falls across other metals, and as usual it reinforces that you need to be diversified to reduce your exposure, and to limit your portfolio exposure to different kinds of risk (for example I am running at 84% of the risk I would like to right now because I've hit my 'risk measured assuming all correlations go to one' limit).

    Part two follows...
     
  152. Part two of regular update:

    Current positions:

    Code:
           code contractid  positions   Lock WrongContract InFwdNotRoll
    25      AEX     201508          1  False         False        False
    2       AUD     201509         -3  False         False        False
    6      BOBL     201509          1  False         False        False
    24      BTP     201509          1  False         False        False
    0       CAC     201508          1  False         False        False
    21   COPPER     201512         -2  False         False        False
    14  CRUDE_W     201512         -2  False         False        False
    23  EDOLLAR     201812          4  False         False        False
    27  EDOLLAR     201809          2  False         False        False
    5       EUR     201509         -1  False         False        False
    15  EUROSTX     201509        -13  False         False        False  (hedge)
    12      GBP     201509         -1  False         False        False
    11     GOLD     201508         -3  False         False        False
    18      JPY     201509         -2  False         False        False
    9       KR3     201509          8  False         False        False
    1   LEANHOG     201606          1  False         False        False
    3   LIVECOW     201510         -1  False         False        False
    13      MXP     201509         -7  False         False        False
    4    NASDAQ     201509          1  False         False        False
    20      NZD     201509         -3  False         False        False
    28   PALLAD     201509         -2  False         False        False
    16     PLAT     201510         -4  False         False        False
    19      SMI     201509          1  False         False        False
    17  SOYBEAN     201511          2  False         False        False
    26    SP500     201509          1  False         False        False
    10      US2     201509          2  False         False        False
    8       US5     201509          1  False         False        False
    22      V2X     201509          2  False         False        False
    7       VIX     201508         -2  False         False        False 
    Risk
    Code:
         code  multisignal  expected_annual_risk  expected_annual_risk_per_contract  position  expected_annual_risk_rounded_pos
    21      SMI         13.6                  8739                              10905         1                             10905
    3  SOYBEAN        16.6                10653                              7126        2                            14252
    28      MXP        -17.8                 11387                               1591        -7                             11138
    27      JPY        -19.3                 12385                               5787        -2                             11575
    17      VIX        -19.5                 12515                               6981        -2                             13961
    24      AUD        -21.9                 14005                               4938        -3                             14815
    30   COPPER        -30.2                 19325                               7785        -2                             15571
    29      NZD        -22.5                 14416                               5409        -3                             16228
    33     PLAT        -31.3                 20024                               4832        -4                             19328
    34  CRUDE_W        -32.6                 20893                               9798        -2                             19596
    32   PALLAD        -30.6                 19603                              10841        -2                             21682
    31     GOLD        -37.0                 23675                               9103        -3                             27309
    25      EUR        -25.8                 16559                              28110        -1                             28110
    37  EUROSTX          0.0                     0                               6959       -13                             90473
    
    Notice that Gold / Palladium / Platinum, are amongst my biggest shorts.

    Current expected portfolio risk is @ 118% of average; on 93% of maximum capital (due to the drawdown) or in money terms £6,881 a day or £110K a year (or if you like, 28% of my maximum capital, and 29.5% of my current reduced capital; versus long run targets of 25%).

    Risk@ 118% of average is up from 92% a couple of weeks ago. Although I describe myself as a 'slow' trader compared to the daytrading / HFT gunslingers; my risk has increased by ~30% on the back of some tidy trends in just 10 business days.



    Trades
    Code:
            code contractid     filled_datetime  filledtrade  filledprice
    4537      AEX     201508 2015-07-21 08:02:05            1   500.850000
    4396      AUD     201509 2015-07-06 01:26:41           -1     0.747700
    4447      AUD     201509 2015-07-09 01:28:32           -1     0.738200
    4435     BOBL     201509 2015-07-08 10:35:37            1   130.140000
    4477     BOBL     201509 2015-07-13 07:31:30           -1   129.250000
    4534      BTP     201509 2015-07-20 09:30:58            1   135.100000
    4528      CAC     201508 2015-07-20 08:02:37            1  5142.500000
    4441   COPPER     201512 2015-07-08 12:04:56           -1     2.450000
    4483     CORN     201512 2015-07-13 14:30:00            1   443.500000
    4465  CRUDE_W     201512 2015-07-09 12:13:22           -1    54.390000
    4459  EDOLLAR     201812 2015-07-09 12:02:13            1    97.610000
    4498      EUR     201509 2015-07-16 01:36:31           -1     1.094700
    4402   GAS_US     201509 2015-07-06 12:14:29           -1     2.767000
    4444   GAS_US     201509 2015-07-08 12:13:06           -1     2.736000
    4474   GAS_US     201509 2015-07-10 17:28:15            1     2.803000
    4486   GAS_US     201509 2015-07-14 12:14:22            1     2.884000
    4510   GAS_US     201509 2015-07-16 12:21:25            1     2.907000
    4405      GBP     201509 2015-07-07 10:14:13           -1     1.549300
    4450      GBP     201509 2015-07-09 01:33:28           -1     1.535600
    4471      GBP     201509 2015-07-10 12:29:51            1     1.553700
    4399     GOLD     201508 2015-07-06 12:07:26           -1  1164.500000
    4426      JPY     201509 2015-07-08 07:59:08            1     0.008223
    4480      JPY     201509 2015-07-13 07:57:51           -1     0.008133
    4504      JPY     201509 2015-07-16 06:57:31           -1     0.008075
    4456    KOSPI     201509 2015-07-09 01:47:17           -1   242.800000
    4468    KOSPI     201509 2015-07-10 02:32:45            1   247.450000
    4423      KR3     201509 2015-07-08 02:24:39            1   109.100000
    4522      KR3     201509 2015-07-17 01:05:32            1   109.080000
    4420  LEANHOG     201606 2015-07-07 14:59:16            1    82.400000
    4495  LIVECOW     201510 2015-07-15 15:44:49           -1   149.950000
    4453      MXP     201509 2015-07-09 01:40:29           -1     0.062770
    4525   NASDAQ     201509 2015-07-17 14:22:00            1  4621.500000
    4462     PLAT     201510 2015-07-09 12:10:59           -1  1034.800000
    4507      SMI     201509 2015-07-16 08:05:13            1  9308.000000
    4438  SOYBEAN     201511 2015-07-08 12:07:54           -1   981.750000
    4516    SP500     201509 2015-07-16 14:21:18            1  2114.500000
    4513      US2     201509 2015-07-16 14:10:00           -1   109.437500
    4540      V2X     201508 2015-07-21 08:06:57           -1    19.700000
    There is slightly less trading than normal. With trend following when you're making money you'll probably be doing less trades. The trades you do will normally, over this kind of period, be opening trades in the direction of a strengthening trend. So in the metals complex I just added to existing shorts.

    On the other hand consider GAS_US which wasn't a great market. I started the period short one contract. I then sold into what looked like a fading market. I was wrong however and had to buy back at higher prices; eventually closing out completely. This pattern of opens and closes, buying high and selling low, is very characteristic of a trend follower playing in a choppy market. You end up churning a bit and getting out with a modest small loss.

    Of course the hope is that this doesn't happen too often and you end up with a few markets where are decent trends; on which you take larger gains which will outweigh your more numerous small losses. In the last two weeks that has clearly been the case. It's all about sitting at the table, ponying up your small ante, and waiting for the cards to turn into your favour before you bet the big bucks.

    Forgot to say slippage was £2.40 (or what I just paid for a not brilliant latte) versus expectations of £198.47. Plus say another £25 for commissions and £5 for data. This can be a pretty cheap hobby :)

    GAT
     
  153. Part one of fortnightly update (last July 21st)

    I'm happy today, and heres why

    [​IMG]
    So yesterday, for a few hours, I broke through my HWM and out of drawdown. A drawdown lasting a little less than 4 months is relatively short if you look at the backtest, but it's a different matter when you're living through it.

    I don't increase my capital at risk when I make a new HWM, instead I 'bank' the money and put it out of reach of my trading system (only in an accounting sense; the money is actually withdrawn at the end of the year or earlier to pay taxes and what not). Just over a 1% profit was 'banked' in this way; not a lot but it's better than a kick in the teeth with a Sharpe ratio stick.

    This also means I'm profitable for the current fiscal year. Still some way to go, but would be nice to have a down year just yet.

    As of this morning my profit in the last two weeks then was around £23K. Current drawdown (off the new, higher HWM don't forget) is 2.3%.

    Big gainers:

    Crude 7900
    Copper 4400
    Palladium 3800
    Platinum 3000
    Gold 2000
    MXP 2000

    Fallers:

    SP500 -2200
    Nasdaq -1800
    Wheat -1550

    Same story as the last update, except the rest of the metals complex is catching up with Gold.

    Surely even non commodity traders have heard the news that Crude is down to sub $50

    [​IMG]
    Current positions

    Code:
           code contractid  positions   Lock WrongContract InFwdNotRoll
    1       AUD     201509         -1  False         False        False
    3      BOBL     201509          2  False         False        False
    26      BTP     201509          2  False         False        False
    9       CAC     201509          1  False         False        False
    20   COPPER     201512         -2  False         False        False
    21     CORN     201512         -1  False         False        False
    13  CRUDE_W     201512         -2  False         False        False
    25  EDOLLAR     201812          5  False         False        False
    28  EDOLLAR     201809          2  False         False        False
    14  EUROSTX     201509        -13  False         False        False   (Hedge)
    29   GAS_US     201510         -2  False         False        False
    8      GOLD     201512         -3  False         False        False
    17      JPY     201509         -3  False         False        False
    23    KOSPI     201509         -1  False         False        False
    12     KR10     201509          1  False         False        False
    5       KR3     201509          8  False         False        False
    0   LEANHOG     201606          1  False         False        False
    2   LIVECOW     201510         -1  False         False        False
    10      MXP     201509         -7  False         False        False
    19      NZD     201509         -2  False         False        False
    22      OAT     201509          1  False         False        False
    30   PALLAD     201509         -2  False         False        False
    15     PLAT     201510         -4  False         False        False
    18      SMI     201509          1  False         False        False
    16  SOYBEAN     201511         -1  False         False        False
    27    SP500     201509          1  False         False        False
    7       US2     201509          2  False         False        False
    4       US5     201509          1  False         False        False
    24      V2X     201509          1  False         False        False
    6       VIX     201509         -2   True         False        False
    11    WHEAT     201512         -1  False         False        False
    

    Part two follows...
     
  154. Part two of regular update

    Risk

    Code:
    Expected annual risk more than GBP6400 per year, GBP400 per day
           code  multisignal  expected_annual_risk  expected_annual_risk_per_contract  position  expected_annual_risk_rounded_pos
    25      EUR        -14.9                  9531                              21455         0                                 0
    24      AUD        -13.4                  8609                               5160        -1                              5160
    4     WHEAT        -10.0                  6411                               5176        -1                              5176
    3   SOYBEAN        -11.1                  7138                               6911        -1                              6911
    27      JPY        -19.7                 12592                               4572        -2                              9144
    29      NZD        -20.0                 12812                               5111        -2                             10223
    35   GAS_US        -16.0                 10247                               5251        -2                             10503
    28      MXP        -17.7                 11335                               1609        -7                             11260
    17      VIX        -18.8                 12033                               5929        -2                             11858
    30   COPPER        -30.1                 19253                               7835        -2                             15670
    33     PLAT        -30.1                 19253                               4768        -4                             19074
    34  CRUDE_W        -35.2                 22514                               9720        -2                             19440
    32   PALLAD        -35.5                 22763                              10356        -2                             20713
    31     GOLD        -35.5                 22763                               8432        -3                             25297
    
    21      SMI         11.2                  7165                               9712         1                              9712
    10      OAT         15.0                  9577                               6551         1                              6551
    36  EDOLLAR         16.7                 10676                               1474         7                             10320
    8       BTP         18.3                 11692                               7415         2                             14830
    
    Current expected portfolio risk is @ 121% of average; on 97.7% of maximum capital (due to the drawdown) or in money terms £7371 a day or £118K a year (or if you like, 29.4% of my maximum capital, and 30.1% of my current reduced capital; versus long run targets of 25%).

    Risk@121 % of average is slightly up from 118% a couple of weeks ago. My system has hit a risk ceiling (maximum total signal; or if you like the measure of risk that assumes in a crisis all correlations will go to 1 or -1, whichever is worse) which is mostly preventing it from scaling up any further.


    Trades

    Code:
             code contractid     filled_datetime  filledtrade  filledprice
    4585      AEX     201508 2015-07-24 07:59:56           -1   491.400000
    4660      AUD     201509 2015-07-31 16:00:00            1     0.732900
    4684      AUD     201509 2015-08-04 01:25:33           -1     0.725100
    4687      AUD     201509 2015-08-04 06:27:51            1     0.733400
    4696      AUD     201509 2015-08-04 16:07:59            1     0.740300
    4690      BTP     201509 2015-08-04 07:31:58            1   136.710000
    4609      CAC     201508 2015-07-27 14:57:56           -1  4948.500000
    4693      CAC     201509 2015-08-04 08:05:36            1  5099.000000
    4567   COPPER     201512 2015-07-22 14:17:09           -1     2.447500
    4633   COPPER     201512 2015-07-28 19:34:12            1     2.420000
    4630     CORN     201512 2015-07-28 15:17:10           -1   384.250000
    4597  CRUDE_W     201512 2015-07-27 12:10:03           -1    49.330000
    4681  CRUDE_W     201512 2015-08-03 17:21:03            1    47.290000
    4648  EDOLLAR     201812 2015-07-31 12:10:45            1    97.580000
    4594      EUR     201509 2015-07-27 03:26:25            1     1.100900
    4600   GAS_US     201510 2015-07-27 12:15:01           -1     2.790000
    4666   GAS_US     201510 2015-08-03 12:17:00           -1     2.796000
    4570      GBP     201509 2015-07-23 06:14:11            1     1.561700
    4576      GBP     201509 2015-07-24 01:45:26           -1     1.550800
    4636      GBP     201509 2015-07-29 01:34:55            1     1.560400
    4669     GOLD     201508 2015-08-03 12:35:16            1  1091.000000
    4672     GOLD     201512 2015-08-03 12:35:16           -1  1091.000000
    4675     GOLD     201508 2015-08-03 12:47:32            2  1090.400000
    4678     GOLD     201512 2015-08-03 12:47:32           -2  1090.400000
    4699      JPY     201509 2015-08-05 01:43:52           -1     0.008046
    4615    KOSPI     201509 2015-07-28 01:26:32           -1   244.000000
    4591     KR10     201509 2015-07-27 01:39:29            1   123.700000
    4618      MXP     201509 2015-07-28 01:49:46           -1     0.061170
    4651      MXP     201509 2015-07-31 13:46:21            1     0.061970
    4627   NASDAQ     201509 2015-07-28 14:13:57           -1  4531.500000
    4573      NZD     201509 2015-07-23 09:21:14            1     0.665400
    4579      NZD     201509 2015-07-24 01:55:11           -1     0.658700
    4642      NZD     201509 2015-07-30 15:20:19            1     0.656300
    4582      OAT     201509 2015-07-24 07:33:44            1   148.700000
    4612      SMI     201509 2015-07-27 15:01:34           -1  9177.000000
    4645      SMI     201509 2015-07-31 08:03:49            1  9397.000000
    4564  SOYBEAN     201511 2015-07-22 12:02:12           -1   996.500000
    4588  SOYBEAN     201511 2015-07-24 12:13:30           -1   978.000000
    4639  SOYBEAN     201511 2015-07-29 12:05:00           -1   943.750000
    4606    SP500     201509 2015-07-27 14:17:06           -1  2064.250000
    4654    SP500     201509 2015-07-31 14:11:16            1  2106.250000
    4603      US2     201509 2015-07-27 14:11:34            1   109.507812
    4657      US2     201509 2015-07-31 15:47:47           -1   109.539062
    4621      V2X     201509 2015-07-28 08:08:28           -1    21.200000
    4624    WHEAT     201512 2015-07-28 12:05:09           -1   516.750000
    
    
    Slippage £72.50 vs £185 expectated

    Just to say, if there is any information you'd like to see included in these regular updates, or any questions you have, fire away. It will be far more interesting for me.

    There won't be another of these updates for about a month, as I'm taking some holiday. During that time I'll be away from my trading system with only a brief day back at home in late August. That will enable me to do the early quarterly rolls for bond contracts. The monthly rolls for VIX, V2X, AEX and CAC I've already done.

    How should one deal with holidays as a slowish automated trader (a day trader can probably not trade)? The first option is to close all your positions. This incurs two lots of slippage (though if you're smart you can do it in conjunction with rolling) - probably several thousand; and opportunity cost from not trading (depending on what I think my Sharpe Ratio is, between £1K and £2K a week lost on average, though it could be a gain). This strikes me as very conservative.

    The second option is to keep your positions open, but turn off your trading system so you won't react to anything that happens. If you're trading slowly enough you might just get away with it. Personally that scares me a little.

    The third option is to keep your system on, but reduce your risk in some way. You can do this across the board (eg cut all positions in half) or selectively. Last year for example I had some massive short VIX/V2X positions. That kind of negative skew whilst being away from the system was a little worrying. This year I could cut my big shorts in crude and metals. Theoretically it's better just to cut all your positions than to do it selectively. I'm giving this option some serious consideration.

    The fourth option is to keep your system on with full initial positions, but only allow trading which reduces your risk (eg closing positions). This is an option which I find tempting.

    The final option is of course to let everything run just as it is. I'm a little more confident in my system than I was last summer, but it's still a bit worrying.

    If anyone has any thoughts on this, I'd be interested to hear them (before Sunday morning, when I have to action them!).

    GAT
     
  155. You said you have about 40 different instruments traded at all times. After you have a year of data, wouldn't it be wise to get ride of the worst performing 5-10 instruments and just keep the rest? 30 is still very well diversified....

    Of course it is possible that those 5-10 futures just had a bad year, but would be interesting to see their back test what it shows in a longer time frame.
     
  156. Nice performance.

    One option you forgot to mention is not to go away at all.
     
  157. Interesting question. But this is a bad idea.... There isn't enough data in the backtest (at most 35 years, but on average about 15 years, and in some cases just 2 years) to prove statistically that instrument A is "probably" better than instrument B.

    [​IMG]
    Number of instruments with data, by year. From http://qoppac.blogspot.co.uk/2015/03/simulating-my-futures-system.html

    And this means one year of live trading data is wholly inadequate. This is because the differences in performance aren't sufficiently large to find a difference.

    From table 6 of my forthcoming book given an average correlation between instruments of 0.5 I'd only need 8 years of data if one instrument had a Sharpe Ratio (SR) that was 1.0 higher than another (say a SR of 1.5 compared to one of 0.5). However there just aren't any instruments with that kind of SR difference over 8 years or more. More commonly the difference in performance is perhaps 0.5 or 0.25 SR units. With that kind of 'advantage' I'd need 25 years and 40 years of data respectively. I just don't have it.


    GAT
     
  158. Ha! Yes forgot that one. But one of the nice advantages of being an independent trader is to go on holiday whenever you feel like it.....

    GAT
     
  159. But even 1 year data is like 250 trading days, that is a lots of data and statistically signifficant number. Also markets change over time, so just because the backtest worked in let's say 2006, that doesn't mean the strategy still works today with the same instrument.

    I am curious about the breakdown of the 40 instruments as P/L goes? Let's say 10-15 very well performing, 15-20 so-so, and 10-15 losers. What is the point of carrying the loser?

    Another question: How about correlated markets? Even if it is 2 futures, if they are strongly correlated, they can be treated as one. This is including inversely correlated markets too. Dollar/gold is such an example. The point here is that just because you have 40 instruments, you might only trade 25 uncorrelated markets or even less....
     
  160. The point of 'carrying the loser' is that you don't know in future which markets will be the losers, and which will be the winners. For this to be the case three things would have to be true:

    - there would have to be some reason which explains why A is winning and B is losing (or it is just likely to be a statistical fluke). For the kind of trading I do, that's usually unlikely. For HFT stuff working on market microstructure with for example different priority rules and rebates it is more plausible.
    - there wouldn't be any changes in this relative structure; eg the future would be exactly like the past. Even for HFT this is a stretch, because different players come into the market and change the way it works.
    - there would have to be sufficient statistical evidence to show that market A was better than market B

    So we're back to statistics again. It's not true that using daily data rather than say monthly or annual data will give you more statistical significance. This is because when you go down to daily data you increase the amount of noise. This exactly compensates for the increase in the number of data points (to be technical, both effects scale at square root of time, ignoring auto-correlation effects which don't make that much difference to the result).

    As for 'it worked before but might not work today' I'm trading systems with a relatively slow holding period, at least by the febrile standards of this board. My base assumption is that they always work on all markets for all time. I will never have enough data to prove otherwise. I will never have enough data to prove that I should be trading something else. I will never have enough data to prove that they only work for certain markets.

    You are correct that there is no point having 100% correlated markets. However it depends on how much capital you have as to whether you would bother with markets that are 75% correlated, or 99% correlated. All things being equal I'd rather have more markets than less. And with more capital I will be adding markets where the correlation is higher, than for someone with less capital (see http://www.elitetrader.com/et/index.php?threads/a-tale-of-two-positions.292751/#post-4147857 for more explanation on this point).

    With enough capital to trade 40 markets, that's what I should do. If I went down to 15 markets by dropping the most correlated pairs I'd reduce my expected Sharpe Ratio by about 15%, or in money terms about £13,000 a year. Why would I voluntarily want to give that up?

    (A minor point to make is that what matters is not the correlation between prices that matters, but between the returns of the trading subsystems. The correlation of the latter is lower, so the diversification effect of adding more instruments is higher than you might think)

    GAT
     
  161. It's been about a month since my last update; I've actually been back from holiday a few days but a month is an easier reporting period to deal with.

    I discussed in a previous post what action I should take whilst away. In the end I didn't do anything... and for nearly all the time I didn't have internet or even read a newspaper... I can hear you gasping.... why did I miss anything?!

    For most of the holiday not very much probably happened, but then with about a week to go apparently things got a little interesting. Net-Net on the moves of the last couple of weeks I'm flat or slightly up, but it has been a wild ride. I hit a new HWM when the equity market fell of a cliff, but gave most of it back on the recovery:


    Anyway as of this morning my profit since the last update was around £20K. Current drawdown (off the new, higher HWM don't forget) is 6.9%



    Gainers:


    KOSPI £5400
    MXP £3400
    EDOLLAR £3700
    PALLAD £3200
    AUD £2900
    KR3 £2500


    Losers:


    AEX -£2300
    CAC -£2300
    JPY -£5400
    PLAT -£6900
    GOLD -£7600
    VIX -£12700


    That big VIX loss wasn't really a surprise – I'd sold 3 contracts at a price of 16 or less, then it spiked above 20 very rapidly. Though I cut my position by then the damage was done. There is a similar story with Gold and everything else you can see here. This is why diversification is so important... even within the metals bucket I had radically different p&l. Referencing the discussion on here before, which of the metals should I choose to trade?

    [​IMG] Anyway as of this morning my profit since the last update was around £20K. Current drawdown (off the new, higher HWM don't forget) is 6.9%


    Gainers:


    KOSPI £5400
    MXP £3400
    EDOLLAR £3700
    PALLAD £3200
    AUD £2900
    KR3 £2500


    Losers:


    AEX -£2300
    CAC -£2300
    JPY -£5400
    PLAT -£6900
    GOLD -£7600
    VIX -£12700

    That big VIX loss wasn't really a surprise – I'd sold 3 contracts at a price of 16 or less, then it spiked above 20 very rapidly. Though I cut my position by then the damage was done. There is a similar story with Gold and everything else you can see here. This is why diversification is so important... even within the metals bucket I had radically different p&l. Referencing the discussion on here before, which of the metals should I choose to trade? Same question for currencies?

    Current positions

    Code:
           code contractid  positions   Lock WrongContract InFwdNotRoll
    1       AUD     201509         -3  False         False        False
    5      BOBL     201512          3  False         False        False
    23      BTP     201512          1  False         False        False
    17   COPPER     201512         -2  False         False        False
    18     CORN     201512         -3  False         False        False
    11  CRUDE_W     201512         -1  False         False        False
    21  EDOLLAR     201812         11  False         False        False
    12  EUROSTX     201509        -13  False         False        False  (HEDGE)
    3    GAS_US     201511         -4  False         False        False
    7       GBP     201509         -3  False         False        False
    10     KR10     201509          2  False         False        False
    6       KR3     201509         11  False         False        False
    0   LEANHOG     201606          1  False         False        False
    19  LIVECOW     201610         -1  False         False        False
    8       MXP     201509         -6  False         False        False
    16      NZD     201509         -2  False         False        False
    22   PALLAD     201512         -1  False         False        False
    13     PLAT     201510         -2  False         False        False
    14  SOYBEAN     201511         -2  False         False        False
    2      US10     201512          1  False         False        False
    4       US2     201512          3  False         False        False
    20      US5     201512          1  False         False        False
    15      V2X     201510          1  False         False        False
    24      V2X     201511          1  False         False        False
    25      VIX     201510         -1  False         False        False
    9     WHEAT     201512         -3  False         False        False
    
    Current risk

    Code:
    Expected annual risk more than GBP6400 per year, GBP400 per day
           code  multisignal  expected_annual_risk  expected_annual_risk_per_contract  position  expected_annual_risk_rounded_pos
    17      VIX        -20.1                 13098                               9846        -1                              9846
    0      CORN        -16.0                 10411                               3469        -3                             10406
    29      NZD        -19.3                 12562                               6168        -2                             12337
    28      MXP        -17.7                 11499                               2104        -6                             12624
    4     WHEAT        -18.0                 11695                               4237        -3                             12710
    26      GBP        -21.4                 13921                               4737        -3                             14210
    34  CRUDE_W        -26.0                 16928                              14271        -1                             14271
    33     PLAT        -16.7                 10837                               7345        -2                             14691
    3   SOYBEAN        -22.3                 14538                               8074        -2                             16147
    24      AUD        -22.6                 14719                               5384        -3                             16152
    32   PALLAD        -21.6                 14078                              16835        -1                             16835
    30   COPPER        -29.6                 19257                               9453        -2                             18907
    35   GAS_US        -33.8                 21973                               5215        -4                             20860
    36  EDOLLAR         24.2                 15720                               1294        11                             14229
    
    Although I have fewer, and smaller, positions due to higher market vol the current expected portfolio risk as of last night was virtually unchanged @ 120% of average; on 90% of maximum capital (due to the drawdown) or in money terms £6768 a day or £108K a year.

    Due to a smaller number of positions I am no longer hitting any risk limits (to put it another way, my exposure to correlation risk has fallen).

    Trades
    Code:
             code contractid     filled_datetime  filledtrade  filledprice
    4741      AEX     201509 2015-08-06 13:17:37            1   500.200000
    4777      AEX     201509 2015-08-13 07:56:45           -1   483.700000
    4990      AUD     201509 2015-08-26 01:28:57           -1     0.710400
    5086      AUD     201509 2015-09-03 03:31:48           -1     0.702000
    4843     BOBL     201509 2015-08-17 07:28:42            1   130.510000
    4927     BOBL     201509 2015-08-25 10:02:17           -3   130.470000
    4930     BOBL     201512 2015-08-25 10:02:17            3   128.620000
    4846      BTP     201509 2015-08-17 08:29:10            1   136.880000
    4867      BTP     201509 2015-08-18 14:54:13           -1   136.480000
    4912      BTP     201509 2015-08-25 09:36:09           -1   135.330000
    5008      BTP     201509 2015-08-27 09:41:02           -1   134.880000
    5011      BTP     201512 2015-08-27 09:41:02            1   133.200000
    5014      BTP     201512 2015-08-27 09:45:49           -1   133.280000
    5035      BTP     201512 2015-08-28 10:49:52            1   133.750000
    5077      BTP     201512 2015-09-02 15:25:36           -1   132.710000
    5113      BTP     201512 2015-09-03 15:24:02            1   133.640000
    4822     BUND     201509 2015-08-14 07:30:53            1   155.040000
    4957     BUND     201509 2015-08-25 13:02:24           -1   154.020000
    4960     BUND     201512 2015-08-25 13:02:24            1   154.210000
    4996     BUND     201512 2015-08-26 07:26:07           -1   153.980000
    4783      CAC     201509 2015-08-13 07:59:42           -1  5005.500000
    4999      CAC     201509 2015-08-26 07:59:04           -1  4494.000000
    5017      CAC     201509 2015-08-27 10:00:17            1  4640.500000
    4756   COPPER     201512 2015-08-10 13:07:10           -1     2.348000
    4762   COPPER     201512 2015-08-10 16:15:42            1     2.398500
    4810   COPPER     201512 2015-08-13 12:10:50           -1     2.347000
    5029   COPPER     201512 2015-08-27 16:55:39            1     2.334500
    4852     CORN     201512 2015-08-17 15:15:26           -1   375.250000
    5074     CORN     201512 2015-09-02 14:30:00           -1   368.750000
    4798  CRUDE_W     201512 2015-08-13 11:57:17           -1    46.150000
    5032  CRUDE_W     201512 2015-08-27 17:00:54            1    43.400000
    5071  CRUDE_W     201512 2015-09-02 14:12:30            1    47.020000
    4807  EDOLLAR     201812 2015-08-13 12:04:23            1    97.705000
    4831  EDOLLAR     201812 2015-08-14 12:03:57            1    97.710000
    4873  EDOLLAR     201812 2015-08-19 12:00:30            1    97.700000
    4945  EDOLLAR     201809 2015-08-25 11:58:50           -2    97.985000
    4948  EDOLLAR     201812 2015-08-25 11:58:50            2    97.885000
    5005  EDOLLAR     201812 2015-08-26 17:55:45            1    97.875000
    4744      EUR     201509 2015-08-06 13:59:49           -1     1.088900
    4753      EUR     201509 2015-08-10 01:28:17            1     1.096000
    4801   GAS_US     201510 2015-08-13 11:59:15            1     2.934000
    4849   GAS_US     201511 2015-08-17 12:14:52           -1     2.903000
    4864   GAS_US     201511 2015-08-18 12:11:41           -1     2.847000
    4882   GAS_US     201511 2015-08-19 17:52:57           -1     2.824000
    4951   GAS_US     201510 2015-08-25 12:02:37            1     2.690000
    4954   GAS_US     201511 2015-08-25 12:02:37           -1     2.768000
    4750      GBP     201509 2015-08-07 01:46:12           -1     1.551000
    4774      GBP     201509 2015-08-13 00:59:57            1     1.560800
    4918      GBP     201509 2015-08-25 09:39:34            1     1.578900
    4987      GBP     201509 2015-08-25 19:26:17           -1     1.568500
    5023      GBP     201509 2015-08-27 15:52:25           -1     1.538500
    5041      GBP     201509 2015-08-31 01:35:03           -1     1.542000
    5083      GBP     201509 2015-09-03 01:34:12           -1     1.530000
    4768     GOLD     201512 2015-08-11 12:07:07            1  1111.500000
    4834     GOLD     201512 2015-08-14 12:14:54            1  1120.000000
    4891     GOLD     201512 2015-08-20 12:14:06            1  1138.200000
    4885      JPY     201509 2015-08-20 01:40:06            1     0.008076
    4903      JPY     201509 2015-08-24 00:57:14            1     0.008216
    4909      JPY     201509 2015-08-25 00:57:57            1     0.008411
    4870    KOSPI     201509 2015-08-19 02:58:19           -1   233.850000
    5038    KOSPI     201509 2015-08-31 01:01:27            1   230.350000
    5131    KOSPI     201509 2015-09-04 02:36:39            1   229.200000
    4894     KR10     201509 2015-08-21 01:40:29            1   124.320000
    4840      KR3     201509 2015-08-17 01:47:50            1   109.340000
    4897      KR3     201509 2015-08-21 02:00:22            1   109.450000
    5128      KR3     201509 2015-09-04 01:46:33            1   109.610000
    5116  LIVECOW     201510 2015-09-03 16:55:29            1   142.450000
    5119  LIVECOW     201610 2015-09-03 16:55:29           -1   135.100000
    4765      MXP     201509 2015-08-10 18:11:37            1     0.061870
    4792      MXP     201509 2015-08-13 09:59:07           -1     0.061240
    4855      MXP     201509 2015-08-18 02:24:11           -1     0.060690
    4921      MXP     201509 2015-08-25 09:40:38            1     0.058530
    4936      MXP     201509 2015-08-25 11:26:57            1     0.059000
    4993      MXP     201509 2015-08-26 01:39:01           -1     0.057770
    5026      MXP     201509 2015-08-27 16:17:41            1     0.059320
    4858      OAT     201509 2015-08-18 07:32:41            1   149.860000
    4876      OAT     201509 2015-08-19 15:21:25           -1   149.340000
    4888      OAT     201509 2015-08-20 07:31:50            1   150.020000
    4915      OAT     201509 2015-08-25 09:37:06           -1   149.010000
    4963      OAT     201509 2015-08-25 13:08:30           -1   148.380000
    4939   PALLAD     201509 2015-08-25 11:57:25            1   559.850000
    5065   PALLAD     201509 2015-09-02 13:25:09            1   574.300000
    5068   PALLAD     201512 2015-09-02 13:25:09           -1   574.900000
    4879     PLAT     201510 2015-08-19 15:48:20            1  1008.400000
    4942     PLAT     201510 2015-08-25 11:57:55            1   991.400000
    4780      SMI     201509 2015-08-13 07:57:51           -1  9297.000000
    4759  SOYBEAN     201511 2015-08-10 15:46:16            1   981.500000
    4819  SOYBEAN     201511 2015-08-13 16:22:26           -1   913.500000
    5002  SOYBEAN     201511 2015-08-26 12:21:49           -1   874.500000
    4747    SP500     201509 2015-08-07 08:56:52           -1  2073.500000
    4813     US10     201509 2015-08-13 15:33:12            1   127.671875
    4966     US10     201509 2015-08-25 13:55:42           -1   128.656250
    4969     US10     201512 2015-08-25 13:55:42            1   128.101562
    4816      US2     201509 2015-08-13 15:38:40            1   109.476562
    4972      US2     201509 2015-08-25 13:56:17           -3   109.687500
    4975      US2     201512 2015-08-25 13:56:17            3   109.468750
    4978      US5     201509 2015-08-25 13:57:13           -1   120.570312
    4981      US5     201512 2015-08-25 13:57:13            1   120.179688
    4984      US5     201512 2015-08-25 14:04:00            1   120.171875
    5020      US5     201512 2015-08-27 14:07:59           -1   119.609375
    4708      V2X     201509 2015-08-05 11:02:38           -1    19.500000
    4711      V2X     201510 2015-08-05 11:02:38            1    19.900000
    4738      V2X     201510 2015-08-06 08:11:06           -1    20.000000
    4789      V2X     201510 2015-08-13 08:14:17           -1    20.700000
    4933      V2X     201510 2015-08-25 10:38:30            1    23.850000
    5047      V2X     201510 2015-08-31 09:08:46            1    26.000000
    5137      V2X     201511 2015-09-04 08:22:25            1    27.300000
    4714      VIX     201510 2015-08-05 11:04:33           -2    15.800000
    4720      VIX     201509 2015-08-05 14:02:19            2    15.000000
    4795      VIX     201510 2015-08-13 10:05:07           -1    16.000000
    4924      VIX     201510 2015-08-25 10:02:31            1    20.550000
    5062      VIX     201510 2015-08-31 11:00:07            1    22.800000
    4861    WHEAT     201512 2015-08-18 12:02:26           -1   503.750000
    5080    WHEAT     201512 2015-09-02 16:24:15           -1   477.000000
    
    Slippage – expected £648, actual £421

    A lot of rolls, but also just a lot of trading because of the markets wild swings. Even profitable positions like MXP had to be traded to adjust my risk as the turmoil affected it.

    In other news I've published my final blog post on system construction, any discussion here please http://www.elitetrader.com/et/index...ed-trading-system-checks-and-balances.294024/

    And for those who don't follow me on social media, you might not have seen the first review of my new book:

    "A remarkable look inside systematic trading never seen before, spanning the range from small to institutional traders. This isn't only for algorithmic traders, it's valuable for anyone needing a structure - which is all of us. Carver explains how to properly test, apply constant risk, size positions and portfolios, and my favorite, his "no rule" trading rule, all explained with scenarios. Reading this will benefit all traders."

    Perry Kaufman, author of Trading Systems and Methods.

    I'm a massive fan of Perry, and very grateful for this endorsement.

    The official release of the book is September 15th, but some of the people who pre-ordered the ebook have received their copies already.

    Happy trading
    GAT
     
  162. A quiet couple of weeks after all the excitement in August.

    As of this morning my loss since the last update was around £7K. Current draw down is 8.7%.


    [​IMG]

    Gainers:

    Crude oil £6K
    Platinum £3.2K
    Palladium £2.2K
    KOSPI £1.4K
    Yen £1.2K

    Losers:

    KR3 £1.2K
    Live cow £1K
    S&P 500 1.8K

    Current positions:

    Code:
           code contractid  positions   Lock WrongContract InFwdNotRoll
    4      BOBL     201512          3  False         False        False
    20      BTP     201512          2  False         False        False
    14   COPPER     201512         -1  False         False        False
    13     CORN     201612         -3  False         False        False
    7   CRUDE_W     201512         -1  False         False        False
    12  EDOLLAR     201903          3  False         False        False
    17  EDOLLAR     201812         10  False         False        False
    19  EUROSTX     201512        -13  False         False        False  (hedge)
    1    GAS_US     201512         -1  False         False        False
    2    GAS_US     201511         -4  False         False        False
    11     KR10     201512          2  False         False        False
    9       KR3     201512          9  False         False        False
    0   LEANHOG     201606          2  False         False        False
    15  LIVECOW     201610         -2  False         False        False
    6       MXP     201512         -5  False         False        False
    10      NZD     201512         -2  False         False        False
    18   PALLAD     201512         -1  False         False        False
    8      PLAT     201510         -2  False         False        False
    3       US2     201512          2  False         False        False
    16      US5     201512          1  False         False        False
    21      V2X     201511          3  False         False        False
    5     WHEAT     201612         -2  False         False        False
    
    Current risk:

    Code:
           code  multisignal  expected_annual_risk  expected_annual_risk_per_contract  position  expected_annual_risk_rounded_pos
    4     WHEAT        -12.8                  8245                               4182        -2                              8363
    28      MXP        -14.3                  9268                               1854        -5                              9268
    0      CORN        -11.8                  7618                               3105        -3                              9315
    2   LIVECOW        -14.4                  9323                               5256        -2                             10511
    30   COPPER        -23.1                 14902                              10651        -1                             10651
    29      NZD        -16.2                 10470                               6157        -2                             12314
    32   PALLAD        -12.9                  8317                              13331        -1                             13331
    33     PLAT        -23.5                 15199                               6668        -2                             13335
    34  CRUDE_W        -19.8                 12799                              14363        -1                             14363
    35   GAS_US        -35.9                 23175                               4853        -5                             24267
    
    7      BOBL          9.9                  6421                               1859         3                              5576
    1   LEANHOG         10.6                  6823                               3006         2                              6011
    5      KR10          7.9                  5119                               3042         2                              6084
    6       KR3          9.2                  5953                                705         9                              6349
    8       BTP         20.9                 13506                               7393         2                             14786
    36  EDOLLAR         27.0                 17431                               1446        13                             18799
    
    
    My risk has fallen with the weakening of many trends; the current expected portfolio risk as of last night was virtually unchanged @ 90% of average; on 91% of maximum capital or in money terms £5162 a day or £83K a year.

    Trades:

    Code:
             code contractid     filled_datetime  filledtrade  filledprice
    5164      AUD     201509 2015-09-08 16:23:20            1     0.701700
    5218      AUD     201509 2015-09-10 06:56:38            1     0.701800
    5221      AUD     201512 2015-09-10 06:56:38           -1     0.698450
    5248      AUD     201509 2015-09-10 07:06:08            1     0.701800
    5251      AUD     201512 2015-09-10 07:06:08           -1     0.698450
    5323      AUD     201512 2015-09-14 01:29:59            1     0.707700
    5437      AUD     201512 2015-09-16 07:41:01            1     0.712900
    5113      BTP     201512 2015-09-03 15:24:02            1   133.640000
    5152      BTP     201512 2015-09-07 07:34:06            1   134.390000
    5371      BTP     201512 2015-09-15 11:40:02            1   134.780000
    5428      BTP     201512 2015-09-15 15:58:34           -1   134.140000
    5470   COPPER     201512 2015-09-18 16:07:57            1     2.383500
    5404     CORN     201512 2015-09-15 14:35:56            3   393.500000
    5407     CORN     201612 2015-09-15 14:35:56           -3   414.000000
    5146  EDOLLAR     201812 2015-09-04 12:18:57            1    97.880000
    5278  EDOLLAR     201903 2015-09-10 12:00:18            1    97.760000
    5377  EDOLLAR     201903 2015-09-15 12:04:39            1    97.820000
    5386  EDOLLAR     201903 2015-09-15 12:20:43            1    97.810000
    5434  EDOLLAR     201812 2015-09-15 18:35:47           -1    97.810000
    5461  EDOLLAR     201812 2015-09-18 12:13:41           -1    97.970000
    5365  EUROSTX     201509 2015-09-15 08:02:02           13  3188.000000
    5368  EUROSTX     201512 2015-09-15 08:02:02          -13  3175.000000
    5473   GAS_US     201512 2015-09-18 18:18:02           -1     2.842000
    5161      GBP     201509 2015-09-08 13:18:02            1     1.540400
    5224      GBP     201509 2015-09-10 07:01:47            1     1.536500
    5227      GBP     201512 2015-09-10 07:01:47           -1     1.535700
    5266      GBP     201509 2015-09-10 07:58:28            1     1.536500
    5269      GBP     201512 2015-09-10 07:58:28           -1     1.535700
    5329      GBP     201512 2015-09-14 02:38:06            1     1.544800
    5452      GBP     201512 2015-09-18 01:52:52            1     1.556400
    5149     GOLD     201512 2015-09-04 14:20:48           -1  1117.100000
    5281     GOLD     201512 2015-09-10 12:05:39           -1  1106.300000
    5458     GOLD     201512 2015-09-18 12:05:03            1  1136.500000
    5476     GOLD     201512 2015-09-21 12:04:49            1  1137.100000
    5131    KOSPI     201509 2015-09-04 02:36:39            1   229.200000
    5290     KR10     201512 2015-09-14 01:11:27            2   124.670000
    5305     KR10     201512 2015-09-14 01:12:08            2   124.670000
    5311     KR10     201512 2015-09-14 01:14:19            2   124.680000
    5314     KR10     201512 2015-09-14 01:16:48            2   124.650000
    5317     KR10     201512 2015-09-14 01:18:12            2   124.640000
    5320     KR10     201509 2015-09-14 01:19:54           -2   124.790000
    5335     KR10     201512 2015-09-14 06:30:13           -8   124.420000
    5128      KR3     201509 2015-09-04 01:46:33            1   109.610000
    5158      KR3     201509 2015-09-08 04:31:46           -1   109.580000
    5215      KR3     201509 2015-09-10 02:30:37            1   109.630000
    5296      KR3     201512 2015-09-14 01:03:19           11   109.570000
    5299      KR3     201512 2015-09-14 01:07:45           11   109.570000
    5302      KR3     201512 2015-09-14 01:10:46           11   109.570000
    5308      KR3     201509 2015-09-14 01:12:30          -11   109.620000
    5338      KR3     201512 2015-09-14 06:30:52          -21   109.520000
    5449      KR3     201512 2015-09-18 01:45:36           -2   109.620000
    5455      KR3     201512 2015-09-18 04:49:37           -1   109.650000
    5176  LEANHOG     201606 2015-09-09 15:00:11            1    80.150000
    5116  LIVECOW     201510 2015-09-03 16:55:29            1   142.450000
    5119  LIVECOW     201610 2015-09-03 16:55:29           -1   135.100000
    5479  LIVECOW     201610 2015-09-21 16:14:37           -1   131.375000
    5167      MXP     201509 2015-09-08 16:54:46            1     0.059580
    5236      MXP     201509 2015-09-10 07:04:38            2     0.059370
    5239      MXP     201512 2015-09-10 07:04:38           -2     0.058970
    5254      MXP     201509 2015-09-10 07:10:37            2     0.059370
    5257      MXP     201512 2015-09-10 07:10:37           -2     0.058970
    5260      MXP     201509 2015-09-10 07:15:41            1     0.059370
    5263      MXP     201512 2015-09-10 07:15:41           -1     0.058970
    5230      NZD     201509 2015-09-10 07:02:48            1     0.639200
    5233      NZD     201512 2015-09-10 07:02:48           -1     0.635050
    5242      NZD     201509 2015-09-10 07:05:07            1     0.639200
    5245      NZD     201512 2015-09-10 07:05:07           -1     0.635050
    5347      OAT     201512 2015-09-14 09:39:00            1   150.670000
    5431      OAT     201512 2015-09-15 16:01:47           -1   149.600000
    5389  SOYBEAN     201511 2015-09-15 12:33:19            1   886.000000
    5392  SOYBEAN     201611 2015-09-15 12:33:19           -1   879.000000
    5395  SOYBEAN     201511 2015-09-15 12:38:34            1   885.750000
    5398  SOYBEAN     201611 2015-09-15 12:38:34           -1   878.750000
    5401  SOYBEAN     201611 2015-09-15 12:48:31            1   878.500000
    5464  SOYBEAN     201611 2015-09-18 12:30:07            1   882.000000
    5446     US10     201512 2015-09-17 14:11:42           -1   126.640625
    5467      US2     201512 2015-09-18 15:54:06           -1   109.382812
    5137      V2X     201511 2015-09-04 08:22:25            1    27.300000
    5275      V2X     201511 2015-09-10 08:12:02            1    27.500000
    5341      V2X     201510 2015-09-14 08:35:17           -1    27.800000
    5344      V2X     201511 2015-09-14 08:35:17            1    26.750000
    5362      VIX     201510 2015-09-15 06:47:25            1    22.850000
    5410    WHEAT     201512 2015-09-15 15:28:37            1   494.750000
    5413    WHEAT     201612 2015-09-15 15:28:37           -1   533.000000
    5416    WHEAT     201512 2015-09-15 15:43:22            1   495.500000
    5419    WHEAT     201612 2015-09-15 15:43:22           -1   533.500000
    5422    WHEAT     201512 2015-09-15 15:46:48            1   496.000000
    5425    WHEAT     201612 2015-09-15 15:46:48           -1   534.000000
    5440    WHEAT     201612 2015-09-16 15:59:10            1   526.250000
    5443    WHEAT     201612 2015-09-16 16:04:28           -1   526.000000
    A lot of rolls.

    Slippage £349 vs expected £473

    GAT
     
  163. GAT,

    Great post and great blog.

    I have a few questions as I'm digesting all the info:
    1. the 25% capital at risk is at 95% confidence (I believe I read that in one of your posts), and therefore 2 times the standard deviation of annual returns, correct? If I'm following correctly, then this means that the standard deviation of annual returns is 12.5% -- is this based on your backtesting results?
    2. if my understanding in #1 above is correct, why do you not include the expected annual return in the equation of capital at risk? What I mean is, why is not capital at risk equal to expected maximum draw-down at 95% confidence -- in other words -- maximum_draw_down = mean_annual_return - 2 * annual_std_dev ?
    3. I'm amazed by your graph (in prior post) showing the expected and actual risk. You mentioned that your "risk" calculations are based on standard deviation of the daily returns. I assume that the calculation of expected and actual risk is a measure of standard deviation of returns based on some look-back period, is that correct? If so, what is the duration of the look-back that you use?

    BTW, I'm new to futures trading, actually never traded a single futures contract yet :) I found your blog when I was looking for some info on the IB Gateway API -- it seemed amazing to me that there was no way to log in without the GUI -- I guess there isn't. I'm working on a futures trading system now, and I've been trading a tactical asset allocation system (using ETFs) for about 6 months. But that system is automated only up to the point of execution, it sends me emails of what to buy/sell and I do that part manually. The average holding period is about a month, so the burden is not big.

    Anyhow, I hope my questions make sense -- meaning that I've not misunderstood or misread your blog and this thread. Please keep in mind that I'm not questioning your methods in #2, I simply would like to understand why this is your approach and perhaps why the approach I mention in the question is not appropriate.

    Now that I think about it, I am probably missing something. You mentioned that your Sharpe (or information ration since it does not include the risk-free rate) is roughly 0.9. If std. dev. of annual returns is 12.5%, then average annual return is roughly 11%. But I remember reading that you expect your system to produce about 16% annually. Sorry, I probably need to go back through some of your posts.

    Thanks for your time and for making all this information available.

    --Maciej
     
  164. It's absolutely fine to ask these questions, and hopefully I can clear up your confusion.

    The long run target expected average standard deviation of my annual returns is 25% - that is what I mean by 'risk'. The amount of capital I have at risk is £400,000; so the long run expected blah blah is £100K a year.

    I should get slightly less than this in my backtest, as I have an exogenous risk overlay that reduces my risk when it is particularly vunerable to tail events. However over short periods of my backtest I will obviously have expected risk different from the target; eithier because my forecasts are weak or strong, or because correlations are different from their long run average.

    I'm trying to remember where I used a 95% confidence interval; perhaps relating to a t-test around what the distribution of my returns should be, but I don't think I've ever used it in the context of risk. If so apologies. More likely I've mentioned VAR in passing - but to be clear I don't use VAR and in any case VAR would normally be quoted as a daily measure.

    The maximum drawdown at 95% confidence is path dependent and so can't just be calculated from the expected annual standard deviation. I think your equation would give the 95% confidence interval for expected annual loss if targeted risk was constant (i.e. it wouldn't make sense for trend following or for someone using the kelly criteria to scale capital at risk).

    Still for fun, if we assume my SR is 0.9 as in the backtest, then we get 0.9 x 25% - 2 * 25% or perhaps if we factor out the expected standard deviation 25% x (0.9 - 2) = 28%. That is probably a little conservative but worth bearing in mind.
    FWIW the DAILY equivalent of that formula makes a lot more sense; daily 1.5625% x (0.05625 - 2); or about 3%. Note this is the same as a 95% VAR if you assume gaussian returns. If you put a gun to my head then I'd say my 95% VAR was probably about 4% on average.

    Due to jump effects and so on I'd say that 3% isn't sufficiently conservative and the 95% daily loss is probably a little worse than that in reality.

    I use a lookback of about one month for measuring standard deviations, and a longer lookback of about 6 month for correlations (and using weekly returns).

    Yes to reiterate my std. dev of annual returns is 25% (or a little lower in backtest), as I'm a little conservative I don't expect to see a SR of 0.9, so 16% is probably a reasonable figure for expectations.

    GAT
     
  165. GAT, Thanks for your reply.
     
  166. This thread is really interesting. Thank you for sharing your experience. Your book is a great read as well.

    One question, at what point will margin calls become an issue on your portfolio? Would this only happen if you have a 100% drawdown or could you be subject to this sooner? If so how do you manage the risk of a margin call?
     
  167. Things are confused by the fact that I have both stock and cash funding my portfolio, and because I have 'too much' in my account. Let's pretend that I had 100% cash funding:

    Balance sheet

    Account value: 390K
    Cash: 390K
    Margin: 120K (31% of available cash)

    Capital at risk is 390K (reflecting a 2.5% drawdown on maximum capital at risk of 400K)

    Now let's suppose I have an 'extreme' level of risk; targeting twice my long run average expected risk of 25% x 390K = 97.5K a year, or 6.1K a day. In this case I'd probably be using about 195K of margin (pro-rata based on what my current expected risk is)

    Account value: 390K
    Cash: 390K
    Margin: 195K (50% of available cash)

    Let's take an extreme day when I lose 10 sigma on twice my average risk; or 122K (a 31% one day loss); in a 'gap' when I don't have the chance to sell down any positions.

    That would reduce my cash and capital at risk 390 - 122 = 268K,

    Account value: 268K
    Cash: 268K
    Margin: 195K (72% of available cash)

    However at the first opportunity my positions would reduce by 1 - 268/390 = 31%, and my margin usage would fall by 31% to 134K (back to 50% of cash)

    (It's likely that my positions would reduce further due to elevated volatility and trends being reversed, but it's hard to quantify what effect this would have, so I'm going to ignore this effect).

    Average long run expected risk has also fallen by 31% to 4.2K.

    Account value: 268K
    Cash: 268K
    Margin: 134K (50% of available cash)

    Suppose we have another 10 sigma day and lose 10 x 2 x 4.2 = 84K.

    Cash and capital at risk to 268 - 84 = 184K

    Account value: 184K
    Cash: 184K
    Margin: 134K (72% of available cash)

    Again then positions would reduce by 1 - 184/268 = 31%, margin usage to 92K (again, 50% of cash).

    Average expected risk is 2.9K a day.

    Account value: 184K
    Cash: 184K
    Margin: 92K (50% of available cash)

    Another 10 sigma day; lose 57K:

    Account value: 127K
    Cash: 127K
    Margin: 92K (72% of available cash)

    Again positions reduce by 31%, margin usage falls to 63K (50% of capital).

    Basically because I'm reducing my positions proporportionally as I lose money I will always be using 50% of my remaining cash for margin. So I should never be in a position where a margin call causes me problems; unless I get hit by an extremely large gap.

    For example if at any point I lost more than 40% before I got a chance to reduce my positions, then I'd have some forced liquidation.

    My maximum expected risk (at double the long run average) is 50% a year, or 3.1% a day. That means I'd need to see a 13 sigma day before hitting a margin problem. I'm comfortable that is pretty unlikely. Not as unlikely as the gaussian distribution suggests (incalculably small); October 87 was a 20 sigma event but with a large diversified portfolio twenty sigma is pretty unlikely and even 13 sigma should be fairly rare.

    But suppose I was aiming for a much higher risk; and/or had a strategy that consumed more margin. Imagine you had 90% of your capital used for margin; and you were targeting 100% annualised volatilty. Then a mere 1.6 sigma event would wipe you out....

    GAT
     
  168. That makes a lot of sense. Thank you.
     
  169. Update (last update was 22nd september). I'm up about 7% of capital, or 28K. I also hit a new HWM on Friday; which was nice.
    [​IMG]
    Current drawdown is 3.8% (off new HWM).

    I'm also back above the key pyschological point where I have made more money than I have at risk (400K; well actually 96.2% of 400K to be pendantic due to the DD). It's interesting to speculate about these key points. For example once I made 300K I had doubled my starting capital. If I make another 45K or so this year I'll be at 100K for the year; which would be a Sharpe Ratio for the year of 1.0 (although the actual figure could be different depending on the exact monthly/weekly/daily ups and downs). If I lose 185K then I will be in a 50% drawdown.

    Do these points have more effect on discretionary trader behaviour than key price points? It's an interesting point, but it's not obvious how we would model them and use them in a predictive sense.

    I just did my 6 monthly accounts. My net worth is pretty much unchanged; to put it another way the profits from my futures trading covered the losses in my long only stock and bond portfolio, with enough left over to pay for my living costs. Trend following is a nice hedge (as discussed here).

    I also just bought a new backup machine (intense pc) which is proving to be fantastic. I would have bought another mint box but they seem to have run out of UK stock. This is pretty much identical; so now both my machines are of similar spec (before ) and I can swap them more frequently which is obviously safer.

    There are some new interviews here and a couple of new book reviews here. (near the bottom of each page)

    Gainers:

    Crude +6.1K
    Plat 3.2K
    Pallad 2.2K
    JPU 1.2K
    KOSPI 1.4K

    Losers:

    SP500 -1.8K
    KR3 -1.2K
    Livecow -1.1K
    Wheat -1K

    Positions:

    Code:
           code contractid  positions   Lock WrongContract InFwdNotRoll
    0       AUD     201512         -1  False         False        False
    6      BOBL     201512          4  False         False        False
    25      BTP     201512          3  False         False        False
    4      BUND     201512          1  False         False        False
    18   COPPER     201512         -2  False         False        False
    17     CORN     201612         -2  False         False        False
    11  CRUDE_W     201512         -2  False         False        False
    16  EDOLLAR     201903          3  False         False        False
    23  EDOLLAR     201812         10  False         False        False
    20      EUR     201512         -1  False         False        False
    24  EUROSTX     201512        -13  False         False        False
    3    GAS_US     201512         -5  False         False        False
    9       GBP     201512         -3  False         False        False
    10     GOLD     201512         -1  False         False        False
    15     KR10     201512          2  False         False        False
    13      KR3     201512          9  False         False        False
    1   LEANHOG     201606          3  False         False        False
    21  LIVECOW     201610         -2  False         False        False
    8       MXP     201512         -5  False         False        False
    14      NZD     201512         -2  False         False        False
    19      OAT     201512          1  False         False        False
    27     PLAT     201601         -3  False         False        False
    2      US10     201512          1  False         False        False
    12      US2     201512          2  False         False        False
    22      US5     201512          2  False         False        False
    5       V2X     201512          1  False         False        False
    26      V2X     201511          3  False         False        False
    7     WHEAT     201612         -2  False         False        False
    
    Risk:
    Code:
    Expected annual risk more than GBP6400 per year, GBP400 per day
           code  multisignal  expected_annual_risk  expected_annual_risk_per_contract  position  expected_annual_risk_rounded_pos
    28      MXP        -15.3                 10088                               2248        -5                             11242
    25      EUR        -12.8                  8474                              11307        -1                             11307
    31     GOLD        -10.4                  6843                              11624        -1                             11624
    2   LIVECOW        -19.5                 12895                               5846        -2                             11692
    29      NZD        -15.4                 10159                               5967        -2                             11934
    26      GBP        -22.6                 14895                               4841        -3                             14524
    30   COPPER        -33.7                 22256                              11268        -2                             22537
    33     PLAT        -31.9                 21068                               7569        -3                             22706
    35   GAS_US        -37.3                 24661                               4823        -5                             24113
    34  CRUDE_W        -32.4                 21413                              12360        -2                             24721
    5      KR10         10.6                  7012                               3156         2                              6312
    6       KR3          9.8                  6497                                725         9                              6529
    7      BOBL          9.8                  6501                               1767         4                              7069
    10      OAT         13.7                  9068                               7319         1                              7319
    1   LEANHOG         12.9                  8486                               2727         3                              8180
    36  EDOLLAR         29.4                 19423                               1456        13                             18929
    8       BTP         31.0                 20465                               6558         3                             19674
    
    It's interesting how few longs I have nowadays. Right now isn't a great time to be a long only investor.

    Trades:
    Code:
             code contractid     filled_datetime  filledtrade  filledprice
    5527      AUD     201512 2015-09-24 07:59:12           -1     0.695300
    5590     BOBL     201512 2015-09-29 07:35:46            1   129.100000
    5533      BTP     201512 2015-09-24 08:22:20            1   135.840000
    5716     BUND     201512 2015-10-05 07:35:34            1   157.130000
    5536      CAC     201510 2015-09-24 08:24:34           -1  4410.000000
    5695      CAC     201510 2015-10-01 08:04:58            1  4507.500000
    5470   COPPER     201512 2015-09-18 16:07:57            1     2.383500
    5539   COPPER     201512 2015-09-24 12:01:34           -1     2.296000
    5626     CORN     201612 2015-09-30 15:05:08            1   413.000000
    5710  CRUDE_W     201512 2015-10-01 16:58:30           -1    45.740000
    5461  EDOLLAR     201812 2015-09-18 12:13:41           -1    97.970000
    5485      EUR     201512 2015-09-23 01:11:12           -1     1.113100
    5473   GAS_US     201512 2015-09-18 18:18:02           -1     2.842000
    5608   GAS_US     201511 2015-09-30 12:06:30            2     2.588000
    5611   GAS_US     201512 2015-09-30 12:06:30           -2     2.763000
    5614   GAS_US     201511 2015-09-30 12:17:48            2     2.581000
    5617   GAS_US     201512 2015-09-30 12:17:48           -2     2.757000
    5452      GBP     201512 2015-09-18 01:52:52            1     1.556400
    5488      GBP     201512 2015-09-23 05:45:36           -1     1.534100
    5560      GBP     201512 2015-09-25 02:05:46           -1     1.521400
    5587      GBP     201512 2015-09-29 06:27:38           -1     1.516100
    5458     GOLD     201512 2015-09-18 12:05:03            1  1136.500000
    5476     GOLD     201512 2015-09-21 12:04:49            1  1137.100000
    5701     GOLD     201512 2015-10-01 12:10:14           -1  1112.300000
    5449      KR3     201512 2015-09-18 01:45:36           -2   109.620000
    5455      KR3     201512 2015-09-18 04:49:37           -1   109.650000
    5596      KR3     201512 2015-09-30 01:53:55            1   109.830000
    5692      KR3     201512 2015-10-01 03:55:49           -1   109.830000
    5584  LEANHOG     201606 2015-09-28 15:43:30            1    79.675000
    5479  LIVECOW     201610 2015-09-21 16:14:37           -1   131.375000
    5491      OAT     201512 2015-09-23 07:08:36            1   151.860000
    5542   PALLAD     201512 2015-09-24 12:02:21            1   645.100000
    5602     PLAT     201510 2015-09-30 12:02:45            1   925.500000
    5605     PLAT     201601 2015-09-30 12:02:45           -1   926.300000
    5620     PLAT     201510 2015-09-30 12:23:13            1   923.700000
    5623     PLAT     201601 2015-09-30 12:23:13           -1   924.500000
    5707     PLAT     201601 2015-10-01 16:54:55           -1   910.200000
    5593      SMI     201512 2015-09-29 08:07:13           -1  8245.000000
    5599      SMI     201512 2015-09-30 11:25:00            1  8484.000000
    5464  SOYBEAN     201611 2015-09-18 12:30:07            1   882.000000
    5557  SOYBEAN     201611 2015-09-24 12:15:37           -1   872.750000
    5581  SOYBEAN     201611 2015-09-28 12:29:13            1   891.250000
    5530     US10     201512 2015-09-24 06:53:05            1   128.031250
    5467      US2     201512 2015-09-18 15:54:06           -1   109.382812
    5704      US2     201512 2015-10-01 14:12:12            1   109.531250
    5713      US2     201512 2015-10-02 15:13:50           -1   109.703125
    5629      US5     201512 2015-09-30 15:15:53            1   120.468750
    5698      V2X     201512 2015-10-01 11:56:49            1    24.800000
    Slippage: £402 vs expectations of £208

    Ouch. I had a bad AUD and GBP trade which caused most of the problems here. Looking at the chart it looks as though the price I had when I submitted the order was stale. So it's bad data rather than a gap. Hopefully these should even out over the year so I don't have to go through the effort of manually cleaning them out of the database. Due to latency these figures can only ever be an estimate.

    GAT
     
  170. With this in mind, if someone had all of their capital in a trading system, would it be worth including 'buy and hold' as one of the strategies to add diversity, in addition to other strategies like trend following and carry?
     
  171. Yes. I would put perhaps half my portfolio in a long only (or what I call the 'one rule' rule in my book) investment in "things that I expected to produce a positive return:" equities, bonds, short vol, perhaps some gold as an inflation hedge.

    GAT
     
  172. I've been reading and coding up the framework you describe in your book.

    One question: when computing costs you use the volatility normalized turnover. If this is calculated in backtesting do we simply compute the number of instrument blocks traded at each specific date, divide this by the instrument volatility at that date, divide it by two so that it's a count of the number of round trips, and then sum the results over an entire year?

    This annual volatility normalized turnover would then be multiplied by the standardized cost for the instrument and subtracted from the pre-cost SR. Is this the correct process?

    I tried to follow this in the book but wasn't completely sure.

    Thank you!
     
  173. Hi

    Turnover is basically trades / 2 x absolute average position

    From page 186 of the print edition (chapter 12 'Estimating the number of round trips'):

    Turnover=
    Average number of blocks traded per year / (2 x average absolute number of blocks held)

    So suppose your block is one futures contract and you trade daily. If your series of positions is p0, p1, ... pt
    and you have N years of trading history then turnover=

    (1/N)*(abs(p1-p0)+ans(p2-p1)+ ... ans(pt - pt-1)) / (2 x mean(abs(p0), abs(p1), abs(p2), ....)

    I can also write this more conveniently as 250 (# of business days in a year) times the average daily turnover:

    (250)*(mean(abs(p1-p0)+ans(p2-p1)+ ... ans(pt - pt-1)) / (2 x mean(abs(p0), abs(p1), abs(p2), ....)

    Now for long backtests this might not be too accurate, especially if volatility has changed a lot over time. I can also rewrite the above as

    (250)* ([abs(p1-p0)/ (2 x P0)] + [abs(p2-p1)/ (2 x P1)] + ....[abs(pt-pt-1)/ (2 x Pt-1)]

    Where P is a smooth moving average of absolute position

    (technically this is not exactly equal to the previous expression, but takes a moving average rather than one over the whole backtest)

    Or I could also write:

    (250)* ([abs(p1-p0)/ 2 x A0] + [abs(p2-p1)/ 2 x A1] + ....[abs(pt-pt-1)/ 2 x At-1]

    Where A0... is the position I would get with a forecast of +10 given the vol etc at that time (the 'no rule' rule position).

    [Recall that any position = instr. weight * IDM * forecast * daily cash vol target / ( 10 * price vol per day * block value * fx rate )

    And for A0.... At-1 the forecast is +10]

    This is probably the best estimator, . Notice that if we're measuring the turnover of a FORECAST, rather than a final position, this becomes: (for forecast f1.... ft)

    (250)* ([abs(f1-f0)/ 2 x 10] + [abs(f2-f1)/ 2 x 10] + ....[abs(ft-ft-1)/ 2 x 10]

    Hope that makes sense
    GAT
     
  174. From what you've written it seems like you're estimating trading costs using this approach, rather than just computing them directly. There are a few things I can't follow here:

    1. The trading costs are in terms of normalized turnover. I thought this turnover was volatility normalized, but from what you've written above the turnover seems to be normalized by the average absolute number of blocks held. Is the average absolute number of blocks held equal to the volatility? Is the standardized cost also normalized in terms of average absolute number of blocks held?
    2. Wouldn't it just be simpler to price in the cost of trading directly in the account currency, e.g. if 10 blocks of an instrument are bought on a particular day, and the cost per block is $8 (bid-ask spread + commission), then just subtract $80 from the account value at the end of the day in the back test. What advantage does using the normalized turnover and standardized cost have over this simple approach?
     
  175. The normalisation is by a position with a forecast of +10 (the most accurate way) will depend (inversely) on the volatility. So on a particular day the position with a forecast of +10 might be 7 contracts. But if volatility halves it would be 14 contracts.

    To put it another way, if I am trading 1 contract a day with a +10 forecast position of 7 contracts, then all other things being equal I should be trading 2 contracts a day if volatility halves.

    Using the average absolute position (or a moving average of it) is an approximate for using the position with a +10 forecast. Over long periods of time, if volatility is stable, it should be correct (since everything should be scaled so that you average absolute position is the same as it would be with a fixed forecast of +10). Again your average absolute position will depend inversely on volatility.

    The advantages of using a standardised approach are:

    - you can subtract the cost estimate directly from the sharpe ratio. This means you can say instantly what proportion of your raw sharpe is being eaten by costs.
    - you can compare costs across instruments and across trading rule variations
    - you can pool turnover estimates from different estimates in deciding how fast a particular variation is trading
    - you can compare costs across time.

    GAT
     
  176. I think I understand where my confusion is coming from. I've been calculating the normalized trading cost (standardized cost * turnover) for each instrument, and then adding it up across the instruments in the portfolio.

    Now I'm thinking that since the instrument trading cost is normalized it is independent of the position for that instrument, that is if we double the position the turnover does not change. So in order to compute the cost for the entire portfolio one should actually take the weighted sum of the normalized trading costs (standardized cost * turnover), using the portfolio weights. Is that correct?
     
  177. Exactly right - but you also need the Instrument diversification multiplier (IDM)

    So suppose you have costs in SR units of 0.05 and 0.02 for two instruments with instrument weights of 40% and 60%, and an IDM of 1.2

    Then your portfolio cost is

    .4*0.05*1.2 + .6*.02*1.2 = whatever

    GAT
     
  178. Thanks. That's much clearer now.

    So if I understand correctly more diversification means lower volatility, so to maintain the same level of volatility (e.g. to stay at half-Kelly) we will have to trade more contracts. This in turns means higher trading costs.
     
  179. Yes more diversification means a lower portfolio level volatility, unless you leverage things up to compensate. A more leveraged portfolio costs more to trade. One of the few disadvantages of volatility :)

    GAT
     
  180. Would you consider doing this when computing the combined forecast i.e. making a long only rule and then including that in the portfolio of rules?
     
  181. That's exactly what I would do.

    GAT
     
  182. Thanks! Do you have any thoughts on arithmetic vs. geometric means and standard deviations when computing Sharpe ratios and for position sizing?

    If a geometric standard deviation is preferred how is this used together with an exponentially weighted moving standard deviation for position sizing?
     
  183. For Sharpe Ratios I use the arithmetic mean of % returns.

    For position sizing vol calculation I use an ewma (arithmetic means).

    To be honest I've never considered using geometric returns. I think over the relatively short time periods we're talking about it wouldn't make much difference; but I understand the properties of arithmetic returns pretty well so I probably won't change.

    GAT
     
  184. Monthly update (last one was 5th October).

    Down about 8.8% of capital, or £35K. So no new HWM.

    This is line with CTA performance across the board; eg Man AHL diversity GBP is down 4% on roughly half the volatility target.
    [​IMG]
    (picture is a few days old but not much has happened)

    Drawdown: 12.6%

    Gainers:

    Gas £12400
    BTP £2600
    SP500 £2500
    NASDAQ £1100

    Loser:

    Platinum £5000
    Crude £4400
    Leanhog £4200
    Livecow £3800
    GBP £3200
    Eurodollar £2900
    MXP £2300
    NZD £1700
    US2 £1200
    AUD £1100
    US10 £1100

    plus £17K down in 'hedged' equity long only portfolio

    "The big short" in Gas; my largest position, helped stem the bleeding that occured elsewhere.

    Positions:
    Code:
           code contractid  positions   Lock WrongContract InFwdNotRoll
    16      AEX     201511          1  False         False        False
    4      BOBL     201512          2  False         False        False
    26      BTP     201512          2  False         False        False
    11      CAC     201511          1  False         False        False
    18   COPPER     201512         -2  False         False        False
    17     CORN     201612         -3  False         False        False
    13  CRUDE_W     201612         -2  False         False        False
    15  EDOLLAR     201903          3  False         False        False
    24  EDOLLAR     201812          9  False         False        False
    19      EUR     201512         -2  False         False        False
    25  EUROSTX     201512        -13  False         False        False
    5    GAS_US     201601         -5  False         False        False
    8      GOLD     201512         -1  False         False        False
    10      JPY     201512         -3  False         False        False
    23    KOSPI     201512          1  False         False        False
    14     KR10     201512          2  False         False        False
    12      KR3     201512         10  False         False        False
    20  LIVECOW     201610         -1  False         False        False
    7       MXP     201512         -3  False         False        False
    21   NASDAQ     201512          1  False         False        False
    27     PLAT     201601         -1  False         False        False
    0       SMI     201512          1  False         False        False
    3   SOYBEAN     201611         -2  False         False        False
    9     SP500     201512          1  False         False        False
    1       US2     201512          3  False         False        False
    22      US5     201512          1  False         False        False
    2       V2X     201512          4  False         False        False
    28      VIX     201512         -1  False         False        False
    6     WHEAT     201612         -2  False         False        False
    

    Risk:
    Code:
    Expected annual risk more than GBP6400 per year, GBP400 per day
           code  multisignal  expected_annual_risk  expected_annual_risk_per_contract  position  expected_annual_risk_rounded_pos
    20      CAC          9.9                  6431                               7448         1                              7448
    18    KOSPI         12.4                  8057                               8015         1                              8015
    23    SP500         16.8                 10947                              10017         1                             10017
    21      SMI         10.1                  6543                              10308         1                             10308
    19      AEX         12.6                  8221                              13423         1                             13423
    8       BTP         23.3                 15129                               7657         2                             15314
    36  EDOLLAR         26.6                 17274                               1512        12                             18141
    
    22   NASDAQ         14.9                  9715                              10361         1                             10361
    2   LIVECOW        -10.2                  6612                               5001        -1                              5001
    33     PLAT        -12.5                  8145                               7236        -1                              7236
    3   SOYBEAN        -16.7                 10878                               4017        -2                              8033
    27      JPY        -16.4                 10677                               4563        -2                              9127
    25      EUR        -25.7                 16749                              10817        -1                             10817
    31     GOLD        -17.0                 11041                              11581        -1                             11581
    30   COPPER        -24.4                 15896                               8730        -2                             17460
    34  CRUDE_W        -27.8                 18090                              11206        -2                             22412
    35   GAS_US        -33.8                 21998                               4771        -5                             23857
    
    
    
    As noted above Gas is still my largest position, though I'm also short Crude.

    Trades:
    Code:
             code contractid     filled_datetime  filledtrade  filledprice
    7258      AEX     201511 2015-11-03 08:03:33            1   463.800000
    5920      AUD     201512 2015-10-09 11:37:46            1     0.731800
    5998      AUD     201512 2015-10-22 06:47:16           -1     0.717900
    6004     BOBL     201512 2015-10-22 14:46:40           -1   129.460000
    7219     BOBL     201512 2015-11-02 08:33:42           -1   129.340000
    7222      BTP     201512 2015-11-02 08:36:03           -1   138.260000
    6016      CAC     201511 2015-10-27 08:00:26            1  4886.000000
    5944   COPPER     201512 2015-10-14 18:14:14            1     2.414500
    6529   COPPER     201512 2015-10-27 17:15:21           -1     2.361000
    7270     CORN     201612 2015-11-03 15:19:35           -1   404.750000
    5908  CRUDE_W     201512 2015-10-07 12:12:48            1    50.090000
    5956  CRUDE_W     201512 2015-10-19 12:02:24            1    47.240000
    5959  CRUDE_W     201612 2015-10-19 12:02:24           -1    52.200000
    5995  CRUDE_W     201612 2015-10-21 16:10:31           -1    51.020000
    7237  EDOLLAR     201812 2015-11-02 12:24:19           -1    98.015000
    5911      EUR     201512 2015-10-08 08:52:51            1     1.130000
    6010      EUR     201512 2015-10-23 06:15:13           -1     1.110500
    7276      EUR     201512 2015-11-04 01:38:19           -1     1.095300
    7225   GAS_US     201512 2015-11-02 12:09:19            4     2.252000
    7228   GAS_US     201601 2015-11-02 12:09:19           -4     2.428000
    7231   GAS_US     201512 2015-11-02 12:12:09            1     2.252000
    7234   GAS_US     201601 2015-11-02 12:12:09           -1     2.427000
    5905      GBP     201512 2015-10-07 06:39:49            1     1.523900
    5917      GBP     201512 2015-10-09 02:13:50            1     1.535500
    5941      GBP     201512 2015-10-14 18:07:20            1     1.545200
    7135      GBP     201512 2015-10-29 02:06:17           -1     1.526100
    7207      GBP     201512 2015-11-02 01:30:39            1     1.542700
    7264     GOLD     201512 2015-11-03 12:06:42           -1  1131.600000
    5902      JPY     201512 2015-10-07 04:59:31            1     0.008349
    6007      JPY     201512 2015-10-22 17:30:22           -1     0.008289
    6013      JPY     201512 2015-11-01 18:37:04           -1     0.008257
    7279      JPY     201512 2015-11-04 13:43:21           -1     0.008241
    5980    KOSPI     201512 2015-10-20 02:42:56            1   249.100000
    7204     KR10     201512 2015-10-29 03:05:27            1   126.580000
    7216     KR10     201512 2015-11-02 01:43:36           -1   125.960000
    6706      KR3     201512 2015-10-28 01:55:52            1   109.730000
    5935  LEANHOG     201606 2015-10-13 14:10:50            1    81.400000
    5989  LEANHOG     201606 2015-10-20 14:27:43           -1    79.525000
    6370  LEANHOG     201606 2015-10-27 14:18:46           -1    77.000000
    7249  LEANHOG     201606 2015-11-02 15:05:23           -1    76.150000
    7285  LEANHOG     201606 2015-11-04 14:21:48           -1    74.775000
    5977  LIVECOW     201610 2015-10-19 16:09:13            1   132.575000
    5914      MXP     201512 2015-10-08 16:34:46            1     0.060230
    5947      MXP     201512 2015-10-15 02:19:14            1     0.060580
    6343   NASDAQ     201512 2015-10-27 14:00:41            1  4623.500000
    5899      NZD     201512 2015-10-07 02:04:24            1     0.651000
    5938      NZD     201512 2015-10-14 08:47:01            1     0.669800
    5992      OAT     201512 2015-10-21 07:35:44           -1   151.630000
    6001      OAT     201512 2015-10-22 07:32:45            1   152.370000
    7240      OAT     201512 2015-11-02 12:39:52           -1   152.520000
    5923     PLAT     201601 2015-10-12 13:55:40            1   995.900000
    7252      SMI     201512 2015-11-02 15:03:00            1  8939.000000
    5929  SOYBEAN     201611 2015-10-13 12:02:12            1   899.250000
    6241  SOYBEAN     201611 2015-10-27 12:28:54           -2   891.000000
    7132  SOYBEAN     201611 2015-10-28 17:05:52           -1   887.000000
    7255  SOYBEAN     201611 2015-11-02 15:59:59           -1   887.000000
    5983    SP500     201512 2015-10-20 14:08:39            1  2023.250000
    7273     US10     201512 2015-11-03 17:32:53           -1   127.109375
    5926      US2     201512 2015-10-12 14:18:50            1   109.539062
    6337      US5     201512 2015-10-27 13:59:50           -1   120.578125
    5950      V2X     201511 2015-10-19 09:39:44           -3    23.250000
    5953      V2X     201512 2015-10-19 09:39:44            3    21.550000
    7129      VIX     201512 2015-10-28 16:31:53           -1    17.100000
    7267    WHEAT     201612 2015-11-03 13:12:23           -1   537.000000
    Slippage £146 vs £320 expectations. I'm seriously considering running my execution algo as a standalone scalping system (on a small number of markets with very limited risk). It will be interesting to see if this cruddy slow thing can really still make money in the world of HFT when it isn't attached to a much slower trading system. That little project will have to wait until I've refactored my code; something I am putting off for as long as possible.

    GAT
     
  185. Thanks for sharing your current status. It's comforting to know that I'm not the only one in drawdown right now. I'm 5% below high water mark.

    Janet's recent statements really hurt 2 year treasuries and Eurodollar contracts.
     
  186. Glad to be of service....
     
  187. Monthly update: Last one was November 4th

    Up 12% of capital, or around £48K

    Last month:
    [​IMG]

    Longer term:
    [​IMG]


    Well up to yesterday I was looking forward to telling you what a f**** genius I was, and actually posting at a HWM level for a change. Then Mr Draghi opened his big mouth and I dropped 4% very quickly indeed. Movements in european bonds were about 6-7 daily standard deviations (the much discussed Euro move was a mere 4). The system I use to manually alert me so I can check and filter large price movements triggered half a dozen times in a matter of minutes; normally it's a couple of months before each trigger.

    It would have been even nastier but my hedged equity portfolio added a bit. Talking to friends last night in the CTA industry losses of 4% were fairly common (and I run at a higher vol target than most).

    Still I'm still up for the week, and the month, so shouldn't really complain. You can barely see yesterdays move on the second set of charts above.

    The real lesson here is that diversification and risk control are there exactly for this kind of situation. Which meant I could be relatively sanguine. Even I however find it hard not to be emotionally attached to day to day p&l. The difference is that it makes no difference whatsoever to the way my system trades, since I don't let my system know how bad or good I'm feeling :)

    Drawdown: 6.2% (off yesterday morning's new HWM)

    Gainers:

    Copper 8200
    Platinum 8125
    Gold 6700
    Gas 6000
    Crude 4500
    Pallad 3700
    Livecow 2600

    Losers:
    Eurodollars -2000
    NASDAQ -2400
    SP500 -2500


    Another vote for diversification. Over the last few years the biggest money making sectors in trend following have been financials - equities, bonds, rates and vol; especially bonds. Last year in particular european bonds were an absolute barn stormer of a trade. In contrast many commodity hedge funds have shut their doors recently.

    But over the last 30 days I've made nothing in bonds (actually small losses in European bonds, not big enough to trouble the figures above) but commodities have been wonderful. I hope the guy who posted on this thread saying 'why don't you just pick the best markets' is reading this.

    (There is also a link here to the blog post I made on equity curve trading - again we're seeing that the returns of trend following systems tend to be negatively autocorrelated - bad follows good and vice versa, rather than the other way round...)

    Positions:

    Code:
           code contractid  positions   Lock WrongContract InFwdNotRoll
    1       AUD     201512          1  False         False        False
    19      BTP     201603          2  False         False        False
    3    COPPER     201603         -3  False         False        False
    18     CORN     201612         -5  False         False        False
    15  CRUDE_W     201612         -3  False         False        False
    5   EDOLLAR     201906          1  False         False        False
    16  EDOLLAR     201903          7  False         False        False
    23  EUROSTX     201512        -13  False         False        False
    22   GAS_US     201602         -4  False         False        False
    10      GBP     201512         -1  False         False        False
    0      GOLD     201602         -2  False         False        False
    12      JPY     201512         -2  False         False        False
    13      KR3     201512          7  False         False        False
    2   LEANHOG     201606         -1  False         False        False
    20  LIVECOW     201610         -2  False         False        False
    9       MXP     201512         -2  False         False        False
    7       OAT     201603          1  False         False        False
    17   PALLAD     201603         -1  False         False        False
    25     PLAT     201601         -3  False         False        False
    6   SOYBEAN     201611          1  False         False        False
    11    SP500     201512          1  False         False        False
    4       US2     201603          3  False         False        False
    21      US5     201603          1  False         False        False
    24      V2X     201601          2  False         False        False
    14      VIX     201601         -1  False         False        False
    8     WHEAT     201612         -3  False         False        False
    
    Risk:

    Code:
    Expected annual risk more than GBP6400 per year, GBP400 per day
           code  multisignal  expected_annual_risk  expected_annual_risk_per_contract  position  expected_annual_risk_rounded_pos
    
    Shorts:
    27      JPY        -12.7                  8441                               4071        -2                              8141
    17      VIX        -10.5                  6982                               8252        -1                              8252
    0      CORN        -12.9                  8602                               1960        -5                              9801
    26      GBP        -13.4                  8910                               5591        -2                             11182
    4     WHEAT        -17.7                 11795                               3839        -3                             11516
    2   LIVECOW        -13.8                  9167                               5905        -2                             11811
    25  EUR                 -13.1                  8712                              13394       -1                            13394
    32   PALLAD        -27.7                 18387                              14223        -1                             14223
    33     PLAT        -26.8                 17799                               6169        -3                             18508
    35   GAS_US        -26.8                 17799                               4668        -4                             18673
    31     GOLD        -31.7                 21045                               9617        -2                             19234
    30   COPPER        -26.8                 17799                               7400        -3                             22199
    34  CRUDE_W        -31.7                 21045                               8483        -3                             25448
    
    Longs:
    10      OAT         19.9                 13229                               5015         2                             10031
    36  EDOLLAR         16.2                 10751                               1543         8                             12341
    8       BTP         23.5                 15603                               5042         3                             15125
    
    (there is some discreprancy in positions because I've closed long BTP, OAT and short EUR positions this morning; after my nightly risk report ran but before I generated the list of positions above)

    Trades

    Code:
             code contractid     filled_datetime  filledtrade  filledprice
    7363      AEX     201511 2015-11-10 07:30:04           -1   465.600000
    7309      AUD     201512 2015-11-06 13:58:23           -1     0.704900
    7483      AUD     201512 2015-11-19 06:47:22            1     0.715200
    7609      AUD     201512 2015-12-02 02:54:38            1     0.731200
    7576     BOBL     201512 2015-12-01 08:20:06           -2   130.000000
    7579     BOBL     201603 2015-12-01 08:20:06            2   131.580000
    7672     BOBL     201603 2015-12-04 08:39:34           -2   130.670000
    7297      BTP     201512 2015-11-06 07:36:20           -1   137.840000
    7426      BTP     201512 2015-11-16 07:03:27            1   139.160000
    7489      BTP     201512 2015-11-19 08:03:17            1   139.910000
    7588      BTP     201512 2015-12-01 09:01:29           -3   140.590000
    7591      BTP     201603 2015-12-01 09:01:29            3   138.970000
    7675      BTP     201603 2015-12-04 08:43:09           -1   137.010000
    7411      CAC     201511 2015-11-13 07:31:44           -1  4831.500000
    7501   COPPER     201512 2015-11-23 12:12:21           -1     2.023500
    7612   COPPER     201512 2015-12-02 12:02:38            2     2.063500
    7615   COPPER     201603 2015-12-02 12:02:38           -2     2.067000
    7627   COPPER     201512 2015-12-02 12:09:35            1     2.062500
    7630   COPPER     201603 2015-12-02 12:09:35           -1     2.066000
    7384     CORN     201612 2015-11-11 13:38:56           -1   391.250000
    7471     CORN     201612 2015-11-17 13:33:00           -1   390.250000
    7603  CRUDE_W     201612 2015-12-01 14:35:40           -1    48.340000
    7312  EDOLLAR     201812 2015-11-06 14:03:04           -1    97.865000
    7324  EDOLLAR     201812 2015-11-06 15:49:03           -1    97.830000
    7327  EDOLLAR     201812 2015-11-06 17:52:36           -1    97.825000
    7390  EDOLLAR     201812 2015-11-11 16:05:20           -1    97.825000
    7453  EDOLLAR     201812 2015-11-17 11:25:55           -5    97.900000
    7456  EDOLLAR     201903 2015-11-17 11:56:49            5    97.825000
    7564  EDOLLAR     201906 2015-11-27 12:43:32            1    97.875000
    7657  EDOLLAR     201903 2015-12-03 17:53:41           -1    97.835000
    7645      EUR     201512 2015-12-03 14:23:41            1     1.079700
    7666      EUR     201512 2015-12-04 03:09:40            1     1.092500
    7300   GAS_US     201601 2015-11-06 12:02:15            1     2.517000
    7504   GAS_US     201601 2015-11-23 12:23:50            1     2.249000
    7507   GAS_US     201602 2015-11-23 12:23:50           -1     2.293000
    7510   GAS_US     201601 2015-11-23 12:29:31            2     2.254000
    7513   GAS_US     201602 2015-11-23 12:29:31           -2     2.298000
    7516   GAS_US     201601 2015-11-23 12:35:04            1     2.255000
    7519   GAS_US     201602 2015-11-23 12:35:04           -1     2.299000
    7291      GBP     201512 2015-11-05 13:42:30           -1     1.525000
    7294      GBP     201512 2015-11-06 06:16:28           -1     1.528600
    7480      GBP     201512 2015-11-19 01:50:36            1     1.528400
    7552      GBP     201512 2015-11-25 03:36:27           -1     1.510000
    7669      GBP     201512 2015-12-04 03:24:32            1     1.512300
    7288     GOLD     201512 2015-11-05 12:14:42           -1  1107.600000
    7465     GOLD     201512 2015-11-17 11:35:05           -1  1078.800000
    7495     GOLD     201512 2015-11-19 17:03:29            1  1083.000000
    7555     GOLD     201512 2015-11-25 12:22:44           -1  1073.000000
    7633     GOLD     201512 2015-12-02 12:15:19            3  1067.100000
    7636     GOLD     201602 2015-12-02 12:15:19           -3  1066.700000
    7648     GOLD     201602 2015-12-03 14:41:32            1  1056.700000
    7441      JPY     201512 2015-11-17 01:31:53           -1     0.008112
    7492      JPY     201512 2015-11-19 16:57:33            1     0.008150
    7663      JPY     201512 2015-12-03 19:42:51            1     0.008167
    7360    KOSPI     201512 2015-11-10 01:14:46           -1   248.100000
    7336     KR10     201512 2015-11-09 01:12:40           -1   124.380000
    7396     KR10     201512 2015-11-12 01:23:10           -1   123.900000
    7348      KR3     201512 2015-11-09 02:10:32           -1   109.120000
    7357      KR3     201512 2015-11-10 00:31:57           -1   109.130000
    7402      KR3     201512 2015-11-12 01:26:09           -1   109.070000
    7351  LEANHOG     201606 2015-11-09 15:48:20           -1    72.875000
    7474  LEANHOG     201606 2015-11-17 14:03:03           -1    71.100000
    7606  LEANHOG     201606 2015-12-01 16:16:39            1    75.075000
    7420  LIVECOW     201610 2015-11-13 15:08:15           -1   124.575000
    7321      MXP     201512 2015-11-06 15:36:13            1     0.059230
    7405   NASDAQ     201512 2015-11-12 13:42:52           -1  4619.250000
    7639   NASDAQ     201512 2015-12-02 14:29:52            1  4719.000000
    7660   NASDAQ     201512 2015-12-03 18:00:40           -1  4621.000000
    7477      OAT     201512 2015-11-18 07:03:30            1   153.830000
    7486      OAT     201512 2015-11-19 07:05:39            1   154.150000
    7582      OAT     201512 2015-12-01 08:31:38           -2   153.910000
    7585      OAT     201603 2015-12-01 08:31:38            2   151.810000
    7678      OAT     201603 2015-12-04 08:43:59           -1   150.000000
    7378   PALLAD     201512 2015-11-11 11:46:34           -1   596.250000
    7618   PALLAD     201512 2015-12-02 12:04:00            1   540.200000
    7621   PALLAD     201603 2015-12-02 12:04:00           -1   540.450000
    7303     PLAT     201601 2015-11-06 12:17:00           -1   954.300000
    7414     PLAT     201601 2015-11-13 13:44:35           -1   868.600000
    7366      SMI     201512 2015-11-10 07:33:43           -1  8900.000000
    7570      SMI     201512 2015-11-30 13:57:39            1  9026.000000
    7651      SMI     201512 2015-12-03 15:34:19           -1  8837.000000
    7306  SOYBEAN     201611 2015-11-06 13:07:16           -1   875.250000
    7369  SOYBEAN     201611 2015-11-11 11:34:12           -1   870.000000
    7549  SOYBEAN     201611 2015-11-24 12:37:55            1   884.500000
    7558  SOYBEAN     201611 2015-11-25 15:26:12            1   886.000000
    7567  SOYBEAN     201611 2015-11-27 14:47:41            1   895.250000
    7600  SOYBEAN     201611 2015-12-01 14:30:00            1   902.250000
    7624  SOYBEAN     201611 2015-12-02 12:07:59            1   909.000000
    7408    SP500     201512 2015-11-12 14:46:14           -1  2055.500000
    7561    SP500     201512 2015-11-26 15:36:29            1  2095.000000
    7318      US2     201512 2015-11-06 14:12:16           -1   109.007812
    7498      US2     201512 2015-11-20 15:43:37            1   109.078125
    7522      US2     201512 2015-11-23 14:04:12           -3   109.015625
    7525      US2     201603 2015-11-23 14:04:12            3   108.726562
    7315      US5     201512 2015-11-06 14:05:16           -1   118.664062
    7573      US5     201603 2015-11-30 15:10:48            1   118.687500
    7429      V2X     201512 2015-11-16 08:35:19           -4    23.500000
    7432      V2X     201601 2015-11-16 08:35:19            4    25.200000
    7546      V2X     201601 2015-11-24 09:17:10           -1    23.800000
    7642      V2X     201601 2015-12-03 09:22:41           -1    22.400000
    7447      VIX     201512 2015-11-17 09:29:54            1    17.750000
    7450      VIX     201601 2015-11-17 09:58:30           -1    18.350000
    7459    WHEAT     201612 2015-11-17 11:29:15           -1   518.000000
    7462    WHEAT     201612 2015-11-17 11:30:28            1   518.750000
    
    Expected slippage £549; actual £499

    Lots of rolls (its that time of year).

    I said last time that I was putting off refactoring my code; well I've decided to put it off no longer and I've begun to rewrite everything in python 3, nicely factored, properly tested and documented, the plan being to release it open souce as I do it. I'm starting with the backtesting engine, since that is the part that is dodgiest, and also because with a good backtesting engine I can be more productive with my research.

    I've also just got a contract to write a more accessible book, about portfolio construction and asset allocation; and I've agreed to contribute a chapter to a book on trading rules. So it will be a busy new year.

    If you're in London next week I'm speaking at traders expo. If not, and if I'm not in touch on here again before then, merry christmas (or generic seasonal greetings to those of other faiths), happy new year (and again, if you're on a different calendar, many happy wishes for whatever significant dates fall between now and January 2nd on my calendar).

    GAT
     
  188. Nice update, thank you.

    If you get a chance, perhaps next time you update it would be good to know your thoughts on the recent AHL team co-authored paper (http://papers.ssrn.com/sol3/papers.cfm?abstract_id=2695101).
    What's the response function stuff about in the momentum section of it?

    Cheers,
    Q1
     
  189. Extreme values of momentum don't translate into larger trends (think - dead cat bounce)

    I use a simple cap to get round this. However AHL use something where larger signals are actually downweighted. [​IMG]

    The blue line shows the original signal; the red line applying the response function.

    Note for very large signals (bigger than 1.5- AHL scale their forecasts so they have a standard deviation of 1.0) the forecast after applying a response is actually getting smaller as we get more confident.

    There is some statistical evidence that this makes sense, but it is quite weak and doesn't seem to be around in every asset class or speed of momentum. Also it leads to weird behaviour - when a trend strengthens you start closing your position; then when it weakens again you open your position up before closing it again. Which is why I didn't keep this feature when I built my own system.

    (Technical issue: you also need to make sure the distribution of the forecast after applying a response function is correct)

    GAT
     
  190. Ah cool, get it now. Thanks for the explanation. It seemed to come out of nowhere in their modelling with an unexplained constant or two...
     
  191. Hi, short question: is that a typo at the end of your trades list:

    Code:
    7459 WHEAT 201612 2015-11-17 11:29:15 -1 518.000000
    7462 WHEAT 201612 2015-11-17 11:30:28 1 518.750000
    
    You are selling the same contract (Dec 2016) and buy it back one minute later? Or is it a roll and one of them is the Dec 2015 contract?

    Another question: Do you decide on trades using the previous day settle/close price or the current price?
    If latter, how do you avoid that the position signal is, e.g. 0.51 -> rounded to 1 so you buy one contract and soon after it drops to 0.49 again, forcing you to sell one contract?
    Or do you only trade each contract once per day, ignoring all latter signals?

    Thank you for your time answering questions (and your book, really good read).

    Michael
     
  192. No it's really a sell and a buy.

    In chapter 11 I describe how you wouldn't change your position unless the rounded position has moved by more than 10%. I use something similar to that, which has a similar effect.

    I trade based on daily prices, but using the last price in day. Since I sample those more than once per day, it means there can potentially be edge cases where I will buy and sell in the same day. I can wait quite a long time for a fill to happen (hours if needed); long enough so that another price has come in and I change my mind about what position I want on within a minute.

    All this is probably too complicated and I plan to switch to just using the previous days close in the next few months.



    GAT
     
  193. That's another thing that I did not fully understand: Only trading when the rounded positions differ more than 10% only makes a difference when the positions are greater than 10, I would think? Otherwise any difference is more than 10%.
    Trading too often by mistake is one of the things that I try to avoid. My nightmare is a run away algo trading program that keeps buying and selling the same thing every minute or so, spending comissions and spread.
     
  194. You're right. That's why I use a slightly more complex method; but it is a bit involved to include in the book. I'll blog about it some day.

    Agree with the nightmare. I have a lot of controls to limit the damage; for example I can't trade more than 5 wheat contracts a day.

    GAT
     
  195. You mentioned you own cash equities too and trade that with a hedge on? How are you trading stocks? Value related? I'd love to hear how you (would?) approach equities in general as big CTAs like Winton are running some sort of value momentum strategy. The last time I did some research, stocks and TF strats are good compliments to each other.
     
  196. I trade stocks with a very non quant approach (essentially value though). I basically buy things that look cheap on a number of metrics, and then hold them forever, with very occasional selling to optimise capital gains tax.

    Yes in theory long:short cash equities would complement trend following quite well, and AHL / Winton / Systematic et al all have a program like this in their multi strategy funds.

    Running a proper equity strategy would be quite a lot of work, and also it wouldn't make sense in cash equities as they're too expensive in UK retail space; I'd need to look at spreadbetting or CFD's.

    GAT
     
  197. This is pretty interesting. Any reason you're selecting individual stocks versus just buying into an index fund?
     
  198. History. Back in the day, I only traded individual equities, UK only. This was before ETF's really took off here, and I'd always been interested in equities right from when I got interested in finance around the time of the dot com thing (funny that). Then once I was working in a CTA I couldn't have traded futures if I'd wanted to because of the compliance restrictions, which also frowned on trading too often.

    It wasn't really until about 2008 that I started getting into ETF's, and even then . So I have this legacy of a large chunk of individual equities that I can't sell without incurring a massive tax bill. Very gradually I'm selling it down and going into ETF's. So now my asset allocation in my long only investment portfolio is 1/3 individual names, 2/3 ETF's.

    I used to enjoy the process of stock picking even though realistically, I wasn't that good at it (I think I slightly outperformed the index, for a lot more work). Now it now longer interests me, as I guess I've moved gradually to being more interested in the macro world, and I've also gradually realised that you'll get better performance from a broadly diversified portfolio rather than one heavily dominated by stocks from one country (definitely on a risk adjusted basis, probably on an absolute basis too).

    GAT
     
  199. Thanks for the reply.

    You mentioned in your profile that you mainly focused on fundamental strategies during your tenor at AHL. How do these strategies usually work (ie what variables do they look at)? There's a lot more about price based systematic trading compared to fundamental based macro models...so I am more inclined to hear your experience in that area. What are the typical sharpe ratios and returns and how do they compare from a correlation perspective with price based systems?

    A few more questions I had Is from the following slide which provide a good overview of what I think is the evolution fund (which you are part of I presume)

    1. How do OTC markets differ. What advantages do they offer? How can one get access to these markets? (I know it's nearly impossible, but entertain me assuming I have the money to trade those whatever that amount requires)

    2. Option selling strategies have large negative skew. But in your experience would a portfolio of diversified option selling strategy work? I'd love to hear if your thoughts of volatility it seems like such a good diversifying return stream.


    Apologies for the long questions. I know you can probably write another book on those but it's not everyday any of us get to interact with people of your calibre.
     
  200. Flattery will get you everywhere

    I spent 4 years doing that (Formally its global tactical asset allocation.), and then 3 years on the fixed income side.

    Mostly it was taking ideas from economic theory and trying to apply them. So for example you have things like PPP in currencies (google it if you're not familiar), taylor rule in interest rates, cochrance-piazzesi in bonds.

    Then you can also use classic value indicators but aggregated. So for example you could buy cheap PE countries and sell expensive. Although differences in accounting, taxes, and systematic investor biases mean things can stay expensive a long time (think Japan). Ideas like Shillers PE are interesting.

    You can also look at value across asset classes, eg the Fed model. Although you need to add inflation and a few other things to it to make it reasonable.

    A lot of these things are correlated with carry. For example bonds tend to do well when the yield curve is steep. But a simple carry method will give you the same answer.

    Holding periods tend to be long, so sharpe ratios lower (well below 1.0). In isolation you wouldn't look at these things twice, but they do add something to a basic technicals + carry model. But there is a lot of work involved in building them, and then in getting clean data. So it's something that only an institution would probably bother doing.


    There is nothing special about OTC markets, but diversification across geography and assets is a huge advantage; and many places can't be got to except through OTC instruments. For example if you want to bet on interest rates outside the major economies you have to trade swaps; there aren't liquid futures.

    You need to find at least one prime broker who will clear you, and then setup relationships with other people you want to trade with. You need to hire a back office who understand about things like ISDA agrements, and who will make quarterly interest payments.

    The exception of course is spot FX; where if you don't mind massive spreads and crap execution there are plenty of people happy to let retail traders play in this largest of all OTC markets.

    Yes it will work. Anytime you're going to take on an insane risk you should expect the market to pay you for the privilege.

    Just selling vol will always make you money, but you can improve things somewhat by delta hedging (using a method that understands ), and only selling vol when it is worth your while (when markets are range bound and implied vol is expensive). Such a strategy will have a sharpe around double what a trend , at the expense of much higher skew, but will not have the life threatening drawdowns of plain vanilla option selling.

    This is an old colleague of mine:

    http://www.helderpalaro.com/

    If you click on 'references' there are links to enough academic papers to enable you to build a very nice option selling strategy.

    GAT
     
  201. Questions about the Carry rule described in your book:

    When trading a contract further down the road e.g. the Dec 2016 corn, what do you use for calculating the raw carry? The previous contract, e.g Sep 2016? Or the front month March 2016?

    When the spot price is easily accessible, e.g the S&P 500 index for the ES, do you use the spot price or still the next month contract?

    Michael
     
  202. With Z16 I would use U16 for carry

    For Sp500 I use the next contact - but spot is better if you can get a synchronised price.

    GAT
     
  203. Thanks.

    Ah, that is the problem: Because of different trading/calculation times you don't get easily a synchronized price.
    Didn't think of that.
     
  204. Yes that's why you should use end of day prices of futures to calculate carry even if you trade on intraday prices
     
  205. Thanks so much Rob for the detail answer.

    Another following up question I would like to ask is risk management in trend following. Do you or any big firms look at risk contribution as a risk measure? For example something that I look at in my portfolio is the risk contribution of an asset group (ie currencies) and risk contribution of an single futures market (ie AD). Do you find potential value is limiting them?

    For example the first image is the hypothetical % total portfolio risk contribution of the 3 energies given their positions in 2015. The last image is the sum of the total contribution from the Energies.

    [​IMG]
    [​IMG]
    Doing historical simulation, I found that risk contributions for interest rates are also very high historically (~ 50%). Not sure if these measure are something the pros look at too and how do they use this type of information.

    Thanks
     
  206. That's a very interesting couple of pictures, thank you for posting them.


    In theory the risk contribution from an asset class will be proportional to the strength of the forecast. So if interest rates are contributing a lot it suggests they've had strong forecasts. 50% seems, high but of course the risk contributions can add up to more than 100% depending on your methodology, because of diversification effects.

    I don't actually monitor this statistic, although it would be useful to. The pros do look at it. It might be worth setting a limit on the amount of risk per asset, and then reducing the positions pro-rata if this is exceeded.

    GAT
     
  207. I thought I'd provide some more pictures with their underlying forecasts.

    I agree that forecast should be proportion to its risk contribution but only after a certain point. Before that point it should be risk reducing if the correlation of the underlying market is negative compared to the rest of the portfolio. But from analyzing a few more assets in the portfolio I agree that in general it is true they are proportional. The following are for the Crude Oil markets and rate Markets.


    figure_1.png figure_2.png

    The second picture details the risk contribution of rates which is rather high in my opinion. But the correlations within my rates portfolio is rather high.

    Correlation of Forecast:
    Untitled.png
     
  208. Hello GAT,
    First, my wife assures me that your book will appear under our Xmas tree this year.

    I have a question re the mechanics of building a portfolio of stocks.
    Let's say I have a means to rank N stocks (or in reality any financial time series) from 1-N in terms of relative strength and that each day/week/month I'm going to allocate my capital equally to the top M stocks. For example, hypothetically, I may take all the DOW stocks, rank them 1-30 using my method and then allocate my capital evenly among the top 3. I'll repeat this process every day/week/month (TBD) - re-ranking and reallocating funds. Assume long only with $200K portfolio and fully automated.

    The obvious question is how to approach selecting universe of stocks I should rank as this will have a very direct impact on the portfolio's performance. I could probably include all SP500+Nasdaq stocks with maybe some volume filter. I have concern that ranking too large a universe of stocks will result in one-hit-wonders rising to the top and too small a list is my own form of curve fitting. In reality defining the universe of possible stocks is already a bit of a curve fit.

    Any thoughts?
     
  209. Hope you enjoy the book.

    Picking stocks in this way isn't curve fitting; it's a perfectly reasonable thing to do (equity neutral hedge funds do exactly this; though obviously on the short side as well - and they also use a bunch of other filters apart from relative strength). Clearly a combination of a loose filter and a small number of stocks (3) will result in a portfolio with a lot of company specific risk.

    If I was implementing this kind of strategy I'd probably look to hold at least 20 positions, probably more, depending on any fixed costs you had to pay to trade (fixed costs per ticket make trading small positions uneconomic). If you're not leveraging then you could invest all your 200K - so that's 10K a position and you could probably go lower. And I'd limit the universe as you suggested to more liquid stocks.

    The other concern I have is trading costs. If you're doing this every day, and you're only holding a very small number of stocks, your turnover would be insane. Again if I was doing this I'd use (a) a slow measure of relative strength (maybe 3 months), (b) a relatively large number of stocks. Together this would reduce the number of stocks that are drifting in and out each day should be reduced to a point where the costs aren't killing you.

    GAT
     
  210. Question for carry:

    Why are you using 30 for forecast scalar? Wouldn't it be better to determine this via rolling window?
     
  211. The same goes for all forecast scalars; and in my code I'll include out of sample estimation of scalars (I wouldn't use a rolling window though; I'd use an expanding window across all assets I'm trading otherwise you'd lose the fact that carry is systematically higher in some asset classes than others)

    GAT
     
  212. In your book, you propose to calculate the Instrument Diversification Multiplier (let's call it IDM to prevent RSI (https://en.wikipedia.org/wiki/Repetitive_strain_injury) by measuring or estimating the correlations and calculating 1 / sqrt(W x H x W_t) where W are the weights and H is the correlation matrix.

    Don't you assume a gaussian return distribution here?

    Could we calculate the IDM also like this:

    Backtest the system with IDM = 1 and a given volatility target, like 20%, then calculate the realized volatility for the system and setting IDM = Vol_desired / Vol_realized.

    The calculation could be done at the end, that would be the same as your calculation where you are using measured correlations for the whole backtest or on an expanding/rolling window base, only using not-seen data.

    I think, this should work, since the IDM is linear in your position calculation and stddev(a * x) = |a| * stddev(x) for a constant a.

    The calculation/backtest for the IDM should be done with otherwise unrealistic fractional positions (without rounding to full contracts), I think.

    You could do the same for the Forecast Diversification Multiplier (FDM), by backtesting with FDM = 1, calculating combined forecasts and calculating the FDM, so that the mean combined signal over all instruments is 10 on average.
     
  213. Yes you can also calculate things using a rolling vol.

    However it has some disadvantages. Mainly because you need a much longer window to get the right answer. If you're just estimating correlations, then correlations move around of course, but you can get a good enough correlation estimate with just a couple of months of daily returns. However the realised vol will depend on (a) the correlation (b) how well we're targeting to and (c) how much our forecasts deviate from the long run average.

    Mainly because of (c) our realised vol will vary quite a lot; it wouldn't be unlikely that we'd have a lower vol than average for quite a long time.

    This means that you need much more data to get the estimate correct. I would say at least 5 years to be on the safe side rather than just a couple of months. Because I've seen periods of at least 3 years when forecasts have been much lower than average.

    The main time this causes problems is when you add instruments to your system (because of new price data coming in). Assuming they add diversification, initially you'd be undershooting vol. After a couple of months you have enough information to use their correlation (and I use a short cut - initially assuming that new instruments have the same average correlations as instruments in the same asset class).

    However if you're using a rolling measure you have a problem. Suppose you use a short window. You adjust quickly to the presence of the new instruments. But what if right now you have much lower forecasts than normal? You'll end up with a much higher IDM than you should do. Okay let's use a long window - at least 5 years. Your IDM will end up at the right level, but it will take a long time to get there. Correlations are faster and more accurate.

    I note in passing that the daily returns of trading systems are indeed not Gaussian, but we're basically assuming Gaussian returns (or at least symetteric ones) in a lot of places, so at least we're consistent (the exception being when working out the risk target, when we penalise negative skew systems more heavily).

    The same argument applies to the FDM.

    GAT

     
  214. Just saw your point about doing the calculation at the end of the backtest.

    The problem with this is, again, markets moving into the backtest halfway through.,

    If you're using a fixed IDM then it will be too high in earlier periods with fewer markets. So if you calculate the IDM based on realised vol over the whole period then you'll get an answer that is too low. By using the final correlation matrix you get an IDM that is correct for live trading, albeit too high in the earlier part of the backtest. The most correct solution is to use a varying IDM, which you recalculate periodically using correlation matrices rather than a rolling window of vol estimation, for the reasons below.

    GAT

     
  215. Yes, I thought of calculating the IDM on a expanding/rolling window base and have it time-varying. When new instruments are added to the system because data for them becomes available, you would have to wait for a certain time until you have enough data to calculate the IDM.

    But as you say, this is the same whether you use correlations or realized vol to calculate the IDM.

    I think one source of noise in the vol of the whole system is the high granularity of positions, i.e. you can only trade full future contracts and they have quite high impact on the system's vol.

    If you backtest with equity going to infinity, let's say billions of $, the granularity becomes less and less (Ignoring the fact that you could not buy 1000s of contracts without impact on the trade price). So I think, you could use fractional trade positions (this is like using infinite equity) to calculate the IDM.

    I will try both methods and compare the results, especially the fluctuations of the IDM over time.
     
  216. I'll do a proper monthly review on 5th January, but in case you're interested here is my 2015:

    +24%

    Big winners:
    Gold 2%
    AEX 2.1%
    BTP 2.2%
    Copper 2.5%
    MXP 2.5%
    Crude 4%
    Platinum 4.3%
    Palladium 4.5%
    Gas 5.4%

    Big Losers:
    GBP -2.4%
    Leanhogs -2.5%
    SMI -3.3%

    GAT
     
  217. very nice returns for such an year!
    waiting to see the full report in a couple days!
     
  218. Monthly update. Last one was December 5th

    Up 7.2% of capital or 29K. I got a new HWM towards the end of last month.

    No nice picture this month due to technical issues.

    Drawdown 1.7% off new HWM

    Actually quite a 'quiet' month in terms of p&l, with about half the gain of last month, despite all the gyrations in the world at large (for information I was up around 10K on yesterdays move). If you look at my risk report below, this reflects the fact that I'm not really exposed to bonds or equities, and the moves in commodities were less pronounced than last month. The financial futures are really struggling to show a new trend, with sideways movement the rule of the day.

    I know I keep banging on about it, but this is why diversification is key. Diversification across asset classes has really helped me since the equity / bond rally faded about 9 months ago. Diversification across styles has also helped somewhat, with trend following struggling somewhat carry has come back to the party (most CTA's were flat last year, while I made some money).

    I hope everyone makes some money in 2016.

    Reports:

    P&L

    Gainers:

    Corn 5K
    Crude 6.5K
    Wheat 4K

    Losers:

    JPY -3.5K
    Livecow -3K


    Positions
    Code:
           code contractid  positions   Lock WrongContract InFwdNotRoll
    14      BTP     201603          2  False         False        False
    16   COPPER     201603         -2  False         False        False
    0      CORN     201612         -8  False         False        False
    9   CRUDE_W     201612         -3  False         False        False
    4   EDOLLAR     201906          2  False         False        False
    10  EDOLLAR     201903          7  False         False        False
    5       EUR     201603         -1  False         False        False
    2   EUROSTX     201603        -13  False         False        False  (Hedge)
    8    GAS_US     201603         -2  False         False        False
    13      GBP     201603         -3  False         False        False
    11     KR10     201603          2  False         False        False
    20      KR3     201603          8  False         False        False
    17  LIVECOW     201610         -2  False         False        False
    1       MXP     201603         -4  False         False        False
    12      OAT     201603          1  False         False        False
    3    PALLAD     201603         -1  False         False        False
    6      PLAT     201604         -1  False         False        False
    19  SOYBEAN     201611         -5  False         False        False
    15      US2     201603          3  False         False        False
    18      VIX     201602         -1  False         False        False
    7     WHEAT     201612         -5  False         False        False
    
    Risk
    Code:
           code  multisignal  expected_annual_risk  expected_annual_risk_per_contract  position  expected_annual_risk_rounded_pos
    
    Shorts:
    
    28      MXP        -13.1                  8896                               1964        -4                              7857
    33     PLAT        -13.1                  8855                               7987        -1                              7987
    17      VIX        -10.9                  7367                               9684        -1                              9684
    2   LIVECOW        -11.4                  7721                               5584        -2                             11169
    35   GAS_US        -18.4                 12496                               6504        -2                             13008
    32   PALLAD        -26.8                 18185                              13786        -1                             13786
    0      CORN        -22.8                 15459                               1871        -8                             14965
    26      GBP        -23.6                 15992                               5063        -3                             15190
    30   COPPER        -24.2                 16394                               8868        -2                             17736
    4     WHEAT        -29.4                 19941                               3579        -5                             17897
    3   SOYBEAN        -33.5                 22719                               4049        -5                             20247
    34  CRUDE_W        -43.8                 29646                               8733        -3                             26200
    
    Longs:
    36  EDOLLAR         18.1                 12249                               1394         9                             12542
    8       BTP         19.7                 13315                               6594         2                             13188
    
    Trades
    Code:
             code contractid     filled_datetime  filledtrade  filledprice
    7735      AUD     201512 2015-12-08 14:08:25           -1     0.719000
    7672     BOBL     201603 2015-12-04 08:39:34           -2   130.670000
    7675      BTP     201603 2015-12-04 08:43:09           -1   137.010000
    7714      BTP     201603 2015-12-07 08:12:25           -1   136.940000
    7855      BTP     201603 2015-12-16 09:21:54           -1   136.690000
    7879      BTP     201603 2015-12-21 11:14:25            1   137.650000
    8152      BTP     201603 2016-01-04 07:08:48            1   138.290000
    7774      CAC     201601 2015-12-11 11:09:49           -1  4563.000000
    7861      CAC     201601 2015-12-17 10:20:34            1  4738.500000
    7885   COPPER     201603 2015-12-21 16:17:10            1     2.137500
    8098     CORN     201612 2015-12-23 15:11:06           -1   390.000000
    8122     CORN     201612 2015-12-29 14:30:00           -1   385.750000
    8167     CORN     201612 2016-01-04 16:05:07           -1   377.250000
    8089  CRUDE_W     201612 2015-12-22 14:25:30           -1    42.220000
    8125  CRUDE_W     201612 2015-12-29 14:32:30            1    43.630000
    7726  EDOLLAR     201906 2015-12-08 14:45:34            1    97.865000
    8173      EUR     201603 2016-01-05 03:18:49           -1     1.083400
    7813  EUROSTX     201512 2015-12-14 08:05:09            2  3216.000000
    7816  EUROSTX     201603 2015-12-14 08:05:09           -2  3207.000000
    7819  EUROSTX     201512 2015-12-14 08:09:55            1  3217.000000
    7822  EUROSTX     201603 2015-12-14 08:09:55           -1  3208.000000
    7825  EUROSTX     201512 2015-12-14 08:12:26            6  3211.000000
    7828  EUROSTX     201603 2015-12-14 08:12:26           -6  3202.000000
    7831  EUROSTX     201512 2015-12-14 08:15:08            4  3213.000000
    7834  EUROSTX     201603 2015-12-14 08:15:08           -4  3204.000000
    7720   GAS_US     201602 2015-12-07 13:34:22           -1     2.192000
    8092   GAS_US     201602 2015-12-23 12:02:35            5     1.988000
    8095   GAS_US     201603 2015-12-23 12:02:35           -5     2.064000
    8113   GAS_US     201603 2015-12-28 14:52:19            1     2.234000
    8116   GAS_US     201603 2015-12-29 12:24:32            1     2.340000
    8149   GAS_US     201603 2015-12-31 17:24:00            1     2.396000
    7723      GBP     201603 2015-12-08 08:53:45           -1     1.502900
    7741      GBP     201512 2015-12-09 16:12:13            1     1.517200
    7801      GBP     201603 2015-12-14 02:03:04            1     1.520000
    7858      GBP     201603 2015-12-16 13:23:53           -1     1.501000
    7876      GBP     201603 2015-12-18 13:04:43           -1     1.492700
    8137      GBP     201603 2015-12-31 02:06:07           -1     1.482400
    7696     GOLD     201602 2015-12-04 16:34:17            1  1086.800000
    8164     GOLD     201602 2016-01-04 14:11:22            1  1077.500000
    7708      JPY     201512 2015-12-07 03:06:23           -1     0.008110
    7738      JPY     201512 2015-12-09 14:48:08            1     0.008190
    7744      JPY     201512 2015-12-10 03:28:40            1     0.008224
    7747      JPY     201512 2015-12-10 06:24:06            1     0.008254
    7750      JPY     201603 2015-12-10 06:24:06           -1     0.008273
    7804      JPY     201603 2015-12-14 02:06:37            1     0.008287
    7864      JPY     201603 2015-12-17 11:21:38           -1     0.008186
    7888      JPY     201603 2015-12-21 17:12:41            1     0.008280
    7807    KOSPI     201603 2015-12-14 02:18:21           -1   235.850000
    7873    KOSPI     201603 2015-12-18 01:12:07            1   239.950000
    8005     KR10     201603 2015-12-22 01:42:35            1   126.040000
    8134     KR10     201603 2015-12-30 03:10:36            1   126.280000
    7705      KR3     201512 2015-12-07 02:46:39            1   109.170000
    7777      KR3     201603 2015-12-14 01:04:52            8   109.390000
    7780      KR3     201603 2015-12-14 01:06:57            8   109.380000
    7783      KR3     201603 2015-12-14 01:10:51            8   109.390000
    7786      KR3     201603 2015-12-14 01:36:56            8   109.370000
    7789      KR3     201603 2015-12-14 01:39:25            8   109.380000
    7792      KR3     201603 2015-12-14 01:43:28            8   109.370000
    7795      KR3     201603 2015-12-14 01:47:49            8   109.370000
    7798      KR3     201512 2015-12-14 01:49:05           -8   109.400000
    7843      KR3     201603 2015-12-15 01:12:02           -5   109.330000
    7846      KR3     201603 2015-12-15 05:56:56          -41   109.340000
    8086      KR3     201603 2015-12-22 02:49:15           -1   109.560000
    8170      KR3     201603 2016-01-05 03:53:01           -1   109.700000
    8146  LEANHOG     201606 2015-12-31 14:32:09            1    77.800000
    7711      MXP     201512 2015-12-07 03:12:24           -1     0.059870
    7753      MXP     201512 2015-12-10 06:41:09            3     0.058490
    7756      MXP     201603 2015-12-10 06:41:09           -3     0.058200
    7771      MXP     201603 2015-12-11 03:56:55           -1     0.057800
    7678      OAT     201603 2015-12-04 08:43:59           -1   150.000000
    8101      OAT     201603 2015-12-28 12:13:31           -1   150.040000
    8155      OAT     201603 2016-01-04 09:04:02            1   150.650000
    7699     PLAT     201601 2015-12-04 16:40:16            1   883.400000
    7837     PLAT     201601 2015-12-14 12:14:13           -1   843.200000
    7870     PLAT     201601 2015-12-17 13:47:31            1   857.500000
    8119     PLAT     201601 2015-12-29 13:20:32            1   891.800000
    8140     PLAT     201601 2015-12-31 13:52:59            1   880.500000
    8143     PLAT     201604 2015-12-31 13:52:59           -1   882.500000
    7684  SOYBEAN     201611 2015-12-04 12:18:15            1   912.750000
    7732  SOYBEAN     201611 2015-12-08 13:42:23           -1   899.000000
    7768  SOYBEAN     201611 2015-12-10 12:35:13           -1   893.500000
    7840  SOYBEAN     201611 2015-12-14 12:20:57           -1   888.250000
    7852  SOYBEAN     201611 2015-12-15 14:42:28           -1   888.000000
    7867  SOYBEAN     201611 2015-12-17 12:13:34           -1   873.000000
    7882  SOYBEAN     201611 2015-12-21 12:06:03            1   911.500000
    8104  SOYBEAN     201611 2015-12-28 12:55:43           -1   885.000000
    8131  SOYBEAN     201611 2015-12-29 15:52:07           -1   883.250000
    8161  SOYBEAN     201611 2016-01-04 11:30:06           -1   878.000000
    7687    SP500     201512 2015-12-04 14:04:18           -1  2051.250000
    7690      US5     201603 2015-12-04 14:25:42           -1   118.429688
    7717      V2X     201601 2015-12-07 08:31:53           -2    23.050000
    7762      VIX     201601 2015-12-10 10:07:09            1    18.750000
    7765      VIX     201602 2015-12-10 10:28:08           -1    19.100000
    7693    WHEAT     201612 2015-12-04 15:36:35           -1   520.000000
    8110    WHEAT     201612 2015-12-28 13:15:41           -1   509.750000
    Expected slippage £680, actual £447
     
  219. [​IMG]
    [​IMG]
     
  220. ~100k GBP in a "bad year"
    thats not bad at all =)
    congratulations and keep it coming!

    btw: have you coded your "anti slippage" algo into something that is meant to profit, aside from diminushing your execution costs ?
     
  221. I wouldn't say last year was a bad year; in terms of SR at a fraction under 1.0 it was pretty much in line with backtested expectations. Just not as insanely good as 2014.

    (I also note that there are plenty of people on this site for whom making a 'mere' 24% would be a pathetic year)

    I've got to make some serious progress on my refactoring project (the public face of which is https://github.com/robcarver17/pysystemtrade); basically to get to the point where I've decoupled my code enough so I can run multiple strategies at once. Since I only expect to spend about 1/5 of my time on this project, that could be a while.

    GAT
     
  222. You mention on your blog (http://qoppac.blogspot.co.uk/2015/04/futures-trading-performance-year-one.html) that you are using breakout style rules for your trading.

    How do you get from breakout signals/events that occur when the instrument makes a new high/low to the continuous forecast needed for your framework?

    I tried the following:

    For a given look-back period, calculate the AROON oscillator (http://stockcharts.com/school/doku.php?id=chart_school:technical_indicators:aroon_oscillator) and use it directly as forecast.

    The AROON basically relates the days since the last high to the days since the last low in the look-back window and scales that to -100 .. 100, so I use a forecast scalar of 0.1.

    This seems to work and gives comparable sharpe ratios as with the EWMAC rule described in your book.
    I used lookback lengths of 200, 100 and 50 for a first try.
    The signal is hard-clipped to -10 .. 10 by design with that rule.
     
  223. That sounds good. I use a slightly different approach. I take the price range (min/max) from the last N days (depending on the speed of the system) and then normalise the current price within that range. This gives me a number between -20 (current price is at the bottom of the recent historical range) and +20 (at the top).

    So it's perhaps not really a breakout system, but it will show extreme forecasts when a breakout occurs.

    Unsurprisingly it's highly correlated (80%) with EWMAC but sufficiently different to make it worth including.

    GAT
     
  224. Oh yeah I have a smooth as well EWMA look back varies with window size

     
  225. Hi GAT,

    Are you able to provide an approximate breakdown of each of your strategies (trend, carry, vol, etc) and the approximate win:loss ratio and winning% vs losing% of trades?

    If you cannot break it down at the strategy level due to continuous position sizing, are you able to provide the stats at the portfolio level?
     
  226. You're right I can't easily do this because I don't have "trades". The continous position sizing problem occurs at both the trading rule and portfolio level. I'd need to write some quite involved code to map my changing positions into discrete trades.

    I might do this at some point, but since knowing this statistic will not improve my p&l it's hard to prioritise this task....

    GAT
     
  227. Good news I managed to reconfigure my tax calculation to do this.

    So for the last tax year (which was unusually good in terms of performance) at least the figures are 45% win rate, 1.92 win:loss rate.

    GAT
     
  228. Great, thanks! I think this is useful to know in order to psychologically prepare oneself before running such strategies.
     
  229. Hi GAT,
    A while ago you showed the equity curves for each strategy in your portfolio. I am aware of your use of EWMAC for trend, but could you offer any insight into your use of breakouts and your general breakout strategy? I understand this feeds into an aggregated position based on forecast weights, etc, but what does the core of the breakout look like? Is it similar to initiating longs/shorts if an x-day breakout occurs using a series of values for x? e.g., x = 10,20,30 etc?
     
  230. I've since found out that what I call 'breakout' is referred to as 'stochastic' by the TA crowd (see earlier message on this thread).

    So for an L day lookback my forecast would be EWMA with an L/4 smooth of ([ x_t - (x_average)] / [x_range] ) where x_t is current price, x_range is x_high - x_low, x_average is (x_high+x_low)/2 and x_high is the highest price in the last L days, x_low in the last L days.

    GAT
     
  231. Can you elaborate on how you do relative carry?
     
  232. It's just a definitional thing. The one listed in wikipedia will have a range of 0 to 100. So anything below 50 is short. Mine has a range (after scaling) of -20 to +20. I like my shorts to be negative numbers.

    GAT
     
  233. It's just a Z score

    x= Carry_instrument - Avg_carry_asset_class
    x = x / std_deviation (x)
    x = x * 10

    GAT
     
  234. Hi,
    I have been calculated a covariance matrix using 10yrs of historical data for various instruments. I have noticed that the length of the price series for different instruments varies considerably, meaning that one does not have equal time series to calculate correlations. How do you typically handle this? Do you reduce the length of the time series to the instrument with the shortest length? Are there other ways of handling this?
     
  235. I use correlations in two ways:

    - calculate IDM on an expanding window way
    - in a bootstrap framework to calculate instrument weights

    For the former I'm using an exponentially weighted MA correlation estimate with a lookback of maybe a few years, with let's say a minimum period of 250 days. So we get a situation where we have an instrument has returns, but isn't factored into the IDM. This means the IDM is probably a little bit too low. Heck I can live with that for 250 days.

    If you can't live with it, then you can use a little trick. You backfill the returns of the missing assets with the average return of that asset class plus some gaussian noise. The standard deviation of the noise should be calibrated so that the correlation of the new asset with everything else is sensible. This means that new instruments will tend towards having a similar weight to the rest of their asset class.

    Of course if the new instrument is the first of it's asset class, you've got a problem. You could . This means new assets will tend towards being equally weighted.

    For the latter we might be in a situation where at the start of the year (I normally do weights annually) I don't have data for an instrument that is going to appear sometime during the year. What I do is mark up any instrument for which I definitely want a correlation, and then proceed with my bootstrapping. Let's say each sample I'm bootstrapping 250 days of data from the whole history of data to date.

    I then measure the correlation of each bootstrap. There's a very good chance that the new instrument won't appear in a particular bootstrap sample (heck, there's a chance that even an instrument which has been around for donkeys years won't appear in a particular sample). If then use the average return plus noise trick (I precalculate a big data frame of these before I start, otherwise you'd slow the bootstrapping down to a crawl).

    The nice thing about this method is that as you get more history and more information you start using the real data more and more.

    If that sounds too complicated, then this is something that will be appearing in pysystemtrade in due course.

    GAT

     
  236. This is insane. I'm up 8% today (snapshot as of 15 minutes ago). If this holds will be my best every day (as a percentage versus vol target; might have pulled bigger dollar numbers in 2014 when I was running more risk)

    GAT
     
  237. Finished up just over 30K or 7.6% (I stop measuring my p&l after 7:05pm my time). Slight pullback from HWM set an hour ago. About a 3.5 standard deviation day.

    Good weekend to all.

    GAT
     
  238. nice!!!
    was that because of Oil ?
     
  239. Yes but why not scale it from -100 to +100? Obviously your -20 scale makes sense so I'm just trying to understand your preference.
     
  240. It is completely arbitrary. Doesn't matter as long as it is consistent across different trading rules
     
  241. Hi GAT,
    On page 254 of your book you mention to use trading capital to calculate the cash volatility target. On page 151 you mention that trading capital includes profits and losses. Is the included capital from profit/loss only for closed positions or also open positions? i.e. do you used closed or open equity?
    Many thanks
     
  242. Both open and close
     
  243. About 4K was Oil, but there was more to it than that.

    Here are yesterdays moves, fifth column is move in standard deviation terms, next column is my signal:

    Code:
    Headline chanages: (norm price change>1 sigma)
           code  last_price datetime_last_price  last_norm_return  rawsignal  rawsigchange  multisignal  multisigchange
    28      MXP       0.055 2016-01-15 19:01:25             -2.46      -1.21         0.063        -12.6          -0.273
    24      AUD       0.684 2016-01-15 18:53:32             -2.30      -1.51        -0.135        -15.8          -0.062
    34  CRUDE_W      36.335 2016-01-15 18:10:44             -2.22      -3.00         0.000        -37.6           0.535
    20      CAC    4179.000 2016-01-15 16:15:39             -2.21      -1.37        -0.145         -9.4          -0.005
    19      AEX     399.450 2016-01-15 16:14:14             -2.17      -1.23        -0.218         -8.5          -0.007
    26      GBP       1.426 2016-01-15 18:57:16             -2.13      -2.52        -0.061        -26.3           0.071
    37  EUROSTX    2934.500 2016-01-15 16:17:01             -2.13      -0.68        -0.034         -0.0           0.000
    22   NASDAQ    4100.375 2016-01-15 17:48:25             -2.10      -1.56        -0.214        -10.6           0.249
    2   LIVECOW     117.375 2016-01-15 18:18:59             -2.01      -0.92        -0.047         -9.6           0.168
    21      SMI    8009.000 2016-01-15 16:18:26             -1.99      -0.23        -0.235         -1.6          -0.004
    23    SP500    1857.875 2016-01-15 17:50:05             -1.94      -1.19        -0.201         -8.1           0.199
    18    KOSPI     228.575 2016-01-15 04:42:30             -1.79      -1.74        -0.214        -11.8          -0.124
    30   COPPER       1.943 2016-01-15 19:04:54             -1.10      -2.53        -0.069        -31.6           0.119
    
    8       BTP     138.445 2016-01-15 16:02:19              1.07       1.69         0.225         15.0          -0.253
    10      OAT     151.690 2016-01-15 16:05:05              1.15       2.09         0.209         18.6           0.037
    7      BOBL     131.515 2016-01-15 16:00:55              1.21       0.75         0.044          3.3          -0.001
    11    SHATZ     111.642 2016-01-15 16:06:27              1.28       1.07        -0.001          0.0          -0.000
    15      US5     119.996 2016-01-15 18:46:53              1.36       1.76         0.139          3.9           0.011
    12     US10     128.445 2016-01-15 18:41:25              1.46       1.37         0.132          3.0           0.005
    14     US20     159.266 2016-01-15 18:45:02              1.48       1.00         0.213          2.2           0.007
    36  EDOLLAR      98.303 2016-01-15 19:14:24              1.52       1.84         0.040         22.9           0.025
    16      V2X      27.750 2016-01-15 15:19:34              1.97       0.38         0.003          3.0          -0.007
    13      US2     109.090 2016-01-15 18:43:09              2.06       1.93         0.003          4.2           0.011
    
    Wrong
    25      EUR       1.096 2016-01-15 18:55:23              1.13      -0.11         0.325         -1.1          -0.434
    17      VIX      23.725 2016-01-15 18:51:46              1.82      -0.53         0.055         -4.2          -0.002
    1   LEANHOG      77.975 2016-01-15 18:17:23             -1.07       0.23         0.011          2.4          -0.041
    
    
    So it was more a case that all the stars were aligned in the right direction. Of course this could equally go the other way...

    GAT
     
  244. I've now added the ability to estimate forecast scalars using a rolling window to the code for pysystemtrade.

    GAT
     
  245. Hi GAT,

    Looking at your above formula, it is not clear to me what you mean by L/4 smooth - can you elaborate? Why 4 and where does the L/4 smooth enter the EWMA? I assume you then volatility standardise this EWMA.


    Also, in order to obtain forecast scalars that are on average equal to the absolute value of 10, you mention that 'you need to backtest the behaviour of the rule with real data to find average forecasts'. Is this backtesting conducted for each individual instrument in isolation of the others or across all instruments? Depending on what it is, the outcome at the instrument level wil be different:

    i)if it is at the instrument level in isolation of other instruments, each instrument will have a forecast scalar equal to the average absolute value of 10, which ultimately leads to all instruments having an average absolute forecast scaler of 10

    ii) if it is at the portfolio level across all instruments, the average across all instruments will equal 10 but the average absolute value for individual instruments will not necessarily equal 10
     
  246. It's probably easier to show you my code.

    Code:
    def breakout(x, ws):
      max_x=pd.rolling_max(x, ws, min_periods=min(len(x),int(ws/2)))
      min_x=pd.rolling_min(x, ws, min_periods=min(len(x), int(ws/2)))
      sig=[breakout_one_row(idx, x, max_x, min_x) for idx in range(len(x.index))]
      sig=pd.TimeSeries(sig, index=x.index)
      sig=pd.ewma(sig, span=int(ws/4.0), min_periods=int(ws/8.0))
      return sig
    
    def breakout_one_row(idx, x, max_x, min_x):
      r_px=x[idx]
      r_min=min_x[idx]
      r_max=max_x[idx]
      return 4*(r_px - mean([r_min, r_max]))/(r_max - r_min)
    
    
    
    
    I'd do it by pooling across instruments (by coincidence just blogged on this http://qoppac.blogspot.co.uk/2016/01/pysystemtrader-estimated-forecast.html)
     
  247. Hi, you write on your blog about scalar estimation 'The odd one's out are V2X (with a very low scalar) and Eurostoxx (very high) - both have only a year and a half of data - not really enough to be sure of the scalar value.'

    I downloaded data for the Eurex Eurostoxx 50 from Quandl (https://www.quandl.com/collections/futures/eurex-euro-stoxx-50-index-futures) going back to Sep 1998. Are you talking about a different contract?

    This thing shows some peculiarities. Here is a plot of it from my system:
    estx50.png

    Settle is the panama adjusted settle, OSettle the 'original' settle price.
    Carry shows the difference to the next contract, adjusted to annual (In this case multiplied by four, since ESTX50 has quarterly contracts).

    Do you have any idea why the March contract shows those regular spikes?
    Seems to be really consistent over the years.
    Other contracts like DAX, SMI don't show this, the CAC40 also looks strange.
     
  248. Over time Quandl have been backfilling their data. When I first tried to get this from quandl, a couple of years ago, they didn't have any Eurostoxx data. So I had to just use the IB data.

    At some point I'll add this extra data.

    The carry 'bumps' are due to the different timing of dividend payments. It affects different contracts to different degrees. This is a well known effect and not a problem with the data.

    GAT
     
  249. Thank you! Do you have some more information why ESTX50 is so strongly affected by this?
    The DAX is a performance index (includes dividends), is this why it doesn't show that pattern?
    There is probably no easy way to use this for trading?

    Another thing: Your code for the breakout rule above uses Python list comprehensions along the series axis.
    I think this horrendously slow and not really needed.
    You can write it fully vectorized (loops in pandas/numpy C code) like this:
    (stochastic here is scaled to -0.5 .. 0.5)

    Code:
    def stochastic(data, column, length, smooth):
        roll_max = pd.rolling_max(data[column], length, min_periods=length // 2)
        roll_min = pd.rolling_min(data[column], length, min_periods=length // 2)
        stoch = (data[column] - roll_min) / (roll_max - roll_min) - 0.5
        if smooth > 1:
            return pd.ewma(stoch, span=smooth)
        else:
            return stoch
    
     
  250. Yes the DAX includes dividends; so the effect doesn't apply. I think the yield on the Eurostoxx is quite high. I guess also there are more firms paying semi-annual dividends (quarterly divis rarer in europe than the US).

    Thanks for the code tip. Speed isn't a concern with a daily system, but it's always nice to have more efficient code even for the sake of it.

    GAT
     
  251. About forecast scalars:

    I am using artificial random data to estimate the scalars and correlations between rules.
    For example, I created 1000 different random walks, each 100000 bars('days') long and applied trading rules to them:

    Code:
                                    count  mean  std  min  25%  50%  75%  max
    scalar_ewmac256  1000  1.628219  0.070967  1.420118  1.581897  1.626521  1.678534  1.827633
    scalar_ewmac128  1000  2.301430  0.071873  2.092129  2.253581  2.300945  2.349642  2.524300
    scalar_ewmac64   1000  3.262073  0.073323  3.039892  3.211492  3.261055  3.313205  3.511254
    scalar_ewmac32   1000  4.639525  0.075807  4.417496  4.589838  4.636334  4.694308  4.875523
    
    The 50% value is the median along the 1000 tries (data is from the pandas describe() function).
    ewmac256 means the EWMA 256/64 rule and so on.
    The medians are lower than the values that you give in your book (1.87, 2.65, 3.75, 5.3), probably reflecting the fact that the artificial data has no trends.
    But even with 1000 tries of 100000 days, i.e. about 400 years, you can see the error in the values is still significant.
    I wonder if it is really possible to get stable values from real data where we only have maybe 40 futures and 50 years of data.
     
  252. You're right - it isn't possible. Great experiment by the way.

    I see a lot of people getting really tied up about the 'correct' value of these things. But it doesn't matter as much as people think. For example if you apply random noise to all your forecasts scalars, such that they're only right within an order of magnitude, what effect would it have on your Sharpe Ratio? Not as much as you might expect.

    GAT
     
  253. Another milestone this morning - just passed 500K of accumulated profits (before taxes, sadly)

    GAT
     
  254. What're you going to spend all that loot on?
     
  255. Tax take is about a quarter (it's classed as capital gains, which attracts a marginal rate of 28%).

    Some goes towards living costs; but I've got enough other investment income to cover most of that.

    So most of it is ploughed into buying other investments; firstly through funding ISA allowances (if you're not UK based this is a tax sheltered investment scheme), then buying stuff outside tax shelters. The plan being to have my passive investment income outside of tax shelters increase to the point where it's covering wouldn't matter if my trading account earned zero.

    Once I've got that, with a reasonable amount of safety, I might consider paying off my mortgage or buying another place. Only then will I even think about the usual mid life crisis stuff - cars, bikes and boats.

    These days are behind me (from 1:30 onwards)




    GAT
     
  256. Well, bravo sir, honestly.
     
  257. done
     
  258. Hi,

    Thanks for the all to info you provide on this subject.
    Can you point me to sources for the "theory" of correctly optimizing the parameters of strategies ? By "correctly" I mean:
    -avoiding over fitting
    -correctly using in sample and out of sample data
    -resting on solid statistical models (esp. w.r.t. no over fitting).
    Thank you.
     
  259. I'm assuming you've read my book already :)

    If you need more detail then is probably the best book specific to trading.

    If you're really serious about it then is the best book in terms of giving you an understanding of distribution of sample statistics.

    GAT
     
  260. Hi GAT
    I have read your book, (some of) your blog plus this thread - you have written a lot of very interesting material. I am interested to understand more about your perspective on the use of stops. I recollect that you are ambivalent towards using stops, and as far as I can make out, you do not use them. Nearly everything else I have read views the use of stops as virtually mandatory. Fundamentally why do you not care? is it because you trade across a very diversified portfolio of futures (40) so if one goes very South very quickly, damage to your portfolio will be limited? Is it because you stay away from low volatility instruments, and think the "amount your instruments can go South by" is therefore limited? You describe your system as relatively slow, so I am assuming even if one of your chosen instruments had a CHF-like event, then your system would still not adjust very quickly. Finally - if you were to introduce stops to your trading as a safety mechanism, how would you go about that? Thanks for your thoughts.
     
  261. " I recollect that you are ambivalent towards using stops, and as far as I can make out, you do not use them."

    Not true. There are two ways I like to trade

    - with explicit stops

    If you (re-) read chapter 13 you'll see a description of a system using stops. Basically you have discrete positions, and you set trailing stops. I explain how to calibrate the stops

    - with implicit stops

    In my own trading, and in chapter 15, I use implicit stops. So I have a contionous forecast rather than discrete positions - stops don't make sense. But the forecast has a big pile of trend following in it. This means that if the price moves against me, I'll be cutting my position as the forecast fades to zero.

    Its just too ways of thinking about risk. In the first way you think about it on a position by position basis. In the second way you're thinking about your daily portfolio risk (I show how to map between them in chapters 9 and 13).

    Hope that makes sense
    GAT
     
  262. Thanks for your reply - I re-read chapter 13 :D

    On a separate topic I am interested in how you chose your approach to implementing your system. You seem to have been truly DIY and built nearly everything yourself. Did you ever look closely at the Ninja Traders and Trade Stations of this world? So much seems to come out of the box with those products. Or did you go DIY because you wanted complete flexibility / wanted to know exactly how everything worked / wanted a fun project etc.
     
  263. The reasons you give are correct (flexibility, control, fun). Also please bear in mind where I've come from; when I came to do this project I'd been designing and building automated trading systems for nearly a decade (though admittedly I'd never built a complete end to end system, mainly focusing on the backtesting part). But I'd never touched NT or TS, or anything like it (nearly every systematic fund out there prefers to build their own system), so I'd have had a steep learning curve to learn those products, and then I might not be able to do exactly what I wanted. It only took me a few months to implement exactly what I wanted but building it entirely myself (standard python libraries, and swigibpy aside).

    GAT
     
  264. Monthly review (last one was Jan 5th)

    [​IMG]
    [​IMG]
    P&L: 18.9%. Total since inception 92.7%

    Drawdown: 3.5% off new HWM (set yesterday morning)

    As I've already hinted (with my post about a record day) this has been an absolutely cracking month. In August 2014 I made 11.1%, so this is a record. One of the things about fully automated trading is you don't neccessarily realise what the heck is going on (actually in August 2014 I went on holiday for 2 weeks... so I really didn't know what was going on). I'd assumed that I'd mainly benefited from the continued sell off in Crude (plus some Gas). In fact when I checked out my p&l by far the biggest gain was in Eurodollars which has done something like 70 ticks in a month. That's a lot. It's a move that had completely passed me by, since the media was focusing so much on Crude....

    Reports:

    P&L

    Gainers:

    Eurodollar: 11K
    OAT: 5.2K
    Crude: 4.7K
    Gas: 3.9K
    GBP: 3.7K
    MXP: 3.2K

    Losers:

    BTP: -2.2K
    PLAT: -2.6K
    Soy: -2.6K
    Corn: -3.5K


    Positions
    Code:
           code contractid  positions   Lock WrongContract InFwdNotRoll
    13     BOBL     201603          3  False         False        False
    16      BTP     201603          3  False         False        False
    22     BUND     201603          1  False         False        False
    20   COPPER     201603         -2  False         False        False
    1      CORN     201612         -6  False         False        False
    10  CRUDE_W     201612         -2  False         False        False
    6   EDOLLAR     201906          8  False         False        False
    11  EDOLLAR     201903          6  False         False        False
    3   EUROSTX     201603        -13  False         False        False (Hedge)
    0    GAS_US     201604         -3  False         False        False
    12     KR10     201603          3  False         False        False
    24      KR3     201603          8  False         False        False
    17  LEANHOG     201606          1  False         False        False
    21  LIVECOW     201610         -1  False         False        False
    2       MXP     201603         -3  False         False        False
    14      OAT     201603          3  False         False        False
    4    PALLAD     201603         -1  False         False        False
    8      PLAT     201604         -1  False         False        False
    23  SOYBEAN     201611         -1  False         False        False
    19     US10     201603          1  False         False        False
    18      US2     201603          3  False         False        False
    5       US5     201603          2  False         False        False
    7       V2X     201604          1  False         False        False
    15      V2X     201603          3  False         False        False
    9     WHEAT     201612         -5  False         False        False
    


    Risk
    Code:
           code  multisignal  expected_annual_risk  expected_annual_risk_per_contract  position  expected_annual_risk_rounded_pos
    
    Longs
    1   LEANHOG          7.2                  4989                               2712         1                              2712
    3   SOYBEAN         -4.6                  3205                               3613        -1                              3613
    13      US2          5.1                  3507                               1233         3                              3699
    16      V2X          7.3                  5035                                996         4                              3986
    12     US10          6.1                  4222                               4003         1                              4003
    15      US5          6.6                  4585                               2300         2                              4600
    6       KR3          8.3                  5754                                682         8                              5456
    7      BOBL          8.1                  5627                               1918         3                              5753
    9      BUND         12.2                  8430                               6318         1                              6318
    5      KR10         11.3                  7823                               2991         3                              8974
    10      OAT         24.4                 16860                               5968         3                             17903
    8       BTP         27.1                 18768                               7192         3                             21575
    36  EDOLLAR         27.5                 19036                               1350        14                             18907
    
    
    Shorts:
    2   LIVECOW         -8.5                  5866                               5093        -1                              5093
    29      NZD         -4.0                  2791                               7054        -1                              7054
    33     PLAT         -7.0                  4848                               8574        -1                              8574
    28      MXP        -11.0                  7586                               2983        -3                              8950
    0      CORN        -15.4                 10650                               1700        -6                             10200
    32   PALLAD        -23.2                 16072                              11543        -1                             11543
    30   COPPER        -15.7                 10840                               7462        -2                             14924
    4     WHEAT        -22.6                 15623                               3002        -5                             15008
    35   GAS_US        -34.7                 24051                               7118        -3                             21355
    34  CRUDE_W        -35.5                 24558                              12978        -2                             25956
    
    Trades
    Code:
             code contractid     filled_datetime  filledtrade  filledprice
    8209      AUD     201603 2016-01-07 09:49:12            1     0.700300
    8245      AUD     201603 2016-01-12 05:25:35           -1     0.695600
    8341      AUD     201603 2016-01-21 17:29:43            1     0.698000
    8419      AUD     201603 2016-01-28 09:54:47            1     0.707500
    8221     BOBL     201603 2016-01-08 07:41:12            1   131.200000
    8416     BOBL     201603 2016-01-28 07:45:38            1   132.060000
    8500     BOBL     201603 2016-02-04 07:42:11            1   132.530000
    8242      BTP     201603 2016-01-11 12:49:06           -1   138.250000
    8335      BTP     201603 2016-01-20 12:05:13           -1   137.380000
    8392      BTP     201603 2016-01-26 08:34:18            1   138.540000
    8428      BTP     201603 2016-01-28 13:07:06            1   139.160000
    8203     BUND     201603 2016-01-07 09:46:09            1   159.980000
    8248     BUND     201603 2016-01-12 08:36:57           -1   158.870000
    8278     BUND     201603 2016-01-13 12:42:23            1   159.760000
    8233      CAC     201601 2016-01-11 10:18:23            1  4350.000000
    8236      CAC     201602 2016-01-11 10:18:23           -1  4342.500000
    8371      CAC     201602 2016-01-22 15:38:46            1  4356.500000
    8281   COPPER     201603 2016-01-13 19:31:57           -1     1.955500
    8320   COPPER     201603 2016-01-19 11:39:37            1     1.998500
    8329     CORN     201612 2016-01-19 14:30:00            1   388.750000
    8359     CORN     201612 2016-01-22 14:53:07            1   391.750000
    8323  CRUDE_W     201612 2016-01-19 11:45:11            1    36.900000
    8227  EDOLLAR     201906 2016-01-08 15:39:48            1    98.010000
    8317  EDOLLAR     201906 2016-01-18 14:38:53            1    98.215000
    8368  EDOLLAR     201903 2016-01-22 15:26:29           -1    98.225000
    8389  EDOLLAR     201906 2016-01-25 17:27:12            1    98.185000
    8404  EDOLLAR     201906 2016-01-27 12:47:28            1    98.195000
    8425  EDOLLAR     201906 2016-01-28 13:03:50            1    98.210000
    8449  EDOLLAR     201906 2016-01-29 13:57:40            1    98.285000
    8218      EUR     201603 2016-01-08 02:21:05            1     1.089700
    8377      EUR     201603 2016-01-25 02:13:26           -1     1.081500
    8407      EUR     201603 2016-01-27 13:57:48            1     1.090750
    8239   GAS_US     201603 2016-01-11 12:15:17            1     2.442000
    8275   GAS_US     201604 2016-01-13 12:34:17           -1     2.355000
    8332   GAS_US     201604 2016-01-19 16:21:45           -1     2.186000
    8383   GAS_US     201603 2016-01-25 12:08:51            1     2.147000
    8386   GAS_US     201604 2016-01-25 12:08:51           -1     2.225000
    8212      GBP     201603 2016-01-07 09:50:32           -1     1.458100
    8344      GBP     201603 2016-01-22 06:54:51            1     1.423700
    8422      GBP     201603 2016-01-28 10:40:22            1     1.434000
    8479      GBP     201603 2016-02-02 02:10:42            1     1.443200
    8497      GBP     201603 2016-02-04 02:30:03            1     1.458300
    8434      JPY     201603 2016-01-29 03:34:55           -1     0.008407
    8494      JPY     201603 2016-02-03 19:08:07            1     0.008535
    8374    KOSPI     201603 2016-01-25 02:08:11            1   231.300000
    8488     KR10     201603 2016-02-02 04:25:27            1   127.990000
    8413      KR3     201603 2016-01-28 02:27:06            1   109.750000
    8476      KR3     201603 2016-02-01 04:36:59           -1   110.080000
    8410  LEANHOG     201606 2016-01-27 14:09:27            1    79.900000
    8215  LIVECOW     201610 2016-01-07 15:35:23            1   124.225000
    8347      MXP     201603 2016-01-22 10:00:56            1     0.053760
    8260   NASDAQ     201603 2016-01-12 14:04:03           -1  4313.250000
    8296   NASDAQ     201603 2016-01-15 14:21:48            1  4131.750000
    8287      NZD     201603 2016-01-15 02:40:11           -1     0.642500
    8506      NZD     201603 2016-02-05 05:54:46            1     0.667100
    8509      NZD     201603 2016-02-05 05:56:51           -1     0.666900
    8206      OAT     201603 2016-01-07 09:46:34            1   151.600000
    8257      OAT     201603 2016-01-12 10:39:16           -1   150.430000
    8272      OAT     201603 2016-01-13 10:37:48            1   151.130000
    8395      OAT     201603 2016-01-27 07:37:36            1   153.300000
    8398   PALLAD     201603 2016-01-27 12:28:11           -1   494.700000
    8503   PALLAD     201603 2016-02-04 18:10:04            1   517.150000
    8290     PLAT     201604 2016-01-15 12:51:06           -1   830.700000
    8401     PLAT     201604 2016-01-27 12:31:07            1   874.700000
    8269  SOYBEAN     201611 2016-01-12 17:26:26            1   889.000000
    8284  SOYBEAN     201611 2016-01-14 14:56:58            1   886.250000
    8326  SOYBEAN     201611 2016-01-19 11:53:10            1   889.250000
    8350  SOYBEAN     201611 2016-01-22 12:22:46            1   890.250000
    8491  SOYBEAN     201611 2016-02-02 17:19:50            1   897.750000
    8338     US10     201603 2016-01-20 13:25:52            1   128.859375
    8293      US2     201603 2016-01-15 14:13:38           -1   109.109375
    8452      US2     201603 2016-01-29 14:12:50            1   109.296875
    8224      US5     201603 2016-01-08 14:13:08            1   119.132812
    8431      US5     201603 2016-01-28 14:07:25            1   120.265625
    8230      V2X     201603 2016-01-11 08:10:21            1    26.150000
    8299      V2X     201603 2016-01-18 09:35:28            1    27.700000
    8380      V2X     201603 2016-01-25 09:02:50            1    27.050000
    8437      V2X     201604 2016-01-29 08:05:53            1    26.900000
    8254      VIX     201602 2016-01-12 10:07:01            1    21.650000
    8266    WHEAT     201612 2016-01-12 17:24:36            1   513.000000
    8356    WHEAT     201612 2016-01-22 14:31:16            1   510.250000
    8446    WHEAT     201612 2016-01-29 13:14:55           -1   506.500000
    Expected slippage £417, actual £86

    GAT
     
  265. Your actual slippage seems to be a lot better than your expected, is this true? If it is true, is there some inherent conservatism in your algo that may cause you to miss trades?
     
  266. Expectation is bid-ask. So if my execution algo is any good I should do better than that on average. I don't yet have any stats on how well my algo is expected to do.

    Although it's theoretically possible to miss a trade I don't think its ever happened.

    GAT
     
  267. I'll add to this: it also seems your performance overall is better than what you'd expected. So really, is your conservatism in testing causing you to miss trades? There's a central question here that I'm doing a poor job of articulating.
     
  268. Hi - I have a question on the cut in your position in this scenario. During the first drop of 300 points, you state you system will cut your position massively: how quickly will it achieve this? I assume the EWMAC rules of 30, 60, 120 days that you run are the ones which will respond to a move like this: do they really move quickly enough to cut your position quickly? I have tried poking around with your EMWAC trading rule example spreadsheet in your book resources, e.g. dropping the price at the tail end from 70s to 50s, the forecast changes but takes days to reach a hard negative -20. What am I missing.
     
  269. I said I cut my position quickly. I didn't say I'd go massively short quickly. Most of the position cutting would come from the spike in volatility by the way. Also to someone whose average holding period is a month a few days is quickly.

    GAT
     
  270. Yes, eithier that or I'm doing a poor job of understanding it. Perhaps you could give an example. I genuinely don't understand what a "missed trade" is (or at least what you mean by one).

    GAT
     
  271. So maybe in your code, if you have something like, "oil is 32.50 bid at 32.60, I would like to sell oil at 32.55, but since I expect to do no better than 32.50, I won't take the trade." When in fact, the odds are high that placing orders at 32.55 would result in you getting filled more often than not? I'm assuming (and think I read) you cross only.

    I know it's a crude example (I'm here all week!)
     
  272. That's nothing. I once spent two days trading crude oil related puns with a guy on twitter. By the end they were at least 10 times worse than that.

    Okay, so my trading system doesn't work in the way you describe - it's not event driven. It works something like this:

    - periodically check the price in the market. I do this hourly, but daily woud be fine as well (when I clean up my code I'll move to daily closing prices only).
    - recalculate the optimal position, plus and minus a buffer around that.
    - at some point (which could easily be the next day) a seperate order management process will check my current position and compare it to the optimal. If the current position is outside the optimal buffer then I issue a trade. At this point I'll check the market price, but this is purely to benchmark my algo. It doesn't affect the trade.
    - a seperate execution algo will then do the trade, whatever the price, although it will try and get the best price it can.
    - if for some reason the trade fails, then if the original price capturing process gets a new price before we try and do the trade again, then and only then will the price movement be reflected in the trade we want to do. This is rare however.

    They key point is that there is no feedback between the price in the market or executed price and what trade I want to do. I can do this because (a) I'm fairly small, so my positions are quite discrete; it usually takes a reasonable move to make it worth doing even one lot in many markets (b) I'm trading slowly, average holding period several weeks or longer (c) because of the buffering which reduces trades that don't add alpha.

    Consider this example

    Code:
    [code:SOYBEAN, ismanual:False, clientid:1, balancecomment:, orderid:8524, brokerorderid:8524, sample_price:878.625, brokeraccount:U1228709, commission:0.0, brokerpermid:10265674, filledtrade:-2, isforcetype:, contractid:201611, sample_datetime:2016-02-08 12:32:10, submit_price:878.625, exchange:ECBOT, filledprice:878.5, broker:IB, isbalancing:False, side_price:878.5, submit_datetime:2016-02-08 12:32:25, cancelled:False, submit_trade:-2, filled_datetime:2016-02-08 12:31:16 ; ]
    
    
    At 12:32.10 I got a price of 878.625 for soybeans (the mid of 50 and 75). Nine seconds later my order management module picks up on that. That sounds glacial to the HFT guys but remember it could easily be the next day.

    Code:
    2016-02-08 12:32:19 INFO    : trading      : (trademarket, SOYBEAN) Detected change in optplusbuffer, from -0.913993840024 to -2.57742239718 (update)
    2016-02-08 12:32:19 INFO    : trading      : (trademarket, SOYBEAN) Detected change in optminusbuffer, from -2.23505975636 to -3.92032195712 (update)
    2016-02-08 12:32:19 INFO    : trading      : (trademarket, SOYBEAN) Detected change in refprice, from 885.75 to 878.625 (update)
    2016-02-08 12:32:20 INFO    : trading      : (trademarket, SOYBEAN) Detected change in optimal, from -1.57452679819 to -3.24887217715 (update)
    2016-02-08 12:32:20 INFO    : trading      : (trademarket, SOYBEAN) Detected change in limited_trades, from 0 to -2 (update)
    
    The optimal has moved from between -0.91 and -2.23; to between -2.6 and -3.2. Since we are short one contract, we need to sell 2.0.

    Code:
    
    2016-02-08 12:32:23 INFO    : trading      : Order of -2 for SOYBEAN 201611 (issue_an_order)2016-02-08 12:32:25 INFO    : trading      : Trying to place order of -2 for SOYBEAN 201611 (place_new_order)
    2016-02-08 12:32:25 INFO    : trading      : Next orderid is 8524 (add_new_order)
    2016-02-08 12:32:30 INFO    : trading      : Added algo used Easy for 8524 (add_algo_used)2016-02-08 12:32:31 INFO    : trading      : (algo, NA) Initial value of limit_price is 878.75 (update)
    2016-02-08 12:32:31 INFO    : trading      : (algo, NA) Initial value of side_price is 878.5 (update)
    
    The market is still at 878.5 - 878.75, 21 seconds after the original quote. I offer two at 75's.

    Code:
    
    2016-02-08 12:32:31 INFO    : trading      : (algo, NA) Initial value of Mode is Passive (update)
    2016-02-08 12:32:31 INFO    : trading      : (algo, NA) Initial value of offside_price is 878.75 (update)
    2016-02-08 12:32:32 INFO    : trading      : Added algo dict value for 8524.000000 Limit of string  or value 878.750000 (_add_value)
    2016-02-08 12:32:34 INFO    : trading      : Placed order for SOYBEAN 201611 of -2 with order id 8524 (place_new_IB_order)
    2016-02-08 12:32:35 INFO    : trading      : (algo, NA) Detected change in message, from StartingPassive to Order book imbalance of 99999.990000 developed compared to 5.000000, switching to aggressive for 8524
    878.500000 (update_value)2016-02-08 12:32:36 INFO    : trading      : (algo, NA) Detected change in limit_price, from 878.75 to 878.5 (update)
    
    There's a lot more volume on the offer now, so I'm going to hit the bid instead at 50's.

    Code:
    
    {'orderid': '8524', 'account': 'U1228709', 'exchange': 'ECBOT', 'symbol': 'ZS', 'permid': 10265674, 'execid': '00010a26.56b7cce9.01.01', 'clientid': '1', 'expiry': '20161114', 'price': 878.5, 'qty': 1, 'side': 'SLD', 'times': '20160208  12:31:16'}
    2016-02-08 12:32:38 INFO    : trading      : Received fill size -1 for brokerid 8524  code SOYBEAN expiry 20161114 contractid 201611 (action_fill)
    2016-02-08 12:32:38 INFO    : trading      : Fill done size -1 out of -2 for brokerid 8524 orderid 8524 at price 878.500000 (action_fill)
    
    We get a fill at 50's

    Code:
    2016-02-08 12:32:40 INFO    : trading      : (algo, NA) Detected change in side_price, from 878.5 to 878.25 (update)
    2016-02-08 12:32:40 INFO    : trading      : Updated algo dict  for 8524.000000, ValidSidePrice with string  or value 878.250000 (update_value)
    2016-02-08 12:32:40 INFO    : trading      : (algo, NA) Detected change in message, from tick no action 8524 SOYBEAN 201611 to Adverse price move in aggressive mode for 8524 SOYBEAN 201611 (update)
    2016-02-08 12:32:41 INFO    : trading      : (algo, NA) Detected change in limit_price, from 878.5 to 878.25 (update)
    
    The large order has indeed pushed the bid down to 878.25. We chase it down by lowering our offer to 25's but fortunately:

    Code:
    {'orderid': '8524', 'account': 'U1228709', 'exchange': 'ECBOT', 'symbol': 'ZS', 'permid': 10265674, 'execid': '00010a26.56b7ccea.01.01', 'clientid': '1', 'expiry': '20161114', 'price': 878.5, 'qty': 2, 'side': 'SLD', 'times': '20160208  12:31:16'}
    2016-02-08 12:32:43 INFO    : trading      : Received fill size -2 for brokerid 8524  code SOYBEAN expiry 20161114 contractid 201611 (action_fill)
    2016-02-08 12:32:43 INFO    : trading      : Fill done size -2 out of -2 for brokerid 8524 orderid 8524 at price 878.500000 (action_fill)
    2016-02-08 12:32:45 INFO    : trading      : Postion in SOYBEAN 201611 changed from -1 to -3 because of trade -2 id 8524 (add_fill)2016-02-08 12:35:23 INFO    : trading      : (trademarket, SOYBEAN) Detected change in priced_status, from Order_submitted to Nothing to trade (update)
    
    Our earlier order of 50's executes first.

    This is way more detail than you need but the key point is that the price is moving around the whole time but I'm doing nothing about it in terms of modifying my trade. I don't have low latency capacity anyway so this wouldn't be possible as well as being pointless.

    In the end for this particular example we execute where we'd expect to if I'd hit the bid onthe original original sample price; but I couldn't care less if I do or not. I do monitor this statistic (execution versus sample) and break it down into its components (delay to issue order, bid-ask spread, execution algo effect); but the delay part although sometimes large is mostly random and certainly doesn't do more than 1-2bp to my bottom line even if all my trades were delayed until the next days close. I focus like a laser beam on the second two components.

    I hope this all makes sense; I'm aware I've gone well away from the original query.

    GAT
     
  273. Hi GAT, when estimating costs as per chapter 12, how do you estimate bid/ask spreads? Do you download time series of very short frequencies of the bid and ask (say every 5 minutes) over a couple of years to get an average? Can you provide any pointers on estimating the bid/ask spread? Thanks!
     
  274. I sample the price hourly

    I also have a sample of bid/ask every time I go to trade.

    So maybe 10 observations a day, over which I then take an average.

    GAT
     
  275. I understand that this approach makes sense for comparing your expected slippage vs actual. How do you sample the bid/ask spread for the input into how costs affect your trading rules during the construction/bootstrapping phase?
     
  276. Exactly the same way
     
  277. Hi GAT, for your use of Sharpe ratios, are you excluding the risk-free rate in all of your calculations and just dividing returns by standard deviation, or are your dividing excess returns by standard deviation? If you are including the risk-free rate, what are you using? Also, are your returns geometric or arithmetic returns?
     
  278. I use arithmetic returns.

    I don't include a risk free rate because when trading futures it's a reasonable approximation to assume you don't need cash to do it (I use 35% of my account value for margin on average). And right now interest rates are effectively zero anyway (this is what I'd get on my margin).

    GAT
     
  279. Hi GAT, in your optimisation techniques, are you seeking the global minimum variance portfolio (minimised standard deviation for given level of return) or the 'tangency' portfolio (best Sharpe ratio) assuming risk-free rate is zero?
     
  280. Hi GAT - I made a first, rough attempt at implementing the EWMAC strategy described in your book on ES-minis. I had a quick question which is really just a sanity check to make sure I've understood the moving parts... Using different variants of MAs, I only start to get positive performance using the relatively longer pairs, e.g. 32 / 128 days. Is this consistent with your results for this contract? I'm reluctant to play around with too many pairs as I don't want to introduce overfitting (too late!) but I'd also like to make sure this is due to spx being too noisy for short MAs rather than an error on my part (also quite possible). Thanks.
     
  281. It's probably not an error on your part. Fast trend following doesn't seem to work so well on equity indices (though it's flat, rather than money losing) at least after the mid 1990's. However would this justify not using them? Well 'doesn't work so well' isn't a statistically significant difference.

    In case you're interested here are my own weights. Only the fast lookback is shown.

    momentum4 0.4
    momentum8 0.32
    momentum16 0.08
    momentum32 0.06
    momentum64 0.14

    Splitting your portfolio across each of the three slowest speeds wouldn't be a stupid thing to do, but I wouldn't be more extreme than that.

    Rob
     
  282. Got it, and thanks for the reply and all the other useful stuff you post.
     
  283. Rob could you please let me know the current forecast you have for carry on euro stoxx?

    I'm trying to understand why you have such a short position when I see a moderately strong carry forecast. I suspect something may be wrong in my implementation.

    Thanks!
     
  284. I don't 'trade' eurostoxx. I hold it purely as a hedge against my long stock portfolio.

    GAT
     
  285. Thanks! Also what is KR3 / KR10?
     
  286. 3 year and 10 year korean bond futures

    GAT
     
  287. Another milestone yesterday, new HWM set at +100.7% at lunchtime. Over 6% up on the day.

    In other words if I'd maintained the same risk capital throughout I would have doubled my money (I've actually made about 132% on my current capital at risk and 176% on the original 300K)

    GAT
     
  288. Congrats to those results.

    Question about "risk":

    I can estimate individual position risk using the instruments volatility as a proxy:

    risk = position_value * stddev(percent_instrument_return)

    But how do you estimate the total account risk?
    Just adding up all individual position risk values gives a too high number, essentially a worst case risk.
    Is the sum of all position risk values divided by the Instrument Diversification Multiplier a good estimate?

    Would using the account volatility under-estimate the risk?
     

  289. Hi GAT,

    What is the historical max drawdown for your system running at an annual vol target of 25% and the Sharpe Ratio?
     
  290. "Is the sum of all position risk values divided by the Instrument Diversification Multiplier a good estimate?"

    Not really. The IDM is a long run measure of the correlation between subsystems, not between returns on positions.

    I just use standard risk measures assuming gaussian returns, eg http://faculty.washington.edu/ezivot/econ424/portfolioTheoryMatrix.pdf
    and measuring correlation / vol over recent history (say a few months and a months lookback respectively).

    GAT
     
  291. Max DD 33%, sharpe about 0.9

    GAT
     
  292. It seems to me that max DD is a weird metric because it doesn't account for time. For longer time periods max DD is going to be larger simply because you're taking more samples of the random distribution. Put another way, as time approaches infinity, max DD is going to be 100% with probability 1.
     
  293. Oh yeah it's a stupid statistic. The other thing I don't like is the fact that it's a single data point, so it's statistically highly non robust.

    But people seem to want to know it. They should bear in mind that max DD isn't the maximum you can lose. You should assume that 100% is the maximum you should use.

    GAT

    PS I'm not sure if you're guaranteed to get to -100% if you're using proper capital scaling, but it's true that at an infinite horizon you'll see 99.999999% at some point.
     
  294. GAT

    I'm waiting on delivery of your book and downloaded your spreadsheet on ewma calculation of standard deviation. In the mean time i was wondering if you use the dollar change or percent change when calculating vol. Also, when the forecasted vol for today do you calculate the ewma for the entire series or just the last N samples of price or percent change?
     
  295. It depends on what I'm using the vol for, sometimes I use %, sometimes price.

    You don't need to use the whole series; something like 5 times the length of the EWMA lookback will give you an accurate enough answer.

    Rob
     
  296. I've always used log change in creating a covariance matrix. Under what circumstance(s) would you use price rather than price change? Also, would you use ewma in calculating correlation as well?
     
  297. Sorry I should have said, sometimes I use % price, sometimes delta (price). I think log change will give you similar results to % price (I also think you mean change(log(price)), rather than log (change)!) I use this for position scaling.

    The latter is useful for scaling trading rules, eg EWMAC = EWMA_fast - EWMA_slow / vol( delta_price)

    This is explained in the book, appendix B.

    Correlations - sure you can use exponential weighting of correlations. Again normally % would be appropriate here.

    Rob
     
  298. Yes, I'll post a link when I get it

    GAT
     
  299. Monthly review (last one was Feb 5th)

    [​IMG]
    [​IMG]
    P&L: 0.4% (graph is slightly out of date)
    Since inception: 93.1%
    Drawdown (new HWM): 8.5%

    A flat month after the excitement of January, though I set a new HWM a couple of times and broke the 100% barrier for p&l since inception (using my preferred calculation method which assumes constant maximum capital - in reality it's a lot more in cash terms based on the initial cash of 300K)

    One more month of the financial year left to go, and my YTD fiscal is around 36%; not as good as last years stellar 57%, but still higher than my backtested average of around 22%. A lot can happen in a few weeks though!

    Reports:

    P&L

    Up:
    Gas 10.6K
    Gold 3.6K
    Corn 3.1K
    Wheat 2.1K

    down:
    Crude -3.8K
    Soy -2.3K
    Nasdaq -2.2K
    Palladium -2.1K


    The Crude / Gas and Gold / Palladium difference again highlights the importance of diversification, even within asset classes. This will be the subject of a blog post I'm currently working on (can we adequately diversify with less capital?).

    Positions

    Code:
           code contractid  positions   Lock WrongContract InFwdNotRoll
    3       AUD     201603          1  False         False        False
    8      BOBL     201606          3  False         False        False
    19      BTP     201606          3  False         False        False
    16     BUND     201606          1  False         False        False
    0      CORN     201612         -9  False         False        False
    11  CRUDE_W     201612         -2  False         False        False
    4   EDOLLAR     201906         11  False         False        False
    6   EDOLLAR     201909          1  False         False        False
    7       EUR     201603         -1  False         False        False
    2   EUROSTX     201603        -13  False         False        False
    12   GAS_US     201605         -4  False         False        False
    17      GBP     201603         -1  False         False        False
    15     KR10     201603          3  False         False        False
    23      KR3     201603          9  False         False        False
    18  LEANHOG     201606          2  False         False        False
    20  LIVECOW     201610         -1  False         False        False
    1       MXP     201603         -2  False         False        False
    10      OAT     201606          1  False         False        False
    21  SOYBEAN     201611         -4  False         False        False
    14     US10     201606          1  False         False        False
    22      US2     201606          2  False         False        False
    13      US5     201606          1  False         False        False
    5       V2X     201604          5  False         False        False
    9     WHEAT     201612         -7  False         False        False
    
    Risk

    Code:
           code  multisignal  expected_annual_risk  expected_annual_risk_per_contract  position  expected_annual_risk_rounded_pos
    
    Longs
    
    15      US5          2.6                  1882                               2784         1                              2784
    13      US2          4.6                  3242                               1739         2                              3478
    16      V2X          4.8                  3431                                933         5                              4663
    12     US10          4.2                  3010                               4857         1                              4857
    1   LEANHOG          7.7                  5481                               2665         2                              5331
    10      OAT          7.5                  5341                               5844         1                              5844
    7      BOBL          8.8                  6254                               1964         3                              5892
    24      AUD         13.8                  9808                               6627         1                              6627
    9      BUND          9.8                  6937                               6706         1                              6706
    6       KR3          9.2                  6515                                779         9                              7007
    5      KR10         12.2                  8653                               3339         3                             10017
    36  EDOLLAR         25.7                 18288                               1627        12                             19530
    8       BTP         27.2                 19316                               6635         3                             19905
    
    
    Shorts
    
    32   PALLAD         -2.5                  1793                              12720         0                                 0
    2   LIVECOW         -7.4                  5236                               4326        -1                              4326
    28      MXP         -4.8                  3450                               2988        -2                              5975
    26      GBP         -3.4                  2437                               6650        -1                              6650
    25      EUR        -11.3                  8023                               9099        -1                              9099
    3   SOYBEAN        -18.6                 13253                               3494        -4                             13977
    0      CORN        -21.6                 15342                               1587        -9                             14282
    4     WHEAT        -27.4                 19463                               2852        -7                             19966
    34  CRUDE_W        -32.9                 23378                              10606        -2                             21213
    35   GAS_US        -32.8                 23356                               5421        -4                             21685
    
    Trades

    Code:
             code contractid     filled_datetime  filledtrade  filledprice
    8683      AUD     201603 2016-02-22 17:25:45            1     0.724000
    8782      AUD     201603 2016-02-29 02:07:01           -1     0.711600
    8806      AUD     201603 2016-03-02 02:13:05            1     0.723100
    8632     BOBL     201603 2016-02-22 07:30:56            1   132.860000
    8809     BOBL     201603 2016-03-02 07:28:29           -4   133.150000
    8812     BOBL     201606 2016-03-02 07:28:29            4   131.440000
    8881     BOBL     201606 2016-03-04 16:08:23           -1   131.250000
    8533      BTP     201603 2016-02-09 07:34:19           -1   136.550000
    8584      BTP     201603 2016-02-12 07:40:01           -1   137.340000
    8623      BTP     201603 2016-02-18 10:42:54            1   138.440000
    8740      BTP     201603 2016-02-24 07:34:15            1   138.860000
    8788      BTP     201603 2016-02-29 07:32:45            1   139.340000
    8815      BTP     201603 2016-03-02 07:29:05           -3   140.310000
    8818      BTP     201606 2016-03-02 07:29:05            3   138.620000
    8821     BUND     201603 2016-03-02 07:31:40           -1   165.600000
    8824     BUND     201606 2016-03-02 07:31:40            1   162.970000
    8536      CAC     201602 2016-02-09 08:10:13           -1  4079.000000
    8587      CAC     201602 2016-02-12 08:04:10            1  3963.500000
    8539   COPPER     201603 2016-02-09 12:07:16            1     2.050000
    8833   COPPER     201603 2016-03-02 12:27:58            1     2.165500
    8557     CORN     201612 2016-02-09 17:17:12           -1   386.000000
    8611     CORN     201612 2016-02-16 17:31:04           -1   382.750000
    8803     CORN     201612 2016-03-01 15:01:52           -1   375.500000
    8800  CRUDE_W     201612 2016-02-29 12:11:33           -1    39.660000
    8875  CRUDE_W     201612 2016-03-04 11:59:29            1    40.980000
    8569  EDOLLAR     201903 2016-02-11 13:55:56           -1    98.855000
    8581  EDOLLAR     201903 2016-02-12 06:37:44           -1    98.925000
    8656  EDOLLAR     201903 2016-02-22 12:02:44           -4    98.605000
    8659  EDOLLAR     201906 2016-02-22 12:02:44            4    98.535000
    8746  EDOLLAR     201909 2016-02-24 12:50:48            1    98.575000
    8836  EDOLLAR     201906 2016-03-02 14:39:58           -1    98.460000
    8770      EUR     201603 2016-02-26 18:01:19           -1     1.092900
    8548   GAS_US     201605 2016-02-09 14:33:53           -1     2.229000
    8662   GAS_US     201604 2016-02-22 12:05:39            1     1.839000
    8665   GAS_US     201605 2016-02-22 12:05:39           -1     1.916000
    8668   GAS_US     201604 2016-02-22 12:38:22            1     1.835000
    8671   GAS_US     201605 2016-02-22 12:38:22           -1     1.911000
    8674   GAS_US     201604 2016-02-22 12:41:31            1     1.836000
    8677   GAS_US     201605 2016-02-22 12:41:31           -1     1.913000
    8620      GBP     201603 2016-02-18 02:27:58           -1     1.430000
    8761      GBP     201603 2016-02-25 02:31:53           -1     1.392500
    8839      GBP     201603 2016-03-03 02:30:13            1     1.408300
    8602     GOLD     201606 2016-02-16 13:20:00           -1  1211.400000
    8575     KR10     201603 2016-02-12 02:40:33           -1   129.340000
    8713     KR10     201603 2016-02-23 02:53:56            1   129.100000
    8578      KR3     201603 2016-02-12 03:51:19           -1   110.230000
    8737      KR3     201603 2016-02-24 02:16:08            1   110.190000
    8785      KR3     201603 2016-02-29 02:31:40            1   110.350000
    8608  LIVECOW     201610 2016-02-16 15:29:14           -1   116.575000
    8884  LIVECOW     201610 2016-03-04 18:24:37            1   121.725000
    8617      MXP     201603 2016-02-17 17:28:23            1     0.055130
    8545   NASDAQ     201603 2016-02-09 14:12:22           -1  3911.000000
    8605   NASDAQ     201603 2016-02-16 14:02:43            1  4064.750000
    8596      OAT     201603 2016-02-15 07:36:14           -1   154.070000
    8635      OAT     201603 2016-02-22 08:35:15            1   155.720000
    8827      OAT     201603 2016-03-02 09:55:31           -3   155.630000
    8830      OAT     201606 2016-03-02 09:55:31            3   155.910000
    8851      OAT     201606 2016-03-03 07:34:22           -1   155.670000
    8857      OAT     201606 2016-03-03 07:52:22           -1   155.580000
    8791   PALLAD     201603 2016-02-29 11:59:19            1   497.100000
    8794   PALLAD     201606 2016-02-29 11:59:19           -1   497.500000
    8860   PALLAD     201606 2016-03-03 17:56:36            1   540.500000
    8530     PLAT     201604 2016-02-08 14:35:32            1   925.000000
    8524  SOYBEAN     201611 2016-02-08 12:31:16           -2   878.500000
    8542  SOYBEAN     201611 2016-02-09 14:30:02           -1   877.750000
    8590  SOYBEAN     201611 2016-02-12 12:56:44            1   888.000000
    8614  SOYBEAN     201611 2016-02-17 13:41:53            1   888.500000
    8626  SOYBEAN     201611 2016-02-18 13:03:55            1   890.250000
    8749  SOYBEAN     201611 2016-02-24 12:49:10           -1   880.000000
    8764  SOYBEAN     201611 2016-02-26 13:10:50           -1   878.500000
    8797  SOYBEAN     201611 2016-02-29 14:36:32           -1   874.000000
    8878  SOYBEAN     201611 2016-03-04 12:59:50            1   886.250000
    8887  SOYBEAN     201611 2016-03-04 18:25:09            1   890.000000
    8572    SP500     201603 2016-02-12 06:34:46           -1  1816.250000
    8599    SP500     201603 2016-02-15 15:14:48            1  1882.750000
    8629    SP500     201603 2016-02-21 19:12:47            1  1882.000000
    8680    SP500     201603 2016-02-22 14:03:06           -1  1934.750000
    8716     US10     201603 2016-02-23 13:59:03           -1   130.421875
    8719     US10     201606 2016-02-23 13:59:03            1   130.054688
    8593      US2     201603 2016-02-12 17:41:10           -1   109.531250
    8722      US2     201603 2016-02-23 13:59:32           -2   109.296875
    8725      US2     201606 2016-02-23 13:59:32            2   109.296875
    8728      US5     201603 2016-02-23 14:00:22           -2   120.898438
    8731      US5     201606 2016-02-23 14:00:22            2   120.796875
    8767      US5     201606 2016-02-26 17:55:30           -1   120.781250
    8560      V2X     201603 2016-02-11 08:34:44           -3    30.900000
    8563      V2X     201604 2016-02-11 08:34:44            3    30.850000
    8566      V2X     201604 2016-02-11 08:39:10            1    31.150000
    8872      V2X     201604 2016-03-04 08:18:48           -1    26.500000
    8527    WHEAT     201612 2016-02-08 12:34:25           -1   496.250000
    8758    WHEAT     201612 2016-02-24 13:04:18           -1   490.250000
    Expected slippage £351
    Actual £469

    Ouch.

    Although there were a few bad fills, possible as I was doing a lot of rolls, order number 8569 - Eurodollars - is the main culprit here. I saw 6.5 additional ticks of slippage at $25 each, totalling £120, on top of the £4.45 I'd have payed if I'd submitted. This was a particularly volatile day when Eurodollar hit a high 22 ticks off the open and closed 2 ticks down. The 85 I received was somewhere in the middle of that range, but unfortunately I'd entered the market as it was slamming downwards off the peak and then chased it down. The contract is now trading at 47.
     
  300. Hi GAT,
    In your backtesting, do you assume you execute at the closing price (plus slippage and transaction costs), at the next day at the open or at some other price?
    Also, in your EWMAC rule, is there a reason why the span of your slow EWMAs are 4x longer than your faster EWMAs? Did you test any alternative multiples e.g., 3 or 5? I am aware there is a potential fitting bias associated with alternatives, but wanted to get your take on it.
    Thanks
     
  301. I assume I execute at the next days closing price, plus slippage.

    For the EWMAC multiple there are 3 approaches you can take:

    - use real data
    - generate random data with trends plus noise http://qoppac.blogspot.co.uk/2015/11/using-random-data.html
    - Apparently there is a closed form solution for the optimal given certain assumptions about the underlying price process, which a very clever guy once showed me. I couldn't reproduce it here for legal reasons as it's not in the public domain (plus I forgot).

    Anyway, the right multiple seems to somewhere between 2 and 6 depending on which approach you take. And the performance surface is relatively flat between these values. So it doesn't make a lot of difference. If for example you ran 4,8; 4,12; 4,16; 4, 20; and 4,24 all at the same time; well the correlations between these things are very high ...

    Since I like to use fast moving average of lookback 4,8,16 and so on (you need to double it to keep the correlation of adjacent EWMAC the same); using 4 times has a certain neatness to it.

    GAT
     
  302. Hi Rob,

    Thanks for posting your experience on ET. I'm a fan of your book & blog.

    Since your base currency for your futures account in GBP, I'm sure you have to handle with different currency exposure for futures margin.
    Which approach do you employ in your trading, or is there a good standard practice in hedge fund industry for handling currency exposure?
    1. convert your base currency to fulfill margin requirement (+/- profit/losses) ?
    2. let the currency remains in deficit, and pay for the interest accrued?
     
  303. Good practice is to minimise currency exposure.

    I try and cover my margin, but nothing more. This is especially true for EUR/ CHF where you can now be charged for cash balances. Wheras in a higher interest currency like KRW I might allow myself to build up a bit of an excess before converting. But generally any profits not yet withdrawn should sit in the base currency.

    GAT
     
  304. Hi Rob,
    In your Risk table, some instruments have signal > than 20 or < than - 20. Does it mean that you dont use caps for your forecasts?
     
  305. The signal there isn't the forecast, but the forecast multiplied by the instrument weights, IDM, and a scalar related to how much capital is at risk. Notice how each multi signal unit is worth around £710 of annualised risk, in fact it's exactly $1000 (for reasons lost in the mists of time I scale my system to a dollar risk amount, which is calculated from my £ account value)

    I agree this isn't very intuitive and it's something I'll be changing in due course.

    GAT
     
  306. Are you submitting limit orders on entry / exit with a timer to get filled?

    or market orders?

    Keep up the good progress!
     
  307. Monthly review (last one was March 5th)

    [​IMG]
    [​IMG]
    P&L period: 5.0%

    P&L to date: 98.1%

    Drawdown: 3.5%

    Almost recovered from the rather sharp drawdown that took me off my HWM set at the end of February. Interesting to see that I'm starting to build long positions in stocks again (and short vol, which amounts to the same risk-on trade). Generally though risk remains low as new trends aren't properly established in most assets.

    The number for my second full year of trading is 41% (57% in the first year, assuming current risk exposure). I'll be doing a full blog post analysing the full year in more detail, but again this is higher than I'd have expected from my back test.

    According to fundseeder my sharpe ratio is around 1.85 to date; relative to around 0.88 in back test.

    My back test is conservative, for several reasons, but the main one is that I have much fewer instruments in the past than I do now. Against this one should weigh the usual risk of overfitting (no matter how careful I've been) and the likelihood of lower returns in all assets than in the past, which will impact also on trading systems.


    Winners:

    Edollar 5.2K
    Crude 4.8K
    BTP 3.8K
    Soybean 2.1K

    Losers:

    Gas -5.2K
    Wheat -3.3K
    Leanhog -2.3K
    AEX -2.5K
    AUD -2.5K

    Once again diversification within sectors is important (gas / crude, soy / wheat).

    Positions
    Code:
           code contractid  positions   Lock WrongContract InFwdNotRoll
    5       AUD     201606          1  False         False        False
    4      BOBL     201606          3  False         False        False
    17      BTP     201606          3  False         False        False
    12     BUND     201606          1  False         False        False
    0      CORN     201612         -6  False         False        False
    8   CRUDE_W     201612         -2  False         False        False
    2   EDOLLAR     201906          9  False         False        False
    3   EDOLLAR     201909          3  False         False        False
    22  EUROSTX     201606        -13  False         False        False  (hedge)
    13   GAS_US     201606         -3  False         False        False
    16     KR10     201606          3  False         False        False
    14      KR3     201606          9  False         False        False
    15  LEANHOG     201606          1  False         False        False
    19  LIVECOW     201610         -1  False         False        False
    20   NASDAQ     201606          1  False         False        False
    7       OAT     201606          2  False         False        False
    21  SOYBEAN     201611          2  False         False        False
    1     SP500     201606          1  False         False        False
    10     US10     201606          1  False         False        False
    23      US2     201606          1  False         False        False
    9       US5     201606          1  False         False        False
    18      V2X     201605         -1  False         False        False
    11      VIX     201606         -1  False         False        False
    6     WHEAT     201612         -4  False         False        False
    

    Risk
    Code:
           code  multisignal  expected_annual_risk  expected_annual_risk_per_contract  position  expected_annual_risk_rounded_pos
    16      V2X         -2.0                  1384                                789        -1                               789
    2   LIVECOW         -6.0                  4241                               4859        -1                              4859
    17      VIX         -6.0                  4211                               6146        -1                              6146
    0      CORN        -18.8                 13161                               2256        -5                             11281
    4     WHEAT        -15.6                 10912                               2834        -4                             11334
    35   GAS_US        -24.7                 17284                               5585        -3                             16756
    34  CRUDE_W        -33.4                 23432                               9962        -2                             19925
    13      US2          4.2                  2919                               1840         1                              1840
    15      US5          4.9                  3419                               2684         1                              2684
    1   LEANHOG          6.0                  4181                               3653         1                              3653
    12     US10          3.8                  2645                               4188         1                              4188
    7      BOBL          8.7                  6068                               1938         3                              5814
    6       KR3          8.8                  6182                                650         9                              5847
    9      BUND         12.1                  8477                               5903         1                              5903
    24      AUD          9.8                  6883                               6771         1                              6771
    5      KR10         11.7                  8192                               2585         3                              7755
    23    SP500          9.4                  6599                               8808         1                              8808
    22   NASDAQ          7.0                  4881                               9254         1                              9254
    3   SOYBEAN         11.7                  8216                               2995         4                             11981
    10      OAT         17.7                 12408                               6382         2                             12764
    36  EDOLLAR         27.4                 19176                               1527        12                             18318
    8       BTP         24.6                 17226                               6927         3                             20780
    

    Trades
    Code:
     code contractid filled_datetime filledtrade filledprice
    9124 AEX 201604 2016-03-21 10:09:48 1 445.500000
    9157 AEX 201604 2016-03-29 11:01:35 -1 438.450000
    9169 AEX 201604 2016-03-30 07:27:54 1 442.000000
    9223 AEX 201604 2016-04-01 07:18:42 -1 433.350000
    8962 AUD 201603 2016-03-11 06:30:04 -2 0.745200
    8965 AUD 201606 2016-03-11 06:30:04 2 0.742100
    8968 AUD 201606 2016-03-11 06:36:52 -2 0.746800
    9013 AUD 201606 2016-03-14 01:00:04 2 0.754300
    9091 AUD 201606 2016-03-16 13:03:06 -1 0.740100
    9100 AUD 201606 2016-03-17 02:25:18 1 0.756800
    9142 AUD 201606 2016-03-24 07:53:24 -1 0.745600
    9172 AUD 201606 2016-03-30 08:35:10 1 0.764800
    9781 AUD 201606 2016-04-05 10:15:55 -1 0.753900
    8971 BOBL 201606 2016-03-11 07:52:20 -1 130.670000
    9241 BOBL 201606 2016-04-01 11:58:07 1 131.150000
    8974 BTP 201606 2016-03-11 07:54:08 -1 139.050000
    9187 BTP 201606 2016-03-31 07:49:11 1 140.610000
    9031 BUND 201606 2016-03-14 07:33:07 -1 161.720000
    9109 BUND 201606 2016-03-18 07:49:34 1 162.780000
    9040 CAC 201604 2016-03-14 12:05:09 1 4506.000000
    9148 CAC 201604 2016-03-24 13:16:30 -1 4324.000000
    9133 CORN 201612 2016-03-22 14:02:08 1 388.250000
    9205 CORN 201612 2016-03-31 17:05:37 1 373.250000
    9208 CORN 201612 2016-03-31 18:06:57 2 368.000000
    9793 CORN 201612 2016-04-06 14:30:00 -1 369.750000
    9004 CRUDE_W 201612 2016-03-11 18:12:59 1 43.660000
    9193 CRUDE_W 201612 2016-03-31 11:47:31 -1 42.920000
    8986 EDOLLAR 201906 2016-03-11 12:07:11 -1 98.335000
    9097 EDOLLAR 201906 2016-03-16 19:40:06 -1 98.370000
    9238 EDOLLAR 201909 2016-04-01 11:25:39 1 98.490000
    9784 EDOLLAR 201909 2016-04-05 13:22:24 1 98.555000
    8929 EUR 201603 2016-03-11 00:58:32 1 1.118750
    9034 EUROSTX 201603 2016-03-14 09:06:40 13 3099.000000
    9037 EUROSTX 201606 2016-03-14 09:06:40 -13 3021.000000
    9112 GAS_US 201605 2016-03-18 13:02:33 1 2.009000
    9145 GAS_US 201606 2016-03-24 13:02:07 -1 1.978000
    9160 GAS_US 201605 2016-03-29 11:41:39 3 1.939000
    9163 GAS_US 201606 2016-03-29 11:41:39 -3 2.051000
    9175 GAS_US 201606 2016-03-30 11:34:13 1 2.104000
    9199 GAS_US 201606 2016-03-31 13:51:16 1 2.126000
    9244 GAS_US 201606 2016-04-01 14:53:20 -1 2.035000
    9118 GBP 201606 2016-03-21 02:11:25 1 1.445200
    9130 GBP 201606 2016-03-22 13:11:03 -1 1.424200
    8926 GOLD 201606 2016-03-10 13:12:49 -1 1249.000000
    8950 KR10 201603 2016-03-11 02:30:09 -1 128.270000
    9016 KR10 201606 2016-03-14 01:01:32 2 127.810000
    9019 KR10 201606 2016-03-14 01:03:21 2 127.790000
    9022 KR10 201606 2016-03-14 01:06:56 2 127.780000
    9025 KR10 201606 2016-03-14 01:08:32 2 127.780000
    9028 KR10 201603 2016-03-14 01:09:33 -2 127.810000
    9055 KR10 201606 2016-03-15 00:59:19 -3 127.870000
    9079 KR10 201606 2016-03-16 01:02:05 -3 127.900000
    9220 KR10 201606 2016-04-01 01:48:08 1 129.280000
    8959 KR3 201603 2016-03-11 03:35:33 -1 109.980000
    9010 KR3 201603 2016-03-14 00:59:06 -8 109.930000
    9058 KR3 201606 2016-03-15 01:02:41 5 110.050000
    9082 KR3 201606 2016-03-16 01:08:57 1 109.980000
    9139 KR3 201606 2016-03-24 03:06:20 1 110.200000
    9217 KR3 201606 2016-04-01 01:34:10 1 110.360000
    9775 KR3 201606 2016-04-05 02:56:45 1 110.410000
    9043 LEANHOG 201606 2016-03-14 17:03:59 1 82.900000
    9151 LEANHOG 201606 2016-03-28 14:30:00 -1 80.575000
    9787 LEANHOG 201606 2016-04-05 14:33:17 -1 79.350000
    8932 MXP 201603 2016-03-11 01:31:57 1 0.056000
    8935 MXP 201606 2016-03-11 01:31:57 -1 0.055580
    9106 MXP 201606 2016-03-18 03:05:06 1 0.057250
    9184 NASDAQ 201606 2016-03-30 16:46:10 1 4479.000000
    8977 OAT 201606 2016-03-11 07:56:22 -1 156.080000
    9121 OAT 201606 2016-03-21 07:33:31 1 157.130000
    9190 OAT 201606 2016-03-31 08:54:24 1 158.430000
    8989 SOYBEAN 201611 2016-03-11 12:00:55 1 906.000000
    8995 SOYBEAN 201611 2016-03-11 13:11:20 1 905.000000
    9052 SOYBEAN 201611 2016-03-14 17:16:06 1 906.500000
    9115 SOYBEAN 201611 2016-03-18 13:31:07 1 912.750000
    9136 SOYBEAN 201611 2016-03-22 15:44:25 1 923.250000
    9178 SOYBEAN 201611 2016-03-30 11:49:37 1 929.250000
    9196 SOYBEAN 201611 2016-03-31 11:56:19 -1 922.750000
    9790 SOYBEAN 201611 2016-04-06 12:07:26 -2 918.500000
    9094 SP500 201606 2016-03-16 14:03:17 1 2006.250000
    8998 US10 201606 2016-03-11 13:58:01 -1 128.562500
    9514 US10 201606 2016-04-04 14:25:51 1 130.453125
    9103 US2 201606 2016-03-17 14:19:44 -1 109.039062
    9001 US5 201606 2016-03-11 13:58:54 -1 119.710938
    9166 US5 201606 2016-03-29 17:00:41 1 120.468750
    8923 V2X 201604 2016-03-10 12:55:13 -1 26.100000
    8980 V2X 201604 2016-03-11 09:16:09 -3 27.150000
    8983 V2X 201605 2016-03-11 09:16:09 3 26.950000
    9088 V2X 201605 2016-03-16 13:11:01 -1 26.400000
    9127 V2X 201605 2016-03-22 08:55:41 -1 25.600000
    9154 V2X 201605 2016-03-29 08:06:35 -1 25.500000
    9226 V2X 201605 2016-04-01 08:20:36 -1 26.200000
    9778 VIX 201606 2016-04-05 10:19:26 -1 18.850000
    8992 WHEAT 201612 2016-03-11 12:02:34 1 505.750000
    9064 WHEAT 201612 2016-03-15 13:30:00 1 506.250000
    9181 WHEAT 201612 2016-03-30 15:09:28 1 499.500000
    Expected slippage £502
    Actual £73. A good result

    GAT
     
  308. i've brought it up before, it seems that your results are consistently better than expected, which to me feels like you've embedded quite a bit of conservatism in your system, which portends that you could maybe be more aggressive/are missing out on trades, extra performance?

    and again, i'm having trouble articulating where this conservatism might exist (i bought and read your book and "everything makes sense").

    anyway, kudos. really, really neat to see you crank them out over the center field fence time and time again.
     
  309. As discussed earlier in the thread I don't "miss out on trades".

    I think the main conservatism is definitely coming from the lack of diversification earlier in the sample.

    So right now for example I expect to get roughly 2.5 times the performance I'd get from a single instrument. For most of the backtest though I average around 10 instruments, which implies diversification benefit of 1.7 times an individual instrument. If I assume that the historic sharpe ratio of 0.9 is valid for 10 instruments, then for what I've got now I should expect a SR of 1.3 going forward.

    Ultimately though it's worth remembering that there is a HUGE amount of noise around even year on year returns, and there's a chance (a remote one now) that my true Sharpe is zero (assuming of course that trading system returns are coming from a latent, unchanging distribution).

    GAT
     
  310. One more thing to add; this year about 1/2 of my performance came from my equity neutral strategy which isn't backtested. Stripping that out I made around 20% this year; still good, but more in line with expectations.

    GAT
     
  311. Hi GAT,
    Great post. Your posts to date have focused on your futures portfolio, yet your equity portfolio seems to be significantly contributing to your returns. Can you offer more insight into your equity portfolio? Does it have a value/momentum/etc bias? What sort of strategy is it and how does it work?
    Thanks!
     
  312. It's a historical accident really. Rather than fund my account with a big heap of cash, I transferred in some shares I already owned (plus some cash). But I wanted the majority of my performance to come from my futures trading, so I set up hedges against the stocks. Getting the hedge right is difficult; partly because to make my life easier I do all my hedging in the eurostoxx, but my portfolios is also spread over several non euro countries including the UK (and yes if anything there is a value bias).

    Also the correct hedge ratio is hard to get right. I was probably overhedged for much of last year which means as the market fell I was gaining too much; I've now reduced that hedge.

    I'm not "trading" this thing exactly except adjusting the hedge ratio, and opportunistically selling things for tax purposes.

    GAT
     
  313. Thank you for all the info you're sharing!
    Do you do also swing trading?
    How would you translate simpler trading rules into forecasts?I mean smth. like if A>B & B>40
    Thank you. Hopefuly see you in London next week.
     
  314. I don't really know what "swing trading" is. Nobody has ever given me a satisfactory consistent answer. So if you tell me what you mean by it I'll tell you :)

    You could translate if "B>40 then go long" into something like (assuming B is say between 0 and 80) forecast = (B - 30)

    Then if B=40 forecast = 10
    If B=50 or above (forecast cap) forecast=20
    If B=30 forecast=0
    If B=20 forecast =-10
    If B=10 or lower (forecast cap) forecast=-20

    GAT
     
  315. Hi GAT, is there a reason why you use a value of ws/4 for the EWMA of the breakout? Why 4? I see you have also multiplied the denominator in min_periods function.

    What sort of values do you look at for breakouts? 10, 20, 30, 40, 50 etc?
     
  316. Four is nothing special. I've never fitted or done any sensitivity analysis on it. It just feels right. Probably any sensible number would do. Too high, and you'll incur a lot of costs. Too low and you won't adjust fast enough to the new trend that the breakout has picked up.

    Breakouts over ws= 20,40,80,160,320 days

    GAT
     
  317. When I simulate the breakout formula, I see the way you have defined it means it is bound by +2/-2. If I multiply this by 10 it fits nicely with the rest of the scaling.

    As the method is bound, it is normalised. Can I correctly infer from this that you do not calculate a forecast multiplier for breakouts (ie so the the absolute average value of the forecast is 10)?
     
  318. Yes, change the 4 to a 40 and you have something that ought to be nicely calibrated.

    Actually I do calculate a forecast multiplier. The scaling will only be correct if the distribution of the forecast has the right standard deviation. This isn't guaranteed.

    However you might not want to bother. This is pretty anal stuff, it won't make much difference.

    GAT
     
  319. Hi Rob,

    Just been reading your blog posts & book. I have a couple of simple questions.
    • Can you elaborate on why you roll manually? What are the problems you encounter in automating this task?
    • Why do you favour commodity futures versus other instruments, and why are commodity futures the principal instruments traded by large systematic hedge funds?
    Thanks!
     
  320. To be clear the rolling is automatic (my execution algo issues eithier a spread, or two individual leg orders), but the decision to roll is manual. This is because there are multiple things to consider as http://qoppac.blogspot.co.uk/2015/05/systems-building-futures-rolling.html discusses. It would be very complicated to code up all these considerations into an automated decision making process, which would save very little time (a few minutes a month).

    Not sure what you mean by "commodity futures" since I also trade equity index futures, bond futures, STIR and fx. If you mean "why do you favour futures", the main reasons are:

    - huge liquidity (more important for multi billion dollar CTA's than me)
    - they trade on exchange. The advantages of this are too numerous to list and would require a separate post.
    - they are very cheap to trade (slippage and commissions for a given level of risk)
    - easy leverage: margin requirements are low
    - cheap available long history of data
    - path dependence; In my professional career I spent nearly all my time working on futures models (with some dabbling in equities, and fairly serious work on OTC interest rate products), so makes sense for me to it now

    GAT
     
  321. Standing room only at Robert Carver's talk at the MTA in London last night. Video will be on www.MTA.org shortly.
     
  322. Hi Rob,

    Great talk last night! Would love to see that as a blog post so I can go over it in detail!

    Thank you for all of this, I've learnt so much from you.
     
  323. Thanks glad you enjoyed. Please let me have the link when you have it (I'm assuming you are something to do with the MTA?!).

    GAT
     
  324. There is a link to your 2nd March presentation up but not your recent talk. I am not anything to do with the MTA.

    https://www.mta.org/video/systematic-trading/
     
  325. Hi Rob,

    I've decided to try building your system from the ground up, as I figured this would be a good exercise to understand it properly.

    I've been using your book/blog, and I'm stuck on the forecast weights. I've calculated the individual EWMAC forecasts, scaled them to have a mean forecast of +/-10, and clipped them to +/-20. Now I'm trying to combine them with a weighted average, but I can't figure out the weights.

    I'm guessing I want to downweight highly correlated forecasts and upweight uncorrelated ones.

    What I can't tell here is if I'm supposed to do a calculation with the correlation matrix, or use bootstrapping in order to get the weights to combine the forecasts?

    (I've attached a PDF of my ipython notebook as ET won't let me upload it directly).

    Thanks!
     
  326. I think there is some confusion here. You can eithier do a single period optimisation or bootstrap. In both cases you get some data and calculate a correlation matrix (and optionally some expected returns although I don't bother) from which you work out the optimal weights. The difference is with bootstrapping is that you take sub samples and work out the weights on each of those before taking an average; with single period you do the whole thing just once.

    http://qoppac.blogspot.co.uk/2015/10/a-little-demonstration-of-portfolio.html

    GAT
     
  327. Hi, just wondering if anyone has a link to the video? I have the presentation, but it is a little difficult to intrepret without the video/GAT's explanations. Thanks
     
  328. Hi GAT,

    Do you vol standardise your breakout rule?
     
  329. No, the standardisation by the range of the price is good enough.

    GAT
     
  330. I'm up to bootstrapping trading rules on single instruments with rolling windows.

    I've been writing my code from scratch to better understand it, only looking at pysystemtrade for clues.

    I have one problem. I wrote my accountCurve using a walk-forward backtester. It's extremely slow, so even a simple bootstrap with limited scope takes several hours, despite having multithreaded the optimisations.

    I noticed in your code that you use a vectorised implementation based on statistics, but I'm struggling to understand why it works. Would you mind explaining it, as if I were five years old?

    Thanks a million! :)
     
  331. Can you point to the piece of code that isn't clear?

    GAT
     
  332. To be clear: this code returns a position; sometimes given only a forecast, but possibly also with other information. Essentially it does all the calculations in chapter 7-10 of the book "in one go" from forecast to position, making assumptions where it needs to. It "works" because we evaluate forecast p&l for bootstrapping making the same assumptions which means we know what the implicit vol target of the little subsystem trading just one market and trading rule is.

    Clearer?

    GAT
     
  333. Monthly review (last one was April 5th)

    [​IMG]

    [​IMG]

    P&L period: -10.