protected override void OnCalculate()
{
EMA ema = EMA(this.Period);
double bull_power = High[0] - ema[0];
double bear_power = Low[0] - ema[0];
ds_bull_power.Set(bull_power);
ds_bear_power.Set(bear_power);
int resultsignal = 0;
if (ema[0] > ema[1] && bear_power < 0 && bear_power > ds_bear_power.Get(1))
{
resultsignal = 1;
}
if (ema[0] < ema[1] && bull_power > 0 && bull_power < ds_bull_power.Get(1))
{
resultsignal = -1;
}
Occurred.Set(resultsignal);
PlotColors[0][0] = this.Plot0Color;
OutputDescriptors[0].PenStyle = this.Dash0Style;
OutputDescriptors[0].Pen.Width = this.Plot0Width;
PlotColors[1][0] = this.Plot1Color;
OutputDescriptors[1].PenStyle = this.Dash1Style;
OutputDescriptors[1].Pen.Width = this.Plot1Width;
}