This of course relates to "gaming" the CME ES and NQ futures markets which are the most liquid in the world. Crazy as this sounds, but I actually had a dream about this. How best to track performance ? There are so many metrics ......and it gets somewhat crazy... 1) Net ticks over time...average ticks per day, per week, etc., etc. 2) MFE/MAE (Maximum favorable Excursion, Max adverse excursion) What else should be tracked ? The goal here is to optimize the algo based on performance.
Range vs time before entrance Range vs volume before entrance MFE/MAE vs time MFE/MAE vs trade quantity/volume Entrance price as % from daily low or high Entrance price in relation to current day's open and gbx high/low Entrance price in relation to previous day's ohlc
I don't see how those numbers can help you optimize performance except for MFE/MAE? But if you want to track performance - you should compare points extracted versus points offered.
Depends if we're talking the objective function or the input parameters of the algo. +1 These are great and that still have some small alpha (whether enough to satisfy your trading objectives is entirely another matter). For the objective to optimize, Sharpe ratio tends to do well, although you might wish to pay attention to market beta too. Equity algos love going long.
Up is a prevailing direction in the market, so almost any "random research" would give you a strong long bias. If your dataset is biased to the recent 10 years, it's even more so (heck, there were stretches when SPX was posting a Sharpe of 3).
Definitely a long bias in the indexes over the long haul because they just keep replacing the dogs with rising stars. I guess it is all relative to the time frame one's systems are trading.
Yep...as part of my research platform I wrote a random trade generator which can backtest against any time frame with number of trades and symbol collection configurable. What I do is use the same exit criteria I will use for my initial strategy backtesting. For example, I might run 5,000 random trade backtests against a slice of data and select 150 trades randomly for each backtest and can see that only 4% of the runs have a 70% win rate or better. Then let's say I backtest a strategy with the same exit criteria over the same slice of data and exit criteria and it has a win rate of 71%. In this case I can say that the strategy entry criteria beats random entry 96% of the time. This technique is very useful in testing strategies over data that exhibits a strong market tendency.
You don't really have to go through all of that, you know. Simply take the backtest sample, exclude your trades (under assumptions that both samples have some meat to them) and look if the strategy results (e.g. mean) are statistically significant. Then you could apply the two sample T test or the Wilcoxon rank sum test - both are nice if normality cannot be assumed. E.g. let's assume your targets are unit (1, 0, -1). If your backtest shows pnl = target * returns, you can create a subset xnl = returns[ target == 0] and run them through a two sample t-test. PS. of course, beware of the family-wise errors if you are doing any sort of "extensive studies"
Index rotation is a performance-neutral event by definition. The index manager "sells-out" of the stocks and replaces them with new ones at the market prices. PS. Granted, because of the index rotation you will see some correlation to the momentum factor, but it has zero "alpha" vs the component stocks. PPS. If anything, index rotation has (more like "had") alpha with respect to the stocks that are being added or dropped, but that game is so crowded these days