Stratégie de rupture horizontale de la tendance ATR


Date de création: 2023-12-06 18:03:38 Dernière modification: 2023-12-06 18:03:38
Copier: 0 Nombre de clics: 652
1
Suivre
1619
Abonnés

Stratégie de rupture horizontale de la tendance ATR

Aperçu

La stratégie de rupture horizontale de l’ATR de la tendance des abeilles est une stratégie de rupture de type ligne courte et moyenne basée sur l’indicateur ATR et la bande de Brent. Elle surveille principalement les variations de la tendance des cours des actions dans le canal ATR ascendant et descendant d’une certaine largeur.

Principe de stratégie

La stratégie se compose de trois volets principaux:

  1. Le canal ATR: Calcule la portée des fluctuations du cours d’une action à l’aide de l’indicateur ATR et forme un canal en haut et en bas de cette portée. La largeur du canal est contrôlée par le cycle de retour d’ATR et le facteur ATRdivisor.

  2. Ligne d’abeille: la ligne centrale du cours de l’action est utilisée comme ligne de référence. La méthode de calcul de la ligne centrale est la moyenne des hauts et des bas de la récolte d’hier.

  3. Filtrage de tendance: calculer la tendance des prix à l’aide d’un indicateur de mouvement de déviation et définir un cycle de signal, lorsque pricesig ‘>’: pricesig[3] est une tendance à la hausse, lorsque pricesig ‘<’ pricesig[3] est la tendance à la baisse.

La logique de génération des signaux de transaction est la suivante:

Signaux à plusieurs têtes: pricesig > pricesig[3] et plus lorsque les prix sont en baisse;

Le signal de tête vide: pricesig < pricesig[3] et laissez une marge de manœuvre lorsque le cours monte sur la trajectoire;

Il n’y a pas d’autres accords.

La stratégie impose également des conditions de stop-loss pour contrôler le risque de transaction.

Analyse des avantages

La stratégie de rupture ATR de la tendance des abeilles présente les avantages suivants:

  1. L’indicateur ATR est utilisé pour calculer la marge de fluctuation des cours d’actions et capter les fluctuations du marché.

  2. L’analyse des cours horizontaux en combinaison avec la ligne centrale et la mise en place de points de rupture de passage pour éviter de suivre les hauts et les bas;

  3. L’indicateur de décalage et de mouvement permet de juger de la tendance, d’éviter les transactions à contre-courant et d’améliorer les chances de victoire.

  4. les paramètres de stop-loss pour contrôler les risques individuels;

  5. Les paramètres de stratégie permettent de définir des stratégies d’optimisation flexibles et ajustables pour des facteurs tels que la largeur des canaux, la fréquence d’ATR.

Analyse des risques

Cette stratégie comporte aussi des risques:

  1. Les transactions en ligne courte sont très volatiles, relativement risquées et nécessitent une gestion prudente de l’argent;

  2. Le calcul de la portée du canal ATR peut être inexact, ce qui peut entraîner des transactions erronées en cas de fortes fluctuations des cours des actions.

  3. L’indicateur de déviation de mouvement peut également faire des erreurs dans le jugement de la tendance, ce qui affecte l’exactitude du signal de négociation.

Les risques ci-dessus peuvent être optimisés et améliorés par des ajustements appropriés des paramètres de la voie ATR, une augmentation des cycles de filtrage des signaux de tendance, etc.

Direction d’optimisation

Cette stratégie peut être optimisée dans les domaines suivants:

  1. Ajustez la largeur du canal ATR, réduisez ou augmentez les paramètres atRDivisor, comprimez ou agrandissez la portée du canal.

  2. Ajustez les paramètres de la période de retour d’ATR pour modifier la sensibilité du canal aux fluctuations récentes.

  3. Ajustez les paramètres de cycle de signaux de tendance pour améliorer l’exactitude des jugements de tendance en polyvalence.

  4. L’ajout d’autres indicateurs pour la vérification multi-facteurs améliore la qualité des signaux de négociation.

  5. Optimiser les algorithmes de stop loss et améliorer le contrôle des risques.

Résumer

La stratégie de rupture ATR de la tendance des abeilles, qui intègre l’analyse de la portée des fluctuations des cours des actions et des indicateurs de jugement de la tendance, est une stratégie quantitative très flexible et très adaptable pour contrôler le risque de négociation tout en capturant les points chauds du marché. La stratégie peut être améliorée en permanence grâce à l’ajustement des paramètres et à l’optimisation des signaux.

Code source de la stratégie
/*backtest
start: 2023-11-01 00:00:00
end: 2023-11-30 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title="Strategy - Bobo PATR Swing", overlay=true, default_qty_type = strategy.fixed, default_qty_value = 1, initial_capital = 10000)

// === STRATEGY RELATED INPUTS AND LOGIC ===
PivottimeFrame = input(title="Pivot Timeframe",  defval="D")
ATRSDtimeFrame = input(title="ATR Band Timeframe (Lower timeframe = wider bands)",  defval="D")
len = input(title="ATR lookback (Lower = bands more responsive to recent price action)",  defval=13)
myatr = atr(len)
dailyatr = request.security(syminfo.tickerid, ATRSDtimeFrame, myatr[1])
atrdiv = input(title="ATR divisor (Lower = wider bands)", type=float, defval=2)
pivot0 = (high[1] + low[1]  + close[1]) / 3
pivot = request.security(syminfo.tickerid, PivottimeFrame, pivot0)
upperband1 = (dailyatr / atrdiv) + pivot
lowerband1 = pivot - (dailyatr / atrdiv)
middleband = pivot

// == TREND CALC ===
i1=input(2, "Momentum Period", minval=1) //Keep at 2 usually
i2=input(20, "Slow Period", minval=1)
i3=input(5, "Fast Period", minval=1)
i4=input(3, "Smoothing Period", minval=1)
i5=input(4, "Signal Period", minval=1)
i6=input(50, "Extreme Value", minval=1)
hiDif = high - high[1]
loDif = low[1] - low
uDM = hiDif > loDif and hiDif > 0 ? hiDif : 0
dDM =  loDif > hiDif and loDif > 0 ? loDif : 0
ATR = rma(tr(true), i1)
DIu = 100 * rma(uDM, i1) / ATR
DId = 100 * rma(dDM, i1) / ATR
HLM2 =  DIu - DId
DTI = (100 * ema(ema(ema(HLM2, i2), i3), i4)) /  ema(ema(ema(abs(HLM2), i2), i3), i4)
signal = ema(DTI, i5)


// === RISK MANAGEMENT INPUTS ===
inpTakeProfit   = input(defval = 0, title = "Take Profit (In Market MinTick Value)", minval = 0)
inpStopLoss     = input(defval = 100, title = "Stop Loss (In Market MinTick Value)", minval = 0)

// === RISK MANAGEMENT VALUE PREP ===
// if an input is less than 1, assuming not wanted so we assign 'na' value to disable it.
useTakeProfit   = inpTakeProfit  >= 1 ? inpTakeProfit  : na
useStopLoss     = inpStopLoss    >= 1 ? inpStopLoss    : na

// === STRATEGY - LONG POSITION EXECUTION ===
enterLong = (((low<=lowerband1) and (close >lowerband1)) or ((open <= lowerband1) and (close > lowerband1))) and (strategy.opentrades <1) and (atr(3) > atr(50)) and (signal>signal[3])
exitLong = (high > middleband)
strategy.entry(id = "Long", long = true, when = enterLong) 
strategy.close(id = "Long", when = exitLong)

// === STRATEGY - SHORT POSITION EXECUTION ===
enterShort = (((high>=upperband1) and (close < upperband1)) or ((open >= upperband1) and (close < upperband1))) and (strategy.opentrades <1) and (atr(3) > atr(50)) and (signal<signal[3])
exitShort = (low < middleband)
strategy.entry(id = "Short", long = false, when = enterShort)
strategy.close(id = "Short", when = exitShort)

// === STRATEGY RISK MANAGEMENT EXECUTION ===
strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss)
strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss)

// === CHART OVERLAY ===
plot(upperband1, color=#C10C00, linewidth=3)
plot(lowerband1, color=#23E019, linewidth=3)
plot(middleband, color=#00E2E2, linewidth=3)
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)