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

performace and number of conditions in an if statement

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

    performace and number of conditions in an if statement

    which code consumes less resources, if BO_barsback==0

    Code:
                    if (BO_barsback>0 && SL_barsback-swingStrength>=BO_barsback &&
    
                        Low[SL_barsback]<Low[SL_barsback-1] &&
    
                        SwingLow-Pos_Tolerance<=SB_High && (SB_High<=SwingLow+Neg_Tolerance || (show_fBO && BO_barsback==1 && Open[0]>Close[0])) &&
    
                        SwingLow-Min_Breakout>=MIN(Low, SL_barsback)[0] &&
    
                        CountIf(delegate {return SwingLow<Close[1];}, BO_barsback-1) <1 &&
    
                        !(BO_barsback>1 && CountIf(delegate {return SwingLow<=Close[1] && High[2]<Close[1];}, Math.Max(0,BO_barsback-2)) >0) &&
    
                        !(High[BO_barsback+1]<High[BO_barsback] && Low[BO_barsback+1]>Low[BO_barsback] && SwingLow>Low[BO_barsback+1]) &&
    
                        !(High[BO_barsback+2]<High[BO_barsback+1] && Low[BO_barsback+2]>Low[BO_barsback+1] && SwingLow>Low[BO_barsback+1] && Open[BO_barsback+1]<Close[BO_barsback+1]) &&
                        !(High[BO_barsback+2]<High[BO_barsback+1] && Low[BO_barsback+2]>Low[BO_barsback+1] && SwingLow>Low[BO_barsback+2] && Open[BO_barsback+2]<Close[BO_barsback+2]) &&
    
                        !(BO_barsback<Bars.BarsSinceNewTradingDay &&
                        ((Low[BO_barsback+2]<SwingLow && Open[BO_barsback+2]<Close[BO_barsback+2]) ||
                        (Low[BO_barsback+1]<SwingLow && Open[BO_barsback+1]<Close[BO_barsback+1])))
                        )

    Code:
                    if (BO_barsback>0)
    
                    if (SL_barsback-swingStrength>=BO_barsback &&
    
                        Low[SL_barsback]<Low[SL_barsback-1] &&
    
                        SwingLow-Pos_Tolerance<=SB_High && (SB_High<=SwingLow+Neg_Tolerance || (show_fBO && BO_barsback==1 && Open[0]>Close[0])) &&
    
                        SwingLow-Min_Breakout>=MIN(Low, SL_barsback)[0] &&
    
                        CountIf(delegate {return SwingLow<Close[1];}, BO_barsback-1) <1 &&
    
                        !(BO_barsback>1 && CountIf(delegate {return SwingLow<=Close[1] && High[2]<Close[1];}, Math.Max(0,BO_barsback-2)) >0) &&
    
                        !(High[BO_barsback+1]<High[BO_barsback] && Low[BO_barsback+1]>Low[BO_barsback] && SwingLow>Low[BO_barsback+1]) &&
    
                        !(High[BO_barsback+2]<High[BO_barsback+1] && Low[BO_barsback+2]>Low[BO_barsback+1] && SwingLow>Low[BO_barsback+1] && Open[BO_barsback+1]<Close[BO_barsback+1]) &&
                        !(High[BO_barsback+2]<High[BO_barsback+1] && Low[BO_barsback+2]>Low[BO_barsback+1] && SwingLow>Low[BO_barsback+2] && Open[BO_barsback+2]<Close[BO_barsback+2]) &&
    
                        !(BO_barsback<Bars.BarsSinceNewTradingDay &&
                        ((Low[BO_barsback+2]<SwingLow && Open[BO_barsback+2]<Close[BO_barsback+2]) ||
                        (Low[BO_barsback+1]<SwingLow && Open[BO_barsback+1]<Close[BO_barsback+1])))
                        )

    #2
    Hello td_910,
    Thanks for your post.

    You would need to run some tests to figure this out. Perhaps run both of these snippets at the same time and check on them in the NinjaScript Utilization Monitor inside the NinjaScript Output window.

    The number of conditions in an 'if' statement would make a negligible difference in most cases.

    Please see the following link for more information on the NinjaScript Utilization Monitor: https://ninjatrader.com/support/help...izationMonitor
    Last edited by NinjaTrader_JoshG; 03-29-2019, 09:38 AM.
    Josh G.NinjaTrader Customer Service

    Comment


      #3
      Thanks.

      Free online storage and sharing with Screencast.com. 2 GB of storage and 2 GB of bandwidth per month for free. We won't compress, alter or take ownership of your content.

      Is that text drawn by the indicators or manually drawn text, that consumes such a lot resources?
      Indicators should be fine compared to the rest?

      Comment


        #4
        td_910,

        There are a lot of variables that go into what impacts resource usage. Perhaps a NinjaScript drawn object could use more resources, but in most cases I do not expect it to make much of an impact.
        Josh G.NinjaTrader Customer Service

        Comment


          #5
          this is all text and lines drawn by indicators ;-)
          Free online storage and sharing with Screencast.com. 2 GB of storage and 2 GB of bandwidth per month for free. We won't compress, alter or take ownership of your content.

          Comment


            #6
            td_910,

            I do not expect it to make much of an impact.
            I should be clearer here. I meant in comparison to manually drawn objects. I would probably expect the same performance impact for each drawing object added no matter if it were done through NS or by manually drawing it.
            Josh G.NinjaTrader Customer Service

            Comment


              #7
              Thank you.

              Is it just the visible objects or all objects from the Drawing Objects List. For that chart (10 days) it's about 400 total and maybe 80 visible.

              Comment


                #8
                td_910,

                I would expect the platform to save some resources when the drawing objects are not visible.
                Josh G.NinjaTrader Customer Service

                Comment

                Latest Posts

                Collapse

                Topics Statistics Last Post
                Started by Brevo, Today, 01:45 AM
                0 responses
                2 views
                0 likes
                Last Post Brevo
                by Brevo
                 
                Started by aussugardefender, Today, 01:07 AM
                0 responses
                3 views
                0 likes
                Last Post aussugardefender  
                Started by pvincent, 06-23-2022, 12:53 PM
                14 responses
                238 views
                0 likes
                Last Post Nyman
                by Nyman
                 
                Started by TraderG23, 12-08-2023, 07:56 AM
                9 responses
                384 views
                1 like
                Last Post Gavini
                by Gavini
                 
                Started by oviejo, Today, 12:28 AM
                0 responses
                4 views
                0 likes
                Last Post oviejo
                by oviejo
                 
                Working...
                X