PDA

View Full Version : logic behind multiple instrument processing


binwang2
04-22-2009, 11:44 AM
Dear NT experts,

I would like to know the logic for processing multiple isntruments. Here is an example copied from online guide. It says when OnBarUpdate is processing the primary instrument, then do calculations on primary isntrument 0, and second instrument BarsArray[1], plus third isntrument BarsArray[2]. I am not certain what is actually processed. Because the condition is "if (BarsInProgress == 0)", I would assume BarsArray[2] is not availble when this condition is true. How BarsArray[2] can be accessed? Can you shed some light?

protected override void OnBarUpdate()
{
if (BarsInProgress == 0)
{
if (CCI(20)[0] > 200 && CCI(BarsArray[1], 20)[0] > 200
&& CCI(BarsArray[2], 20)[0] > 200)
{
// Do something
} }
}

NinjaTrader_Josh
04-22-2009, 11:55 AM
binwang2,

BarsArray[2] may not be available on the very first bar, but it will be available once data was received in BarsInProgress 2 at some point in time. From that point forward it will reference the latest known BarsArray[2] value for your indicator.

binwang2
04-22-2009, 12:24 PM
Thanks, Josh.

Can i assume BarsArray[2] data will also be availble some point of time forward even with this
"if (BarsInProgress != 0)
return;


"
at the very begining of OnBarUpdate()?

NinjaTrader_Josh
04-22-2009, 01:15 PM
Sure. It is available once data was received in BarsInProgress == 2. Where ever you access BarsArray[2] will give you the recent value of the indicator at that moment in time. If there are queued events for further updating BarsArray[2]'s value, this will not be shown to you unless you call the indicator again later.