La estrategia implementa un mecanismo de seguimiento de pérdidas porcentual configurable para controlar el riesgo de negociación. Permite establecer un porcentaje de pérdidas por posiciones largas y cortas y seguir continuamente el precio más alto o más bajo en la dirección favorable desde el precio de entrada, lo que permite un alto dinámico.
La principal lógica de esta estrategia es la siguiente:
La estrategia permite un porcentaje de stop loss personalizado, por ejemplo, se puede configurar en un 10% . Cuando se toma una posición larga, se calcula en tiempo real el 10% por encima del precio mínimo como una línea de stop loss; cuando se toma una posición corta, se calcula el 10% por debajo del precio máximo como una línea de stop loss .
De esta manera, la línea de parada se mueve constantemente en la dirección favorable, permitiendo el seguimiento dinámico de la parada, protegiendo al máximo las ganancias y al mismo tiempo controlando el riesgo.
Cómo hacer frente a esto:
La estrategia se puede optimizar:
La estrategia ofrece un método de seguimiento de pérdidas por porcentaje que funciona y puede ajustar dinámicamente la línea de pérdidas. Puede proteger al máximo los beneficios y controlar el riesgo de manera efectiva. La estrategia de pérdidas puede ser más inteligente y optimizada a través de la optimización de parámetros, la integración de indicadores, etc.
/*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)