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


Дата создания: 2024-01-31 15:05:30 Последнее изменение: 2024-01-31 15:05:30
Копировать: 0 Количество просмотров: 655
1
Подписаться
1617
Подписчики

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

Обзор

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

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

Эта стратегия реализуется в основном через следующие шаги:

  1. Входные параметры: выбор лишнего или пустого, расчет длины цикла, параметры скольжения trailing stop
  2. Вычисление максимума и минимума: вычисление максимума и минимума в цикле на основе длины ввода
  3. Вычисление последующей стоп-линии: при лихве минимальная цена минус скольжение в качестве стоп-линии; при лихве максимальная цена плюс скольжение в качестве стоп-линии
  4. Открытие мирной позиции: когда цена касается линии остановки, закрывается текущая позиция и открывается новая позиция в обратном направлении

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

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

Основные преимущества этой стратегии:

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

В целом, эта стратегия позволяет эффективно управлять позициями с помощью простого механизма стоп-стоп. Это типичная стратегия управления рисками.

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

В этой стратегии также есть некоторые риски, о которых следует помнить:

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

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

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

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

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

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

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

Исходный код стратегии
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2019

//@version=4
strategy(title = "Noro's Trailing-Stop Strategy", shorttitle = "Trailing", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(false, defval = false, title = "Short")
length = input(20, minval = 1)
shift = input(0.0, minval = 0, title = "Trailing Stop")
background = input(false)

//Levels
max = highest(high, length)
min = lowest(low, length)

//Trailing
size = strategy.position_size
longtrailing = 0.0
shorttrailing = 0.0
longtrailing := size <= 0 ? min - ((min / 100) * shift) : max(min - ((min / 100) * shift), longtrailing[1])
shorttrailing := size >= 0 ? max + ((max / 100) * shift) : min(max + ((max / 100) * shift), shorttrailing[1])
trailing = size <= 0 ? shorttrailing : longtrailing
col = size == size[1] ? size > 0 ? color.red : color.lime : na
plot(trailing, color = col, linewidth = 2, transp = 0)

//Background
bgcol = background ? size > 0 ? color.lime : color.red : na
bgcolor(bgcol, transp = 80)

if trailing > 0 and size <= 0
    strategy.entry("Long", strategy.long, needlong ? na : 0, stop = trailing)
if trailing > 0 and size >= 0
    strategy.entry("Short", strategy.short, needshort ? na : 0, stop = trailing)