Announcement

Collapse
No announcement yet.

Partner 728x90

Collapse

Getting daily volume on a 3-minute chart

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

    Getting daily volume on a 3-minute chart

    Hi, I'm trying to plot the relative volume of a stock on a 3-minute chart.

    The calculation's pretty simple. The current value is (today's total volume / (average daily volume * a ratio that changes based on time of day)).

    The ratio's pretty easy to calculate: it evaluates to a number between 0 and 1 based on the time of day, and it plots correctly. The problem is when I try to get the total volume and average daily volume for the stock on each bar. The error message is

    Error on calling 'OnBarUpdate' method for indicator 'RelativeVolume' on bar 0: You are accessing an index with a value that is invalid since its out of range. I.E. accessing a series [barsAgo] with a value of 5 when there are only 4 bars on the chart.

    Even if I strip this thing down to just display the current day's volume, it gives the same error. Here's what that code looks like:

    protected override void Initialize()
    {
    Add(PeriodType.Day, 1);
    Add(new Plot(Color.FromKnownColor(KnownColor.Black), PlotStyle.Line, "Plot0"));
    Overlay = false;
    CalculateOnBarClose = false;
    }

    protected override void OnBarUpdate()
    {
    Plot0.Set(Volumes[1][0]);
    }

    Any ideas what I'm doing wrong?

    #2
    You're likely running into an issue explained in the following forum post from our Tips section:



    Please try adding the following snippet to the beginning of your code in OnBarUpdate()


    if (CurrentBar < 1)
    return;


    You need to ensure you have enough bars on the chart to calculate correctly.
    MatthewNinjaTrader Product Management

    Comment


      #3
      Thanks, that didn't hurt anything but it didn't solve the problem. Perhaps the problem is in the Data Series settings, or I'm using the wrong variable for today's cumulative volume ("Volumes[1][0]"). Any ideas?

      Comment


        #4
        Sorry - if you're using this on a multi series strategy, use the following:

        if (CurrentBars[1] < 1)
        return;

        More information on CurrentBars can be found below:

        MatthewNinjaTrader Product Management

        Comment


          #5
          That did it. Thanks!

          Comment

          Latest Posts

          Collapse

          Topics Statistics Last Post
          Started by cmoran13, 04-16-2026, 01:02 PM
          0 responses
          43 views
          0 likes
          Last Post cmoran13  
          Started by PaulMohn, 04-10-2026, 11:11 AM
          0 responses
          25 views
          0 likes
          Last Post PaulMohn  
          Started by CarlTrading, 03-31-2026, 09:41 PM
          1 response
          162 views
          1 like
          Last Post NinjaTrader_ChelseaB  
          Started by CarlTrading, 04-01-2026, 02:41 AM
          0 responses
          98 views
          1 like
          Last Post CarlTrading  
          Started by CaptainJack, 03-31-2026, 11:44 PM
          0 responses
          158 views
          2 likes
          Last Post CaptainJack  
          Working...
          X