Reconocimiento de patrones múltiples y estrategia comercial de percentiles SR

SR BP TP FIBO ATR SMA
Fecha de creación: 2024-12-05 16:30:14 Última modificación: 2024-12-05 16:30:14
Copiar: 0 Número de Visitas: 400
1
Seguir
1617
Seguidores

Reconocimiento de patrones múltiples y estrategia comercial de percentiles SR

Descripción general

Es un sistema de estrategias que combina la identificación de formas de análisis técnico múltiple y los niveles de resistencia de soporte. La estrategia se basa principalmente en la identificación de formas de doble fondo (formas de fondo de Adán y Eva), en la combinación de niveles de regresión de Fibonacci y líneas de resistencia de soporte para la toma de decisiones comerciales. El núcleo de la estrategia consiste en mejorar la fiabilidad de las señales de negociación mediante la verificación de indicadores técnicos multidimensionales, mientras que los niveles de resistencia de soporte son una referencia importante para el control de riesgos.

Principio de estrategia

La estrategia utiliza un mecanismo de triple verificación para la toma de decisiones comerciales: primero, mediante el uso de un algoritmo específico para identificar las formas de doble fondo, que incluyen el “fondo de Adán” más afilado y el “fondo de Eva” más redondeado; segundo, utilizando los niveles de regresión de Fibonacci ((0.618 y 1.618) para determinar la zona de destino; y finalmente, mediante la verificación de los niveles de resistencia de soporte para confirmar la transacción. La generación de señales comerciales requiere que se cumplan las condiciones de identificación de la forma, el nivel de Fibonacci y el nivel de resistencia de soporte. En concreto, se activa una señal múltiple cuando el nivel de resistencia de soporte es superior a la posición de extensión de Fibonacci de 1.618 y se activa una señal de aire cuando el nivel de resistencia de soporte es inferior a la posición de regresión de Fibonacci de 0.618.

Ventajas estratégicas

  1. El mecanismo de verificación múltiple mejora considerablemente la fiabilidad de las señales de transacción
  2. Capturar con precisión los puntos de inflexión del mercado a través de algoritmos de reconocimiento de formas
  3. La combinación de los niveles de Fibonacci proporciona una zona de objetivo precisa
  4. La verificación de niveles de resistencia de soporte aumenta la seguridad de las transacciones
  5. Los parámetros de la estrategia son altamente ajustables y pueden adaptarse a diferentes entornos de mercado.
  6. Alto grado de automatización, reducción de las diferencias de juicio subjetivo

Riesgo estratégico

  1. El retraso en el reconocimiento de formas podría afectar el tiempo de entrada
  2. Las señales falsas en los mercados de alta volatilidad
  3. La efectividad de los niveles de resistencia de soporte está influenciada por el entorno del mercado
  4. La configuración incorrecta de los parámetros puede conducir a un exceso de comercio
  5. Se necesita un ciclo de observación más largo y se pueden perder oportunidades rápidas.

Dirección de optimización de la estrategia

  1. Introducción de indicadores de volatilidad para filtrar el entorno del mercado
  2. Aumentar el filtro de tendencia para mejorar la precisión del reconocimiento de formas
  3. Método de cálculo para optimizar el nivel de resistencia de soporte
  4. Adición de índices de transacción como confirmación auxiliar
  5. Desarrollo de un mecanismo más flexible para detener los daños
  6. Introducción de algoritmos de aprendizaje automático para mejorar la precisión del reconocimiento de formas

Resumir

La estrategia construye un sistema de negociación relativamente completo a través de la aplicación integral de múltiples técnicas de análisis, como la identificación de formas, los niveles de Fibonacci y las líneas de resistencia de soporte. La ventaja de la estrategia es que su mecanismo de verificación múltiple ofrece una alta fiabilidad, y su ajustabilidad también le permite adaptarse a diferentes entornos de mercado. Aunque existen algunos riesgos inherentes, la estrategia espera obtener un rendimiento estable en el comercio real mediante la optimización y el perfeccionamiento continuos.

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