Stratégies de rupture de tendance


Date de création: 2024-03-22 14:48:37 Dernière modification: 2024-03-22 14:48:37
Copier: 1 Nombre de clics: 640
1
Suivre
1617
Abonnés

Stratégies de rupture de tendance

Aperçu

Il s’agit d’une stratégie de négociation quantitative qui utilise l’indicateur ATR et le prix de clôture pour capturer les ruptures de tendance. La stratégie juge la direction de la tendance en calculant dynamiquement les lignes de tendance à la hausse et à la baisse, et génère un signal de négociation lorsque le prix de clôture franchit la ligne de tendance. La stratégie définit à la fois un stop loss et un prix cible, et peut effectuer un stop loss mobile en fonction de la volatilité.

Principe de stratégie

  1. Calculer le signal ATR: atr_signal = atr (((atr_period)
  2. Calculer une ligne de tendance ascendante et descendante:
    • Ligne de tendance inférieure: lower_trend = low - atr_mult*atr_signal
    • Ligne de tendance à la hausse: upper_trend = high + atr_mult*atr_signal
  3. Dynamique d’ajustement de la ligne de tendance, qui reste inchangée si la ligne de tendance est franchie, sinon mise à jour à la valeur la plus récente
  4. La couleur de la ligne de tendance est déterminée par la position relative du prix de clôture par rapport à la ligne de tendance. Elle est utilisée pour déterminer la direction de la tendance.
  5. Les signaux de transaction sont générés:
    • Signal plus: Aucune position actuellement et le cours de clôture a franchi la ligne de tendance
    • Signaux de rupture: Aucune position actuellement détenue et les cours de clôture ont franchi la ligne de tendance
  6. Le prix de vente est fixé à un prix de vente fixe.
    • Stop loss: Facteur de fluctuation de l’ATR à la dernière transaction
    • Prix cible: prix de transaction le plus récent ± marge de stop-loss * Ratio de gain / perterr
  7. Stop à déplacement:
    • Stop multiple: ligne de tendance à la hausse
    • Stop à vide: la ligne de tendance la plus basse

Analyse des avantages

  1. Ligne de tendance ajustée dynamiquement en fonction de la volatilité pour s’adapter aux différentes conditions du marché
  2. Les lignes de tendance sont marquées en couleurs pour faciliter l’identification des tendances
  3. Utilisez l’ATR comme mesure de la volatilité et définissez des arrêts et des prix cibles raisonnables
  4. Fonction de stop-loss mobile pour réduire le plus possible les retraits tout en garantissant des bénéfices
  5. Paramétrisation élevée, adaptée à différentes variétés et cycles

Analyse des risques

  1. Les stratégies de rupture de tendance sont sujettes à des pertes en cas de surchauffe.
  2. Une mauvaise sélection des paramètres ATR peut entraîner une ligne de tendance trop sensible ou lente, affectant la qualité du signal.
  3. Le rapport de profit/perte fixe peut ne pas s’adapter à différentes caractéristiques du marché
  4. La tendance est à la baisse, avec un arrêt mobile qui pourrait entraîner une baisse de la marge de profit.

La solution est simple:

  1. Introduire des filtres de tendance ou des indicateurs de choc pour aider à juger et éviter les pertes de choc
  2. Optimiser les paramètres ATR en fonction des caractéristiques de la variété et du cycle
  3. Optimisation des marges et des logiques de stop-loss mobiles, amélioration des stratégies de marge et de risque
  4. Une méthode d’identification des tendances peut être combinée pour améliorer le stop-loss mobile et capturer plus de profits de tendance

Direction d’optimisation

  1. Combinant plusieurs périodes de temps, identifier les tendances avec des périodes plus longues et déclencher des signaux avec des périodes plus courtes
  2. L’ajout d’indicateurs quantitatifs avant la rupture de la ligne de tendance améliore l’efficacité du signal
  3. Optimisation de la gestion des positions et augmentation des opérations de bande
  4. Optimisation des paramètres pour le rapport entre le stop loss et le gain et la perte
  5. Amélioration de la logique de stop-loss mobile pour réduire les arrêts prématurés dans les tendances

Les cycles de temps multiples aident à filtrer le bruit et à mieux saisir les tendances. La vérification des indicateurs de prix avant la rupture permet d’éliminer les faux signaux. L’optimisation de la gestion des positions améliore l’efficacité de l’utilisation des fonds. L’optimisation des paramètres de stop loss et de stop loss ratio améliore le rapport de risque-revenu de la stratégie.

Résumer

La stratégie utilise l’ATR comme mesure de la volatilité, ajuste dynamiquement la position de la ligne de tendance, capture les conditions de rupture de la tendance. Fixez des objectifs de stop-loss et de profit raisonnables et utilisez un stop-loss mobile pour verrouiller les bénéfices. Les paramètres sont réglables et adaptatifs.

Code source de la stratégie
/*backtest
start: 2023-03-16 00:00:00
end: 2024-03-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title = "Claw-Pattern", overlay=true, calc_on_every_tick=true, default_qty_type= strategy.percent_of_equity,default_qty_value=10, currency="USD")
//Developer: Trading Strategy Guides
//Creator: Trading Strategy Guides
//Date: 3/18/2024
//Description: A trend trading system strategy 

atr_period = input(title="ATR Period", defval=120, type=input.integer)
atr_mult = input(title="ATR Multiplier", defval=2, type=input.integer)
dir = input(title="Direction (Long=1, Short=-1, Both = 0)", defval=1, type=input.integer)
factor = input(title="Stop Level Deviation (% Chan.)", defval=0.75, type=input.float)
rr = input(title="Reward to Risk Multiplier", defval=2, type=input.integer)
trail_bar_start = input(title="Trail Stop Bar Start", defval=20, type=input.integer)
col_candles = input(title="Enable Colored Candles", defval=false, type=input.bool)

atr_signal = atr(atr_period)

lower_trend = low - atr_mult*atr_signal
upper_trend = high + atr_mult*atr_signal

upper_trend := upper_trend > upper_trend[1] and close < upper_trend[1] ? upper_trend[1] : upper_trend
lower_trend := lower_trend < lower_trend[1] and close > lower_trend[1] ? lower_trend[1] : lower_trend

upper_color = barssince(cross(close, upper_trend[1])) > barssince(cross(close, lower_trend[1])) ? color.red : na
lower_color = barssince(cross(close, upper_trend[1])) > barssince(cross(close, lower_trend[1])) ? na : color.green

trend_line = lower_trend

plot(lower_trend, color=lower_color, title="Lower Trend Color")
plot(upper_trend, color=upper_color, title="Upper Trend Color")

is_buy = strategy.position_size == 0 and crossover(close, upper_trend[1]) and upper_color[1]==color.red and (dir == 1 or dir == 0)
is_sell = strategy.position_size == 0 and crossover(close, lower_trend[1]) and lower_color[1]==color.green and (dir == -1 or dir == 0)

if is_buy
    strategy.entry("Enter Long", strategy.long)
else if is_sell
    strategy.entry("Enter Short", strategy.short)