Esta estrategia calcula los canales de expansión de Fibonacci basados en una media móvil para identificar áreas clave de soporte y resistencia y ayudar a los operadores a anticipar posibles puntos de inversión en el mercado.
El núcleo de esta estrategia es calcular tres canales de Keltner basados en una media móvil, que ayudan a determinar los límites superior e inferior de los canales de Fibonacci. Los niveles de expansión de Fibonacci predeterminados utilizados son 1.618, 2.618 y 4.236.
Al analizar la acción del precio, los operadores pueden centrarse en las bandas de Fibonacci extremas, que son los límites superior e inferior de las bandas. Si los precios se negocian fuera de las bandas durante unas pocas barras y luego regresan al interior, puede indicar una reversión potencial. Este patrón sugiere que el precio ha desviado temporalmente de su rango habitual y podría deberse a una corrección.
Para mejorar la precisión del indicador de Bandas de Fibonacci, los operadores a menudo utilizan múltiples marcos de tiempo. Al alinear las señales a corto plazo con el escenario del marco de tiempo más amplio, los operadores pueden obtener una mejor comprensión de la tendencia general del mercado.
Además de identificar posibles reversiones, los operadores también pueden usar el indicador de bandas de Fibonacci para determinar los puntos de entrada y salida.
Las principales ventajas de esta estrategia son las siguientes:
Capaz de identificar áreas clave de soporte y resistencia para ayudar a predecir los puntos de inversión de precios.
Mejora la precisión de las señales de negociación cuando se combina con el análisis de marcos de tiempo múltiples.
Puede identificar claramente los puntos de entrada y salida.
Puede medir la fuerza y la dirección de la tendencia del mercado analizando la pendiente de la línea media.
Utiliza las proporciones naturales basadas en la teoría de Fibonacci para identificar los niveles clave de precios.
Los principales riesgos de esta estrategia son:
Al igual que todos los indicadores de análisis técnico, la estrategia no puede predecir la acción de los precios y las reversiones con un 100% de precisión.
Los ajustes incorrectos o subjetivos de los niveles de extensión de Fibonacci y los parámetros del canal de Keltner pueden afectar a la fiabilidad de la señal.
Los precios pueden romper las bandas de Fibonacci y seguir corriendo, lo que resulta en pérdidas.
El análisis de marcos de tiempo múltiples puede no ser siempre aplicable.
Las señales pueden ser menos fiables en mercados de alta volatilidad o baja liquidez.
Para mitigar estos riesgos, valida las señales con otros indicadores como el RSI, ajusta los parámetros para adaptarse a las diferentes condiciones del mercado, usa stop losses para controlar el riesgo por operación.
Esta estrategia se puede optimizar de varias maneras:
Prueba de diferentes tipos y longitudes de parámetros para optimizar la media móvil y los canales de Keltner para adaptarse mejor a las propiedades estadísticas de diferentes mercados.
Prueba otras áreas clave de Fibonacci como 0.5 o 0.786 como zonas de extensión para las bandas de Fibonacci.
Combinar señales de entrada con patrones de precios, volumen u otros indicadores para confirmar.
Optimice las estrategias de stop loss para salir temprano cuando la tendencia se invierta.
Optimización de las reglas de entrada y salida de las pruebas posteriores.
En resumen, la estrategia basada en el canal de Fibonacci para identificar áreas clave de soporte / resistencia para el comercio de inversión de velas es un enfoque efectivo para aprovechar los principios de la proporción natural para guiar las decisiones comerciales. La estrategia ha mostrado un rendimiento robusto en varias condiciones de mercado.
/*backtest start: 2023-10-21 00:00:00 end: 2023-11-20 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // ____ __ ___ ________ ___________ ___________ __ ____ ___ // / __ )/ / / | / ____/ //_/ ____/ |/_ __< / // / / __ |__ \ // / __ / / / /| |/ / / ,< / / / /| | / / / / // /_/ / / __/ / // / /_/ / /___/ ___ / /___/ /| / /___/ ___ |/ / / /__ __/ /_/ / __/ // /_____/_____/_/ |_\____/_/ |_\____/_/ |_/_/ /_/ /_/ \____/____/ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © blackcat1402 //@version=5 strategy('[blackcat] L2 Fibonacci Bands', overlay=true) // Define the moving average type and length maType = input.string(title='MA Type', defval='WMA', options=['SMA', 'EMA', 'WMA', 'HMA']) maLength = input.int(title='MA Length', defval=233, minval=1) src = input(title='Data Source', defval=hl2) // Define the Fibonacci expansion levels fib1 = input.float(title='Fibonacci Level 1', defval=1.618, minval=0) fib2 = input.float(title='Fibonacci Level 2', defval=2.618, minval=0) fib3 = input.float(title='Fibonacci Level 3', defval=4.236, minval=0) // Calculate the moving average ma = maType == 'SMA' ? ta.sma(src, maLength) : maType == 'EMA' ? ta.ema(src, maLength) : maType == 'WMA' ? ta.wma(src, maLength) : maType == 'HMA' ? ta.hma(src, maLength) : na // Calculate the Keltner Channels kcMultiplier = input.int(title='Keltner Channel Multiplier', defval=2, minval=0) kcLength = input.int(title='Keltner Channel Length', defval=89, minval=1) kcTrueRange = ta.tr kcAverageTrueRange = ta.sma(kcTrueRange, kcLength) kcUpper = ma + kcMultiplier * kcAverageTrueRange kcLower = ma - kcMultiplier * kcAverageTrueRange // Calculate the Fibonacci Bands fbUpper1 = ma + fib1 * (kcUpper - ma) fbUpper2 = ma + fib2 * (kcUpper - ma) fbUpper3 = ma + fib3 * (kcUpper - ma) fbLower1 = ma - fib1 * (ma - kcLower) fbLower2 = ma - fib2 * (ma - kcLower) fbLower3 = ma - fib3 * (ma - kcLower) // Plot the Fibonacci Bands plot(ma, title='Midband', color=color.new(color.blue, 0), linewidth=2) plot(fbUpper1, title='Upper Band 1', color=color.new(color.green, 0), linewidth=1) plot(fbUpper2, title='Upper Band 2', color=color.new(color.green, 0), linewidth=1) plot(fbUpper3, title='Upper Band 3', color=color.new(color.green, 0), linewidth=1) plot(fbLower1, title='Lower Band 1', color=color.new(color.red, 0), linewidth=1) plot(fbLower2, title='Lower Band 2', color=color.new(color.red, 0), linewidth=1) plot(fbLower3, title='Lower Band 3', color=color.new(color.red, 0), linewidth=1) // Define the entry and exit conditions longCondition = ta.crossover(src, fbUpper3) and ta.rsi(src, 14) > 60 shortCondition = ta.crossunder(src, fbLower3) and ta.rsi(src, 14) < 40 exitCondition = ta.crossover(src, ma) or ta.crossunder(src, ma) // Execute the trades if longCondition strategy.entry('Long', strategy.long) if shortCondition strategy.entry('Short', strategy.short) if exitCondition strategy.close_all()