I thought i would provide an update as to the outcome of the strategy i was developing. Basically, i developed a strategy with the following requirements:
1. strategy scans the full russel 1000 daily for signals
2. strategy takes buy signals off daily bars, and holds positoins for multiple days
3. strategy uses minute bars for exit signal processing
4. strategy requires about 55 day bars history to process correctly
I was able to create a strategy that worked functionally. I could load the ticker list from a file, add the minute and day bars manually, and manage a aggregate account balance for the entire portfolio of open positions. Functionally, everything worked fine.
Performance wise, i do not believe it would have presented much of a problem to process minute bars, even for the full 1000 instruments.
BUT, unfortunately, the strategy does not work properly when executed against all 1000 instruments. NT appears to load too much data into memory, and it eventually freezes before completing initialization. Basically, it uses up about 1.5 gigs of memory and then fails.
Now, this failure is happening in the backtest, i dont know yet if the same would happen during live testing, but i assume so. I am only attempting to back test about two months of data. I assume it is the minute data which is killing the system, which is unfortunate given that i really don't need any minute history since it is just used to exit the position.
If anyone can answer a questions about how NinjaTrader functions when running live -- is it going to aggregate and store in memory every piece of price info it receives? Or does it possibly flush/release the memory after the price data is beyond the horizon of the strategy?
I am currently in the process of determining where the break point is, in terms of number of instruments it can support. It actually fails during the backfilling of historic data, so I am holding out some minor hope that it will not act in the same way when running the strategy live.
Thanks,
Brandon

Comment