Announcement

Collapse
No announcement yet.

Partner 728x90

Collapse

Fresh eyes needed for rucursive method

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

    Fresh eyes needed for rucursive method

    My coding skills are pretty rusty. Can someone find the error in the recursive method HighIn().

    Code:
    private int firstRun=0;
    
    protected override void OnBarUpdate(){
       if(firstRun<15){
          firstRun++;
       return;
       }
    
       Print(HighIn(3));
    }
    
    private double HighIn(int bars){
       if(bars <= 2){
           return High[bars];
       }
       double value = HighIn(bars--);
       if(value>High[bars]){return value;}else{ return High[bars];}
    }

    #2
    It compiles fine, but crashes NT when I try to run it in the strategy analyzer.

    Comment


      #3
      Hi
      So first and foremost the -- in
      Code:
      bars--
      is not decrementing right away
      Example


      Code:
      int i = 3;
      Console.WriteLine(i); // output: 3
      Console.WriteLine(i--); // output: 3
      Console.WriteLine(i); // output: 2
      So you would need to use --bars

      I would introduce an extra variable though to keep the value of --base to have control and make debugging easier.

      Comment


        #4
        Hello Chippy,

        If the method crashes the platform that means you entered an infinite loop. You would need to use prints to identify what the problem is with the way you have called the method recursively. One problem may be that you are trying to decrement a passed in variable. I am not sure what your goal was with the method to comment on a possible solution however using a Print with the variables you are using should help to identify what the problem is before the crash.

        If possible I would suggest to avoid recursive functions and use a standard finite for loop.

        Please let me know if I can be of additional help.

        JesseNinjaTrader Customer Service

        Comment


          #5
          SuneSorgenfrei..... thank you, that did it. I've spent hours trying to find it. I originally downloaded VS 2022 which NT apparently can't launch so I couldn't debug. I'm currently DL'ing 2019. Stepping through the code would have been a big help.

          Comment


            #6
            Jesse, "print" doesn't help much if it crashes. It was indeed an infinite loop. Simply having the decrement after the variable instead of before was the problem. Credit and thanks to SuneSorgenfrei for finding it.

            Comment

            Latest Posts

            Collapse

            Topics Statistics Last Post
            Started by iceman2018, Today, 01:26 AM
            0 responses
            8 views
            0 likes
            Last Post iceman2018  
            Started by DerkWehler, 09-24-2024, 10:33 PM
            16 responses
            74 views
            0 likes
            Last Post DerkWehler  
            Started by trdninstyle, Yesterday, 06:42 PM
            0 responses
            9 views
            0 likes
            Last Post trdninstyle  
            Started by RuthBinder111, Yesterday, 06:30 PM
            0 responses
            10 views
            0 likes
            Last Post RuthBinder111  
            Started by TrendFollowingCapital, 05-15-2019, 08:22 PM
            7 responses
            2,394 views
            1 like
            Last Post Snoopy_trader  
            Working...
            X