Stratégie de suivi de tendance basée sur la SMA et l'ATR


Date de création: 2024-01-18 16:04:51 Dernière modification: 2024-01-18 16:04:51
Copier: 0 Nombre de clics: 637
1
Suivre
1617
Abonnés

Stratégie de suivi de tendance basée sur la SMA et l’ATR

Nom de la stratégie

Cette stratégie s’appelleStratégie de suivi de tendance basée sur la SMA et l’ATR

Deuxième vue d’ensemble de la stratégie

Cette stratégie utilise l’indicateur SMA pour déterminer la direction de la tendance des prix et utilise l’indicateur ATR pour définir une position de stop-loss pour suivre la tendance. Faire une position de coupe lorsque le prix tombe dans une tendance à la hausse et une position de plus lorsque le prix franchit une tendance à la baisse, pour réaliser une transaction de tendance.

Troisièmement, le principe de stratégie

1. Signaux d’entrée

(1) Faire plus lorsque le cours de clôture est élevé et supérieur à la SMA (2) Faire une faillite lorsque le cours de clôture est en baisse et en dessous de la SMA

2. Réglage de l’arrêt des dommages

Utilisez la valeur de l’indicateur ATR multipliée par le multiplicateur de stop-loss défini comme position de stop-loss.

3. Mise à jour par défaut

Après chaque clôture de la ligne K, vérifiez la position de votre stop loss et mettez-la à jour pour la valeur de votre stop loss la plus proche du prix actuel.

4. Signaux de sortie

Le prix a touché la ligne de stop-loss et s’est retiré de la ligne de stop-loss.

Quatrièmement, les avantages stratégiques

1. Une forte capacité de suivi des tendances

Le paramètre d’arrêt dynamique de l’indicateur ATR permet de suivre automatiquement la tendance.

2. La capacité de retrait est bonne.

Les règles strictes de stop-loss aident à contrôler le maximum de retraits sur une seule transaction.

3. Le paramètre est simple

Il n’y a que 3 paramètres pour les ajustements et les optimisations.

Cinquièmement, le risque stratégique.

1. La possibilité d’une dépréciation trop allégée

Si le multiplicateur d’arrêt est trop grand, cela peut entraîner une position d’arrêt trop lâche, ce qui augmente le retrait.

2. Les dangers du faux saut

Une fausse rupture peut entraîner une déviation de la tendance et doit être combinée avec d’autres signaux de filtrage.

3. Optimisation des paramètres de risque

L’optimisation des paramètres dépendant de l’excès peut conduire à l’optimisation de la courbe. La stabilité des paramètres doit être soigneusement évaluée.

Sixièmement, améliorer la stratégie

1. Optimiser les algorithmes de résistance

D’autres types d’algorithmes de stop-loss peuvent être testés, tels que le stop-loss mobile, le stop-loss proportionnel, etc.

2. Augmenter le filtrage

D’autres paramètres peuvent être ajoutés pour filtrer les fausses percées. Par exemple, augmenter les conditions de volume de transaction.

3. Évaluer la stabilité des paramètres

L’adaptation des paramètres aux différentes variétés et cycles est évaluée par la rétro-analyse historique.

VII. Conclusion

Cette stratégie est bien pensée, elle permet de déterminer la direction de la tendance par le SMA et de suivre la tendance à l’aide de l’ATR. La capacité de contrôle des retraits est bonne et convient aux transactions de tendance sur les lignes moyennes et longues. Cependant, il est nécessaire d’ajuster les paramètres de manière appropriée et de prévenir les risques de sur-optimisation sur le marché réel.

Code source de la stratégie
/*backtest
start: 2024-01-16 00:00:00
end: 2024-01-16 17:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © omererkan

//@version=5
strategy(title="SMA with ATR", overlay=true)

smaLen = input.int(100, title="SMA Length")

atrLen     = input.int(10, title="ATR Length")
stopOffset = input.float(4, title="Stop Offset Multiple", step=0.25)


smaValue  = ta.sma(close, smaLen)
stopValue = ta.atr(atrLen) * stopOffset


lowerCloses = close < close[1] and 
     close[1] < close[2] and
     close[2] < close[3]

enterLong = close > smaValue and 
     lowerCloses


longStop = 0.0
longStop := if enterLong and strategy.position_size < 1
    close - stopValue
else
    math.max(close - stopValue, longStop[1])


higherCloses = close > close[1] and 
     close[1] > close[2] and
     close[2] > close[3]

enterShort = close < smaValue and 
     higherCloses


shortStop = 0.0
shortStop := if enterShort and strategy.position_size > -1
    close + stopValue
else
    math.min(close + stopValue, shortStop[1])


plot(smaValue, color=#4169e1, linewidth=2, title="SMA")

plot(strategy.position_size > 0 ? longStop : na, color=color.lime,
     style=plot.style_linebr, title="Long stop", linewidth=2)

plot(strategy.position_size < 0 ? shortStop : na, color=color.red,
     style=plot.style_linebr, title="Short stop", linewidth=2)


if enterLong
    strategy.entry("EL", strategy.long)

if enterShort
    strategy.entry("ES", strategy.short)


if strategy.position_size > 0
    strategy.exit("SL Long", from_entry="EL", stop=longStop)

if strategy.position_size < 0
    strategy.exit("SL Short", from_entry="ES", stop=shortStop)


if enterLong
    strategy.cancel("Exit Short")

if enterShort
    strategy.cancel("Exit Long")