Announcement

Collapse

Looking for a User App or Add-On built by the NinjaTrader community?

Visit NinjaTrader EcoSystem and our free User App Share!

Have a question for the NinjaScript developer community? Open a new thread in our NinjaScript File Sharing Discussion Forum!
See more
See less

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 cls71, Today, 04:45 AM
          0 responses
          1 view
          0 likes
          Last Post cls71
          by cls71
           
          Started by mjairg, 07-20-2023, 11:57 PM
          3 responses
          213 views
          1 like
          Last Post PaulMohn  
          Started by TheWhiteDragon, 01-21-2019, 12:44 PM
          4 responses
          544 views
          0 likes
          Last Post PaulMohn  
          Started by GLFX005, Today, 03:23 AM
          0 responses
          3 views
          0 likes
          Last Post GLFX005
          by GLFX005
           
          Started by XXtrader, Yesterday, 11:30 PM
          2 responses
          12 views
          0 likes
          Last Post XXtrader  
          Working...
          X