Strategi ini adalah berdasarkan Indeks Kekuatan Relatif (RSI) dan penyimpangan standard (DEV) dari turun naik harga. Ia menentukan titik masuk dengan membandingkan harga dengan jalur atas dan bawah, sambil menggunakan RSI sebagai penapis penapis tambahan. Ia menjana isyarat masuk panjang apabila harga melanggar band bawah dan RSI di bawah ambang oversold, dan isyarat masuk pendek apabila harga melanggar band atas dan RSI di atas ambang overbought. Strategi ini menutup panjang apabila harga melanggar band bawah keluar atau RSI melebihi ambang overbought, dan menutup kedudukan pendek apabila harga melanggar band atas keluar atau RSI jatuh di bawah ambang oversold.
Strategi ini menggabungkan saluran turun naik dan Indeks Kekuatan Relatif untuk membuat keputusan masuk dan keluar berdasarkan turun naik harga sambil merujuk kepada penunjuk RSI. Ia dapat menangkap lebih baik trend jangka pendek dan memotong kerugian dan mengambil keuntungan dengan tepat pada masanya. Walau bagaimanapun, prestasi strategi ini agak sensitif terhadap tetapan parameter dan perlu dioptimumkan untuk persekitaran pasaran yang berbeza dan aset asas. Pada masa yang sama, pertimbangkan untuk memperkenalkan penunjuk lain untuk membantu menilai trend pasaran untuk memanfaatkan sepenuhnya kelebihan strategi ini. Secara keseluruhan, strategi ini mempunyai idea yang jelas, logik yang ketat, dan merupakan strategi perdagangan kuantitatif yang baik.
/*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")