
La estrategia de seguimiento de tendencias dinámicas basada en el ángulo de Gansu es un método de negociación cuantitativa que combina la teoría de Gansu y los altos y bajos oscilantes. La estrategia utiliza el ángulo de Gansu para identificar las tendencias del mercado y generar señales de negociación cuando los precios rompen estas líneas angulares. El núcleo de la estrategia consiste en ajustar dinámicamente la línea de Gansu para que pueda adaptarse a los precios en diferentes entornos de mercado.
Identificación de puntos altos y bajos de oscilación: la estrategia utiliza un ciclo definido por el usuario (default 14) para identificar los puntos altos y bajos de oscilación. Estos puntos son la base para trazar las líneas de ángulo de Gandhi.
Calculación de la línea de ángulo de Gannett: basado en los puntos altos y bajos de oscilación identificados, la estrategia calcula la línea de ángulo de Gannett hacia arriba y hacia abajo respectivamente. El ángulo puede ser personalizado por el usuario y es de 45 grados por defecto.
Se generan señales de transacción:
Gestión de riesgos: La estrategia incorpora niveles de stop loss y stop loss que se pueden personalizar para controlar el margen de riesgo de cada operación.
Adaptabilidad dinámica: La estrategia puede adaptarse a diferentes entornos de mercado y fluctuaciones de precios mediante el ajuste continuo del punto de partida de la línea de ángulo de Gansu.
Seguimiento de tendencias: La estrategia es esencialmente un sistema de seguimiento de tendencias que ayuda a capturar los beneficios significativos de las grandes tendencias.
Gestión de riesgos: los mecanismos de stop loss y de suspensión incorporados ayudan a controlar el riesgo y a evitar que una sola transacción cause una pérdida excesiva.
Visualización: La estrategia muestra las líneas de ángulo de Gannett y las señales de negociación de forma intuitiva en el gráfico, lo que ayuda a los operadores a comprender la estructura del mercado y la lógica de la estrategia.
Flexibilidad: Varios parámetros ajustables (como el ángulo, la longitud del ciclo y el nivel de parada de pérdidas) permiten que la estrategia se adapte a diferentes variedades de operaciones y marcos de tiempo.
Riesgo de mercado en turbulencia: en mercados en discontinuidad o en turbulencia, las falsas brechas frecuentes pueden causar demasiadas señales erróneas y costos de transacción.
Riesgo de deslizamiento: en un mercado rápido, el precio de transacción real puede diferir significativamente del precio en el momento de la generación de la señal.
Riesgo de optimización excesiva: el ajuste excesivo de los parámetros para adaptarlos a los datos históricos puede causar que la estrategia no funcione bien en el futuro.
Riesgo de reversión de la tendencia: la estrategia puede generar pérdidas si se produce una reversión de la tendencia inicial.
Para reducir estos riesgos, se puede considerar:
Análisis de múltiples marcos de tiempo: la integración de información de tendencias de marcos de tiempo más altos puede mejorar la calidad de las señales de negociación.
Ajuste de ángulo dinámico: ajuste de ángulo de Gance en función de la fluctuación dinámica del mercado, lo que permite que la estrategia se adapte mejor a diferentes entornos de mercado.
Considerar el volumen de transacciones: el volumen de transacciones como indicador auxiliar puede aumentar la fiabilidad de la señal.
Optimización de aprendizaje automático: optimización dinámica de los parámetros de la estrategia utilizando algoritmos de aprendizaje automático para mejorar la adaptabilidad de la estrategia.
Filtración de correlación: En el comercio de variedades múltiples, considerar la correlación entre variedades puede reducir el riesgo sistémico.
Control de retiro: La introducción de un mecanismo de control de retiro basado en una curva de derechos y intereses puede proteger mejor el capital en caso de una gran reversión de la tendencia.
Estas orientaciones de optimización tienen como objetivo mejorar la solidez y la rentabilidad de las estrategias, a la vez que se reducen los riesgos inherentes.
La estrategia de trading de seguimiento de tendencias dinámicas basada en el ángulo de Gansu es un sistema de trading que combina la teoría clásica del análisis técnico y los métodos modernos de cuantificación. Identifica y sigue las tendencias del mercado a través de las líneas de ángulo de Gansu ajustadas dinámicamente y genera señales de trading en los puntos críticos.
/*backtest
start: 2024-06-01 00:00:00
end: 2024-06-30 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Gann Strategy", overlay=true)
// User inputs
gann_angle_up = input.float(45, "Gann Angle Up (degrees)")
gann_angle_down = input.float(45, "Gann Angle Down (degrees)")
length = input.int(14, "Length for Swing High/Low")
// Functions to find Swing High and Swing Low
var float swingHigh = na
var float swingLow = na
if (high[length] == ta.highest(high, length * 2 + 1))
swingHigh := high[length]
if (low[length] == ta.lowest(low, length * 2 + 1))
swingLow := low[length]
// Gann angles calculation
gann_up = swingLow + math.tan(gann_angle_up * math.pi / 180) * (bar_index - ta.valuewhen(not na(swingLow), bar_index, 0))
gann_down = swingHigh - math.tan(gann_angle_down * math.pi / 180) * (bar_index - ta.valuewhen(not na(swingHigh), bar_index, 0))
// Gann angles visualization
plot(na(gann_up) ? na : gann_up, color=color.green, linewidth=2, title="Gann Angle Up")
plot(na(gann_down) ? na : gann_down, color=color.red, linewidth=2, title="Gann Angle Down")
// Entry and exit conditions
longCondition = ta.crossover(close, gann_up)
shortCondition = ta.crossunder(close, gann_down)
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)
// Visualization of entry and exit points
plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// Setting stop loss and take profit levels
stopLossLevel = input.float(1.0, "Stop Loss Level (percent)") / 100
takeProfitLevel = input.float(2.0, "Take Profit Level (percent)") / 100
if (strategy.position_size > 0)
strategy.exit("Take Profit/Stop Loss", from_entry="Long", limit=close * (1 + takeProfitLevel), stop=close * (1 - stopLossLevel))
if (strategy.position_size < 0)
strategy.exit("Take Profit/Stop Loss", from_entry="Short", limit=close * (1 - takeProfitLevel), stop=close * (1 + stopLossLevel))