Les ressources ont été chargées... Je charge...

La tendance du VWAP à la suite de la stratégie

Auteur:ChaoZhang est là., Date: le 29 février 2024
Les étiquettes:

img

Résumé

Cette stratégie utilise VWAP et EMA comme indicateurs pour déterminer la direction de la tendance. Elle va long lorsque le prix est au-dessus de VWAP et EMA200, et va court lorsque le prix est en dessous de VWAP et EMA200.

La logique de la stratégie

La logique de base de la stratégie consiste à utiliser le VWAP et l'EMA pour juger de l'évolution des prix.

  • Le VWAP représente le prix typique et reflète le coût moyen des participants au marché. Lorsque le prix est supérieur au VWAP, cela signifie que le pouvoir d'achat augmente et devrait aller long. Lorsque le prix est inférieur au VWAP, cela signifie que le pouvoir de vente se renforce et devrait aller court.

  • L'EMA200 représente la tendance à moyen et long terme du prix. Lorsque le prix est supérieur à l'EMA200, cela signifie que les perspectives à moyen et long terme sont haussières et devraient être longues. Lorsque le prix est inférieur à l'EMA200, cela signifie que les perspectives à moyen et long terme sont baissières et devraient être courtes.

Par conséquent, cette stratégie juge d'abord si le prix est supérieur à la fois à VWAP et à EMA200, si oui, alors allez long; si le prix est inférieur à la fois à VWAP et à EMA200, puis allez court.

En outre, la stratégie définit également des points de prise de profit et de stop-loss. Après le long, le TP est fixé à 3,5% du prix d'entrée et SL est fixé à 1,4% du prix d'entrée. Après le short, le TP est de 2,5% du prix d'entrée et SL est de 0,9% du prix d'entrée. Cela évite d'énormes pertes.

Les avantages

Le plus grand avantage de cette stratégie est que l'utilisation de VWAP et EMA pour déterminer les tendances est très fiable.

  • Le VWAP peut refléter avec précision le coût moyen des acteurs du marché, c'est un très bon indicateur pour juger des tendances.
  • L'EMA200 peut refléter clairement la tendance à moyen et long terme et déterminer très précisément la direction des tendances majeures.

Par conséquent, la combinaison de VWAP et EMA pour juger des tendances est très fiable.

En outre, la fixation de TP/SL évite des pertes excessives par transaction.

Les risques

Le principal risque de cette stratégie réside dans le fait que VWAP et l'EMA puissent donner des signaux erronés.

  • Lorsqu'il y a une forte fluctuation du marché, le prix peut s'écarter du VWAP à court terme et donner de mauvais signaux.
  • Lorsqu'une nouvelle tendance ne fait que commencer, l'EMA peut retarder le changement de prix et provoquer le manque du meilleur moment d'entrée.

En outre, des réglages TP/SL incorrects présentent toujours le risque de pertes excessives par transaction.

Pour résoudre les problèmes ci-dessus, nous pouvons optimiser les paramètres de VWAP et EMA pour les rendre meilleurs pour détecter le début de nouvelles tendances.

Amélioration

Les principaux aspects pour renforcer cette stratégie:

  • Optimiser les paramètres VWAP pour trouver des paramètres plus stables pour déterminer les tendances.
  • Optimiser les périodes EMA pour trouver des paramètres plus précis pour juger des tendances.
  • Ajouter d'autres indicateurs de tendance tels que les bandes de Bollinger, KDJ, etc. pour les combiner avec VWAP et EMA, pour améliorer la précision.
  • Définir des règles adaptatives de prise de profit et de stop loss basées sur certaines règles afin de les ajuster dynamiquement en fonction des fluctuations des prix.
  • Les expositions à risque doivent être classées en fonction de la nature de l'établissement.

Conclusion

En conclusion, il s'agit d'une stratégie de suivi de tendance très fiable. Il utilise une logique simple de VWAP et EMA pour déterminer les directions de tendance. Lorsque les deux indicateurs donnent des signaux cohérents, le taux de réussite est très élevé. En définissant le TP/SL approprié, le risque peut être contrôlé. Il existe encore de nombreuses façons (optimisation des paramètres, ajout d'indicateurs, TP/SL adaptatif, dimensionnement des positions, etc.) d'améliorer encore cette stratégie et d'améliorer encore sa performance.


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

Plus de