No announcement yet.

Partner 728x90


How to access Level II depth-of-market data with an IB data feed...

  • Filter
  • Time
  • Show
Clear All
new posts

    How to access Level II depth-of-market data with an IB data feed...

    Hello awesome NinjaTrader gurus!

    I have an Interactive Brokers account with a working real-time data feed connected to NT8.

    In the IB software I'm able to see the level II data fine when I click a US stock equity, but cannot see any information in the 'Level II' window of NT8.

    NT8 does display the real-time stock price action but the 'Level II' window is always blank and the SuperDOM window only has one depth to the bid and ask columns. (When I disconnect the IB data feed and select simulated data feed both of these windows come to life with full depth-of-market data.

    What can I do to correct this?

    The behavior you're describing in the SuperDOM is expected. Level II data for equities cannot be displayed in the SuperDOM. Please see the note on this page (page below is for NinjaTrader 8, but the same is expected and true in NinjaTrader 7):

    So I may accurately assist you, please answer all of the following questions:
    • What version of NinjaTrader are you using? Please provide the entire version number. This can be found under Help -> About (Example: 7.0.1000.? or 8.0.?.?)
    • What version of TWS are you using?
    • What instrument are you viewing in the Level II window? For example, AAPL
    • Do you receive an error on screen? Are there errors on the Log tab of the Control Center? If so, what do these errors report?
    Patrick G.NinjaTrader Customer Service


      So if I understand correctly the SuperDOM should remain 'flat' (without depth of market info on US equities) but the 'Level II' window should display data?

      Here is my info
      - NT8 version: 64-bit
      - TWS version: TWS Workstation 973
      - Instruments that fail to display level II data: AAPL, AMD, MSFT, BABA, IPHY and many more!
      - No errors that I recall in the NT8 log, but I can double check TWS if there is anything.

      On IB I have purchased the real-time data for US equities (around $4.50 per month I seem to recall) and as I've mentioned in first post I do get the Level II bid / ask data in TWS but not in the 'Level II' window of NT8.

      Could it be I need to purchase a more expensive 'Level II' data package from IB so it can export its level II data from TWS to NT8?

      Thanks for the help! I really need Level II for momentum trading!



        Yes, I would expect Level II data for equities to appear in the Level II window.

        You would definitely need a level II data subscription on your Interactive Brokers account for level II data to appear in NinjaTrader 8. I would expect built in instruments like AAPL to work when you have to appropriate subscriptions.

        I am not quite sure if the data subscriptions to get things functional in Trader Workstation are different than what they would be for use in NinjaTrader. Before actually changing your subscriptions, please reach out to Interactive Brokers and confirm what you would need in order to receive level II data in a third party API application (NinjaTrader). Please let me know what IB support reports.
        Patrick G.NinjaTrader Customer Service


          Ok thanks for checking on this.

          I'll discuss this issue with IB and will let you know what they recommend.


            FYI... post for IB tech support... hopefully they will find what is wrong!


            Hello awesome IB tech support people!

            I have a funded IB account and paid for a real-time US stock equities data feed.

            I see the 'Level II' depth-of-market data for US equities in IB Workbench but I cannot see the same information in my NinjaTrader8 'Level II' window.

            First working with the NinjaTrader tech specialists, they told me that if I see the data in IB workbench that I should also see the data in NinjaTrader8 but after hours of trying everything that I could I'm still not able to see Level II data in NinjaTrader 8.

            I have purchased the $4.50 package for real-time data streaming and I do see the data in IB Workbench. Could it be that I need to purchase another package so the Level II data is made available to an external tool like NinjaTrader8 via your Workbench API?

            Any help would be greatly appreciated! I badly need Level II data for momentum trading!!


            P.S. If you need more info my post on the NinjaTrader8 forums is at


              I still haven't heard from IB... I don't know what's wrong.


                As a Interactive Brokers client, you should have access to their chat or phone support. I am not sure what method you used, but I'd suggest trying a different avenue to get the answer we would need to continue.
                Patrick G.NinjaTrader Customer Service


                  Hello fabulous NinjaTrader support staff!

                  Well I've been spending a week or so coding my own Level 2 predictor indicator and it works super well!

                  Unfortunately I am still not able to predict which direction the next few ticks with go toward because I have no programmatic access to all the L2 data my data subscriptions give me from my broker (Interactive Brokers with the added NASDAQ L2 data stream)

                  I have spend several tech support sessions with the competent IB tech support staff and they are basically saying that "If I see L2 data in TWS then I should see the same L2 data in NT8's L2 window)

                  Take a look at the attached clip that shows the differences between the L2 windows of TWS versus NT8 on the 'AMD' stock: As you can see NT8 only shows NASDAQ L2 data while TWS also shows many 'faster-moving' market makers (that usually influence the stock much more than NASDAQ!)

                  This missing data is super important! After thorough testing I've determined that my predictions based on NASDAQ L2 data are off simply because many other faster-moving market makers like DRTEDGE, EDGEA, IEX, NYSENAT, PSX and BYX are typically closer to the bid/ask price and are the ones that usually influence the price actions over the next few ticks.

                  The second clip is an output of my new L2 predictor indicator... The sequence of white lines predict at what price level a stocks is likely to trend toward assuming my L2 data set contains all market makers closer to bid/ask price and volume is reasonably close to previous volume average.

                  The problem as I see it: it's currently impossible to properly predict the price action of a US equity if NT8 only imports L2 data from NASDAQ. We'll need the other faster-moving market makers that TWS displays as well!

                  As a software engineer, I think this problem might be easy to fix... namely NT8 must also 'ask' TWS for its L2 data from the previously-mentioned 'smaller' market makers. (Or perhaps avoid filtering the L2 data to only leave the major market makers like NASDAQ)

                  This problem is preventing me from using this amazing L2 data predictor I've created. Some questions:
                  - Are we in agreement that this is an NT8 issue (not related to things like TWS export rights or what subscriptions I have)?
                  - Is there a workaround that I can code to somehow be able to get to the more-complete L2 data TWS shows?
                  - If this is a NT8 bug may I obtain an ETA on when I can be fixed?

                  Thanks again for the fabulous software and (equally important) amazing tech support!


                  P.S. Apology for posting this in an NT7 forum area. (My original post should have been in NT8 area but as this pretains to my previous thread I felt it better to not start a new thread)
                  Attached Files
                  Last edited by JPPoulin; 11-19-2019, 01:52 PM. Reason: Typo


                    I moved your thread to the NinjaTrader 8 forums.

                    After further research, I've discovered that this is a known limitation of the NinjaTrader platform when using Interactive Brokers as your source of data. Only the primary market maker (in this case NASDAQ) can be pulled into the platform with the current API configuration.

                    There is also a known limitation of NinjaTrader that even if you received multiple market makers (like Kinetick can provide, for example), these multiple market maker's level II data isn't combined as one would expect.

                    Both of these items obviously have room for improvement in the platform. I have submitted these as a feature requests to the Development Team. The internal tracking number for your feature request are:
                    • SFT-4414
                    • SFT-4415
                    Please reference this internal tracking number if you ever have questions regarding this feature request.

                    When a feature request is implemented, you'll find it in the release notes:

                    Last edited by NinjaTrader_PatrickG; 12-04-2019, 03:05 PM.
                    Patrick G.NinjaTrader Customer Service


                      Thanks very much Patrick for the quick and usable response. I'm glad I'm not going crazy over here!

                      Q1: You mention Kinetick can feed NT8 with multiple market makers. Could you expand a little more on how it compares with current L2 feed from IB?

                      Q2: Would switching to a Kinetic L2 feed get me further along for the time being? I don't care if I don't know from which market maker a bid/ask book entry is from... all I really care about are that the first 5 bid/ask entries are the closest to bid/ask price convergence.

                      Q3: If NT8 L2 functionality can't be fixed in the foreseeable future, do you think it's possible for me to create socket code that polls TWS directly for its L2 data? (Any starter code you could provide?)


                        1. I am not sure what other information I could provide other than it does have the capability to view more than one market maker in the Level II window. Here is an example (this data is a little 'thin' as I took the screenshot during pre-market):


                          If you're asking about the quality of the level II data compared to Interactive Brokers, I also do not have any comment - that would be something you would need to test for whatever specification you're seeking.
                        2. You would be able to see the market makers in the Level II window, but you would not be able to utilize this information anywhere else in the NinjaTrader platform
                        3. I believe the short answer here is 'no', however, I am not a NinjaScript programmer. I'd suggest creating a thread on the NinjaTrader 8 NinjaScript sub-forums for confirmation from one of my colleagues on the NinjaScript Team.
                        Patrick G.NinjaTrader Customer Service


                          Hi Patrick, thanks again for your help.

                          You mentioned "You would be able to see the market makers in the Level II window, but you would not be able to utilize this information anywhere else in the NinjaTrader platform"... does that mean that I would not be able to access Kinetick L2 data from NinjaScript? (My current code relies on the IB L2 feed calling my OnMarketDepth() override.)

                          Assuming Kinetick feed does call OnMarketDepth(), it would be worth it for me to give it a try and report my observations here. Could you steer me to the data package you've used for the screenshot you sent?

                          (My current subscription with them is 15 minutes delayed... of course that won't do! I'd love to hear your recommendations on what package I need from them to see if they have more usable L2 data than IB)



                            I'd recommend reaching out to Kinetick directly and also posting your NinjaScript questions in the NinjaScript sub-forums for the best support for these new questions.
                            Patrick G.NinjaTrader Customer Service


                              Yes, I'm doing that already and to obtain non-delayed L2 data in NT8 you need: "To receive real time level II data for equities on the NASDAQ you will need the Market Depth $20, NASDAQ $7, and NASDAQ OpenView $60 subscriptions. Let me know if you would like to add these subscriptions to your account."

                              Is that the data package you used when you sent that pre-market clip this morning? (Did you purchase more to get the non-NASDAQ L2 data?)

                              Could I bother you to send a new L2 clip of stock AMD during regular market hours so I can see what market makers I can expect to see if I go with Kinetick?

                              I'll review the Kinetick subscription and review my impressions on how the L2 data in NT8 compares with IB.


                              Latest Posts


                              Topics Statistics Last Post
                              Started by Trader17, Today, 12:25 PM
                              0 responses
                              Last Post Trader17  
                              Started by Byron22, Today, 12:19 PM
                              0 responses
                              Last Post Byron22
                              by Byron22
                              Started by focus333, Today, 10:48 AM
                              1 response
                              Last Post NinjaTrader_Kate  
                              Started by mohawkTrader, Today, 11:15 AM
                              0 responses
                              Last Post mohawkTrader  
                              Started by JTizz, Today, 10:57 AM
                              4 responses
                              Last Post JTizz
                              by JTizz