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

Indicator based on an earlier period, rather than current period.

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

    Indicator based on an earlier period, rather than current period.

    I am trying to create an indicator that averages the volume of the first few bars of the day.

    So even though it's 11 AM or 2PM, I want this indicator to still display what the SMA of volume was from the first 10 or so bars, using tick charting.

    Can anyone help?

    Thanks!

    #2
    Hello jasonbradh,

    Thank you for writing in.

    I have created an example below that will plot the SMA of volume over the first 10 bars of a new session. It will continue to plot that last value until the next session occurs again.

    Code:
    private int startBar = 0;
    private int endBar = 0;
    private double lastSMAValue = 0;
    
    protected override void OnBarUpdate()
    {
            // check if the current bar the indicator is evaluating over the first bar of a new session
    	if (Bars.FirstBarOfSession)
    	{
                    // set startBar to CurrentBar and set endBar to CurrentBar + 9, which would be nine bars ahead
                    // CurrentBar is the index of the bar the script is evaluating over
    		startBar = CurrentBar;
    		endBar = CurrentBar + 9;
    	}
    	
            // plot the volume SMA if CurrentBar is more than or equal to startBar and CurrentBar is less than or equal to endBar
    	if (CurrentBar >= startBar && CurrentBar <= endBar)
    	{
    		Value.Set(SMA(Volume, 14)[0]);
                    // set lastSMAValue to the current value of the volume SMA
    		lastSMAValue = SMA(Volume, 14)[0];
    	}
    	
            // if CurrentBar is more than endBar, this means the script is evaluating a bar outside of our range we have set
            // we'll set our plot to lastSMAValue while outside of this range
    	if (CurrentBar > endBar)
    		Value.Set(lastSMAValue);
    }
    Please, let me know if you have any questions on this sample.
    Zachary G.NinjaTrader Customer Service

    Comment


      #3
      It works beautifully. Thank you so much!

      Comment

      Latest Posts

      Collapse

      Topics Statistics Last Post
      Started by aussugardefender, Today, 01:07 AM
      0 responses
      1 view
      0 likes
      Last Post aussugardefender  
      Started by pvincent, 06-23-2022, 12:53 PM
      14 responses
      238 views
      0 likes
      Last Post Nyman
      by Nyman
       
      Started by TraderG23, 12-08-2023, 07:56 AM
      9 responses
      383 views
      1 like
      Last Post Gavini
      by Gavini
       
      Started by oviejo, Today, 12:28 AM
      0 responses
      1 view
      0 likes
      Last Post oviejo
      by oviejo
       
      Started by pechtri, 06-22-2023, 02:31 AM
      10 responses
      125 views
      0 likes
      Last Post Leeroy_Jenkins  
      Working...
      X