Fully automated futures trading

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

  1. I like this thread, is good to see one of the 5% who is actually profitable
     
    #41     Feb 27, 2015
  2. 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.
     
    #42     Feb 27, 2015
    analgotrader and jl1575 like this.
  3. 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?
     
    #43     Feb 27, 2015
  4. 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?

     
    #44     Feb 27, 2015
    solidme and panganp like this.
  5. Hi globalarbtrader, thanks a lot for your reply.
    It is clear now.
     
    #45     Feb 27, 2015
  6. 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
     
    #46     Feb 27, 2015
  7. 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! :)
     
    #47     Feb 27, 2015
  8. 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
     
    #48     Mar 3, 2015
  9. 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.
     
    #49     Mar 4, 2015
    jl1575 and jj1111 like this.
  10. R1234

    R1234

    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?
     
    #50     Mar 4, 2015