
Cette stratégie est une stratégie de trading quantitative qui combine le prix moyen pondéré en volume de transaction (VWAP) et la dispersion de convergence des moyennes mobiles (MACD). Cette stratégie cherche les meilleurs moments d’entrée et de sortie dans la direction de la tendance du marché en combinant l’indicateur de dynamique des prix avec le poids du volume de transaction. La stratégie utilise le VWAP comme niveau de référence de prix important, tout en utilisant l’indicateur MACD pour capturer les changements de la dynamique du marché, ce qui permet un positionnement plus précis des achats et des ventes dans les transactions.
La logique fondamentale de la stratégie repose sur les éléments clés suivants :
La stratégie bi-indicateur VWAP-MACD offre un support technique fiable pour la prise de décision de négociation en combinant l’analyse pondérée et dynamique de la transaction. La stratégie est conçue de manière rationnelle, logiquement claire, a une bonne praticité et est évolutive. Grâce à l’amélioration continue de l’optimisation et de la gestion des risques, la stratégie est susceptible de générer des rendements stables dans les transactions réelles.
/*backtest
start: 2025-01-08 00:00:00
end: 2025-02-06 08:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("VWAP + MACD Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=200)
// VWAP Calculation
vwapValue = ta.vwap(close)
// MACD Settings
fastLength = input.int(12, title="MACD Fast Length")
slowLength = input.int(26, title="MACD Slow Length")
signalSmoothing = input.int(9, title="MACD Signal Smoothing")
// MACD Calculation
[macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalSmoothing)
macdHistogram = macdLine - signalLine
// Plot VWAP
plot(vwapValue, color=color.orange, title="VWAP")
// Plot MACD
hline(0, "Zero Line", color=color.gray)
plot(macdLine, color=color.blue, title="MACD Line")
plot(signalLine, color=color.red, title="Signal Line")
plot(macdHistogram, color=(macdHistogram >= 0 ? color.green : color.red), style=plot.style_histogram, title="MACD Histogram")
// Long Condition: MACD crosses above Signal and price is above VWAP
longCondition = ta.crossover(macdLine, signalLine) and close > vwapValue
if (longCondition)
strategy.entry("Long", strategy.long)
// Short Condition: MACD crosses below Signal and price is below VWAP
shortCondition = ta.crossunder(macdLine, signalLine) and close < vwapValue
if (shortCondition)
strategy.entry("Short", strategy.short)
// Exit Long: MACD crosses below Signal or price crosses below VWAP
exitLong = ta.crossunder(macdLine, signalLine) or close < vwapValue
if (exitLong)
strategy.close("Long")
// Exit Short: MACD crosses above Signal or price crosses above VWAP
exitShort = ta.crossover(macdLine, signalLine) or close > vwapValue
if (exitShort)
strategy.close("Short")