Announcement

Collapse
No announcement yet.

Partner 728x90

Collapse

BarsInProgress

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

  • NinjaTrader_Bertrand
    replied
    Correct, in BarsInProgress 0 you act if your primary series / instrument / stock updates. With reference to Closes[1] at that point you query the secondary instruments close price into the condition.

    Leave a comment:


  • alexstox
    replied
    Originally posted by NinjaTrader_Bertrand View Post
    Not exactly, you point to the specific data you wish to use, but you do not tell the code when to do it. If the primary series gets an update, if the secondary gets an update etc, that's what BarsInProgress is used for.
    Sorry, I just hurried. I mean to set

    Code:
    protected override void Initialize()
    .......
    BarsRequired = userValueFromVariables;
    Add("MyStock", PeriodType.Day, 1);
    ...........
    
     protected override void OnBarUpdate()
    if (CurrentBars[0] <= BarsRequired || CurrentBars[1] <= BarsRequired) 
    				return;
    [B][COLOR="Green"]//Here I enter LONG, than SHORT, so add BarsInProgress here for both LONG and SHORT[/COLOR]
    if (BarInProgress==0)
    {[/B]
    if (Closes[1][0]>myS && conditions for long) 
                     {
    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
                     }
    [B]}[/B][COLOR="green"] //and here we close if()[/COLOR]
    if (conditions for trails) {there are only main stock values in use}
    
    protected override void OnExecution(IExecution execution)
    {there is EntryOrder and trails operating.}
    Well I did all this only to avoid editing many [0] to [0][0].

    Leave a comment:


  • NinjaTrader_Bertrand
    replied
    Not exactly, you point to the specific data you wish to use, but you do not tell the code when to do it. If the primary series gets an update, if the secondary gets an update etc, that's what BarsInProgress is used for.

    Leave a comment:


  • alexstox
    replied
    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].

    Leave a comment:


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

    Leave a comment:


  • alexstox
    replied
    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?

    Leave a comment:


  • NinjaTrader_Bertrand
    replied
    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.

    Leave a comment:


  • alexstox
    replied
    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?

    Leave a comment:


  • NinjaTrader_Bertrand
    replied
    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.

    Leave a comment:


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

    Leave a comment:


  • NinjaTrader_Bertrand
    replied
    Per default BarsRequired is 20. You can compare to an int variable of course as well.

    Leave a comment:


  • alexstox
    replied
    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;

    Leave a comment:


  • NinjaTrader_Bertrand
    replied
    Alex, you can compare to a custom BarsRequired value of course as well.

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

    Leave a comment:


  • alexstox
    replied
    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?

    Leave a comment:


  • NinjaTrader_Bertrand
    replied
    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.

    Leave a comment:

Latest Posts

Collapse

Topics Statistics Last Post
Started by CarlTrading, 03-31-2026, 09:41 PM
1 response
152 views
1 like
Last Post NinjaTrader_ChelseaB  
Started by CarlTrading, 04-01-2026, 02:41 AM
0 responses
89 views
1 like
Last Post CarlTrading  
Started by CaptainJack, 03-31-2026, 11:44 PM
0 responses
131 views
2 likes
Last Post CaptainJack  
Started by CarlTrading, 03-30-2026, 11:51 AM
0 responses
127 views
1 like
Last Post CarlTrading  
Started by CarlTrading, 03-30-2026, 11:48 AM
0 responses
107 views
0 likes
Last Post CarlTrading  
Working...
X