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 values in strategy

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

    Indicator values in strategy

    Hello, I'm trying to access my custom indicator's value like below. It only works when I call through a new instance but throws an exception when calling through a variable:

    Strategy 'MyCustomStrategy': Error on calling 'OnBarUpdate' method on bar 16269: You are accessing an index with a value that is invalid since it is out-of-range. I.E. accessing a series [barsAgo] with a value of 5 when there are only 4 bars on the chart.
    Code:
    public class MyCustomStrategy : Strategy
    {
    
    		private MG_BollingerBounce bbIndy;
    		
    
    		protected override void OnStateChange()
    		{
    			if (State == State.SetDefaults)
    			{
    				... etc ...
    			}
    			else if (State == State.Configure)
    			{
    				bbIndy = new MG_BollingerBounce();	
    			}
    		}
    
    		protected override void OnBarUpdate()
    		{
    			
    			if(MG_BollingerBounce()[0] == 1) { ... works .... }
     
                            if(indy[0] == 1) { ... throws exception ... }
    
                    }

    #2
    Hello,

    Thank you for the question.

    This would be because you are creating a new instance in this case.

    The new keyword would not be needed for an indicator in NinjaTrader. If you think of a indicator being a Method rather than a type, it is easier to see the structure of how indicators work.

    you would only need to remove the new keyword, additionally I would suggest putting the indicator in DataLoaded or Historical rather than Configure.

    Code:
    else if (State == State.Historical)
    {
    	bbIndy = MG_BollingerBounce();	
    }
    I look forward to being of further assistance.
    JesseNinjaTrader Customer Service

    Comment


      #3
      if(indy[0] == 1) { ... throws exception ... }
      What object is indy?

      Comment


        #4
        Sorry, that's the bbIndy variable, I misspelled when posting. Jesse's advice helped me get it working.

        Comment

        Latest Posts

        Collapse

        Topics Statistics Last Post
        Started by Shansen, 08-30-2019, 10:18 PM
        24 responses
        942 views
        0 likes
        Last Post spwizard  
        Started by Max238, Today, 01:28 AM
        0 responses
        9 views
        0 likes
        Last Post Max238
        by Max238
         
        Started by rocketman7, Today, 01:00 AM
        0 responses
        4 views
        0 likes
        Last Post rocketman7  
        Started by wzgy0920, 04-20-2024, 06:09 PM
        2 responses
        28 views
        0 likes
        Last Post wzgy0920  
        Started by wzgy0920, 02-22-2024, 01:11 AM
        5 responses
        33 views
        0 likes
        Last Post wzgy0920  
        Working...
        X