
Sistem perdagangan pergerakan dinamik VixFix adalah strategi perdagangan kuantitatif yang menggabungkan pemantauan pergerakan pasaran, pengesahan trend, dan penapisan dinamik. Strategi ini menggunakan indikator Williams Vix Fix (WVF) untuk mengenal pasti lonjakan turun naik pasaran, dan pengesahan trend digabungkan dengan HMA200 (rata-rata bergerak 200-berkala Hull) dan disaring dengan isyarat perdagangan kebarangkalian tinggi melalui RSI (indikator kuat berbanding lemah).
Mekanisme operasi strategi ini adalah berdasarkan kepada empat komponen teras yang berfungsi bersama:
Williams Vix Fix (WVF)Sebagai pemicu utama strategi, WVF mengenal pasti kejutan turun naik pasaran dengan mengira peratusan perbezaan antara harga semasa dengan harga tertinggi dalam 22 kitaran terakhir. Apabila nilai WVF melebihi lintasan Burin atau lebih tinggi daripada peratusan sejarah, ia dianggap sebagai ketidakstabilan turun naik, yang biasanya mewakili keadaan panik atau oversold di pasaran, yang menawarkan peluang perdagangan terbalik yang berpotensi.
Hull Moving Average (HMA200): Digunakan sebagai penapis trend utama untuk menentukan arah trend pasaran dengan membandingkan harga dengan hubungan kedudukan HMA200. Strategi ini hanya membenarkan melakukan lebih banyak apabila harga berada di atas HMA200, dan kosong apabila berada di bawahnya dan kemerosotan HMA adalah negatif, memastikan arah perdagangan selaras dengan trend utama.
Indeks Relatif Lemah (RSI): Menyediakan isyarat pengesahan momentum untuk strategi. Masuk dengan banyak kepala memerlukan RSI lebih tinggi daripada 35 dan masuk dengan kepala kosong memerlukan RSI lebih rendah daripada 20 dan RSI berada di bawah rata-rata pergerakan indeks 21 siklusnya. Tetapan RSI dengan kepala kosong yang lebih rendah membantu menangkap pergerakan turun yang tinggi.
ATR sistem penghentian kecederaan: Apabila harga mencapai tahap keuntungan tertentu ((multihead adalah 2.5×ATR, kepala kosong adalah 1.2×ATR) mengaktifkan mekanisme penutupan kerugian ekor. Peringkat ekor 1.75×ATR digunakan untuk kedudukan multihead, kepala kosong menggunakan 1.0×ATR, sambil menetapkan had penutupan kerugian keras ((multihead 2.5×ATR, kepala kosong 3.0×ATR) untuk mengelakkan kerugian yang berlebihan.
Logik masuk ialah: apabila melakukan banyak masa perlu memenuhi kenaikan WVF, RSI lebih besar daripada 35, harga di atas HMA200; apabila melakukan shorting perlu memenuhi kenaikan WVF, RSI kurang daripada 20, harga di bawah HMA200 dan HMA slope negatif, RSI lebih rendah daripada EMA (,) harga lebih rendah daripada EMA (,) jarak daripada isyarat shorting terakhir sekurang-kurangnya 10 K garis.
Mekanisme penapisan bertingkatStrategi ini membina sistem penapisan tiga kali ganda dengan menggabungkan pengenalan turun naik (WVF), pengesahan trend (HMA200) dan pengesahan momentum (RSI) yang meningkatkan kebolehpercayaan isyarat perdagangan dengan ketara, mengurangkan penembusan palsu dan isyarat salah.
Kebolehan beradaptasi pasaran yang berbezaStrategi menetapkan parameter yang berbeza untuk arah over dan short, mengiktiraf dan menyesuaikan diri dengan kecenderungan kenaikan pasaran. Perdagangan kosong menggunakan syarat masuk yang lebih ketat dan tetapan stop loss yang lebih longgar untuk menangani sifat yang cepat dan kuat dari tren penurunan.
Pengurusan Risiko PintarSistem Hentian Kekalahan Bergerak Berasaskan ATR dapat menyesuaikan diri dengan turun naik pasaran, memberikan ruang rehat yang mencukupi kepada harga sambil melindungi yang sudah menguntungkan, dan mengelakkan kedudukan yang menguntungkan dari turun naik pasaran biasa.
Kapasiti menangkap gelombangIndeks Williams Vix Fix sangat mahir dalam mengenal pasti keadaan pasaran panik dan oversold, membolehkan strategi menangkap peluang pembalikan yang berkemungkinan tinggi pada masa emosi yang melampau di pasaran, yang sangat berharga ketika pasaran berubah-ubah secara mendadak.
Mencegah perdagangan berlebihan: Dengan menetapkan jarak K-line minimum antara isyarat kosong ((10 K-line), strategi ini berkesan untuk mengelakkan terlalu banyak isyarat dalam pasaran yang bergolak, mengurangkan risiko kerugian berturut-turut dan menjimatkan kos perdagangan.
Pengiktirafan kebelakangBergantung kepada purata bergerak jangka panjang seperti HMA200 boleh menyebabkan reaksi yang terlewat pada titik-titik perubahan trend, menyebabkan strategi terlepas masa masuk yang terbaik atau menanggung kerugian awal apabila arah pasaran tiba-tiba berubah. Anda boleh mempertimbangkan untuk menambah indikator trend jangka pendek sebagai pengesahan tambahan.
Cabaran BerjayaData retrospektif menunjukkan bahawa kemenangan perdagangan kosong adalah jauh lebih rendah daripada perdagangan kosong (> 30.0% vs 49.6%), walaupun keuntungan purata lebih tinggi, tetapi perdagangan kosong yang gagal secara berturut-turut boleh menyebabkan tekanan psikologi dan kewangan pada akaun. Ia disyorkan untuk menggunakan dengan berhati-hati atau sementara melarang perdagangan kosong dalam pasaran yang kuat.
Kepekaan ParameterStrategi menggunakan beberapa parameter tetap (seperti RSI, ATR, dan lain-lain) yang mungkin berubah-ubah dalam keadaan pasaran yang berbeza. Pengoptimuman berlebihan boleh menyebabkan strategi berprestasi rendah dalam data luar sampel, dan disarankan untuk mengesahkan semula parameter secara berkala.
Kepercayaan yang tidak menentu: Mekanisme pemicu utama strategi bergantung pada lonjakan turun naik pasaran, yang mungkin menghasilkan kurang isyarat perdagangan dalam persekitaran turun naik yang berpanjangan, yang mempengaruhi pendapatan keseluruhan. Anda boleh mempertimbangkan untuk menambah logik masuk alternatif dalam tempoh turun naik.
Risiko kerosakan keras: Hentikan keras pada kelipatan ATR tetap mungkin mudah disentuh semasa turun naik pasaran yang kuat, menyebabkan penutupan paksa sebelum harga akan berbalik. Anda boleh mempertimbangkan untuk menyesuaikan tahap hentikan secara dinamik dalam kombinasi dengan petunjuk teknikal lain, atau melaksanakan strategi penutupan secara beratur.
Parameter dinamik menyesuaikan diriStrategi boleh memperkenalkan mekanisme penyesuaian parameter dinamik berdasarkan turun naik pasaran dan kekuatan trend, seperti secara automatik meningkatkan nilai terhad RSI dan jarak henti dalam persekitaran yang bergelombang tinggi, memperketat parameter dalam persekitaran yang bergelombang rendah, meningkatkan daya serap strategi.
Penapisan jumlah dan masa transaksiAnda boleh menambah syarat pengesahan jumlah dagangan dan penapisan masa, seperti melakukan perdagangan hanya pada masa lonjakan jumlah dagangan atau pada masa tertentu (seperti masa pasaran dibuka, sebelum dan selepas data ekonomi utama dikeluarkan) untuk meningkatkan kualiti isyarat. Sebabnya adalah bahawa turun naik pasaran cenderung lebih berorientasikan dan berterusan pada masa-masa ini.
Pengesahan pelbagai kitaran masa: Pengenalan trend dan pengesahan momentum pada jangka masa yang lebih tinggi dapat meningkatkan kestabilan strategi secara signifikan. Sebagai contoh, masuk hanya apabila trend garisan matahari selaras dengan arah isyarat 30 minit, dapat mengurangkan risiko perdagangan berlawanan arah.
Pengoptimuman Pembelajaran Mesin: Algoritma pembelajaran mesin boleh digunakan secara dinamik untuk meramalkan parameter masuk dan paras henti yang optimum, menyesuaikan parameter strategi dalam masa nyata berdasarkan model sejarah dan keadaan pasaran semasa, meningkatkan daya serap dan kestabilan strategi.
Keadaan emosi bercampurPenambahan indikator sentimen pasaran (seperti nisbah jumlah dagangan, nisbah opsyen bullish/bullish, dan lain-lain) boleh memberikan pengesahan tambahan kepada WVF dan meningkatkan ketepatan ramalan titik balik pasaran. Indikator ini sering mencerminkan perubahan sentimen pasaran lebih awal, sebagai penunjuk utama yang melengkapkan sifat ketinggalan WVF.
Sistem perdagangan pergerakan dinamik VixFix adalah strategi perdagangan komprehensif yang menggabungkan pengenalan turun naik pasaran, pengesahan trend, dan penyaringan dinamik untuk menangkap peluang lonjakan turun naik pasaran melalui indikator Williams Vix Fix, dan menggunakan HMA200 dan RSI untuk pengesahan arah dan dinamik, yang dikombinasikan dengan mekanisme penghalang kerugian beradaptasi yang berasaskan ATR. Strategi ini mengoptimumkan parameter yang ditetapkan untuk pelbagai arah kosong, khususnya meningkatkan syarat penyaringan perdagangan kosong, untuk menangani kecenderungan kenaikan harga di pasaran cryptocurrency.
Kelebihan terbesar strategi ini adalah sistem penapisan isyarat bertingkat dan mekanisme pengurusan risiko yang fleksibel, yang dapat menangkap peluang pembalikan dalam persekitaran pasaran yang bergelombang tinggi dan mengawal risiko dengan berkesan. Risiko utama termasuk masalah seperti ketinggalan pengenalan trend, kadar kejayaan shorting yang rendah dan kepekaan parameter. Arah pengoptimuman masa depan dapat memberi tumpuan kepada penyesuaian parameter dinamik, pengesahan kitaran masa berbilang dan aplikasi pembelajaran mesin, untuk meningkatkan lagi kebolehan dan ketahanan strategi.
Secara keseluruhannya, strategi ini menunjukkan bagaimana untuk membina sistem perdagangan yang lengkap dengan menggabungkan pelbagai jenis petunjuk teknikal dan mekanisme pengurusan risiko yang terperinci, yang sangat sesuai untuk persekitaran pasaran yang lebih turun naik. Dalam aplikasi praktikal, gabungan asas dan perspektif ekonomi makro, yang dikombinasikan dengan peraturan pengurusan wang yang munasabah, dapat meningkatkan nilai praktikal strategi.
/*backtest
start: 2024-07-08 00:00:00
end: 2025-07-04 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=6
strategy("CM_VixFix_RSI_HMA200_TrailStop_vFinal", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// === INPUTS ===
hmaLen = input.int(200, title="HMA Length")
rsiLen = input.int(14, title="RSI Length")
rsiLongTrigger = input.int(35, title="RSI Long Trigger Level")
rsiShortTrigger = input.int(20, title="RSI Short Trigger Level")
atrLen = input.int(14, title="ATR Length")
atr = ta.atr(atrLen)
// === Long Trailing Parameters
trailTriggerL = input.float(2.5, title="Long Trail Trigger (xATR)")
trailOffsetL = input.float(1.75, title="Long Trail Offset (xATR)")
hardStopL = input.float(2.5, title="Long Hard Stop (xATR)")
// === Short Trailing Parameters
trailTriggerS = input.float(1.2, title="Short Trail Trigger (xATR)")
trailOffsetS = input.float(1.0, title="Short Trail Offset (xATR)")
hardStopS = input.float(3.0, title="Short Hard Stop (xATR)")
maxBarsShort = input.int(10, title="Min Bars Between Short Signals")
// === VIX FIX Settings
pd = input.int(22, title="Lookback Period")
bbl = input.int(20, title="Bollinger Length")
mult = input.float(2.0, title="StdDev Multiplier")
lb = input.int(50, title="Percentile Lookback")
ph = input.float(0.97, title="Range High Percentile")
// === WVF VixFix
wvf = ((ta.highest(close, pd) - low) / ta.highest(close, pd)) * 100
rangeHigh = ta.percentile_nearest_rank(wvf, lb, ph)
upperBand = ta.sma(wvf, bbl) + ta.stdev(wvf, bbl) * mult
vixSpike = wvf >= upperBand or wvf >= rangeHigh
// === HMA & RSI & Filters
wma1 = ta.wma(close, hmaLen / 2)
wma2 = ta.wma(close, hmaLen)
diff = 2 * wma1 - wma2
hma = ta.wma(diff, math.round(math.sqrt(hmaLen)))
hmaSlope = hma - hma[5]
plot(hma, title="HMA", color=color.orange, linewidth=2)
rsi = ta.rsi(close, rsiLen)
rsiEMA = ta.ema(rsi, 21)
priceEMA = ta.ema(close, 100)
// === State Variables
var float entryL = na
var float peakL = na
var bool trailL = false
var float entryS = na
var float lowS = na
var bool trailS = false
var int lastShortBar = na
// === LONG ENTRY ===
longCondition = vixSpike and rsi > rsiLongTrigger and close > hma
if (longCondition and strategy.position_size == 0)
strategy.entry("Long", strategy.long)
entryL := close
trailL := false
peakL := close
if (strategy.position_size > 0)
peakL := math.max(peakL, high)
if not trailL and close >= entryL + trailTriggerL * atr
trailL := true
if not trailL and close <= entryL - hardStopL * atr
strategy.close("Long", comment="HardStopL")
if trailL and close <= peakL - trailOffsetL * atr
strategy.close("Long", comment="TrailStopL")
// === SHORT ENTRY ===
shortBase = vixSpike and rsi < rsiShortTrigger and close < hma and hmaSlope < 0
shortFilter = rsi < rsiEMA and close < priceEMA
canShort = na(lastShortBar) or (bar_index - lastShortBar > maxBarsShort)
shortCondition = shortBase and shortFilter and canShort
if (shortCondition and strategy.position_size == 0)
strategy.entry("Short", strategy.short)
entryS := close
trailS := false
lowS := close
lastShortBar := bar_index
if (strategy.position_size < 0)
lowS := math.min(lowS, low)
if not trailS and close <= entryS - trailTriggerS * atr
trailS := true
if not trailS and close >= entryS + hardStopS * atr
strategy.close("Short", comment="HardStopS")
if trailS and close >= lowS + trailOffsetS * atr
strategy.close("Short", comment="TrailStopS")