Strategi konversi bull-bear moving average MACD


Tanggal Pembuatan: 2023-12-08 15:29:41 Akhirnya memodifikasi: 2023-12-08 15:29:41
menyalin: 0 Jumlah klik: 468
1
fokus pada
1221
Pengikut

Strategi konversi bull-bear moving average MACD

Ringkasan

MACD Average Line Bull/Bear Conversion Strategi Menghitung MACD Indikator DIFF dan DEA Average Line untuk menentukan apakah tren pasar telah berbalik dan menghasilkan sinyal perdagangan. Ketika DIFF di atas melewati DEA, lakukan over; Ketika DIFF di bawah melewati DEA, lakukan short. Strategi ini juga menggabungkan harga EMA Average Line Filter untuk menghindari terjadinya false breakout.

Prinsip Strategi

Strategi ini terutama didasarkan pada rata-rata DIFF dan DEA dari indikator MACD. MACD mewakili perbedaan rata-rata bergerak indeks yang terdiri dari garis DIFF, DEA, dan MACD. Di antaranya, garis DIFF mewakili perbedaan antara rata-rata EMA jangka pendek dan rata-rata EMA jangka panjang.

Ketika DIFF naik melewati DEA, berarti bahwa rata-rata jangka pendek mulai kuat, pasar masuk ke posisi teratas, dan ketika DIFF turun melewati DEA, berarti bahwa rata-rata jangka pendek mulai lemah, pasar masuk ke posisi teratas. Oleh karena itu, strategi ini melakukan lebih banyak ketika melewati DEA pada DIFF, dan melakukan lebih banyak ketika melewati.

Pada saat yang sama, strategi ini juga menggabungkan EMA rata-rata harga untuk memfilter penembusan palsu. Hanya melakukan lebih banyak ketika DIFF naik melampaui DEA dan harga lebih rendah dari harga yang lebih tinggi sebelumnya; hanya melakukan lebih banyak ketika DIFF turun melampaui DEA dan harga lebih tinggi dari harga yang lebih rendah sebelumnya.

Analisis Keunggulan

Strategi konversi MACD bullish/bearish yang menggabungkan MACD dengan harga EMA, menghindari sinyal palsu yang dihasilkan oleh MACD saja, meningkatkan efektivitas perdagangan. Strategi ini menilai tren pasar yang berubah dengan cepat, cocok untuk operasi garis pendek.

Keunggulan utama adalah:

  1. Menggunakan indikator MACD untuk menentukan titik pergeseran tren, menangkap saat pasar berbalik
  2. Filtrasi dengan EMA rata-rata untuk mengurangi peluang terobosan palsu
  3. Sinyal perdagangan dihasilkan cepat, cocok untuk operasi garis pendek
  4. Mengikuti tren dan mendapatkan keuntungan jangka menengah dari tren
  5. Mengadopsi pola pikir yang sesuai dengan pola pikir sebagian besar pedagang

Analisis risiko

Ada beberapa risiko dalam strategi konversi bullish/bearish pada MACD, yang meliputi:

  1. Indikator MACD rentan terhadap sinyal yang salah, yang membutuhkan filter EMA harga untuk verifikasi, tetapi juga akan melewatkan bagian dari pergerakan
  2. Perhatikan DIFF dan DEA rata-rata, jika pengaturan parameter tidak tepat akan meningkatkan sinyal kesalahan
  3. Sinyal penembusan hanya menilai 1 K-line, kemungkinan terjadi kebocoran
  4. Strategi menggunakan DIFF dan DEA crossover sebagai sinyal perdagangan utama. Jika pasar tidak jelas, sinyal crossover akan terjadi lebih sering dan akan meningkatkan frekuensi perdagangan

Risiko-risiko ini dapat dioptimalkan dalam beberapa hal:

  1. Menyesuaikan parameter MACD untuk mengurangi sinyal palsu
  2. Tingkatkan intensitas filter untuk mengurangi kemungkinan terjerat
  3. Meningkatkan filter kepemilikan dan membatasi frekuensi transaksi

Arah optimasi

Strategi konversi bullish/bearish pada MACD rata-rata juga memiliki ruang untuk optimalisasi, yang dapat dioptimalkan dari beberapa dimensi berikut:

  1. Optimalkan parameter MACD, DIFF, DEA siklus dapat disesuaikan;
  2. Meningkatkan penyaringan jangka waktu dan mengurangi frekuensi transaksi;
  3. Meningkatkan strategi penghentian kerugian dan pengendalian kerugian tunggal;
  4. Filtrasi dengan indikator lain, seperti BOLL naik turun, KD, dan lain-lain;
  5. Untuk meningkatkan penilaian tren dan menghindari perdagangan berlawanan arah;
  6. Anda dapat mengembangkan templat strategi keluar atau berhenti berdasarkan kerangka strategi tersebut.

Meringkaskan

Strategi MACD rata-rata bull/bear transformasi strategi dengan DIFF, DEA silang menilai waktu pasar masuk ke multihead dan head, dan bekerja sama dengan harga EMA rata-rata filter palsu sinyal, mencapai efek cepat menilai perubahan tren pasar. Strategi ini dengan logika perdagangan yang sederhana dan jelas, menilai titik perubahan dengan cepat, cocok untuk garis pendek dan garis tengah. Operasi langkah selanjutnya dapat dioptimalkan dari penyesuaian parameter, meningkatkan filter, kontrol frekuensi perdagangan, dan lain-lain, membuat strategi lebih stabil.

Kode 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)))))