• 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 GregoryBaskin, Today, 11:25 AM
        0 responses
        2 views
        0 likes
        Last Post GregoryBaskin  
        Started by Johnny Santiago, Today, 11:02 AM
        1 response
        6 views
        0 likes
        Last Post NinjaTrader_PatrickG  
        Started by Newtrader101, Today, 11:14 AM
        0 responses
        1 view
        0 likes
        Last Post Newtrader101  
        Started by morrnel, Today, 09:40 AM
        3 responses
        13 views
        0 likes
        Last Post NinjaTrader_SergeyS  
        Started by Grantx, Today, 08:22 AM
        3 responses
        13 views
        0 likes
        Last Post NinjaTrader_Jim  
        Working...
        X