Fully automated futures trading

My net return was about 6% in the second half of the year, so you beat me :). I spend around 0.6% a year on commissions so my gross return was probably around 6.3%.

GAT
CORRECTION. Belatedly just checked again and my gross from Jul 1 19 - Dec 31 19 was more modest 7% (I thought I started mid year when in fact I started a couple of weeks earlier and I was including returns from the earlier start). After costs then I think GAT you in fact beat me. I wouldn't want to boost my performance with fake news, plus the idea of beating the sensei was starting to unsettle me :)
 
How do folks deal with spikes in V2TX (and I assume other volatility indices) during spikes like yesterday?
I'm trading a system as described in Leveraged Trading, with 3 instruments (Corn, V2TX and US 5 year bonds) and all 13 rules (6 MAC, 6 Breakout and carry), and combined forecast went from -4 yesterday to 8.2 today (I use closing prices, so today's run saw the spike. On my account size, that's short 2 contracts yesterday, into long 4 contracts today), that's quite an extreme jump. I did some digging, and as recommended in the book, I use 50% weight for carry and that's the one that had the biggest impact in the combined forecast. And I'd assume it will be reversed again in the next few days unless we see another event.
I'm holding a March 2020 contract, and using February to compute carry, it's also quite possible that I have a bug somewhere :)

In GAT's first book, Systematic Trading, he showed how to implement carry smoothing, I presume just for this purpose, is that what folks are using?

Thanks!
 
Last edited:
here's what happened when VIX jumped a lot around Feb 1 2018 (one of the advantages of having this thread - it's a nice historical log of events ), some people lost some money and some other people nearly lost money :)
https://www.elitetrader.com/et/threads/fully-automated-futures-trading.289589/page-146

I think the general conclusion is simply to not allocate too much weight to VIX\V2TX and not trade the nearest contracts. And also smoothing with multiple different lookbacks..
 
here's what happened when VIX jumped a lot around Feb 1 2018 (one of the advantages of having this thread - it's a nice historical log of events ), some people lost some money and some other people nearly lost money :)
https://www.elitetrader.com/et/threads/fully-automated-futures-trading.289589/page-146

I think the general conclusion is simply to not allocate too much weight to VIX\V2TX and not trade the nearest contracts. And also smoothing with multiple different lookbacks..

Thanks for that link Kernfusion, that was helpful. I'll reduce exposure to that instrument until I figure out smoothing. I also did some digging to see if it's feasible to trade a contract further out, here's what I got if others are interested.

Code:
     2020-01-23     2020-01-24     2020-01-27     2020-01-28     % jump
20200219     14.10     13.75     15.65     14.70     12.140575
20200318     14.40     14.20     15.35     14.90     7.491857
20200415     15.15     14.95     15.70     15.20     4.777070
20200520     15.55     15.40     15.80     15.35     2.531646
20200617     15.85     15.75     16.15     15.75     2.476780
20200722     15.85     15.80     16.20     15.85     2.469136
20200819     15.95     15.95     16.30     16.05     2.147239
20200916     NaN     16.10     16.45     16.25     2.127660

These are the prices of all currently available contracts, on 1/23 - 1/28 and a percentage jump between 24th and 27th. Quite visible that first 2 contracts had big jumps.

When compared with volume and open interest data for those, I think there's still enough liquidity to, say, trade June contract and use May for carry, and volatility goes down significantly. I think I'll do that change too.

Code:
Delivery month    Opening price    Daily high    Daily low    Last price    Settlem. price    Traded contracts    Open interest    Open interest (adj.)
Feb 20    15.30    15.70    14.50    14.60    14.7    43,112    118,413    106,725
Mar 20    15.10    15.30    14.75    14.90    14.9    28,004    88,885    79,382
Apr 20    15.30    15.55    15.05    15.15    15.2    4,181    24,428    22,366
May 20    15.60    15.80    15.25    15.40    15.35    1,208    18,865    18,719
Jun 20    16.00    16.20    15.75    15.75    15.75    2,270    11,533    11,795
Jul 20    16.10    16.25    15.75    15.75    15.85    160    5,260    5,197
Aug 20    16.10    16.30    16.10    16.15    16.05    1,719    1,635    814
Sep 20    16.45    16.45    16.45    16.45    16.25    5    5    0

Edit: gah, formatting is off, here's the link to volume and open interest for V2TX (expand Statistics tab) if you want to see it in a nicer format https://www.eurexchange.com/exchang...oxx-futures-and-options/VSTOXX-Futures-253604
 
combined forecast went from -4 yesterday to 8.2 today (I use closing prices, so today's run saw the spike. On my account size, that's short 2 contracts yesterday, into long 4 contracts today), that's quite an extreme jump.
I am surprised to see that your position size went from 2 contracts to 4 contracts. Do you calculate the value volatility of a contract in your system? The value volatility of a contract increases if the price suddenly jumps. So today's value volatility should be higher than yesterday's. Your system should then respond by scaling down the maximum position size. Is this implemented in your trading system?
 
How do folks deal with spikes in V2TX (and I assume other volatility indices) during spikes like yesterday?
I'm trading a system as described in Leveraged Trading, with 3 instruments (Corn, V2TX and US 5 year bonds) and all 13 rules (6 MAC, 6 Breakout and carry), and combined forecast went from -4 yesterday to 8.2 today (I use closing prices, so today's run saw the spike. On my account size, that's short 2 contracts yesterday, into long 4 contracts today), that's quite an extreme jump. I did some digging, and as recommended in the book, I use 50% weight for carry and that's the one that had the biggest impact in the combined forecast. And I'd assume it will be reversed again in the next few days unless we see another event.
I'm holding a March 2020 contract, and using February to compute carry, it's also quite possible that I have a bug somewhere :)

In GAT's first book, Systematic Trading, he showed how to implement carry smoothing, I presume just for this purpose, is that what folks are using?

Thanks!

Hi
Yes, I use carry smoothing. I use a simple ewma with 'span' in days = {10,30,60,125}. V*X each get an equal allocation to those in my current, 'dumb', handcrafted weights, for a total of 16%. Relative carry has another 4%. Here's the full list:

Code:
FC    VIX    V2X
Short bias    0.2    0.2
breakout320    0.286    0.286
mrinasset160    0.08    0.08
carry10    0.04    0.04
carry30    0.04    0.04
carry60    0.04    0.04
carry125    0.04    0.04
assettrend64    0.078    0.078
normmom64    0.078    0.078
momentum64    0.078    0.078
relcarry    0.04    0.04

Zeros are omitted. These are quite expensive markets, so I trade them quite slowly - notice the absence of the shorter momentum crossovers for example.

Importantly then, I have much less carry than you (because I have a wider menu of signals to choose from), and it's smoothed a fair bit.

Generally speaking the first contract in V*X is terrible (skew, kurtosis and unpleasant carryness), the second is a little better and so on. On the downside, the liquidity gets worse as you correctly identified. But the average rolldown, and therefore average total return, is also better at the very front (essentially you are getting paid a little higher risk premium for more horrible risk). For me the sweet spot is the second contract (so I'm currently rolling into March right now).

For a relatively undiversified system however, you're probably better off reducing the exposure to negative skew to more tolerable levels by moving further out on the curve.

As @HobbyTrading pointed out, the vol scaling should also have affected your position.

I'm in a bit of a bad place at the moment, without decent diagnostics for my current system and out of date data for my new system, or I'd show you some nice plots. Instead here's a printout of trades done in the vol and equity markets since the 23rd January:

Code:
         code contractid     filled_datetime  filledtrade  filledprice
24145      AEX     202002 2020-01-27 10:18:56           -1   600.250000
24076      CAC     202002 2020-01-17 09:32:23            1  6080.500000
24094      CAC     202002 2020-01-21 08:08:03           -1  6001.500000
24139      CAC     202002 2020-01-27 09:16:00           -1  5909.000000
24181      CAC     202002 2020-01-28 10:20:00           -1  5872.000000
24172    KOSPI     202003 2020-01-28 01:06:32           -1   294.800000
24166   NASDAQ     202003 2020-01-27 14:47:02           -1  8980.750000
24187    SP500     202003 2020-01-28 14:16:38           -1  3256.750000
24121      V2X     202003 2020-01-24 14:21:27           -1    13.900000
24148      V2X     202002 2020-01-27 10:25:58            1    15.150000
24160      V2X     202002 2020-01-27 13:33:32            1    15.500000
24178      V2X     202002 2020-01-28 10:20:47            3    15.400000
24184      V2X     202002 2020-01-28 14:08:27            1    15.150000
24193      V2X     202002 2020-01-29 08:08:19            1    14.750000
24142      VIX     202002 2020-01-27 10:05:13            1    17.300000

I'm currently short 17 contracts of V2X, so I've gone from short 23 to short 17. That seems a fairly reasonable response to the spike given my comments about trading slowly. In VIX I've gone from -2 to -1. Discretization is clearly an issue here.... In S&P I've gone from long 1 to flat.

GAT

PS Drawdown is 5.7% at pixel time. I've lost ~2 weeks of profits, so not the end of the world :-)
 
GAT and @HobbyTrading, thanks a lot for the replies!

I am surprised to see that your position size went from 2 contracts to 4 contracts. Do you calculate the value volatility of a contract in your system? The value volatility of a contract increases if the price suddenly jumps. So today's value volatility should be higher than yesterday's. Your system should then respond by scaling down the maximum position size. Is this implemented in your trading system?

I do calculate volatility. I believe that in the Leveraged Trading book that is described as instrument risk, and is the same thing as price volatility in the Systematic Trading book. Basically, in the carry rule, I divide expected annual return percentage by instrument risk. It is computed as a standard deviation of last 25 days of returns.
I just went back to look at it, and stddev goes from 1.8% just before the spike (on 1/24) to 2.5% after the spike. Instrument risk goes from 29.47% on 24th, to 38.93% on 27th.

The shift from short to a long position can be explained by the fact that the carry and traded contract reversed prices, we are usually in contango with V2TX, but for 1/27, "spot contract" (february) went above the traded contract (march), so carry forecast went positive. From what I can see, that, combined with the fact that I have no carry smoothing and I have 50% weight on the carry rule results in an extreme change.

I'll take the advice here and move to a contract further out and reduce exposure to V2TX as quick measures, and then carry smoothing later.

I also might try moving to using EWMA to compute price volatility. GAT suggested that as the alternative to stddev of percentage returns in Systematic Trading (Appendix D if folks are interested) and that would probably help here as well as it would put more weight on the recent data.
 
Back
Top