Strategi perdagangan kuantitatif pelacakan tren pembalikan EMA-VWAP dan CBC

EMA VWAP CBC PDH PDL PDVWAP PDC
Tanggal Pembuatan: 2025-04-02 10:31:49 Akhirnya memodifikasi: 2025-04-02 10:31:49
menyalin: 0 Jumlah klik: 488
2
fokus pada
319
Pengikut

Strategi perdagangan kuantitatif pelacakan tren pembalikan EMA-VWAP dan CBC Strategi perdagangan kuantitatif pelacakan tren pembalikan EMA-VWAP dan CBC

Tinjauan Strategi

EMA-VWAP Synergy CBC Trend Reversal Tracking Quantitative Trading Strategy adalah sistem perdagangan kompleks yang menggabungkan berbagai indikator teknis. Inti dari strategi ini adalah penggunaan indeks moving average (EMA), volume transaksi tertimbang rata-rata harga (VWAP) dan penetapan harga kunci (CBC) untuk membentuk sinyal perdagangan yang akurat.

Strategi ini sangat cocok untuk lingkungan pasar yang jelas tren, dengan menggabungkan arah EMA jangka pendek dan menengah dengan hubungan posisi VWAP, dan dengan tambahan konfirmasi CBC, efektif menyaring false breakout dan sinyal noise. Strategi ini juga mengintegrasikan referensi harga kunci hari ini, termasuk hari perdagangan sebelumnya (PDH), (PDL), (PDC) dan (VWAP), serta level tinggi dan rendah pada hari Senin, yang memberikan informasi latar belakang pasar yang kaya untuk keputusan perdagangan.

Strategi ini menggunakan aturan masuk dan keluar yang jelas, sinyal masuk membutuhkan beberapa kondisi yang terpenuhi secara bersamaan, dan keluar secara ringkas bergantung pada sinyal pembalikan terbalik dari CBC, mewujudkan filosofi perdagangan “menuju naik, kelembaban keluar”.

Prinsip Strategi

Prinsip inti dari strategi ini didasarkan pada sinergi dari empat elemen teknis utama:

  1. Sistem EMA multi siklusStrategi menggunakan tiga garis EMA ((9 siklus, 20 siklus dan 200 siklus) untuk membentuk kerangka penilaian tren. Posisi relatif dari EMA cepat ((9 siklus) dan EMA menengah ((20 siklus) digunakan untuk menentukan arah tren jangka pendek. Ketika EMA cepat berada di atas EMA menengah, dianggap sebagai sinyal bullish; sebaliknya dianggap sebagai sinyal bearish.

  2. Referensi VWAPVWAP sebagai titik keseimbangan antara harga dan volume transaksi, memainkan peran penting dalam strategi sebagai garis referensi dukungan / resistensi. Strategi mengharuskan harga, EMA cepat dan EMA cepat harus berada di sisi yang sama dari VWAP untuk memastikan konsistensi dan kekuatan tren.

  3. CBC ((Close, Break, Close) sinyal pembalikanIni adalah mekanisme pemicu inti dari strategi ini, dengan mendeteksi bahwa harga telah menembus titik tinggi atau rendah pada hari perdagangan sebelumnya, dan mengkonfirmasi efektivitas penembusan pada saat penutupan. Ketika harga penutupan melebihi titik tinggi hari sebelumnya, CBC berbalik menjadi bullish; Ketika harga penutupan jatuh dari titik rendah hari sebelumnya, CBC berbalik menjadi bearish.

  4. Sistem Referensi Harga Kunci Per HariStrategi ini mengintegrasikan hari-hari perdagangan sebelumnya dengan harga tertinggi, terendah, dan penutupan, dan level VWAP, serta hari Senin dengan harga tertinggi dan terendah sebagai referensi sepanjang minggu, membentuk kerangka acuan struktur pasar yang lengkap.

Logika input memerlukan kondisi berikut ini:

  • Multiple entry: CBC berbalik dari bearish ke bullish + Harga berada di atas VWAP + Sistem EMA menunjukkan urutan bullish ((Fast EMA>Medium EMA) + Kedua EMA berada di atas VWAP
  • Bottom-up entry: CBC berbalik dari bullish ke bearish + harga berada di bawah VWAP + sistem EMA berada di bawah VWAP ((Fast EMA < Medium EMA) + kedua EMA berada di bawah VWAP

Logika keluar secara langsung bergantung pada terbaliknya CBC, yaitu posisi kosong di CBC berubah menjadi posisi kosong di CBC, yang mencerminkan sifat strategi perdagangan bullish.

Keunggulan Strategis

Analisis kode strategi menunjukkan keuntungan yang signifikan:

  1. Mekanisme multiple confirmationStrategi yang membutuhkan arah tren EMA, hubungan harga dengan posisi VWAP dan sinyal CBC yang membalikkan tiga orang untuk bekerja sama untuk memicu sinyal perdagangan, secara efektif mengurangi tingkat kesalahan dan meningkatkan kualitas sinyal.

  2. Tren mengikuti dan berbalikStrategi ini menangkap tren (konsistensi melalui EMA dan VWAP) dan mengandalkan sinyal CBC untuk menangkap terobosan penting, menyeimbangkan keuntungan dari mengikuti tren dan berdagang reversal.

  3. Referensi struktur pasar yang lengkap: Mengintegrasikan harga kunci dari hari perdagangan sebelumnya dan titik tinggi dan rendah pada hari Senin, memberikan banyak informasi latar belakang pasar untuk keputusan perdagangan yang membantu memahami posisi harga saat ini dalam struktur pasar yang lebih besar.

  4. Umpan balik visual yang jelasStrategi ini menggunakan elemen visual yang kaya, termasuk perubahan warna latar belakang, penanda bentuk, dan label, yang memungkinkan pedagang untuk secara intuitif mengenali sinyal dan kondisi pasar saat ini.

  5. Logika Keluar Yang Sederhana: Menggunakan CBC Reverse Flip sebagai sinyal keluar, menghindari risiko keluar prematur atau overholding, dan membentuk sistem yang konsisten dan simetris dengan logika masuk.

  6. Pengaturan parameter adaptasiStrategi menawarkan fitur penyaringan tanggal dan beberapa opsi tampilan, memungkinkan pedagang untuk menyesuaikan strategi sesuai dengan kebutuhan mereka sendiri, meningkatkan fleksibilitas dan fleksibilitas strategi.

  7. Integrasi manajemen danaStrategi: Default menggunakan persentase dana akun untuk berdagang, bukan jumlah tetap, menunjukkan kesadaran manajemen risiko yang baik, yang membantu pertumbuhan jangka panjang dan kontrol risiko dana.

Risiko Strategis

Meskipun ada banyak keuntungan dari strategi ini, analisis mendalam dari kode kami juga menemukan risiko potensial sebagai berikut:

  1. Risiko keterlambatanEMA pada dasarnya adalah indikator yang tertinggal, yang dapat menyebabkan sinyal terlambat, kehilangan titik masuk terbaik, atau terlambat keluar di pasar yang sangat berfluktuasi, yang menyebabkan kerugian tambahan. Solusi untuk mempertimbangkan untuk menyesuaikan parameter EMA atau meningkatkan filter tingkat fluktuasi di lingkungan yang sangat berfluktuasi.

  2. Risiko Penembusan PalsuMeskipun logika CBC mengharuskan harga penutupan untuk mengkonfirmasi terobosan, pasar masih mungkin mengalami pergeseran cepat setelah terobosan palsu. Solusi adalah mempertimbangkan untuk meningkatkan konfirmasi volume atau menetapkan kondisi penyaringan amplitudo terobosan.

  3. Terlalu mengandalkan VWAPDalam pasar horizontal atau berfluktuasi sempit, harga mungkin sering melewati VWAP, yang menyebabkan peningkatan sinyal noise. Solusi untuk mengidentifikasi pasar horizontal adalah dengan menangguhkan perdagangan atau meningkatkan kondisi filter amplitudo fluktuasi.

  4. Kurangnya pengendalian kerugianStrategi saat ini tidak memiliki mekanisme stop loss yang jelas, dan sepenuhnya bergantung pada sinyal reversal CBC yang dapat menyebabkan kerugian yang lebih besar dalam situasi ekstrem. Solusinya adalah meningkatkan stop loss tetap atau stop loss ATR ganda, dan menetapkan batas kerugian maksimum.

  5. Filter tanggal yang kurangMeskipun strategi menyediakan fitur penyaringan tanggal, tidak mempertimbangkan dampak dari peristiwa pasar khusus (seperti laporan keuangan, pengumuman kebijakan, dll.) pada kinerja strategi. Solusinya adalah mengintegrasikan fungsi kalender ekonomi, secara otomatis menyesuaikan atau menghentikan perdagangan selama peristiwa penting.

  6. Kebocoran deteksiPenggunaan strategi:fill_orders_on_standard_ohlc = trueParameter, yang mungkin berbeda dengan transaksi nyata dalam pengembalian, menyebabkan hasil pengembalian terlalu optimis. Solusinya adalah menggunakan simulasi per-pen atau mempertimbangkan slippage dan biaya transaksi untuk pengembalian yang lebih realistis.

  7. Siklus tunggal ketergantunganStrategi hanya berjalan pada satu periode waktu, kurangnya konfirmasi multi-periode, dan mungkin kehilangan sinyal bolak-balik dari periode yang lebih besar. Solusi adalah mempertimbangkan integrasi mekanisme konfirmasi sinyal multi-periode.

Arah optimasi strategi

Berdasarkan analisis menyeluruh dari kode kebijakan, kami merekomendasikan optimasi sebagai berikut:

  1. Menambahkan parameter adaptasiSiklus EMA dapat disesuaikan secara dinamis dengan volatilitas pasar, dengan siklus yang lebih pendek digunakan di pasar yang berfluktuasi tinggi, dan siklus yang lebih panjang digunakan di pasar yang berfluktuasi rendah, meningkatkan adaptasi strategi terhadap lingkungan pasar yang berbeda. Ini dapat dicapai dengan menghitung ATR (rata-rata real amplitude) dan memetakannya ke dalam jangkauan siklus EMA.

  2. Konfirmasi Transaksi Terpadu: Meningkatkan permintaan konfirmasi transaksi berdasarkan sinyal CBC, hanya memicu sinyal jika terobosan disertai dengan peningkatan volume transaksi yang signifikan, memfilter terobosan berkualitas rendah. Hal ini dapat dicapai dengan membandingkan hubungan volume transaksi saat ini dengan rata-rata volume transaksi N siklus.

  3. Masuk ke Stop Loss: Memperkenalkan stop loss dinamis atau stop loss persentase tetap berdasarkan ATR, melindungi dana dari efek ekstrem sebelum menunggu sinyal pembalikan CBC. Disarankan untuk mengimplementasikan fungsi stop loss tracking, yang secara otomatis menyesuaikan tingkat stop loss saat harga bergerak ke arah yang menguntungkan.

  4. Konfirmasi sinkronisasi multi siklus: Menambah pemeriksaan terhadap tren periode waktu yang lebih tinggi, masuk hanya jika arah tren periode besar sesuai dengan arah perdagangan saat ini, meningkatkan kualitas sinyal. Hal ini dapat dicapai dengan meminta data EMA periode yang lebih tinggi dan memeriksa arahnya.

  5. Klasifikasi kondisi pasar: Mengembangkan modul identifikasi kondisi pasar, membedakan pasar tren dan pasar horizontal, menyesuaikan parameter strategi atau menghentikan perdagangan dalam kondisi pasar yang berbeda. Dapat menggunakan ADX (Indeks Ke arah Rata-rata) atau analisis rentang fluktuasi harga untuk mengidentifikasi kondisi pasar.

  6. Pengelolaan dana yang optimalDimensi posisi disesuaikan secara dinamis berdasarkan volatilitas dan tingkat kemenangan, meningkatkan posisi pada sinyal kemenangan tinggi, mengurangi posisi pada sinyal kemenangan rendah. Penyesuaian posisi dinamis dapat dilakukan dengan menghitung statistik sinyal sejarah dan volatilitas pasar saat ini.

  7. Tambahkan waktu penyaringan: Menggunakan penyaringan waktu dalam sehari, menghindari periode bergejolak tinggi sebelum buka dan tutup, fokus pada perdagangan pada periode waktu pasar yang aktif tetapi relatif stabil. Anda dapat mengatur waktu perdagangan yang dioptimalkan sesuai dengan karakteristik waktu perdagangan di pasar yang berbeda.

  8. Pengoptimalan lingkunganPenggunaan:fill_orders_on_standard_ohlc = falseDengan menggunakan metode ini, kita dapat lebih dekat dengan hasil evaluasi strategi yang lebih dapat diandalkan.

Meringkaskan

Strategi perdagangan kuantitatif EMA-VWAP dan CBC adalah sistem perdagangan yang terstruktur, logis dan jelas, yang menghasilkan sinyal perdagangan berkualitas tinggi dengan mengintegrasikan berbagai indikator teknis dan analisis perilaku harga. Keunggulan utama strategi ini adalah mekanisme konfirmasi ganda dan sistem referensi struktur pasar yang lengkap, yang secara efektif mengurangi tingkat kesalahan dan meningkatkan kualitas sinyal.

Strategi ini mengadopsi filosofi perdagangan “menuju ke atas, ke bawah”, yang memerlukan konfirmasi sinkronisasi beberapa kondisi saat masuk, dan saat keluar bergantung pada sinyal pembalikan CBC, membentuk sistem perdagangan yang logis dan simetris. Strategi ini juga mengintegrasikan elemen umpan balik visual yang kaya dan pengaturan parameter yang fleksibel, meningkatkan pengalaman penggunaan dan fleksibilitas.

Namun, strategi ini juga memiliki masalah potensial seperti risiko keterlambatan, risiko terobosan palsu, dan kurangnya mekanisme penghentian kerugian. Dengan menambahkan parameter adaptasi, mengintegrasikan pengakuan volume, dan menambahkan langkah-langkah optimasi seperti mekanisme penghentian kerugian dan pengesahan sinkronisasi multi-siklus, strategi ini dapat meningkatkan stabilitas dan profitabilitasnya.

Secara keseluruhan, ini adalah kerangka strategi dasar yang dirancang dengan baik, dengan konfigurasi pengoptimalan dan manajemen risiko yang masuk akal, memiliki potensi untuk menjadi sistem perdagangan yang solid. Dalam aplikasi praktis, pedagang harus menyesuaikan parameter strategi secara individual sesuai dengan preferensi risiko dan tujuan perdagangan mereka sendiri, dan selalu menjaga disiplin manajemen dana yang tepat.

Kode Sumber Strategi
/*backtest
start: 2024-04-02 00:00:00
end: 2025-04-01 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=6
strategy("Maple&CBC Strategy", overlay = true, fill_orders_on_standard_ohlc = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)


// EMA's
fastEma = ta.ema(close, 9)
middleEma = ta.ema(close, 20)
slowEma = ta.ema(close, 200)
vwap = ta.vwap(close)

plot(fastEma, color=color.blue, title="9 EMA")
plot(middleEma, color=color.green, title="20 EMA")
plot(slowEma, color=color.red, title="200 EMA")
plot(vwap, color=color.yellow, title="VWAP")

// Input instellingen voor zichtbaarheid van lijnen
show_prev_day_high = input.bool(true, title="Toon Previous Day High")
show_prev_day_low = input.bool(true, title="Toon Previous Day Low")
show_prev_day_vwap = input.bool(true, title="Toon Previous Day VWAP")
show_prev_day_close = input.bool(true, title="Toon Previous Day Close")
show_monday_levels = input.bool(true, title="Toon Monday High/Low")

// Vorige dag niveaus
[dh, dl, dc, dv] = request.security(syminfo.tickerid, "D", [high[1], low[1], close[1], ta.vwap(close)[1]])

// Maandag High en Low
isMonday = dayofweek == dayofweek.monday
var float mondayHigh = na
var float mondayLow = na

if isMonday and barstate.isconfirmed
    mondayHigh := high
    mondayLow := low

// CBC Flip Logica
cbc = false
cbc := cbc[1]
if cbc and close < low[1]
    cbc := false
if not cbc and close > high[1]
    cbc := true

cbc_long = cbc and not cbc[1]
cbc_short = not cbc and cbc[1]

// EMA's bullish/bearish check
ema_bullish = fastEma > middleEma
ema_bearish = fastEma < middleEma

// Prijs boven/onder VWAP check
price_above_vwap = close > vwap
price_below_vwap = close < vwap

// ==================== STRATEGIE LOGICA ====================

// Long signaal: prijs boven VWAP + EMA's bullish + EMA's boven VWAP + CBC flip bullish
emas_above_vwap = fastEma > vwap and middleEma > vwap
longCondition = cbc_long and price_above_vwap and ema_bullish and emas_above_vwap and barstate.isconfirmed

// Short signaal: prijs onder VWAP + EMA's bearish + EMA's onder VWAP + CBC flip bearish
emas_below_vwap = fastEma < vwap and middleEma < vwap
shortCondition = cbc_short and price_below_vwap and ema_bearish and emas_below_vwap and barstate.isconfirmed

// Variabelen om bij te houden of we in een positie zitten
var bool inLongPosition = false
var bool inShortPosition = false

// Strategy entrypoints
if longCondition and not inLongPosition and not inShortPosition
    strategy.entry("Long", strategy.long)
    inLongPosition := true
    inShortPosition := false

if shortCondition and not inShortPosition and not inLongPosition
    strategy.entry("Short", strategy.short)
    inShortPosition := true
    inLongPosition := false

// Strategy exitpoints - wacht op tegenovergestelde CBC flip signaal
if cbc_short and inLongPosition
    strategy.close("Long", comment="Exit Long on CBC flip short")
    inLongPosition := false

if cbc_long and inShortPosition
    strategy.close("Short", comment="Exit Short on CBC flip long")
    inShortPosition := false

// Visuele weergave van signalen
plotshape(series=cbc_long, location=location.belowbar, color=color.green, style=shape.triangleup, title="Bulls")
plotshape(series=cbc_short, location=location.abovebar, color=color.red, style=shape.triangledown, title="Bears")

// Achtergrondkleur voor visuele ondersteuning
bgcolor(cbc_long ? color.rgb(255, 235, 59, 71) : cbc_short ? color.rgb(5, 185, 240, 59) : na)

// Extra achtergrondkleur voor trading signalen
bgcolor(longCondition ? color.rgb(0, 255, 0, 90) : shortCondition ? color.rgb(255, 0, 0, 90) : na)

// Labels voor de trading posities
if inLongPosition and barstate.islast
    label.new(bar_index, low - (low * 0.002), "IN LONG", color=color.green, style=label.style_label_up, textcolor=color.white, size=size.small)

if inShortPosition and barstate.islast
    label.new(bar_index, high + (high * 0.002), "IN SHORT", color=color.red, style=label.style_label_down, textcolor=color.white, size=size.small)