Fully automated futures trading

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.
http://www.elitetrader.com/et/index...-2015-cbot-treasury-bond-futures-roll.289854/
 
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.
 
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.

Do you calculate risk number like daily VAR for the portfolio?
 
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.

Do you calculate risk number like daily VAR for the portfolio?

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

plot.jpg


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.

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

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