Estrategia de negociación de reversión de la varianza

El autor:¿ Qué pasa?, Fecha: 2023-10-31 14:42:13
Las etiquetas:

img

Resumen general

La estrategia de negociación de inversión de variación genera señales de negociación mediante el cálculo de la relación entre las opciones de compra y venta, también conocida como la relación de compra y venta. Cuando la relación se invierte, desencadena operaciones combinadas con reglas simples de administración de dinero para obtener ganancias. Es adecuado para períodos de 30 minutos de NDX y SPX. La oscilación debe ajustarse para reflejar el punto de inversión correcto. Los resultados sólidos de las pruebas de retroceso indican el punto de inversión óptimo.

Estrategia lógica

Las métricas principales de esta estrategia son el promedio móvil y la desviación estándar de la relación entre compra y venta. Primero calcula el promedio móvil de 20 días de la relación entre compra y venta, luego calcula la desviación estándar de 30 días de la relación. Una señal larga se activa cuando la relación cruza por encima del promedio móvil más la desviación estándar de 1.5. Una señal corta se activa cuando la relación cae por debajo del promedio móvil menos la desviación estándar de 1.5.

Después de ir largo, si la relación rebota por encima del promedio móvil, cierre la posición corta. El stop loss se establece en 1% por debajo del precio de entrada. El take profit se establece en 3 veces la distancia de stop loss del precio de entrada.

Análisis de ventajas

La mayor ventaja de esta estrategia es capturar los puntos de reversión del sentimiento cuando el mercado se vuelve demasiado pesimista o alcista, causando anomalías en la relación de compra / venta.

Análisis de riesgos

El riesgo principal proviene de un ajuste inadecuado de los parámetros. Las señales demasiado frecuentes no logran capturar inversiones significativas. Las señales de reversión también pueden ser falsificadas por fallas, causando pérdidas. Los parámetros deben optimizarse para señales más confiables.

Optimización

Considere agregar filtros para confirmar señales de reversión y evitar fallas falsas. Por ejemplo, solo considere señales cuando el volumen se amplifique. Los filtros de tendencia también podrían evitar operaciones de contra-tendencia. Los parámetros óptimos probablemente varían en diferentes mercados y plazos. La integración de más factores hará que la estrategia sea más robusta.

Conclusión

Esta estrategia tiene como objetivo capturar los puntos de reversión del mercado mediante el uso de la relación de compra / venta con reglas básicas de gestión de dinero. Puede beneficiarse de las reversiones locales, pero se enfrenta a riesgos de ruptura falsos. La optimización de parámetros, la adición de filtros e integración de más factores pueden mejorar su estabilidad y rentabilidad. En general, proporciona una dirección para las reversiones comerciales basadas en el sentimiento del mercado.


/*backtest
start: 2023-09-30 00:00:00
end: 2023-10-30 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © I11L

//@version=5
strategy("I11L Long Put/Call Ratio Inversion", overlay=false, pyramiding=1, default_qty_value=10000, initial_capital=10000, default_qty_type=strategy.cash)

SL = input.float(0.01,step=0.01)
CRV = input.float(3)
TP = SL * CRV

len = input.int(30,"Lookback period in Days",step=10)
ratio_sma_lookback_len = input.int(20,step=10)
mult = input.float(1.5,"Standard Deviation Multiple")

ratio_sma = ta.sma(request.security("USI:PCC","D",close),ratio_sma_lookback_len)

median = ta.sma(ratio_sma,len)
standartDeviation = ta.stdev(ratio_sma,len)
upperDeviation = median + mult*standartDeviation
lowerDeviation = median - mult*standartDeviation


isBuy = ta.crossunder(ratio_sma, upperDeviation)// and close < buyZone
isCloseShort = (ratio_sma > median and strategy.position_size < 0)
isSL = (strategy.position_avg_price * (1.0 - SL) > low and strategy.position_size > 0) or (strategy.position_avg_price * (1.0 + SL) < high and strategy.position_size < 0)
isSell = ta.crossover(ratio_sma,lowerDeviation) 
isTP = strategy.position_avg_price * (1 + TP) < high

if(isBuy)
    strategy.entry("Long", strategy.long)

if(isCloseShort)
    strategy.exit("Close Short",limit=close)

if(isSL)
    strategy.exit("SL",limit=close)

if(isTP)
    strategy.exit("TP",limit=close)
    
plot(ratio_sma,color=color.white)
plot(median,color=color.gray)
plot(upperDeviation,color=color.rgb(0,255,0,0))
plot(lowerDeviation,color=color.rgb(255,0,0,0))

bgcolor(isBuy?color.rgb(0,255,0,90):na)
bgcolor(isSell?color.rgb(255,0,0,90):na)


Más.