Sistema de negociación de retroceso de Fibonacci con marco temporal avanzado y ruptura condicional de máximos y mínimos

HTF FIBO HL MA BB RSI
Fecha de creación: 2024-11-28 15:01:25 Última modificación: 2024-11-28 15:01:25
Copiar: 0 Número de Visitas: 456
1
Seguir
1617
Seguidores

Sistema de negociación de retroceso de Fibonacci con marco temporal avanzado y ruptura condicional de máximos y mínimos

Descripción general

La estrategia es un sistema de negociación avanzado que combina múltiples herramientas de análisis técnico para generar señales de negociación basadas principalmente en los niveles de retracción de Fibonacci de los marcos de tiempo más altos y las condiciones de ruptura de precios altos y bajos. La estrategia calcula dinámicamente los datos de precios de los marcos de tiempo más altos, combinando los niveles de retracción de Fibonacci y las condiciones de ruptura de precios personalizadas, para formar un sistema de decisión de negociación completo.

Principio de estrategia

La lógica central de la estrategia se basa en tres pilares principales: primero, el análisis de precios en un marco de tiempo más alto, la creación de una perspectiva más macro del mercado mediante el cálculo de precios de apertura y cierre en períodos de tiempo más altos, como la línea del día. Luego, el cálculo dinámico de los niveles de retroceso de Fibonacci, el establecimiento de los puntos de resistencia de soporte clave basados en el intervalo de precios en el marco de tiempo alto.

Ventajas estratégicas

  1. Análisis multidimensional: combina algunos de los elementos más reconocidos en el análisis técnico, incluido el comportamiento de los precios, el seguimiento de tendencias y la resistencia al soporte.
  2. Adaptabilidad: los parámetros se pueden ajustar en función de las diferentes condiciones del mercado, incluidos el ciclo de tiempo, el período de retroceso y los niveles de Fibonacci.
  3. Mejor gestión de riesgos: Reducción del riesgo de brechas falsas mediante mecanismos de confirmación múltiple.
  4. Alta visibilidad: todos los precios clave se ven claramente en el gráfico para facilitar la toma de decisiones comerciales.
  5. Flexible: Se puede aplicar a diferentes tipos de transacciones y períodos de tiempo.

Riesgo estratégico

  1. Sensibilidad de los parámetros: Diferentes ajustes de retraso pueden causar una gran diferencia en la calidad de la señal.
  2. Dependencia de las condiciones del mercado: puede haber demasiadas falsas señales en un mercado convulso.
  3. Riesgo de retraso: el uso de datos retrospectivos puede hacer que se pierda el mejor punto de entrada en un mercado rápido.
  4. Riesgo de optimización excesiva: la optimización excesiva de los parámetros puede causar un mal rendimiento en el futuro.

Dirección de optimización de la estrategia

  1. Se recomienda agregar indicadores como ATR o Bollinger Bandwidth para filtrar los períodos de baja volatilidad.
  2. Filtro de tendencia de integración: Se puede agregar un sistema lineal para confirmar la dirección de la tendencia general.
  3. Optimización del tiempo de entrada: puede combinarse con indicadores de dinámica como el RSI para mejorar el tiempo de entrada.
  4. Ajuste de parámetros dinámicos: introducción de un mecanismo de adaptación para ajustar automáticamente los parámetros según las condiciones del mercado.
  5. Control de riesgo mejorado: añade un objetivo de stop loss y ganancias dinámicas.

Resumir

Se trata de un sistema de negociación bien diseñado, que combina varias herramientas de análisis técnico clásico para crear una estrategia de negociación práctica con una base teórica. La mayor característica de esta estrategia es que puede proporcionar señales de negociación más fiables a través de un análisis multidimensional, mientras se mantiene la suficiente flexibilidad para adaptarse a diferentes entornos de mercado.

Código Fuente de la Estrategia
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-27 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Fibonacci Levels Strategy with High/Low Criteria", overlay = true)

// Kullanıcıdan yüksek zaman dilimini ve mum bilgilerini al
timeframe = input.timeframe(defval = "D", title = "Higher Time Frame")
currentlast = input.string(defval = "Last", title = "Current or Last HTF Candle", options = ["Current", "Last"])

// Kullanıcıdan en düşük ve en yüksek fiyat bakış sürelerini al
lowestLookback = input(20, "Lowest Price Lookback", tooltip="The strategy will BUY when the price crosses over the lowest it has been in the last X amount of bars")
highestLookback = input(10, "Highest Price Lookback", tooltip="If Take-Profit is not checked, the strategy will SELL when the price crosses under the highest it has been in the last X amount of bars")

// Fibonacci seviyeleri ayarları
level0 = input.float(defval = 0.000, title = "Level 0")
level1 = input.float(defval = 0.236, title = "Level 1")
level2 = input.float(defval = 0.382, title = "Level 2")
level3 = input.float(defval = 0.500, title = "Level 3")
level4 = input.float(defval = 0.618, title = "Level 4")
level5 = input.float(defval = 0.786, title = "Level 5")
level100 = input.float(defval = 1.000, title = "Level 100")

// HTF mumlarını hesapla
newbar = ta.change(time(timeframe)) != 0 
var float htfhigh = high
var float htflow = low
var float htfopen = open
float htfclose = close
var counter = 0

if newbar
    htfhigh := high
    htflow := low
    htfopen := open
    counter := 0
else
    htfhigh := math.max(htfhigh, high)
    htflow := math.min(htflow, low)
    counter += 1

var float open_ = na
var float high_ = na
var float low_ = na
var float close_ = na
if currentlast == "Last" and newbar
    open_ := htfopen[1]
    high_ := htfhigh[1]
    low_ := htflow[1]
    close_ := htfclose[1]
else if currentlast == "Current"
    open_ := htfopen
    high_ := htfhigh
    low_ := htflow
    close_ := htfclose

// Fibonacci seviyelerini hesapla
var float[] fibLevels = array.new_float(6)
array.set(fibLevels, 0, open_ + (high_ - low_) * level0)
array.set(fibLevels, 1, open_ + (high_ - low_) * level1)
array.set(fibLevels, 2, open_ + (high_ - low_) * level2)
array.set(fibLevels, 3, open_ + (high_ - low_) * level3)
array.set(fibLevels, 4, open_ + (high_ - low_) * level4)
array.set(fibLevels, 5, open_ + (high_ - low_) * level5)

// Fibonacci seviyelerini grafik üzerine çiz
plot(array.get(fibLevels, 0), color=color.new(color.blue, 75), title="Fibonacci Level 0")
plot(array.get(fibLevels, 1), color=color.new(color.green, 75), title="Fibonacci Level 1")
plot(array.get(fibLevels, 2), color=color.new(color.red, 75), title="Fibonacci Level 2")
plot(array.get(fibLevels, 3), color=color.new(color.orange, 75), title="Fibonacci Level 3")
plot(array.get(fibLevels, 4), color=color.new(color.teal, 75), title="Fibonacci Level 4")
plot(array.get(fibLevels, 5), color=color.new(color.navy, 75), title="Fibonacci Level 5")

// En düşük ve en yüksek fiyat kriterlerini hesapla
lowcriteria = ta.lowest(low, lowestLookback)[1]
highcriteria = ta.highest(high, highestLookback)[1]

plot(highcriteria, color=color.green, title="Highest Price Criteria")
plot(lowcriteria, color=color.red, title="Lowest Price Criteria")

// Fibonacci seviyeleri ile ticaret sinyalleri oluştur
longCondition = close > lowcriteria and close > array.get(fibLevels, 3) // En düşük kriterin ve Fibonacci seviyesinin üstüne çıkarsa alım
shortCondition = close < highcriteria and close < array.get(fibLevels, 3) // En yüksek kriterin ve Fibonacci seviyesinin altına düşerse satış

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

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