Stratégie de suivi des tendances basée sur le VWAP


Date de création: 2024-02-29 15:26:56 Dernière modification: 2024-02-29 15:26:56
Copier: 0 Nombre de clics: 944
1
Suivre
1617
Abonnés

Stratégie de suivi des tendances basée sur le VWAP

Aperçu

La stratégie est basée sur le VWAP et l’EMA comme indicateur de la direction de la tendance, le VWAP représentant le prix typique et l’EMA200 représentant la tendance de la ligne médiane. Faire plus lorsque le prix est supérieur au VWAP et à l’EMA200 et faire moins lorsque le prix est inférieur au VWAP et à l’EMA200 est une stratégie de suivi de tendance typique.

Principe de stratégie

La logique centrale de la stratégie est d’utiliser le VWAP et l’EMA pour déterminer la tendance des prix.

  • Le VWAP représente le prix typique, qui reflète le coût moyen des acteurs du marché. Si le prix est supérieur au VWAP, il représente l’augmentation de la force de l’acheteur, qui fait plus; Si le prix est inférieur au VWAP, il représente l’augmentation de la force du vendeur, qui fait moins.
  • L’EMA200 représente la courbe de tendance de la courbe moyenne. Le prix au-dessus de l’EMA200 représente la courbe moyenne positive et devrait faire plus; le prix en dessous de l’EMA200 représente la courbe moyenne négative et devrait faire court.

Par conséquent, la stratégie détermine d’abord si le prix est à la fois supérieur au VWAP et à l’EMA200, et plus si c’est le cas; si le prix est à la fois inférieur au VWAP et à l’EMA200, alors rien. Comme on peut le voir, la stratégie repose principalement sur le VWAP et l’EMA pour juger des décisions d’achat et de vente.

En outre, la stratégie a également mis en place un point d’arrêt de perte. Le stop-loss est fixé à 3,5% du prix d’entrée après le surplus, et à 1,4% du prix d’entrée après la perte. Le stop-loss est fixé à 2,5% du prix d’entrée après la perte et à 0,9% du prix d’entrée après la perte.

Avantages stratégiques

Le plus grand avantage de cette stratégie est qu’elle utilise VWAP et EMA pour déterminer les tendances de manière très fiable.

  • Le VWAP est un très bon indicateur de tendance, car il reflète avec précision le coût moyen des acteurs du marché.
  • L’EMA 200 est un indicateur fiable de la direction des grandes tendances, car il reflète clairement les tendances moyennes et longues.

Par conséquent, la combinaison de l’utilisation de VWAP et d’EMA pour déterminer la tendance est très fiable. Lorsque les deux jugent la tendance, le taux de réussite des opérations est élevé.

De plus, le fait de mettre en place un point d’arrêt permettra d’éviter des pertes individuelles excessives.

Risque stratégique

Le risque principal de cette stratégie est que VWAP et EMA puissent émettre de faux signaux.

  • Lorsque le marché est très volatile, le prix peut se détacher de la VWAP pendant une courte période et envoyer un faux signal.
  • Lorsque la nouvelle tendance est en cours, l’EMA peut être en retard sur les variations de prix, ce qui fait que la stratégie manque le meilleur moment d’entrée.

En outre, le paramètre de stop loss peut être mal réglé et le risque de pertes individuelles trop importantes est toujours présent.

Pour résoudre ce problème, nous pouvons optimiser les paramètres de VWAP et EMA afin qu’ils puissent mieux détecter le début d’une nouvelle tendance. Nous pouvons également définir des arrêts de rupture adaptatifs pour que les arrêts de rupture s’adaptent aux fluctuations des prix.

Orientation de l’optimisation de la stratégie

Cette stratégie peut être optimisée principalement dans les domaines suivants:

  • Optimiser les paramètres VWAP afin de trouver des combinaisons de paramètres VWAP qui permettent de juger les tendances de manière plus stable.
  • Optimiser le cycle EMA pour trouver des paramètres EMA plus précis pour déterminer la tendance.
  • L’ajout d’autres indicateurs de tendances de jugement, tels que les bandes de Brin, KDJ, etc., combinés avec VWAP et EMA, améliore la précision de jugement.
  • Réglez l’arrêt automatiquement. Laissez le niveau d’arrêt s’adapter à la fluctuation des prix selon certaines règles, afin d’éviter que l’arrêt ne soit trop rigide.
  • Combiné à la gestion des positions. Ajustez la taille de la position en fonction d’indicateurs tels que les retraits et le nombre de pertes cumulées. Contrôlez le risque global de la stratégie.

Résumer

L’ensemble de la stratégie est une stratégie de suivi de tendance très fiable. Elle utilise le VWAP et l’EMA pour déterminer la direction de la tendance, l’idée est claire et simple.

Code source de la stratégie
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//26m Binance BTCUSDTPERP
//@version=4
strategy("VWAP Trend Follower", initial_capital=100, overlay=true, commission_type=strategy.commission.percent, commission_value=0.04, default_qty_type = strategy.percent_of_equity, default_qty_value = 90, currency = currency.USD )

/// INITIALISE STRATEGY ///
price=close[1]
vprice=vwap(price)
trend=ema(price, 200)

/// RISK MANAGEMENT ///
long_tp_inp = input(3.5, title='Long Take Profit %',step=0.1)/100
long_sl_inp = input(1.4, title='Long Stop Loss %',step=0.1)/100
short_tp_inp = input(2.5, title='Short Take Profit %',step=0.1)/100
short_sl_inp = input(0.9, title='Short Stop Loss %',step=0.1)/100
long_take_level = strategy.position_avg_price * (1 + long_tp_inp)
long_stop_level = strategy.position_avg_price * (1 - long_sl_inp)
short_take_level = strategy.position_avg_price * (1 - short_tp_inp)
short_stop_level = strategy.position_avg_price * (1 + short_sl_inp)
//long_trailing = input(5, title='Trailing Stop Long',step=0.1) / 100
//short_trailing = input(5, title='Trailing Stop short',step=0.1) / 100

/// STRATEGY CONDITIONS ///
aLong= price > trend and price > vprice
entry_long = aLong and aLong[2] and aLong[1]
aShort= price < trend and price < vprice 
entry_short = aShort and aShort[2] and aShort[1]
//exit_long = 
//exit_short =
//entry_price_long=valuewhen(entry_long,close,0)
//entry_price_short=valuewhen(entry_short,close,0)

/// PLOTTING ///
plot(vprice,                color=#5875E1, linewidth=2)
plot(trend,                 color=#D965E1, linewidth=1)
plotshape(series=aLong,     color=#71E181,style=shape.labelup)
plotshape(series=aShort,    color=#E18BA5,style=shape.labeldown)
//plot(long_take_level,     color=#00E676, linewidth=2)
//plot(long_stop_level,     color=#FF5252, linewidth=1)
//plot(short_take_level,    color=#4CAF50, linewidth=2)
//plot(short_stop_level,    color=#FF5252, linewidth=1)

/// PERIOD ///
testStartYear   = input(2019, "Backtest Start Year")
testStartMonth  = input(1, "Backtest Start Month")
testStartDay    = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testStopYear    = input(2020, "Backtest Stop Year")
testStopMonth   = input(12, "Backtest Stop Month")
testStopDay     = input(31, "Backtest Stop Day")
testPeriodStop  = timestamp(testStopYear,testStopMonth,testStopDay,0,0)
testPeriod() => true

//// STRATEGY EXECUTION ////

if testPeriod()
    if strategy.position_size == 0 or strategy.position_size > 0
        strategy.entry(id="Long", long=true, when=entry_long, comment="Long")
        strategy.exit("Take Profit/ Stop Loss","Long", limit=long_take_level, stop=long_stop_level,comment="Exit Long")//,trail_points=entry_price_long * long_trailing / syminfo.mintick, trail_offset=entry_price_long * long_trailing / syminfo.mintick)
//        strategy.close(id="Long", when=exit_long, comment = "Exit Long")

    if strategy.position_size == 0 or strategy.position_size < 0
        strategy.entry(id="Short", long=false, when=entry_short, comment = "Short")
        strategy.exit("Take Profit/ Stop Loss","Short", limit=short_take_level , stop=short_stop_level,comment = "Exit Short")//, trail_points=entry_price_short * short_trailing / syminfo.mintick, trail_offset=entry_price_short * short_trailing / syminfo.mintick)
//        strategy.close(id="Short", when=exit_short, comment = "Exit Short")