
Strategi ini adalah sistem perdagangan berbalik arah yang berkolaborasi dengan pelbagai indikator, yang menggabungkan tiga indikator teknikal, iaitu indikator yang agak lemah (RSI), indikator parasol (SAR) dan purata bergerak sederhana (SMA). Gagasan utama strategi ini adalah untuk memberi amaran kepada peluang berbalik arah yang berpotensi melalui isyarat RSI yang melampaui harga jual, kemudian menggunakan perubahan arah dalam indikator SAR untuk mengesahkan isyarat berbalik arah, dan akhirnya menggunakan purata bergerak sebagai rujukan stop loss yang dinamik.
Mekanisme operasi strategi terdiri daripada tiga langkah utama:
Strategi ini menggunakan kerjasama RSI dan SAR untuk membina sistem perdagangan pembalikan trend yang agak dipercayai. Menggunakan purata bergerak sebagai alat kawalan risiko dinamik, kedua-dua memastikan pengendalian trend yang berkesan, dan juga mengawal risiko secara dinamik. Kelebihan utama strategi adalah dengan pengesahan pelbagai isyarat dan peraturan perdagangan yang jelas, tetapi dalam aplikasi praktikal memerlukan perhatian terhadap pengenalan dan pengoptimuman dinamik parameter persekitaran pasaran. Dengan menambah penapis persekitaran pasaran, mengoptimumkan kaedah berhenti kerugian, dan memperbaiki arah pengurusan kedudukan, anda dapat meningkatkan lagi kestabilan dan keuntungan strategi.
/*backtest
start: 2024-07-15 00:00:00
end: 2025-02-15 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"BNB_USDT"}]
*/
//@version=5
strategy("SAR + RSI Strategy", overlay=true, margin_long=100, margin_short=100)
// ———————— SAR Parameters ————————
start = input(0.02, "SAR Start")
increment = input(0.02, "SAR Increment")
maximum = input(0.2, "SAR Maximum")
// ———————— RSI Parameters ————————
rsiLength = input(14, "RSI Length")
upperLevel = input(70, "RSI Upper Level")
lowerLevel = input(30, "RSI Lower Level")
// ———————— SMA Parameter ————————
smaLength = input(21, "SMA Exit Length")
// ———————— Indicators Calculation ————————
// SAR Calculation
sarValue = ta.sar(start, increment, maximum)
sarUp = sarValue < close
sarDown = sarValue > close
// RSI Calculation
rsi = ta.rsi(close, rsiLength)
rsiOverbought = ta.cross(rsi, upperLevel)
rsiOversold = ta.cross(rsi, lowerLevel)
// SMA Calculation
sma21 = ta.sma(close, smaLength)
// ———————— Entry Conditions ————————
longCondition =
// RSI oversold signal occurred in last 3 bars
(ta.barssince(rsiOversold) <= 3) and
// SAR reversal to bullish occurs now
sarUp and not sarUp[1]
shortCondition =
// RSI overbought signal occurred in last 3 bars
(ta.barssince(rsiOverbought) <= 3) and
// SAR reversal to bearish occurs now
sarDown and not sarDown[1]
// ———————— Exit Conditions ————————
exitLong = ta.crossunder(close, sma21)
exitShort = ta.crossover(close, sma21)
// ———————— Strategy Execution ————————
strategy.entry("Long", strategy.long, when=longCondition)
strategy.close("Long", when=exitLong)
strategy.entry("Short", strategy.short, when=shortCondition)
strategy.close("Short", when=exitShort)
// ———————— Visualizations ————————
// plot(sarValue, "SAR", style=plot.style_circles, color=sarUp ? color.green : color.red)
// plot(sma21, "21 SMA", color=color.orange)