
La stratégie de suivi des tendances dynamiques basée sur les angles de Gannett est une méthode de trading quantitative qui combine la théorie de Gannett et les hauts et les bas de la fluctuation. La stratégie utilise les angles de Gannett pour identifier les tendances du marché et générer des signaux de négociation lorsque les prix franchissent ces angles.
Identification des hauts et des bas des oscillations: la stratégie utilise une période définie par l’utilisateur (par défaut 14) pour identifier les hauts et les bas des oscillations. Ces points sont à la base de la représentation des angles de Gandhi.
Calcul de la ligne d’angle de Gantt: sur la base des hauts et des bas de la fluctuation identifiée, la stratégie calcule respectivement la ligne d’angle de Gantt vers le haut et vers le bas. L’angle peut être personnalisé par l’utilisateur, 45 degrés par défaut.
Le signal de transaction est généré:
Gestion des risques: La stratégie intègre des niveaux de stop loss et de stop loss personnalisables pour contrôler l’ouverture des risques de chaque transaction.
Adaptabilité dynamique: en ajustant continuellement le point de départ de la ligne d’angle de Gannett, la stratégie est capable de s’adapter à différents environnements de marché et aux fluctuations des prix.
Suivi des tendances: La stratégie est essentiellement un système de suivi des tendances qui permet de capturer les gains significatifs des grandes tendances.
Gestion des risques: les mécanismes d’arrêt et de blocage intégrés aident à contrôler les risques et à prévenir les pertes excessives liées à une seule transaction.
Visualisation: la stratégie affiche les angles de Gannets et les signaux de négociation sur le graphique pour aider les traders à comprendre la structure du marché et la logique de la stratégie.
Flexibilité: plusieurs paramètres réglables (angle, longueur de cycle, niveau de stop loss) permettent à la stratégie de s’adapter à différents types de transactions et à différentes périodes.
Risque de choc du marché: dans un marché en cours d’exécution ou en choc, de fréquentes fausses percées peuvent entraîner des signaux erronés et des coûts de transaction excessifs.
Risque de glissement: dans un marché rapide, le prix de transaction réel peut être significativement différent du prix au moment de la génération du signal.
Risque d’optimisation excessive: un ajustement excessif des paramètres en fonction des données historiques peut entraîner une mauvaise performance future de la stratégie.
Risque d’inversion de tendance: la stratégie peut générer des pertes si la tendance est inversée au début.
Pour atténuer ces risques, il convient de considérer:
L’analyse des périodes multiples: l’intégration d’informations sur les tendances des périodes plus longues permet d’améliorer la qualité des signaux de négociation.
Adaptation dynamique de l’angle: Adaptation dynamique de l’angle de Gance en fonction de la volatilité du marché, permettant une meilleure adaptation de la stratégie aux différentes conditions du marché.
Considérations sur le volume des transactions: le volume des transactions peut être utilisé comme indicateur auxiliaire pour améliorer la fiabilité du signal.
Optimisation de l’apprentissage automatique: optimisation dynamique des paramètres de la stratégie à l’aide d’algorithmes d’apprentissage automatique pour améliorer l’adaptabilité de la stratégie.
Filtrage de la corrélation: dans les transactions multi-variétés, la prise en compte de la corrélation entre les variétés peut réduire le risque systémique.
Contrôle des retraits: l’introduction d’un mécanisme de contrôle des retraits basé sur la courbe des droits et intérêts permet de mieux protéger les capitaux en cas de revers de tendance majeur.
Ces orientations d’optimisation visent à améliorer la solidité et la rentabilité des stratégies, tout en réduisant les risques inhérents.
La stratégie de suivi des tendances dynamiques basée sur l’angle de Ganse est un système de négociation qui combine la théorie classique de l’analyse technique et les méthodes modernes de quantification. Elle identifie et suit les tendances du marché grâce à des lignes d’angle de Ganse dynamiquement ajustées et génère des signaux de négociation aux points critiques. L’avantage de la stratégie réside dans son adaptabilité dynamique et son mécanisme de gestion des risques intégré, mais elle est également confrontée à des défis tels que les marchés en choc et l’optimisation excessive.
/*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))