Chiến lược này là một hệ thống giao dịch định lượng dựa trên hành vi của Chỉ số biến động (VIX) tương đối với đường trung bình động 10 ngày. Chiến lược sử dụng độ lệch giữa VIX và đường trung bình động của nó làm tín hiệu giao dịch, kết hợp các khái niệm phân tích kỹ thuật và điều khoản thống kê. Ý tưởng cốt lõi là nắm bắt những thay đổi cực đoan trong tâm lý thị trường bằng cách giao dịch khi VIX cho thấy độ lệch đáng kể và chờ đợi sự đảo ngược trung bình.
Chiến lược sử dụng một cơ chế giao dịch hai chiều với cả hai chiều dài và ngắn:
Các điều kiện dài đòi hỏi giá thấp của VIX
Chiến lược này là một chiến lược đảo ngược trung bình dựa trên sự biến động của thị trường, sử dụng các phương pháp định lượng để nắm bắt những thay đổi cực đoan trong tâm lý thị trường. Chiến lược có các quy tắc giao dịch rõ ràng và cơ chế kiểm soát rủi ro nhưng đòi hỏi sự chú ý đến cách môi trường thị trường thay đổi ảnh hưởng đến hiệu suất chiến lược. Thông qua tối ưu hóa và cải tiến liên tục, chiến lược này có tiềm năng duy trì hiệu suất ổn định trong các điều kiện thị trường khác nhau.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-09 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © EdgeTools //@version=5 strategy("Connors VIX Reversal III invented by Dave Landry", overlay=true) // Inputs vixSymbol = input("swap", "VIX Symbol") lengthMA = input(10, title="Length of Moving Average") percentThreshold = input(10, title="Percentage Threshold") buyColor = input(color.rgb(0, 255, 0,90), title="Buy Signal Color") sellColor = input(color.rgb(255, 0, 0,90), title="Sell Signal Color") exitColor = input(color.rgb(0, 0, 255,90), title="Exit Signal Color") // Fetch VIX data vixClose = request.security(vixSymbol, "D", close) vixHigh = request.security(vixSymbol, "D", high) vixLow = request.security(vixSymbol, "D", low) // Calculate 10-day Moving Average of VIX vixMA = ta.sma(vixClose, lengthMA) // Calculate yesterday's 10-day Moving Average vixMA_yesterday = ta.sma(vixClose[1], lengthMA) // Buy Rules buyCondition1 = vixLow > vixMA buyCondition2 = vixClose > vixMA * (1 + percentThreshold / 100) buySignal = buyCondition1 and buyCondition2 // Sell Rules sellCondition1 = vixHigh < vixMA sellCondition2 = vixClose < vixMA * (1 - percentThreshold / 100) sellSignal = sellCondition1 and sellCondition2 // Exit Rules buyExit = vixLow < vixMA_yesterday sellExit = vixHigh > vixMA_yesterday // Plot Buy/Sell Signals bgcolor(buySignal ? buyColor : na) bgcolor(sellSignal ? sellColor : na) // Exit Signals bgcolor(buyExit ? exitColor : na) bgcolor(sellExit ? exitColor : na) // Strategy if (buySignal) strategy.entry("Buy", strategy.long) if (sellSignal) strategy.entry("Sell", strategy.short) if (buyExit) strategy.close("Buy") if (sellExit) strategy.close("Sell")