Stratégie de suivi des tendances basée sur VWMA et ATR


Date de création: 2023-11-07 16:39:47 Dernière modification: 2023-11-07 16:39:47
Copier: 1 Nombre de clics: 716
1
Suivre
1617
Abonnés

Stratégie de suivi des tendances basée sur VWMA et ATR

Aperçu

La stratégie utilise les indicateurs VWMA pour déterminer la direction de la tendance et utilise les indicateurs ATR pour définir les lignes de stop-loss pour réaliser le suivi de la tendance. La stratégie s’applique à un environnement de marché avec une tendance évidente.

Principe de stratégie

  1. Utilisez l’indicateur VWMA pour déterminer la direction de la tendance. Lorsque le prix est supérieur à la VWMA, déterminez une tendance à la hausse et faites plus; lorsque le prix est inférieur à la VWMA, déterminez une tendance à la baisse et faites moins.

  2. Pour filtrer les fausses ruptures, ajoutez le jugement de l’oscillateur RSI. Un signal de multiplication n’est émis que lorsque le RSI est supérieur à 30.

  3. La longueur de l’ATR est réglée sur la même longueur que celle du VWMA et le multiplicateur est réglé sur 3.5. La ligne de stop est mise à jour en temps réel en fonction du prix.

  4. Le réglage du multiplicateur ATR affecte la contraction de la ligne d’arrêt. Plus le multiplicateur est grand, moins la ligne d’arrêt est mise à jour, et mieux la tendance est suivie.

  5. La taille de la position est calculée en fonction du pourcentage de stop loss et des intérêts du compte dans la stratégie.

  6. Lorsque le prix est inférieur à la ligne de stop-loss, le stop-loss se retire et prend une position plus élevée.

Avantages stratégiques

  1. Les indicateurs VWMA permettent de déterminer la direction de la tendance et de saisir les opportunités de tendance.

  2. Le filtre RSI a été ajouté pour filtrer certains faux signaux de rupture.

  3. ATR Stop Lines permettent le suivi de la tendance et évitent le renversement

  4. Le calcul des positions en fonction des pourcentages d’intérêt et de stop-loss du compte est utile pour la maîtrise des risques.

Risque stratégique

  1. Il existe un risque de perte à un tournant de tendance. Les positions doivent être réduites de manière appropriée pour réduire les pertes individuelles.

  2. Le paramètre ATR est mal réglé, ce qui peut entraîner une ligne d’arrêt trop sensible ou lente. Les paramètres appropriés doivent être testés.

  3. Si la tendance est inversée trop rapidement, la mise à jour de la ligne de stop-loss pourrait ne pas arriver à temps et augmenter les pertes.

  4. Dans les marchés à faible volatilité, il est recommandé de réduire les positions et d’augmenter la fréquence de contraction de la ligne de stop-loss.

Direction d’optimisation

  1. Il est possible de tester différentes combinaisons de paramètres VWMA pour choisir le paramètre qui produit le signal le plus optimal.

  2. D’autres paramètres de l’oscillateur RSI peuvent être testés, tels que la ligne d’excédent.

  3. Les paramètres de multiplication de l’ATR peuvent être testés pour trouver le meilleur point de tradeoff entre le retrait et le suivi.

  4. Il peut être combiné avec d’autres indicateurs de filtrage, tels que MACD, KD, etc., pour améliorer la qualité du signal.

  5. La gestion des positions et le pourcentage de stop-loss peuvent être optimisés en fonction des fluctuations du marché.

Résumer

La stratégie est généralement tendancieuse et convient à la capture de tendances de prix évidentes. La stratégie présente des avantages en termes de jugement de tendance, de filtrage de signal, de suivi des pertes, etc., mais il existe également un risque de renversement de tendance.

Code source de la stratégie
/*backtest
start: 2023-10-07 00:00:00
end: 2023-10-13 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © mohanee

//@version=4
//strategy("", overlay=true)
strategy(title="VWMA_withATRstops_strategy V2", overlay=true, pyramiding=1,     default_qty_type=strategy.percent_of_equity,  default_qty_value=20, initial_capital=10000, currency=currency.USD)  //default_qty_value=10, default_qty_type=strategy.fixed,

float xATRTrailingStop=na
int pos=na

vwmalength = input(33, title="VWMA Length", minval=1, maxval=365)
//vwmalength2 = input(9, title="VWAM Short Term Length", minval=1, maxval=365)
nATRPeriod = input(33, title="ATR length", minval=1, maxval=365)
nATRMultip = input(3.5, title="ATR Multiplier")

rsiofVwmaLength=input(14, title="RSI of VWMA Length")

riskCapital = input(title="Risk % of capital", defval=10, minval=1)
stopLoss=input(5,title="Stop Loss",minval=1)

vwmaVal=vwma(close, vwmalength)
//vwmaVal2=vwma(close, vwmalength2)
//maVal=sma(close, vwmalength)

plot(vwmaVal, color=color.orange, linewidth=2,  title="VWMA")
//plot(vwmaVal2, color=color.blue, title="VWMA Short Term")
//plot(maVal, color=color.blue, title="MA")

//rsi of vwma Longterm
rsiofVwmaVal=rsi(vwmaVal,rsiofVwmaLength)

xATR = atr(nATRPeriod)
nLoss = nATRMultip * xATR

xATRTrailingStop:= iff(close > nz(xATRTrailingStop[1], 0) and close[1] > nz(xATRTrailingStop[1], 0), max(nz(xATRTrailingStop[1]), close - nLoss), iff(close < nz(xATRTrailingStop[1], 0) and close[1] < nz(xATRTrailingStop[1], 0), min(nz(xATRTrailingStop[1]), close + nLoss), iff(close > nz(xATRTrailingStop[1], 0), close - nLoss, close + nLoss)))

pos:=	iff(close[1] < nz(xATRTrailingStop[1], 0) and close > nz(xATRTrailingStop[1], 0), 1, 	    iff(close[1] > nz(xATRTrailingStop[1], 0) and close < nz(xATRTrailingStop[1], 0), -1, nz(pos[1], 0))) 

color1 = pos == -1 ? color.red: pos == 1 ? color.green : color.blue 

//plot(xATRTrailingStop, color=color1, title="ATR Trailing Stop")

//Entry--
//Echeck how many units can be purchased based on risk manage ment and stop loss
qty1 = (strategy.equity  * riskCapital / 100 ) /  (close*stopLoss/100)  

//check if cash is sufficient  to buy qty1  , if capital not available use the available capital only
qty1:= (qty1 * close >= strategy.equity ) ? (strategy.equity / close) : qty1


//Long Entry
//strategy.entry(id="VWMA LE", long=true, qty=qty1, when= close >vwmaVal and open>vwmaVal and close>open and close > xATRTrailingStop and xATRTrailingStop>  vwmaVal)

strategy.entry(id="VWMA LE", long=true, qty=qty1, when= rsiofVwmaVal>=30 and  close>open and close>vwmaVal and pos == 1 )    ///pos == 1 means ATRStop line is green    
//vwmaVal2>vwmaVal and

plot(strategy.position_size>=1  ? xATRTrailingStop : na, color=color1, style=plot.style_linebr, title="ATR Trailing Stop")
bgcolor(strategy.position_size>=1 ? color.blue : na )

//Exit
strategy.close(id="VWMA LE",  when= strategy.position_size>=1 and crossunder(close, xATRTrailingStop)  )
//strategy.close(id="VWMA LE",  when= strategy.position_size>=1 and close<vwmaVal and open<vwmaVal and close<open )