/// <summary> /// Called on each bar update event (incoming tick) /// </summary> protected override void OnBarUpdate() { if (CurrentBar == 0) { opens.Update(); highs.Update(); lows.Update(); closes.Update(); haopen = Open[0]; haclose = (High[0] + Low[0] + Close[0] + Open[0]) * 0.25; HAHigh.Set(High[0]); HALow.Set(Low[0]); HAMid.Set((HAHigh[0] + HALow[0]) * 0.5); return; } haopen = (haopen + haclose) * 0.5; haclose = (highs[0] + lows[0] + opens[0] + closes[0]) * 0.25; if (haopen < haclose) { HAHigh.Set(Math.Max(haclose, highs[0])); HALow.Set(Math.Min(haopen, lows[0])); } else { HAHigh.Set(Math.Max(haopen, highs[0])); HALow.Set(Math.Min(haclose, lows[0])); } HAMid.Set((HAHigh[0] + HALow[0]) * 0.5); Color col; if (haopen != haclose) { isRising = (haopen < haclose); } if (isRising) { col = ((HALow[0] < haopen)?ltup:upcolor); } else { col = ((HAHigh[0] > haopen)?ltdn:dncolor); } PlotColors[0][0] = col; PlotColors[1][0] = col; PlotColors[2][0] = col; }
/// <summary> /// Called on each bar update event (incoming tick) /// </summary> protected override void OnBarUpdate() { habars.update(); HAMid.Set((habars.High + habars.Low) * 0.5); HAHigh.Set(habars.High); HALow.Set(habars.Low); Color col; if (habars.Open < habars.Close) { col = ((habars.Low < habars.Open)?ltup:upcolor); } else { col = ((habars.High > habars.Open)?ltdn:dncolor); } PlotColors[0][0] = col; PlotColors[1][0] = col; PlotColors[2][0] = col; }