Chiến lược sửa chữa Williams VIX

Tác giả:ChaoZhang, Ngày: 2023-09-28 15:29:48
Tags:

Tổng quan

Chiến lược này nhằm mục đích dự đoán sự biến động của thị trường VIX bằng cách sử dụng công thức Williams Vix Fix kết hợp với chỉ số RSI và RSI Stochastic.

Chiến lược logic

Chiến lược chủ yếu dựa trên sự kết hợp của công thức Williams Vix Fix và chỉ số RSI & RSI Stochastic.

Đầu tiên, giá trị VIX của giai đoạn hiện tại được tính bằng công thức Williams Vix Fix bằng cách đo tỷ lệ giá cao nhất với giá thấp nhất, đại diện cho sự biến động của thị trường và mức hoảng loạn.

Thứ hai, chiến lược sử dụng sự kết hợp của chỉ số RSI và chỉ số RSI. RSI được sử dụng để xác định các vị trí dài / ngắn, trong khi Stoch RSI kết hợp các đường K & D để xác định các điểm đảo ngược của RSI. Các tín hiệu bán được tạo ra khi Stoch RSI giảm khỏi vùng mua quá mức.

Cuối cùng, chiến lược tích hợp cả hai bằng cách lấy tín hiệu mua quá mức của Stoch RSI làm cơ sở để bán và giá trị VIX thấp hơn dải Bollinger thấp hơn làm cơ sở để mua, để nắm bắt các điểm đảo ngược thị trường.

Phân tích lợi thế

Ưu điểm lớn nhất của chiến lược này là nó có thể sử dụng điểm mạnh của hai chỉ số khác nhau kết hợp.

Công thức Williams Vix Fix có thể phản ánh hiệu quả cảm xúc hoảng loạn của thị trường. Sự điều chỉnh năng động của các dải bollinger có thể thích nghi với các chu kỳ khác nhau. RSI ngẫu nhiên xác định các điểm đảo ngược RSI thông qua sự chéo chéo của các đường K & D, tránh các tín hiệu sai.

Hai kết hợp có thể xác định chính xác hơn các điểm đảo ngược thị trường. Nó tạo ra tín hiệu bán khi chỉ số hoảng loạn thị trường phát hành tín hiệu trong khi sử dụng Stoch RSI để xác định các điểm nhập cụ thể để tránh các mục nhập sai.

Phân tích rủi ro

Có một số rủi ro trong chiến lược này:

  1. Công thức Williams Vix Fix không thể phản ánh đầy đủ cảm xúc hoảng loạn của thị trường.

  2. Các tín hiệu đảo ngược của Stoch RSI cũng có thể sai và cần được xác minh với các chỉ số khác.

  3. Chiến lược tương đối bảo thủ và có thể bỏ lỡ cơ hội nếu không thể theo dõi thị trường chuyển động nhanh kịp thời.

  4. Chiến lược có thể có drawdowns lớn hơn đòi hỏi kích thước vị trí cẩn thận.

Chúng ta cần thiết lập các tham số hợp lý, xác minh với các chỉ số khác và kiểm soát kích thước vị trí để giảm thiểu rủi ro khi sử dụng chiến lược này.

Hướng dẫn tối ưu hóa

Một số cách để tối ưu hóa chiến lược này:

  1. Tối ưu hóa các thông số của công thức Williams Vix để phản ánh chính xác hơn mức hoảng loạn thị trường.

  2. Tối ưu hóa các thông số của Stoch RSI để tìm kết hợp tốt hơn của các giai đoạn K & D để có độ chính xác đảo ngược cao hơn.

  3. Thêm các cơ chế định kích thước vị trí như dừng lỗ / lấy lợi nhuận hoặc điều chỉnh vị trí năng động dựa trên tỷ lệ rút/lợi nhuận.

  4. Kết hợp các chỉ số khác như MACD, KD để nhận ra xác minh đa chỉ số và giảm tín hiệu sai.

  5. Thêm các thuật toán máy học, sử dụng dữ liệu lớn để đào tạo mô hình và tự động tối ưu hóa các thông số, cải thiện sự ổn định.

Thông qua các tối ưu hóa trên, hiệu suất và sự ổn định của chiến lược có thể được cải thiện đáng kể.

Kết luận

Chiến lược Williams Vix Fix nắm bắt sự hoảng loạn của thị trường và sự chuyển đổi ổn định, và sử dụng Stoch RSI để xác định các điểm vào cụ thể, xác định hiệu quả đáy thị trường. Ưu điểm của nó nằm trong sự kết hợp của các chỉ số, nhưng cũng có một số rủi ro nhất định. Chúng ta có thể tăng cường chiến lược bằng cách tối ưu hóa tham số và xác minh đa chỉ số, làm cho nó trở thành một công cụ hiệu quả để xác định sự đảo ngược thị trường.


/*backtest
start: 2022-09-21 00:00:00
end: 2023-09-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//Divergence and Hidden Divergence correlating with the Money Flow Index

strategy("Vix FIX / StochRSI Strategy", pyramiding=9, initial_capital=10000, default_qty_type=strategy.percent_of_equity,overlay=false)

///////////// Stochastic Slow
Stochlength = input(14, minval=1, title="lookback length of Stochastic")
StochOverBought = input(80, title="Stochastic overbought condition")
StochOverSold = input(20, title="Stochastic oversold condition")
smoothK = input(3, title="smoothing of Stochastic %K ")
smoothD = input(3, title="moving average of Stochastic %K")
k = sma(stoch(close, high, low, Stochlength), smoothK)
d = sma(k, smoothD)

 
///////////// RSI 
RSIlength = input( 14, minval=1 , title="lookback length of RSI")
RSIOverBought = input( 70  , title="RSI overbought condition")
RSIOverSold = input( 30  , title="RSI oversold condition")
RSIprice = close
vrsi = rsi(RSIprice, RSIlength)

///////////// Double strategy: RSI strategy + Stochastic strategy

pd = input(22, title="LookBack Period Standard Deviation High")
bbl = input(20, title="Bolinger Band Length")
mult = input(2.0    , minval=1, maxval=5, title="Bollinger Band Standard Devaition Up")
lb = input(50  , title="Look Back Period Percentile High")
ph = input(.85, title="Highest Percentile - 0.90=90%, 0.95=95%, 0.99=99%")
new = input(false, title="-------Text Plots Below Use Original Criteria-------" )
sbc = input(false, title="Show Text Plot if WVF WAS True and IS Now False")
sbcc = input(false, title="Show Text Plot if WVF IS True")
new2 = input(false, title="-------Text Plots Below Use FILTERED Criteria-------" )
sbcFilt = input(true, title="Show Text Plot For Filtered Entry")
sbcAggr = input(true, title="Show Text Plot For AGGRESSIVE Filtered Entry")
ltLB = input(40, minval=25, maxval=99, title="Long-Term Look Back Current Bar Has To Close Below This Value OR Medium Term--Default=40")
mtLB = input(14, minval=10, maxval=20, title="Medium-Term Look Back Current Bar Has To Close Below This Value OR Long Term--Default=14")
str = input(3, minval=1, maxval=9, title="Entry Price Action Strength--Close > X Bars Back---Default=3")
//Alerts Instructions and Options Below...Inputs Tab
new4 = input(false, title="-------------------------Turn On/Off ALERTS Below---------------------" )
new5 = input(false, title="----To Activate Alerts You HAVE To Check The Boxes Below For Any Alert Criteria You Want----")
sa1 = input(false, title="Show Alert WVF = True?")
sa2 = input(false, title="Show Alert WVF Was True Now False?")
sa3 = input(false, title="Show Alert WVF Filtered?")
sa4 = input(false, title="Show Alert WVF AGGRESSIVE Filter?")

//Williams Vix Fix Formula
wvf = ((highest(close, pd)-low)/(highest(close, pd)))*100
sDev = mult * stdev(wvf, bbl)
midLine = sma(wvf, bbl)
lowerBand = midLine - sDev
upperBand = midLine + sDev
rangeHigh = (highest(wvf, lb)) * ph

//Filtered Bar Criteria
upRange = low > low[1] and close > high[1]
upRange_Aggr = close > close[1] and close > open[1]
//Filtered Criteria
filtered = ((wvf[1] >= upperBand[1] or wvf[1] >= rangeHigh[1]) and (wvf < upperBand and wvf < rangeHigh))
filtered_Aggr = (wvf[1] >= upperBand[1] or wvf[1] >= rangeHigh[1]) and not (wvf < upperBand and wvf < rangeHigh)

//Alerts Criteria
alert1 = wvf >= upperBand or wvf >= rangeHigh ? 1 : 0
alert2 = (wvf[1] >= upperBand[1] or wvf[1] >= rangeHigh[1]) and (wvf < upperBand and wvf < rangeHigh) ? 1 : 0
alert3 = upRange and close > close[str] and (close < close[ltLB] or close < close[mtLB]) and filtered ? 1 : 0
alert4 = upRange_Aggr and close > close[str] and (close < close[ltLB] or close < close[mtLB]) and filtered_Aggr ? 1 : 0

//Coloring Criteria of Williams Vix Fix
col = wvf >= upperBand or wvf >= rangeHigh ? lime : gray

isOverBought = (crossover(k,d) and k > StochOverBought) ? 1 : 0
isOverBoughtv2 = k > StochOverBought ? 1 : 0
filteredAlert = alert3 ? 1 : 0
aggressiveAlert = alert4 ? 1 : 0

plot(isOverBought, "Overbought / Crossover", style=line, color=red) 
plot(filteredAlert, "Filtered Alert", style=line, color=fuchsia) 
plot(aggressiveAlert, "Aggressive Alert", style=line, color=orange)

if (filteredAlert or aggressiveAlert)
    strategy.entry("Long", strategy.long)

if (isOverBought)
    strategy.close("Long")

    


Thêm nữa