En la carga de los recursos... Cargando...

VWAP y la estrategia de compra/venta de Super Trend

El autor:¿ Qué pasa?, Fecha: 2024-06-03 10:45:14
Las etiquetas:VWAPEl ATR

img

Resumen general

Esta estrategia combina los indicadores VWAP (Volume Weighted Average Price) y Supertrend. Determina las señales de compra y venta comparando la posición del precio con respecto al VWAP y la dirección del indicador Supertrend. Una señal de compra se genera cuando el precio cruza por encima del VWAP y la Supertrend es positiva, mientras que una señal de venta se genera cuando el precio cruza por debajo del VWAP y la Supertrend es negativa. La estrategia también evita generar señales duplicadas registrando el estado de la señal anterior hasta que aparezca una señal opuesta.

Principio de la estrategia

  1. Calcular el indicador VWAP utilizando la función ta.vwap, con longitud VWAP personalizable.
  2. Calcular el indicador Supertrend utilizando la función ta.supertrend, con período ATR y multiplicador personalizables.
  3. Determinar la condición de compra: el precio actual cruza por encima de VWAP y la dirección de Supertrend es positiva.
  4. Determinar la condición de venta: el precio actual se cruza por debajo del VWAP y la dirección de la Supertrend es negativa.
  5. Se registra el estado de la señal anterior para evitar señales consecutivas en la misma dirección.

Ventajas estratégicas

  1. Combina los indicadores VWAP y Supertrend para una evaluación más exhaustiva de las tendencias del mercado y los posibles puntos de inflexión.
  2. El indicador VWAP tiene en cuenta el volumen, lo que refleja mejor el movimiento real del mercado.
  3. El indicador Supertrend tiene características de seguimiento de tendencias y filtrado de oscilaciones, lo que ayuda a capturar las principales tendencias.
  4. El mecanismo para evitar señales duplicadas reduce la frecuencia de las operaciones y reduce los costes de transacción.

Riesgos estratégicos

  1. Durante los períodos de alta volatilidad del mercado o tendencias poco claras, la estrategia puede generar más señales falsas.
  2. El rendimiento de la estrategia depende de la elección de los parámetros VWAP y Supertrend; diferentes ajustes pueden dar lugar a resultados diferentes.
  3. La estrategia no incluye la gestión del riesgo y el dimensionamiento de las posiciones, que deben combinarse con otras medidas para controlar el riesgo en las aplicaciones prácticas.

Direcciones para la optimización de la estrategia

  1. Introducir un mecanismo de confirmación de tendencia, como el uso de medias móviles u otros indicadores de tendencia, para filtrar más las señales.
  2. Optimizar la selección de parámetros mediante pruebas de retroceso de los datos históricos para encontrar la mejor combinación de longitud VWAP, período ATR y multiplicador.
  3. Implementar medidas de gestión de riesgos, como el stop-loss y el take-profit, para controlar el riesgo comercial individual.
  4. Considere la posibilidad de incorporar estrategias de gestión de dinero, como la fracción fija o el criterio de Kelly, para optimizar el tamaño de las posiciones.

Resumen de las actividades

La estrategia VWAP y Supertrend Buy/Sell tiene como objetivo capturar de manera integral las tendencias del mercado y los puntos de inflexión potenciales mediante la combinación de dos tipos diferentes de indicadores. La lógica de la estrategia es clara y fácil de implementar y optimizar. Sin embargo, el rendimiento de la estrategia depende de la selección de parámetros y carece de medidas de gestión de riesgos.


/*backtest
start: 2023-05-28 00:00:00
end: 2024-06-02 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title="VWAP and Super Trend Buy/Sell Strategy", shorttitle="VWAPST", overlay=true)


//===== VWAP =====
showVWAP = input.bool(title="Show VWAP", defval=true, group="VWAP")
VWAPSource = input.source(title="VWAP Source", defval=hl2, group="VWAP")
VWAPrice = ta.vwap(VWAPSource)
plot(showVWAP ? VWAPrice : na, color=color.teal, title="VWAP", linewidth=2)


//===== Super Trend =====
showST = input.bool(true, "Show SuperTrend Indicator", group="Super Trend")
Period = input.int(title="ATR Period", defval=10, group="Super Trend")
Multiplier = input.float(title="ATR Multiplier", defval=2.0, group="Super Trend")


// Super Trend ATR
Up = hl2 - (Multiplier * ta.atr(Period))
Dn = hl2 + (Multiplier * ta.atr(Period))
var float TUp = na
var float TDown = na
TUp := na(TUp[1]) ? Up : close[1] > TUp[1] ? math.max(Up, TUp[1]) : Up
TDown := na(TDown[1]) ? Dn : close[1] < TDown[1] ? math.min(Dn, TDown[1]) : Dn
var int Trend = na
Trend := na(Trend[1]) ? 1 : close > TDown[1] ? 1 : close < TUp[1] ? -1 : Trend[1]


Tsl = Trend == 1 ? TUp : TDown
linecolor = Trend == 1 ? color.green : color.red
plot(showST ? Tsl : na, color=linecolor, style=plot.style_line, linewidth=2, title="SuperTrend")


// Buy/Sell Conditions
var bool previousBuysignal = false
var bool previousSellsignal = false


buysignal = not previousBuysignal and Trend == 1 and close > VWAPrice
sellsignal = not previousSellsignal and Trend == -1 and close < VWAPrice


// Ensure the signals are not repetitive
if (buysignal)
    previousBuysignal := true
    previousSellsignal := false
else if (sellsignal)
    previousBuysignal := false
    previousSellsignal := true


// Execute buy and sell orders
if (buysignal)
    strategy.entry("Buy", strategy.long)
if (sellsignal)
    strategy.entry("Sell", strategy.short)


// Plot Buy/Sell Labels
//plotshape(buysignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", textcolor=color.white, size=size.normal)
//plotshape(sellsignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", textcolor=color.white, size=size.normal)


Relacionados

Más.