
Эта стратегия использует относительно сильный индекс RSI для определения перепродажи на рынке в сочетании с ценой выше 200-дневной простой скользящей средней (SMA) в качестве условия для фильтрации тенденции, чтобы решить, стоит ли входить в сделку. Эта стратегия использует три RSI, чтобы совместно создать условия для открытия позиции, только если краткосрочный RSI меньше 35 и в течение трех последовательных циклов имеет тенденцию к снижению, а третий цикл RSI меньше 60 и текущий закрытие на цене выше 200-дневной SMA.
Стратегия использует трёхкратный RSI для создания условий для открытия позиции в сочетании с ценой, находящейся выше долгосрочной средней линии, в качестве трендового фильтра для захвата перепродажи. Логика стратегии проста, ее легко реализовать и оптимизировать. Однако стратегия также содержит риски и недостатки, такие как задержка сигналов, низкая частота торговли и возможность захвата односторонних ситуаций, которые требуют постоянной настройки и улучшения в практическом применении.
/*backtest
start: 2023-05-15 00:00:00
end: 2024-05-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
//@author Honestcowboy
//
strategy("Triple RSI [Honestcowboy]" )
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>
// ---------> User Inputs <----------- >>
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>
rsiLengthInput = input.int(5, minval=1, title="RSI Length", group="RSI Settings")
rsiSourceInput = input.source(close, "Source", group="RSI Settings")
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>
// ---------> VARIABLE CALCULATIONS <----------- >>
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>
up = ta.rma(math.max(ta.change(rsiSourceInput), 0), rsiLengthInput)
down = ta.rma(-math.min(ta.change(rsiSourceInput), 0), rsiLengthInput)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>
// ---------> CONDITIONALS <----------- >>
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>
rule1 = rsi<35
rule2 = rsi<rsi[1] and rsi[1]<rsi[2] and rsi[2]<rsi[3]
rule3 = rsi[3]<60
rule4 = close>ta.sma(close, 200)
longCondition = rule1 and rule2 and rule3 and rule4
closeCondition = rsi>50
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>
// ---------> GRAPHICAL DISPLAY <----------- >>
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>
hline(30, title="Long Condition Line")
hline(50, title="Exit Condition Line")
plot(rsi)
plotshape(longCondition ? rsi-3 : na, title="Long Condition", style=shape.triangleup, color=color.lime, location=location.absolute)
plotshape(closeCondition and rsi[1]<50? rsi+3 : na, title="Exit Condition", style=shape.triangledown, color=#e60000, location=location.absolute)
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>
// ---------> AUTOMATION AND BACKTESTING <----------- >>
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>
if longCondition and strategy.position_size==0
strategy.entry("LONG", strategy.long)
if closeCondition
strategy.close("LONG")