La stratégie combine les deux indicateurs VSTOP et RSI pour réaliser plusieurs opérations de shorting lorsque le RSI est en sur-achat et en sur-vente, tout en utilisant VSTOP pour déterminer la direction de la tendance et en arrêtant les pertes en temps opportun lorsque la tendance est inversée.
Calculez le RSI et définissez une ligne de survente et une ligne de survente. Lorsque le RSI est supérieur à la ligne de survente, faites plus; lorsque le RSI est inférieur à la ligne de survente, faites moins.
Calculer le VSTOP, qui est une ligne de stop-loss définie en fonction de la gamme de fluctuations des prix. Les étapes de calcul sont les suivantes:
Calculer l’indicateur ATR et définir le coefficient de l’ATR
Enregistrez le prix max et le prix min
Calculer la ligne de stop actuelle en fonction de si la tendance est à la hausse ou à la hausse = is_uptrend ? max - mult * ATR: min + mult * ATR
La mise à jour de la ligne d’arrêt: vstop1 = is_uptrend ? max ((vstop_prev, stop): min ((vstop_prev, stop)
Réinitialisez la ligne de stop vstop lorsque la tendance est inversée
En cas de survente du RSI, le prix est mis en pause si le prix atteint le VSTOP; en cas de survente du RSI, il est mis en pause.
La combinaison de l’indicateur de tendance et de l’indicateur de surachat et de survente permet de saisir les opportunités de renversement dans une tendance.
Le système VSTOP est utilisé pour régler les arrêts de perte et contrôler efficacement les risques.
Les paramètres RSI sont flexibles et peuvent être optimisés pour différentes variétés.
VSTOP suit systématiquement les arrêts sans intervention humaine.
Si le paramètre ATR est trop grand ou trop petit, la ligne d’arrêt perd de son sens. Vous pouvez tester différents paramètres ATR ou combiner la valeur moyenne de l’ATR pour le régler.
Dans le cas d’une correction, le RSI peut déclencher des signaux de trading fréquents, augmentant ainsi la fréquence des transactions et le coût des points de glissement. Il est possible d’ajuster les paramètres du RSI de manière appropriée ou d’ajouter des conditions de filtrage pour réduire les signaux inefficaces.
L’échec du renversement est le principal risque de cette stratégie. Les traders doivent se concentrer sur la direction de la tendance à un niveau plus large et éviter les opérations de revers. La direction de la tendance peut être jugée en combinaison avec la moyenne à long terme.
On peut envisager d’éliminer les signaux inefficaces en combinant d’autres indicateurs, tels que l’indicateur de quantité d’énergie, le canal de Tongji, etc.
Il est possible d’optimiser les paramètres en fonction des résultats du test de retour pour trouver la meilleure combinaison de paramètres.
Il est possible d’étudier comment le coefficient d’ATR peut être adapté de manière dynamique à différents environnements de marché.
Il est possible d’explorer des stratégies de fermeture pendant des périodes spécifiques pour éviter les périodes à haut risque.
La stratégie intègre un jugement de tendance et un jugement de sur-achat et de survente, permettant de capturer des opportunités de revers dans des conditions de tendance. La gestion systématique des arrêts-pertes du VSTOP aide à contrôler les risques. L’efficacité de la stratégie peut être encore renforcée par l’optimisation des paramètres et la combinaison d’autres indicateurs.
/*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")