
La stratégie de stop-loss de suivi progressif permet de suivre efficacement la tendance des cours d’actions en ajustant dynamiquement la ligne de stop-loss, en réalisant une combinaison organique de contrôle des risques et d’interception de stop-loss. Elle utilise une gamme moyenne de fluctuation réelle pour calculer la ligne de stop-loss, ce qui permet de réduire les pertes inutiles tout en protégeant les bénéfices.
La stratégie utilise le calcul de la plage de fluctuation réelle moyenne (ATR) comme base pour un stop-loss dynamique. L’ATR peut refléter efficacement la volatilité des actions. La stratégie entre d’abord les paramètres du cycle ATR, typiquement de 10 jours.
Plus précisément, la stratégie calcule l’ATR de la ligne K actuelle, puis multiplie le paramètre de l’axe du facteur de coupe pour obtenir la distance de stop-loss. Si le cours de l’action est supérieur au prix de stop-loss, ouvrez une position plus élevée; si le cours de l’action est inférieur au prix de stop-loss, ouvrez une position vide.
La stratégie de stop-loss de suivi progressif permet un équilibre efficace entre le contrôle du risque et l’interception de l’arrêt en ajustant dynamiquement la distance de stop-loss. La stratégie est simple à utiliser, hautement personnalisable et adaptée au trading automatique par robot. Bien sûr, le choix de paramètres et de combinaisons d’indicateurs raisonnables nécessite encore une expérience manuelle.
/*backtest
start: 2023-10-17 00:00:00
end: 2023-10-24 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Supertrend Strategy, by Ho.J.", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=15)
// 백테스팅 시작일과 종료일 입력
startYear = input(2020, title="Start Year")
startMonth = input(1, title="Start Month")
startDay = input(1, title="Start Day")
endYear = input(9999, title="End Year")
endMonth = input(12, title="End Month")
endDay = input(31, title="End Day")
// 백테스팅 시간 범위 확인
backtestingTimeBool = (year >= startYear and month >= startMonth and dayofmonth >= startDay) and (year <= endYear and month <= endMonth and dayofmonth <= endDay)
atrPeriod = input(10, "ATR Length")
factor = input.float(3.0, "Factor", step = 0.01)
[_, direction] = ta.supertrend(factor, atrPeriod)
var bool longCondition = false
var bool shortCondition = false
if backtestingTimeBool
prevDirection = direction[1]
if direction < 0
longCondition := false
shortCondition := true
else if direction > 0
longCondition := true
shortCondition := false
if longCondition
strategy.entry("My Long Entry Id", strategy.long)
if shortCondition
strategy.entry("My Short Entry Id", strategy.short)
plot(strategy.equity, title="equity", color=color.rgb(255, 255, 255), linewidth=2, style=plot.style_area)