Strategi Penembusan Rata-rata Bergerak Ganda

Penulis:ChaoZhang, Tarikh: 2024-04-01 11:58:55
Tag:

img

Ringkasan

Strategi Dual Moving Average Lagging Breakout adalah strategi perdagangan analisis teknikal yang biasa digunakan. Strategi ini menggabungkan dua purata bergerak mudah (SMA) dengan tempoh yang berbeza dan penunjuk Julat Benar Purata (ATR), bertujuan untuk menangkap titik perubahan dalam trend pasaran dan mencapai perdagangan berisiko rendah dan pulangan tinggi. Idea utamanya adalah untuk memanfaatkan sifat tertinggal purata bergerak dan turun naik pasaran, menghasilkan isyarat perdagangan apabila harga menembusi purata bergerak dan turun naik berada dalam julat yang boleh dikawal.

Prinsip Strategi

Prinsip-prinsip utama strategi ini adalah seperti berikut:

  1. Mengira dua purata mudah bergerak (SMA) dengan tempoh yang berbeza, dengan tempoh lalai 14 dan 50.
  2. Mengira penunjuk ATR untuk mengukur turun naik pasaran, dengan tempoh lalai 14.
  3. Menggambarkan jalur ATR atas dan bawah sebagai julat rujukan untuk turun naik harga. Julat atas diperolehi dengan menambah ATR didarabkan dengan faktor (default 1.5) kepada harga tertinggi, dan jalur bawah diperolehi dengan mengurangkan ATR didarabkan dengan faktor dari harga terendah.
  4. Apabila harga penutupan melintasi di atas purata bergerak jangka pendek dan purata bergerak jangka pendek di atas purata bergerak jangka panjang, isyarat panjang dihasilkan, dan anak panah ke atas ditarik di bawah candlestick.
  5. Apabila harga penutupan melintasi di bawah purata bergerak jangka pendek dan purata bergerak jangka pendek di bawah purata bergerak jangka panjang, isyarat pendek dihasilkan, dan anak panah ke bawah ditarik di atas candlestick.
  6. Tetapkan tahap stop-loss dan take-profit. Tahap stop-loss adalah harga terendah dikurangkan ATR didarabkan dengan faktor, dan tahap take-profit adalah harga masuk ditambah (harga masuk - tahap stop-loss) didarabkan dengan 2.

Dari prinsip-prinsip di atas, dapat dilihat bahawa strategi ini menggabungkan penilaian trend sistem purata bergerak dan pengukuran volatiliti penunjuk ATR, memberi tumpuan kepada trend mengikuti sambil mengawal risiko pengambilan, menjadikannya strategi trend-mengikuti.

Analisis Kelebihan

Dual Moving Average Lagging Breakout Strategy mempunyai kelebihan berikut:

  1. Pengesanan trend: Ia menilai arah trend melalui sistem purata bergerak, menangkap trend pasaran utama, dan mengikuti pasaran.
  2. Kawalan risiko: Ia menggunakan penunjuk ATR untuk mengukur turun naik pasaran dan menetapkan tahap stop-loss yang munasabah untuk mengekalkan pengeluaran dalam julat yang boleh diterima.
  3. Parameter fleksibel: Parameter seperti tempoh purata bergerak, tempoh ATR, dan pengganda boleh dioptimumkan dan diselaraskan mengikut pasaran dan instrumen yang berbeza, memberikan tahap universaliti tertentu.
  4. Sederhana dan mudah: Isyarat dagangan adalah mudah dan jelas, sesuai untuk pelabur di peringkat yang berbeza.

Analisis Risiko

Walaupun strategi ini mempunyai kelebihan tertentu, ia masih mempunyai risiko berikut:

  1. Perdagangan kerap: Apabila pasaran sangat tidak menentu dan trendnya tidak jelas, strategi ini boleh menghasilkan isyarat perdagangan yang kerap, meningkatkan kos perdagangan.
  2. Lag: Sistem purata bergerak secara semula jadi mempunyai lag tertentu, dan mungkin terdapat beberapa penarikan pada permulaan titik perubahan pasaran.
  3. Pengoptimuman parameter: Tetapan parameter yang berbeza mempunyai kesan yang signifikan terhadap prestasi strategi, memerlukan pengoptimuman parameter untuk pasaran dan instrumen yang berbeza, meningkatkan kesukaran pelaksanaan.

Untuk menangani risiko di atas, strategi boleh dioptimumkan dan ditingkatkan dari aspek berikut:

  1. Memperkenalkan penapisan trend: Sebelum menjana isyarat perdagangan, terlebih dahulu tentukan arah trend bingkai masa yang lebih besar, dan hanya berdagang apabila trend jelas dalam bingkai masa yang lebih besar, mengurangkan perdagangan yang kerap.
  2. Mengoptimumkan stop-loss dan take-profit: Pertimbangkan untuk memperkenalkan kaedah stop-loss dinamik seperti trailing stop-loss dan volatility stop-loss, serta menyesuaikan tahap take-profit secara dinamik berdasarkan turun naik pasaran untuk meningkatkan fleksibiliti strategi.
  3. Pengoptimuman gabungan: Gabungkan strategi ini dengan penunjuk teknikal atau faktor asas lain untuk meningkatkan ketahanan strategi.

Arah pengoptimuman

Strategi ini boleh dioptimumkan dari aspek berikut:

  1. Pengoptimuman parameter adaptif: Untuk instrumen dan jangka masa yang berbeza, cari secara automatik kombinasi parameter optimum untuk mengurangkan beban kerja penyesuaian parameter manual.
  2. Penapisan isyarat: Selepas menjana isyarat perdagangan, terus memperkenalkan penunjuk teknikal lain atau faktor asas untuk pengesahan sekunder isyarat untuk meningkatkan kualiti isyarat. Sebagai contoh, tambahkan penunjuk jumlah untuk menilai kekuatan trend; tambah data makroekonomi untuk menentukan sama ada persekitaran keseluruhan kondusif untuk kesinambungan trend.
  3. Pengurusan kedudukan: Apabila membuka kedudukan, menyesuaikan saiz kedudukan secara dinamik berdasarkan faktor-faktor seperti turun naik pasaran dan risiko akaun untuk mengawal risiko perdagangan tunggal.
  4. Penghentian kerugian: Tahap penghentian kerugian awal ditetapkan. Apabila harga bergerak ke arah yang menguntungkan, pertimbangkan untuk memindahkan tahap penghentian kerugian ke arah yang menguntungkan serta untuk mengurangkan pengeluaran dan meningkatkan kecekapan penggunaan modal. Kaedah biasa termasuk penghentian kerugian dan penghentian kerugian.

Pengoptimuman di atas boleh meningkatkan kebolehsesuaian, ketahanan, dan keuntungan strategi, tetapi perlu diperhatikan bahawa pengoptimuman berlebihan boleh menyebabkan pemasangan lengkung, yang mengakibatkan prestasi luar sampel yang buruk. Oleh itu, pengujian dan pengesahan yang mencukupi harus dilakukan di dalam dan di luar sampel.

Ringkasan

Strategi Dual Moving Average Lagging Breakout adalah strategi trend berikut klasik yang menentukan arah trend melalui sistem purata bergerak dan mengawal risiko menggunakan penunjuk ATR, menangkap pergerakan trend sambil menguruskan risiko.


/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-31 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="2 Moving Averages", shorttitle="2MA", overlay=true)

// Moving Averages
len = input(14, minval=1, title="Length MA1")
src = input(close, title="Source MA1")
ma1 = sma(src, len)

len2 = input(50, minval=1, title="Length MA2")
src2 = input(close, title="Source MA2")
ma2 = sma(src2, len2)

// Plotting Moving Averages
plot(ma1, color=#0b6ce5, title="MA1")
plot(ma2, color=#00ff80, linewidth=2, title="MA2")

// ATR Bands
atrLength = input(14, title="ATR Length")
atrMultiplier = input(1.5, title="ATR Multiplier")
upperBand = high + atr(atrLength) * atrMultiplier
lowerBand = low - atr(atrLength) * atrMultiplier

u =plot(upperBand, color=color.rgb(217, 220, 223, 84), title="ATR Upper Band")
l = plot(lowerBand, color=color.rgb(217, 220, 223, 84), title="ATR Lower Band")
fill(u, l, color=#471eb821, title="ATR Background")

// Conditions for plotting arrows
upArrowCondition = ma1 > ma2 and crossover(close, ma1)
downArrowCondition = ma1 < ma2 and crossunder(close, ma1)

// Plotting arrows
plotshape(upArrowCondition, style=shape.arrowup, color=color.rgb(66, 45, 255), size=size.normal, location=location.belowbar, title="Up Arrow")
plotshape(downArrowCondition, style=shape.arrowdown, color=color.red, size=size.normal, location=location.abovebar, title="Down Arrow")
// Checkbox for trade execution
showTrades = input(true, title="Hiển thị giao dịch")

// Buy Condition
if (upArrowCondition and showTrades)
    strategy.entry("Buy", strategy.long)

// Sell Condition
if (downArrowCondition and showTrades)
    strategy.entry("Sell", strategy.short)

// Stop Loss and Take Profit
stopLossBuy = low - atr(14) * atrMultiplier
takeProfitBuy = close + (close - stopLossBuy) * 2

stopLossSell = high + atr(14) * atrMultiplier
takeProfitSell = close - (stopLossSell - close) * 2

strategy.exit("Exit Buy", "Buy", stop=stopLossBuy, limit=takeProfitBuy)
strategy.exit("Exit Sell", "Sell", stop=stopLossSell, limit=takeProfitSell)



Lebih lanjut