Happy birthday Rob, best wishes! Yeah, adding new contracts is a lot of tedious work in my system too, probably no matter how you write that code, there's just a lot of things to do for each contract and then multiply it by 70+! Btw, with the new 100 contracts of minimum average daily volume, looks like mini-Copper (QC) is out, in your table it has only 54 contracts ? If I check CME, the most liquid expiration has between 100 and 400 daily volume, my system can probably hold up to 3 of these contracts (it most likely wouldn't buy all 3 on the same day but it might)., that means I'm risking to be up to 3% of daily trading volume.. Not sure how bad it is for such small orders, but I guess it's not good ?
That's a good spot, thanks I'd missed that. Guess I'll be taking Copper out of the list of substitutes. For the record the others are: NYMEX MINY Light Sweet Crude Oil NYMEX MINY Natural Gas Index E-Micro Gold Mini KOSPI200 Index Micro E-Mini Nasdaq-100 Index Micro E-Mini S&P 500 Stock Price Index ... which I've doubled checked and all look fine. (Was a mistake to say performance was good. Dropped over 2% yesterday!) GAT
It will: on the days you roll over and have a maximum position size. Don't forget Murphy's law: anything that can go wrong, will go wrong.
Of course I did not stop reading and I saw that 0.1. But Rob, "defaults" does not mean that is what is used in live trading.
True but almost all the defaults are the ones I use: if I don't use them why would I recommend it? GAT
Agree. But even if I buy 3 contracts in something that has only 100 daily volume, why exactly is it bad., I guess because I'm risking to get a really bad execution? I mean it's not the same problem as when a big institution is trading 3% out of 3 million contracts daily volume and therefore can move the whole world market in that commodity.. Probably the biggest worry in my case would be to get swindled by an HFT or another market maker because there's not enough competition in such a thin market and a single player can control the whole order-book... Btw, yeah, today seems to be one of these crazy days, the futures system is loosing, S&P is down by a lot too.. Even Bitcoin and gold are down
FWIW the reason I don't trade very low volume contracts despite my retail size is because I fear liquidity drying up completely when markets dislocate and everyone trying to rush for the same exit. Deep liquid markets also tend to dry up in such situations but they are more likely to have more diversification in terms of market views and trading goals so less likely to be all one way in times of crisis. I haven't scientifically tested this hypothesis but until I can firmly reject it I am not prepared to take the risk.
Hi all, Incredible thread you have here! I have read most of it during the last days and it has been really helpful, thanks! I'm a huge fan of Rob's work since I read Systematic Trading 3 years ago. I was head of a Quantitative Trading desk in the Proprietary Trading division of a bank back then and we redesigned all our strategies after I read Rob's book (increased diversification, avoid overfit, continuous signals...). We had trend following and carry rules, very similar to what Rob posted in the blog, but also we changed other type of strategies to fit into the framework. We had different types of cointegration strategies (intermarket and calendar spreads and triplets) and what we called "value" strategies (forecasts based in macro/econometric models). Also, we used a modified version of HRP to compute portfolio weights. I changed jobs a while back and in december I started to develop a similar system for trading my own money. Most of my problems have been related to get market data at a reasonable price. As I still work in a bank (but not directly in the trading desk), I have been categorized as professional investor and market data is ten times more expensive than what it costs to individual accounts. I hope I will be able to share some research once I have my system in a good status! Thanks, Cholo
@globalarbtrader I have one question on targeting risk. You said your risk target (volatility normalization) is 25% per instrument and your system checks positions every hour. Do you have a buffer of X% when you change position size of an instrument? Let's say: if (instrument_risk_target >=30 OR instrument_risk_target<=20) { change position size to target risk of 25% } This can be quite difficult with futures as they have high notional value, one solution is using micro futures. Costs can also be high if you often do this with many instruments...
I have a buffer, discussed already, but it doesn't work exactly like that (I assume what you mean, which you haven't written, as that I back out the expected risk for a given position and then work out if that is different from the target risk). For starters, the target risk will vary depending on the forecast, and won't be exactly 25% because of the diversification multiplier. What I actually do is compute a target position to achieve the required risk given forecasts, and then buffer around that position in position units; but the buffer is 10% of the position I'd have with an average forecast so it's effectively a buffer that's a fixed amount of risk: eg with 25% risk it would be effectively 22.5 - 27.5%. Buffers are calculated with decimal places and then rounded to nearest whole contract. For example: Code: Optimal vs actual current optimal breaks medium_speed_TF_carry SMI 2.0 1.614/1.725 False medium_speed_TF_carry SOYBEAN 2.0 2.032/2.335 False medium_speed_TF_carry V2X -4.0 -4.118/-3.217 False medium_speed_TF_carry VIX -1.0 -0.627/-0.538 False medium_speed_TF_carry WHEAT 1.0 0.931/1.117 False medium_speed_TF_carry BITCOIN 1.0 0.157/0.783 False I'm well aware of the issues with notional size and costs I've written several blog posts and book chapters on the subject... My portfolio is reasonably sized but actually I just introduced micro futures to get more granularity anyway (before when I had looked at them, the liquidity wasn't sufficient). GAT