Cette stratégie utilise le VWAP (Volume Weighted Average Price) du calendrier quotidien comme signal pour entrer et sortir des transactions. Lorsque le prix de clôture dépasse le VWAP, elle déclenche une entrée longue avec le stop loss fixé au plus bas des bougies précédentes si elle est en dessous du VWAP, et le prix cible fixé 3 points au-dessus du prix d'entrée. Inversement, lorsque le prix de clôture dépasse le VWAP, elle déclenche une entrée courte avec le stop loss fixé au plus haut des bougies précédentes si elle est au-dessus du VWAP, et le prix cible fixé 3 points en dessous du prix d'entrée. Cette stratégie ne comprend pas de condition de sortie, de sorte que les transactions restent ouvertes jusqu'à ce que le signal opposé se produise.
En utilisant des données VWAP transversales pour déterminer les tendances et en tirant parti des arrêts de perte dynamiques et des bénéfices à point fixe, la stratégie peut capturer efficacement les marchés en tendance, contrôler les risques de retrait et verrouiller les bénéfices en temps opportun.
Cette stratégie utilise des données VWAP intertemporelles pour la détermination des tendances et le déclenchement des signaux tout en utilisant des stop-loss dynamiques et des bénéfices à point fixe pour contrôler les risques et verrouiller les bénéfices. C'est une stratégie de trading quantitative simple et efficace. Grâce à l'optimisation du filtrage des tendances, de la prise de profit dynamique, du dimensionnement des positions et de la sélection des sessions de négociation, la robustesse et le potentiel de profit de la stratégie peuvent être encore améliorés. Cependant, lors de l'application de la stratégie en pratique, l'attention doit être portée aux caractéristiques du marché, aux coûts de négociation et à l'optimisation des paramètres pour atteindre une meilleure stratégie de performance.
/*backtest start: 2024-03-06 00:00:00 end: 2024-03-07 00:00:00 period: 45m basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy('Pine Script Tutorial Example Strategy 1', overlay=true, initial_capital=1000, default_qty_value=100, default_qty_type=strategy.percent_of_equity) // fastEMA = ta.ema(close, 24) // slowEMA = ta.ema(close, 200) // Higher Time Frame float sl = na float tgt = na posSize = 1 vwap_1d = request.security(syminfo.tickerid, "1D", ta.vwap(close)) // plot(vwap_1d) // To avoid differences on historical and realtime bars, you can use this technique, which only returns a value from the higher timeframe on the bar after it completes: // indexHighTF = barstate.isrealtime ? 1 : 0 // indexCurrTF = barstate.isrealtime ? 0 : 1 // nonRepaintingVWAP = request.security(syminfo.tickerid, "1D", close[indexHighTF])[indexCurrTF] // plot(nonRepaintingVWAP, "Non-repainting VWAP") enterLong = ta.crossover(close, vwap_1d) exitLong = ta.crossunder(close, vwap_1d) enterShort = ta.crossunder(close, vwap_1d) exitShort = ta.crossover(close, vwap_1d) if enterLong sl := low[1]>vwap_1d ?low[1]:vwap_1d tgt:=close+3 strategy.entry("EL", strategy.long, qty=posSize) strategy.exit('exitEL', 'EL', stop=sl, limit=tgt) if enterShort sl := high[1]<vwap_1d ?high[1]:vwap_1d tgt := close-3 strategy.entry("ES", strategy.short, qty=posSize) strategy.exit('exitES', 'ES', stop=sl, limit=tgt) // if exitLong // strategy.close("EL") // if exitShort // strategy.close("ES") // goLongCondition1 = ta.crossover(close, vwap_1d) // timePeriod = time >= timestamp(syminfo.timezone, 2021, 01, 01, 0, 0) // notInTrade = strategy.position_size <= 0 // if goLongCondition1 and timePeriod and notInTrade // stopLoss = low[1] // takeProfit = close+3 // strategy.entry('long', strategy.long) // strategy.exit('exit', 'long', stop=stopLoss, limit=takeProfit) plot(close, color=color.new(#00c510, 0)) plot(vwap_1d, color=color.new(#f05619, 0)) plot(sl, color=color.new(#fbff00, 0)) plot(tgt, color=color.new(#00e1ff, 0))