• If this is your first visit, you will have to register before you can post. To view messages, please scroll below and select the forum that you would like to visits. Questions? Be sure to check out the Forum FAQ.

Announcement

Collapse
No announcement yet.

Partner 728x90

Collapse

Session Volume in Ninjascript

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

    Session Volume in Ninjascript

    How do I get/compute the session volume in ninjascript?

    Please see attached for what I am referring to.

    When I open the L2 window in a given session, the number does not start from 0. Where does Ninjatrader get this number and how do I access this from code.

    Thanks
    Attached Files

    #2
    Hello madankumars,

    Thanks for your post and welcome to the NinjaTrader forums.

    You can use the Volume per bar and accumulate the volume over whatever period you prefer. If you want to accumulate over an instruments session (trading hours) you can use the property Bars.IsFirstBarOfSession to reset a variable you create as the accumulator and from then on can add each bars Volume[0] to the variable.

    References:
    http://ninjatrader.com/support/helpG...rofsession.htm
    http://ninjatrader.com/support/helpG...ies_volume.htm
    Paul H.NinjaTrader Customer Service

    Comment


      #3
      I tried what you said but the numbers are not adding up.

      see below for sample code. I compared the output with the NQ Level 2 Window. the number is off by almost 30,000 during the middle of the session. why? the L2 window shows more than what I can get out of the code, starting from IsFirstBarOfSession.



      public class SessionVolume : Indicator
      {
      //class member variable
      private double _volume = 0;

      protected override void OnStateChange()
      {
      if (State == State.SetDefaults)
      {
      Calculate = Calculate.OnBarClose;
      }
      }

      protected override void OnBarUpdate()
      {
      if (Bars.IsFirstBarOfSession)
      {
      _volume = 0;
      }

      _volume += Volume[0];

      Print(_volume);
      }
      }

      Comment


        #4
        Hello madankumars,

        Thanks for your reply.

        Your code appears correct and I see about the same values. I would have expected the values to be closer to the daily volume value shown so we will look closer at this.

        To answer your original question, you can access the same DailyVolume value through OnMarketData(). Here is an example:

        protected override void OnMarketData(MarketDataEventArgs marketDataUpdate)
        {
        if (marketDataUpdate.MarketDataType == Data.MarketDataType.DailyVolume)
        Print ("Daily Volume: "+marketDataUpdate.Volume);
        }

        reference: http://ninjatrader.com/support/helpG...aeventargs.htm
        Paul H.NinjaTrader Customer Service

        Comment

        Latest Posts

        Collapse

        Topics Statistics Last Post
        Started by Emma1, Today, 02:42 PM
        1 response
        15 views
        0 likes
        Last Post NinjaTrader_DrewO  
        Started by fx.practic, Today, 03:10 PM
        1 response
        5 views
        0 likes
        Last Post NinjaTrader_Jesse  
        Started by jertrade, Today, 02:50 PM
        2 responses
        10 views
        0 likes
        Last Post jertrade  
        Started by RedDuke, Today, 01:59 PM
        1 response
        18 views
        0 likes
        Last Post NinjaTrader_Kate  
        Started by MarianApalaghiei, Today, 01:18 PM
        1 response
        15 views
        0 likes
        Last Post NinjaTrader_PatrickG  
        Working...
        X