/*[[ 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(300),SSP(9); Variables : firstTime(True),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); K=33-RISK; If firstTime then//установки в момент запуска { loopbegin = CountBars; If loopbegin>(Bars-2*SSP+1) Then loopbegin=Bars-2*SSP+1; firstTime=False; }; 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) - для уровня стопа 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.5; 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); If shift>0 then loopbegin=loopbegin-1;//счетчик - херим пересчет всего объема при каждом тике End;