En la carga de los recursos... Cargando...

Estrategia de detección de tendencias basada en principios de acción de precios

El autor:¿ Qué pasa?, Fecha: 2023-09-20 11:11:46
Las etiquetas:

Resumen general

La idea central de esta estrategia es determinar la dirección de la tendencia actual basada en la relación entre el punto alto y el precio de cierre de las barras de la línea K, y suavizar los resultados utilizando líneas de promedio móvil.

Estrategia lógica

Según la relación de posición entre el precio de cierre y los puntos altos y bajos, se determina si la barra de la línea K de M minutos pertenece a un tipo de cierre alto (precio de cierre cercano al punto alto), tipo de cierre bajo (precio de cierre cercano al punto bajo) o tipo normal (precio de cierre cercano a la mitad).

Específicamente, primero calcular delt = alto - cerrar, que es la diferencia entre el punto alto y el precio de cierre, y altura = alto - bajo, que es la diferencia entre alto y bajo. Si delt > altura * 2/3, se determina como un tipo de cierre alto. Si delt < altura/3, se determina como un tipo de cierre bajo, de lo contrario es un tipo normal.

Luego cuenta el número de tipos de cierre alto, cierre bajo y normal en las barras de línea N K más recientes, calcula el porcentaje que representan y usa la EMA para suavizarlas en curvas de aumento, caída y media.

Cuando la curva de subida cruza por encima de la curva de caída, significa que las barras de cierre altas comienzan a aumentar, lo que indica que el mercado está entrando en una tendencia al alza, y se emite una señal larga.

Ventajas de la estrategia

Esta estrategia de evaluación de tendencias basada en la acción de precios tiene las siguientes ventajas:

  1. El principio es claro y fácil de entender y dominar.

  2. No se basa en ningún indicador, sino que juzga la dirección de la tendencia basándose únicamente en las características del precio en sí.

  3. Hay pocos parámetros configurables, principalmente parámetros de suavizado N y EMA, que son fáciles de optimizar.

  4. Puede aplicarse ampliamente a cualquier activo digital con cierta liquidez, incluidas acciones, divisas, criptomonedas, etc.

  5. Los resultados de las pruebas de retroceso son buenos y los riesgos pueden controlarse estrictamente.

  6. Puede combinarse con líneas de tendencia, niveles de soporte/resistencia y otros métodos técnicos de optimización.

  7. Las estrategias de stop loss pueden configurarse para controlar pérdidas individuales.

Riesgos de la estrategia

A pesar de las ventajas, la estrategia también presenta los siguientes riesgos:

  1. Cuando el mercado está en estado de choque, el tipo de línea K cambia con frecuencia, lo que puede generar señales falsas.

  2. La configuración incorrecta de los parámetros N y EMA puede dar lugar a tendencias faltantes o a demasiadas señales no válidas.

  3. Juzgar la dirección de la tendencia basándose únicamente en tipos de línea K tiene cierto retraso.

  4. No puede filtrar eficazmente los patrones de gráficos comunes como la convergencia de triángulos, banderas, etc., con el riesgo de avances inversos.

  5. Esta estrategia pertenece al seguimiento de tendencias y no puede aprovechar eficazmente las oportunidades de reversión.

  6. Se utilizará el stop loss para controlar el riesgo de pérdida, de lo contrario la pérdida única puede ser grande.

Direcciones para la optimización de la estrategia

Para reducir los riesgos y mejorar la rentabilidad, la estrategia puede optimizarse en los siguientes aspectos:

  1. Combinar indicadores de volatilidad como el ATR para ajustar los parámetros N y EMA en función de la volatilidad del mercado, evitando señales excesivamente inválidas en los mercados de rango.

  2. Añadir análisis de volumen para filtrar las fallas en condiciones de alto volumen.

  3. Combinar líneas de tendencia y niveles clave de soporte/resistencia para determinar la dirección de la tendencia y la autenticidad del avance.

  4. Añadir análisis de marcos de tiempo múltiples para evitar juicios erróneos en un solo marco de tiempo.

  5. Añadir módulos de reconocimiento de patrones para revertir posiciones de manera oportuna cuando aparezcan señales significativas de reversión.

  6. Optimizar las estrategias de stop loss basadas en la volatilidad del mercado y la preferencia de riesgo.

  7. Añadir un stop loss de seguimiento, un stop loss móvil, etc. para bloquear las ganancias y evitar la devolución.

Resumen de las actividades

Esta estrategia juzga la dirección de la tendencia en función de la acción del precio. La lógica es clara y los resultados de las pruebas de retroceso son buenos. Se puede aplicar ampliamente al comercio de criptomonedas. Pero también hay algunas limitaciones. Debe combinarse con stop loss y optimizaciones para reducir el riesgo. En general, esta estrategia proporciona una idea simple y práctica para el comercio cuantitativo y vale la pena aprender. Con optimizaciones y combinaciones continuas, se pueden lograr retornos excedentes estables.


/*backtest
start: 2023-08-20 00:00:00
end: 2023-09-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("trend detect", overlay=false)


lenght = input(34)
ema_smooth = input(5)

delt = high - close
height = high - low

color_plot=black
state=0

if delt > height/3*2
    state := 1
    color_plot := red
else
    if delt > height/3
        state := 2
        color_plot := blue
    else 
        state := 3
        color_plot := green
//plot(state, color=color_plot, style=histogram)
percOfType(len, state_for_count) =>
    num = 0
    for i=1 to len
        if state[i]==state_for_count
            num := num+1
    num/len*100
    
rise = ema(percOfType(lenght, 3), ema_smooth)
fall = ema(percOfType(lenght, 1), ema_smooth)
plot(rise, color = green)
plot(ema(percOfType(lenght, 2), ema_smooth), color = blue)
plot(fall, color = red)
plot(10, color=black)
plot(60, color=black)

longCondition = crossover(rise, fall)
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

shortCondition = crossunder(rise, fall)
if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)

Más.