yes, the initial historical several years I download from BarChart (you can actually get up to 5 downloads for account per day for free, up to 2 years for each contract expiry), e.g. here and switch to "2 years": https://www.barchart.com/futures/quotes/kCk17/price-history/historical
Btw, what about forecast weights, do you also handcraft them for live-trading? These I actually get from pysystemtrade because it incorporates performance and adjusts them for costs during the optimization.. But I don't re-estimate them every time I add a new instrument because they were already calculated with pooling on a large group of instruments..
Yes, I drop rules that are too expensive for a given instrument, then use simple grouped handcrafted weights (simple python script to do this). Rob
Wow, I must be really oldskool: I use the forecast weights which are provided in the tables in Rob's book ("Systematic Trading"). Never recalculated those since starting running live in autumn of 2016.
Just received this from IB: I checked my code and looks like I'm populating the actual exchange instead of just passing "SMART" in the field "contract.Exchange" when submitting futures orders with "ClientSocket.placeOrder(newOrdID, contract, order);" So Yeah.. looks like I'll need to change the exchange field to "EUREX" on all my current contracts that currently have exchange values as 'DTB' or 'SOFFEX', which in my case amounts to this list: And on top of that I'd have to do it on 2 different days.. or I can just put "no-trade state" on Jul 4th and do all at once on Jul 11th, but it's a whole week, so I guess I'd have to do it in 2 stages.. And something tells me that internally IB's soft is a mess, so I can almost certainly predict that it will not go smoothly on their end ohh, more unpaid and unproductive work for which I didn't volunteer
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
But I think almost every product has basically only one liquid contract at a time., So you really don't have any options which expiry you can trade on any given day, almost all liquidity will be in only one contract. There are probably exceptions to that and some instruments might have multiple liquid expirations but I think it's rather exception than the rule. E.g. when I'm configuring my automatic rolls when onboarding new instruments, I often have a hard time picking even a several-week soft-roll period when I can passively roll from one expiry to the next, on some instruments all the volume jumps from one expiry to the next in a matter of days.. That paper might be "too theoretical"..
Really? I beg to differ. Depends on what you call sufficiently liquid. As a rule of thumb I use the following: if a contract has a daily trading volume which is larger than 100 x my maximum position size then it is sufficiently liquid. Most of my instruments have a maximum position size of a couple of contracts. For those is a daily trade volume of 1000 contracts more than plenty.