Stratégie de négociation VSTOP et RSI

Auteur:ChaoZhang est là., Date: 2023-10-09 15:48:46 Je vous en prie.
Les étiquettes:

Résumé

Cette stratégie combine les indicateurs VSTOP et RSI pour aller long lorsque le RSI est suracheté et court lorsque le RSI est survendu, tout en utilisant VSTOP pour déterminer la direction de la tendance et réduire les pertes à temps lorsque la tendance s'inverse.

La logique de la stratégie

  1. Calculer la valeur de l'indicateur RSI et définir des lignes de surachat et de survente.

  2. Calculer le VSTOP, qui est une ligne de stop-loss basée sur une plage de fluctuations de prix.

    • Calculer l'indicateur ATR et définir le coefficient ATR multiple

    • Enregistrer le prix max et le prix min

    • Selon l'état de la tendance haussière is_uptrend, calculez la ligne de stop-loss actuelle: stop = is_uptrend? max - mult * ATR : min + mult * ATR

    • Mise à jour de la ligne stop loss: vstop1 = est_uptrend? max ((vstop_prev, stop) : min ((vstop_prev, stop)

    • Lorsque l'inversion de tendance se produit, réinitialiser la ligne stop-loss entrer

  3. Lorsque le RSI est survendu, si le prix dépasse le VSTOP, passez à la vente; lorsque le RSI est suracheté, passez à la vente.

Analyse des avantages

  • La combinaison de l'indicateur de tendance et de l'indicateur de surachat/survente permet de saisir les opportunités d'inversion sur les marchés en tendance.

  • L'utilisation de VSTOP pour définir un stop loss permet de contrôler efficacement les risques.

  • Les paramètres RSI flexibles peuvent être optimisés pour différents produits.

  • VSTOP suit systématiquement le stop loss sans intervention manuelle.

Risques et solutions

  • Si le paramètre ATR est réglé trop grand ou trop petit, la ligne de stop-loss serait dénuée de sens.

  • Dans les marchés à plage, l'indice de volatilité peut déclencher des signaux de trading fréquents, augmentant la fréquence des transactions et le coût de glissement.

  • L'inversion ratée est le principal risque de cette stratégie. Les traders doivent surveiller la direction de la tendance sur une période plus longue pour éviter le contre-trend. Les moyennes mobiles à long terme peuvent être utilisées pour déterminer la tendance.

Directions d'optimisation

  • Envisager de combiner d'autres indicateurs pour filtrer les signaux non valides, par exemple le volume, le canal de Donchian, etc.

  • Optimiser les paramètres en fonction des résultats des backtests pour trouver la combinaison optimale de paramètres.

  • Rechercher comment ajuster dynamiquement le coefficient ATR pour l'adapter à différents environnements de marché.

  • Explorez l'arrêt de la stratégie pendant les périodes à haut risque.

Conclusion

Cette stratégie intègre le jugement de tendance et les niveaux de surachat / survente pour saisir les opportunités d'inversion sur les marchés en tendance. VSTOP fournit une gestion systématique des pertes d'arrêt pour le contrôle des risques. La stratégie peut être encore améliorée grâce à l'optimisation des paramètres et à la combinaison d'autres indicateurs. Les traders doivent faire attention aux inversions manquées, le principal risque.


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

//@version=3
strategy("Vstop and RSI", overlay=true)

//RSI Section
length = input(2, "RSI Period") 
overSold = input(30, "Oversold Level") 
overBought = input(70, "Overbought Level") 
price = close 
vrsi = rsi (price, length) 

//VSTOP Section
vlength = input(2, "Vstop Length") 
mult = input(2, "Vstop Mult") 
atr_ = atr(vlength) 

max1=0.0 
min1=0.0 
is_uptrend_prev = false 
stop=0.0 
vstop_prev=0.0 
vstop1=0.0 
is_uptrend=false 
is_trend_changed=false 
max_ = 0.0 
min_ = 0.0 
vstop=0.0 

max1 := max(nz(max_[1]), close)
min1 := min(nz(min_[1]), close)


is_uptrend_prev := nz(is_uptrend[1], true)

stop := is_uptrend_prev ? max1 - mult * atr_ : min1 + mult * atr_
vstop_prev := nz(vstop[1])
vstop1 := is_uptrend_prev ? max(vstop_prev, stop) : min(vstop_prev, stop)
is_uptrend := close - vstop1 >= 0
is_trend_changed := is_uptrend != is_uptrend_prev
max_ := is_trend_changed ? close : max1
min_ := is_trend_changed ? close : min1
vstop := is_trend_changed ? is_uptrend ? max_ - mult * atr_ : min_ + mult * atr_ : vstop1
plot(vstop, color = is_uptrend ? green : red, style=cross, linewidth=2)

if vrsi > overBought
    strategy.entry("Buy", strategy.long, comment="Buy")
     
if vrsi < overSold and vstop > price
    strategy.entry("Sell", strategy.short, comment="Sell")

Plus de