x =Optimize("x", 7, 1, 30, 2);
y =Optimize("y", 7, 1, 30, 2);
f = Optimize("f", 0.01, 0.01, 1, 0.05);
k = Ref(HHV(H,x),-1);
n = Ref(LLV(L,x),-1);
Count1 = Cross(H,k);
Count2 = Cross(n,L);
C1 = BarsSince(Count1);
C2 = BarsSince(Count2);
Short = C1>C2 AND Cross(ValueWhen(C2, n, 1)+(ATR(14)*f),L);
Buy = C2>C1 AND Cross(H,ValueWhen(C1, k, 1)-(ATR(14)*f));
Sell = BarsSince(Buy)>=y;
Cover = BarsSince(Short)>=y;
ShortPrice = Min(O,ValueWhen(C2, n, 1)+(ATR(14)*f));
BuyPrice = Max(O,ValueWhen(C1, k, 1)-(ATR(14)*f));
SellPrice = O;
CoverPrice = O;
Equity(1);
SetChartOptions(0,chartShowArrows|chartShowDates);
_N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) ));
Plot( C, "Close", ParamColor("Color", colorBlack ), styleNoTitle | ParamStyle("Style") | GetPriceStyle() );
Plot(k,"k",colorGreen,1);
Plot(n,"n",colorRed,1);
PlotShapes((Count1)*shapeSmallDownTriangle, colorGreen, 0, H);
PlotShapes((Count2)*shapeSmallUpTriangle, colorRed, 0, L);
PlotShapes(IIf(Buy,shapeUpArrow,0),7,0,H,-5);
PlotShapes(IIf(Sell,shapeDownArrow,0),3,0,L,-5);
PlotShapes(IIf(Cover,shapeHollowUpArrow,0),7,0,H,-5);
PlotShapes(IIf(Short,shapeHollowDownArrow,0),3,0,L,-5);