Estrategia comercial VWAP basada en el canal de precios


Fecha de creación: 2024-02-19 14:25:18 Última modificación: 2024-02-19 14:25:18
Copiar: 0 Número de Visitas: 782
1
Seguir
1617
Seguidores

Estrategia comercial VWAP basada en el canal de precios

Descripción general

La estrategia se llama Price Channel VWAP Trading Strategy, y es una estrategia basada en el canal de precios para realizar operaciones VWAP. La idea principal de la estrategia es: dentro del canal de precios, usar la línea media del indicador VWAP y su línea de canal de desviación hacia arriba y hacia abajo para determinar el punto de compra y venta, abrir posiciones según el porcentaje de activos totales en posiciones fijas al romper la línea de canal y cerrar posiciones al regresar a la línea media VWAP.

Principio de estrategia

La estrategia calcula el precio promedio de transacción en el precio actual a través del indicador VWAP. El VWAP representa el precio promedio, que es la relación entre el volumen de transacción y el volumen de transacción. El indicador VWAP refleja la diferencia entre el precio actual y el precio promedio de transacción histórico.

La estrategia utiliza el promedio del indicador VWAP y su línea de canal de desviación. La proporción de la línea de canal de desviación se establece a través de los parámetros longlevel1 y shortlevel1. Cuando el precio se rompe en la línea de canal de desviación, abra una cuenta más grande de acuerdo con el porcentaje de posiciones de la columna de canal de desviación lotsizelong; cuando el precio se rompe en la línea de canal de desviación de la columna de desviación, abra una cuenta más pequeña de acuerdo con el porcentaje de posiciones de la columna de desviación lotsizeshort.

La configuración de los parámetros de la estrategia refleja perfectamente la idea de la negociación de canales. Los usuarios pueden ajustar el ancho de canal y el tamaño de la proporción de posición según sus propias preferencias, lo que permite diferentes niveles de frecuencia de negociación.

Análisis de las ventajas

La estrategia de negociación tiene las siguientes ventajas:

  1. Utiliza el indicador VWAP para determinar el centro de valor y captar las tendencias del mercado
  2. La transacción dentro del corredor evita la interferencia de ruido y hace que la operación sea más clara
  3. Combinación de canales de diferentes niveles, despliegue por lotes y pasos para reducir el riesgo
  4. La operación de regreso se detiene a tiempo para evitar las pérdidas de la inversión rápida

Debido a que el indicador VWAP refleja muy bien el nivel promedio de los precios, el comercio basado en su línea de canal puede bloquear eficazmente el centro de valor y evitar ser desviado por la banda de fluctuación a corto plazo. Al mismo tiempo, la combinación de diferentes canales de parámetros, la construcción de la bolsa por lotes, puede controlar eficazmente el riesgo y evitar que el riesgo unilateral se centralice en la ruptura de la posición. Finalmente, mediante el retorno a la posición cercana a la línea media de VWAP en el momento oportuno, se puede reducir la pérdida causada por la reversión de los precios.

Análisis de riesgos

La estrategia también tiene algunos riesgos a tener en cuenta:

  1. El índice VWAP no es sensible a las transacciones de alta frecuencia y no puede reflejar las anomalías de precios extremos
  2. La configuración incorrecta de los parámetros de anchura de canal puede conducir a una negociación demasiado radical
  3. Regresar a la operación de la posición en el rango de equilibrio puede causar pérdidas en la jaula si es demasiado amplio

El indicador VWAP no es sensible a las fluctuaciones de las operaciones de alta frecuencia, y si se encuentra con un salto extremo en el precio o una anomalía a corto plazo, aún puede provocar señales de negociación innecesarias y pérdidas. Además, si los parámetros de la vía se establecen demasiado relajados, es fácil que se forme una señal de invalidez de penetración de precios. Finalmente, si el rango de posición plana de la operación de retorno es demasiado amplio, es posible que se pierda el mejor momento de parada y se produzca una pérdida.

La respuesta es la configuración de parámetros de evaluación razonables, ajustar adecuadamente los parámetros del canal; al mismo tiempo, en combinación con otros indicadores, determinar las anomalías de precios y evitar el seguimiento ciego; y finalmente evaluar la optimización de los parámetros de los diferentes niveles de canal y el rango de regresión, para lograr un mejor efecto de frenado.

Dirección de optimización

La estrategia puede ser optimizada en las siguientes direcciones:

  1. Aumentar las capas de los canales y optimizar la combinación de parámetros
  2. Eficacia de la ruptura combinada con indicadores de volumen de transacciones
  3. Aumentar las estrategias de stop loss y configurar las tasas de retiro para detener los pérdidas

Se pueden agregar más niveles de canal y optimizar los parámetros de combinación para lograr un efecto de negociación más estable. Además, se pueden agregar reglas de juicio de volumen de transacción para evitar que los saltos de precios no válidos causen pérdidas de transacción. Finalmente, también se pueden establecer reglas de parada de pérdidas para salir de la parada de pérdidas cuando la pérdida de la posición alcanza una cierta proporción para controlar el riesgo de manera efectiva.

Resumir

Esta estrategia combina el indicador VWAP con el canal de precios para lograr una estrategia de negociación relativamente estable. La configuración de los parámetros de la estrategia es flexible y el usuario puede ajustarlos según sus propias preferencias. La estrategia puede determinar de manera efectiva la dirección central del valor y lograr un efecto de ganancias estables a través de la combinación de parámetros y la construcción de almacenes en serie.

Código Fuente de la Estrategia
/*backtest
start: 2023-02-12 00:00:00
end: 2024-02-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title = "VWAP Bands Backtest", shorttitle = "VWAP Bands Backtest", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 3)

//Settings
lotsizelong = input(100, defval = 100, minval = 0, maxval = 10000, title = "Lot long, %")
lotsizeshort = input(100, defval = 100, minval = 0, maxval = 10000, title = "Lot short, %")
short1 = input(true, title = "short 1")
long1 = input(true, title = "long 1")
shortlevel1 = input(1.0, title = "Short line 1")
longlevel1 = input(-1.0, title = "Long line 1")
needoffset = input(true, title = "Offset")

fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Variables
size = strategy.position_size
mult = 1 / syminfo.mintick
truetime = true

//VWAP
ma = vwap(hlc3)

//Levels
longline1 = long1 ? round(ma * ((100 + longlevel1) / 100) * mult) / mult : close
shortline1 = short1? round(ma * ((100 + shortlevel1) / 100) * mult) / mult : close


//Lines
colorlong1 = long1 ? color.lime : na
colorshort1 = short1 ? color.red : na
offset = needoffset ? 1 : 0
plot(shortline1, offset = offset, color = colorshort1, title = "Short line 1")
plot(ma, offset = offset, color = color.blue, title = "MA line")
plot(longline1, offset = offset, color = colorlong1, title = "Long line 1")


//Trading
lotlong = 0.0
lotshort = 0.0
lotlong := size == 0 ? (strategy.equity / close) * (lotsizelong / 100) : lotlong[1]
lotshort := size == 0 ? (strategy.equity / close) * (lotsizeshort / 100) : lotshort[1]


if ma > 0
    if lotlong > 0
        lotslong = 0.0
        lotslong := strategy.position_size > 0 ? round(strategy.position_size / lotlong) : 0.0
        strategy.entry("L1", strategy.long, lotlong, limit = longline1, when = (lotslong == 0 and long1 and truetime))
    if lotshort > 0
        lotsshort = 0.0
        lotsshort := strategy.position_size < 0 ? round(strategy.position_size / lotshort) : 0.0
        strategy.entry("S1", strategy.short, lotshort, limit = shortline1, when = (lotsshort == 0 and short1 and truetime))
if strategy.position_size > 0
    strategy.exit("TPL", "L1", limit = ma)
if strategy.position_size < 0
    strategy.exit("TPS", "S1", limit = ma)
if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()
    strategy.cancel("L1")
    strategy.cancel("S1")
    strategy.cancel("TPL")
    strategy.cancel("TPS")