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

Identify number of closes in range x in the current day.

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

    Identify number of closes in range x in the current day.

    Hello,

    I am having trouble trying to build a filter that looks like this, in plain English:

    "If two or more candles in THIS day CLOSE above x, then ..."

    Sorry if this is really easy, but I can't figure it out. At the moment, I'm using the filter below; it gives the same idea, but I would really like to get at least 2 candles CLOSING there.

    if (CurrentDayOHL().CurrentHigh[0] > x)

    x is some math with PriorDayOHLC, and I am using a 5-minute chart, if that is relevant.

    Thanks in advance for your time and help!

    #2
    Hello hddietrich,

    Thank you for your post and welcome to the NinjaTrader Support Forum!

    You can use the CountIf() method to see if the condition is true for at least two bars for the day.

    For example:
    Code:
    if (CountIf(delegate {return CurrentDayOHL().CurrentHigh[0] > x;}, Bars.BarsSinceSession - 1) > 2)
    For information on CountIf() please visit the following link: http://www.ninjatrader.com/support/h...t7/countif.htm

    Please let me know if I may be of further assistance.
    Last edited by NinjaTrader_PatrickH; 01-14-2013, 01:55 PM.

    Comment


      #3
      Awesome! Thanks Patrick, we're almost there.

      After some tests, I found out that the bottleneck of my code is now only "Bars.BarsSinceSession". I found that out because the code doesn't generate any trades with it. However, if I change it to some random integer, trades occur normally (the wrong trades, haha).

      For me to get BarsSinceSession to work, do I have to specify somewhere that I'm looking at 5-minute bars?

      PS: It's a simple instrument traded 8 hours per day, and NinjaTrader seems to recognize perfectly where sessions start and end with vertical lines.

      Also, I changed the CurrentHigh part - which was just what I was using to fix my leak - to simply Close[0], as I would like to know how many bars actually closed in that region (I don't know if that would matter (or even work)).

      I feel like I added too much irrelevant information. The main question is now bold and underlined. Thanks.
      Last edited by hddietrich; 01-14-2013, 01:48 PM.

      Comment


        #4
        Hello hddietrich,

        Thank you for your response.

        Are you using multiple bars series in your code? (Example: Add(PeriodType.Minute, 5)

        Please post a snippet of your code that is using the Bars.BarsSinceSession so I may investigate this matter further.

        I look forward to your response.

        Comment


          #5
          I tried inserting the Add(PeriodType.Minute, 5)), but it didn't work.

          Here is my initialize

          Code:
          protected override void Initialize()
                  {
                      Add(PriorDayOHLC());
          			Add(PeriodType.Minute, 5);			
          			CalculateOnBarClose = true;
          					
          	}
          And this is the precise condition that is causing the system not to generate any trades:

          Code:
          if (CountIf(delegate {return Close[0] > (PriorDayOHLC().PriorHigh[0] + (PriorDayOHLC().PriorHigh[0] - PriorDayOHLC().PriorLow[0])*ampfilter);}, Bars.BarsSinceSession - 1) > 2)
          The whole math with PriorDayOHLC and the parameter "ampfilter" is working in other parts of the code. I don't know what is makes the system generate 0 trades in over 2 years.

          The long and short parts of the strategy are separate, and I've applied this condition only to the long trades. If it were never satisfied, then I think the short trades would still happen normally, no? I am puzzled by this!

          PS: I don't know what you mean by "multiple bars series." I am only using one security and one time frame (5 minutes).

          Comment


            #6
            I discovered the problem looking at the log. Ignore what I said about the BarsSinceSession.

            "Error on calling 'OnBarUpdate' method for strategy x: 'CountIf' can't be run on multi-series strategies."

            I don't know what is making my strategy multi-series; I don't need multiple time-frames or multiple instruments.

            Could you help me with this?

            Comment


              #7
              Just a shot in the dark, but the Add() which you said you tried earlier... did you accidentally leave that in your code? If so, remove it and try again.

              Comment


                #8
                Thanks, I did leave it on.

                With it removed, it now says in the log (still with 0 trades):

                "'period' parameter on 'CountIf' method must be greater/equal 0"

                Any clues on why it would think that whole thing is not greater than 0? It's just the priorHigh +10%*(priorHigh-PriorLow). Might it be the type of the object?

                Comment


                  #9
                  Hello hddietrich,

                  Thank you for your response.

                  You will need to make sure you have enough bars on your chart before accessing the values. Such as using the following:
                  Code:
                  if(CurrentBar < BarsRequired) return;
                  For information on making sure you have enough bars in the series you are accessing please visit the following link: http://www.ninjatrader.com/support/f...ead.php?t=3170

                  Please let me know if you have any questions.

                  Comment


                    #10
                    Thanks Patrick! It's all working now!

                    Just one more thing: is it too complicated to draw that math I did with PriorDayOHLC (mentioned in previous post)?

                    It would be like this: http://i.imgur.com/XJBEM.png

                    If it requires custom coding, new indicators or something else, don't worry about it. The visualizing has a low priority to me right now. Besides, you've done a lot!

                    Thanks for your prompt help!

                    Edit: The green lines are the filters, while the blue and red are the previous high and low.

                    Comment


                      #11
                      Hello hddietrich,

                      Thank you for your response.

                      This would require custom programming custom plots. You can find an example of this for an indicator by going to the NinjaTrader Control Center > Tools > Edit NinjaScript > Indicator > CustomPlotSample > OK.

                      Please let me know if I may be of further assistance.

                      Comment

                      Latest Posts

                      Collapse

                      Topics Statistics Last Post
                      Started by love2code2trade, Yesterday, 01:45 PM
                      4 responses
                      28 views
                      0 likes
                      Last Post love2code2trade  
                      Started by funk10101, Today, 09:43 PM
                      0 responses
                      7 views
                      0 likes
                      Last Post funk10101  
                      Started by pkefal, 04-11-2024, 07:39 AM
                      11 responses
                      37 views
                      0 likes
                      Last Post jeronymite  
                      Started by bill2023, Yesterday, 08:51 AM
                      8 responses
                      44 views
                      0 likes
                      Last Post bill2023  
                      Started by yertle, Today, 08:38 AM
                      6 responses
                      26 views
                      0 likes
                      Last Post ryjoga
                      by ryjoga
                       
                      Working...
                      X