Estrategia de arbitraje de doble inversión

El autor:¿ Qué pasa?, Fecha: 2024-02-06 09:58:04
Las etiquetas:

img

Resumen general

La estrategia de arbitraje de reversión dual es un algoritmo de arbitraje que integra indicadores de reversión dual. Combina el sistema de reversión 123 y las subestrategias del oscilador oscilante de swing de Gann y genera señales comerciales cuando ambas subestrategias emiten señales al mismo tiempo para llevar a cabo operaciones de arbitraje.

Estrategia lógica

La estrategia consta de dos subestrategias:

  1. 123 Sistema de inversión: Es del libro Cómo triplicé mi dinero en el mercado de futuros de Ulf Jensen, página 183. Sus reglas de negociación son: cuando el precio de cierre es mayor que el precio de cierre anterior y menor que el precio de cierre de hace 2 días, ir largo cuando la línea lenta K está por debajo de 50; cuando el precio de cierre es menor que el precio de cierre anterior y mayor que el precio de cierre de hace 2 días, ir corto cuando la línea rápida K está por encima de 50.

  2. Oscilador de oscilación de Gann: Adaptado del libro de Robert Krausz A W.D. Gann Treasure Discovered. Juzga la dirección de las oscilaciones del mercado calculando el aumento y la caída de los precios más altos y más bajos durante un cierto período.

La lógica de negociación de esta estrategia de arbitraje es: cuando las direcciones de las señales de las dos subestrategias son consistentes, se generan señales comerciales reales.

Análisis de ventajas

La mayor ventaja de esta estrategia es que al integrar las señales de las dos subestrategias, puede filtrar eficazmente las señales falsas y mejorar la precisión de las señales de negociación. Las dos subestrategias tienen sus propias fortalezas. El sistema de inversión 123 puede capturar tendencias repentinas de inversión, mientras que el oscilador de oscilación de Gann puede determinar la madurez de las inversiones de tendencia. La combinación de las dos puede hacer que las señales de negociación sean más confiables, mejorando así la estabilidad de la estrategia.

Análisis de riesgos

El principal riesgo de esta estrategia es que la probabilidad de direcciones de señales comerciales inconsistentes de las dos subestrategias es relativamente grande, lo que puede conducir a señales comerciales insuficientes. Además, las subestrategias mismas también tienen ciertos riesgos de señales falsas. La combinación de estos dos factores puede conducir a un número insuficiente de operaciones para la estrategia, por lo que no puede capturar completamente las oportunidades de mercado.

Para mitigar los riesgos, los parámetros de las subestrategias se pueden ajustar para aumentar moderadamente la frecuencia de negociación, o se pueden combinar otros indicadores para ayudar a filtrar señales falsas.

Direcciones de optimización

La estrategia se puede optimizar en los siguientes aspectos:

  1. Ajustar los parámetros de las subestrategias para optimizar la frecuencia de negociación;
  2. Añadir juicios de otros indicadores técnicos para mejorar la calidad de la señal;
  3. Optimizar la ponderación de las subestrategias en función de los diferentes productos y plazos;
  4. Añadir mecanismos de stop loss para controlar la pérdida de una sola transacción.

Resumen de las actividades

La estrategia de arbitraje de reversión dual forma señales comerciales relativamente fuertes al integrar dos tipos diferentes de estrategias de reversión. Puede filtrar efectivamente el ruido y mejorar la calidad de la señal, adecuada para capturar oportunidades de reversión en el mercado. Sin embargo, la probabilidad de señales inconsistentes de las subestrategias es relativamente grande, lo que puede conducir a una frecuencia comercial insuficiente. Además, los parámetros de configuración de las propias estrategias de combinación son bastante complejos, lo que requiere pruebas y optimización suficientes para lograr los mejores resultados.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 04/11/2020
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// The Gann Swing Oscillator has been adapted from Robert Krausz's book, 
// "A W.D. Gann Treasure Discovered". The Gann Swing Oscillator helps 
// define market swings. 
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos

    
GannSO(Length) =>
    pos = 0.0
    xGSO = 0.0
    xHH = highest(Length)
    xLL = lowest(Length)
    xGSO:= iff(xHH[2] > xHH[1] and xHH[0] > xHH[1], 1,
             iff(xLL[2] < xLL[1] and xLL[0] < xLL[1], -1, nz(xGSO[1],0)))
    pos := iff(xGSO > 0, 1,
    	     iff(xGSO < 0, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Gann Swing Oscillator", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthGSO = input(5, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posGannSO = GannSO(LengthGSO)
pos = iff(posReversal123 == 1 and posGannSO == 1 , 1,
	   iff(posReversal123 == -1 and posGannSO == -1, -1, 0)) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1 , 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )

Más.