
Cette stratégie s’appelleStratégie de suivi de tendance basée sur la SMA et l’ATR。
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.
(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
Utilisez la valeur de l’indicateur ATR multipliée par le multiplicateur de stop-loss défini comme position de stop-loss.
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.
Le prix a touché la ligne de stop-loss et s’est retiré de la ligne de stop-loss.
Le paramètre d’arrêt dynamique de l’indicateur ATR permet de suivre automatiquement la tendance.
Les règles strictes de stop-loss aident à contrôler le maximum de retraits sur une seule transaction.
Il n’y a que 3 paramètres pour les ajustements et les optimisations.
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.
Une fausse rupture peut entraîner une déviation de la tendance et doit être combinée avec d’autres signaux de filtrage.
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.
D’autres types d’algorithmes de stop-loss peuvent être testés, tels que le stop-loss mobile, le stop-loss proportionnel, etc.
D’autres paramètres peuvent être ajoutés pour filtrer les fausses percées. Par exemple, augmenter les conditions de volume de transaction.
L’adaptation des paramètres aux différentes variétés et cycles est évaluée par la rétro-analyse historique.
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.
/*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")