Fully automated futures trading

Discussion in 'Journals' started by globalarbtrader, Feb 11, 2015.

  1. Interesting thread and impressive results so far.

    What is your average holding period?
    #31     Feb 23, 2015
  2. Thanks, and a good question. My average holding period is about one month.
    #32     Feb 24, 2015
  3. Yesterdays trades

             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  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     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:

    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.
    #33     Feb 24, 2015
  4. Todays trades

             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  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.
    #34     Feb 24, 2015
  5. jj1111


    such a great journal, thanks for sharing
    #35     Feb 25, 2015
  6. Do you calculate risk number like daily VAR for the portfolio?
    #36     Feb 25, 2015
  7. Yesterdays trades

             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  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.
    #37     Feb 26, 2015
    panganp likes this.
  8. 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??
    #38     Feb 26, 2015
    fullautotrading likes this.
  9. jj1111


    Oh Jesus here we go.

    Surf please don't ruin this thread. It's one of few decent threads left.
    #39     Feb 26, 2015
    Morpheus_MUC, nvroy, samuel11 and 2 others like this.
  10. nvroy


    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.
    #40     Feb 27, 2015
    marketsurfer and jj1111 like this.