Strategi penukaran lembu-beruang purata pergerakan MACD


Tarikh penciptaan: 2023-12-08 15:29:41 Akhirnya diubah suai: 2023-12-08 15:29:41
Salin: 0 Bilangan klik: 772
1
fokus pada
1621
Pengikut

Strategi penukaran lembu-beruang purata pergerakan MACD

Gambaran keseluruhan

Strategi penukaran bullish-bearish MACD dengan mengira DIFF dan DEA rata-rata indikator MACD untuk menentukan sama ada trend pasaran bertukar, dan seterusnya menghasilkan isyarat perdagangan. Apabila DIFF di atas melewati DEA, lakukan lebih banyak; apabila DIFF di bawah melewati DEA, lakukan kosong. Strategi ini menggabungkan penyaringan EMA rata-rata harga untuk mengelakkan pecah palsu.

Prinsip Strategi

Strategi ini adalah berdasarkan pada rata-rata DIFF dan DEA dalam indikator MACD. MACD mewakili perbezaan purata bergerak indeks yang terdiri daripada garis DIFF, DEA, dan MACD. Di antaranya, garis DIFF mewakili perbezaan antara rata-rata EMA jangka pendek dan rata-rata EMA jangka panjang, garis DEA adalah rata-rata EMA DIFF, yang digunakan untuk mengesahkan isyarat garis DIFF, dan garis MACD adalah perbezaan antara DIFF dengan mengurangkan DEA, yang diwakili oleh belakang.

Apabila DIFF naik melampaui DEA, bermakna garis purata jangka pendek mula kuat, pasaran melangkah lebih tinggi, dan apabila DIFF turun melampaui DEA, bermakna garis purata jangka pendek mula lemah, pasaran melangkah lebih rendah. Oleh itu, strategi ini melakukan lebih banyak apabila DIFF melintasi DEA, dan melintasi kosong.

Pada masa yang sama, strategi ini juga menggabungkan EMA rata-rata harga untuk menyaring pecah palsu. Hanya apabila DIFF naik melampaui DEA, dan harga lebih rendah daripada kenaikan harga terakhir; hanya apabila DIFF turun melampaui DEA, dan harga lebih tinggi daripada kenaikan harga terakhir.

Analisis kelebihan

Strategi penukaran bullish-bearish MACD yang bersesuaian menggabungkan penunjuk MACD dan harga EMA yang bersesuaian, mengelakkan isyarat palsu yang dihasilkan hanya oleh penunjuk MACD, meningkatkan keberkesanan perdagangan. Strategi ini menilai perubahan trend pasaran dengan cepat dan sesuai untuk operasi garis pendek.

Kelebihan utama adalah:

  1. Menggunakan indikator MACD untuk menentukan titik peralihan trend, menangkap masa perubahan pasaran
  2. Penapisan digabungkan dengan EMA rata-rata harga untuk mengurangkan peluang untuk pecah palsu
  3. Isyarat dagangan dihasilkan dengan cepat, sesuai untuk operasi garis pendek
  4. Mengikut trend, anda boleh mendapatkan keuntungan jangka menengah.
  5. Menggunakan pemikiran perdagangan perubahan trend yang sesuai dengan pola pemikiran kebanyakan peniaga

Analisis risiko

Strategi penukaran bullish-bearish pada MACD mempunyai beberapa risiko, terutamanya:

  1. Indeks MACD mudah menghasilkan isyarat yang salah, memerlukan penapis harga EMA untuk mengesahkan, tetapi juga akan terlepas sebahagian daripada pergerakan
  2. Perhatikan dengan teliti DIFF dan DEA rata-rata, jika parameter yang tidak betul disesuaikan, isyarat kesilapan akan meningkat
  3. Sinyal penembusan hanya menilai satu K, kemungkinan berlaku kebocoran
  4. Strategi menggunakan silang DIFF dan DEA sebagai isyarat dagangan utama, jika keadaan tidak jelas, isyarat silang dihasilkan dengan kerap dan akan meningkatkan frekuensi dagangan

Risiko-risiko ini boleh dioptimumkan dalam beberapa aspek:

  1. Sesuaikan parameter MACD untuk mengurangkan isyarat salah
  2. Meningkatkan intensiti penapis untuk mengurangkan kemungkinan tersangkut
  3. Meningkatkan penapisan pegangan dan sekatan frekuensi dagangan

Arah pengoptimuman

Strategi penukaran bullish-bearish MACD rata-rata mempunyai ruang untuk pengoptimuman, yang boleh dioptimumkan dari dimensi berikut:

  1. Mengoptimumkan parameter MACD, DIFF, DEA boleh disesuaikan;
  2. Meningkatkan penapis tempoh pegangan dan mengurangkan frekuensi dagangan;
  3. Meningkatkan strategi penangguhan kerugian dan mengawal kerugian tunggal;
  4. Penapisan dalam kombinasi dengan penapisan lain seperti BOLL naik dan turun, KD dan sebagainya;
  5. Meningkatkan penilaian trend dan mengelakkan dagangan berlawanan arah.
  6. Anda boleh membina templat strategi keluar atau berhenti berdasarkan kerangka strategi ini.

ringkaskan

Strategi penukaran bullish dan bearish MACD melalui DIFF, DEA untuk menilai masa masuk pasaran dengan mata wang dan mata wang kosong, dan bekerjasama dengan harga EMA untuk memfilterkan isyarat palsu, untuk mencapai kesan penukaran tren pasaran dengan cepat. Strategi ini menggunakan logik perdagangan yang mudah dan jelas, menilai titik peralihan dengan cepat, sesuai untuk garis pendek dan garis tengah. Langkah operasi seterusnya dapat dioptimumkan dari segi penyesuaian parameter, meningkatkan penapis, mengawal frekuensi perdagangan, dan lain-lain.

Kod sumber strategi
/*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)))))