La stratégie implémente un mécanisme de suivi des pertes en pourcentage configurable pour contrôler le risque de négociation. Il permet de définir des pourcentages de perte de perte pour les positions longues et courtes et de suivre en permanence les prix les plus élevés ou les plus bas dans la direction favorable à partir du prix d’entrée, permettant ainsi un arrêt dynamique.
La principale logique de cette stratégie est la suivante:
La stratégie permet de personnaliser le pourcentage de stop loss, par exemple en le réglant à 10%. Lors d’une position longue, elle calcule en temps réel 10% au-dessus du prix le plus bas comme ligne de stop loss; lors d’une position courte, elle calcule 10% au-dessous du prix le plus élevé comme ligne de stop loss.
De cette façon, la ligne de stop-loss se déplace continuellement dans la direction favorable, permettant un stop-loss de suivi dynamique, protégeant au maximum les bénéfices, tout en contrôlant les risques.
Comment réagir:
La stratégie peut être optimisée:
Cette stratégie fournit une méthode efficace de suivi des pourcentages de stop-loss, permettant d’ajuster dynamiquement la ligne de stop-loss. Elle peut protéger au maximum les bénéfices, mais aussi contrôler efficacement les risques. Par l’optimisation des paramètres, l’intégration des indicateurs, etc., la stratégie de stop-loss peut être rendue plus intelligente et optimisée.
/*backtest
start: 2023-08-19 00:00:00
end: 2023-09-18 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// © theCrypster
//@version=4
strategy("Percent Trailing Stop %", overlay=true)
//ENTER SOME SETUP TRADES FOR TSL EXAMPLE
longCondition = crossover(sma(close, 10), sma(close, 20))
if (longCondition)
strategy.entry("My Long Entry Id", strategy.long)
shortCondition = crossunder(sma(close, 10), sma(close, 20))
if (shortCondition)
strategy.entry("My Short Entry Id", strategy.short)
//TRAILING STOP CODE
trailStop = input(title="Long Trailing Stop (%)", type=input.float, minval=0.0, step=0.1, defval=10) * 0.01
longStopPrice = 0.0
shortStopPrice = 0.0
longStopPrice := if strategy.position_size > 0
stopValue = close * (1 - trailStop)
max(stopValue, longStopPrice[1])
else
0
shortStopPrice := if strategy.position_size < 0
stopValue = close * (1 + trailStop)
min(stopValue, shortStopPrice[1])
else
999999
//PLOT TSL LINES
plot(series=strategy.position_size > 0 ? longStopPrice : na, color=color.red, style=plot.style_linebr, linewidth=1, title="Long Trail Stop", offset=1, title="Long Trail Stop")
plot(series=strategy.position_size < 0 ? shortStopPrice : na, color=color.red, style=plot.style_linebr, linewidth=1, title="Short Trail Stop", offset=1, title="Short Trail Stop")
//EXIT TRADE @ TSL
if strategy.position_size > 0
strategy.exit(id="Close Long", stop=longStopPrice)
if strategy.position_size < 0
strategy.exit(id="Close Short", stop=shortStopPrice)