Strategi prediksi crossover volatilitas dinamis MACD

MACD EMA SMA ROC
Tanggal Pembuatan: 2024-11-27 14:54:02 Akhirnya memodifikasi: 2024-11-27 14:54:02
menyalin: 0 Jumlah klik: 109
1
fokus pada
1166
Pengikut

Strategi prediksi crossover volatilitas dinamis MACD

Ringkasan

Strategi ini didasarkan pada MACD (Moving Average Convergence Scattering Indicator) untuk membuat keputusan perdagangan. Inti dari strategi ini adalah dengan melihat MACD pilar grafik (Histogram) untuk memprediksi tren perubahan yang mungkin terjadi.

Prinsip Strategi

Strategi ini menggunakan sistem indikator MACD versi modifikasi, yang terdiri dari perhitungan diferensial rata-rata bergerak cepat (EMA12) dan rata-rata bergerak lambat (EMA26), serta garis sinyal berdasarkan 2 siklus. Logika perdagangan inti didasarkan pada beberapa poin kunci berikut:

  1. Perubahan dinamika tren dengan menghitung perubahan hist_change pada grafik kolom
  2. Ketika grafik pilar negatif dan tiga siklus berturut-turut menunjukkan tren naik, prediksi mungkin muncul sinyal garpu emas, masuk lebih awal
  3. Ketika grafik pilar adalah positif dan tiga siklus berturut-turut menunjukkan tren menurun, prediksi mungkin muncul sinyal dead fork, dan posisi kosong keluar
  4. Strategi memperkenalkan mekanisme penyaringan waktu, hanya melakukan perdagangan dalam jangka waktu yang ditentukan

Keunggulan Strategis

  1. Prediksi sinyal yang kuat: memprediksi kemungkinan sinyal silang dengan melihat perubahan dinamika dari diagram pilar, yang secara efektif meningkatkan waktu masuk
  2. Pengendalian risiko masuk akal: biaya transaksi dengan biaya 0,1% dan 3 titik slip, sesuai dengan situasi perdagangan yang sebenarnya
  3. Fleksibilitas Manajemen Dana: Menggunakan persentase dari total nilai akun untuk mengelola posisi, mengendalikan risiko secara efektif
  4. Efek visualisasi yang sangat baik: menggunakan grafik pilar yang ditandai dengan warna yang berbeda, dan sinyal perdagangan ditandai dengan panah, untuk memudahkan analisis

Risiko Strategis

  1. Risiko False Breakout: Sering terjadi sinyal false breakout dalam pasar yang bergejolak
  2. Risiko keterbelakangan: MACD sendiri memiliki keterbelakangan meskipun menggunakan mekanisme prediksi
  3. Ketergantungan pada kondisi pasar: strategi dapat berkinerja lebih baik di pasar yang jelas sedang tren, dan mungkin berkinerja kurang baik di pasar yang bergoyang
  4. Sensitivitas parameter: pengaturan siklus garis cepat dan lambat memiliki pengaruh besar pada kinerja strategi

Arah optimasi strategi

  1. Memperkenalkan filter lingkungan pasar: indikator penilaian tren dapat ditambahkan, menggunakan parameter perdagangan yang berbeda dalam lingkungan pasar yang berbeda
  2. Manajemen posisi yang dioptimalkan: rasio kepemilikan posisi dapat disesuaikan secara dinamis berdasarkan intensitas sinyal
  3. Perbaikan mekanisme stop loss: penambahan tracking stop loss atau stop loss tetap untuk mengontrol penarikan
  4. Meningkatkan mekanisme konfirmasi sinyal: cross-verifikasi dengan indikator teknis lainnya untuk meningkatkan keandalan sinyal
  5. Pilihan parameter optimasi: dapat menggunakan metode parameter adaptif, menyesuaikan parameter indikator sesuai dengan situasi pasar yang dinamis

Meringkaskan

Strategi ini melalui penggunaan inovatif dari karakteristik perubahan dinamis dari grafik MACD pilar, mencapai perbaikan dan optimalisasi dari sistem perdagangan MACD tradisional. mekanisme prediksi strategi dapat memberikan sinyal masuk lebih awal, dan kondisi perdagangan yang ketat dan langkah-langkah kontrol risiko memastikan stabilitas strategi. Dengan lebih lanjut optimasi dan perbaikan, strategi ini diharapkan untuk mendapatkan kinerja yang lebih baik dalam perdagangan nyata.

Kode 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")