/*[[ Name := DSS Bressert Author := Copyright © 2003, MetaQuotes Software Corp. Link := http://www.metaquotes.ru/ Separate Window := yes First Color := Red First Draw Type := Line Use Second Data := yes second Color := lime second Draw Type := Line Minimum Chart Limits := 0.000000 Maximum Chart Limits := 100.000000 ]]*/ Inputs : Slw(8),Pds(13),Slwsignal(9); Variables : AA(0),bb(0),aa1(0),cnt1(0); Variables : shift(0), cnt(0), loopbegin(0),loopbegin2(0),loopbegin3(0), first(True), prevbars(0); Variables : sum(0), smconst(0),smconst1(0), prev(0),prev1(0),prev2(0),prev3(0), weight(0), linear(0); Variables : MAValue(0),MAValue2(0),mavalue3(0), MAstring(""); Variables : MyHigh(0),MyLow(0),counter(0),Price(0),Price1(0); SetLoopCount(0); smconst = 2 / (1+SLW); smconst1 = 2 / (1+slwsignal); loopbegin = loopbegin+1; For shift = 2000 Downto 0 Begin prev = GetIndexValue2(shift+1); AA =100* ((Close[shift] - Low[Lowest(MODE_LOW,shift+pds,Pds)]) / (High[Highest(MODE_HIGH,shift+pds,Pds)] - low[Lowest(MODE_LOW,shift+pds,Pds)])); MAValue2 = smconst * (aa-prev) + prev; SetIndexValue2(shift,MAValue2); loopbegin = loopbegin-1; End; loopbegin2 = loopbegin2+1; For shift = 2000-pds downto 0 Begin MyHigh = -999999; MyLow = 99999999; For counter = shift to pds + shift Begin PRICE= GetIndexValue2(counter); If Price > MyHigh Then MyHigh = Price; If pds <= 0 Then MyHigh = Price; If Price < MyLow Then MyLow = Price; If pds <= 0 Then MyLow = Price; end; prev1 = GetIndexValue(shift+1); aa1=GetIndexValue2(shift); bb=100*(aa1-mylow)/(myhigh-mylow); MAValue = smconst * (bb-prev1) + prev1; SetIndexValue(shift,mavalue); loopbegin2 = loopbegin2-1; End; loopbegin3 = loopbegin3+1; For shift = 2000 downto 0 Begin prev2=GetIndexValue2(shift+1); prev3=GetIndexValue(shift); MAValue3= smconst1 * (prev3-prev2) +Prev2; SetIndexValue2(shift,mavalue3); loopbegin3 = loopbegin3-1; end; /*[[