Strategi Konversi MACD Moving Average Bull Bear

Penulis:ChaoZhang, Tanggal: 2023-12-08 15:29:41
Tag:

img

Gambaran umum

Strategi konversi MACD Moving Average Bull Bear menghitung garis DIFF dan DEA dari indikator MACD untuk menentukan apakah tren pasar telah berbalik, sehingga menghasilkan sinyal perdagangan.

Logika Strategi

Strategi ini terutama didasarkan pada garis DIFF dan DEA dari indikator MACD. MACD adalah singkatan dari Moving Average Convergence Divergence, yang terdiri dari garis DIFF, DEA dan MACD. Di antara mereka, DIFF mewakili perbedaan antara EMA jangka pendek dan EMA jangka panjang, DEA adalah EMA dari DIFF yang digunakan untuk memverifikasi sinyal DIFF, dan MACD mewakili perbedaan antara DIFF dan DEA, yang digunakan untuk mengidentifikasi divergensi.

Ketika DIFF melanggar di atas DEA, itu berarti bahwa rata-rata bergerak jangka pendek mulai menguat dan pasar menjadi bullish. Ketika DIFF melanggar di bawah DEA, itu menunjukkan bahwa rata-rata bergerak jangka pendek menjadi lemah dan pasar menjadi bearish. Oleh karena itu, strategi ini berjalan panjang ketika DIFF melintasi di atas DEA dan berjalan pendek saat melintasi di bawahnya.

Selain itu, strategi ini menggabungkan filter EMA harga untuk menghindari pecah palsu. hanya pergi panjang ketika DIFF melanggar di atas DEA dan harga di bawah harga panjang sebelumnya, dan hanya pergi pendek ketika DIFF melanggar di bawah DEA dan harga di atas harga pendek sebelumnya.

Analisis Keuntungan

Strategi Konversi Bull Bear Moving Average MACD menggabungkan indikator MACD dan filter EMA harga untuk menghindari sinyal palsu yang dihasilkan hanya oleh MACD, sehingga meningkatkan kinerja perdagangan. Strategi ini dengan cepat mengidentifikasi perubahan tren pasar dan cocok untuk perdagangan jangka pendek.

Keuntungan utama meliputi:

  1. Menggunakan MACD untuk mengidentifikasi titik pembalikan tren dan menangkap titik balik
  2. Mengintegrasikan filter EMA harga untuk mengurangi peluang breakout palsu
  3. Generasi sinyal cepat yang cocok untuk perdagangan jangka pendek
  4. Tren pelaksanaan mengikuti untuk menangkap keuntungan tren jangka menengah
  5. Sesuai dengan sebagian besar pedagang pola berpikir perdagangan di titik konversi

Analisis Risiko

Strategi Konversi Rata-rata Gerak MACD Bull Bear juga memiliki beberapa risiko:

  1. MACD cenderung menghasilkan sinyal palsu, membutuhkan filter harga EMA tetapi juga akan melewatkan beberapa gerakan
  2. Perlu memantau ketat DIFF dan DEA jalur, pengaturan parameter yang tidak tepat meningkatkan sinyal palsu
  3. Sinyal pecah hanya mempertimbangkan 1 bar, dengan risiko dicambuk
  4. Strategi terutama bergantung pada DIFF/DEA crossover untuk sinyal, dapat meningkatkan frekuensi perdagangan jika sinyal terlalu sering

Cara utama untuk mengoptimalkan risiko adalah:

  1. Sesuaikan parameter MACD untuk mengurangi sinyal palsu
  2. Meningkatkan kekuatan filter untuk mengurangi kejadian whipsaw
  3. Tambahkan filter pada posisi yang dipegang untuk membatasi frekuensi perdagangan

Arahan Optimasi

Strategi Konversi Bull Bear Moving Average MACD dapat dioptimalkan lebih lanjut dalam dimensi berikut:

  1. Mengoptimalkan parameter MACD periode DIFF/DEA
  2. Tambahkan filter waktu untuk frekuensi perdagangan yang lebih rendah
  3. Mengintegrasikan strategi stop loss/take profit untuk mengendalikan target keuntungan
  4. Tambahkan filter indikator lainnya seperti BOLL band dan KD
  5. Menggabungkan bias tren untuk menghindari perdagangan kontra-tren
  6. Mengembangkan strategi keluar atau profit taking templates berdasarkan kerangka strategi ini

Kesimpulan

MACD Moving Average Bull Bear Conversion Strategy mengidentifikasi masuk pasar bullish/bearish dengan sinyal crossover DIFF dan DEA, dan menggunakan filter EMA harga untuk menghilangkan sinyal palsu, secara efektif menentukan titik pembalikan tren pasar. Dengan logika yang sederhana dan jelas, ia dengan cepat mengidentifikasi titik konversi yang cocok untuk perdagangan jangka pendek dan menengah. Langkah selanjutnya untuk mengoptimalkan termasuk menyesuaikan parameter, meningkatkan filter, dan mengontrol frekuensi perdagangan untuk membuat strategi lebih kuat.


/*backtest
start: 2022-12-01 00:00:00
end: 2023-12-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("macd_strategy", 
          shorttitle="macd", 
          overlay=true, 
          pyramiding=1, 
          max_bars_back=5000, 
          calc_on_order_fills = false, 
          calc_on_every_tick=true, 
          default_qty_type=strategy.percent_of_equity, 
          default_qty_value=100, 
          commission_type =strategy.commission.percent, 
          commission_value=0.00075)
[diff, dea, _] = macd(close, 12, 26, 7)
dea_close = ema(diff, 3)
price = ema(close, 9)
plot(price)
cross_over_price = na
cross_over_signal = na
cross_over_price := cross_over_price[1]
cross_over_signal := cross_over_signal[1]

cross_under_price = na
cross_under_signal = na
cross_under_price := cross_under_price[1]
cross_under_signal := cross_under_signal[1]
if (crossover(diff,dea))
    cross_over_price := price[1]
    cross_over_signal := diff
if (crossunder(diff,dea))
    cross_under_price := price[1]
    cross_under_signal := diff
if dea > 0
    cross_over_price = na
    cross_over_signal = na
else
    cross_under_price = na
    cross_under_signal = na
if diff > 0
    if cross_under_price > cross_under_price[1]*1 and cross_under_signal < cross_under_signal[1]*0.95
        strategy.entry("S", strategy.short,  comment="S")
else
    if cross_over_price < cross_over_price[1]*1 and cross_over_signal > cross_over_signal[1]*0.95
        strategy.entry("B", strategy.long,  comment="B")
// strategy.exit("exit_s", "S", stop = strategy.position_avg_price*1.05, when=strategy.position_size < 0)
// strategy.exit("exit_b", "B", stop = strategy.position_avg_price*0.95, when=strategy.position_size > 0)
strategy.close_all(when=(strategy.position_size < 0 and (dea < 0 or diff > cross_under_signal*1 or crossover(diff, dea)) or (strategy.position_size > 0 and (dea > 0 or diff < cross_over_signal*1 or crossunder(diff, dea)))))

Lebih banyak