study(title="StohDMI", shorttitle="StohDMI", overlay=false) wwma(l,p) => wwma = (nz(wwma[1]) * (l - 1) + p) / l DMIlength = input(10, title = "Длина DMI") Stolength = input(6, title = "Длина DMI Stochastic") os = input (10, title = "Перепроданность") ob = input (90, title = "Перекупленность") hiDiff = high - high[1] loDiff = low[1] - low plusDM = (hiDiff > loDiff) and (hiDiff > 0) ? hiDiff : 0 minusDM = (loDiff > hiDiff) and (loDiff > 0) ? loDiff : 0 ATR = wwma(DMIlength, tr) PlusDI = 100 * wwma(DMIlength,plusDM) / ATR MinusDI = 100 * wwma(DMIlength,minusDM) / ATR osc = PlusDI - MinusDI hi = highest(osc, Stolength) lo = lowest(osc, Stolength) Stoch = sum((osc-lo),Stolength) / sum((hi-lo),Stolength) *100 plot(Stoch, color = black, title = 'Stochastic', linewidth = 2, style = line) crossUp = Stoch[1] < os and Stoch > os ? 1 : 0 crossDo = Stoch[1] > ob and Stoch < ob ? 1 : 0 plot (ob, color = gray, linewidth = 1, title = 'Купить') plot (os, color = gray, linewidth = 1, title = 'Продать') plotchar(crossUp, title="Вверх", char='⇑', location=location.bottom, color=green, transp=0) plotchar(crossDo, title="Вниз",char='⇓', location=location.top, color=red, transp=0) line2 = hline(90, linestyle=dotted, color=black) line1 = hline(45, color=black) line0 = hline(10, linestyle=dotted, color=black) fill(line2, line0)