
Strategi ini adalah sistem perdagangan pelacakan tren yang menggabungkan MACD (Moving Average Trend Indicator) dan SAR (Parallel Stop Loss Reversal Indicator). Melalui kombinasi organik dari indikator momentum dan indikator tren, analisis kuantitatif dari kekuatan tren dilakukan pada saat identifikasi arah tren pasar, sehingga menangkap peluang perdagangan yang lebih baik. Strategi ini menggunakan persimpangan dari garis MACD yang cepat untuk mengkonfirmasi pergerakan tren, sementara SAR digunakan untuk mengkonfirmasi arah tren dan mengatur stop loss bergerak.
Logika inti dari strategi ini terdiri dari dua bagian:
Aturan masuk:
Peraturan pertandingan:
Tambahkan filter lingkungan pasar: Dapat diperkenalkan indikator volatilitas (seperti ATR) untuk menilai kondisi pasar, mengurangi frekuensi perdagangan atau menghentikan perdagangan selama fluktuasi rendah.
Memperbaiki mekanisme stop loss: Selain SAR stop loss, dapat meningkatkan penggunaan kombinasi stop loss proporsi tetap dan stop loss bergerak, meningkatkan stabilitas kontrol risiko.
Pemilihan parameter optimasi: Kombinasi parameter MACD dan SAR dapat dioptimalkan secara otomatis untuk siklus pasar yang berbeda melalui metode pembelajaran mesin.
Menambahkan analisis volume transaksi: Menggabungkan indikator volume pertukaran untuk mengkonfirmasi kekuatan tren, meningkatkan keandalan sinyal.
Strategi ini menggunakan kombinasi MACD dan SAR garis parabola untuk membangun sistem perdagangan pelacakan tren yang lebih lengkap. Strategi ini memiliki keunggulan seperti kejernihan sinyal, risiko yang dapat dikendalikan, dan kemampuan beradaptasi yang kuat, tetapi juga memiliki keterbatasan seperti ketergantungan pada tren dan keterlambatan sinyal.
/*backtest
start: 2024-02-21 00:00:00
end: 2024-11-25 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("MACD + Parabolic SAR Strategy", shorttitle="MACD+SAR", overlay=true)
//========== User Inputs ==========//
// MACD parameters
fastLength = input.int(12, "MACD Fast Length")
slowLength = input.int(26, "MACD Slow Length")
signalLength = input.int(9, "MACD Signal Length")
// SAR parameters (start, step, maximum)
afStart = input.float(0.02, "SAR Start")
afIncrement = input.float(0.02, "SAR Increment")
afMax = input.float(0.2, "SAR Max")
//========== MACD Calculation ==========//
[macdLine, signalLine, histLine] = ta.macd(close, fastLength, slowLength, signalLength)
//========== Parabolic SAR Calculation ==========//
sarValue = ta.sar(afStart, afIncrement, afMax)
//========== Entry Conditions ==========//
// Long: MACD > Signal + close > SAR
longCondition = (macdLine > signalLine) and (close > sarValue)
// Short: MACD < Signal + close < SAR
shortCondition = (macdLine < signalLine) and (close < sarValue)
//========== Enter Positions ==========//
if longCondition
strategy.entry("Long", strategy.long)
if shortCondition
strategy.entry("Short", strategy.short)
//========== Exit Positions on Opposite Signal ==========//
if strategy.position_size > 0 and shortCondition
strategy.close("Long", comment="Exit Long")
if strategy.position_size < 0 and longCondition
strategy.close("Short", comment="Exit Short")