Strategi ramalan silang turun naik dinamik MACD

MACD EMA SMA ROC
Tarikh penciptaan: 2024-11-27 14:54:02 Akhirnya diubah suai: 2024-11-27 14:54:02
Salin: 0 Bilangan klik: 441
1
fokus pada
1617
Pengikut

Strategi ramalan silang turun naik dinamik MACD

Gambaran keseluruhan

Strategi ini membuat keputusan perdagangan berdasarkan ciri-ciri perubahan dinamik MACD. Inti strategi ini adalah untuk meramalkan trend yang mungkin berlaku dengan melihat perubahan dalam carta MACD. Histogram, untuk meramalkan kemungkinan terowong dan terowong mati, dan dengan itu merangka perdagangan lebih awal.

Prinsip Strategi

Strategi ini menggunakan sistem penunjuk MACD versi yang diperbaiki, yang merangkumi pengiraan perbezaan rata-rata bergerak cepat (EMA12) dan rata-rata bergerak perlahan (EMA26), dan garis isyarat berdasarkan 2 kitaran. Logik perdagangan teras berdasarkan beberapa titik utama:

  1. Perubahan dinamik dalam trend dengan mengira kadar perubahan dalam carta tiang (hist_change)
  2. Apabila carta tiang adalah negatif dan tiga kitaran berturut-turut menunjukkan trend ke atas, pra-pemeriksaan mungkin menunjukkan isyarat garpu emas, lebih awal untuk masuk
  3. Apabila carta tiang adalah positif dan menunjukkan trend menurun selama tiga kitaran berturut-turut, prasangka mungkin muncul isyarat garpu mati, keluar dari kedudukan kosong
  4. Strategi memperkenalkan mekanisme penapisan masa, hanya berdagang dalam jangka masa yang ditetapkan

Kelebihan Strategik

  1. Prasangka isyarat yang kuat: meramalkan isyarat silang yang mungkin berlaku dengan melihat perubahan dinamik dalam carta pilar, untuk meningkatkan masa masuk
  2. Kawalan risiko yang munasabah: bayaran bayaran 0.1% dan kos urus niaga 3 titik, sesuai dengan keadaan perdagangan sebenar
  3. Fleksibiliti dalam pengurusan dana: Menggunakan peratusan dari jumlah akaun untuk menguruskan kedudukan dan mengawal risiko dengan berkesan
  4. Kesan visual yang sangat baik: Garis tiang yang dilabelkan dengan warna yang berbeza, dan isyarat perdagangan yang dilabelkan dengan anak panah, untuk memudahkan analisis

Risiko Strategik

  1. Risiko penembusan palsu: Isyarat penembusan palsu yang mungkin berlaku dalam pasaran yang bergolak
  2. Risiko keterbelakangan: Walaupun menggunakan mekanisme pra-penilaian, MACD sendiri masih mempunyai keterbelakangan
  3. Ketergantungan kepada keadaan pasaran: strategi lebih baik dalam pasaran yang jelas dan mungkin kurang baik dalam pasaran yang bergolak
  4. Sensitiviti parameter: tetapan untuk kitaran garis perlahan dan cepat mempunyai kesan yang lebih besar terhadap prestasi strategi

Arah pengoptimuman strategi

  1. Memperkenalkan penapis keadaan pasaran: penambahan indikator penilaian trend, menggunakan parameter perdagangan yang berbeza dalam keadaan pasaran yang berbeza
  2. Pengurusan kedudukan yang dioptimumkan: kadar pegangan boleh disesuaikan secara dinamik mengikut kekuatan isyarat
  3. Peningkatan mekanisme hentian kerugian: penambahan hentian yang dikesan atau hentian tetap untuk mengawal penarikan balik
  4. Peningkatan mekanisme pengesahan isyarat: cross-verifikasi dengan penunjuk teknikal lain untuk meningkatkan kebolehpercayaan isyarat
  5. Pilihan parameter pengoptimuman: kaedah parameter penyesuaian boleh digunakan, menyesuaikan parameter penunjuk mengikut keadaan pasaran yang dinamik

ringkaskan

Strategi ini menggunakan ciri-ciri perubahan dinamik carta MACD secara inovatif untuk memperbaiki dan mengoptimumkan sistem perdagangan MACD tradisional. Mekanisme penilaian strategi dapat memberikan isyarat masuk lebih awal, sementara syarat perdagangan yang ketat dan langkah-langkah kawalan risiko memastikan kestabilan strategi. Dengan pengoptimuman dan penyempurnaan lebih lanjut, strategi ini dijangka dapat mencapai prestasi yang lebih baik dalam perdagangan sebenar.

Kod sumber strategi
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title="Demo GPT - Moving Average Convergence Divergence", shorttitle="MACD", commission_type=strategy.commission.percent, commission_value=0.1, slippage=3, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// Getting inputs
fast_length = input(title="Fast Length", defval=12)
slow_length = input(title="Slow Length", defval=26)
src = input(title="Source", defval=close)
signal_length = input.int(title="Signal Smoothing", minval=1, maxval=50, defval=2)  // Set smoothing line to 2
sma_source = input.string(title="Oscillator MA Type", defval="EMA", options=["SMA", "EMA"])
sma_signal = input.string(title="Signal Line MA Type", defval="EMA", options=["SMA", "EMA"])

// Date inputs
start_date = input(title="Start Date", defval=timestamp("2018-01-01T00:00:00"))
end_date = input(title="End Date", defval=timestamp("2069-12-31T23:59:59"))

// Calculating
fast_ma = sma_source == "SMA" ? ta.sma(src, fast_length) : ta.ema(src, fast_length)
slow_ma = sma_source == "SMA" ? ta.sma(src, slow_length) : ta.ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length)
hist = macd - signal

// Strategy logic
isInDateRange = true

// Calculate the rate of change of the histogram
hist_change = hist - hist[1]

// Anticipate a bullish crossover: histogram is negative, increasing, and approaching zero
anticipate_long = isInDateRange and hist < 0 and hist_change > 0 and hist > hist[1] and hist > hist[2]

// Anticipate an exit (bearish crossover): histogram is positive, decreasing, and approaching zero
anticipate_exit = isInDateRange and hist > 0 and hist_change < 0 and hist < hist[1] and hist < hist[2]

if anticipate_long
    strategy.entry("Long", strategy.long)

if anticipate_exit
    strategy.close("Long")

// Plotting
hline(0, "Zero Line", color=color.new(#787B86, 50))
plot(hist, title="Histogram", style=plot.style_columns, color=(hist >= 0 ? (hist > hist[1] ? #26A69A : #B2DFDB) : (hist < hist[1] ? #FF5252 : #FFCDD2)))
plot(macd, title="MACD", color=#2962FF)
plot(signal, title="Signal", color=#FF6D00)

// Plotting arrows when anticipating the crossover
plotshape(anticipate_long, title="Long +1", location=location.belowbar, color=color.green, style=shape.arrowup, size=size.tiny, text="Long +1")
plotshape(anticipate_exit, title="Short -1", location=location.abovebar, color=color.red, style=shape.arrowdown, size=size.tiny, text="Short -1")