Esta estrategia está diseñada para una entrada de posición larga con un disparador específico de fecha y un mecanismo de stop loss para la gestión del riesgo. Es particularmente útil para los operadores que desean automatizar sus entradas basadas en fechas calendario específicas y gestionar sus posiciones con un método dinámico de control de riesgos como un stop loss.
La estrategia primero toma la entrada de fechas de entrada específicas, incluidos el mes y el día, luego calcula la marca de tiempo de entrada precisa basada en estas fechas.
En la fecha de entrada, la estrategia abrirá una posición larga.Al mismo tiempo, registra el precio más alto (highestPrice) y el precio de stop loss (stopLoss).El precio más alto se mantiene actualizado con el tiempo, mientras que el stopLoss lo sigue un cierto porcentaje hacia abajo.
Si el precio cae por debajo del stopLoss, la posición se cerrará. De lo contrario, la posición permanece abierta, y el stopLoss sigue siguiendo el precio más alto para bloquear las ganancias y controlar el riesgo.
Las principales ventajas de esta estrategia son las siguientes:
También hay algunos riesgos:
Mejoras posibles:
Posibles direcciones de optimización:
Esta estrategia proporciona una entrada automatizada basada en fechas y una gestión dinámica del riesgo a través de un stop loss de seguimiento.
/*backtest start: 2024-01-24 00:00:00 end: 2024-01-31 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(title="Trailing Stop Loss Percent", overlay=true, pyramiding=1) // Input for the specific entry date entryDay = input.int(defval = 1, title = "Entry Day", minval = 1, maxval = 31) entryMonth = input.int(defval = 1, title = "Entry Month", minval = 1, maxval = 12) entryYear = input.int(defval = 2023, title = "Entry Year", minval = 1970) // Calculate the entry date timestamp entryDate = timestamp(entryYear, entryMonth, entryDay, 00, 00) // Trailing Stop Loss Percentage trailStopPercent = input.float(defval = 5.0, title = "Trailing Stop Loss (%)", minval = 0.1) // Entry Condition enterTrade = true // Variables to track the highest price and stop loss level since entry var float highestPrice = na var float stopLoss = na // Update the highest price and stop loss level if strategy.position_size > 0 highestPrice := math.max(highestPrice, high) stopLoss := highestPrice * (1 - trailStopPercent / 100) // Enter the strategy if enterTrade strategy.entry("Long Entry", strategy.long) highestPrice := high stopLoss := highestPrice * (1 - trailStopPercent / 100) // Exit the strategy if the stop loss is hit if strategy.position_size > 0 and low <= stopLoss strategy.close("Long Entry") // Plotting the stop loss level for reference plot(strategy.position_size > 0 ? stopLoss : na, "Trailing Stop Loss", color=color.red)