La stratégie de Williams VIX

Auteur:ChaoZhang est là., Date: 2023-10-25 12:03:08 Je suis désolé
Les étiquettes:

img

Résumé

La stratégie Williams VIX Fix calcule la valeur corrigée de l'indice de volatilité VIX de la CBOE et combine plusieurs indicateurs techniques tels que les bandes de Bollinger, les plages de percentiles et la dynamique des prix pour déterminer et générer des signaux de trading pour les inversions du VIX.

La logique de la stratégie

La logique de base de cette stratégie repose sur les points suivants:

  1. Calculer la valeur fixe de Williams VIX (wvf) à l'aide de la formule permettant de capturer les fluctuations du VIX.

  2. Définir les paramètres de calcul de la bande de Bollinger pour obtenir la ligne médiane, la bande supérieure et la bande inférieure de l'indice VIX.

  3. Définir les paramètres d'intervalle de percentiles pour obtenir l'intervalle de percentiles historique de l'indice VIX.

  4. Utilisez la variable réparée pour déterminer si le VIX est à un point d'inversion. Lorsque réparé est vrai, cela signifie que le VIX était auparavant dans un état de surachat ou de survente et est actuellement à un point d'inversion.

  5. Pour déterminer les caractéristiques de la tendance, il convient de combiner la nature de l'éclatement des prix (upRange, upRange_Aggr).

  6. Enfin, combinez plusieurs conditions telles que les bandes de Bollinger, les plages de percentiles et les caractéristiques des prix pour déterminer et générer des signaux de trading.

La stratégie tire pleinement parti des caractéristiques de réversion moyenne du VIX et capte les opportunités de réversion grâce à plusieurs paramètres.

Analyse des avantages

La stratégie présente les avantages suivants:

  1. Profitez de la tendance à la réversion du VIX pour réaliser des bénéfices lorsque l'incertitude du marché est très élevée.

  2. La combinaison de plusieurs indicateurs techniques de filtrage peut permettre d'identifier efficacement les possibilités d'inversion.

  3. Les paramètres réglables de la stratégie peuvent être optimisés pour différents environnements de marché.

  4. Implémentation simple, facile à comprendre et à modifier, adaptée au trading en direct.

  5. Utilise pleinement les idées de code open source et est facile à combiner avec d'autres stratégies.

  6. La stratégie présente une corrélation de marché relativement faible et peut servir de composante de couverture dans le portefeuille.

  7. Éliminer au maximum les transactions inefficaces et filtrer les opportunités non réversibles.

  8. Fréquence de négociation modérée, ne pas entrer et sortir trop souvent.

Analyse des risques

La stratégie comporte également des risques à prendre en compte:

  1. L'indice VIX lui-même présente des problèmes de données susceptibles d'affecter la performance de la stratégie.

  2. Le risque de perte est associé à l'inversion des opérations, qui peut s'aggraver si l'inversion n'est pas réalisée.

  3. Les paramètres multiples rendent l'optimisation des paramètres assez complexe.

  4. Une capture inexacte du moment de l'inversion peut entraîner un échec des transactions.

  5. Une fréquence de négociation réduite peut également faire perdre certaines opportunités.

  6. Les bandes de Bollinger et les intervalles de percentiles sont sensibles aux faux signaux.

  7. Des jugements inexacts sur la rupture des prix peuvent rendre la stratégie inefficace.

Les principaux risques peuvent être réduits par:

  1. Optimisation des paramètres pour une identification plus précise de l'inversion.

  2. Augmentation appropriée du temps de rétention pour assurer l'établissement de l'inversion.

  3. Ajout d'indicateurs de vérification pour éviter les faux signaux.

  4. Adaptation des critères de position ouverte pour réduire les transactions inefficaces.

  5. Ajouter des arrêts pour contrôler les pertes.

Directions d'optimisation

La stratégie peut être optimisée dans les aspects suivants:

  1. Optimiser les paramètres de la bande de Bollinger et de l'intervalle des percentiles pour améliorer la précision de la reconnaissance des inversions.

  2. Ajouter plus d'indicateurs de dynamique des prix pour éviter une mauvaise identification de la tendance.

  3. Ajuster les critères d'ouverture de position pour assurer une plus grande efficacité des opérations.

  4. Définir différentes méthodes de stop loss pour contrôler les risques.

  5. Couverture par des contrats à terme VIX.

  6. Ajuster les paramètres en fonction des différents environnements du marché pour rendre la stratégie plus adaptable.

  7. Ajoutez des modèles d'apprentissage automatique pour déterminer le moment de l'inversion.

  8. Combinez avec d'autres alphas pour augmenter le rendement global.

  9. Incorporer des méthodes quantitatives pour une optimisation automatique des paramètres.

  10. Mettez des arrêts de portée et des arrêts de trail.

Résumé

La stratégie Williams VIX Fix capture les caractéristiques d'inversion de l'indice VIX et prend des transactions contre-tendance pendant la panique du marché. C'est une stratégie de couverture typique. La stratégie combine les avantages de divers indicateurs et les paramètres peuvent contrôler les risques. Avec une bonne optimisation des paramètres, elle peut obtenir de bons rendements ajustés au risque. Cependant, la fréquence de trading ne doit pas être trop élevée et les risques doivent être contrôlés.


/*backtest
start: 2023-09-24 00:00:00
end: 2023-10-13 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title = "CM Vix V3 Strategy ",shorttitle="Vix3", overlay = true,default_qty_type = strategy.percent_of_equity, default_qty_value = 100,commission_type=strategy.commission.percent,commission_value=0.1,initial_capital=100000)



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%")

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



//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

//Plots for Williams Vix Fix Histogram and Alerts

longCond=alert3

shortCond = alert2



monthfrom =input(8)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)

if (  longCond    and  month>=monthfrom and month <=monthuntil and dayofmonth>=dayfrom and dayofmonth < dayuntil) 
    strategy.entry("LONG", strategy.long, stop=close, oca_name="TREND",  comment="LONG")
    
else
    strategy.cancel(id="LONG")
    



if ( shortCond   and month>=monthfrom and month <=monthuntil and dayofmonth>=dayfrom and dayofmonth < dayuntil ) 

    strategy.entry("SHORT", strategy.short,stop=close, oca_name="TREND",  comment="SHORT")
else
    strategy.cancel(id="SHORT")
    


Plus de