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

Reconocimiento de patrones múltiples y estrategia de negociación a nivel de SR

El autor:¿ Qué pasa?, Fecha: 2024-12-05 16:30:14
Las etiquetas:El número de personasPresión arterialTPFIBOEl ATRLa SMA

img

Resumen general

Este es un sistema de estrategia comercial integral que combina reconocimiento de patrones de análisis técnico múltiples con niveles de soporte y resistencia. La estrategia funciona principalmente mediante la identificación de patrones de doble fondo (fundos de Adán y Eva), la integración de niveles de retroceso de Fibonacci y la utilización de líneas de soporte y resistencia para las decisiones comerciales. La fortaleza principal radica en su verificación de indicadores técnicos multidimensionales, que mejora la confiabilidad de las señales comerciales mientras utiliza los niveles de soporte y resistencia como referencias cruciales para el control de riesgos.

Principios de estrategia

La estrategia emplea un mecanismo de triple verificación para las decisiones comerciales: primero, identifica patrones de doble fondo a través de algoritmos específicos, incluido el más agudo bottom de Adam y el más redondeado bottom de Eva; segundo, utiliza niveles de retroceso de Fibonacci (0.618 y 1.618) para determinar las zonas objetivo; finalmente, confirma las señales comerciales a través de la verificación de niveles de soporte y resistencia. Las señales comerciales se generan solo cuando se cumplen simultáneamente las condiciones de reconocimiento de patrones, niveles de Fibonacci y niveles de soporte / resistencia. Específicamente, se activa una señal larga cuando el nivel de soporte / resistencia está por encima de la extensión de 1.618 Fibonacci, mientras que se activa una señal corta cuando el nivel de soporte / resistencia está por debajo de la extensión de 0.618 Fibonacci.

Ventajas estratégicas

  1. Los mecanismos de verificación múltiples mejoran en gran medida la fiabilidad de las señales de negociación
  2. Los algoritmos de reconocimiento de patrones capturan con precisión los puntos de inflexión del mercado
  3. Los niveles de Fibonacci proporcionan zonas objetivo precisas
  4. La verificación del nivel de soporte/resistencia aumenta la seguridad de las operaciones
  5. Parámetros muy ajustables que se adaptan a las diferentes condiciones del mercado
  6. El alto grado de automatización reduce el sesgo subjetivo de juicio

Riesgos estratégicos

  1. El reconocimiento de patrones puede tener latencia, lo que afecta el tiempo de entrada
  2. En los mercados altamente volátiles pueden producirse señales falsas
  3. La eficacia del nivel de soporte/resistencia está influenciada por las condiciones del mercado
  4. La configuración incorrecta de los parámetros puede llevar a un exceso de negociación
  5. Requiere períodos de observación más largos, potencialmente perdiendo oportunidades rápidas

Direcciones para la optimización de la estrategia

  1. Introducir indicadores de volatilidad para filtrar las condiciones del mercado
  2. Añadir filtros de tendencia para mejorar la precisión del reconocimiento de patrones
  3. Optimizar los métodos de cálculo del nivel de soporte/resistencia
  4. Incluir indicadores de volumen como confirmación
  5. Desarrollar mecanismos más flexibles para el stop loss y el take profit
  6. Implementar algoritmos de aprendizaje automático para mejorar la precisión del reconocimiento de patrones

Resumen de las actividades

Esta estrategia construye un sistema comercial relativamente completo mediante la utilización integral de múltiples métodos de análisis técnico, incluido el reconocimiento de patrones, los niveles de Fibonacci y las líneas de soporte / resistencia. Su fortaleza radica en la alta confiabilidad proporcionada por múltiples mecanismos de verificación, mientras que su adaptabilidad permite la adaptación a diferentes condiciones del mercado. Aunque existen algunos riesgos inherentes, a través de la optimización y mejora continua, la estrategia muestra promesa de un rendimiento estable en el comercio real. Al incorporar indicadores técnicos adicionales y algoritmos de optimización, hay un espacio significativo para la mejora del rendimiento.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-04 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Double Bottom with Support/Resistance Strategy - Aynet", overlay=true)

// Inputs
lookbackPeriod = input(21, "Lookback Period")
swingLowThreshold = input(1.5, "Swing Low Threshold")
fibLevel1 = input(0.618, "Fibonacci Level 1")
fibLevel3 = input(1.618, "Fibonacci Level 2")
srPeriod = input(21, "Support/Resistance Period") 
srThreshold = input(3, "Support/Resistance Touch Points")

// Support/Resistance Function
get_sr_level(idx) =>
    var level = 0.0
    var count = 0
    
    if bar_index % srPeriod == 0
        highCount = 0
        lowCount = 0
        for i = 0 to srPeriod - 1
            if math.abs(high[i] - high) < (high * 0.001)
                highCount += 1
            if math.abs(low[i] - low) < (low * 0.001)
                lowCount += 1
                
        if highCount >= srThreshold
            level := high
            count := highCount
        if lowCount >= srThreshold
            level := low
            count := lowCount
            
    [level, count]

// Pattern Detection Functions
isSwingLow(src, left, right) =>
    isLow = true
    for i = 0 to left + right
        if src[i] < src[right]
            isLow := false
    isLow

getSpikeSharpness(index) =>
    priceRange = high[index] - low[index]
    bodyRange = math.abs(close[index] - open[index])
    sharpness = priceRange / bodyRange
    sharpness

// Pattern Variables
var float firstBottom = na
var float secondBottom = na
var bool isAdam = false
var bool isEve = false
var float level1Value = na
var float level3Value = na

// Pattern Detection
bottom = isSwingLow(low, lookbackPeriod, lookbackPeriod)
if bottom
    sharpness = getSpikeSharpness(0)
    if na(firstBottom)
        firstBottom := low
        isAdam := sharpness > swingLowThreshold
    else if low <= firstBottom * 1.02 and low >= firstBottom * 0.98
        secondBottom := low
        isEve := sharpness <= swingLowThreshold

// Calculate Fibonacci
if not na(secondBottom)
    highPoint = ta.highest(high, lookbackPeriod)
    fibDistance = highPoint - math.min(firstBottom, secondBottom)
    level1Value := math.min(firstBottom, secondBottom) + fibDistance * fibLevel1
    level3Value := math.min(firstBottom, secondBottom) + fibDistance * fibLevel3

// Get S/R Level
[srLevel, srCount] = get_sr_level(0)

// Trading Logic
longCondition = srLevel > level3Value
shortCondition = srLevel < level1Value

if longCondition
    strategy.entry("Long", strategy.long)

if shortCondition
    strategy.entry("Short", strategy.short)

// Reset Pattern
if high > ta.highest(high[1], lookbackPeriod)
    firstBottom := na
    secondBottom := na
    isAdam := false
    isEve := false
var table logo = table.new(position.top_right, 1, 1)
table.cell(logo, 0, 0, 'Double Bottom with Support/Resistance Strategy - Aynet', text_size=size.large, text_color=color.white)
// Plots
plot(level1Value, "0.236", color=color.rgb(245, 0, 0), style=plot.style_line)
plot(level3Value, "0.618", color=color.rgb(82, 166, 255), style=plot.style_line)
plot(srLevel, "S/R Level", color=color.white)

plotshape(bottom and not na(firstBottom) and na(secondBottom), "Adam Bottom", shape.circle, location.belowbar, color.green)
plotshape(bottom and not na(secondBottom), "Eve Bottom", shape.circle, location.belowbar, color.yellow)

Relacionados

Más.