Announcement

Collapse
No announcement yet.

Partner 728x90

Collapse

BarsInProgress

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

    BarsInProgress

    Hello. I've wrote script only for main instrument. Now after debugging I'd like to add some instruments to script. So, should I change Clolse[0] to Closes[0][0] etc. or I can leave everything as is for main instrument and only use Closes[1][0] for second instrument?

    #2
    Hi Alex, that would depend mainly on code structure, as the Close would be sensitive to called context, so tied to the BarsInProgress you're in. If you want to access other bars array data in another BarsInProgress then you would need to specifically point to that via Closes[x] / BarsArray[x]

    Comment


      #3
      Code structure is usual:
      Code:
       protected override void Initialize()
      .......
      BarsRequired = userValueFromVariables;
      Add("MyStock", PeriodType.Day, 1);
      ...........
      
       protected override void OnBarUpdate()
      if (CurrentBars[0] <= BarsRequired || [COLOR="Red"]CurrentBars[1] <= BarsRequired[/COLOR]) [COLOR="Magenta"]//should I add BarsRequired for added instrument if BarsRequired = userValueFromVariables and is for main instrument? Can I just miss this condition?[/COLOR]
      				return;
      if (Closes[1][0]>myS && [COLOR="Red"]conditions for long[/COLOR]) [COLOR="Magenta"]//conditions for long use main instrument values: Close[0] etc. Maybe problem is here? And I should write here if (Closes[1][0]>myS && conditions with Close[0][0]???[/COLOR]
                       {
      there are only main stock values in use: Close[0] etc. and nothing from added instrument
                       }
      if (Closes[1][0]<myS && conditions for Short)
                       {
      there are only main stock values in use: Close[0] etc. and nothing from added instrument
                       }
      if (conditions for trails) {there are only main stock values in use}
      
      protected override void OnExecution(IExecution execution)
      {there is EntryOrder and trails operating.}
      As you can see, I just add only 2 short conditions as filter on Entries. That's it. But after I did that, strategy went wrong.

      Comment


        #4
        You do not have any filter for BarsInProgress here? That would be the first thing that needs implementation, as otherwise all bars objects are calling OnBarUpdate() and you would see all the calls in all your conditions.



        The BarsRequired / CurrentBars check for all bars objects is valid and recommended.

        Comment


          #5
          Originally posted by NinjaTrader_Bertrand View Post
          You do not have any filter for BarsInProgress here? That would be the first thing that needs implementation, as otherwise all bars objects are calling OnBarUpdate() and you would see all the calls in all your conditions.

          Thanks. I've read this few times.
          Originally posted by NinjaTrader_Bertrand View Post
          The BarsRequired / CurrentBars check for all bars objects is valid and recommended.
          Ok. But what should I do, if I set BarsRequired=userValueFromVariables and this value differs from what I need for added instrument?

          Comment


            #6
            Alex, you can compare to a custom BarsRequired value of course as well.

            For the BarsInProgress, it would need implementation in your code then....

            Comment


              #7
              Originally posted by NinjaTrader_Bertrand View Post
              Alex, you can compare to a custom BarsRequired value of course as well.

              For the BarsInProgress, it would need implementation in your code then....
              What BarsRequired equal by default? Can I leave it by default? (don't assign any value for it) And write something like this
              Code:
              if (CurrentBars[0] <= valueFromVariable || CurrentBars[1] <= BarsRequired)
              				return;

              Comment


                #8
                Per default BarsRequired is 20. You can compare to an int variable of course as well.

                Comment


                  #9
                  Dear Bertrand, so I need to set BarsInProgress==0 in the beginning of OnBarUpdate()? What about other methods? Position(), Execution() etc.?

                  Comment


                    #10
                    It will depend actually what you want to do here Alex, when you want something to calculate, BarsInProgress gives you just feedback what bars object is calling OnBarUpdate(), so the event.

                    Only OnBarUpdate() would have those calls, OnPosition / OnExecution is tied to their own events and not the bar updates at all.

                    Comment


                      #11
                      Originally posted by NinjaTrader_Bertrand View Post
                      Per default BarsRequired is 20. You can compare to an int variable of course as well.
                      I forgot to explain one thing. The problem is main bars need 100 bars for calculation and second bars don't need it (just to calculate from first bar appeared). This because of different beginning in history. Is it clear? For example, main bars start from 01/01/2003 and added bars start from 01/01/2005.
                      What you can advice?

                      Comment


                        #12
                        Then you already have determined your BarsRequired, it's dictated by your main series. Calcs would start then after those 100 bars after your both series would have data, so the 2005 date.

                        Comment


                          #13
                          Originally posted by NinjaTrader_Bertrand View Post
                          Then you already have determined your BarsRequired, it's dictated by your main series. Calcs would start then after those 100 bars after your both series would have data, so the 2005 date.
                          So, in this case I can set only CurrentBar[0]>=BarsRequired without same for added instrument?

                          Comment


                            #14
                            Theoretically yes, however my suggestion would be always included a check for all instruments to avoid running into race conditions.

                            Comment


                              #15
                              Originally posted by NinjaTrader_Bertrand View Post
                              It will depend actually what you want to do here Alex, when you want something to calculate, BarsInProgress gives you just feedback what bars object is calling OnBarUpdate(), so the event.

                              Only OnBarUpdate() would have those calls, OnPosition / OnExecution is tied to their own events and not the bar updates at all.
                              Well in my case this would be ok, isn't it? Because for added instrument I use [1][0].

                              Comment

                              Latest Posts

                              Collapse

                              Topics Statistics Last Post
                              Started by Geovanny Suaza, 02-11-2026, 06:32 PM
                              0 responses
                              637 views
                              0 likes
                              Last Post Geovanny Suaza  
                              Started by Geovanny Suaza, 02-11-2026, 05:51 PM
                              0 responses
                              366 views
                              1 like
                              Last Post Geovanny Suaza  
                              Started by Mindset, 02-09-2026, 11:44 AM
                              0 responses
                              107 views
                              0 likes
                              Last Post Mindset
                              by Mindset
                               
                              Started by Geovanny Suaza, 02-02-2026, 12:30 PM
                              0 responses
                              569 views
                              1 like
                              Last Post Geovanny Suaza  
                              Started by RFrosty, 01-28-2026, 06:49 PM
                              0 responses
                              571 views
                              1 like
                              Last Post RFrosty
                              by RFrosty
                               
                              Working...
                              X