
La stratégie utilise le VWAP de la ligne solaire comme signal d’entrée et de sortie. Lorsque le prix de clôture passe le VWAP, le stop-loss est placé au-dessous du point le plus bas de la ligne K précédente et le prix cible est placé 3 points au-dessus du prix d’ouverture. Lorsque le prix de clôture passe le VWAP, le stop-loss est placé au-dessus du point le plus haut de la ligne K précédente et le prix cible est placé 3 points au-dessous du prix d’ouverture.
Les données VWAP sur plusieurs périodes permettent de déterminer les tendances, d’exploiter les arrêts dynamiques et les points d’arrêt fixes, de maîtriser efficacement les tendances, de contrôler les risques de retrait et de verrouiller les bénéfices en temps opportun.
Cette stratégie utilise des données VWAP intercycliques pour juger des tendances et déclencher des signaux, tout en contrôlant les risques et en bloquant les bénéfices en utilisant des arrêts de perte dynamiques et des arrêts à points fixes. C’est une stratégie de trading quantitative simple et efficace. L’optimisation des aspects tels que le filtrage des tendances, les arrêts dynamiques, la gestion de la position et la sélection des heures de négociation peut améliorer encore la robustesse et le potentiel de gain de la stratégie.
/*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))