Estrategia de negociación de inversión de seguimiento de doble oscilación

El autor:¿ Qué pasa?, fecha: 2023-10-11 14:47:25
Las etiquetas:

Resumen general

Esta es una estrategia de inversión de inversión de seguimiento de oscilación dual que combina la estrategia de inversión del indicador estocástico y el indicador de volatilidad de Chaikin para obtener señales de negociación más confiables.

Estrategia lógica

La estrategia consta de dos partes:

  1. Estrategia de inversión del indicador estocástico

Esta parte utiliza la línea rápida y la línea lenta del indicador estocástico para generar señales comerciales. Se hace largo cuando el precio de cierre es inferior al precio de cierre anterior durante dos días consecutivos y la línea rápida está por encima de la línea lenta. Se hace corto cuando el precio de cierre es superior al precio de cierre anterior durante dos días consecutivos y la línea rápida está por debajo de la línea lenta.

  1. Indicador de volatilidad de Chaikin

Este indicador calcula el cambio en el diferencial entre los precios más altos y más bajos durante un período de tiempo. Cuando el diferencial se ensancha, indica una volatilidad creciente y se puede tomar una posición corta. Cuando el diferencial se estrecha, indica una volatilidad decreciente y se puede tomar una posición larga.

La señal final de negociación es una combinación de las señales de las dos partes. Cuando la señal del indicador estocástico y la señal del indicador de volatilidad están de acuerdo, se toma esa señal. De lo contrario, no se realiza ningún comercio si las dos señales no están de acuerdo.

Análisis de ventajas

Las ventajas de esta estrategia incluyen:

  1. La combinación de dos tipos diferentes de indicadores mejora la precisión de la señal.

  2. El mecanismo de doble confirmación reduce las señales falsas y controla el riesgo.

  3. Centrarse en las reversiones como la principal dirección de negociación permite obtener ganancias en los puntos de inflexión de la tendencia.

  4. Los parámetros flexibles hacen que sea adaptable a diferentes productos y plazos.

  5. El ajuste fino de los parámetros del indicador permite la optimización.

Análisis de riesgos

Los riesgos de esta estrategia incluyen:

  1. Las señales de reversión pueden ser juzgadas erróneamente, lo que conduce a pérdidas.

  2. El cortocircuito durante una volatilidad en fuerte aumento tiene riesgos de pérdida.

  3. La combinación de dos indicadores puede fallar durante las oscilaciones extremas del mercado.

  4. El monitoreo de dos indicadores aumenta la carga de trabajo.

Direcciones de mejora

Las mejoras para esta estrategia incluyen:

  1. Prueba más combinaciones de parámetros para encontrar parámetros óptimos.

  2. Añadir otros indicadores de confirmación como el volumen, etc. para crear una confirmación múltiple.

  3. Añadir mecanismos de stop loss como stop de seguimiento, stop de zona, etc. para controlar aún más el riesgo.

  4. Optimizar la gestión del dinero como la fracción fija, Kelly, etc. para mejorar la eficiencia de los beneficios.

  5. Prueba de aplicabilidad en más productos y plazos con diferentes ajustes de parámetros.

Conclusión

Esta estrategia combina indicadores duales para señales comerciales, con un enfoque en capturar reversiones. Tiene ventajas como alta precisión de la señal y buen control de riesgos, y tiene margen para mejoras. Con optimizaciones en parámetros, stop loss, gestión de dinero, etc., se puede mejorar en una sólida estrategia de inversión a medio y largo plazo.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 29/07/2019
// 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
// Chaikin's Volatility indicator compares the spread between a security's
// high and low prices. It quantifies volatility as a widening of the range
// between the high and the low price.
// You can use in the xPrice1 and xPrice2 any series: Open, High, Low, Close, HL2,
// HLC3, OHLC4 and ect...
//
// 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

ChaikinVolatility(Length, ROCLength, Trigger) =>
    pos = 0
    xPrice1 = high
    xPrice2 = low
    xPrice = xPrice1 - xPrice2
    xROC_EMA = roc(ema(xPrice, Length), ROCLength)
    pos := iff(xROC_EMA < Trigger, 1,
	         iff(xROC_EMA > Trigger, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Chaikin Volatility", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthCV = input(10, minval=1)
ROCLength = input(12, minval=1)
Trigger = input(0, minval=0)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posChaikinVolatility = ChaikinVolatility(LengthCV, ROCLength, Trigger)
pos = iff(posReversal123 == 1 and posChaikinVolatility == 1 , 1,
	   iff(posReversal123 == -1 and posChaikinVolatility == -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.