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 Geovanny Suaza, 02-11-2026, 06:32 PM
          0 responses
          574 views
          0 likes
          Last Post Geovanny Suaza  
          Started by Geovanny Suaza, 02-11-2026, 05:51 PM
          0 responses
          333 views
          1 like
          Last Post Geovanny Suaza  
          Started by Mindset, 02-09-2026, 11:44 AM
          0 responses
          101 views
          0 likes
          Last Post Mindset
          by Mindset
           
          Started by Geovanny Suaza, 02-02-2026, 12:30 PM
          0 responses
          553 views
          1 like
          Last Post Geovanny Suaza  
          Started by RFrosty, 01-28-2026, 06:49 PM
          0 responses
          551 views
          1 like
          Last Post RFrosty
          by RFrosty
           
          Working...
          X