I have the following problem
I am building a strategy based on 1 minute Japanese candlesticks.
And additionally I have added a 30 second data series.
The following is happening to me: Apparently when I ask what bar is closing, in some cases it returns that at the minute closing "BarsInProgress" always returns 1 and I cannot process the closing of the 1 minute bar and it breaks the logic of the strategy.
As you will see, the cycle goes through OnBarUpdate() twice with BarsInProgress = 1, which is not good for me.
What could be happening?
OnBarUpdate() code
protected override void OnBarUpdate() { string nameprocess = "OnbarUpdate()"; if (CurrentBars[0] < BarsRequiredToTrade) return; if (CurrentBar < BarsRequiredToTrade) return; if (!this.EnabledTotrade) return; myDate = (this.Time[0].Year * 10000) + (this.Time[0].Month * 100) + this.Time[0].Day if (this.CurrentBars[0] == pBarToDebug || (this.Time[0].ToShortTimeString() == this.pTimeToDebug)) { Draw.ArrowLine(this, string.Format("Line-{0}",totLines++), 0, this.High[0] + 20, 0, this.High[0] + 15, Brushes.Aquamarine, DashStyleHelper.Solid, 5); myPrint(string.Format("{0,30} - 000 - Bar = {1,6} - Time= {3} {2} - this.EnabledTotrade= {4,5} - BarsInProgress = {5,6}", nameprocess, this.CurrentBars[0], this.Time[0].ToShortTimeString(), this.myDate, this.EnabledTotrade, BarsInProgress )); } /// ----------------------------------------------------------------------------------------------------- /// CUIDADO if ( (BarsInProgress != 0) && pCheckVolatility) { EnabledTotradeVol = true; for (int bar = 0; bar < 11; bar++) { if ((this.VolumeUpDown(BarsArray[1])[bar] > pVolUpDownMinimo) || (this.ATR(BarsArray[1], pATRperiod)[bar] > pATRlimitInf)) EnabledTotradeVol = false; } //return; } if (!this.EnabledTotradeVol) return; if (BarsInProgress != 0) return;
MB_CandleEMA1 --> ---------------------------------------------------------------------------------------------------------------------------
MB_CandleEMA1 --> OnbarUpdate() - 000 - Bar = 180 - Time= 20250210 12:09 - this.EnabledTotrade= True - BarsInProgress = 1
MB_CandleEMA1 --> OnbarUpdate() - 000 - Bar = 180 - Time= 20250210 12:09 - this.EnabledTotrade= True - BarsInProgress = 1
MB_CandleEMA1 --> ---------------------------------------------------------------------------------------------------------------------------
Comment