MACD Moving Average Bull Bear Strategi Penukaran

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

img

Ringkasan

MACD Moving Average Bull Bear Conversion Strategy mengira garis DIFF dan DEA penunjuk MACD untuk menentukan sama ada trend pasaran telah berbalik, dengan itu menjana isyarat perdagangan. Ia menjadi panjang apabila DIFF melintasi di atas DEA dan menjadi pendek apabila DIFF melintasi di bawah DEA. Strategi ini juga menggabungkan penapis EMA harga untuk mengelakkan pecah palsu.

Logika Strategi

Strategi ini terutamanya berdasarkan garis DIFF dan DEA dari penunjuk MACD. MACD bermaksud Moving Average Convergence Divergence, yang terdiri daripada garis DIFF, DEA dan MACD. Di antara mereka, DIFF mewakili perbezaan antara EMA jangka pendek dan EMA jangka panjang, DEA adalah EMA DIFF yang digunakan untuk mengesahkan isyarat DIFF, dan MACD mewakili perbezaan antara DIFF dan DEA, yang digunakan untuk mengenal pasti perbezaan.

Apabila DIFF memecahkan di atas DEA, ia bermakna purata bergerak jangka pendek mula menguat dan pasaran menjadi bullish. Apabila DIFF memecahkan di bawah DEA, ia menunjukkan purata bergerak jangka pendek menjadi lemah dan pasaran menjadi bearish. Oleh itu, strategi ini panjang apabila DIFF melintasi di atas DEA dan pendek apabila melintasi di bawah.

Di samping itu, strategi ini menggabungkan penapis harga EMA untuk mengelakkan pecah palsu. Ia hanya pergi lama apabila DIFF memecahkan di atas DEA dan harga di bawah harga panjang sebelumnya, dan hanya pergi pendek apabila DIFF memecahkan di bawah DEA dan harga di atas harga pendek sebelumnya.

Analisis Kelebihan

Strategi penukaran Bull Bear Moving Average MACD menggabungkan penunjuk MACD dan penapis EMA harga untuk mengelakkan isyarat palsu yang dihasilkan semata-mata oleh MACD, sehingga meningkatkan prestasi perdagangan. Strategi ini dengan cepat mengenal pasti perubahan trend pasaran dan sesuai untuk perdagangan jangka pendek.

Kelebihan utama termasuk:

  1. Menggunakan MACD untuk mengenal pasti titik pembalikan trend dan menangkap titik perubahan
  2. Memasukkan penapis EMA harga untuk mengurangkan peluang pecah palsu
  3. Penjanaan isyarat pantas yang sesuai untuk perdagangan jangka pendek
  4. Trend pelaksanaan mengikuti untuk menangkap keuntungan trend jangka menengah
  5. Selaras dengan kebanyakan peniaga corak pemikiran perdagangan di titik penukaran

Analisis Risiko

Strategi penukaran purata bergerak MACD Bull Bear juga mempunyai beberapa risiko:

  1. MACD cenderung untuk menjana isyarat palsu, memerlukan penapis harga EMA tetapi juga akan terlepas beberapa pergerakan
  2. Perlu memantau garis DIFF dan DEA dengan teliti, penyesuaian parameter yang tidak betul meningkatkan isyarat palsu
  3. Isyarat pecah hanya mengambil kira 1 bar, dengan risiko akan dicambuk
  4. Strategi ini terutamanya bergantung pada silang DIFF / DEA untuk isyarat, boleh meningkatkan kekerapan perdagangan jika isyarat terlalu kerap

Cara utama untuk mengoptimumkan risiko adalah:

  1. Sesuaikan parameter MACD untuk mengurangkan isyarat palsu
  2. Meningkatkan kekuatan penapis untuk mengurangkan kejadian whipsaw
  3. Tambah penapis pada pegangan kedudukan untuk mengehadkan kekerapan perdagangan

Arahan pengoptimuman

Strategi penukaran purata bergerak MACD Bull Bear boleh dioptimumkan lagi dalam dimensi berikut:

  1. Mengoptimumkan parameter MACD tempoh DIFF/DEA
  2. Tambah penapis masa untuk kekerapan perdagangan yang lebih rendah
  3. Menggabungkan strategi stop loss / mengambil keuntungan untuk mengawal sasaran keuntungan
  4. Tambah penapis penunjuk lain seperti jalur BOLL dan KD
  5. Menggabungkan bias trend untuk mengelakkan perdagangan kontra-trend
  6. Membangunkan strategi keluar atau templat mengambil keuntungan berdasarkan rangka kerja strategi ini

Kesimpulan

MACD Moving Average Bull Bear Conversion Strategy mengenal pasti kemasukan pasaran bullish / bearish oleh isyarat silang DIFF dan DEA, dan menggunakan penapis EMA harga untuk menghilangkan isyarat palsu, dengan berkesan menentukan titik pembalikan trend pasaran. Dengan logik yang mudah dan jelas, ia dengan cepat mengenal pasti titik penukaran yang sesuai untuk perdagangan jangka pendek dan sederhana. Langkah seterusnya untuk mengoptimumkan termasuk menyesuaikan parameter, meningkatkan penapis, dan mengawal kekerapan perdagangan untuk menjadikan strategi lebih mantap.


/*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 lanjut