if(Close[0] > Open[0] && Close[1] < Open[1])//Turning North
{Print("lb");
downbar1 = CurrentBar;//CurrentBar-1;
deltabars = downbar1 - downbar2;//Number of bars in the move
deltaprice = Low[0] - Low[deltabars];//Close[1] - Close[deltabars+1];//Price change per bar
for (int j = 1; j <= deltabars; j++)
{
LowerBand.Set(j,Low[deltabars] + (deltabars-j)*deltaprice/deltabars);//j+1,Close[downbar1-downbar2+1] + (deltabars-j)*deltaprice/deltabars);
}
LowerBand.Set(Low[0]);//1,Close[1]);
downbar2 = downbar1;
if(drawDots) DrawDot(CurrentBar + "dot",true,0,Low[0],Color.SpringGreen);//1,Close[1],Color.SpringGreen);
DrawRegion("tag1", CurrentBar, 0, UpperBand, LowerBand, Color.Empty, Color.Violet ,2);
}
if(Close[0] < Open[0] && Close[1] > Open[1])//Turning South
{Print("ub");
upbar1 = CurrentBar;//CurrentBar-1;
deltabars = upbar1 - upbar2;
deltaprice = High[0] - High[deltabars];//Close[1] - Close[deltabars+1];
for (int j = 1; j <= deltabars; j++)
{
UpperBand.Set(j,High[deltabars] + (deltabars-j)*deltaprice/deltabars);//j+1,Close[upbar1-upbar2+1] + (deltabars-j)*deltaprice/deltabars);
//Print(j + ", " + CurrentBar + ", Upbar1: " + upbar1 + ", upbar2: " + upbar2 + ", deltabars: " + deltabars + ", deltaprice: " + deltaprice + ", UpperBand[" + j + "]: " + UpperBand[j]);
}
UpperBand.Set(High[0]);//1,Close[1]);
upbar2 = upbar1;
if(drawDots) DrawDot(CurrentBar + "dot",true,0,High[0],Color.HotPink);//1,Close[1],Color.HotPink);
DrawRegion("tag1", CurrentBar, 0, UpperBand, LowerBand, Color.Empty, Color.Violet ,2);
}
Print((Bars.BarsSinceSession+1) + " ub1 " + UpperBand[1] + " ub0 " + UpperBand[0] + " lb1 " + LowerBand[1] + " lb0 " + LowerBand[0]);
Comment