Короче система определяет уровни поддержки сопротивлений не по цене, а по средней, почему просто не углу наклона средней объесняю, чтоб не учитывать мелкие всплески, может кому прогодится.
SetTradeDelays(0, 0, 0, 0);
t1 = Optimize("t1", 9, 3, 36, 3);
x = Optimize("x", 10, 3, 10, 1);
y = Optimize("y", 20, 1, 25, 1);
acc = Param("Acceleration", 0.02, 0, 1, 0.001 );
accm = Param("Max. acceleration", 0.2, 0, 1, 0.001 );
U=MA(MA((H+L+O+C)/4,T1),3);
upbar=U>Ref(U,-1) ;
downbar=U<Ref(U,-1) ;
barcolor=IIf(downbar,4, IIf(upbar,5,7));
Graph1BarColor=ValueWhen(barcolor != 0,barcolor);
Plot(U,"U",Graph1BarColor,ParamStyle("Style", styleDots | styleNoLine, maskDefault | styleDots | styleNoLine ) );
_SECTION_BEGIN("сопротив и поддержки");
// Линии Ишимоку (Исходные)
Tenkan = (HHV(U,X) + LLV(Ref(U,-1),X))/2;
Kijun = (HHV(U,Y) + LLV(Ref(U,-1),Y))/2;
T0 = Tenkan - Kijun;
SkatTenkan = Tenkan - Ref(tenkan,-1);
// Верхние границы
LineUp = U>Tenkan & T0>=0 & SkatTenkan>0;
SignalUp = ExRem(LineUp, T0<0 & U<Tenkan );
KeyUp = HighestSince(SignalUp,U,1);
PlotKeyUp = IIf(KeyUp>=Ref(KeyUp,-1),4,2);
MarkerKeyUp=IIf(KeyUp<Ref(KeyUp,-1),shapeStar,shapeNone);
Plot(KeyUp," KeyUp", PlotKeyUp,1);
// Нижние границы
LineUq = U<Tenkan & T0<=0 & SkatTenkan<0;
SignalUq = ExRem(LineUp, T0>0 & U>Tenkan );
KeyUq = LowestSince(SignalUp,U,1);
PlotKeyUq = IIf(KeyUq<=Ref(KeyUq,-1),4,2);
MarkerKeyUq=IIf(KeyUq>Ref(KeyUq,-1),shapeStar,shapeNone);
Plot(KeyUq," KeyUq", PlotKeyUq,1);
_SECTION_END();
Plot(C,"price",1,128);
Cond1 = KeyUp>Ref(KeyUp,-1);
Cond2 = KeyUq<Ref(KeyUq,-1);
Cond4 = KeyUp<=Ref(KeyUp,-1);
Cond5 = KeyUq>=Ref(KeyUq,-1);
Buy = Cond1;
Short = Cond2;
Sell = Cond4;
Cover = Cond5;
Buy=ExRem(Buy,Sell);
Sell=ExRem(Sell,Buy);
Short=ExRem(Short,Cover);
Cover=ExRem(Cover,Short);
PlotShapes(IIf(Buy,shapeUpArrow,0),5,0,Graph0,-15);
PlotShapes(IIf(Sell,shapeDownArrow,0),4,0,Graph0,-15);
PlotShapes(IIf(Cover,shapeHollowUpArrow,0),5,0,Graph0,-15);
PlotShapes(IIf(Short,shapeHollowDownArrow,0),4,0,Graph0,-15);
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() );
_SECTION_END();