I’ve been working on a micro-cap strategy using Portfolio123 and I’m almost ready to deploy it live, but before I take the leap, I’d really appreciate your feedback.
Do you see any red flags before going live?
Is there anything obvious I’m missing?
Here is a screenshots of the results. If you need something else, please let me know.
Drawdown is huge in comparison with benchmark...maybe I will try to increase a little bit turnover trying to reduce it and maybe to see if there are other factors that can help to reduce a little bit that drawdown without losing robustness and ARR
Unfortunately this data is not very helpful when trying to find issues with the model.
General comments:
It's not wrong to add an "extra" buy rule like then one you use for Beta1Y, but it is generally recommended to keep stuff like that in the ranking system.
AvgDailyTot(20) can be a poor measure for the liquidity of a stock, I prefer to use MedianDailyTot(120).
Low turnover is a good feature in a stock picking system, but it is a big problem when testing the system. You want to know if your system can pick good stocks, but low turnover means that you don't pick enough stock to tell you if the system works or not. For testing I recommend to "force" the system to sell more, either by change the sell limit or adding nobars>200 as a sell rule. (The rolling screener also works great for this).
Here's a nice stress test: Run your model for the last 10 years (with >100% turnover). Then under "Period and Restrictions", click: "Add from previous runs". Doing this forces your next run to avoid buying any of the stocks from your first run. (After doing this you'll have to lower the sell-limit, since many of your high-ranking stocks now have been removed.) This will test your models ability to keep sorting out "good" from "bad" stocks from what remains. I can be interesting to do many round of this.
I also strongly recommend using the mod(stockid)-method to construct subuniverses, and check that your model works for each of them:
Spread_D(20) < 0.1 means that the spread twenty bars ago was less than a dime. I suggest using LoopMedian("Spread(Ctr)/Close(Ctr)",20) < X, where X is 0.03 or lower.
I also don't think excluding energy and materials is necessarily a good idea. Certainly missing out on all the gold mining stocks lately would have been unfortunate.
With an annual turnover of 38% you will need to test this system on a large number of different start dates. I suggest using the Rolling Tests if you have access to them; if not, I strongly suggest using the rolling screen tests with a long holding period.
Thanks a lot for the feedback guys, that makes perfect sense.
I’ll adjust the spread condition using LoopMedian("Spread(Ctr)/Close(Ctr)", 20) as suggested and test different thresholds like 0.03. Also, I take your point about not excluding energy and materials, the results actually look really strong with them included.
I’ve already tested my strategy using Mod(StockID, 4) to simulate different universes.
I just upgraded to the Ultimate subscription to access the rolling tests, but I’m still not 100% sure how to use them properly. If you have any tips or guidance, I’d really appreciate it.
Sorry for the many question, I’m genuinely eager to learn and get better at this, but the learning curve can be a bit steep in the beginning!