La stratégie de Williams VIX

Auteur:ChaoZhang est là., Date: 28 février 2023
Les étiquettes:

Résumé

Cette stratégie vise à prédire la volatilité du marché du VIX en utilisant la formule Williams Vix Fix combinée avec les indicateurs RSI et RSI stochastiques.

La logique de la stratégie

La stratégie est principalement basée sur la combinaison de la formule Williams Vix Fix et des indicateurs stochastiques RSI & RSI.

Premièrement, la valeur VIX de la période en cours est calculée par la formule Williams Vix Fix en mesurant le rapport entre le prix le plus élevé et le prix le plus bas, ce qui représente la volatilité du marché et les niveaux de panique.

Deuxièmement, la stratégie adopte la combinaison des indicateurs RSI stochastique et RSI. Le RSI est utilisé pour déterminer les positions longues / courtes, tandis que le Stoch RSI combine les lignes K & D pour identifier les points d'inversion du RSI. Les signaux de vente sont générés lorsque le Stoch RSI tombe de la zone de surachat.

Enfin, la stratégie intègre à la fois en prenant le signal de surachat du Stoch RSI comme base de vente et la valeur du VIX inférieure à la bande inférieure de Bollinger comme base d'achat, afin de capturer les points d'inversion du marché.

Analyse des avantages

Le plus grand avantage de cette stratégie est qu'elle peut exploiter les forces de deux indicateurs différents en combinaison.

La formule Williams Vix Fix peut refléter efficacement les émotions de panique du marché. L'ajustement dynamique des bandes de Bollinger peut s'adapter à différents cycles.

Les deux combinés peuvent localiser plus précisément les points d'inversion du marché. Il génère des signaux de vente lorsque l'indice de panique du marché libère des signaux tout en utilisant le Stoch RSI pour déterminer des points d'entrée spécifiques afin d'éviter des entrées erronées.

Analyse des risques

Cette stratégie comporte également certains risques:

  1. La formule Williams Vix Fix ne peut pas refléter pleinement les émotions de panique du marché.

  2. Les signaux d'inversion de l'indicateur RSI de Stoch peuvent également être erronés et doivent être vérifiés avec d'autres indicateurs.

  3. La stratégie est relativement conservatrice et risque de manquer des opportunités si elle n'est pas en mesure de suivre les marchés en évolution rapide en temps opportun.

  4. La stratégie peut comporter des retraits plus importants, ce qui nécessite une évaluation attentive des positions.

Nous devons définir des paramètres raisonnables, vérifier avec d'autres indicateurs et contrôler la taille des positions pour atténuer les risques lors de l'utilisation de cette stratégie.

Directions d'optimisation

Quelques façons d'optimiser cette stratégie:

  1. Optimiser les paramètres de la formule Williams Vix pour refléter plus précisément les niveaux de panique du marché.

  2. Optimiser les paramètres du Stoch RSI pour trouver de meilleures combinaisons de périodes K & D pour une plus grande précision d'inversion.

  3. Ajouter des mécanismes de dimensionnement des positions tels que le stop loss/take profit ou l'ajustement dynamique des positions basé sur le ratio drawdown/profit.

  4. Incorporer d'autres indicateurs comme le MACD, le KD pour réaliser une vérification multi-indicateur et réduire les faux signaux.

  5. Ajoutez des algorithmes d'apprentissage automatique, utilisez le Big Data pour former des modèles et optimiser automatiquement les paramètres, améliorant la stabilité.

Grâce aux optimisations susmentionnées, les performances et la stabilité de la stratégie peuvent être considérablement améliorées.

Conclusion

La stratégie Williams Vix Fix capture les transitions de panique et de stabilité du marché et utilise le Stoch RSI pour déterminer des points d'entrée spécifiques, localisant efficacement les fonds du marché. Son avantage réside dans la combinaison d'indicateurs, mais il existe également certains risques. Nous pouvons renforcer la stratégie par l'optimisation des paramètres et la vérification multi-indicateurs, ce qui en fait un outil efficace pour localiser les renversements du marché.


/*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")

    


Plus de