Estrategia dinámica de Stop Loss y Take Profit basada en señales VWAP y de intervalo de tiempo

El autor:¿ Qué pasa?, Fecha: 2024-03-08 17:37:21
Las etiquetas:

img

Resumen general

Esta estrategia utiliza el VWAP (Volume Weighted Average Price) desde el marco de tiempo diario como una señal para entrar y salir de las operaciones. Cuando el precio de cierre cruza por encima del VWAP, desencadena una entrada larga con el stop loss establecido en los candle's bajos anteriores si está por debajo del VWAP, y el precio objetivo establecido 3 puntos por encima del precio de entrada. Por el contrario, cuando el precio de cierre cruza por debajo del VWAP, desencadena una entrada corta con el stop loss establecido en los candle's altos anteriores si está por encima del VWAP, y el precio objetivo establecido 3 puntos por debajo del precio de entrada. Esta estrategia no incluye una condición de salida, por lo que las operaciones permanecen abiertas hasta que ocurra la señal opuesta.

Principio de la estrategia

  1. Obtener los datos del VWAP a partir del marco de tiempo diario, que sirve de base para la determinación de tendencias y señales comerciales.
  2. Determinar si el precio de cierre actual cruza por encima/por debajo del VWAP, actuando como desencadenante de entradas largas y cortas, respectivamente.
  3. Para entradas largas, si el mínimo de la vela anterior está por debajo del VWAP, se utiliza como stop loss; de lo contrario, se utiliza el propio VWAP.
  4. Después de entrar en una posición, establecer un nivel fijo de 3 puntos para obtener beneficios.
  5. La estrategia continúa funcionando hasta que una señal inversa activa la posición para cerrar y abrir una nueva.

Mediante el uso de datos VWAP de intervalos temporales para determinar las tendencias y aprovechar las pérdidas de parada dinámicas y las ganancias de toma de puntos fijos, la estrategia puede capturar eficazmente los mercados de tendencia, controlar los riesgos de retirada y asegurar las ganancias a tiempo.

Análisis de ventajas

  1. Sencillez y eficacia: La lógica de la estrategia es clara, utilizando solo el indicador VWAP para la determinación de tendencias y el desencadenamiento de señales, por lo que es fácil de implementar y optimizar.
  2. Pérdida de parada dinámica: al establecer la pérdida de parada basada en el alto o bajo de las velas anteriores, la estrategia se adapta mejor a las fluctuaciones del mercado y reduce el riesgo.
  3. Punto fijo para obtener ganancias: fijar el precio objetivo con un número fijo de puntos ayuda a obtener ganancias rápidamente y evitar la erosión de las ganancias.
  4. Stop loss y take profit oportunos: La estrategia cierra inmediatamente la posición cuando se activa una señal inversa, evitando pérdidas adicionales en las ganancias existentes.

Análisis de riesgos

  1. Optimización de parámetros: la estrategia utiliza un punto fijo de 3 para obtener ganancias, lo que puede requerir una optimización basada en diferentes instrumentos y características del mercado para seleccionar los parámetros óptimos para la negociación real.
  2. Mercados agitados: en condiciones de mercado agitadas, las entradas y salidas frecuentes pueden conducir a mayores costos comerciales, lo que afecta a la rentabilidad.
  3. Sostenibilidad de tendencia: la estrategia se basa en los mercados de tendencia. Si el mercado está limitado al rango o carece de sostenibilidad de tendencia, puede generarse más señales comerciales, lo que introduce más riesgo.

Direcciones de optimización

  1. Filtración de tendencias: Incorporar otros indicadores de tendencia como promedios móviles, MACD, etc., para confirmar tendencias y mejorar la confiabilidad de la señal.
  2. Dinámica de toma de beneficios: ajustar los puntos de toma de beneficios dinámicamente en función de la volatilidad del mercado, ATR u otros indicadores para adaptarse mejor a las condiciones del mercado.
  3. Tamaño de la posición: ajustar dinámicamente el tamaño de la posición para cada operación en función del tamaño de la cuenta, la tolerancia al riesgo y otros factores.
  4. Selección de las sesiones de negociación: elegir las sesiones de negociación óptimas en función de las características y la liquidez del instrumento para mejorar la eficiencia de la estrategia.

Resumen de las actividades

Esta estrategia utiliza datos VWAP de intervalo de tiempo para la determinación de tendencias y el desencadenamiento de señales, mientras que emplea pérdidas de parada dinámicas y puntos fijos para obtener ganancias para controlar los riesgos y bloquear las ganancias. Es una estrategia de negociación cuantitativa simple y efectiva. A través de optimizaciones en el filtrado de tendencias, la toma dinámica de ganancias, el tamaño de posiciones y la selección de sesiones de negociación, la robustez y el potencial de ganancias de la estrategia se pueden mejorar aún más. Sin embargo, al aplicar la estrategia en la práctica, se debe prestar atención a las características del mercado, los costos de negociación y la optimización de parámetros para lograr una mejor estrategia de rendimiento.


/*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))

Más.