Fully automated futures trading

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


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

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.

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.

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

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

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

Which scenarios are you considering?

Question 3.

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.

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.

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.

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

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?
 
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
 
Oh Jesus here we go.

Surf please don't ruin this thread. It's one of few decent threads left.

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! :)
 
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
 
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.
 
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.

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?
 
Back
Top