
Strategi ini adalah sistem perdagangan kuantitatif yang didasarkan pada crossover rata-rata dan MACD, yang menggabungkan beberapa indikator teknis untuk mengoptimalkan waktu masuk dan keluar. Strategi ini terutama menggunakan persilangan EMA9 dan WMA30 sebagai sinyal masuk, sambil mengkonfirmasi dalam kombinasi dengan MACD. Kondisi keluar lebih kompleks, mempertimbangkan hubungan harga dengan rata-rata dan perubahan dalam indikator MACD.
Syarat masuk:
Keterangan:
Indikator tambahan:
Gagasan inti dari strategi ini adalah memanfaatkan persilangan garis rata-rata jangka pendek (EMA9) dengan garis rata-rata jangka menengah (WMA30) untuk menangkap tren naik potensial, sambil menggunakan indikator MACD untuk memfilter sinyal palsu. Kondisi keluar dirancang untuk menghentikan atau mengunci keuntungan tepat waktu dan menghindari penarikan balik yang disebabkan oleh terlalu banyak posisi.
Analisis Komprehensif Multi-Indikator: Menggabungkan berbagai indikator teknis seperti Garis Rata-rata, MACD, VWAP, dan lain-lain, memberikan perspektif analisis pasar yang lebih komprehensif dan membantu meningkatkan akurasi keputusan perdagangan.
Fleksibel mekanisme masuk: MACD dikonfirmasi melalui EMA dan WMA cross-coordination, yang dapat menangkap tahap awal tren dan secara efektif memfilter beberapa sinyal palsu.
Kontrol risiko yang ketat: Menggunakan beberapa kondisi berangkat, termasuk berturut-turut di bawah garis rata-rata jangka pendek dan MACD sinyal pembalikan, membantu menghentikan kerugian tepat waktu, mengendalikan risiko.
Pertimbangkan periode waktu yang berbeda: Memperkenalkan SMA 200 hari dan EMA 21 hari, memungkinkan strategi untuk menganalisis dalam kerangka waktu yang berbeda, meningkatkan fleksibilitas strategi.
Referensi harga berdasarkan volume transaksi: Dengan indikator VWAP, faktor volume transaksi dipertimbangkan untuk memberikan referensi yang lebih representatif untuk pergerakan harga.
Risiko perdagangan yang sering: Strategi crossover rata-rata dapat menyebabkan perdagangan yang sering, meningkatkan biaya transaksi, dan mempengaruhi pendapatan keseluruhan.
Risiko keterbelakangan: Moving Average pada dasarnya merupakan indikator keterbelakangan, yang mungkin tidak dapat menangkap titik-titik pergeseran dalam waktu yang tepat di pasar yang sangat berfluktuasi.
Risiko penembusan palsu: Pada tahap penyusunan horizontal, sinyal penembusan palsu dapat terjadi secara teratur, yang menyebabkan kerugian berturut-turut.
Tergantung pada tren: Strategi ini bekerja dengan baik di pasar yang jelas sedang tren, tetapi mungkin tidak bekerja dengan baik di pasar yang bergolak.
Sensitivitas parameter: Efek kebijakan mungkin sangat sensitif terhadap pengaturan parameter (seperti periode rata-rata, parameter MACD, dll.) yang perlu disesuaikan secara teratur.
Memperkenalkan indikator volatilitas: Pertimbangkan untuk menambahkan indikator ATR (Average True Range) untuk menyesuaikan posisi stop loss sesuai dengan fluktuasi pasar, meningkatkan fleksibilitas manajemen risiko.
Optimalkan mekanisme keluar: Anda dapat mempertimbangkan untuk menambahkan trailing stop atau stop loss dinamis berdasarkan volatilitas untuk lebih mengunci keuntungan.
Menambahkan penyaringan lalu lintas: Menggabungkan analisis lalu lintas pada saat sinyal masuk dikonfirmasi untuk mengurangi risiko pelanggaran palsu.
Klasifikasi kondisi pasar: Mengembangkan model klasifikasi kondisi pasar yang menggunakan parameter atau strategi perdagangan yang berbeda dalam kondisi pasar yang berbeda (trend, getaran).
Analisis multi-frame: memperluas strategi ke beberapa frame waktu, meningkatkan akurasi penerimaan melalui konfirmasi sinyal pada periode yang berbeda.
Optimasi pembelajaran mesin: Mengoptimalkan parameter strategi secara dinamis menggunakan algoritma pembelajaran mesin untuk meningkatkan kemampuan strategi untuk beradaptasi dengan perubahan pasar.
Enhanced EMA/WMA crossover strategy with comprehensive exit conditions adalah sistem trading kuantitatif yang menggabungkan berbagai indikator teknis untuk menangkap tren pasar melalui crossover rata-rata dan MACD indicator, dan untuk mengendalikan risiko menggunakan beberapa kondisi. Keunggulan strategi ini adalah perspektif analisis pasar yang komprehensif dan mekanisme manajemen risiko yang ketat, tetapi juga menghadapi tantangan seperti keterbelakangan dan sensitivitas parameter.
/*backtest
start: 2023-07-25 00:00:00
end: 2024-07-30 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
//X version 11
strategy("EMA9/WMA30 Crossover Strategy with Enhanced Exit Conditions", shorttitle="EMA9/WMA30 Enhanced Exit", overlay=true)
// Inputs
lengthEma = input.int(9, title="Length for EMA")
lengthWma = input.int(30, title="Length for WMA")
fastLength = input.int(12, title="Fast Length for MACD")
slowLength = input.int(26, title="Slow Length for MACD")
macdLength = input.int(9, title="Signal Smoothing for MACD")
pointsGainGoal = input.float(33.00, title="Points Gain Goal")
pointsLossGoal = input.float(-50.00, title="Points Loss Goal")
// Calculating EMA, WMA, and MACD
EMA9 = ta.ema(close, lengthEma)
WMA30 = ta.wma(close, lengthWma)
[macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, macdLength)
// Adding 200 SMA, 21 EMA, and VWAP
SMA200 = ta.sma(close, 200)
EMA21 = ta.ema(close, 21)
VWAPValue = ta.vwap(close)
// Buy Signal based on EMA/WMA Crossover and MACD confirmation
crossover = ta.crossover(EMA9, WMA30)
buySignal = crossover and macdLine > signalLine
// Entry
var float entryPrice = na
if (buySignal)
strategy.entry("Buy", strategy.long)
entryPrice := close
// Counters for consecutive closes below EMA9 and WMA30
var int belowEMA9Count = 0
var int belowWMA30Count = 0
belowEMA9Count := close < EMA9 ? belowEMA9Count + 1 : 0
belowWMA30Count := close < WMA30 ? belowWMA30Count + 1 : 0
// Exit Conditions
MACDBearishCross = ta.crossunder(macdLine, signalLine)
exitCondition1 = belowEMA9Count >= 2 and belowWMA30Count >= 1
exitCondition2 = MACDBearishCross
// Exit
if (strategy.position_size > 0)
if (exitCondition1 or exitCondition2)
strategy.close("Buy")
entryPrice := na
belowEMA9Count := 0
belowWMA30Count := 0
// Visualization
plot(EMA9, title="EMA 9", color=color.blue)
plot(WMA30, title="WMA 30", color=color.red)
plot(SMA200, title="SMA 200", color=color.orange)
plot(EMA21, title="EMA 21", color=color.purple)
plot(VWAPValue, title="VWAP", color=color.green)