Estrategia comercial de reconocimiento de patrones de línea K combinada de múltiples períodos

JSC CP TS
Fecha de creación: 2024-12-11 11:04:35 Última modificación: 2024-12-11 11:04:35
Copiar: 0 Número de Visitas: 480
1
Seguir
1617
Seguidores

Estrategia comercial de reconocimiento de patrones de línea K combinada de múltiples períodos

Descripción general

La estrategia es un sistema de negociación automático basado en la identificación de formas de K. Integra las diez formas clásicas de K, que incluyen cinco formas de avance (la línea de la paloma, el trago de la cabeza, el trago de la penetración, la estrella del amanecer y los tres soldados blancos) y cinco formas de avance (la línea de la columna, el trago de la cabeza, la nube del cielo, la estrella del crepúsculo y los tres soldados negros). La estrategia proporciona a los comerciantes señales de cambio de mercado potenciales y oportunidades de negociación mediante la identificación y el análisis en tiempo real de estas formas.

Principio de estrategia

El núcleo de la estrategia es la identificación precisa de las diversas formas de la línea K mediante la programación. Cada forma tiene su propia definición matemática y su propio juicio condicional:

  1. Para las formas de una sola línea K (por ejemplo, el cordón de cuello, el cordón suspendido), se juzga principalmente en función de la relación proporcional entre la entidad y la línea de sombra
  2. Para las formas de dos líneas K (como líneas de absorción, líneas de penetración), se juzga mediante la comparación de las relaciones de posición de precios de apertura y cierre de dos líneas K adyacentes
  3. Para las tres formas de la línea K (como los tres soldados blancos, los tres pájaros negros), se necesita satisfacer simultáneamente la dirección de movimiento y la relación de posición de las tres líneas K consecutivas. Las políticas permiten al usuario la flexibilidad de configurar los parámetros para activar o desactivar la identificación de determinadas formas.

Ventajas estratégicas

  1. Comprehensividad: cubre las 10 formas más representativas de la línea K, capaz de capturar diferentes tipos de señales de cambio de mercado
  2. Flexibilidad: los usuarios pueden elegir libremente la combinación de formas que necesitan ser identificadas, dependiendo del entorno del mercado y el estilo de negociación individual
  3. Visualización: mediante un claro sistema de marcado, se muestra de forma intuitiva la ubicación y el tipo de aparición de las formas
  4. Automatización: proceso de juicio totalmente programado, evitando la subjetividad y emocionalidad de los juicios humanos
  5. Utilidad: claridad de la lógica de la estrategia para su uso en combinación con otros indicadores técnicos o sistemas de negociación

Riesgo estratégico

  1. Riesgo de retraso: la confirmación de la forma de la línea K requiere esperar el cierre de la línea K, lo que puede provocar un ligero retraso en el tiempo de entrada
  2. Riesgo de falsas señales: en un mercado convulso, la simple dependencia de la forma de la línea K puede generar más falsas señales
  3. Dependencia del entorno del mercado: la estrategia funciona mejor en mercados con una tendencia clara, pero puede no funcionar en mercados horizontales
  4. Riesgo de configuración de parámetros: el reconocimiento de formas demasiado activado puede causar una señal demasiado densa, lo que afecta el juicio
  5. Riesgo de control de pérdidas: la estrategia en sí misma no incluye un mecanismo de control de pérdidas completo y requiere medidas adicionales de control de riesgos

Dirección de optimización de la estrategia

  1. Introducción de filtros de tendencia: en combinación con medias móviles o indicadores de tendencia, filtra las señales de contratiempo
  2. Aumento de la confirmación de la transacción: Validación de la forma mediante el cambio de la transacción
  3. Mejora en el control de riesgos: añadida de la función de fijación de objetivos de pérdidas y beneficios dinámicos
  4. Optimización de parámetros de configuración: ajustar los parámetros de parámetros de identificación de configuración para diferentes mercados y períodos de tiempo
  5. Añadir peso de forma: Configurar diferentes sistemas de peso de señal según la fiabilidad de las diferentes formas

Resumir

Esta es una estrategia de negociación de identificación de formas de K-lineas diseñada de manera racional y lógica. Implementa de manera programada los juicios de formas de K-lineas más comunes en el análisis técnico tradicional, proporcionando a los comerciantes una herramienta de negociación objetiva y sistematizada. Aunque tiene algunas limitaciones inherentes, la estrategia puede proporcionar una señal de referencia valiosa para la toma de decisiones comerciales mediante la optimización adecuada y la combinación con otras herramientas técnicas. El diseño modular de la estrategia también proporciona una buena base para la expansión de funciones y la optimización de rendimiento posteriores.

Código Fuente de la Estrategia
/*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)