Estrategia de combinación de patrones de velas y ruptura de EMA en múltiples marcos temporales


Fecha de creación: 2024-02-21 15:00:06 Última modificación: 2024-02-21 15:00:06
Copiar: 0 Número de Visitas: 585
1
Seguir
1617
Seguidores

Estrategia de combinación de patrones de velas y ruptura de EMA en múltiples marcos temporales

Descripción general

Esta estrategia combina los indicadores de EMA del marco temporal múltiple con el juicio de la forma de la línea K para lograr una captura de señal de línea larga y una salida de pérdida más sensible.

Principio de estrategia

La estrategia se basa en los siguientes indicadores:

  1. EMA mediana: utiliza 13 ciclos, 21 ciclos 2 grupos de EMA, para determinar si el precio se rompe y forma una señal de negociación.

  2. Forma de la línea K: determina la dirección de la entidad de la línea K, se utiliza en combinación con el indicador EMA, se filtra la falsa ruptura.

  3. Resistencia de soporte: Construido con el punto más alto de 10 ciclos más recientes, se juzga que la ruptura mejora la fiabilidad de la señal a través de la zona.

  4. Aumentar el punto: 120 períodos de cierre de cerrar el precio sobre el precio de apertura de abrir el juicio como un punto de aumento, como un juicio auxiliar.

Las reglas de generación de señales de transacción son:

  1. Señales múltiples: el EMA rápido se rompe hacia arriba con el EMA lento, y para la línea K de la línea izquierda, se cierra la bodega vacía.

  2. Señales de cabeza vacía: el EMA rápido cae por encima del EMA lento, y para la línea K de la línea negativa, se elimina el exceso de posiciones.

  3. Expulsión de pérdidas: cuando se emite la señal de contragolpe, se retira de la posición actual.

Ventajas estratégicas

  1. Los indicadores de la EMA en marcos temporales múltiples son más fiables para juzgar las tendencias y evitar falsas rupturas.
  2. El filtro en combinación con la dirección de la entidad de la línea K permite identificar tendencias con mayor precisión.
  3. Aumentar el tiempo de juicio y apoyar el juicio de resistencia para asegurar la calidad de la señal.
  4. El uso de la contra mano como método de detención de pérdidas reduce el riesgo de pérdidas.

Riesgo estratégico

  1. La brecha no válida conlleva el riesgo de pérdidas. Incluso si se introducen los juicios de las entidades de la línea K y el EMA de los marcos de tiempo múltiples, no se puede evitar por completo el impacto de la brecha no válida en la estrategia.
  2. El riesgo de selección de parámetros. La configuración incorrecta de parámetros como el ciclo EMA, el ciclo de juicio de la línea K, puede causar una disminución de la calidad de la señal.
  3. Riesgo de fallo de resistencia de soporte. El fallo de resistencia de soporte histórico es común, lo que también puede causar que no haya suficiente potencia cuando se genera la señal.
  4. Riesgo de fallo horario. Las situaciones horarias son cambiantes y no se puede confiar completamente en el juicio horario.

El riesgo se puede mitigar evitando la optimización excesiva, seleccionando cuidadosamente los parámetros y controlando estrictamente el tamaño de la posición.

Dirección de optimización de la estrategia

  1. Introducción de un modelo de aprendizaje automático para ayudar a juzgar. Se puede entrenar a un modelo de clasificación para juzgar la dirección de las entidades de la línea K, lo que mejora la precisión del juicio.
  2. Aumentar los mecanismos de amortización de pérdidas, como el trailing stop o el stop basado en la volatilidad.
  3. Combinado con el análisis de la emoción. Introducir un cierto mecanismo de juicio de la opinión de los medios de comunicación para evitar que las noticias negativas importantes influyan en la estrategia.
  4. Añadir módulos de gestión de posiciones, como la introducción de la proporción de posiciones fijas o el módulo de ajuste de posiciones basado en la administración de fondos.

Resumir

Esta estrategia integra el indicador de EMA del marco temporal múltiple con el juicio de la entidad de la línea K, lo que permite un juicio de tendencias más confiable. Al mismo tiempo, combina la resistencia de soporte con la situación de tiempo para ayudar a garantizar la calidad de la señal.

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

//@version=2
strategy(title='ck - CryptoSniper Longs Only (Strategy)', shorttitle='ck - CryptoSniper Longs (S) v1', overlay=true, precision=2, commission_value=0.25, default_qty_type=strategy.percent_of_equity, pyramiding=0, default_qty_value=100, initial_capital=100)

open_long = 0
close_position = 0
last_long=close
last_short=close

//Candle body resistance Channel-----------------------------//
len = 34
src = input(close, title="Candle body resistance Channel")
out = sma(src, len)
last8h = highest(close, 13)
lastl8 = lowest(close, 13)
bearish = cross(close,out) == 1 and falling(close, 1)
bullish = cross(close,out) == 1 and rising(close, 1)
channel2=false

//-----------------Support and Resistance 
RST = input(title='Support / Resistance length:', defval=10) 
RSTT = valuewhen(high >= highest(high, RST), high, 0)
RSTB = valuewhen(low <= lowest(low, RST), low, 0)

//--------------------Trend colour ema------------------------------------------------// 
src0 = close, len0 = input(13, minval=1, title="EMA 1")
ema0 = ema(src0, len0)
direction = rising(ema0, 2) ? +1 : falling(ema0, 2) ? -1 : 0

//-------------------- ema 2------------------------------------------------//
src02 = close, len02 = input(21, minval=1, title="EMA 2")
ema02 = ema(src02, len02)
direction2 = rising(ema02, 2) ? +1 : falling(ema02, 2) ? -1 : 0

//=============Hull MA//
show_hma = false
hma_src = input(close, title="HullMA Source:")
hma_base_length = input(8, minval=1, title="HullMA Base Length:")
hma_length_scalar = input(5, minval=0, title="HullMA Length Scalar:")
hullma(src, length)=>wma(2*wma(src, length/2)-wma(src, length), round(sqrt(length)))

//============ signal Generator ==================================//
Period=input(title='Period', defval='120')
ch1 = request.security(syminfo.tickerid, Period, open)
ch2 = request.security(syminfo.tickerid, Period, close)

// Signals//
long = crossover(request.security(syminfo.tickerid, Period, close),request.security(syminfo.tickerid, Period, open))
short = crossunder(request.security(syminfo.tickerid, Period, close),request.security(syminfo.tickerid, Period, open))
last_long := long ? time : nz(last_long[1])
last_short := short ? time : nz(last_short[1])
long_signal = crossover(last_long, last_short) ? 1 : -1
short_signal = crossover(last_short, last_long) ? -1 : 1

if (long_signal == 1)
    strategy.entry("Long Open", strategy.long)

if (short_signal == -1)
    strategy.close("Long Open")
    
if (long_signal[1] == 1 and short_signal[1] == 1)
    open_long := 1
    close_position := 0

if (short_signal[1] == -1 and long_signal[1] == -1)
    open_long := 0
    close_position := 1

plotshape(open_long == 1, title="Open Long", location=location.belowbar, style=shape.triangleup, size=size.small, color=green, transp=10)
plotshape(close_position == 1, title="Close Long", location=location.abovebar, style=shape.triangledown, size=size.small, color=red, transp=10)
//plot(0, title="Trigger", color=white)

///////////////////////////////////////////////////////////////////////////////////////////