Announcement

Collapse
No announcement yet.

Partner 728x90

Collapse

Custom Cumulative Delta Indicator: Volume not right in OnMarketData()

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

    Custom Cumulative Delta Indicator: Volume not right in OnMarketData()

    Hi
    I have been trying to write a cumulative delta indicator but the volume i get from the OnMarketUpdate event is much larger than the normal volume as seen in the vol indicator.
    Can somebody help me figure out what i have forgotten or done wrong ? I have tested in Market Replay mode. The symbol i am testing with is /NQ 09-19 5 minute Timeframe.
    My time is set to EST+6.

    I have posted the code below. Thanks in Advance.

    Code:
      
     protected override void OnBarUpdate()
            {
                if(Time[0].Hour == 00 && Time[0].Minute == 05)
                {
                    cumulativeVol = 0;
                }
    
                deltaAsk = 0;
                deltaBid = 0;
            }
    
            protected override void OnMarketData(MarketDataEventArgs marketData)
            {
                if(marketData.Price > 0)
                {
                 if (marketData.Price >= marketData.Ask)
                 {
                     if(marketData.Volume>100)
                        Print(marketData.Volume + " contracts traded at asking price " + marketData.Ask);
                     cumulativeVol += marketData.Volume;
                     deltaAsk += marketData.Volume;
                 }
    
                else if (marketData.Price <= marketData.Bid)
                {
                    if(marketData.Volume>100)
                    Print(marketData.Volume + " Contracts Traded at bidding price " + marketData.Bid);
                    cumulativeVol -= marketData.Volume;
    
                        deltaBid -= marketData.Volume;
                }
                }
                Values[0][0] = deltaAsk;
                Values[1][0] = deltaBid;
                Values[2][0] = cumulativeVol;
            }

    #2
    Hi Again

    Seems this change fixes the issue. At least now the volume between my indicator and the volume indicator are the same.

    Code:
            
    protected override void OnMarketData(MarketDataEventArgs marketData)
            {
    
    [B]if (marketData.MarketDataType == MarketDataType.Last)[/B]
    [B] {[/B]
    
    
    
    
    
                 if (marketData.Price >= marketData.Ask)
                 {
    
                     cumulativeVol += marketData.Volume;
                     deltaAsk += marketData.Volume;
                 }
    
                else if (marketData.Price <= marketData.Bid)
                {
                    cumulativeVol -= marketData.Volume;
    
                        deltaBid -= marketData.Volume;
                }
    
    
    [B]}[/B]
    
                         Values[0][0] = deltaAsk;
                Values[1][0] = deltaBid;
                Values[2][0] = cumulativeVol;
            }

    Comment


      #3
      Hello SuneSorgenfrei,

      I'm glad you were able to resolve the issue.

      Yes, the Volume[0] is last volume only.
      Chelsea B.NinjaTrader Customer Service

      Comment

      Latest Posts

      Collapse

      Topics Statistics Last Post
      Started by Geovanny Suaza, 02-11-2026, 06:32 PM
      0 responses
      649 views
      0 likes
      Last Post Geovanny Suaza  
      Started by Geovanny Suaza, 02-11-2026, 05:51 PM
      0 responses
      370 views
      1 like
      Last Post Geovanny Suaza  
      Started by Mindset, 02-09-2026, 11:44 AM
      0 responses
      109 views
      0 likes
      Last Post Mindset
      by Mindset
       
      Started by Geovanny Suaza, 02-02-2026, 12:30 PM
      0 responses
      573 views
      1 like
      Last Post Geovanny Suaza  
      Started by RFrosty, 01-28-2026, 06:49 PM
      0 responses
      576 views
      1 like
      Last Post RFrosty
      by RFrosty
       
      Working...
      X