Esta estratégia é projetada para uma entrada de posição longa com um gatilho específico de data e um mecanismo de stop loss para gerenciamento de risco.
A estratégia primeiro toma entrada de datas de entrada específicas, incluindo mês e dia, em seguida, calcula o carimbo horário de entrada preciso com base nessas datas.
No momento da entrada, a estratégia irá abrir uma posição longa. Ao mesmo tempo, registra o preço mais alto (highestPrice) e o preço de stop loss (stopLoss).
Se o preço cair abaixo do stopLoss, a posição será fechada. Caso contrário, a posição permanece aberta e o stopLoss mantém-se atrás do preço mais alto para bloquear os lucros e controlar o risco.
As principais vantagens desta estratégia são:
Há também alguns riscos:
Melhorias possíveis:
Possíveis direcções de otimização:
Esta estratégia fornece entrada automatizada baseada em data e gerenciamento de risco dinâmico por meio de stop loss.
/*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)