Норо сменил стратегию сдвига среднего стоп-лосса

Автор:Чао Чжан, Дата: 2024-01-30 15:49:34
Тэги:

img

Обзор

Стратегия стоп-лосса Noro Shifted Moving Average - это стратегия, следующая за трендом. Она рассчитывает 3-дневную простую скользящую среднюю линию и устанавливает длинную линию выше нее и линию стоп-лосса ниже нее в заданных процентах. Также устанавливаются линии получения прибыли. Это позволяет открывать позиции, когда начинаются тренды, и останавливаться, когда тенденции меняются.

Логика стратегии

Основой этой стратегии является вычисление 3-дневной простой скользящей средней линии ma. Затем процент lo добавляется выше ma, чтобы получить длинную линию для записей. Когда цена пересекает длинную линию, открываются длинные позиции. Ниже ma процент sl вычитается, чтобы получить линию стоп-лосса. Когда цена падает ниже стоп, позиции останавливаются.

Специфическими правилами являются:

  1. Вычислить 3-дневную простую скользящую среднюю
  2. Длинная линия длина = ma + ma * lo%
  3. Приобретение линии прибыли = текущая средняя цена держания + текущая средняя цена держания * tp%
  4. Стоп-линия стоп-потери = текущая средняя цена держания - текущая средняя цена держания * sl%

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

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

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

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

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

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

Еще один риск возникает из-за плохо установленных параметров, вызывающих слишком частые входы и выходы, увеличивающие комиссионные расходы.

Руководство по оптимизации

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

  1. Использование лимитных ордеров вместо стоп-ордеров для прекращения потерь, чтобы избежать рисков скольжения

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

  3. Добавление фильтров обнаружения трендов для предотвращения ложных сигналов на рынках без трендов

  4. Оптимизируйте параметры, чтобы найти оптимальные комбинации

Заключение

Стратегия Noro Shifted Moving Average Stop Loss - это простая и практичная стратегия, следующая за трендом. Она может автоматически отслеживать тенденции с контролем риска получения прибыли и остановки потери.


/*backtest
start: 2023-12-30 00:00:00
end: 2024-01-29 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//2019
//Noro

//@version=4
strategy("Stop-loss", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
lo = input(-5.0, title = "Long-line, %")
tp = input(5.0, title = "Take-profit")
sl = input(2.0, title = "Stop-loss")

//SMA
ma = sma(ohlc4, 3)
long = ma + ((ma / 100) * lo)

//Orders
avg = strategy.position_avg_price
if ma > 0
    strategy.entry("Long", strategy.long, limit = long)
    strategy.entry("Take", strategy.short, 0, limit = avg + ((avg / 100) * tp))
    strategy.entry("Stop", strategy.short, 0, stop = avg - ((avg / 100) * sl))
    
//Cancel order
if strategy.position_size == 0
    strategy.cancel("Take")
    strategy.cancel("Stop")

//Lines
plot(long, offset = 1, color = color.black, transp = 0)
take = avg != 0 ? avg + ((avg / 100) * tp) : long + ((long / 100) * tp)
stop = avg != 0 ? avg - ((avg / 100) * sl) : long - ((long / 100) * sl)
takelinecolor = avg == avg[1] and avg != 0 ? color.lime : na
stoplinecolor = avg == avg[1] and avg != 0 ? color.red : na
plot(take, offset = 1, color = takelinecolor, linewidth = 3, transp = 0)
plot(stop, offset = 1, color = stoplinecolor, linewidth = 3, transp = 0)

Больше