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

EMA RSI VWAP ADX MT
Дата создания: 2025-05-13 10:03:56 Последнее изменение: 2025-05-13 10:03:56
Копировать: 0 Количество просмотров: 461
2
Подписаться
319
Подписчики

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

Обзор стратегии

Эта количественная торговая стратегия, называемая “Многовременная динамическая система определения тенденций”, представляет собой комплексную систему, объединяющую различные технические показатели, в которой используются такие элементы, как пересекающиеся скользящие средние ((EMA), относительно сильные показатели ((RSI), средневзвешенные цены на объем сделок ((VWAP) и средний индекс направления ((ADX) для принятия торговых решений. Эта стратегия использует многократный анализ временных рамок, объединяет показатели тренда и динамики, эффективно идентифицирует рынки сверхпродажной зоны и определяет финансовые потоки учреждений, особенно подходит для краткосрочных поворотов тренда.

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

Ключевые принципы стратегии основаны на совместном подтверждении многоуровневых рыночных показателей. Во-первых, система рассчитывает индексные движущиеся средние за два различных периода (EMA) - короткий период (EMA) (9) и длительный период (EMA) (21) - для идентификации направления тенденции и потенциальных точек перехода. Второе, система получает данные о RSI (RSI) (14) с 15-минутного временного фрейма и вводит анализ на различные временные рамки для подтверждения состояния движения цены.

В частности, для открытого входа необходимо одновременно выполнить следующие условия: краткосрочная EMA с прохождением долгосрочной EMA ((пониженный пересекающийся), 15-минутный RSI больше 30 ((не перепроданный), VWAP значительно ниже двух EMA ((не менее 0,1%), что указывает на наличие у института давления на продажу и пониженный настрой. В то время как для многократного входа в настоящее время требуется только 15-минутный RSI ниже 30 ((перепроданный), не включенный в фильтр EMA и VWAP.

Кроме того, в стратегии также внедрены опциональные фильтры ADX, которые обеспечивают торговлю только в ясных тенденциях путем ручного вычисления значения ADX (до 14 длины по умолчанию) и установки минимального порога (до 20 по умолчанию). Пользователи могут включить или отключить фильтры ADX, что увеличивает гибкость стратегии.

Стратегические преимущества

  1. Многопоказательная синхронизация: в сочетании с четырьмя показателями EMA-cross, динамикой RSI, VWAP-институциональным денежным потоком и интенсивностью тренда ADX, образуется многоуровневый механизм подтверждения торговых сигналов, что значительно повышает надежность сигналов.

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

  3. Финансовые перспективыПрименение разрыва между VWAP и EMA в качестве индикатора участия в финансировании учреждений позволяет стратегии лучше идентифицировать реальные рыночные давления и зоны поддержки.

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

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

  6. Интеграция управления рискомВ стратегию встроены механизмы стоп-лосса и стоп-стопа (фиксированные ценовые точки), которые в сочетании с RSI используют условия перекупа и перепродажи в качестве сигнала выхода, формируя полный торговый закрытый цикл.

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

Стратегический риск

  1. Несовершенство многократного приемаЛогика перепродажи в текущей стратегии основана только на условиях перепродажи RSI < 30, отсутствие перекрестных EMA и фильтров VWAP может привести к преждевременному вхождению или частому перепродаже во время продолжающейся нисходящей тенденции, увеличивая риск потери.

  2. Настройка фиксированной остановки убытковСтратегия использует фиксированные баллы (стоп на 100 пунктов, стоп на 200 пунктов), а не динамические остановки, основанные на процентах или волатильности, которые могут быть недостаточно гибкими в различных волатильных условиях, высокий волатильный период может быть слишком слабым, низкий волатильный период может быть слишком жестким.

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

  4. Комплексность вычислений ADXРучное вычисление ADX увеличивает сложность кода, хотя и работает правильно, но имеет слабую поддерживаемость, и если вычисления будут искажены, это может привести к ошибочным тенденциям.

  5. VWAP-дифференциальная граница фиксирована:0.1% фиксированный порог VWAP может быть не применим ко всем рыночным условиям, может быть слишком мягким в высоко-волатильных рынках и слишком строгим в низко-волатильных рынках.

  6. Отсутствие анализа чувствительности отслеживания: код не показывает результаты оптимизации параметров или анализа чувствительности, не может быть определено, является ли текущая комбинация параметров (например, EMA 921, RSI 14, ADX 1420) оптимальной.

  7. Возможна задержкаЗапросы данных через временные рамки (request.security) могут в некоторых случаях вводить задержки данных, особенно в быстро меняющихся рынках, что влияет на точность времени транзакций.

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

  1. Умение использовать логику множественного входаДля добавления изображений в многостратегию требуется перекрестная фильтрация VWAP-условий и EMA, то есть требуется, чтобы VWAP значительно превышала два EMA (например, 0,1%) и на короткие сроки проносила долгосрочные EMA, чтобы обеспечить многопространственную логическую симметрию и повысить качество сигналов в многостратегию.

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

  3. Динамическая параметры остановки: Динамическая корректировка уровня стоп-стоп, основанная на средней реальной величине волны (ATR), чтобы риск-менеджмент был более адаптирован к текущим рыночным колебаниям, вместо текущей фиксированной точечной установки.

  4. Оптимизация расчета ADX: рассмотреть возможность использования встроенной в TradingView функции ta.adx (), чтобы заменить ручное вычисление, упростить код и улучшить обслуживание, а также добавить ADX для определения направления (связь между +DI и -DI) для дальнейшего уточнения направления тенденции.

  5. Динамический порог VWAP: Дизайн VWAP-диапазона как динамического параметра, основанного на рыночной волатильности, например, связанный с ATR, чтобы фильтрующие условия могли адаптироваться к различным рыночным условиям.

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

  7. Согласованность тенденций в нескольких временных рамках: Подумайте о том, чтобы добавить более высокие временные рамки (например, 1 час или 4 часа) для определения направления тренда, торгуйте только в тех случаях, когда тенденции совпадают в нескольких временных рамках, чтобы еще больше уменьшить ложные сигналы.

  8. Введение подтверждения объема сделкиУвеличение объемов сделок: подтверждение того, что объем сделок, требуемый при скрещивании EMA, значительно превышает средние значения предыдущих циклов, повышает надежность сигналов об изменении тренда.

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

“Многовременная динамическая система определения трендов” - это комплексная количественная стратегия, объединяющая различные инструменты технического анализа, обеспечивающая трейдерам относительно надежные сигналы входа и выхода через перекрестные EMA, динамику RSI, многократное подтверждение движения средств VWAP и интенсивности тренда ADX. Эта стратегия уделяет особое внимание анализу поведения средств учреждений в сочетании с розничными настроениями, а также учитывает особенности отслеживания тенденций и обратных сделок.

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

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

Исходный код стратегии
/*backtest
start: 2024-05-13 00:00:00
end: 2025-05-11 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("MinhPhan MA Crossover Strategy RSI 15m + ADX Toggle", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.001)

// === Inputs ===
shortLen = input.int(9, title="Short EMA")
longLen  = input.int(21, title="Long EMA")
useAdxFilter = input.bool(true, title="Enable ADX Filter?")
adxLen = input.int(14, title="ADX Length")
adxThresh = input.float(20, title="Min ADX to Trade")

// === EMAs ===
shortMA = ta.ema(close, shortLen)
longMA = ta.ema(close, longLen)

// === VWAP ===
vwap = ta.vwap

// === RSI from 15-minute timeframe ===
rsi_15m = request.security(syminfo.tickerid, "15", ta.rsi(close, 14))

// === Manual ADX Calculation ===
upMove   = high - high[1]
downMove = low[1] - low

plusDM  = na(upMove) or upMove <= downMove or upMove < 0 ? 0 : upMove
minusDM = na(downMove) or downMove <= upMove or downMove < 0 ? 0 : downMove

tr = math.max(math.max(high - low, math.abs(high - close[1])), math.abs(low - close[1]))

smoothedTR = ta.rma(tr, adxLen)
smoothedPlusDM = ta.rma(plusDM, adxLen)
smoothedMinusDM = ta.rma(minusDM, adxLen)

plusDI = 100 * smoothedPlusDM / smoothedTR
minusDI = 100 * smoothedMinusDM / smoothedTR
dx = 100 * math.abs(plusDI - minusDI) / (plusDI + minusDI)
adx = ta.rma(dx, adxLen)

isTrending = useAdxFilter ? adx > adxThresh : true  // ADX toggle logic

// === VWAP Gap Filter ===
gapThreshold = 0.001
vwapBelowEMAs = 
     (shortMA - vwap) / shortMA > gapThreshold and
     (longMA - vwap) / longMA > gapThreshold

// === Direction Control ===
tradeDirection = input.string(title="Trade Direction", defval="Both", options=["Long", "Short", "Both"])
allowLong = tradeDirection == "Long" or tradeDirection == "Both"
allowShort = tradeDirection == "Short" or tradeDirection == "Both"

// === Entry Conditions ===
if (allowLong and rsi_15m < 30 and isTrending)
    strategy.entry("Long", strategy.long)

if (allowShort and rsi_15m > 30 and ta.crossunder(shortMA, longMA) and vwapBelowEMAs and isTrending)
    strategy.entry("Short", strategy.short)

// === Exit Conditions ===
if (strategy.position_size > 0 and rsi_15m > 70)
    strategy.exit("Exit Long", from_entry="Long", loss=100, profit=200)

if (strategy.position_size < 0 and rsi_15m < 30)
    strategy.exit("Exit Short", from_entry="Short", loss=100, profit=200)

// === Plots ===
plot(shortMA, color=color.blue, title="Short EMA")
plot(longMA, color=color.red, title="Long EMA")
plot(vwap, title="VWAP", color=color.purple, linewidth=2)
plot(adx, title="ADX", color=color.orange)
hline(adxThresh, "ADX Threshold", color=color.gray, linestyle=hline.style_dashed)