Welcome to NexusFi: the best trading community on the planet, with over 150,000 members Sign Up Now for Free
Genuine reviews from real traders, not fake reviews from stealth vendors
Quality education from leading professional traders
We are a friendly, helpful, and positive community
We do not tolerate rude behavior, trolling, or vendors advertising in posts
We are here to help, just let us know what you need
You'll need to register in order to view the content of the threads and start contributing to our community. It's free for basic access, or support us by becoming an Elite Member -- see if you qualify for a discount below.
-- Big Mike, Site Administrator
(If you already have an account, login at the top of the page)
There is a thread on the Ninjatrader forums about problems people are having with the DTNIQ datafeed: connection lost, Ninjatrader freezing, etc. So going to DTNIQ is not the greatest idea right now.
I am not sure what you mean about bid/ask data in Ninjatrader 7. All of the GOMCD indicators work fine.
Indicators that use Level 2 data from OnMarketDepth() store the data in lists. In NT6.5 you can insert rows into a list without having previously explicitly created those rows. In NT7, if you try to insert a row into a position number higher than the row.Count (the number of rows in the list), or if you try to read data from such a row, you will get a runtime error.
Adding a simple one shot routine to create the required number of rows solves the problem. I posted a code sample:
This seems to work pretty good. Try it and let me know how it works for you!
I recommend that you also add error traps to the other major modules of your program, including OnBarUpdate() and any custom Plot() methods you have added. If any methods other …
Can you help answer these questions from other members on NexusFi?
From what I see in Fulcrum Trader's youtube videos, he is using Investor RT for charting and Ninja for trade exectuions & the DOM. This is exactly what I do with Tradestation. Tradestation sucks for executions, I've ran some automated trading on both and I get 2-3 ticks slippage on tradestation and on Ninja I get zero. This is trading CL during liquid hours using stop market orders. So I have no confidence in tradestation. I love the ininja dom and will only execute trades with ninja. So if investor RT crashes or anything else, you can just restart it and backfill the historical CD data that was missing. With GOM CD, I do not believe this is possible.
With NT 7, I'm not sure you can use historical bid/ask data and backfill it. If this is not correct I'd love to know because that would remove any advantage of investor RT. I will ask in the GOM thread.
You cannot recover historical bid ask data from a data provider but you can record it locally. Then you will have it available for future use.
To record bid ask data you need to have the GomRecorderIndicator running, with the Write Data parameter set to true. You also need to have previously set up a folder called GomFolder in which the data will be stored, and a Windows Environment Variable (an OS setting) containing the path to the GomFolder.
You need to have a separate GomRecorder running for each instrument for which you wish to record bid ask data.
The GomRecorder Indicator writes the bid ask data to a file in the GomFolder, and the other Gom indicators, which are subclasses of GomRecorder, use it to recover the data from the GomFolder. (Since the other indicators are subclasses of the GomRecorder they also allow you to record the data by setting their Write Data parameter to True, without having to run a separate instance of GomRecorder.)
So, for those time periods when you are connected to a data feed and meet the other conditions above, you will have historical bid ask data. There is a thread explaining this on the Ninjatrader forums, search for GOMCD. I think the thread is called Buy/Sell volume.
It's a little awkward but once it is set up, it works very well.
Mine keeps having problems recording, I'll reread the directions and try again. frustrating as heck when it doesn't record properly and for $x per month i prefer to avoid the hassle!
A few days ago I posted an OnMarketDepth() module modified to work with Ninatrader 7. Please note the correction below. There was one line where I was mistakenly casting e.price as an integer. That causes a lot of problems for instruments whose prices have digits after the decimal points so please don't do it, Putting that in there was a mistake. Sorry for any inconvenience.
Took me a while to notice it because I was doing all my testing on an instrument that actually does have integer pricing.
Thanks for that post. I will look into it further and see if I can get it to work in NT7. What kind of performance problems: Does it crash completely? Use too many resources? etc.
The main reason there is less code is that this only accumulates the total depth and does not keep track of what is going on at each level.
Apparently IQfeed (and possibly others) now provide 24 hours historic bid ask data. This makes a huge difference to approaches that rely on vol@bid/ask to guage order flow. It is simply not robust to rely on 24/7 availability of the PC collecting the data. Hopefully we are coming to an age where this sort of analysis can be done much more painlessly. Of course you need tools that can read this and the ability to build a bar tick by tick even from historic data. I hope NT 7.0 doesn't drop the ball on this.
NT7 did drop the ball. Completely. NT7 doesn't store the bid/ask with the data. You can get bid/ask but it's not synchronized with the data.
i'm currently using investor RT for my volume work. If you look at its data format you'll see bid & ask on each line of data. NT doesn't do this and the bid/ask information is lost.