- It isn't possible to automatically aggregate multiple strategies into a single portfolio-wide backtest/optimization run and have some sort of super-strategy that handles allocating capital between strategies based on current performance, expected performance, risk levels, market conditions, etc.
- There isn't any built-in support for account management such as obtaining account balances (supposedly in NT7), simulating an account where the cash balance earns interest or has margin, etc.
- In my opinion, none of the "optimize on" selections are good for strategies that need to optimize both returns and risk and where different optimization parameters result in different numbers of trades. A profit factor or 10:1 is great, but if a strategy can only make $10 per year and loses $1, it is not useful, since there are not enough trade signals. Similarly, optimizing on things like cumulated profit ignores drawdown/risk. There should be some built-in way to optimize on something like expectancy or SQN that takes $ earned per day (not per trade) and dampens it based on risk.
- There is no built-in way to backtest what a starting account balance would have grown to over time, since there is no account value access to handle position sizing (even something simple like invest 100% of your current account balance in one strategy for 4 years, but definitely not something more complex where there are multiple strategies at once).
- Especially people who trade longer term (daily/weekly/monthly), it is important to be able to compare a complete portfolio to a buy and hold type index's equity curve, etc.
- Memory usage is much higher and performance is slower than similar tools I've used for large sequences of backtesting/optimization. NT always crashes on long optimizations at about 1.4 GB of memory, even if you have much more. I realize there are some .NET limits, but I believe NT should be much more frugal with memory so it never hits those limits. Performance-wise, I have not profiled the application (I recommend the AQTime tool for that), so I don't know what is making optimizations slower, but my manually coded optimizations can run up to 200X faster, though I'm using native code in a command line application, use multiple threads, and only do calculations for the numbers I personally want. One partial fix would be to include a genetic and/or random sampling optimizer as an option in addition to the brute force one available now, if the optimization can't be sped up and memory-optimized up for NT7.
I realize that some of this can be simulated manually, and in many cases there is sample code available here but it takes manual coding/searching and various hacks to do most of these things. I also know that some of my requests fall outside the current customer base of NinjaTrader, but I'm listing them anyway in case they are useful. Thanks!
Comment