Stratégie de suivi de tendance Super ATR


Date de création: 2024-02-19 11:41:20 Dernière modification: 2024-02-19 11:41:20
Copier: 0 Nombre de clics: 669
1
Suivre
1617
Abonnés

Stratégie de suivi de tendance Super ATR

Aperçu

La stratégie de suivi de la tendance du super ATR est une stratégie de suivi de la tendance basée sur l’indicateur ATR. Elle utilise l’indicateur ATR pour mesurer la volatilité du marché et permet le suivi de la tendance avec plusieurs fois l’ATR comme ligne de stop-loss.

Principe de stratégie

La stratégie commence par calculer l’indicateur ATR, qui est une moyenne mobile de la volatilité des cours des actions au cours des derniers N jours, pour représenter le risque et la volatilité du marché. La stratégie nous permet de modifier la méthode de calcul de l’ATR, en choisissant le calcul de l’ATR ordinaire ou de la méthode SMA.

On multiplie ensuite par un multiple la valeur ATR de la voie d’accès et de descente pour calculer l’accès:close - Multiplier * ATRLe calcul de la descente:close + Multiplier * ATR❚ Ce qui constitue un canal de tendance basé sur l’indicateur ATR ❚

Nous jugeons ensuite si le prix actuel a franchi la voie de la hausse ou de la baisse. Si le prix a franchi la voie de la hausse, il est considéré comme entrant dans une tendance à la baisse; si le prix a franchi la voie de la baisse, il est considéré comme entrant dans une tendance à la hausse.

En outre, la stratégie définit des fenêtres de temps de négociation, qui permettent de négocier uniquement pendant une période donnée.

Avantages stratégiques

Cette stratégie de suivi des tendances basée sur des canaux d’indicateurs présente les avantages suivants:

  1. L’utilisation de l’indicateur ATR pour ajuster automatiquement la position de stop pour contrôler efficacement le risque
  2. L’indicateur ATR prend en compte la volatilité des cours des actions, la ligne de stop est plus raisonnable
  3. L’accès est plus précis grâce à une percée de passage.
  4. Permet de modifier la manière dont l’ATR est calculé, augmentant la flexibilité de la stratégie
  5. La stratégie de mise en place d’une fenêtre de temps de négociation pour éviter les événements majeurs a échoué

Dans l’ensemble, il s’agit d’une stratégie de suivi de tendance simple et pratique qui permet de contrôler efficacement les risques tout en obtenant de meilleurs rendements.

Analyse des risques

Cette stratégie comporte également des risques, principalement:

  1. En cas de forte fluctuation du marché, l’indicateur ATR peut ne pas être en mesure de réagir à l’évolution du marché, ce qui entraîne une perte de marge trop large.
  2. La divergence de vues peut entraîner des fluctuations de prix dans le canal, augmentant le risque de transaction.
  3. Les réglages de multiples fixes peuvent ne pas être adaptés à toutes les variétés et doivent être adaptés aux différentes variétés
  4. setWindow restreint les opportunités de trading, et si vous ne le faites pas correctement, vous risquez de rater de meilleures opportunités de trading

Pour maîtriser ces risques, nous pouvons prendre les mesures suivantes:

  1. Éviter de se fier uniquement à l’indicateur ATR pour juger de l’état du marché en le combinant avec d’autres indicateurs
  2. Augmentation des conditions de filtrage afin d’éviter le risque d’introduction d’une brèche invalide
  3. Choisir le nombre de multiples approprié en fonction des caractéristiques historiques des différentes variétés
  4. Optimiser et tester les paramètres de setWindow pour s’assurer qu’ils sont bien définis

Direction d’optimisation

Il y a encore de la place pour optimiser cette stratégie:

  1. Les algorithmes d’apprentissage de la machine peuvent être introduits pour optimiser la dynamique du multiplicateur
  2. Le levier polyvalent peut être combiné avec des indicateurs d’humeur pour optimiser la portée des canaux
  3. Augmentation du volume des transactions ou confirmation de la volatilité pour éviter une rupture sans effet
  4. Backtest à l’aide d’un cadre stratégique avancé basé sur le temps

Grâce à ces optimisations, la stabilité et la rentabilité de la stratégie peuvent être encore améliorées.

Résumer

Cette stratégie est une stratégie de suivi de tendance très pratique. Elle utilise l’indicateur ATR pour construire un canal d’adaptation et pour juger du moment de l’achat et de la vente en cas de rupture de canal. La stratégie est simple à utiliser, elle permet de contrôler efficacement le risque et convient au suivi des tendances à long terme.

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

//@version=5
strategy('B厂长 @超级趋势精简优化版', overlay=true)
Periods = input(title='ATR周期', defval=10)
src = input(hl2, title='价格数据源')
Multiplier = input.float(title='ATR 乘数', step=0.1, defval=3.0)
changeATR = input(title='更改ATR计算方法', defval=true,tooltip = '默认为art否则sma(ta.tr,ATR周期)')
showsignals = input(title='显示买入/卖出信号', defval=false)
atr2 = ta.sma(ta.tr, Periods)
atr = changeATR ? ta.atr(Periods) : atr2
up = src - Multiplier * atr
up1 = nz(up[1], up)
up := close[1] > up1 ? math.max(up, up1) : up
dn = src + Multiplier * atr
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? math.min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend
upPlot = plot(trend == 1 ? up : na, title='上涨趋势', style=plot.style_linebr, linewidth=2, color=color.new(color.green, 0))
buySignal = trend == 1 and trend[1] == -1
plotshape(buySignal and showsignals ? up : na, title='买点', text='买点', location=location.absolute, style=shape.labelup, size=size.tiny, color=color.new(color.green, 0), textcolor=color.new(color.white, 0))
dnPlot = plot(trend == 1 ? na : dn, title='下跌趋势', style=plot.style_linebr, linewidth=2, color=color.new(color.red, 0))
sellSignal = trend == -1 and trend[1] == 1
plotshape(sellSignal and showsignals ? dn : na, title='卖点', text='卖点', location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.new(color.red, 0), textcolor=color.new(color.white, 0))
FromMonth = input.int(defval=9, title='From Month', minval=1, maxval=12)
FromDay = input.int(defval=1, title='From Day', minval=1, maxval=31)
FromYear = input.int(defval=2018, title='From Year', minval=999)
ToMonth = input.int(defval=1, title='To Month', minval=1, maxval=12)
ToDay = input.int(defval=1, title='To Day', minval=1, maxval=31)
ToYear = input.int(defval=9999, title='To Year', minval=999)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00)
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59)
window() =>
    time >= start and time <= finish ? true : false
longCondition = buySignal
if longCondition and window()
    strategy.entry('BUY', strategy.long, comment = '做多')
shortCondition = sellSignal
if shortCondition and window()
    strategy.entry('SAL', strategy.short, comment = '做空')

buy1 = ta.barssince(buySignal)
sell1 = ta.barssince(sellSignal)
color1 = buy1[1] < sell1[1] ? color.green : buy1[1] > sell1[1] ? color.red : na