La stratégie de prix moyen pondéré par volume (VWAP) est une stratégie qui suit le prix moyen d'un stock sur une période de temps spécifiée. La stratégie utilise VWAP comme référence et prend des positions longues ou courtes lorsque le prix dépasse ou dépasse VWAP. Elle définit également des conditions de stop loss et de profit pour gérer les transactions.
La stratégie calcule d'abord le prix typique (moyenne des prix élevés, bas et rapprochés) multiplié par le volume et la somme du volume. Puis le VWAP est calculé en divisant la somme du produit prix-volume typique par la somme du volume. Lorsque le prix dépasse le VWAP, allez long. Lorsque le prix dépasse le bas, allez court.
La condition de prise de profit pour les positions longues est de fermer lorsque le prix augmente de 3% au-dessus du prix d'entrée. La condition de stop loss est lorsque le prix chute de 1% en dessous du prix d'entrée. Des conditions similaires s'appliquent aux positions courtes.
Les principaux avantages de la stratégie VWAP sont les suivants:
Utilise la statistique VWAP bien connue comme référence pour les signaux commerciaux, ce qui rend la stratégie plus efficace.
Utilise à la fois les signaux vwap et le stop loss/profit taking, capable de tirer profit des tendances et de limiter les pertes.
Une logique simple et claire, facile à comprendre et à mettre en œuvre.
Cette stratégie comporte également certains risques:
Le VWAP ne peut pas prédire les prix futurs, donc les signaux peuvent être retardés.
Le stop loss peut être trop large, ce qui augmente la perte potentielle.
Des retests plus longs signifient plus de signaux, les performances réelles peuvent différer.
Ces risques peuvent être réduits grâce à l'ajustement des paramètres, à l'optimisation des algorithmes de stop loss, etc.
Certaines façons d'optimiser la stratégie comprennent:
Optimiser les paramètres VWAP pour trouver la meilleure période de calcul.
Testez d'autres algorithmes d'arrêt de suivi, par exemple arrêt de moyenne mobile, SAR parabolique.
Combiner d'autres indicateurs pour filtrer les signaux VWAP, par exemple volume, bandes de Bollinger.
En résumé, la stratégie VWAP utilise le pouvoir prédictif de cette importante statistique, avec un stop loss/profit taking pour atteindre une attente positive à long terme.
/*backtest start: 2023-11-28 00:00:00 end: 2023-12-28 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("VWAP Strategy by Royce Mars", overlay=true) cumulativePeriod = input(14, "Period") var float cumulativeTypicalPriceVolume = 0.0 var float cumulativeVolume = 0.0 typicalPrice = (high + low + close) / 3 typicalPriceVolume = typicalPrice * volume cumulativeTypicalPriceVolume := cumulativeTypicalPriceVolume + typicalPriceVolume cumulativeVolume := cumulativeVolume + volume vwapValue = cumulativeTypicalPriceVolume / cumulativeVolume // Buy condition: Price crosses over VWAP buyCondition = crossover(close, vwapValue) // Short condition: Price crosses below VWAP shortCondition = crossunder(close, vwapValue) // Profit-taking condition for long positions: Sell long position when profit reaches 3% profitTakingLongCondition = close / strategy.position_avg_price >= 1.03 // Profit-taking condition for short positions: Cover short position when profit reaches 3% profitTakingShortCondition = close / strategy.position_avg_price <= 0.97 // Stop loss condition for long positions: Sell long position when loss reaches 1% stopLossLongCondition = close / strategy.position_avg_price <= 0.99 // Stop loss condition for short positions: Cover short position when loss reaches 1% stopLossShortCondition = close / strategy.position_avg_price >= 1.01 // Strategy Execution strategy.entry("Buy", strategy.long, when=buyCondition) strategy.close("Buy", when=shortCondition or profitTakingLongCondition or stopLossLongCondition) strategy.entry("Short", strategy.short, when=shortCondition) strategy.close("Short", when=buyCondition or profitTakingShortCondition or stopLossShortCondition) // Plot VWAP on the chart plot(vwapValue, color=color.blue, title="VWAP")