Динамическая стратегия стоп-лосса


Дата создания: 2024-02-01 11:05:36 Последнее изменение: 2024-02-01 11:05:36
Копировать: 1 Количество просмотров: 576
1
Подписаться
1617
Подписчики

Динамическая стратегия стоп-лосса

Обзор

Эта стратегия является стратегией создания многоочередных позиций с определенной датой запуска и механизмом управления рисками trailing stop loss. Эта стратегия особенно подходит для трейдеров, которые хотят автоматизировать вход в позиции в соответствии с определенной календарной датой и управлять позициями с помощью динамических методов управления риском, таких как отслеживание стоп-лосса.

Стратегический принцип

Сначала стратегия вводит конкретные даты выхода на рынок, включая месячные, а затем вычисляет точные даты выхода на рынок на основе этих дат. Также вводится процентный параметр, который отслеживает стоп-убытки.

В тот же день, когда началась торговля, стратегия открывает несколько позиций. В то же время, записывается максимальная цена (highestPrice) и цена остановки (stopLoss).

Если цена ниже цены стоп-лосса, то выходит из позиции. В противном случае позиция остается, и цена стоп-лосса будет постоянно отслеживаться вниз в соответствии с максимальной ценой, таким образом, блокируя прибыль, контролируя риск.

Анализ преимуществ

Эта стратегия имеет следующие основные преимущества:

  1. Автоматизированный запуск в соответствии с определенной датой. Подходит для стратегий, связанных с крупными событиями.
  2. Применение механизмов отслеживания убытков, динамическое блокирование прибыли и эффективное управление рисками.
  3. Стоп-лост устанавливается по пропорциям, работает просто и интуитивно. Можно настроить стоп-лост.
  4. Это позволяет долгосрочно удерживать позиции и максимально извлекать прибыль от роста цены акций.

Анализ рисков

Однако эта стратегия также несет в себе некоторые риски:

  1. Существует риск потери эффекта остановки. Если цена акций в краткосрочной перспективе значительно снизится и превысит линию остановки, то отскок будет остановлен и не сможет участвовать в последующем отскоке.
  2. Максимальный убыток не может быть ограничен. Максимальный убыток может превышать идеальный диапазон, если установка стоп-рассчета для отслеживания слишком велика.

Соответствующие меры оптимизации:

  1. В сочетании с другими показателями, можно временно отключить отслеживание стоп-лосса, чтобы избежать потери эффекта стоп-лосса.
  2. Необходимо соблюдать осторожность при установке стоп-лосс, обычно не превышающего 10% или максимально допустимого значения убытков .

Направление оптимизации

Эта стратегия может быть оптимизирована в следующих направлениях:

  1. Добавление механизма сдерживания. Когда цена превышает определенный уровень, например, повышение на 50%, часть или вся прибыль заканчивается.
  2. В сочетании с индексами, используемыми для оценки структуры рынка, оптимизируются масштабы стоп-лосса. Например, при шоковой коррекции основного рынка, масштабы могут быть расширены.
  3. Добавление модуля управления позициями. Когда цена вновь достигнет нового максимума, можно рассмотреть вопрос о повышении позиции и дополнительной прибыли.

Подвести итог

Эта стратегия основана на выходе на рынок в определенные даты и использует методы отслеживания стоп-лосс, которые позволяют автоматизировать вход в рынок и динамично контролировать риск. Стратегия проста, интуитивно понятна, проста в использовании и подходит для долгосрочного хранения позиций.

Исходный код стратегии
/*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)