Strategi Trading RSI Stochastic
Strategi ini diperdagangkan berdasarkan sinyal silang dari indikator RSI Stochastic.
Aturan khusus masuk adalah:
Masukkan long ketika RSI Stochastic melintasi di atas 30
Masuk short ketika RSI Stochastic melintasi di bawah 70
Filter masuk tambahan:
Long membutuhkan SMA 9 periode di atas SMA 21 periode
Short membutuhkan SMA 9 periode di bawah SMA 21 periode
Long hanya di bawah VWAP, short hanya di atas VWAP
Strategi ini menggunakan stop loss dan take profit untuk manajemen risiko:
Stop loss ditetapkan pada 20 tik untuk kedua posisi long dan short
Ambil keuntungan ditetapkan pada 25 tik untuk kedua panjang dan pendek
Keuntungan utama adalah menggunakan RSI Stochastic untuk mengidentifikasi wilayah overbought / oversold dikombinasikan dengan filter SMA dan VWAP untuk mengurangi sinyal palsu.
/*backtest start: 2023-09-03 00:00:00 end: 2023-09-10 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © thedoggwalker //@version=4 strategy("Stochastic RSI Strategy", overlay=true) // Stochastic RSI length = input(14, title="Length") src = input(close, title="Source") smoothK = input(3, title="K") smoothD = input(3, title="D") rsiValue = rsi(src, length) highestRSI = highest(rsiValue, length) lowestRSI = lowest(rsiValue, length) k = (rsiValue - lowestRSI) / (highestRSI - lowestRSI) * 100 d = sma(k, smoothD) // Moving averages maShort = sma(close, 9) maLong = sma(close, 21) // Spread between moving averages spread = maShort - maLong // VWAP vwapValue = vwap(hlc3) // Entry conditions longCondition = crossover(k, 30) and spread > 0 and close < vwapValue shortCondition = crossunder(k, 70) and spread < 0 and close > vwapValue // Entry orders if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short) // Exit orders // longStopLoss = close - 20 * syminfo.mintick // longTakeProfit = close + 25 * syminfo.mintick // strategy.exit("Exit Long", "Long", stop=longStopLoss, limit=longTakeProfit) // shortStopLoss = close + 20 * syminfo.mintick // shortTakeProfit = close - 25 * syminfo.mintick // strategy.exit("Exit Short", "Short", stop=shortStopLoss, limit=shortTakeProfit)