Estrategia de seguimiento de tendencias fuerte y transversal de múltiples indicadores

El autor:¿ Qué pasa?, Fecha: 2023-11-13 16:59:12
Las etiquetas:

img

Resumen general

Esta estrategia integra múltiples indicadores de impulso fuerte, incluyendo RSI, MF, CCI y Stoch RSI para identificar y rastrear tendencias fuertes a través de cruces de indicadores. Primero calcula múltiples indicadores de ciclo, luego toma el valor promedio. Cuando todos los indicadores rompen el umbral fuerte, se genera una señal de compra. Cuando los indicadores caen por debajo del umbral débil, se genera una señal de venta para capturar puntos de inflexión de tendencia y rastrear tendencias fuertes.

Estrategia lógica

Esta estrategia calcula cuatro fuertes indicadores de impulso: RSI, MF, CCI y Stoch RSI. RSI juzga la fuerza calculando los cambios de precios durante un período. MF también considera la relación de alzas y bajadas. CCI juzga los niveles de sobrecompra / sobreventa calculando la desviación del promedio móvil.

La estrategia establece 50 como el nivel neutro para los indicadores. Cuando las líneas RSI, MF, CCI, Stoch RSI K y D cruzan por encima de 50, se genera una señal de compra, lo que indica una fuerte tendencia alcista. Cuando los indicadores caen por debajo de 50, se genera una señal de venta, lo que sugiere una tendencia lateral o bajista. Después de entrar, se establece un amplio stop loss para rastrear la fuerte tendencia.

La ventaja de esta estrategia es que los indicadores son integrales, contienen múltiples métodos para medir el impulso del precio y pueden verificarse entre sí para evitar desalineaciones.

Ventajas

  1. Indicadores integrales que incluyen el índice de rentabilidad, la FM, el CCI y el índice de rentabilidad de Stoch para un fuerte juicio y verificación del impulso, mejorando la precisión.

  2. Tomando el valor medio de los indicadores se filtra el ruido y se hacen más fiables las señales.

  3. El uso del cruce de múltiples indicadores como calendario de entrada identifica eficazmente los puntos de inflexión de tendencia fuertes.

  4. El amplio intervalo de stop loss permite rastrear la fuerte tendencia hacia el exceso de rendimientos.

  5. La lógica de la estrategia es clara y fácil de entender, los parámetros son razonables para el comercio en vivo.

Los riesgos

  1. Riesgo de una fuerte inversión de tendencia: las inversiones repentinas pueden hacer que la estrategia deje de perder.

  2. Riesgo de fluctuaciones dentro de la tendencia: el precio puede tener grandes retrocesos durante las tendencias alcistas, lo que requiere rangos de stop loss razonables.

  3. El riesgo en los mercados bajistas. La estrategia es principalmente para el seguimiento de tendencias fuertes, puede tener un rendimiento inferior en los mercados bajistas.

  4. El riesgo de optimización de parámetros: los parámetros de los indicadores necesitan pruebas y optimización para diferentes productos, de lo contrario el rendimiento puede verse afectado.

  5. Los riesgos se pueden gestionar a través de una parada de pérdida adecuada, pruebas de parámetros, ajuste de posición, etc.

Direcciones de optimización

  1. Prueba de diferentes combinaciones de parámetros para encontrar ciclos óptimos para RSI, CCI, etc. para productos específicos.

  2. Introduzca más tipos de indicadores como indicadores de volatilidad, indicadores de volumen para enriquecer la lógica.

  3. Ajustar automáticamente el tamaño de las posiciones en función de las condiciones del mercado.

  4. Adoptar un stop loss dinámico, con paradas de seguimiento basadas en los niveles de fluctuación del mercado.

  5. Explorar las posibilidades de cruce por etapas, realizar operaciones basadas en indicadores de primer nivel y seguir las tendencias con indicadores de segundo nivel.

Conclusión

Esta estrategia identifica y rastrea tendencias fuertes por cruces de RSI, MF, CCI, Stoch RSI y otros indicadores de impulso fuertes. Los indicadores integrales y complementarios con cálculo de valor promedio filtran eficazmente señales falsas. El momento de entrada del cruce del indicador es confiable y un amplio rango de stop loss permite un seguimiento de tendencia persistente. Pero los riesgos de reversión necesitan precaución y la optimización de parámetros es importante. En general, la estrategia tiene un concepto simple y claro, y puede lograr un buen efecto de seguimiento de tendencia a través de la verificación del indicador, la optimización de stop loss.


/*backtest
start: 2022-11-06 00:00:00
end: 2023-11-12 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © SoftKill21

//@version=4

strategy(title="something", initial_capital = 1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.03, pyramiding=1  )

length = input(title="Length", type=input.integer, defval=100, minval=1, maxval=2000)
src = hlc3
upper = sum(volume * (change(src) <= 0 ? 0 : src), length)
lower = sum(volume * (change(src) >= 0 ? 0 : src), length)
_rsi(upper, lower) =>
    if lower == 0
        100
    if upper == 0
        0
	100.0 - (100.0 / (1.0 + upper / lower))
mf = _rsi(upper, lower)

up = rma(max(change(src), 0), length)
down = rma(-min(change(src), 0), length)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
plot(rsi, "RSI", color=#8E1599)

plot(mf, "MF", color=#459915)
hline(50, title="zap", color=#c0c0c0)



ma = sma(src, length)
cci = (src - ma) / (0.015 * dev(src, length))
//plot(cci, "CCI", color=#996A15)


smoothK = input(1, "K", minval=1)
smoothD = input(1, "D", minval=1)

rsi1 = rsi(src, length)
k = sma(stoch(rsi1, rsi1, rsi1, length), smoothK)
d = sma(k, smoothD)
plot(k, "K", color=#0094FF)
plot(d, "D", color=#FF6A00)

avg = (rsi + mf + cci + k + d)/5

long = rsi > 50 and mf > 50 and cci >50 and (k > 50 or d>50)
short= rsi<49 and mf<49 and cci<0 and (k<50 or d<50)

// long= avg > 100
// short=avg<0

plot(avg)

strategy.entry('long',1,when=long)
strategy.close("long",when=short)
//strategy.entry('short',0,when=short)
//strategy.close("short",when=exitshort)



Más.