Fully automated futures trading

But I think almost every product has basically only one liquid contract at a time
I agree with HobbyTrading.
What you say is obviously true for stocks, bonds and FX futures but for most commodity futures I'd say that several contracts beyond the front one are liquid enough for small portfolios.

For example, even with a not particularly liquid future like micro WTI, I'd say that the first 5 contracts can be traded.
Also bid-ask spreads look relatively tight even if it's currently night in the US.
upload_2022-6-24_11-17-0.png
 
I guess that's true, if a couple of hundred contracts a day is sufficient volume.. Actually I do trade some thinly-traded products that have 100 contract per day in their most liquid expirations, but for these I don't have a choice, when for oil I would naturally choose the most liquid month to trade..
I mean I don't know, probably it's technically possible at least on some products.. Don't know about the financial gain though.. This would be a somewhat complicated implementation before you can actually backtest it and see the results..
 
Yes, it would be somewhat complicated but I think it could be worth it.
The opportunity set would widen quite a lot: conceptually it's like adding a calendar trade strategy on top of a strategy trading only the front of the curve. But it would be much more capital efficient and probably easier to implement.

It would also allow me to trade some futures I currently can't trade and trade others more granularly.
For example at the moment, being limited to front contracts, I can't trade the hogs future, because it's beyond my risk budget and limits. But I could handily trade contracts #4 to 7, which are still pretty liquid (aside from lower volatility, backwardation currently helps too).

Rob, do you have any thoughts on this?
 
I would like to pick you guys' brains on this topic.

My system currently trades only front-month futures. For commodities and volatility futures, I'm working on expanding the set of investable contracts to all contracts that expire within 12 months (obviosly assuming they are liquid enough). Apart from the small benefit in terms of possible diversification, this would allow me to select, for each commodity, the points of the curve with the highest expected returns given the signals I use.
For example the following paper finds significantly higher risk-adjusted returns when using momentum and carry signals to select individual contracts along the curve, instead of focusing only on front contracts (even after considering transaction costs):
https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2485314

In the paper the authors define the momentum signal by looking at the 12-month return, defined in the following way: "the 12-month return of the xth contract is based on the past returns of the xth nearby contract". So, if I understand correctly, for example the 12-month return of today's 5th nearby WTI future (currently Dec 22 contract) would simply be calculated as the 12-month return of that Dec 22 contract.
With this approach the "instrument" is the specific contract (eg Dec22 or Jan23 WTI).

A different approach I have in mind would stitch excess return series for 1st, 2nd, 3d... nearby contracts and treat those stitched series as "instruments".

My gut feeling is that the first approach makes more sense from a theoretical point of view: there could be factors (seasonality, geopolicy...) which affect specific maturities in different ways, so that next December contract behaves differently from the October one. By using the stitched excess return series approach I would lose this information.

On the other hand, the first approach also has several practical disadvantages:
- some contracts may have too short a data history. For example even the current front feeder cattle contract was listed only 10 months ago, so I couldn't calculate long-term trend signals or long-term volatilities and correlations.
- even if the contract has a long data history, its behaviour 10 months ago tells me very little about how it behaves today (in particular volatility increases as contracts get closer to maturity), while I would say that the behaviour of the 3rd nearby corn contract is much more consistent over time, regardless of wether the contract expires in June or December.

Any ideas? Thanks

Well it would be handy if someone had written a book that talked about this, or was writing a book that discussed it, that was coming out soon. Then maybe someone would acidentally copy and paste the relevant section. Oh hang on:

" Choosing contracts with the best forecasts

For instruments with a wide choice of expiries we might be tempted to try and pick the expiries, on which we have the highest chance of making profitable returns. In the context of the trading strategies in this book, that means picking the expiry with the largest combined forecast.

It is a bit weird to think of choosing the expiry with the highest trend forecast, since trend is based on the back adjusted price, which itself is made up of prices from contracts with consecutive expiry dates. But it could make some sense to choose the expiry with the best carry forecast, which will be the month with the highest or lowest risk adjusted roll yield.

From table 170 a quick back of the envelope calculation reveals that the risk adjusted carry varies considerably over the current VIX futures curve. It’s high and positive for the front contract, a little lower for the second, and then goes negative over the next few expiries. Interesting patterns like this are common in VIX futures.

This suggests that if we were only trading carry then we should probably hold the December 2022 contract which has the largest absolute value for the carry forecast. In that case we would be short, since the carry forecast is negative.

But we can’t ignore trend entirely. Assuming we are trading some variation of strategy eleven, carry and trend, it’s no good having a high carry forecast if trend gives us the opposite signal. That implies that if the trend forecast is short, then we should indeed trade December 2022. But if trend was long, then the front contract would be best since it has the highest positive carry. Ironically, if we did trade the front contract, then we wouldn’t be able to measure the carry of the front contract accurately unless we used the spot price, so the second contract would be a good compromise.

These sorts of calculations get quite complicated rather quickly. Personally, I like to keep things simple and ignore this factor when deciding which contract to hold."

Rob
 
Well it would be handy if someone had written a book that talked about this, or was writing a book that discussed it, that was coming out soon. Then maybe someone would acidentally copy and paste the relevant section. Oh hang on:

Thanks Rob, can't wait to read your new book.
I think I may take the complicated road, since in my case the benefit in the terms of more markets I could trade may be worth it on its own, even without considering the possible performance boost from choosing contracts with best forecasts.

I agree with you: using back-adjusted series for trend signals doesn't make much sense.
What I will probably do is using individual contracts series for signals (and maybe ST vols and correlations) and back-adjusted ones for LT vols and correlations.

As for the front contract carry issue, what I already do with my current system is estimating it through a linear extrapolation of carry signals from the rest of the curve. So, in the VIX example you mentioned in your book, the signal of the front contract would be slightly more negative than the second contract, which I think makes sense. In the Robeco paper I mentioned in the previous post, they do the same thing using a piecewise cubic interpolation method, which in theory could be more accurate, but I preferred the linear one to avoid extreme values with "weird" curves.
 
We previously communicated a roll-out schedule for merging products currently listed on exchange names DTB and SOFFEX into a single exchange named EUREX.

Please note we are delaying the merger roll-out schedule.

We will communicate new dates for the remaining products in the coming week.
 
We previously communicated a roll-out schedule for merging products currently listed on exchange names DTB and SOFFEX into a single exchange named EUREX.

Please note we are delaying the merger roll-out schedule.

We will communicate new dates for the remaining products in the coming week.
I received the same message from IBKR. My guess is that they want to avoid having to deal with bugs (a.k.a. unintended features) on their July 4th National Holiday.
 
Anyone knows why right now (July 5th, 6pm ET) for most agricultural futures on CME IB shows the close price from July 1st even if we already have the closing price of July 5?
That price is propagated via the API, so if I make a reqMktData call to get close or marketPrice, I would get that stale price.
 

Attachments

  • screenshot.png
    screenshot.png
    81.7 KB · Views: 20
Beg to differ with those who beg to differ about trading other contracts besides current front one.

Seriously?

Trade a crude contract with volume of 7,600 compared to front month of 121,000. Nevermind those that have even less.
 
Beg to differ with those who beg to differ about trading other contracts besides current front one.

Seriously?

Trade a crude contract with volume of 7,600 compared to front month of 121,000. Nevermind those that have even less.
Beg to differ (it's going recursive). Unless you are AHL, 7k contracts are more than enough. Given my account size, I will never hold more than 4/5 contracts (I guess you are referring to the micro). We have multi billion dollar ctas who (claim to) trade cheese and I should be worried of trading a contract where my max position is 0.05% of daily turnover?
 
Back
Top