
Strategi Pine Script ini berdasarkan kepada indeks RSI yang agak kuat dan DEV standard perbezaan kadar turun naik harga untuk menilai titik masuk dengan membandingkan harga dengan orbit ke atas ke bawah, dan menggunakan RSI sebagai penapis penapis tambahan, menghasilkan isyarat bukaan kedudukan apabila harga menyentuh orbit ke atas ke bawah dan RSI mencapai rantau overbought, dan melonggarkan kedudukan apabila harga berbalik keluar dari orbit atau RSI berbalik mencapai rantau overbought. Strategi ini dapat menyesuaikan diri secara dinamik dengan keadaan turun naik pasaran, memegang kedudukan keuntungan ketika turun naik tinggi dan berhenti ketika turun naik rendah, adalah strategi perdagangan kuantitatif yang dapat menyesuaikan diri dengan keadaan pasaran yang berbeza.
Strategi ini menggunakan saluran turun naik dan indeks yang agak kuat untuk membuat keputusan pembukaan posisi dengan merujuk kepada indikator RSI semasa turun naik harga, untuk lebih memahami trend bertahap, dan menghentikan kerugian dan keuntungan tepat pada masanya. Namun, prestasi strategi ini sensitif terhadap parameter, yang memerlukan pengoptimuman untuk aset yang berbeza dan keadaan pasaran, sambil mempertimbangkan untuk memperkenalkan petunjuk lain untuk membuat penilaian tambahan terhadap trend pasaran, untuk memanfaatkan sepenuhnya kelebihan 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")