Это законченный код, опубликованный для общественности, который я создал в видео, ссылованном здесь.
Этот индикатор сочетает в себе полосу Боллинджера и стохастический RSI для получения сигналов о возможном перевороте цены.
Для запуска сигнала индикатор проверяет следующее:
(Бычий) Свеча закрывается над верхней полосой Боллинджера Следующая свеча закрывается в верхней полосе Боллинджера Стохастический индекс RSI находится ниже установленного порога (10 по умолчанию)
(медвежий) Свеча закрывается ниже нижней полосы Боллинджера Следующая свеча закрывается в нижней полосе Боллинджера Стохастический индекс RSI превышает установленный порог (90 по умолчанию)
обратная проверка
/*backtest start: 2022-04-30 00:00:00 end: 2022-05-29 23:59:00 period: 15m basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 study(shorttitle="BBSR Extreme", title="Bollinger Bands Stochastic RSI Extreme Signal", overlay=true, resolution="") //General Inputs src = input(close, title="Source") offset = input(0, "Offset", type = input.integer, minval = -500, maxval = 500) //Bollinger Inputs length = input(20, title="Bollinger Band Length", minval=1) mult = input(2.0, minval=0.001, maxval=50, title="StdDev") //Bollinger Code basis = sma(src, length) dev = mult * stdev(src, length) upper = basis + dev lower = basis - dev plot(basis, "BB Basis", color=#872323, offset = offset) p1 = plot(upper, "BB Upper", color=color.teal, offset = offset) p2 = plot(lower, "BB Lower", color=color.teal, offset = offset) fill(p1, p2, title = "BB Background", color=#198787, transp=95) //Stoch Inputs smoothK = input(3, "K", minval=1) smoothD = input(3, "D", minval=1) lengthRSI = input(14, "RSI Length", minval=1) lengthStoch = input(14, "Stochastic Length", minval=1) upperlimit = input(90, "Upper Limit", minval=0.01) lowerlimit = input(10, "Upper Limit", minval=0.01) //Stochastic Code rsi1 = rsi(src, lengthRSI) k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK) d = sma(k, smoothD) //Evaluation Bear = close[1] > upper[1] and close < upper and k[1] > upperlimit and d[1] > upperlimit Bull = close[1] < lower[1] and close > lower and k[1] < lowerlimit and d[1] < lowerlimit //Plots plotshape(Bear, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.tiny) plotshape(Bull, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.tiny) // Alert Functionality alertcondition(Bear or Bull, title="Any Signal", message="{{exchange}}:{{ticker}}" + " {{interval}}" + " BB Stochastic Extreme!") alertcondition(Bear, title="Bearish Signal", message="{{exchange}}:{{ticker}}" + " {{interval}}" + " Bearish BB Stochastic Extreme!") alertcondition(Bull, title="Bullish Signal", message="{{exchange}}:{{ticker}}" + " {{interval}}" + " Bullish BB Stochastic Extreme!") if Bear strategy.entry("Enter Long", strategy.long) else if Bull strategy.entry("Enter Short", strategy.short)