Sumber daya yang dimuat... Pemuatan...

Strategi Pelacakan Tren Multi-Timeframe Berdasarkan Impulse MACD dan Dual Moving Average Crossover

Penulis:ChaoZhang, Tanggal: 2024-05-17 15:33:02
Tag:MACDSMMASMAZLEMAEMAMA

img

Gambaran umum

Strategi ini menggunakan berbagai indikator rata-rata bergerak, termasuk SMMA, SMA, ZLEMA, dan EMA, dan membangun indikator MACD yang lebih baik (Impulse MACD) berdasarkan mereka. Ini menghasilkan sinyal perdagangan melalui persilangan Impulse MACD dan garis sinyalnya.

Prinsip Strategi

  1. Hitung SMMA dan ZLEMA dari harga tinggi, rendah, dan dekat dengan panjang 34 untuk mendapatkan Impulse MACD (MD).
  2. Menghitung SMA 9 periode dari Impulse MACD sebagai garis sinyal (SB).
  3. Hitung perbedaan antara Impulse MACD dan garis sinyal (SH) untuk mencerminkan kekuatan tren.
  4. Menghasilkan sinyal beli ketika Impulse MACD melintasi di atas garis sinyal, dan menutup posisi ketika melintasi di bawahnya.
  5. Gambarkan histogram Impulse MACD dengan warna yang berbeda berdasarkan hubungan antara harga, Impulse MACD, dan harga tinggi/rendah SMMA untuk mencerminkan kekuatan tren secara visual.

Keuntungan Strategi

  1. Penggunaan berbagai jenis rata-rata bergerak memberikan cerminan yang lebih komprehensif dari tren pasar.
  2. Indikator MACD yang ditingkatkan (Impulse MACD) memperhitungkan posisi relatif harga dan moving average, mencerminkan kekuatan tren dengan lebih baik.
  3. Pengenalan jalur sinyal membantu menyaring beberapa sinyal palsu dan meningkatkan kualitas sinyal.
  4. Menggambar Impulse MACD dengan warna yang berbeda berdasarkan kekuatan tren memfasilitasi penilaian intuitif tentang pergerakan pasar.

Risiko Strategi

  1. Pemilihan parameter yang tidak tepat dapat menyebabkan sinyal yang sering atau tertinggal, yang membutuhkan optimalisasi berdasarkan pasar dan kerangka waktu yang berbeda.
  2. Strategi ini dapat menghasilkan lebih banyak sinyal palsu dan menyebabkan kerugian di pasar yang bergolak.
  3. Strategi ini tidak memiliki mekanisme stop-loss dan dapat menghadapi penurunan yang signifikan di pasar yang tidak stabil.

Arah Optimasi Strategi

  1. Memperkenalkan indikator identifikasi tren seperti ADX untuk hanya berdagang ketika tren jelas, mengurangi kerugian di pasar yang bergolak.
  2. Mengkonfirmasi sinyal perdagangan yang dihasilkan dengan indikator lain seperti RSI dan ATR untuk meningkatkan kualitas sinyal.
  3. Menetapkan tingkat stop loss dan take profit yang wajar untuk mengendalikan risiko perdagangan tunggal.
  4. Mengoptimalkan parameter menggunakan metode seperti algoritma genetik untuk menemukan kombinasi parameter yang optimal.

Ringkasan

Strategi ini membangun indikator MACD yang ditingkatkan berdasarkan berbagai jenis moving average dan menghasilkan sinyal perdagangan melalui persilangan dengan garis sinyal sambil secara intuitif menampilkan kekuatan tren. Ide keseluruhan jelas, dan keuntungannya jelas. Namun, strategi ini juga memiliki keterbatasan tertentu, seperti kemampuan beradaptasi yang buruk terhadap pasar yang bergolak dan kurangnya langkah-langkah pengendalian risiko. Peningkatan lebih lanjut dapat dipertimbangkan dari aspek seperti identifikasi tren, konfirmasi sinyal, pengendalian risiko, dan optimasi parameter untuk meningkatkan ketahanan dan profitabilitas strategi.


/*backtest
start: 2023-05-11 00:00:00
end: 2024-05-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Impulse MACD Strategy [LazyBear]", shorttitle="IMACD_Strategy", overlay=false)

// Function to calculate SMMA
calc_smma(src, len) =>
    var float smma = na
    smma := na(smma[1]) ? ta.sma(src, len) : (smma[1] * (len - 1) + src) / len
    smma

// Function to calculate SMA
	ta.sma(src, len)
    sum = 0.0
    for i = 0 to len - 1
        sum := sum + src[i]
    sum / len

// Function to calculate ZLEMA
calc_zlema(src, length) =>
    var float ema1 = na
    var float ema2 = na
    var float d = na
    ema1 := ta.ema(src, length)
    ema2 := ta.ema(ema1, length)
    d := ema1 - ema2
    ema1 + d

// Function to calculate EMA
calc_ema(src, len) =>
    ema = 0.0
    ema := ta.ema(src, len)
    ema

// Inputs
lengthMA = input(34, title="Length of Moving Average")
lengthSignal = input(9, title="Length of Signal Line")

// Calculations
src = hlc3
hi = calc_smma(high, lengthMA)
lo = calc_smma(low, lengthMA)
mi = calc_zlema(src, lengthMA) 

md = mi > hi ? (mi - hi) : mi < lo ? (mi - lo) : 0
sb = ta.sma(md, lengthSignal)
sh = md - sb
mdc = src > mi ? src > hi ? color.lime : color.green : src < lo ? color.red : color.orange

// Plotting
plot(0, color=color.gray, linewidth=1, title="MidLine")
plot(md, color=mdc, linewidth=2, title="ImpulseMACD", style=plot.style_histogram)
plot(sh, color=color.blue, linewidth=2, title="ImpulseHisto", style=plot.style_histogram)
plot(sb, color=color.maroon, linewidth=2, title="ImpulseMACDCDSignal")

// Execute trades based on signals
if (ta.crossover(md, sb))
    strategy.entry("Buy", strategy.long)
if (ta.crossunder(md, sb))
    strategy.close("Buy")


Berkaitan

Lebih banyak