Стратегия прорыва импульса, основанная на следовании за трендом


Дата создания: 2024-01-05 13:38:18 Последнее изменение: 2024-01-05 13:38:18
Копировать: 0 Количество просмотров: 695
1
Подписаться
1621
Подписчики

Стратегия прорыва импульса, основанная на следовании за трендом

Обзор

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

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

Эта стратегия основана на СуперТренде, который определяет текущее направление тренда. СуперТренд в сочетании со средней реальной волной (ATR) рассчитывает поход и поход, когда цена прорывается вверх, это является позитивным сигналом, когда цена падает вниз, это является падением.

Когда индикатор супертенденции определяется как восходящий тренд, если эта K-линия является красным объектом (закрытие ниже открытия), то делается больше; когда индикатор супертенденции определяется как нисходящий тренд, если эта K-линия является зеленым объектом (закрытие выше открытия), то делается пустое. Таким образом, достигается динамическая прорывная сделка под отслеживанием тенденции.

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

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

Преимущества подводятся следующим образом:

  1. Фильтрация ложных прорывов в сочетании с оценкой тенденций и динамическими характеристиками
  2. Отслеживание трендов в реальном направлении, избегание контрастных торгов
  3. Высокая вероятность прибыли

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

Основные риски, связанные с этой стратегией:

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

Ответ на этот вопрос таков:

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

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

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

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

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

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

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

//Noro
//2018

//@version=2
strategy("Noro's SuperTrend Strategy v1.0", shorttitle = "ST str 1.0", 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(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %")
cloud = input(25, defval = 25, minval = 5, maxval = 50, title = "cloud, % of ATR")
Factor = input(title = "Super Trend", defval = 3, minval = 1, maxval = 100)
ATR = input(title = "ATR", defval = 7, minval = 1,maxval = 100)
centr = input(true, defval = true, title = "need center of ATR?")
border = input(false, defval = false, title = "need border?")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Super Trend ATR 1
src = close
Up=hl2-(Factor*atr(ATR))
Dn=hl2+(Factor*atr(ATR))
TUp=close[1]>TUp[1]? max(Up,TUp[1]) : Up
TDown=close[1]<TDown[1]? min(Dn,TDown[1]) : Dn
Trend = close > TDown[1] ? 1: close< TUp[1]? -1: nz(Trend[1],1)
Tsl1 = Trend==1? TUp: TDown
Tsl2 = Trend==1? TDown: TUp
limit = (Tsl1 - Tsl2) / 100 * cloud
upcloud = Tsl1 - limit
dncloud = Tsl2 + limit

//Cloud
linecolor = Trend == 1 ? green : red
centercolor = centr == true ? blue : na
cloudcolor = Trend == 1 ? green : red
cline = (Tsl1 + Tsl2) / 2
P1 = plot(Tsl1, color = border == false ? na : linecolor , style = line , linewidth = 1,title = "SuperTrend ATR-1")
P2 = plot(Tsl2, color = border == false ? na : linecolor , style = line , linewidth = 1,title = "SuperTrend ATR-2")
P3 = plot(cline, color = centercolor , style = line , linewidth = 1,title = "SuperTrend Center")
P4 = plot(upcloud, color = border == false ? na : linecolor , style = line , linewidth = 1,title = "SuperTrend Center+1")
P5 = plot(dncloud, color = border == false ? na : linecolor , style = line , linewidth = 1,title = "SuperTrend Center-1")
fill(P1, P4, color = linecolor == red ? red : lime, transp = 50)
fill(P2, P5, color = linecolor == red ? red : lime, transp = 50)

//Signals
up = Trend == 1 and close < open //and low < cline 
dn = Trend == -1 and close > open //and high > cline

//Trading
size = strategy.position_size
lot = 0.0
lot := size == 0 ? strategy.equity / close * capital / 100 : lot[1]
if up
    strategy.entry("Long", strategy.long, needlong ? lot : 0)

if dn
    strategy.entry("Short", strategy.short, needshort ? lot : 0)