/*[[ Name := SilverTrend Author := Copyright © 2003, VIAC.RU AlexSilver,OlegVS,GOODMAN Link := http://viac.ru/ Separate Window := No First Color := Fuchsia First Draw Type := Symbol First Symbol := 226 Use Second Data := Yes Second Color := Aqua Second Draw Type := Symbol Second Symbol := 225 ]]*/ //Индикатор начала тренда. RISK-цена не менее (33-RISK)% от границы Silver-channel с периодом SSP //CountBars - число последних баров, для которых строится индикатор Inputs : RISK(3),CountBars(3000); Variables : firstTime(True),,SSP(0),shift(0), loopbegin(0),Range(0),AvgRange(0),Sell(false),Buy(false); Variables : smin(0), smax(0), SsMax(0), SsMin(0) ,K(0),val1(0),val2(0),i1(0),MyBars(0); SetLoopCount(0); ssp=3+RISK*2; K=33-RISK; If firstTime then//установки в момент запуска { loopbegin = CountBars; If loopbegin>(Bars-2*SSP) Then loopbegin=Bars-2*SSP; firstTime=False; }; loopbegin++; For shift = loopbegin DownTo 0 Begin Range=0; AvgRange=0; For i1=shift To shift+9 {AvgRange=AvgRange+Abs(High[i1]-Low[i1]); }; Range=AvgRange/10; //ATR(10) - для уровня стопа - no really useful value here SsMax = High[Highest(MODE_HIGH,shift+SSP-1,SSP)]; // Максимальное значение за период SsMin = Low[Lowest(MODE_LOW,shift+SSP-1,SSP)]; // Минимальное значение за период smin = SsMin+(SsMax-SsMin)*K/100; // значение верхней границы канала для текущего бара smax = SsMax-(SsMax-SsMin)*K/100; // значение нижней границы канала для текущего бара val1=0; val2=0; If C[shift]smax And (Not buy Or MyBars=Bars) Then {//если 1-й бар с сигналом BUY - забиваем стрелку вверх val2=Low[shift]-Range*0.7; buy=true; sell=false; MyBars=Bars-shift; }; If val1=0 And val2=0 And MyBars=Bars Then {//если сигнал пропал sell=!sell; buy=!buy; MyBars=MyBars-1; }; SetIndexValue(shift,val1); SetIndexValue2(shift,val2); loopbegin--; End;