Эта стратегия предназначена для входа в длинную позицию с конкретным днем запуска и механизмом отслеживания стоп-лосса для управления рисками. Она особенно полезна для трейдеров, которые хотят автоматизировать свои записи на основе конкретных календарных дат и управлять своими позициями с помощью динамического метода контроля риска, такого как отслеживание стоп-лосса.
Стратегия сначала принимает ввод конкретных дат входа, включая месяц и день, затем рассчитывает точную дату входа на основе этих дат.
На дату входа стратегия будет открывать длинную позицию. Одновременно она записывает самую высокую цену (highestPrice) и цену стоп-лосса (stopLoss).
Если цена упадет ниже стоп-лосса, позиция будет закрыта. В противном случае позиция останется открытой, а стоп-лосс будет держаться за самой высокой ценой, чтобы зафиксировать прибыль и контролировать риск.
Основными преимуществами этой стратегии являются:
Существуют также некоторые риски:
Возможные улучшения:
Возможные направления оптимизации:
Эта стратегия обеспечивает автоматизированный вход на основе даты и динамическое управление рисками с помощью стоп-лосса. Простая и интуитивно понятная в эксплуатации, подходящая для долгосрочных холдингов. Дальнейшие оптимизации могут сделать ее очень практичной стратегией торговли количеством.
/*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)