
Strategi Pine Script ini didasarkan pada indeks RSI yang relatif kuat dan deviasi standar DEV dari volatilitas harga, dengan membandingkan harga dengan orbit ke atas dan ke bawah untuk menilai titik masuk, sementara menggunakan RSI sebagai indikator penyaringan tambahan, menghasilkan sinyal buka posisi ketika harga menyentuh orbit ke atas dan ke bawah dan RSI mencapai area overbought dan oversold, dan melonggarkan posisi ketika harga berbalik untuk keluar dari orbit atau RSI berbalik mencapai area overbought. Strategi ini dapat menyesuaikan diri dengan dinamika pasar yang bergejolak, memegang posisi yang menguntungkan ketika volatilitas tinggi dan stop loss, ketika volatilitas rendah, adalah strategi perdagangan kuantitatif yang dapat beradaptasi dengan berbagai kondisi pasar.
Strategi ini menggunakan saluran volatilitas dan indeks yang relatif kuat untuk membuat keputusan posisi terbuka dengan merujuk pada indikator RSI saat harga berfluktuasi, sehingga dapat lebih memahami tren bertahap, dan menghentikan kerugian dan keuntungan tepat waktu. Namun, kinerja strategi ini relatif sensitif terhadap pengaturan parameter, yang perlu dioptimalkan untuk berbagai lingkungan pasar dan aset yang ditandai, sambil mempertimbangkan untuk memperkenalkan indikator lain untuk penilaian tambahan terhadap tren pasar, untuk memanfaatkan sepenuhnya keunggulan strategi.
/*backtest
start: 2024-05-20 00:00:00
end: 2024-05-27 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © tmalvao
//@version=5
strategy("Estratégia de Desvio Padrão com RSI", overlay=true, margin_long=100, margin_short=100)
// Parâmetros
length = input.int(20, title="Período do Desvio Padrão")
thresholdEntry = input.float(1.5, title="Limite de Entrada")
thresholdExit = input.float(0.5, title="Limite de Saída")
rsiLength = input.int(14, title="Período do RSI")
rsiOverbought = input.int(70, title="RSI Overbought")
rsiOversold = input.int(30, title="RSI Oversold")
// Cálculo do Desvio Padrão
price = close
stdDev = ta.stdev(price, length)
// Média Móvel Simples
sma = ta.sma(price, length)
// Limites baseados no Desvio Padrão
upperLimit = sma + thresholdEntry * stdDev
lowerLimit = sma - thresholdEntry * stdDev
exitUpperLimit = sma + thresholdExit * stdDev
exitLowerLimit = sma - thresholdExit * stdDev
// Cálculo do RSI
rsi = ta.rsi(price, rsiLength)
// Condições de Entrada com RSI
longCondition = ta.crossover(price, lowerLimit) and rsi < rsiOversold
shortCondition = ta.crossunder(price, upperLimit) and rsi > rsiOverbought
// Condições de Saída com RSI
exitLongCondition = ta.crossunder(price, exitLowerLimit) or rsi > rsiOverbought
exitShortCondition = ta.crossover(price, exitUpperLimit) or rsi < rsiOversold
// Plotar Linhas
plot(upperLimit, color=color.red, title="Limite Superior")
plot(lowerLimit, color=color.green, title="Limite Inferior")
plot(exitUpperLimit, color=color.orange, title="Limite de Saída Superior")
plot(exitLowerLimit, color=color.blue, title="Limite de Saída Inferior")
plot(sma, color=color.gray, title="SMA")
hline(rsiOverbought, "RSI Overbought", color=color.red)
hline(rsiOversold, "RSI Oversold", color=color.green)
plot(rsi, title="RSI", color=color.purple)
// Estratégia de Trade
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)
if (exitLongCondition)
strategy.close("Long")
if (exitShortCondition)
strategy.close("Short")