Fully automated futures trading

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

  1. JMW

    JMW

    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.
     
    #271     Jan 30, 2016
  2. " 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
     
    #272     Jan 31, 2016
  3. JMW

    JMW

    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.
     
    #273     Feb 2, 2016
  4. 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
     
    #274     Feb 2, 2016
  5. 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
     
    #275     Feb 5, 2016
    samuel11 likes this.
  6. jj1111

    jj1111

    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?
     
    #276     Feb 6, 2016
  7. 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
     
    #277     Feb 7, 2016
  8. jj1111

    jj1111

    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.
     
    #278     Feb 7, 2016
  9. JMW

    JMW

    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.
     
    #279     Feb 7, 2016
  10. 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
     
    #280     Feb 8, 2016