Estrategia dinámica de stop-profit y stop-loss larga y corta basada en señales VWAP y de períodos cruzados


Fecha de creación: 2024-03-08 17:37:21 Última modificación: 2024-03-08 17:37:21
Copiar: 7 Número de Visitas: 693
1
Seguir
1617
Seguidores

Estrategia dinámica de stop-profit y stop-loss larga y corta basada en señales VWAP y de períodos cruzados

Descripción general

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.

Principio de estrategia

  1. Obtención de datos VWAP de las líneas solares, como base para el juicio de tendencias y señales de comercio.
  2. Determine si el precio de cierre actual ha subido o bajado el VWAP, como condición de activación para hacer más y hacer menos.
  3. Cuando se hace un pronóstico, si la línea K anterior está debajo del VWAP, se utiliza como punto de parada, o se utiliza directamente el VWAP como punto de parada; el pronóstico es lo contrario.
  4. Una vez abierta la posición, se establecen 3 paradas fijas.
  5. La estrategia se ejecuta hasta que se activa la señal inversa de liquidación y se abre una nueva posición.

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.

Análisis de las ventajas

  1. Simple y eficaz: La lógica de la estrategia es clara, solo con un indicador VWAP, se puede realizar el juicio de tendencias y el disparo de señales, es fácil de implementar y optimizar.
  2. Detención dinámica: el alto y el bajo de la línea K anterior, puede adaptarse mejor a la volatilidad del mercado y reducir el riesgo.
  3. Punto fijo: Establece el precio objetivo con un número fijo de puntos, lo que ayuda a bloquear los beneficios a tiempo y evitar el retroceso de los beneficios.
  4. Detener las pérdidas a tiempo: la estrategia cierra las posiciones inmediatamente cuando se activa una señal de reversión, sin causar pérdidas adicionales a las posiciones ya ganadas, y al mismo tiempo abre nuevas posiciones para capturar nuevas tendencias.

Análisis de riesgos

  1. Optimización de parámetros: la estrategia utiliza 3 puntos fijos como parámetros, la operación real puede necesitar optimización de acuerdo con diferentes parámetros y características del mercado para seleccionar el mejor parámetro.
  2. Situaciones de crisis: En situaciones de crisis, las entradas y salidas frecuentes pueden generar costos de transacción más altos y afectar los ingresos.
  3. La continuidad de la tendencia: la estrategia depende de la tendencia, y si el mercado está en un período de agitación, o si la tendencia es de poca continuidad, es posible que haya más señales de negociación, lo que conlleva más riesgo.

Dirección de optimización

  1. Filtrado de tendencias: añade otros indicadores de tendencias como las medias móviles, MACD, etc., para una segunda confirmación de la tendencia y mejorar la fiabilidad de la señal.
  2. Paradas dinámicas: ajuste dinámico de los puntos de parada en función de la volatilidad del mercado, indicadores como el ATR, para adaptarse mejor al mercado.
  3. Administración de posiciones: ajuste dinámico del tamaño de las posiciones de cada operación, según el capital de la cuenta, las preferencias de riesgo, etc.
  4. Selección de la hora de negociación: Selección de la hora de negociación óptima para mejorar la eficiencia de la estrategia, según las características de los indicadores y el nivel de actividad comercial.

Resumir

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.

Código Fuente de la Estrategia
/*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))