Стратегия отслеживания двойного поворота


Дата создания: 2023-12-01 15:36:34 Последнее изменение: 2023-12-01 15:36:34
Копировать: 0 Количество просмотров: 566
1
Подписаться
1619
Подписчики

Стратегия отслеживания двойного поворота

Обзор

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

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

Стратегия двойного отслеживания конверсий использует два вида форм для получения торговых сигналов, включая формы конверсии с высокой ценой ((HHS) и формы конверсии с низкой ценой ((LLB)). Формула ее решения такова:

  1. HHS: закрыть[0] < close[1] и high[0] > high[1]
  2. Форма LLB: close[0] > close[1] и low[0] < low[1]

При выполнении вышеперечисленных условий создаются отдельные индексы бар и цены HHS и LLB. Затем стратегия будет в режиме реального времени отслеживать, не превзошла ли цена рекордно высокую цену. Когда цена превзошла высокую цену HHS, показавшую, что ценовая модель перешла в нисходящую тенденцию, стратегия открывает пустую позицию; наоборот, когда цена превзошла низкую цену LLB, показавшую, что ценовая модель перешла в восходящую тенденцию, стратегия открывает множественную позицию. Таким образом, стратегия двойного отслеживания поворотов позволяет динамично улавливать возможности для ценового перехода.

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

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

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

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

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

  3. Нарисуйте форматные и прорывные знаки, чтобы визуализировать процесс работы стратегии и легко проверить эффективность стратегии.

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

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

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

Также существуют определенные риски, связанные со стратегией двойного отслеживания поворотов, которые проявляются в следующем:

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

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

  3. Не существует механизмов по сдерживанию убытков, чтобы контролировать одиночные потери. В реальном мире необходимо установить разумную стратегию сдерживания убытков, чтобы контролировать одиночные потери в пределах допустимых.

  4. Оптимизирующие отклонения имеются в данных ретроспективных испытаний, которые могут оказаться менее эффективными, чем результаты ретроспективных испытаний.

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

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

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

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

  2. Включение модуля определения тенденции на большом уровне, чтобы избежать ошибочного пустоты во время основного подъема. Можно использовать индикаторы, такие как индикаторная подвижная средняя, для определения тенденции.

  3. Добавление стратегий остановки убытков, таких как отслеживание остановок, промежуточные остановки и т. д., чтобы контролировать единичные потери в пределах определенных пределов.

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

  5. Тестирование данных на реальном диске с более длительными временными циклами, оценка стабильности параметров и многократная итерационная оптимизация.

Оптимизация этих направлений может значительно улучшить производительность и стабильность стратегии.

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

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

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

//@version=4
strategy(title="Rev. FO", shorttitle="Rev. FO", overlay=true, pyramiding=0,calc_on_order_fills=true,calc_on_every_tick=true,default_qty_type=strategy.percent_of_equity,default_qty_value=50,initial_capital=1000,currency="USD",commission_type=strategy.commission.percent,commission_value=0.2,process_orders_on_close=false)

HHS = close[0] < close[1] and high[0] > high[1]
LLB = close[0] > close[1] and low[0] < low[1]

var trade_long = false
var text_status = "Awaiting Trade..."
var index_hhs = 0
var index_llb = 0
var price_hhs = 0.0
var price_llb = 0.0

if (HHS)
    trade_long := false
    text_status := "Trade in Short"
    index_hhs := bar_index
    price_hhs := high
if (LLB)
    trade_long := true
    text_status := "Trade in Long"
    index_llb := bar_index
    price_llb := low

plotshape(HHS, style=shape.labeldown, title="HHS", location=location.abovebar, color=color.red, text="HHS", textcolor=color.white,size=size.tiny)
plotshape(LLB, style=shape.labelup, title="LLB", location=location.belowbar, color=color.white, text="LLB", textcolor=color.white,size=size.tiny)

// HHS_top = line.new(index_hhs-1,price_hhs,bar_index,price_hhs,extend=extend.right,style=line.style_solid,width=1,color=color.red)
// LLB_bot = line.new(index_llb-1,price_llb,bar_index,price_llb,extend=extend.right,style=line.style_solid,width=1,color=color.white)
// line.delete(HHS_top[1])
// line.delete(LLB_bot[1])

//Calculates how far the signal is painted to right. 
hours = 5
lapos_x = timenow+1000*60*60*hours
lapos_y = highest(20)

// lb = label.new(lapos_x, lapos_y, text=text_status,color=trade_long?color.white:color.red,xloc = xloc.bar_time,style=label.style_diamond,textcolor=trade_long?color.white:color.red,size=size.small)
// label.delete(lb[1])

breakout_hhs = crossover(high,price_hhs)
breakout_llb = crossunder(low,price_llb)

bgcolor(breakout_hhs?color.lime:na,transp=50,title="BO HHS")
bgcolor(breakout_llb?color.maroon:na,transp=50,title="BO LLB")

long_condition = breakout_hhs
long_close = close < price_hhs or breakout_llb
short_condition = breakout_llb
short_close = close > price_llb or breakout_hhs

strategy.entry(id="long",long=true,comment="L",when=long_condition)
strategy.close(id="long",when=long_close)
strategy.entry(id="short",long=false,comment="S",when=short_condition)
strategy.close(id="short",when=short_close)