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

If statement should evaluate to false but still moves forward in the code

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

    If statement should evaluate to false but still moves forward in the code

    I'm not sure if I'm using the correct terminology so let me just show you the code and the resulting print out:

    Code:
    Print(Time[0]);
    Print("consecutiveDownBars= " + consecutiveDownBars + " exitbars= " + exitBars);
    Print(consecutiveDownBars >= exitBars);
    if (consecutiveDownBars >= exitBars);
    {
         Print("consecutiveDownBars= " + consecutiveDownBars + " exitbars= " + exitBars);
         Print(consecutiveDownBars >= exitBars);
         ExitLong();
    }
    Output:
    7/21/2021 9:25:06 AM
    consecutiveDownBars= 0 exitbars= 3
    False
    consecutiveDownBars= 0 exitbars= 3
    False

    If this evaluates to false how is it even getting into the section that closes the long?

    #2
    Hello WalterSkinner,
    Remove the semi colon after if line, so correct code would be as below:-
    Code:
    if (consecutiveDownBars >= exitBars)
    {[INDENT]Print("consecutiveDownBars= " + consecutiveDownBars + " exitbars= " + exitBars);
    Print(consecutiveDownBars >= exitBars);
    ExitLong();[/INDENT]
     }
    Hope it helps!

    Comment


      #3
      Originally posted by s.kinra View Post
      Hello WalterSkinner,
      Remove the semi colon after if line, so correct code would be as below:-
      Code:
      if (consecutiveDownBars >= exitBars)
      {[INDENT]Print("consecutiveDownBars= " + consecutiveDownBars + " exitbars= " + exitBars);
      Print(consecutiveDownBars >= exitBars);
      ExitLong();[/INDENT]
      }
      Hope it helps!
      Thank you thank you thank you!

      I was trying to stay away from coding for the weekend so I can relax and this bug was driving me up a wall.

      I was totally blind to that semicolon. Stared at that code for like an hour before posting on here.

      Thank you so much works perfectly now.

      Comment


        #4
        Hello WalterSkinner,

        Just reminder the semicolon means end operation, even if there was no operation. The action block for your branching command would be orphaned and would always execute.

        The NinjaScript Editor 401 training video clarifies semicolons should not be used after a branching command on or its action block.
        Chelsea B.NinjaTrader Customer Service

        Comment

        Latest Posts

        Collapse

        Topics Statistics Last Post
        Started by jaybedreamin, Today, 05:56 PM
        0 responses
        3 views
        0 likes
        Last Post jaybedreamin  
        Started by DJ888, 04-16-2024, 06:09 PM
        6 responses
        18 views
        0 likes
        Last Post DJ888
        by DJ888
         
        Started by Jon17, Today, 04:33 PM
        0 responses
        1 view
        0 likes
        Last Post Jon17
        by Jon17
         
        Started by Javierw.ok, Today, 04:12 PM
        0 responses
        6 views
        0 likes
        Last Post Javierw.ok  
        Started by timmbbo, Today, 08:59 AM
        2 responses
        10 views
        0 likes
        Last Post bltdavid  
        Working...
        X