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.

        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 Josephina55, Yesterday, 06:30 PM
            0 responses
            7 views
            0 likes
            Last Post Josephina55  
            Started by mathfrick2023, 05-08-2025, 12:51 PM
            8 responses
            69 views
            0 likes
            Last Post Yogaman
            by Yogaman
             
            Started by several, 04-22-2025, 05:21 AM
            2 responses
            245 views
            0 likes
            Last Post Lukasxgtx  
            Started by cherkoul, 06-12-2025, 11:21 PM
            0 responses
            16 views
            0 likes
            Last Post cherkoul  
            Started by NTEducationTeam, 06-12-2025, 02:30 PM
            0 responses
            28 views
            0 likes
            Last Post NTEducationTeam  
            Working...
            X