• If this is your first visit, you will have to register before you can post. To view messages, please scroll below and select the forum that you would like to visits. Questions? Be sure to check out the Forum FAQ.

Announcement

Collapse
No announcement yet.

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 Aporshnev, Today, 04:31 PM
        1 response
        4 views
        0 likes
        Last Post NinjaTrader_ShawnB  
        Started by tradykat, Yesterday, 05:09 PM
        7 responses
        35 views
        0 likes
        Last Post NT-Roland  
        Started by PLeary, Today, 03:09 PM
        1 response
        19 views
        0 likes
        Last Post NinjaTrader_Manfred  
        Started by msutfin, Today, 02:50 PM
        4 responses
        11 views
        0 likes
        Last Post msutfin
        by msutfin
         
        Started by AndreaBhs, Today, 01:57 PM
        4 responses
        21 views
        0 likes
        Last Post AndreaBhs  
        Working...
        X