Estrategia de compra y venta de indicadores de momentum


Fecha de creación: 2023-11-02 16:34:48 Última modificación: 2023-11-02 16:34:48
Copiar: 0 Número de Visitas: 644
1
Seguir
1617
Seguidores

Estrategia de compra y venta de indicadores de momentum

Descripción general

La estrategia utiliza indicadores de dinámica como el indicador de la dirección de la tendencia (ADX), el indicador de la tendencia (DMI) y el indicador de la trayectoria de la mercancía (CCI) para determinar la dirección de la tendencia y realizar un seguimiento de la tendencia. Cuando el ADX y el indicador de la tendencia confirman la formación de una tendencia, establezcan una posición en el momento en que el CCI sobrepasa.

Principio de estrategia

  1. Calcular los indicadores ADX, DMI y CCI.

    • El ADX se usa para determinar la fuerza de la tendencia, y cuando el ADX está por encima del umbral establecido, se considera que la tendencia es lo suficientemente fuerte.
    • DMI incluye DI+ y DI-, que representan la intensidad de la tendencia alcista y la tendencia bajista respectivamente. Cuando DI+ es mayor que DI-, se considera que está en una tendencia alcista, lo contrario es una tendencia bajista.
    • El CCI se usa para determinar sobrecompra y sobreventa. Cuando el CCI está por debajo de 100, es sobreventa, y cuando está por encima de 100, es sobrecompra.
  2. Para juzgar la dirección de las tendencias.

    • Cuando el DI+ se pone sobre el DI-, se determina una tendencia alcista.
    • Cuando el DI- desciende por encima del DI+, se determina una tendencia a la baja.
  3. Entrando en el campo.

    • Cuando se forma una tendencia alcista, el ADX está por encima de la brecha y el CCI está por debajo de -100.
    • Cuando se forma una tendencia a la baja, el ADX está por encima de la brecha y el CCI está por encima de 100, se hace una entrada en descubierto.
  4. La salida se detiene.

    • Cuando se hace más, se limpia el almacén cuando se usa DI+ debajo de DI-
    • Cuando se vacía, cuando se lleva DI+ encima de DI- se limpia el depósito.

Análisis de las ventajas estratégicas

  1. Utilice ADX para determinar si la tendencia es fuerte o débil, y evite las transacciones sin sentido cuando no hay una tendencia obvia.

  2. El uso de DMI para determinar la dirección de la tendencia reduce la probabilidad de error de juicio.

  3. La entrada en el CCI en el salto puede capturar el punto de inflexión de la tendencia a tiempo y reducir el riesgo de entrada.

  4. El uso de una combinación de indicadores de movimiento puede mejorar la precisión del juicio.

  5. Hay un mecanismo de suspensión de pérdidas que puede limitar cada pérdida.

Riesgo y cobertura

  1. Cuando el ADX retrocede, se producen varias transacciones de ansiedad que causan pérdidas. Se puede elevar adecuadamente el umbral de entrada del ADX para asegurar que la tendencia sea lo suficientemente evidente.

  2. El indicador DMI está rezagado y puede haber perdido la oportunidad de una tendencia temprana. Se puede combinar con otros indicadores o análisis gráfico para determinar el momento de entrada.

  3. El CCI puede generar transacciones frecuentes. Se puede relajar adecuadamente el umbral del CCI para filtrar parte del ruido.

  4. Si se hace más de un shorting y se mantiene la posición, se puede considerar la adopción de una estrategia neutral en el mercado de valores, la formulación de reglas de amortización a corto plazo y la reducción del riesgo general de la posición.

Dirección de optimización de la estrategia

  1. Optimización de los parámetros ADX para encontrar el equilibrio óptimo entre filtrar el ruido y atrapar la tendencia en el tiempo.

  2. Optimización de los parámetros de DMI, equilibrando la latencia y la sensibilidad.

  3. Optimización de los parámetros de CCI, equilibrio de la frecuencia de las operaciones y capacidad de captura de inversiones.

  4. Prueba de adición o modificación de otros indicadores en busca de una mejor combinación de efectos. Por ejemplo, MACD, KDJ, etc.

  5. Las variedades de comercio son sometidas a pruebas para encontrar la mejor opción.

  6. Optimizar las estrategias de gestión de posiciones y controlar el riesgo, a la vez que se mantiene la capacidad de seguir tendencias.

Resumir

La estrategia utiliza el ADX para juzgar la tendencia, determinar la dirección del DMI y ubicar el punto de inflexión del CCI para realizar operaciones de seguimiento de tendencias, con una lógica más fuerte. Sin embargo, se debe optimizar para los parámetros y trabajar con la administración de posiciones para controlar el riesgo. Si los parámetros se ajustan al nivel adecuado y se aplican a variedades con una tendencia evidente, la estrategia espera obtener ganancias estables.

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

//@version=4
strategy("ADX Strategy", currency = "USD", initial_capital = 1000, overlay=true)
adxlen = input(9, title="ADX Smoothing")
dilen = input(14, title="DI Length")
ADX_Entry = input(25, title="ADX Entry")
dirmov(len) =>
	up = change(high)
	down = -change(low)
	truerange = rma(tr, len)
	plus = fixnan(100 * rma(up > down and up > 0 ? up : 0, len) / truerange)
	minus = fixnan(100 * rma(down > up and down > 0 ? down : 0, len) / truerange)
	[plus, minus]

adx(dilen, adxlen) => 
	[plus, minus] = dirmov(dilen)
	sum = plus + minus
	adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
	[adx, plus, minus]

[sig, up, down] = adx(dilen, adxlen)
cci_length = input(20, minval=1, title="CCI Length")
cci_ma = sma(close, cci_length)
cci = (close - cci_ma) / (0.015 * dev(close, cci_length))

stop_loss = syminfo.mintick * 100


open_longs = strategy.position_size > 0
open_shorts = strategy.position_size < 0

possible_bull = false
possible_bull := not open_longs ? (possible_bull[1] and not crossunder(up,down) ? true : false) : false
possible_bear = false
possible_bear := not open_shorts ? (possible_bear[1] and not crossunder(down,up) ? true : false) : false



bool bull_entry = crossover(up,down)

if(bull_entry and up < ADX_Entry and cci < 0)
	possible_bull := true
	bull_entry := false

if(possible_bull and up > ADX_Entry and cci > -100)
	bull_entry := true

bool bear_entry = crossover(down,up)

if(bear_entry and down < ADX_Entry and cci > 0)
	possible_bear := true
	bear_entry := false

if(possible_bear and down >= ADX_Entry and cci < 100)
	bear_entry := true

strategy.entry("Short", strategy.short, qty = 1,comment="Short", stop=high[1] - stop_loss, when = bear_entry)
strategy.entry("Long", strategy.long, qty = 1, comment="Long", stop=low[1] - stop_loss, when = bull_entry )	

strategy.close_all(when = (open_shorts and (crossover(up,down) or crossover(sig,down))) or (open_longs and ( crossover(down,up) or crossover(sig, up))))