
Strategi ini adalah sistem perdagangan trend-tracking yang menggabungkan MACD (Moving Average Trend Indicator) dan SAR (Parallel Stop Loss Reversal Indicator). Melalui gabungan organik indikator momentum dan indikator trend, analisis kuantitatif terhadap kekuatan trend dilakukan pada masa yang sama untuk mengenal pasti arah trend pasaran, sehingga menangkap peluang perdagangan yang lebih baik. Strategi ini menggunakan persilangan garis laju MACD untuk mengesahkan pergerakan trend, sambil menggunakan titik SAR untuk mengesahkan arah trend dan menetapkan stop loss bergerak.
Logik utama strategi ini terdiri daripada dua bahagian:
Peraturan kemasukan:
Peraturan perlawanan:
Tambahkan penapis persekitaran pasaran: Indikator turun naik boleh diperkenalkan (seperti ATR) untuk menilai keadaan pasaran, mengurangkan frekuensi perdagangan atau menghentikan perdagangan semasa turun naik rendah.
Meningkatkan mekanisme stop loss: Selain daripada penangguhan SAR, penangguhan peratusan tetap dan penangguhan bergerak boleh digunakan untuk meningkatkan kestabilan kawalan risiko.
Pemilihan parameter pengoptimuman: Menggunakan kaedah pembelajaran mesin, kombinasi parameter MACD dan SAR dapat dioptimumkan secara automatik untuk kitaran pasaran yang berbeza.
Menambah analisis jumlah transaksi: Gabungan penunjuk kuantiti untuk mengesahkan kekuatan trend dan meningkatkan kebolehpercayaan isyarat.
Strategi ini dengan menggabungkan MACD dan SAR garis parallel, membina sistem perdagangan trend yang lebih lengkap. Strategi ini mempunyai kelebihan seperti kepastian isyarat, risiko yang boleh dikawal, dan daya serap yang kuat, tetapi juga mempunyai keterbatasan seperti ketergantungan pada trend, dan kelewatan isyarat. Dengan menambah penapisan persekitaran pasaran, dan mengoptimumkan mekanisme penangguhan kerugian, anda dapat meningkatkan lagi kestabilan dan kepraktisan strategi.
/*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")