Fully automated futures trading

Hi Rob,

You have reported the following return on your Systematic Trading:

2014 >>> 124.0%
2015 >>> 23.0%
2016 >>> -14.0%
2017 >>> -3.7%
2018 >>> 1.0%
2019 >>> 7.0%
2020 >>> 0.3%

Could you please explain the following chart? is this the growth rate of your capital? or it is your profit in million GBP?
Figure_1.png


you mentioned you started with 300K Gbp. Did you add any money? how much you withdrawn from your profit?

Thanks a lot
YAD

I don't recognise those figures but let's assume they are right

The chart is the cumulative percentage return on my current capital. So 1.0 implies a 100% cumulated return. This wil be very similar, although not identical, to a log scale if I compounded my returns (which I do not, see below)

I did indeed start with 300k in risk capital but my account balance was actually larger), but I've run with 400k fixed capital for some years now. I've never added money, I withdraw all my profits above the 'high water mark'.

More explanation here

Updated figures:
My drawdown is 48k
My notional capital is 400 - 48 = 352k
My risk target is 25% * 352k = 88k
My account value is 353k (I have a 'buffer' of just 1k nowadays)

My accumulated profits are 684k (would have been 732k at high water mark)
My total withdrawals are 801k, of which 732k is profits about the HWM and the rest reflections a reduction in my buffer size.

Rob

Rob
 
Been onboarding some new futures and Oat futures don't seem to have enough liquidity to use nearer contract for carry.
E.g. right now I should be in May contract, and I should've rolled into it before Dec 14 (because Dec contract is carry for March contract and it expired on Dec 14)., but the May contract had lots of days with volumes 30-50 contracts in Dec 2021 and even days with only 8 contracts traded (e.g. Dec-13-2021 according to CME charts). So if I'm rolling, say, 2 contracts I'm risking to be 25% of the daily volume, though it's rare..
If instead I use farther contract for carry (Jul-carry for May-price) I can start rolling into May much later, say after Feb 15th when volume should pick up and at least be above 100 contracts most of the days.
It's just in pysystemtrade OATIES has "-1" for carry in the settings..
 
Last edited:
Been onboarding some new futures and Oat futures don't seem to have enough liquidity to use nearer contract for carry.
E.g. right now I should be in May contract, and I should've rolled into it before Dec 14 (because Dec contract is carry for March contract and it expired on Dec 14)., but the May contract had lots of days with volumes 30-50 contracts in Dec 2021 and even days with only 8 contracts traded (e.g. Dec-13-2021 according to CME charts). So if I'm rolling, say, 2 contracts I'm risking to be 25% of the daily volume, though it's rare..
If instead I use farther contract for carry (Jul-carry for May-price) I can start rolling into May much later, say after Feb 15th when volume should pick up and at least be above 100 contracts most of the days.
It's just in pysystemtrade OATIES has "-1" for carry in the settings..
Also, looks like almost no one trades September Oats, there's very little volume in that month in general, instead all the volume is in Dec. so I'm thinking to exclude Sept from the roll cycle completely and make it HKNZ.
https://www.barchart.com/futures/quotes/ZOU21/interactive-chart
https://www.barchart.com/futures/quotes/ZOZ21/interactive-chart
 
Also, looks like almost no one trades September Oats, there's very little volume in that month in general, instead all the volume is in Dec. so I'm thinking to exclude Sept from the roll cycle completely and make it HKNZ.
https://www.barchart.com/futures/quotes/ZOU21/interactive-chart
https://www.barchart.com/futures/quotes/ZOZ21/interactive-chart

Weird right now I'm seeing about the same volume and open interest in both September and December??

March 2022: volume 69, Open interest 2011
May 22, 910
July 41, 261
Sep 81, 288
Dec 101, 278

(Snapshotted volumes are as of now, will obviously grow through the day, and might not be reflective of the past)

Been onboarding some new futures and Oat futures don't seem to have enough liquidity to use nearer contract for carry.
E.g. right now I should be in May contract, and I should've rolled into it before Dec 14 (because Dec contract is carry for March contract and it expired on Dec 14)., but the May contract had lots of days with volumes 30-50 contracts in Dec 2021 and even days with only 8 contracts traded (e.g. Dec-13-2021 according to CME charts). So if I'm rolling, say, 2 contracts I'm risking to be 25% of the daily volume, though it's rare..
If instead I use farther contract for carry (Jul-carry for May-price) I can start rolling into May much later, say after Feb 15th when volume should pick up and at least be above 100 contracts most of the days.
It's just in pysystemtrade OATIES has "-1" for carry in the settings..

I'm currently in July, using May for carry.

Code:
********************************************************************************
           Roll report report produced on 2022-02-02 08:53:01.750635           
********************************************************************************



===========================================================================================================================
                                              Status and time to roll in days                                             
===========================================================================================================================

       carry_expiry contract_fwd contract_priced position_priced price_expiry roll_expiry   status volume_fwd volume_priced
OATIES           99     20220900        20220700               0          161          71  No_Roll          1      0.498674

Roll_exp is days until preferred roll set by roll parameters. Prc_exp is days until price contract expires, Crry_exp is days until carry contract expires
Contract suffix: p=price, f=forward, c=carry
Contract volumes over recent days, normalised so largest volume is 1.0

********************************************************************************
                                 END OF REPORT                                 
********************************************************************************



********************************************************************************
Current State: RollState.No_Roll

To be honest I don't look at the individual contract volumes when rolling, only this relative volume figure (which right now is telling me I'd be fine to roll if I wanted, since the next contract has twice the volume of the current); and then in my liquidity report I see if I should stop trading a particular instrument at all if it's volume has fallen too low (not the case for OATIES).

I have an open mind on this, but I would need to be sure before changing my configuration since it would involve rewriting my historic price data and -1 is always preferred, as it gets you the more accurate carry signal.

Rob
 
Weird right now I'm seeing about the same volume and open interest in both September and December??

March 2022: volume 69, Open interest 2011
May 22, 910
July 41, 261
Sep 81, 288
Dec 101, 278

Yes, the numbers seem exactly as they are right now (I assume these volumes are for 02/01/2022)., but still, if you're currently in Jul and it only trades 41 contracts per day that's low and it's actually the final volume for that day, they didn't grow (as per BarChart data)

https://www.barchart.com/futures/quotes/ZON22/price-history/historical

upload_2022-2-2_10-45-30.png


Dec contract would be too early to roll into I think even if we exclude Sept and and use "+1" for carry., with "+1" I would be in Mar right now., which has decent daily volumes:

https://www.barchart.com/futures/quotes/ZOH22/price-history/historical
upload_2022-2-2_10-50-0.png


And After Feb 15 I'd start rolling into May, which is starting to pick up:
upload_2022-2-2_10-54-48.png



Maybe I'm missing something, but Jul does seem to have low volume right now., none of the recent days reached 100 contracts..

Btw, Rough rice seem to have the same problem - not enough volume in particular contracts to use "-1" for carry..
 
)
I'm currently in July, using May for carry.

Sorry for the newbie question, but why do you trade July even if its spread is larger and volume is lower than March/May? Is it to better exploit the carry signal?
oats.png

Also, what do you mean by "using May for carry"? If I understand correctly, you compare May and July to get your carry signal, but you actually trade July, right?
Thanks
 
Sorry for the newbie question, but why do you trade July even if its spread is larger and volume is lower than March/May? Is it to better exploit the carry signal?
oats.png

Also, what do you mean by "using May for carry"? If I understand correctly, you compare May and July to get your carry signal, but you actually trade July, right?
Thanks

My understanding is if you're using nearer contract for carry, then you have to be out of March/May (carry/price) before March expires because you need carry signal from the previous to your "price" contract (i.e. by Mar 14th)., but you can start "soft-rolling" into the next pair earlier when the volume of the next pair begins to pick up. I.e. if you're opening a new position it makes more sense to do it in the next period because you know that you'll be closing positions in the previous one soon anyway., i.e. you want to reduce the number of trades even though you might be trading not the most liquid contract sometimes..
For example for the "red hard wheat" (people who come up with these names aren't without a sense oh humor that's for sure :) ) according to my schedule "soft-roll" period is Feb1-Mar13 during which new positions will be opened in Jul contract, but the existing positions in May will be allowed to exist till March 13 and will be forcefully rolled into May after.
 
Last edited:
My understanding is if you're using nearer contract for carry, then you have to be out of March/May (carry/price) before March expires because you need carry signal from the previous to your "price" contract (i.e. by Mar 14th)., but you can start "soft-rolling" into the next pair earlier when the volume of the next pair begins to pick up. I.e. if you're opening a new position it makes more sense to do it in the next period because you know that you'll be closing positions in the previous one soon anyway., i.e. you want to reduce the number of trades even though you might be trading not the most liquid contract sometimes..
For example for the "red hard wheat" (people who come up with these names aren't without a sense oh humor that's for sure :) ) according to my schedule "soft-roll" period is Feb1-Mar13 during which new positions will be opened in Jul contract, but the existing positions in May will be allowed to exist till March 13 and will be forcefully rolled into May after.
I understand better know, thanks. So basically you are never going to trade the front month, since you'd miss your carry signal right?
I do things a bit differently: I define carry looking at the slope of the whole term curve from front month to front month +12months (this way I try to avoid carry signals changing too frequently for commodities with high seasonality).
The other difference is that I always trade the front/most liquid contract. I know that's sub-optimal (the curvature at the front of the curve may be quite different from the medium to long term parts), so what I'm planning to do is:
- consider different term contracts as separate instruments. For example, now I only have ZO1 (rolling front); in the future I'll have ZO1, ZO2 (rolling nearby)... ZO5.
- calculate a signal for each contract. In order to have a carry signal for each contract and to remove seasonal effects, I'm going to adjust the term curve (removing long term historical seasonal effects)
- the allocation to each contract will depend on its signal, its trading costs, its volatility...
Do you guys think this makes any sense?
 
So basically you are never going to trade the front month, since you'd miss your carry signal right?
if I use front for carry ("-1") - yes. But for some contracts it's not possible because of liquidity-patterns in that case I can trade front contract and use next for carry (though it's less preferable from the quality of carry signal perspective)..
Not sure about the rest.. definitely more work :) (And let me vent a little here - new contract onboarding is such a pain! it took me a week to onboard just 6 instruments., it hurts to think that I need to do it for like 90 more.. I have automated rolls, so I have to make sure that I got everything right when I'm adding them, so need to check and re-check everything..)
 
Back
Top