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

Estadísticas de desviación estándar doble VWAP Estrategia de negociación de ruptura

El autor:¿ Qué pasa?, Fecha: 2025-01-06 16:31:36
Las etiquetas:VWAP- ¿ Qué?VOLHL2

img

Resumen general

Esta estrategia es un sistema de ruptura de tendencia basado en VWAP (Volume Weighted Average Price) y canales de desviación estándar. Construye un rango de precios dinámico mediante el cálculo de VWAP y bandas de desviación estándar para capturar oportunidades de ruptura al alza. La estrategia se basa principalmente en señales de ruptura de banda de desviación estándar para el comercio, con objetivos de ganancia e intervalos de orden para controlar el riesgo.

Principios de estrategia

  1. Cálculo del indicador básico:
  • Calcular el VWAP utilizando los precios y el volumen intradiarios del HL2
  • Calcular la desviación tipo basada en la volatilidad de los precios
  • Establecer 1,28 veces la desviación estándar de las bandas superior e inferior
  1. La lógica del comercio:
  • Condición de entrada: el precio se cruza por debajo de la banda inferior y luego sube por encima de ella
  • Condición de salida: se alcanza el objetivo de ganancia preestablecido
  • Intervalo mínimo de órdenes para evitar operaciones frecuentes

Ventajas estratégicas

  1. Fundamento estadístico
  • Referencia del centro de precios basado en el VWAP
  • Medición de la volatilidad mediante desviación estándar
  • Ajuste del intervalo de negociación dinámico
  1. Control de riesgos
  • Establecimiento de objetivos de utilidad fija
  • Control de la frecuencia de negociación
  • La estrategia de largo plazo reduce el riesgo

Riesgos estratégicos

  1. Riesgos de mercado
  • Se trata de los valores de los activos de la entidad que no son objeto de una exposición de riesgo.
  • Dificultad para programar con precisión las inversiones de tendencia
  • Aumento de las pérdidas en los mercados de tendencia bajista
  1. Riesgos de parámetros
  • Sensibilidad a los ajustes del multiplicador de la desviación estándar
  • Se requiere una optimización del objetivo de ganancia
  • El intervalo de negociación afecta el rendimiento

Direcciones de optimización

  1. Optimización de la señal
  • Añadir filtro de tendencia
  • Incorporar la confirmación de cambio de volumen
  • Incluir indicadores técnicos adicionales
  1. Optimización de la gestión de riesgos
  • Posicionamiento dinámico de pérdidas
  • Tamaño de las posiciones basado en la volatilidad
  • Sistema mejorado de gestión de pedidos

Resumen de las actividades

Esta es una estrategia de trading cuantitativa que combina principios estadísticos y análisis técnico. A través de la combinación de VWAP y bandas de desviación estándar, construye un sistema de trading relativamente confiable.


/*backtest
start: 2019-12-23 08:00:00
end: 2025-01-04 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5 
strategy("VWAP Stdev Bands Strategy (Long Only)", overlay=true)

// Standard Deviation Inputs
devUp1 = input.float(1.28, title="Stdev above (1)")
devDn1 = input.float(1.28, title="Stdev below (1)")

// Show Options
showPrevVWAP = input(false, title="Show previous VWAP close?")
profitTarget = input.float(2, title="Profit Target ($)", minval=0) // Profit target for closing orders
gapMinutes = input.int(15, title="Gap before new order (minutes)", minval=0) // Gap for placing new orders

// VWAP Calculation
var float vwapsum = na
var float volumesum = na
var float v2sum = na
var float prevwap = na // Track the previous VWAP
var float lastEntryPrice = na // Track the last entry price
var int lastEntryTime = na // Track the time of the last entry

start = request.security(syminfo.tickerid, "D", time)
newSession = ta.change(start)

vwapsum := newSession ? hl2 * volume : vwapsum[1] + hl2 * volume
volumesum := newSession ? volume : volumesum[1] + volume
v2sum := newSession ? volume * hl2 * hl2 : v2sum[1] + volume * hl2 * hl2

myvwap = vwapsum / volumesum
dev = math.sqrt(math.max(v2sum / volumesum - myvwap * myvwap, 0))

// Calculate Upper and Lower Bands
lowerBand1 = myvwap - devDn1 * dev
upperBand1 = myvwap + devUp1 * dev

// Plot VWAP and Bands with specified colors
plot(myvwap, style=plot.style_line, title="VWAP", color=color.green, linewidth=1)
plot(upperBand1, style=plot.style_line, title="VWAP Upper (1)", color=color.blue, linewidth=1)
plot(lowerBand1, style=plot.style_line, title="VWAP Lower (1)", color=color.red, linewidth=1)

// Trading Logic (Long Only)
longCondition = close < lowerBand1 and close[1] >= lowerBand1 // Price crosses below the lower band

// Get the current time in minutes
currentTime = timestamp("GMT-0", year(timenow), month(timenow), dayofmonth(timenow), hour(timenow), minute(timenow))

// Check if it's time to place a new order based on gap
canPlaceNewOrder = na(lastEntryTime) or (currentTime - lastEntryTime) >= gapMinutes * 60 * 1000

// Close condition based on profit target
if (strategy.position_size > 0)
    if (close - lastEntryPrice >= profitTarget)
        strategy.close("B")
        lastEntryTime := na // Reset last entry time after closing

// Execute Long Entry
if (longCondition and canPlaceNewOrder)
    strategy.entry("B", strategy.long)
    lastEntryPrice := close // Store the entry price
    lastEntryTime := currentTime // Update the last entry time

    // Add label for the entry
    label.new(bar_index, close, "B", style=label.style_label_down, color=color.green, textcolor=color.white, size=size.small)

// Optional: Plot previous VWAP for reference
prevwap := newSession ? myvwap[1] : prevwap[1]
plot(showPrevVWAP ? prevwap : na, style=plot.style_circles, color=close > prevwap ? color.green : color.red)

Relacionados

Más.