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

Calculate High for every x minutes

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

    Calculate High for every x minutes

    I am trying to have an indicator on a 5min chart that calculates the high for the past 3 minutes and plot it. Is this possible?
    Josh P.NinjaTrader Customer Service

    #2
    We currently do not support multi-time frame indicators. However, you could possibly approximate this by running your indicator with CalculateOnBarClose = false and then storing the highest value seen every 3 min slice by just just using DateTime.Now etc...
    RayNinjaTrader Customer Service

    Comment


      #3
      Drats. I was hoping for a function like the one esignal has.

      highest(nLength, DataSeries)

      Oh well. I will give the DateTime thing a shot right now. Thanks Ray.
      Josh P.NinjaTrader Customer Service

      Comment


        #4
        The approach MAX(IDataSeries series, int period) does work for strategies, just not in the Indicator class at this time.
        RayNinjaTrader Customer Service

        Comment


          #5
          After much thought about how to implement DateTime.Now I don't think it is going to work. It can potentially work for incoming ticks, but for any historical data it simply can't be done to count 3 minutes because the DateTime.Now in accessing the historical data are all the same.

          Here is what I came up with, but its just not cutting it.
          Code:
          if(Bars.FirstBarOfSession)
          {
              time = Time[0];
              timecounter = time;
          }
          
          if (barcounter <= 1)
          {
              ticktimer = DateTime.Now;
          }
          else
          {
              prevticktimer = ticktimer;
              ticktimer = DateTime.Now;
          }
          
          if(timecounter < time.AddMinutes(Period))
          {
              if(high<High[0])
                  high = High[0];
              TimeSpan valuetoadd = ticktimer - prevticktimer;
              timecounter = timecounter.AddSeconds(valuetoadd.Minutes*60 + valuetoadd.Seconds);
          }
          
          DynamicR = high;
          Resistance.Set(DynamicR);
          Josh P.NinjaTrader Customer Service

          Comment


            #6
            Correct, for historical it can not be done.
            RayNinjaTrader Customer Service

            Comment

            Latest Posts

            Collapse

            Topics Statistics Last Post
            Started by wzgy0920, 04-20-2024, 06:09 PM
            2 responses
            26 views
            0 likes
            Last Post wzgy0920  
            Started by wzgy0920, 02-22-2024, 01:11 AM
            5 responses
            32 views
            0 likes
            Last Post wzgy0920  
            Started by wzgy0920, Yesterday, 09:53 PM
            2 responses
            49 views
            0 likes
            Last Post wzgy0920  
            Started by Kensonprib, 04-28-2021, 10:11 AM
            5 responses
            192 views
            0 likes
            Last Post Hasadafa  
            Started by GussJ, 03-04-2020, 03:11 PM
            11 responses
            3,234 views
            0 likes
            Last Post xiinteractive  
            Working...
            X