Estrategia combinada de medias móviles de inversión de impulso


Fecha de creación: 2024-01-12 12:22:47 Última modificación: 2024-01-12 12:22:47
Copiar: 0 Número de Visitas: 639
1
Seguir
1617
Seguidores

Estrategia combinada de medias móviles de inversión de impulso

Descripción general

La estrategia de 123 inversiones combina las estrategias de 123 inversiones con la estrategia de CMO equilibrada para crear una combinación de señales de compra y venta. La estrategia de 123 inversiones crea nuevas altas o bajas en el precio de cierre de las acciones durante dos días consecutivos. La estrategia de CMO equilibrada utiliza la CMO para determinar el movimiento de los precios y generar una señal de transacción.

Principio de estrategia

La estrategia inversa 123 utiliza los siguientes principios para generar una señal de negociación:

  1. Hacer más cuando el precio de cierre ha subido dos días seguidos y el índice aleatorio es inferior a 50 en el noveno día
  2. Cuando el precio de cierre cae dos días seguidos y el indicador aleatorio está por encima de 50 en el día 9, hacer un shorting

La estrategia genera una señal de negociación al determinar si los precios están formando nuevos picos o bajos en el corto plazo, en combinación con un indicador de espacio múltiple de indicadores aleatorios.

La estrategia de línea media del CMO utiliza los siguientes principios para generar señales de negociación:

  1. Calcular el valor del CMO en los días 5, 10 y 20
  2. Encuentra el promedio
  3. Hacer más cuando el promedio de CMO es superior a 70
  4. Cuando el promedio de CMO está por debajo de 70

La estrategia genera señales de negociación a través de operaciones conjuntas de valores de CMO de diferentes períodos para juzgar la volatilidad de los indicadores de la dinámica de los precios.

La combinación de estrategias realiza una operación AND sobre las señales de las dos estrategias, es decir, la combinación de estrategias produce una señal de negociación real cuando las señales de las dos estrategias están excedidas o vacías al mismo tiempo.

Ventajas estratégicas

La estrategia tiene las siguientes ventajas:

  1. Las señales combinadas son más fiables y reducen las falsas
  2. 123 estrategias de inversión para capturar tendencias después de un ajuste a corto plazo
  3. La estrategia de línea media del CMO para determinar el movimiento de los precios a gran escala
  4. Adaptabilidad a diferentes entornos de mercado

Análisis de riesgos

La estrategia también tiene los siguientes riesgos:

  1. La estrategia inversa es altamente dependiente de la forma de los precios y puede fallar
  2. El indicador CMO es sensible a las fluctuaciones del mercado y puede generar señales erróneas
  3. Las señales de la combinación de estrategias pueden ser demasiado conservadoras y perder oportunidades de negociación
  4. Necesidad de ajustar adecuadamente los parámetros para adaptarlos a diferentes ciclos y entornos de mercado

Las respuestas son:

  1. Reglas de juicio morfológico para optimizar estrategias de inversión
  2. Incluir otros indicadores auxiliares en la estrategia de línea de CMO
  3. Evaluación de la eficacia de la estrategia en el período más reciente, parámetros de ajuste dinámico

Dirección de optimización

La estrategia se puede optimizar en los siguientes aspectos:

  1. Optimización automática del peso de la combinación con algoritmos de aprendizaje automático
  2. Agrega un módulo de ajuste de parámetros adaptativo para optimizar dinámicamente los parámetros de la política
  3. Aumentar los módulos de detención de pérdidas y controlar el riesgo de manera efectiva
  4. Evaluar la solidez de las estrategias y mejorar los algoritmos de identificación de formas
  5. Factores como la elección de la industria y los fundamentos

Resumir

La estrategia se basa en la inversión de 123 y la línea media de CMO, dos estrategias complementarias que forman una estrategia de negociación combinada eficaz. Si se controla el riesgo, se puede generar un beneficio adicional estable. A medida que los algoritmos y los modelos se optimizan continuamente, se espera que la rentabilidad y la estabilidad de la estrategia mejoren aún más.

Código Fuente de la Estrategia
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 19/09/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
//    This indicator plots average of three different length CMO's. This indicator 
//    was developed by Tushar Chande. A scientist, an inventor, and a respected 
//    trading system developer, Mr. Chande developed the CMO to capture what he 
//    calls "pure momentum". For more definitive information on the CMO and other 
//    indicators we recommend the book The New Technical Trader by Tushar Chande 
//    and Stanley Kroll.
//    The CMO is closely related to, yet unique from, other momentum oriented 
//    indicators such as Relative Strength Index, Stochastic, Rate-of-Change, etc. 
//    It is most closely related to Welles Wilder?s RSI, yet it differs in several ways:
//    - It uses data for both up days and down days in the numerator, thereby directly 
//    measuring momentum;
//    - The calculations are applied on unsmoothed data. Therefore, short-term extreme 
//    movements in price are not hidden. Once calculated, smoothing can be applied to 
//    the CMO, if desired;
//    - The scale is bounded between +100 and -100, thereby allowing you to clearly see 
//    changes in net momentum using the 0 level. The bounded scale also allows you to 
//    conveniently compare values across different securities.
//
// 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

CMOav(Length1,Length2,Length3, TopBand, LowBand) =>
    pos = 0
    xMom = close - close[1]
    xMomabs = abs(close - close[1])
    nSum1 = sum(xMom, Length1)
    nSumAbs1 = sum(xMomabs, Length1)
    nSum2 = sum(xMom, Length2)
    nSumAbs2 = sum(xMomabs, Length2)
    nSum3 = sum(xMom, Length3)
    nSumAbs3 = sum(xMomabs, Length3)
    nRes = 100 * (nSum1 / nSumAbs1 + nSum2 / nSumAbs2 + nSum3 / nSumAbs3 ) / 3
    pos := iff(nRes > TopBand, 1,
    	     iff(nRes < LowBand, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & CMOav", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
Length1 = input(5, minval=1)
Length2 = input(10, minval=1)
Length3 = input(20, minval=1)
TopBand = input(70, minval=1)
LowBand = input(-70, maxval=-1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posCMOav = CMOav(Length1,Length2,Length3, TopBand, LowBand)
pos = iff(posReversal123 == 1 and posCMOav == 1 , 1,
	   iff(posReversal123 == -1 and posCMOav == -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 )