
EMA-VWAP Synergy CBC Trend Reversal Tracking Quantitative Trading Strategy adalah satu sistem perdagangan kompleks yang menggabungkan pelbagai petunjuk teknikal. Inti strategi ini adalah untuk membentuk isyarat perdagangan yang tepat dengan menggunakan indeks moving average (EMA), harga purata bertimbangan kuantiti (VWAP) dan tiga petunjuk teknikal untuk penembusan harga kritikal (CBC).
Strategi ini sangat sesuai untuk keadaan pasaran yang jelas trend, dengan menggabungkan arah EMA jangka pendek dan pertengahan dengan hubungan kedudukan VWAP, dan dengan pengesahan CBC yang disertakan, penyaringan palsu dan isyarat bunyi yang berkesan. Strategi ini juga menggabungkan rujukan harga utama dalam hari, termasuk hari perdagangan sebelumnya (PDH), (PDL), (PDC) dan tahap VWAP, dan hari ini (Monday), yang memberikan maklumat latar belakang pasaran yang kaya untuk keputusan perdagangan.
Strategi ini menggunakan peraturan masuk dan keluar yang jelas, dengan isyarat masuk memerlukan beberapa syarat untuk dipenuhi pada masa yang sama, dan keluar secara ringkas bergantung pada isyarat pembalikan terbalik CBC, mewujudkan falsafah perdagangan “menerusi kenaikan dan penurunan”.
Prinsip utama strategi ini adalah berdasarkan kepada empat elemen teknologi utama yang berfungsi bersama:
Sistem EMA pelbagai kitaranStrategi menggunakan tiga garis EMA ((9 kitaran, 20 kitaran dan 200 kitaran) untuk membentuk rangka keputusan trend. Kedudukan relatif EMA ((9 kitaran) cepat dan EMA ((20 kitaran) sederhana digunakan untuk menentukan arah trend jangka pendek, apabila EMA cepat terletak di atas EMA sederhana, dianggap sebagai isyarat bullish; sebaliknya dianggap sebagai isyarat bearish.
Pengiktirafan VWAP:VWAP sebagai titik keseimbangan harga dan jumlah transaksi, memainkan peranan penting dalam strategi sebagai garis rujukan sokongan / rintangan. Strategi memerlukan harga, EMA cepat dan EMA sederhana mesti berada di sisi yang sama VWAP untuk mengesahkan keserasian dan kekuatan trend.
CBC (Tutup, Putus, Tutup) isyarat pembalikanIni adalah mekanisme pemicu utama strategi, dengan mengesan bahawa harga telah menembusi paras tinggi atau rendah pada hari perdagangan sebelumnya, dan mengesahkan keberkesanan penembusan pada waktu penutupan. Apabila harga penutupan melebihi paras tinggi pada hari sebelumnya, CBC berbalik menjadi bullish; apabila harga penutupan jatuh ke paras rendah pada hari sebelumnya, CBC berbalik menjadi bearish.
Sistem rujukan harga kritikal dalam sehariStrategi ini menggabungkan paras tertinggi, terendah, harga penutupan dan paras VWAP pada hari dagangan sebelumnya, serta paras tertinggi dan terendah pada hari Isnin sebagai rujukan sepanjang minggu, untuk membentuk rangka rujukan struktur pasaran yang lengkap.
Logik input memerlukan syarat berikut:
Logik keluar secara langsung bergantung kepada pembalikan terbalik CBC, iaitu, mata wang di CBC bertukar menjadi kedudukan rendah ketika turun, dan mata wang kosong di CBC bertukar menjadi kedudukan rendah ketika turun, yang mencerminkan sifat perdagangan berjangka strategi tersebut.
Analisis kod strategi menunjukkan kelebihan yang ketara:
Mekanisme pengesahan bergandaStrategi memerlukan arah trend EMA, hubungan harga dengan kedudukan VWAP dan isyarat pembalikan CBC untuk memicu isyarat dagangan, yang berkesan mengurangkan kadar kesalahan dan meningkatkan kualiti isyarat.
Perpaduan trend mengikut dan berbalikStrategi ini menangkap trend (dengan keserasian EMA dan VWAP) dan bergantung kepada isyarat CBC untuk menangkap terobosan penting, mengimbangi kelebihan mengikuti trend dan berdagang kebalikan.
Rujukan struktur pasaran yang lengkap: Mengintegrasikan harga utama pada hari dagangan sebelumnya dan harga tinggi dan rendah pada hari Isnin, memberikan maklumat latar belakang pasaran yang kaya untuk membuat keputusan perdagangan yang membantu memahami kedudukan harga semasa dalam struktur pasaran yang lebih besar.
Maklum balas visualStrategi menggunakan elemen visual yang kaya, termasuk perubahan warna latar belakang, penanda bentuk dan label, yang membolehkan peniaga mengenali isyarat dan keadaan pasaran semasa secara intuitif.
Logik yang ringkas: Menggunakan CBC reverse rollover sebagai isyarat keluar, mengelakkan risiko keluar terlalu awal atau terlalu banyak, membentuk sistem yang konsisten dan simetri dengan logik masuk.
Tetapan parameter adaptasiStrategi menawarkan penapis tarikh dan pelbagai pilihan paparan, yang membolehkan peniaga menyesuaikan strategi mengikut keperluan mereka sendiri, meningkatkan fleksibiliti dan kebolehpasaran strategi.
Pengurusan kewangan bersepaduStrategi: Secara lalai, peratusan dana akaun digunakan untuk berdagang dan bukannya jumlah tetap, yang menunjukkan kesedaran pengurusan risiko yang baik, yang membantu pertumbuhan jangka panjang dan kawalan risiko dana.
Walaupun terdapat banyak kelebihan dalam strategi ini, kami juga mendapati risiko yang berpotensi dengan menganalisis kod dengan lebih mendalam:
Risiko ketinggalan zamanEMA pada dasarnya adalah penunjuk kelewatan, yang boleh menyebabkan kelewatan isyarat, kehilangan titik masuk terbaik, atau kelewatan keluar dalam pasaran yang bergelombang, menyebabkan kerugian tambahan. Penyelesaian adalah dengan mempertimbangkan untuk menyesuaikan parameter EMA atau meningkatkan penapis kadar lonjakan dalam persekitaran yang bergelombang tinggi.
Risiko penembusan palsuWalaupun logik CBC memerlukan harga penutupan untuk mengesahkan penembusan, pasaran masih boleh berbalik dengan cepat selepas penembusan palsu. Penyelesaian adalah dengan mempertimbangkan untuk meningkatkan pengesahan jumlah transaksi atau menetapkan syarat penyaringan untuk penembusan.
Terlalu bergantung pada VWAPDalam pasaran yang bergelombang, harga mungkin sering melintasi VWAP, menyebabkan bunyi isyarat yang meningkat. Penyelesaian adalah untuk menghentikan perdagangan atau menambah keadaan penyaringan amplitudo yang bergelombang semasa mengenal pasti pasaran yang bergelombang.
Kekurangan mekanisme kawalan kerugianStrategi semasa tidak mempunyai mekanisme hentian kerugian yang jelas, bergantung sepenuhnya pada penutupan isyarat pembalikan CBC, yang boleh menyebabkan kerugian yang lebih besar dalam keadaan yang melampau. Penyelesaian adalah dengan menambah hentian tetap atau hentian ganda ATR, menetapkan had kerugian maksimum.
Penapisan tarikh kurangWalaupun strategi menawarkan penapis tarikh, ia tidak mengambil kira kesan peristiwa pasaran khas (seperti laporan kewangan, pengumuman dasar, dan sebagainya) terhadap prestasi strategi. Penyelesaian adalah dengan mengintegrasikan fungsi kalendar ekonomi, menyesuaikan atau menghentikan perdagangan secara automatik semasa peristiwa penting.
Kecacatan pengesananPenggunaan strategi:fill_orders_on_standard_ohlc = trueParameter, yang mungkin berbeza dengan transaksi sebenar dalam tinjauan balik, menyebabkan keputusan tinjauan balik terlalu optimis. Penyelesaian adalah dengan menggunakan simulasi per-pen atau mempertimbangkan titik slip dan kos transaksi untuk tinjauan balik yang lebih realistik.
Ketergantungan kitaran tunggalStrategi hanya berjalan pada satu kitaran masa, kekurangan pengesahan pelbagai kitaran, mungkin terlepas isyarat pembalikan kitaran yang lebih besar. Penyelesaian adalah untuk mempertimbangkan untuk mengintegrasikan mekanisme pengesahan isyarat pelbagai kitaran.
Berdasarkan analisis menyeluruh kod strategi, kami mencadangkan optimasi berikut:
Menambah parameter penyesuaianSiklus EMA boleh disesuaikan dengan pergerakan kadar turun naik pasaran, menggunakan kitaran yang lebih pendek di pasaran yang bergelombang tinggi, menggunakan kitaran yang lebih lama di pasaran yang bergelombang rendah, meningkatkan kesesuaian strategi dengan keadaan pasaran yang berbeza. Ini boleh dicapai dengan mengira ATR (rata-rata gelombang sebenar) dan memetakannya ke dalam jangkauan kitaran EMA.
Pengesahan jumlah penghantaran bersepaduPenambahan permintaan pengesahan jumlah transaksi berdasarkan isyarat pembalikan CBC, yang memicu isyarat hanya apabila penembusan disertai dengan peningkatan jumlah transaksi yang ketara, menyaring penembusan berkualiti rendah. Ini boleh dicapai dengan membandingkan hubungan jumlah transaksi semasa dengan jumlah transaksi purata N-siklus.
Menyertai mekanisme halangan kerugian: Memperkenalkan Hentian Dinamis Berasaskan ATR atau Hentian Peratusan Tetap untuk melindungi dana daripada keadaan yang melampau sebelum menunggu isyarat CBC. Disyorkan untuk melaksanakan fungsi Hentian Tracking untuk menyesuaikan tahap Hentian secara automatik apabila harga bergerak ke arah yang menguntungkan.
Pengesahan sinkronisasi pelbagai kitaranMeningkatkan kualiti isyarat: menambah pemeriksaan terhadap trend jangka masa yang lebih tinggi, masuk hanya apabila arah trend jangka masa besar selaras dengan arah perdagangan semasa. Ia boleh dilakukan dengan meminta data EMA untuk jangka masa yang lebih tinggi dan memeriksa arahnya.
Klasifikasi keadaan pasaran: Membangunkan modul pengenalan keadaan pasaran, membezakan pasaran tren dan pasaran melintang, menyesuaikan parameter strategi atau menangguhkan perdagangan dalam keadaan pasaran yang berbeza. Anda boleh menggunakan ADX (Indeks Arah Rata-rata) atau analisis rentang turun naik harga untuk mengenal pasti keadaan pasaran.
Pengurusan wang yang optimumDimensi kedudukan yang disesuaikan secara dinamik berdasarkan kadar turun naik dan kadar kemenangan, meningkatkan kedudukan pada isyarat kemenangan tinggi, mengurangkan kedudukan pada isyarat kemenangan rendah. Penyesuaian kedudukan dinamik boleh dicapai dengan mengkaji statistik isyarat sejarah dan mengira kadar turun naik pasaran semasa.
Tambah waktu penapisanMemperkenalkan penapis masa dalam hari, mengelakkan masa turun naik yang tinggi sebelum bukaan dan penutupan, dan memfokuskan perdagangan pada masa pasaran yang aktif tetapi agak stabil. Anda boleh menetapkan masa perdagangan yang dioptimumkan mengikut ciri-ciri masa perdagangan di pasaran yang berbeza.
Pengoptimuman persekitaranPenggunaan:fill_orders_on_standard_ohlc = falseDengan menggunakan kaedah ini, anda boleh mendapatkan lebih banyak maklumat mengenai penyesuaian dan penyesuaian yang diperlukan untuk membuat keputusan yang lebih baik.
Strategi perdagangan kuantitatif EMA-VWAP dan CBC adalah sistem perdagangan yang tersusun, logik dan jelas, yang membentuk isyarat perdagangan yang berkualiti tinggi dengan mengintegrasikan pelbagai petunjuk teknikal dan analisis tingkah laku harga. Kelebihan utama strategi ini adalah mekanisme pengesahan berganda dan sistem rujukan struktur pasaran yang lengkap, yang berkesan mengurangkan kadar kesalahan dan meningkatkan kualiti isyarat.
Strategi ini menggunakan falsafah perdagangan “berkembang, berbalik”, yang memerlukan pengesahan serentak pelbagai syarat semasa masuk, dan bergantung pada isyarat pembalikan CBC untuk keluar, membentuk sistem perdagangan yang logik dan simetri. Pada masa yang sama, strategi ini mengintegrasikan elemen umpan balik visual yang kaya dan tetapan parameter yang fleksibel, meningkatkan pengalaman dan kesesuaian penggunaan.
Walau bagaimanapun, strategi ini juga mempunyai masalah yang berpotensi seperti risiko keterlambatan, risiko penembusan palsu dan kekurangan mekanisme penangguhan kerugian. Dengan menambah parameter penyesuaian, pengesahan jumlah trafik yang bersepadu, dan langkah-langkah pengoptimuman seperti penangguhan kerugian dan pengesahan sinkronisasi pelbagai kitaran, strategi ini dapat meningkatkan kestabilan dan keuntungan.
Secara keseluruhannya, ini adalah kerangka strategi asas yang dirancang dengan baik, dengan pengoptimuman yang munasabah dan konfigurasi pengurusan risiko, ia mempunyai potensi untuk menjadi sistem perdagangan yang mantap. Dalam aplikasi praktikal, peniaga harus menyesuaikan parameter strategi secara peribadi mengikut keutamaan risiko dan matlamat perdagangan mereka sendiri, dan sentiasa mengekalkan disiplin pengurusan wang yang sesuai.
/*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)