В процессе загрузки ресурсов... загрузка...

Динамическая стратегия отмены тренда

Автор:Чао Чжан, Дата: 2024-01-16 15:35:18
Тэги:

img

Обзор

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

  1. Используйте максимумы и минимумы цен вместо закрытых цен, чтобы определить тенденции, которые могут быстрее улавливать изменения цен.
  2. Максимальное число счетчиков составляет 7 вместо 9, что позволяет быстрее генерировать торговые сигналы.
  3. Добавьте опции для линий поддержки/сопротивления и 5-численных обращений в качестве стоп-лосса.

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

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

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

В стратегии определены следующие переменные:

  • sp_up: true, когда текущая высокая цена превышает высокую цену двух периодов назад
  • sp_dn: true, когда текущая низкая цена опускается ниже низкой цены 2 периодов назад
  • sp_ct: текущее число, увеличивается на 1 каждый раз, когда sp_up или sp_dn верно, максимум 7
  • sp_com: true, когда число равно 7
  • sp_usr: средняя цена при счете 7 и sp_up, служит восходящим сопротивлением
  • sp_dsr: средняя цена при подсчете 7 и sp_dn, служащая поддержкой в сторону падения

Логика генерации торговых сигналов:

  • Длинный сигнал: sp_com true и sp_dn true, указывающие на завершение подсчета и нисходящий тренд
  • Короткий сигнал: sp_com true и sp_up true, указывающие на завершение подсчета и рост

Логика стоп-лосса:

  • Длинный SL: пересчет перемены на 5 (sp_up true) или переход цены выше sp_usr
  • Краткий SL: перерасчет на 5 (sp_dn true) или переход цены ниже sp_dsr

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

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

По сравнению с традиционными JD Sequential стратегиями, Dynamic Trend Tracking Reversal Strategy имеет следующие преимущества:

  1. Использование сравнения высоко/низко быстрее, чем закрытие цены в захвате тенденций, и 7 подсчет генерирует сигналы быстрее, чем 9 подсчет.
  2. Усовершенствованный механизм стоп-лосса. Добавление 5-численных переворотов и поддержки / сопротивления стоп-лосса позволяет лучше контролировать риск.
  3. Гибкие конфигурации. опции для включения стоп-лосса и отображения частичного счета добавляют гибкости.
  4. Высокочастотные сигналы в сочетании с правильным стоп-лосом хорошо подходят для краткосрочной торговли.

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

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

Стратегия динамического отслеживания тенденций также сопряжена с некоторыми рисками:

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

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

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

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

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

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

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

  3. Машинное обучение для дополнительной проверки. Использование алгоритмов ИИ / ML в качестве вспомогательного суждения о торговых сигналах для сокращения ошибочных сделок.

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

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

  6. Расширение размера выборки и временных рамок для обратных тестов для оценки надежности параметров.

Заключение

Динамическая стратегия отслеживания тренда отслеживает краткосрочные возможности отмены цены путем сравнения максимумов и минимумов цен в режиме реального времени для определения направления и силы тренда, наряду с правилами 7-счета в рамках последовательного индикатора JD для планирования торговли.

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


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

// @NeoButane 7 Dec. 2018
// JD Aggressive Sequential Setup
// Not based off official Tom DeMarke documentation. As such, I have named the indicator JD instead oF TD to reflect this, and as a joke.
//
// Difference vs. TD Sequential: faster trade exits and a unique entry. Made for low timeframes.
// - Highs or lows are compared instead of close.
// - Mirrors only the Setup aspect of TD Sequential (1-9, not to 13)
// - Count maxes out at 7 instead of 9. Also part of the joke if I'm going to be honest here

// v1 - Release - Made as a strategy, 7 count
//    . S/R on 7 count
//   .. Entry on 7 count
//  ... Exit on 5 count or S/R cross

//@version=3
title = "JD Aggressive Sequential Setup"
vers  = " 1.0 [NeoButane]"
total = title + vers
strategy(total, total, 1, 0)

xx        = input(true, "Include S/R Crosses Into Stop Loss")
show_sp   = input(true, "Show Count 1-4")
sp_ct     = 0
inc_sp(x) => nz(x) == 7 ? 1 : nz(x) + 1
sp_up     = high > high[2]
sp_dn     = low < low[2]
sp_col    = sp_up ? green : red
sp_comCol = sp_up ? red : green
sp_ct    := sp_up ? (nz(sp_up[1]) and sp_col == sp_col[1] ? inc_sp(sp_ct[1]) : 1) : sp_dn ? (nz(sp_dn[1]) and sp_col == sp_col[1] ? inc_sp(sp_ct[1]) : 1) : na
sp_com    = sp_ct == 7
sp_sr     = valuewhen(sp_ct == 5, close, 0)
sp_usr    = valuewhen(sp_ct == 7 and sp_up, sma(hlc3, 2), 0)
sp_usr   := sp_usr <= sp_usr[1] * 1.0042 and sp_usr >= sp_usr[1] * 0.9958 ? sp_usr[1] : sp_usr
sp_dsr    = valuewhen(sp_ct == 7 and sp_dn, sma(hlc3, 2), 0)
sp_dsr   := sp_dsr <= sp_dsr[1] * 1.0042 and sp_dsr >= sp_dsr[1] * 0.9958 ? sp_dsr[1] : sp_dsr
locc = location.abovebar
plotchar(show_sp and sp_ct == 1, 'Setup: 1', '1', locc, sp_col, editable=false)
plotchar(show_sp and sp_ct == 2, 'Setup: 2', '2', locc, sp_col, editable=false)
plotchar(show_sp and sp_ct == 3, 'Setup: 3', '3', locc, sp_col, editable=false)
plotchar(show_sp and sp_ct == 4, 'Setup: 4', '4', locc, sp_col, editable=false)
plotshape(sp_ct == 5, 'Setup: 5', shape.xcross, locc, sp_comCol, 0, 0, '5', sp_col)
plotshape(sp_ct == 6, 'Setup: 6', shape.circle, locc, sp_comCol, 0, 0, '6', sp_col)
plotshape(sp_ct == 7, 'Setup: 7', shape.circle, locc, sp_comCol, 0, 0, '7', sp_col)
// plot(sp_sr, "5 Count Support/Resistance", gray, 2, 6)
plot(sp_usr, "7 Count Resistance", maroon, 2, 6)
plot(sp_dsr, "7 Count Support", green, 2, 6)

long  = (sp_com and sp_dn)
short = (sp_com and sp_up)
sl_l  = xx ? crossunder(close, sp_dsr) or (sp_ct == 5 and sp_up) or short : (sp_ct == 5 and sp_up) or short
sl_s  = xx ? crossover(close, sp_usr) or (sp_ct == 5 and sp_dn) or long : (sp_ct == 5 and sp_dn) or long

strategy.entry('L', 1, when = long)
strategy.close('L', when = sl_l)
strategy.entry('S', 0, when = short)
strategy.close('S', when = sl_s)

Больше