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

Estrategia de negociación combinada de reconocimiento de patrones de velas de varios plazos

El autor:¿ Qué pasa?, fecha: 2024-12-11 11:04:35
Las etiquetas:JSCEl CPTítulo de los productos

img

Resumen general

Esta estrategia es un sistema de negociación automatizado basado en el reconocimiento de patrones de velas. Integra diez patrones clásicos de velas, incluyendo cinco patrones alcistas (Martillo, Engulfing Bullish, Piercing Line, Morning Star y Three White Soldiers) y cinco patrones bajistas (Hanging Man, Engulfing Bearish, Dark Cloud Cover, Evening Star y Three Black Crows).

Principio de la estrategia

El núcleo de la estrategia radica en su implementación programática de un reconocimiento preciso de patrones de velas.

  1. Para los patrones de un solo candelabro (como Hammer, Hanging Man), el juicio se basa principalmente en la relación entre el cuerpo y la sombra
  2. Para los patrones de dos velas (como Engulfing, Piercing Line), el juicio se hace comparando las posiciones relativas de velas adyacentes precios de apertura y cierre
  3. Para los patrones de tres velas (como Tres Soldados Blancos, Tres Cuervos Negros), se deben cumplir simultáneamente múltiples condiciones con respecto a la dirección de la tendencia y las relaciones de posición. La estrategia permite a los usuarios habilitar o deshabilitar de manera flexible el reconocimiento de patrones específicos a través de la configuración de parámetros.

Ventajas estratégicas

  1. Comprehensividad: cubre los diez patrones de candelabros más representativos, capaces de capturar diferentes tipos de señales de inversión del mercado.
  2. Flexibilidad: Los usuarios pueden elegir libremente combinaciones de patrones basadas en las condiciones del mercado y el estilo personal de negociación
  3. Visualización: el sistema de marcado claro proporciona una visualización intuitiva de las ubicaciones y tipos de patrones
  4. Automatización: Proceso de juicio totalmente programado elimina el juicio humano subjetivo y emocional
  5. Práctica: una lógica de estrategia clara facilita la combinación con otros indicadores técnicos o sistemas de negociación

Riesgos estratégicos

  1. Riesgo de retraso: la confirmación del patrón requiere esperar al cierre de la vela, lo que podría causar ligeros retrasos en la entrada
  2. Riesgo de señales falsas: confiar únicamente en los patrones de candlesticks puede generar numerosas señales falsas en mercados agitados
  3. Dependencia del entorno del mercado: La estrategia tiene un mejor rendimiento en los mercados de tendencia, pero puede tener un rendimiento inferior en los mercados variados
  4. Riesgo de configuración de parámetros: permitir demasiados reconocimientos de patrones puede conducir a señales superpobladas que afectan el juicio
  5. El riesgo de control de pérdidas de parada: la estrategia carece de mecanismos integrales de control de pérdidas de parada, lo que requiere medidas adicionales de control de riesgos.

Direcciones para la optimización de la estrategia

  1. Implementar el filtrado de tendencias: combinar con medias móviles o indicadores de tendencia para filtrar las señales de tendencia contraria
  2. Añadir confirmación de volumen: validar la eficacia del patrón mediante cambios de volumen
  3. Mejorar el control de riesgos: añadir una funcionalidad dinámica de fijación de objetivos de stop-loss y ganancia
  4. Optimizar los parámetros de patrón: ajustar los parámetros de reconocimiento de patrones para diferentes mercados y plazos
  5. Añadir Peso de patrón: Configurar diferentes sistemas de ponderación de señales basados en la confiabilidad del patrón

Resumen de las actividades

Esta es una estrategia comercial de reconocimiento de patrones de velas bien diseñada y lógicamente clara. Implementa los juicios de patrones de velas más utilizados del análisis técnico tradicional a través de la programación, proporcionando a los operadores una herramienta de negociación objetiva y sistemática. Aunque tiene algunas limitaciones inherentes, a través de la optimización adecuada y la combinación con otras herramientas técnicas, esta estrategia puede proporcionar señales de referencia valiosas para las decisiones comerciales. El diseño modular de la estrategia también proporciona una buena base para la posterior expansión funcional y optimización del rendimiento.


/*backtest
start: 2024-11-10 00:00:00
end: 2024-12-09 08:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
// Author: Raymond Ngobeni
strategy('Candlestick Pattern Strategy [Ubaton]', 'Ubaton - Candlestick Pattern Strategy', overlay = true, max_labels_count = 500, max_lines_count = 500, max_boxes_count = 500)

// User Inputs: Enable/Disable Patterns
// Bullish Patterns
enableHammer = input.bool(true, "Show Hammer")
enableBullEngulfing = input.bool(true, "Show Bullish Engulfing")
enablePiercingLine = input.bool(true, "Show Piercing Line")
enableMorningStar = input.bool(true, "Show Morning Star")
enableThreeWhiteSoldiers = input.bool(true, "Show Three White Soldiers")

// Bearish Patterns
enableHangingMan = input.bool(true, "Show Hanging Man")
enableBearEngulfing = input.bool(true, "Show Bearish Engulfing")
enableDarkCloudCover = input.bool(true, "Show Dark Cloud Cover")
enableEveningStar = input.bool(true, "Show Evening Star")
enableThreeBlackCrows = input.bool(true, "Show Three Black Crows")

// Helper Functions
isHammer() =>
    bodySize = math.abs(open - close)
    shadowSize = low < math.min(open, close) ? math.min(open, close) - low : na
    shadowSize >= 2 * bodySize and high - math.max(open, close) <= bodySize

isBullishEngulfing() =>
    close[1] < open[1] and close > open and open <= close[1] and close >= open[1]

isPiercingLine() =>
    close[1] < open[1] and close > close[1] + (open[1] - close[1]) * 0.5 and close < open[1]

isMorningStar() =>
    close[2] < open[2] and math.abs(close[1] - open[1]) < (high[1] - low[1]) * 0.3 and close > open

isThreeWhiteSoldiers() =>
    close > open and close[1] > open[1] and close[2] > open[2] and open > close[1] and open[1] > close[2]

isHangingMan() =>
    bodySize = math.abs(open - close)
    shadowSize = low < math.min(open, close) ? math.min(open, close) - low : na
    shadowSize >= 2 * bodySize and high - math.max(open, close) <= bodySize and close < open

isBearishEngulfing() =>
    close[1] > open[1] and close < open and open >= close[1] and close <= open[1]

isDarkCloudCover() =>
    close[1] > open[1] and open > close[1] and close < open[1] and close < close[1] + (open[1] - close[1]) * 0.5

isEveningStar() =>
    close[2] > open[2] and math.abs(close[1] - open[1]) < (high[1] - low[1]) * 0.3 and close < open

isThreeBlackCrows() =>
    close < open and close[1] < open[1] and close[2] < open[2] and open < close[1] and open[1] < close[2]

// Detect Patterns
// Bullish
hammerDetected = enableHammer and isHammer()
bullEngulfDetected = enableBullEngulfing and isBullishEngulfing()
piercingDetected = enablePiercingLine and isPiercingLine()
morningStarDetected = enableMorningStar and isMorningStar()
threeWhiteDetected = enableThreeWhiteSoldiers and isThreeWhiteSoldiers()

// Bearish
hangingManDetected = enableHangingMan and isHangingMan()
bearEngulfDetected = enableBearEngulfing and isBearishEngulfing()
darkCloudDetected = enableDarkCloudCover and isDarkCloudCover()
eveningStarDetected = enableEveningStar and isEveningStar()
threeBlackDetected = enableThreeBlackCrows and isThreeBlackCrows()

// Plot Bullish Patterns
plotshape(enableHammer and hammerDetected, title="Hammer", location=location.belowbar, color=color.green, style=shape.labelup, text="Hammer")
plotshape(enableBullEngulfing and bullEngulfDetected, title="Bullish Engulfing", location=location.belowbar, color=color.green, style=shape.labelup, text="Engulf")
plotshape(enablePiercingLine and piercingDetected, title="Piercing Line", location=location.belowbar, color=color.green, style=shape.labelup, text="Piercing")
plotshape(enableMorningStar and morningStarDetected, title="Morning Star", location=location.belowbar, color=color.green, style=shape.labelup, text="Morning")
plotshape(enableThreeWhiteSoldiers and threeWhiteDetected, title="Three White Soldiers", location=location.belowbar, color=color.green, style=shape.labelup, text="3 Soldiers")

// Plot Bearish Patterns
plotshape(enableHangingMan and hangingManDetected, title="Hanging Man", location=location.abovebar, color=color.red, style=shape.labeldown, text="Hanging")
plotshape(enableBearEngulfing and bearEngulfDetected, title="Bearish Engulfing", location=location.abovebar, color=color.red, style=shape.labeldown, text="Engulf")
plotshape(enableDarkCloudCover and darkCloudDetected, title="Dark Cloud Cover", location=location.abovebar, color=color.red, style=shape.labeldown, text="Dark Cloud")
plotshape(enableEveningStar and eveningStarDetected, title="Evening Star", location=location.abovebar, color=color.red, style=shape.labeldown, text="Evening")
plotshape(enableThreeBlackCrows and threeBlackDetected, title="Three Black Crows", location=location.abovebar, color=color.red, style=shape.labeldown, text="3 Crows")

// Strategy Execution
if hammerDetected or bullEngulfDetected or piercingDetected or morningStarDetected or threeWhiteDetected
    strategy.entry("Bullish Entry", strategy.long)

if hangingManDetected or bearEngulfDetected or darkCloudDetected or eveningStarDetected or threeBlackDetected
    strategy.entry("Bearish Entry", strategy.short)

Relacionados

Más.