NexusFi: Find Your Edge


Home Menu

 





Using Ninja Trader as a Development Tool


Discussion in NinjaTrader

Updated
      Top Posters
    1. looks_one NJAMC with 3 posts (1 thanks)
    2. looks_two MrYou with 2 posts (1 thanks)
    3. looks_3 MWinfrey with 1 posts (1 thanks)
    4. looks_4 habibalex with 1 posts (0 thanks)
      Best Posters
    1. looks_one sdruley with 3 thanks per post
    2. looks_two MWinfrey with 1 thanks per post
    3. looks_3 MrYou with 0.5 thanks per post
    4. looks_4 NJAMC with 0.3 thanks per post
    1. trending_up 2,055 views
    2. thumb_up 6 thanks given
    3. group 4 followers
    1. forum 8 posts
    2. attach_file 0 attachments




 
Search this Thread

Using Ninja Trader as a Development Tool

  #1 (permalink)
 
sdruley's Avatar
 sdruley 
Hickory, NC
 
Experience: None
Platform: Ninja Trader
Trading: Futures
Posts: 2 since Oct 2013
Thanks Given: 0
Thanks Received: 1

Fellow Traders,

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?

Started this thread Reply With Quote
Thanked by:

Can you help answer these questions
from other members on NexusFi?
NT7 Indicator Script Troubleshooting - Camarilla Pivots
NinjaTrader
MC PL editor upgrade
MultiCharts
Cheap historycal L1 data for stocks
Stocks and ETFs
What broker to use for trading palladium futures
Commodities
How to apply profiles
Traders Hideout
 
  #3 (permalink)
 
MWinfrey's Avatar
 MWinfrey 
Lubbock TX
 
Experience: Intermediate
Platform: NinjaTrader
Broker: Stage 5 Trading
Trading: CL
Posts: 1,878 since Jul 2009
Thanks Given: 1,450
Thanks Received: 3,335



sdruley View Post
Fellow Traders,

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?

@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.

Reply With Quote
Thanked by:
  #4 (permalink)
 
NJAMC's Avatar
 NJAMC 
Atkinson, NH USA
Market Wizard
 
Experience: Intermediate
Platform: NinjaTrader 8/TensorFlow
Broker: NinjaTrader Brokerage
Trading: Futures, CL, ES, ZB
Posts: 1,970 since Dec 2010
Thanks Given: 3,037
Thanks Received: 2,395


sdruley View Post
Fellow Traders,

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?

Hi @sdruley,

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.

Nil per os
-NJAMC [Generic Programmer]

LOM WIKI: NT-Local-Order-Manager-LOM-Guide
Artificial Bee Colony Optimization
Visit my NexusFi Trade Journal Reply With Quote
  #5 (permalink)
 
NJAMC's Avatar
 NJAMC 
Atkinson, NH USA
Market Wizard
 
Experience: Intermediate
Platform: NinjaTrader 8/TensorFlow
Broker: NinjaTrader Brokerage
Trading: Futures, CL, ES, ZB
Posts: 1,970 since Dec 2010
Thanks Given: 3,037
Thanks Received: 2,395

@Big Mike,

This thread might fit better under NT programming.

Nil per os
-NJAMC [Generic Programmer]

LOM WIKI: NT-Local-Order-Manager-LOM-Guide
Artificial Bee Colony Optimization
Visit my NexusFi Trade Journal Reply With Quote
  #6 (permalink)
 
MrYou's Avatar
 MrYou 
NC, USA
 
Experience: None
Platform: None Yet
Trading: Guitar
Posts: 403 since Jun 2011
Thanks Given: 618
Thanks Received: 196


sdruley View Post
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.

Is it not possible or desirable to:
  • Port your code to a NinjaScript (C#) indicator.
  • 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.

Reply With Quote
Thanked by:
  #7 (permalink)
 
NJAMC's Avatar
 NJAMC 
Atkinson, NH USA
Market Wizard
 
Experience: Intermediate
Platform: NinjaTrader 8/TensorFlow
Broker: NinjaTrader Brokerage
Trading: Futures, CL, ES, ZB
Posts: 1,970 since Dec 2010
Thanks Given: 3,037
Thanks Received: 2,395


MrYou View Post
Is it not possible or desirable to:
  • Port your code to a NinjaScript (C#) indicator.
  • 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.

That is how I would approach the problem as well.

Nil per os
-NJAMC [Generic Programmer]

LOM WIKI: NT-Local-Order-Manager-LOM-Guide
Artificial Bee Colony Optimization
Visit my NexusFi Trade Journal Reply With Quote
Thanked by:
  #8 (permalink)
 
MrYou's Avatar
 MrYou 
NC, USA
 
Experience: None
Platform: None Yet
Trading: Guitar
Posts: 403 since Jun 2011
Thanks Given: 618
Thanks Received: 196


sdruley View Post
CAN NINJA TRADER BE MODIFIED TO PLAY BACK SELECTED DATA IN A BATCH PROCESS? IF SO, THEN WHAT ARE THE NEXT STEPS?

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.

Reply With Quote
  #9 (permalink)
habibalex
pasadena
 
Posts: 6 since Feb 2013
Thanks Given: 3
Thanks Received: 2

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

Reply With Quote




Last Updated on October 29, 2013


© 2024 NexusFi™, s.a., All Rights Reserved.
Av Ricardo J. Alfaro, Century Tower, Panama City, Panama, Ph: +507 833-9432 (Panama and Intl), +1 888-312-3001 (USA and Canada)
All information is for educational use only and is not investment advice. There is a substantial risk of loss in trading commodity futures, stocks, options and foreign exchange products. Past performance is not indicative of future results.
About Us - Contact Us - Site Rules, Acceptable Use, and Terms and Conditions - Privacy Policy - Downloads - Top
no new posts