
La estrategia utiliza el VWAP de la línea de solvencia como señal de entrada y salida. Cuando el precio de cierre cruza el VWAP para hacer más, el stop loss se establece en el punto más bajo de la línea K anterior del VWAP y el precio objetivo se establece 3 puntos por encima del precio de apertura. Cuando el precio de cierre cruza el VWAP para hacer un vacío, el stop loss se establece en el punto más alto de la línea K anterior por encima del VWAP y el precio objetivo se establece 3 puntos por debajo del precio de apertura.
El análisis de tendencias a través de datos VWAP a lo largo de períodos, al tiempo que se utilizan paradas dinámicas y paradas de puntos fijos, permite una mejor comprensión de la tendencia, el control del riesgo de retiro y el bloqueo de ganancias a tiempo.
La estrategia utiliza los datos de VWAP para el juicio de la tendencia y la activación de señales a través del período, mientras que el control de riesgos y el bloqueo de ganancias mediante el uso de paradas dinámicas y paradas de puntos fijos, es una estrategia de comercio cuantitativo simple y eficaz. La estabilidad y el potencial de ganancias de la estrategia se pueden mejorar aún más a través de la optimización de filtros de tendencia, paradas dinámicas, administración de posiciones y selección de la hora de negociación.
/*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))