I recently have created a new day trading software package called Picasso that is specifically designed for the Emini S&P500. It contains two new areas of mathematics that I have developed that allows the trader to see about 7 seconds beyond the current time plane. The flow chart for the program will be available once I have more posts.
Since the only programming language I know is VBA, this program resides in Excel 2013. In order to accomplish this I had to put the data collection process in one instance of Excel, the real-time optimization engine in a second instance and the main artificial intelligence engine in the third instance. I am running the software on a 32 core workstation.
The difficulty that I am experiencing is I have outrun the reasonable capacity or functionality of what Excel can really do. Some of the instances of Excel will stall on me and I can't get a good reading of performance back from Ninja trader. During part of one day, my system worked long enough to say that for one hour during the trading day my ROI was at a rate of about 70%.
So, my plan is to prove the worth of Picasso so that I can get help from a third party to rewrite Picasso in C+ or some other language. My strategy in proving the worth is to hard wire the incoming data as a constant. In other words, instead of working with live data, as I have been, work with a three week bank of data, which I have in text file format, to play back over and over again. This would demonstrate that Picasso can make a profit during this three week period. Of course, we could repeat this process by looking at other three week periods, if needed. By hardwiring the incoming data through Ninja I can eliminate the instances of Excel and simplify program execution. As well, I will be able to do further development work and see the results instantly.
In order to hard wire the incoming @ES# data I need to know if it is possible to take a 500 MB file of tick values which I generated from dtn.IQ, feed this into Ninja then let Ninja play back this data, when requested on a batch basis. My software includes a separate package (QB64) that allows me to post my trades to Ninja and will give me real-time feedback on profits. The operative question is can Ninja Trader be modified to run in development mode.
By putting Picasso and Ninja into development mode, I can demonstrate, without question, the value of Picasso as an investment toolset. At that point I can get help rewriting the software and begin trading with real money or I can sell the software, as is, to an interested party. Since I have no experience in trading the later option will probably prevail.
CAN NINJA TRADER BE MODIFIED TO PLAY BACK SELECTED DATA IN A BATCH PROCESS? IF SO, THEN WHAT ARE THE NEXT STEPS?
The following 3 users say Thank You to sdruley for this post:
@Fat Tails will probably be a great resource for you here on futures.io (formerly BMT). Because I mentioned him, he will be notified of this thread and most likely reply. Good luck with your endeavor. Sounds interesting. Wish I could be of assistance but it sounds like your effort is above my skill level.
Just thought of a couple more, @NJAMC, @kevinkdog. I'm sure there are others too.
The following user says Thank You to MWinfrey for this post:
Sounds interesting, have to say it isn't clear. I am sure the Flow chart would help. NT can reply data, not sure what your goal is with this data as it might be best to optimize the process internal tot he strategy within NT7. I haven't seen much that isn't possible with NT7, but it is tough to tell.
I don't know if you can PM me the Flow Chart, then I can post it here for others as well.
Create a NinjaScript strategy that uses the indicator to execute trades.
Download ES MarketReplay data from NinjaTrader (for free).
Market Replay ES data.
When you're ready to use a live feed you could then purchase Kinetick or sign-up for a limited time Futures data feed. In the mean time you can go back several months (IIRC) of free Market Replay data.
Moving to C# may be a little intimidating at first, but I'm sure you'll get the hang of it and it will be worth it.
The following user says Thank You to MrYou for this post:
To answer your question directly... NinjaTrader includes a feature called Market Replay. It is included with the free version of NinjaTrader. You may want to use the Market Replay download utility to more easily download multiple days of Market Replay data. I believe its Elite Members only.
I used to have code in excel VBA as well and moved to c#. To make the switch, I needed to get microsoft visual studio. You can attach the ninjatrader process to visual studio to debug your code line by line like you can in the VBA editor. Without it, there is really no good way to debug ninjatrader indicators / strategies.
Run your strategy with ninjatrader's market replay to test whether it works or not. Then do it in their sim account and make sure the stats are similar, and finally then do it live with the smallest # of contracts possible and make sure the stats are similar. Good luck