Estrategia de trading cuantitativo basada en el retroceso de Fibonacci


Fecha de creación: 2023-11-21 15:57:11 Última modificación: 2023-11-21 15:57:11
Copiar: 1 Número de Visitas: 661
1
Seguir
1617
Seguidores

Estrategia de trading cuantitativo basada en el retroceso de Fibonacci

Descripción general

Esta estrategia se basa en el principio de retracción de Fibonacci. La estrategia utiliza la teoría de Fibonacci para determinar el punto clave de la reversión de precios, para ingresar adecuadamente antes de la reversión de la tendencia y para obtener ganancias excedentarias por encima del margen mayor.

El principio

La estrategia primero calcula los máximos y mínimos de los últimos 50 días y obtiene las subidas y bajadas de los precios. Luego calcula la posición de retracción de los precios correspondientes en función de los tres niveles clave de Fibonacci: 0.236, 0.382 y 0.618. Hacer más cuando el precio sube y se acerca al nivel de 0.618 (el punto de separación del oro); cerrar posiciones cuando el precio baja y se acerca al nivel de 0.236.

La estrategia se basa en la teoría de la retracción de Fibonacci. Un número cualquiera de la secuencia de Fibonacci es aproximadamente igual a la proporción de los dos primeros números, y esta proporción se acerca a 0.618. La teoría de la retracción de Fibonacci considera que cuando el precio se acerca a los niveles de 0.382 o 0.618 después de una caída, es muy probable que se produzca una reversión.

Las ventajas

Esta es una estrategia de negociación de travesía más típica. Su mayor ventaja es que puede determinar con anticipación los puntos clave de la reversión de los precios, entrando adecuadamente antes de que se produzca una reversión de la tendencia. Además, la teoría de Fibonacci es ampliamente utilizada en el análisis técnico, lo que le da a esta estrategia una cierta base académica.

El riesgo

El principal riesgo de esta estrategia es que continúe operando después de que el precio rompa la posición de retiro de Fibonacci, lo que conlleva el riesgo de una expansión de las pérdidas. Además, ninguna estrategia de negociación basada en el juicio empírico puede evitar por completo las pérdidas causadas por un juicio erróneo.

Para controlar el riesgo, se puede establecer una posición de stop loss y una salida de stop loss cuando la pérdida se extiende a un cierto nivel. También se puede ajustar adecuadamente la posición de la retirada de Fibonacci según las condiciones del mercado, para que la señal de negociación sea más confiable.

Dirección de optimización

La estrategia puede ser optimizada en los siguientes aspectos:

  1. El ajuste dinámico de los retiros de Fibonacci permite establecer diferentes parámetros en diferentes fases del mercado, lo que hace que la negociación sea más flexible.

  2. Filtrado en combinación con otros indicadores, como el aumento de la cantidad de transacciones, el uso de líneas uniformes, etc., para que la señal sea más confiable.

  3. Optimizar las estrategias de detención de pérdidas y controlar mejor el riesgo mediante el seguimiento de las detenciones y las detenciones por intervalos;

  4. Prueba de ciclos de datos más largos para verificar la estabilidad de la estrategia; ajuste el tiempo de tenencia para maximizar los beneficios.

Resumir

Esta estrategia se basa en la teoría de Fibonacci para determinar el punto de inflexión del precio y es una estrategia de comercio de tipo cruzado típica. Con una base de análisis técnico, puede aprovechar las oportunidades de cambio de precio con anticipación. Pero también existe el riesgo de una cierta probabilidad de pérdida.

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

//@version=5
strategy("斐波那契回撤交易策略", overlay=true, initial_capital=10000)

// 参数
length = input(50, title="斐波那契周期长度")
fib1 = input(0.236, title="斐波那契水平1")
fib2 = input(0.382, title="斐波那契水平2")
fib3 = input(0.618, title="斐波那契水平3")

// 计算斐波那契水平
highLevel = ta.highest(high, length)
lowLevel = ta.lowest(low, length)
range1 = highLevel - lowLevel
fibLevel1 = highLevel - range1 * fib1
fibLevel2 = highLevel - range1 * fib2
fibLevel3 = highLevel - range1 * fib3

// 条件
longCondition = ta.crossover(close, fibLevel3)
shortCondition = ta.crossunder(close, fibLevel1)

// 下单
strategy.entry("Buy", strategy.long, when=longCondition)
strategy.close("Buy", when=shortCondition)

// 图表标记
plot(fibLevel1, title="Fib 0.236", color=color.red)
plot(fibLevel2, title="Fib 0.382", color=color.orange)
plot(fibLevel3, title="Fib 0.618", color=color.green)