Strategi ini terutamanya menggunakan garis purata bergerak EMA dan penunjuk MACD untuk menentukan perubahan dalam corak pasaran dan melaksanakan strategi perdagangan momentum. Idea utama adalah untuk pergi lama apabila garis EMA jangka pendek melintasi di atas garis EMA jangka panjang dan MACD serentak melintasi di atas 0, dan pergi pendek apabila EMA jangka pendek melintasi di bawah EMA jangka panjang dan MACD serentak melintasi di bawah 0.
Strategi ini mengintegrasikan penunjuk garis purata bergerak dan penunjuk MACD.
Pertama, ia menggunakan dua penunjuk EMA dengan panjang kitaran yang berbeza, satu adalah garis EMA 25 kitaran dan yang lain adalah garis EMA 50 kitaran. Garis EMA 25 kitaran boleh mencerminkan trend jangka pendek manakala garis EMA 50 kitaran mencerminkan trend jangka sederhana dan jangka panjang. Apabila garis EMA jangka pendek melintasi di atas garis EMA jangka panjang dari bawah, ia menunjukkan pasaran bertukar dari penurunan ke atas, yang merupakan isyarat silang emas untuk pergi panjang. Apabila EMA jangka pendek melintasi di bawah EMA jangka panjang dari atas, ia menunjukkan pasaran bertukar dari atas ke bawah, yang merupakan isyarat silang kematian untuk pergi pendek.
Pada masa yang sama, strategi ini juga menggabungkan isyarat penunjuk MACD. Indikator MACD termasuk garis DIF dan garis DEA, yang mewakili perbezaan antara purata bergerak eksponensial jangka pendek dan jangka panjang, dikira oleh EMA berganda. Strategi ini menetapkan DIF sebagai perbezaan antara EMA 12 hari dan EMA 26 hari. Garis DEA adalah purata bergerak eksponensial 9 hari DIF. Garis DIF mewakili momentum sementara garis DEA mewakili purata MACD. Apabila DIF melintasi di atas garis DEA dari bawah, ia menghasilkan isyarat beli. Apabila DIF melintasi di bawah DEA dari atas, ia menghasilkan isyarat jual.
Menggabungkan kedua-dua penunjuk ini, isyarat masuk panjang dihasilkan apabila EMA 25 hari mempunyai salib emas dari EMA 50 hari, sementara garis DIF MACD
Ini adalah strategi dual-track yang sangat biasa yang disatukan dengan penunjuk MACD untuk menjana isyarat perdagangan yang lebih boleh dipercayai dengan kelebihan berikut:
Menggunakan garis EMA berganda dapat mengelakkan whipsaws dan pecah palsu untuk menjana isyarat perdagangan yang lebih boleh dipercayai.
Mengintegrasikan penunjuk MACD dapat mengesahkan isyarat dagangan dan mengelakkan risiko isyarat EMA dual-track palsu, meningkatkan keberkesanan praktikal strategi.
Menggunakan garis 25 hari dan 50 hari sebagai garis pantas dan perlahan, pemilihan parameter lebih tepat yang dapat menangkap perubahan trend yang ketara dalam kitaran jangka sederhana dan pendek.
Dengan mengejar momentum dan pemikiran pembalikan purata, strategi ini boleh melampaui indeks penanda aras dan mencapai pulangan yang ketara semasa aliran naik dan turun yang tajam di pasaran yang lebih luas.
Logik strategi adalah mudah dan mudah, mudah difahami dan dilaksanakan, sesuai untuk pemula kuantitatif.
Parameter boleh dioptimumkan dengan teliti untuk menyesuaikan strategi dengan lebih baik di seluruh produk dan persekitaran pasaran yang berbeza.
Masih ada beberapa risiko yang patut diperhatikan untuk strategi ini:
Kemungkinan isyarat EMA palsu masih wujud, whipsaw masih boleh berlaku dalam pergerakan pasaran yang ganas.
Parameter MACD memerlukan pengoptimuman dan penyesuaian berterusan, jika tidak, isyarat yang salah atau kelewatan isyarat mungkin berlaku.
Perlu berhati-hati sama ada tetapan titik stop loss adalah munasabah untuk mengelakkan terobosan tidak berkesan yang menyebabkan kerugian yang lebih besar.
Perlu memberi perhatian kepada perubahan dalam persekitaran pasaran dan dasar untuk mengelakkan risiko sistem yang menyebabkan kerugian yang lebih besar.
Keperluan untuk mengawal saiz kedudukan dan tahap leverage untuk mengelakkan risiko pembubaran paksa daripada trend satu hala.
Strategi ini juga boleh dioptimumkan dalam aspek berikut:
Uji kombinasi parameter yang lebih tepat dengan kecekapan praktikal yang lebih tinggi, seperti menggunakan garis EMA 20 hari dan 60 hari sebagai trek dagangan, dengan DIF sebagai perbezaan antara EMA 10 hari dan EMA 20 hari.
Meningkatkan pengesahan daripada penunjuk jumlah dagangan untuk mengelakkan pecah palsu jumlah yang rendah.
Menggabungkan penunjuk turun naik seperti ATR untuk menentukan kaedah stop loss yang lebih saintifik.
Menggunakan algoritma pembelajaran mesin untuk mengoptimumkan parameter secara automatik untuk menyesuaikan diri secara dinamik dengan persekitaran pasaran yang berubah.
Tambah modul kawalan saiz kedudukan untuk menyesuaikan saiz secara dinamik berdasarkan prestasi strategi dan metrik.
Boleh merangka isyarat strategi pada carta jangka masa yang lebih tinggi untuk membantu keputusan mengenai perdagangan arah jangka panjang.
Strategi ini mengintegrasikan kekuatan penunjuk garis purata bergerak dan penunjuk MACD dengan menilai corak lilin berkualiti tinggi melalui garis EMA berganda yang digabungkan dengan pencocokan DIF dan DEA pada arah momentum MACD, membentuk strategi perdagangan momentum yang stabil dan cekap. Logiknya mudah dan mudah difahami dan dioptimumkan, sangat sesuai untuk pedagang kuant untuk memulakan dan pelaksanaan. Melalui ujian dan pengoptimuman berterusan, strategi ini boleh menjadi salah satu strategi nilai yang melebihi indeks.
/*backtest start: 2022-12-05 00:00:00 end: 2023-12-11 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title="EMA+MACD", shorttitle="EMA+MACD", overlay=true) // Getting inputs fast_length = input(title="Fast Length", type=input.integer, defval=12) slow_length = input(title="Slow Length", type=input.integer, defval=26) src = input(title="Source", type=input.source, defval=close) signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9) sma_source = input(title="Oscillator MA Type", type=input.string, defval="EMA", options=["SMA", "EMA"]) sma_signal = input(title="Signal Line MA Type", type=input.string, defval="EMA", options=["SMA", "EMA"]) fast_ma = sma_source == "SMA" ? sma(src, fast_length) : ema(src, fast_length) slow_ma = sma_source == "SMA" ? sma(src, slow_length) : ema(src, slow_length) macd = fast_ma - slow_ma signal = sma_signal == "SMA" ? sma(macd, signal_length) : ema(macd, signal_length) hist = macd - signal len1 = input(title="Len Ema 1 ",type=input.integer,defval=25) len2 = input(title="Len Ema 2 ",type=input.integer,defval=50) ema1 = ema(src,len1) ema2 = ema(src,len2) bull = crossover(ema1,ema2) and macd > 0 bear = crossover(ema2,ema1) and macd < 0 l1 = bull ? label.new(x=bar_index,y=low,yloc=yloc.belowbar,text="BUY",color=color.green,textcolor=color.white,style=label.style_triangleup) : na l2 = bear ? label.new(x=bar_index,y=high,yloc=yloc.abovebar,text="SELL",color=color.red,textcolor=color.white,style=label.style_triangledown) : na strategy.entry("LONG",strategy.long,when=bull) strategy.entry("SHORT",strategy.short,when=bear)