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