
Эта стратегия является стратегией создания многоочередных позиций с определенной датой запуска и механизмом управления рисками trailing stop loss. Эта стратегия особенно подходит для трейдеров, которые хотят автоматизировать вход в позиции в соответствии с определенной календарной датой и управлять позициями с помощью динамических методов управления риском, таких как отслеживание стоп-лосса.
Сначала стратегия вводит конкретные даты выхода на рынок, включая месячные, а затем вычисляет точные даты выхода на рынок на основе этих дат. Также вводится процентный параметр, который отслеживает стоп-убытки.
В тот же день, когда началась торговля, стратегия открывает несколько позиций. В то же время, записывается максимальная цена (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)