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 bortz, 11-06-2023, 08:04 AM
        47 responses
        1,607 views
        0 likes
        Last Post aligator  
        Started by jaybedreamin, Today, 05:56 PM
        0 responses
        9 views
        0 likes
        Last Post jaybedreamin  
        Started by DJ888, 04-16-2024, 06:09 PM
        6 responses
        19 views
        0 likes
        Last Post DJ888
        by DJ888
         
        Started by Jon17, Today, 04:33 PM
        0 responses
        6 views
        0 likes
        Last Post Jon17
        by Jon17
         
        Started by Javierw.ok, Today, 04:12 PM
        0 responses
        16 views
        0 likes
        Last Post Javierw.ok  
        Working...
        X