
VixFix adalah strategi perdagangan kuantitatif yang menggabungkan pemantauan volatilitas pasar, pengakuan tren, dan pemfilteran dinamis. Strategi ini menggunakan indikator Williams Vix Fix (WVF) untuk mengidentifikasi lonjakan volatilitas pasar, sekaligus mengkonfirmasi tren dengan HMA200 (rata-rata bergerak 200 siklus Hull), dan memfilter sinyal perdagangan probabilitas tinggi melalui RSI (indikator yang relatif kuat dan lemah).
Mekanisme operasi strategi ini didasarkan pada sinergi dari empat komponen inti:
Williams Vix Fix (WVF)Sebagai pemicu utama dari strategi, WVF mengidentifikasi lonjakan volatilitas pasar dengan menghitung persentase perbedaan antara harga saat ini dengan harga tertinggi 22 periode terakhir. Ketika nilai WVF melampaui Bollinger Bands atau lebih tinggi dari persentase historis, dianggap sebagai volatilitas yang tidak biasa, biasanya mewakili panik pasar atau overselling, yang menawarkan peluang perdagangan yang berpotensi berbalik.
Hull Moving Average (HMA 200): Digunakan sebagai filter tren utama untuk menentukan arah tren pasar dengan membandingkan harga dengan hubungan posisi HMA200. Strategi ini hanya memungkinkan untuk melakukan over jika harga berada di atas HMA200, melakukan short jika berada di bawahnya dan HMA slope negatif, memastikan arah perdagangan sesuai dengan tren utama.
Indeks Relatif Lemah (RSI): Menyediakan sinyal konfirmasi momentum untuk strategi. Multiply entry membutuhkan RSI lebih tinggi dari 35, sedangkan entry overhead membutuhkan RSI lebih rendah dari 20, dan RSI harus berada di bawah rata-rata pergerakan indeks 21 periode, dengan setelan terobosan RSI overhead yang lebih rendah membantu menangkap tren turun dengan momentum tinggi.
Sistem ATR Tracking StopKetika harga mencapai tingkat keuntungan tertentu, mekanisme tailing stop diaktifkan. Posisi tailing menggunakan amplitudo tailing 1.75×ATR, dan posisi tailing menggunakan 1.0×ATR, dengan batasan tailing stop yang keras untuk mencegah kerugian berlebihan.
Logika masuknya adalah: melakukan multiply harus memenuhi kenaikan WVF, RSI lebih besar dari 35, harga di atas HMA200; melakukan shorting harus memenuhi kenaikan WVF, RSI kurang dari 20, harga di bawah HMA200 dan HMA slope negatif, RSI lebih rendah dari EMA 21 , harga lebih rendah dari EMA 100 , jarak dari sinyal shorting terakhir setidaknya 10 K garis.
Mekanisme penyaringan bertingkatStrategi ini dibangun melalui kombinasi dari volatility identification (WVF), trend confirmation (HMA200) dan momentum validation (RSI) dengan sistem triple filtering yang secara signifikan meningkatkan reliabilitas sinyal trading dan mengurangi false breaks dan error signals.
Adaptasi pasar yang berbedaStrategi ini menetapkan parameter yang berbeda untuk arah over dan short, mengakui dan menyesuaikan diri dengan kecenderungan naik pasar. Perdagangan kosong menggunakan persyaratan masuk yang lebih ketat dan pengaturan stop loss yang lebih longgar untuk menghadapi karakteristik yang cepat dan tajam dari tren turun.
Manajemen Risiko yang CerdasATR-based dynamic trailing stop loss system mampu beradaptasi dengan volatilitas pasar, memberikan harga cukup ruang untuk bernafas, dan menghindari posisi yang menguntungkan dari turun naik pasar normal.
Kapasitas menangkap gelombangIndikator Williams Vix Fix sangat baik dalam mengidentifikasi pasar panik dan oversold, memungkinkan strategi untuk menangkap peluang reversal probabilitas tinggi pada saat emosi pasar yang ekstrim, yang sangat berharga ketika pasar bergejolak.
Mencegah OvertradingDengan mengatur jarak minimal K-line antara sinyal kosong (< 10 K-line), strategi ini efektif untuk menghindari terlalu banyak sinyal di pasar yang bergoyang, mengurangi risiko kerugian berturut-turut dan menghemat biaya perdagangan.
Identifikasi Trending ReversalBergantung pada rata-rata bergerak jangka panjang seperti HMA200 dapat menyebabkan reaksi yang terlambat pada titik-titik perubahan tren, sehingga strategi kehilangan waktu masuk yang optimal atau menanggung kerugian awal ketika arah pasar berubah secara tiba-tiba. Anda dapat mempertimbangkan untuk menambahkan indikator tren jangka pendek sebagai konfirmasi tambahan.
Tantangan Sukses Menggunakan AirData retrospektif menunjukkan bahwa kemenangan trading overhead secara signifikan lebih rendah daripada overhead (30% vs 49,6%), meskipun rata-rata keuntungan lebih tinggi, namun kegagalan berturut-turut dalam trading overhead dapat menyebabkan tekanan psikologis dan keuangan pada akun. Disarankan untuk menggunakan dengan hati-hati atau sementara melarang trading overhead di pasar bullish yang kuat.
Parameter SensitivitasStrategi menggunakan beberapa parameter tetap (misalnya, RSI threshold, ATR multiplier, dan lain-lain) yang dapat berubah dalam kondisi pasar yang berbeda. Optimasi berlebihan dapat menyebabkan penurunan kinerja strategi dalam data luar sampel.
Kecenderungan fluktuatifTrigger inti dari strategi ini bergantung pada lonjakan volatilitas pasar, yang mungkin menghasilkan sinyal perdagangan yang lebih sedikit dalam lingkungan long-term low volatility, yang memengaruhi pendapatan keseluruhan.
Risiko kerusakan keras: Hentikan keras pada ATR yang tetap dapat dengan mudah disentuh saat pasar bergejolak, sehingga memaksa penutupan sebelum harga berbalik. Anda dapat mempertimbangkan untuk menyesuaikan level stop loss secara dinamis dalam kombinasi dengan indikator teknis lainnya, atau menerapkan strategi penutupan batch.
Parameter dinamis beradaptasiStrategi dapat memperkenalkan mekanisme penyesuaian parameter dinamis berdasarkan volatilitas pasar dan intensitas tren, seperti secara otomatis meningkatkan RSI threshold dan jarak stop loss dalam lingkungan yang berfluktuasi tinggi, memperketat parameter dalam lingkungan yang berfluktuasi rendah, meningkatkan adaptasi lingkungan strategi.
Filter volume dan waktu transaksi: Anda dapat menambahkan konfirmasi volume transaksi dan kondisi penyaringan waktu, misalnya hanya melakukan transaksi pada saat volume transaksi meningkat atau pada waktu tertentu (seperti saat pasar dibuka, sebelum dan sesudah data ekonomi utama dirilis) untuk meningkatkan kualitas sinyal. Alasan adalah bahwa pergerakan pasar cenderung lebih berorientasi dan berkelanjutan pada saat-saat ini.
Konfirmasi multi-periodeIntroduksi tren dan konfirmasi momentum pada periode waktu yang lebih tinggi dapat meningkatkan stabilitas strategi secara signifikan. Sebagai contoh, hanya masuk saat tren sunset sejalan dengan arah sinyal 30 menit, dapat mengurangi risiko perdagangan mundur.
Optimalisasi Pembelajaran Mesin: Dapat menerapkan algoritma pembelajaran mesin untuk secara dinamis memprediksi parameter masuk dan level stop optimal, menyesuaikan parameter strategi secara real-time berdasarkan pola sejarah dan kondisi pasar saat ini, meningkatkan fleksibilitas dan stabilitas strategi.
Perpaduan indikator emosiIntegrasi indikator sentimen pasar (seperti rasio volume perdagangan, rasio opsi bullish / bearish, dll.) dapat memberikan konfirmasi tambahan untuk WVF dan meningkatkan akurasi perkiraan titik balik pasar. Indikator-indikator ini sering dapat mencerminkan perubahan sentimen pasar lebih awal, sebagai indikator utama yang melengkapi sifat tertinggal WVF.
VixFix Dynamic Volatility Trading System adalah strategi perdagangan komprehensif yang menggabungkan identifikasi volatilitas pasar, pengakuan tren, dan penyaringan momentum, menangkap peluang lonjakan volatilitas pasar melalui indikator Williams Vix Fix, dan menggunakan HMA200 dan RSI untuk konfirmasi arah dan momentum, yang dikombinasikan dengan ATR-based Adaptive Trailing Stop Loss Management Risk. Strategi ini mengoptimalkan pengaturan parameter untuk arah multi-halangan secara terpisah, terutama meningkatkan kondisi penyaringan perdagangan kosong, untuk menanggapi kecenderungan kenaikan pasar cryptocurrency.
Keuntungan terbesar dari strategi ini adalah sistem pemfilteran sinyal bertingkat dan mekanisme manajemen risiko yang fleksibel, yang dapat menangkap peluang berbalik dalam lingkungan pasar yang bergejolak. Risiko utama termasuk masalah seperti keterlambatan identifikasi tren, tingkat keberhasilan shorting yang rendah, dan sensitivitas parameter.
Secara keseluruhan, strategi ini menunjukkan bagaimana membangun sistem perdagangan yang lengkap dengan menggabungkan berbagai jenis indikator teknis dan mekanisme manajemen risiko yang lebih halus, yang sangat cocok untuk lingkungan pasar yang lebih volatil. Dalam aplikasi praktis, kombinasi dasar-dasar dan perspektif ekonomi makro, yang dikombinasikan dengan aturan manajemen dana yang masuk akal, dapat meningkatkan nilai praktis strategi lebih lanjut.
/*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")