Estrategia de trading con oscilador de impulso dinámico


Fecha de creación: 2024-01-22 17:28:39 Última modificación: 2024-01-22 17:28:39
Copiar: 0 Número de Visitas: 603
1
Seguir
1617
Seguidores

Estrategia de trading con oscilador de impulso dinámico

Descripción general

El Dynamic Momentum Oscillator Trading Strategy está basado en el indicador Dynamo, propuesto por E. Marshall Wall en un artículo publicado en la revista Futures Futures en julio de 1996, y el oscilador estándar ha sido normalizado para eliminar el efecto de la tendencia.

Principio de estrategia

La estrategia primero calcula un índice aleatorio de 10 días de longitud (estocástico), luego calcula el promedio móvil simple de 10 días de ese índice, y luego calcula el promedio móvil de 20 días basado en este promedio móvil. Esto constituye la base de cálculo del oscilador dinámico.

Strategy calcula los máximos y mínimos del índice, luego calcula el promedio. Se diferencia la línea media de 20 días del índice original y se resta este diferencial del promedio para formar un instrumento de oscilación estandarizado. Se hace un plus cuando este valor estandarizado es superior a 77, y un minus cuando es inferior a 23.

Análisis de las ventajas

Las principales ventajas de esta estrategia son:

  1. El uso de un indicador de oscilador de dinámica dinámica elimina la influencia de la tendencia y hace que las señales de negociación sean más confiables.

  2. En combinación con las zonas de sobreventa y sobrecompra, se puede generar una señal de negociación más precisa en los puntos de inflexión.

  3. Las reglas son sencillas, claras y fáciles de aplicar.

Análisis de riesgos

Los principales riesgos de esta estrategia son:

  1. Cuando hay una tormenta en el mercado, hay una mayor probabilidad de que los indicadores emitan señales erróneas. Se puede establecer un stop loss para controlar el riesgo.

  2. En un mercado convulso, se producen frecuentemente falsas señales. Se pueden ajustar los parámetros adecuadamente para filtrar algunos ruidos.

  3. La frecuencia de las transacciones puede ser alta y los costos de las transacciones pueden tener un impacto en las ganancias.

Dirección de optimización

La estrategia puede ser optimizada en los siguientes aspectos:

  1. Prueba los datos de los diferentes mercados para encontrar el mejor contrato y la combinación óptima de parámetros.

  2. Aumentar las condiciones de filtración para juzgar la intensidad de la tendencia antes de emitir la señal y evitar ser atrapado en situaciones de temblor.

  3. Aumentar el mecanismo de suspensión de pérdidas. Elegir la suspensión de pérdidas cuando el precio rompe un umbral en una dirección negativa.

  4. Se pueden desarrollar sistemas de negociación más complejos basados en esta estrategia, combinados con varios otros indicadores para tomar decisiones.

Resumir

La estrategia de comercio de vibradores de dinámica dinámica es simple y fácil de implementar, pero también con cierto riesgo. La estabilidad y la rentabilidad del sistema se pueden mejorar aún más a través de la optimización de parámetros y reglas.

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

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 10/04/2017
// In July 1996 Futures magazine, E. Marshall Wall introduces the 
// Dynamic Momentum Oscillator (Dynamo). Please refer to this article 
// for interpretation.
// The Dynamo oscillator is a normalizing function which adjusts the 
// values of a standard oscillator for trendiness by taking the difference 
// between the value of the oscillator and a moving average of the oscillator 
// and then subtracting that value from the oscillator midpoint.
//
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading
////////////////////////////////////////////////////////////
strategy(title="Dynamo", shorttitle="Dynamo")
OscLen = input(10, minval=1)
MALen = input(20, minval=1)
HiBand = input(77, minval=1)
LowBand = input(23)
reverse = input(false, title="Trade reverse")
hline(HiBand, color=red, linestyle=line)
hline(LowBand, color=green, linestyle=line)
xOscK = stoch(close, high, low, OscLen)
xOscAvg = sma(xOscK, OscLen)
xMAVal = sma(xOscAvg, MALen)
maxNum = 9999999
LowestSoFar = iff(xOscAvg < nz(LowestSoFar[1], maxNum), xOscAvg, nz(LowestSoFar[1], maxNum))
HighestSoFar = iff(xOscAvg > nz(HighestSoFar[1]), xOscAvg, nz(HighestSoFar[1]))
MidPnt = (LowestSoFar + HighestSoFar) / 2
nRes = MidPnt - (xMAVal - xOscAvg)
pos = iff(nRes > HiBand, 1,
	     iff(nRes < LowBand, -1, nz(pos[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)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(nRes, color=blue, title="Dynamo")