Динамическая стратегия отслеживания тренда - это краткосрочная количественная стратегия торговли, основанная на индикаторе JD Sequential. Отслеживая ценовые максимумы и минимумы в режиме реального времени, эта стратегия определяет текущее направление тренда и импульс для эффективного захвата точек отмены рынка для входа и выхода. По сравнению с традиционными стратегиями JD Sequential эта стратегия делает следующие улучшения:
Эта стратегия подходит для краткосрочных временных рамок, таких как 5-минутные и 15-минутные графики, которые могут эффективно отслеживать краткосрочные колебания цен и возможности реверсии.
Основная логика динамической стратегии отслеживания тренда основана на последовательном индикаторе JD. Сравнивая высокие и низкие цены текущего периода с ценами двух предыдущих периодов, этот индикатор определяет, произошли ли последовательные более высокие максимумы или более низкие минимумы, и генерирует последовательный подсчет от 1 до 7. Когда подсчет накапливается до 7, генерируются торговые сигналы.
В стратегии определены следующие переменные:
Логика генерации торговых сигналов:
Логика стоп-лосса:
Сравнивая максимумы / минимумы в режиме реального времени для определения направления и силы тренда, наряду с подсчетом времени для входа, эта стратегия может эффективно улавливать краткосрочные возможности реверсии.
По сравнению с традиционными JD Sequential стратегиями, Dynamic Trend Tracking Reversal Strategy имеет следующие преимущества:
Ключевым преимуществом этой стратегии является ее быстрая реакция, которая может эффективно улавливать большие колебания, вызванные краткосрочными событиями.
Стратегия динамического отслеживания тенденций также сопряжена с некоторыми рисками:
Для смягчения вышеуказанных рисков стратегия может быть оптимизирована в следующих аспектах:
Существует большое пространство для дальнейшей оптимизации стратегии динамического отслеживания тенденций, главным образом в следующих направлениях:
Определите направление основного тренда на более высоких временных отрезках, чтобы избежать торговли против него.
Комбинации с другими показателями: включить показатели волатильности, данные объема и т.д. для улучшения качества сигнала.
Машинное обучение для дополнительной проверки. Использование алгоритмов ИИ / ML в качестве вспомогательного суждения о торговых сигналах для сокращения ошибочных сделок.
Оптимизируйте параметры, такие как периоды подсчета, торговые сессии, размещение позиций и т. Д., Чтобы соответствовать различным рыночным условиям.
Расширить механизмы контроля рисков, внедрить более сложные методы управления рисками, такие как адаптивные остановки, размещение позиций и т. д., чтобы еще больше ограничить риски.
Расширение размера выборки и временных рамок для обратных тестов для оценки надежности параметров.
Динамическая стратегия отслеживания тренда отслеживает краткосрочные возможности отмены цены путем сравнения максимумов и минимумов цен в режиме реального времени для определения направления и силы тренда, наряду с правилами 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)