Estrategia de inversión de doble impulso


Fecha de creación: 2023-10-09 17:21:27 Última modificación: 2023-10-09 17:21:27
Copiar: 0 Número de Visitas: 733
1
Seguir
1617
Seguidores

Descripción general

La estrategia de inversión de doble dinámica combina las ventajas de la estrategia de inversión y la estrategia de dinámica, utilizando la combinación de señales de los dos tipos de indicadores para operar en reversa en el punto de ruptura con la esperanza de obtener ganancias.

Principio de estrategia

La estrategia tiene dos partes:

La primera parte es la estrategia de la inversión 123.

  • Hacer más cuando el precio de cierre es superior al precio de cierre del día anterior durante 2 días consecutivos y la línea K de la velocidad lenta promedio es inferior a 50 en 9 días;

  • Cuando el precio de cierre es inferior al precio de cierre del día anterior durante 2 días consecutivos y la línea K promedio rápida es superior a 50 en 9 días, haga una posición en blanco.

La segunda parte es el índice de fluctuación del aluminio. Los pasos para calcular el índice son:

  1. Calcula el cambio de precio xMom = close - close[1]

  2. Calcula el valor absoluto del cambio de precio xMomAbs = abs (close - close)[1])

  3. El filtro de fluctuación de los precios es menor que el filtro de desvalorización y se marca como 0

  4. Se filtra el valor absoluto del cambio de precio, si es menor que el Filter de desvalorización, se marca como 0

  5. Calcula la suma de nSum de los valores de cambio de precio después de las fluctuaciones de los últimos n días

  6. Calcula la suma de nAbsSum de los cambios absolutos en el precio después de las fluctuaciones en los últimos n días

  7. Calcula el valor de la fuerza: nRes = 100 * nSum / nAbsSum

  8. Determina la relación entre el valor de la dinámica y los límites de la banda superior y la banda inferior para emitir una señal de transacción

El indicador se caracteriza por filtrar pequeñas fluctuaciones y extraer solo información sobre la dinámica de las grandes tendencias.

Finalmente, cuando las señales de los dos tipos de indicadores coinciden, se produce una señal de transacción, hacer más o hacer menos.

Análisis de las ventajas

La estrategia combina las ventajas de dos tipos diferentes de indicadores para mejorar la calidad de la señal:

  1. La estrategia de reversión 123 puede capturar la tendencia de reversión en los puntos de inflexión y evitar ser engañado.

  2. El indicador de fluctuaciones de la tasa de cambio se centra en las fluctuaciones más grandes y filtra el ruido para capturar las principales tendencias.

  3. La combinación de ambos permite verificar las señales, reducir la probabilidad de transacciones erróneas y aumentar la ganancia.

Análisis de riesgos

El principal riesgo de esta estrategia es:

  1. El análisis de un solo ciclo de tiempo puede perder tendencias a un nivel más amplio.

  2. Los parámetros están demasiado rígidos para adaptarse a los cambios en el mercado.

  3. La doble verificación puede perder algunas oportunidades y reducir el margen de ganancias.

  4. Las señales de comercio de baja calidad también se verifican y causan pérdidas.

Dirección de optimización

La estrategia puede ser optimizada en los siguientes aspectos:

  1. Aumentar la verificación en varios ciclos de tiempo para evitar ser engañados.

  2. Configuración de parámetros de adaptación y ajuste de los parámetros del indicador según el mercado.

  3. Optimización de los filtros para reducir la tasa de errores en las señales.

  4. Aumentar las estrategias de stop loss y controlar las pérdidas individuales.

  5. Ajuste de la gestión de posiciones y optimización de la eficiencia de la utilización de fondos.

Resumir

En resumen, la estrategia de inversión de doble dinámica, combinada con las ventajas de la estrategia de inversión y el indicador de fluctuación de la roca, puede mejorar la calidad de la señal y la rentabilidad hasta cierto punto. Sin embargo, la estrategia también tiene algunos problemas, como el riesgo de ignorar tendencias de mayor nivel, parámetros rígidos, señales de error, etc. A través de la verificación de múltiples marcos de tiempo, los parámetros de adaptación y la configuración de paradas, la estrategia puede optimizarse, reducir el riesgo y aumentar la rentabilidad estable.

Código Fuente de la Estrategia
/*backtest
start: 2023-09-08 00:00:00
end: 2023-10-08 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 25/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 a CMO which ignores price changes which are less 
// than a threshold value. CMO 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

fFilter(xSeriesSum, xSeriesV, Filter) =>
    iff(xSeriesV > Filter, xSeriesSum, 0)

CMOfilt(Length,Filter, TopBand, LowBand) =>
    pos = 0
    xMom = close - close[1]
    xMomAbs = abs(close - close[1])
    xMomFilter = fFilter(xMom, xMomAbs, Filter)
    xMomAbsFilter = fFilter(xMomAbs,xMomAbs, Filter)
    nSum = sum(xMomFilter, Length)
    nAbsSum = sum(xMomAbsFilter, Length)
    nRes =   100 * nSum / nAbsSum
    pos := iff(nRes > TopBand, 1,
	         iff(nRes < LowBand, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & CMOfilt", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthCMO = input(9, minval=1)
Filter = input(3, minval=1)
TopBand = input(70, minval=1)
LowBand = input(-70, maxval=-1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posCMOfilt = CMOfilt(LengthCMO,Filter, TopBand, LowBand)
pos = iff(posReversal123 == 1 and posCMOfilt == 1 , 1,
	   iff(posReversal123 == -1 and posCMOfilt == -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 )