
EMA-VWAP совместно с CBC отслеживает обратный тренд. Количественная торговая стратегия - это комплексная торговая система, объединяющая несколько технических индикаторов. В основе стратегии лежит использование индикаторов для формирования точного торгового сигнала, используя синхронную роль трех основных технических индикаторов: скользящая средняя ((EMA), средняя цена, взвешенная по объему сделок ((VWAP) и подтверждение ключевого ценового прорыва ((CBC)).
Эта стратегия особенно подходит для рынка, где есть четкая тенденция, и эффективно фильтрует ложные прорывы и шумовые сигналы, объединяя направленность краткосрочных и среднесрочных ЭМА с позиционным отношением к VWAP, а также добавляя подтверждение прорыва CBC. Также стратегия интегрирует ключевые ценные ссылки за день, включая высоты (PDH), низкие (PDL), закрытые цены (PDC) и уровни VWAP за предыдущий торговый день, а также высокие и низкие цены в понедельник, которые предоставляют богатую информацию о рынке для принятия решений о торговле.
Стратегия использует четкие правила входа и выхода, входящий сигнал требует, чтобы одновременно были выполнены несколько условий, а выход просто зависит от обратного сигнала CBC, реализуя философию торговли “по бонусу - по бонусу - по бонусу”.
Основные принципы стратегии основаны на взаимодействии четырех ключевых технологических элементов:
Многоциклическая система EMAСтратегия использует три линии EMA ((9 циклов, 20 циклов и 200 циклов) для определения тенденции. Относительное положение быстрой EMA ((9 циклов) и средней EMA ((20 циклов) используется для определения направления краткосрочной тенденции, когда быстрая EMA находится над средней EMA, рассматривается как позитивный сигнал; наоборот, рассматривается как нисходящий сигнал.
Основные показатели VWAPВВАП играет ключевую роль в стратегии в качестве точки равновесия между ценой и объемом сделок. В стратегии требуется, чтобы цена, быстрая ЭМА и средняя ЭМА находились на одной стороне с ВВАП, чтобы подтвердить единство и силу тенденции.
CBC ((Close, Break, Close) перевернутый сигналЭто основной триггер стратегии, который определяет эффективность прорыва путем обнаружения высоких или низких точек, когда цена превзошла предыдущий торговый день, и подтверждает их эффективность при закрытии. Когда цена превзошла предыдущий высокий уровень, CBC превратился в позитивный; когда цена превзошла предыдущий низкий уровень, CBC превратился в позитивный.
Ключевая система внутридневных ценСтратегия объединяет высокие, низкие, закрытые цены и уровни VWAP за предыдущий торговый день, а также высокие и низкие значения понедельника в качестве ориентира на всю неделю, чтобы сформировать полную структуру рынка.
Входная логика требует одновременного выполнения следующих условий:
Логика выхода напрямую зависит от обратного переворота CBC, то есть многоглазые в CBC переворачивают в понижение, когда они находятся в явном положении, и пустые в CBC переворачивают в понижение, когда они находятся в явном положении, что отражает сущность стратегии прогрессивного трейдинга.
Анализ кода стратегии показал следующие существенные преимущества:
Механизм многократного подтвержденияСтратегия требует, чтобы направление тренда EMA, отношение цены к положению VWAP и CBC-переворачивающий сигнал были синхронизированы, чтобы вызвать торговый сигнал, что эффективно снижает уровень ошибочных сообщений и повышает качество сигнала.
Тенденции сочетаются с обратнымиСтратегия: как улавливает тренды (по согласованности через EMA и VWAP), так и опирается на сигналы CBC, чтобы улавливать ключевые прорывы, уравновешивая преимущества отслеживания трендов и обратной торговли.
Полный справочник о структуре рынка: объединяет ключевые цены предыдущего торгового дня и высокие и низкие цены понедельника, предоставляя богатую информацию о рынке для принятия торговых решений, что помогает понять, где текущие цены находятся в более широкой структуре рынка.
Ясный визуальный отзывСтратегия использует богатые визуальные элементы, включая изменения цвета фона, форматные знаки и ярлыки, которые позволяют трейдерам интуитивно распознавать сигналы и текущее состояние рынка.
Простая логика выхода из игры: использование CBC обратного переворота в качестве выездного сигнала, предотвращение риска преждевременного выхода из игры или чрезмерного задержания, формирование системы, согласованной и симметричной с логикой входа в игру.
Настройка параметров адаптивности: Стратегия предлагает фильтрацию даты и несколько вариантов отображения, что позволяет трейдерам настраивать стратегию в соответствии с их потребностями, повышая гибкость и адаптивность стратегии.
Интеграция управления капиталомСтратегия: по умолчанию используйте процент средств счета для торговли, а не фиксированные суммы, что отражает хорошую осведомленность о управлении рисками, что способствует долгосрочному росту средств и контролю риска.
Несмотря на многочисленные преимущества этой стратегии, глубокий анализ кода показал следующие потенциальные риски:
Риск отставания:EMA по сути является отсталым показателем, который может привести к задержке сигнала, пропуску оптимальной точки входа или отсталой выходе на рынок в условиях сильной волатильности, что приводит к дополнительным потерям. Решение заключается в том, чтобы рассмотреть возможность корректировки параметров EMA или увеличения фильтра волатильности в условиях высокой волатильности.
Риск ложного проникновения: Несмотря на то, что логика CBC требует подтверждения прорыва в цене закрытия, рынок может быстро перевернуться после ложного прорыва. Решение заключается в том, чтобы рассмотреть возможность увеличения подтверждения объема сделок или установки условий фильтрации прорыва.
Чрезмерная зависимость от VWAP: В горизонтальных или узкополосных рынках цены могут часто пересекать VWAP, что приводит к увеличению сигнального шума. Решение заключается в том, чтобы приостановить торговлю или увеличить условия фильтрации колебаний при идентификации горизонтальных рынков.
Отсутствие механизмов сдерживанияВ текущей стратегии отсутствует четкий механизм остановки убытков, и она полностью зависит от отмены сигнала CBC, что может привести к большим убыткам в крайних случаях. Решение заключается в увеличении фиксированного остановки убытков или множественного остановки ATR и установлении максимального лимита убытков.
Недостаточная фильтрация даты: Хотя стратегия предоставляет функцию фильтрации даты, она не учитывает влияние на эффективность стратегии специальных рыночных событий (например, финансовых отчетов, политических объявлений и т. д.). Решение заключается в интеграции функции экономического календаря, которая автоматически корректирует или приостанавливает торговлю во время важных событий.
Отклонение от отслеживанияИспользование стратегии:fill_orders_on_standard_ohlc = trueПараметры, которые могут отличаться от реальных сделок в отсчете, что приводит к слишком оптимистичным результатам отсчета. Решение заключается в использовании пошагового моделирования или более реалистичного отсчета с учетом скольжения и стоимости сделки.
Одноциклическая зависимость: Стратегия работает только на одном временном цикле, отсутствует многоциклическое подтверждение, может пропустить обратный сигнал более крупного цикла. Решение заключается в рассмотрении интеграции механизма многоциклического подтверждения сигнала.
Основываясь на полном анализе кода стратегии, мы рекомендуем следующие направления оптимизации:
Добавление параметров адаптации: Циклы EMA могут быть динамически скорректированы в зависимости от волатильности рынка, используя более короткие циклы в высоковолатильных рынках и более длинные в низковолатильных, что повышает адаптацию стратегии к различным рыночным условиям. Это может быть достигнуто путем расчета ATR (средняя реальная волатильность) и отображения ее на диапазон циклов EMA.
Интегрированное подтверждение объема: Увеличение объема подтверждения транзакций на основе CBC-переворачивающегося сигнала, который запускается только в том случае, если прорыв сопровождается значительным увеличением объема транзакций, фильтруя низкокачественные прорывы. Это может быть достигнуто путем сравнения текущего объема транзакций со средним объемом транзакций за N циклов.
Присоединение к механизму погашения убытков: введение динамического стопа или фиксированного стопа на основе ATR, чтобы защитить средства от экстремальных явлений, пока не будет получен сигнал CBC. Рекомендуется внедрение функции отслеживания стопа, которая автоматически корректирует уровень стопа по мере движения цены в благоприятном направлении.
Многоциклическая синхронизацияУлучшение качества сигнала: Добавление проверки тенденций более высоких временных циклов, вход только в том случае, если направление тенденций больших циклов совпадает с направлением текущей торговли. Это можно сделать, запросив данные EMA более высоких циклов и проверив их направленность.
Классификация состояния рынка: Разработка модуля для идентификации состояния рынка, разграничение трендового рынка и горизонтального рынка, корректировка параметров стратегии или приостановка торговли при различных состояниях рынка. Для идентификации состояния рынка можно использовать ADX ((индекс среднего направления) или анализ диапазона колебаний цены.
Оптимизация управления капиталом: Динамическая коррекция размеров позиций на основе волатильности и выигрышной ставки, увеличение позиций при высоких выигрышных сигналах и уменьшение позиций при низких выигрышных сигналах. Динамическая коррекция позиций может быть реализована с помощью статистики исторических сигналов и расчета текущей волатильности рынка.
Добавление фильтра времениВнедрение фильтрации времени в течение дня, избегание периодов высокой волатильности перед открытием и закрытием, сосредоточение на торговле в периоды времени, когда рынок активен, но относительно стабилен. Можно настроить оптимизированные торговые часы в соответствии с особенностями времени торговли на разных рынках.
Оптимизация среды отслеживанияИспользование:fill_orders_on_standard_ohlc = falseВ этом случае, если вы используете более точные данные, то вы получите более достоверные результаты оценки стратегии.
EMA-VWAP совместно с CBC отслеживает обратный тренд, количественная торговая стратегия - это структурированная, логически ясная торговая система, которая формирует высококачественный торговый сигнал путем интеграции различных технических показателей и методов анализа ценового поведения. Основные преимущества этой стратегии заключаются в многократном подтверждении механизма и целостной системе ссылки на структуру рынка, которая эффективно снижает уровень ошибочных сообщений и повышает качество сигнала.
Стратегия использует философию торговли “вперед, вперед, вперед”, требует согласованного подтверждения нескольких условий при входе, а выходе зависит от обратных сигналов CBC, образуя логически согласованную и симметричную торговую систему. В то же время, стратегия интегрирует богатые элементы визуальной обратной связи и гибкую параметрическую настройку, улучшая пользовательский опыт и адаптивность.
Тем не менее, в стратегии также имеются потенциальные проблемы, такие как риск задержки, риск ложного прорыва и отсутствие механизма остановки убытков. Устойчивость и прибыльность стратегии могут быть дополнительно повышены путем добавления параметров адаптации, интеграции подтверждения объема оборота, включения оптимизационных мер, таких как механизм остановки убытков и многоциклическое синхронное подтверждение.
В целом, это хорошо разработанная основополагающая стратегическая структура, которая имеет потенциал стать стабильной торговой системой с разумной оптимизацией и конфигурацией управления рисками. В практическом применении трейдер должен индивидуализировать параметры стратегии в соответствии со своими рисковыми предпочтениями и торговыми целями и всегда поддерживать надлежащую дисциплину управления капиталом.
/*backtest
start: 2024-04-02 00:00:00
end: 2025-04-01 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=6
strategy("Maple&CBC Strategy", overlay = true, fill_orders_on_standard_ohlc = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)
// EMA's
fastEma = ta.ema(close, 9)
middleEma = ta.ema(close, 20)
slowEma = ta.ema(close, 200)
vwap = ta.vwap(close)
plot(fastEma, color=color.blue, title="9 EMA")
plot(middleEma, color=color.green, title="20 EMA")
plot(slowEma, color=color.red, title="200 EMA")
plot(vwap, color=color.yellow, title="VWAP")
// Input instellingen voor zichtbaarheid van lijnen
show_prev_day_high = input.bool(true, title="Toon Previous Day High")
show_prev_day_low = input.bool(true, title="Toon Previous Day Low")
show_prev_day_vwap = input.bool(true, title="Toon Previous Day VWAP")
show_prev_day_close = input.bool(true, title="Toon Previous Day Close")
show_monday_levels = input.bool(true, title="Toon Monday High/Low")
// Vorige dag niveaus
[dh, dl, dc, dv] = request.security(syminfo.tickerid, "D", [high[1], low[1], close[1], ta.vwap(close)[1]])
// Maandag High en Low
isMonday = dayofweek == dayofweek.monday
var float mondayHigh = na
var float mondayLow = na
if isMonday and barstate.isconfirmed
mondayHigh := high
mondayLow := low
// CBC Flip Logica
cbc = false
cbc := cbc[1]
if cbc and close < low[1]
cbc := false
if not cbc and close > high[1]
cbc := true
cbc_long = cbc and not cbc[1]
cbc_short = not cbc and cbc[1]
// EMA's bullish/bearish check
ema_bullish = fastEma > middleEma
ema_bearish = fastEma < middleEma
// Prijs boven/onder VWAP check
price_above_vwap = close > vwap
price_below_vwap = close < vwap
// ==================== STRATEGIE LOGICA ====================
// Long signaal: prijs boven VWAP + EMA's bullish + EMA's boven VWAP + CBC flip bullish
emas_above_vwap = fastEma > vwap and middleEma > vwap
longCondition = cbc_long and price_above_vwap and ema_bullish and emas_above_vwap and barstate.isconfirmed
// Short signaal: prijs onder VWAP + EMA's bearish + EMA's onder VWAP + CBC flip bearish
emas_below_vwap = fastEma < vwap and middleEma < vwap
shortCondition = cbc_short and price_below_vwap and ema_bearish and emas_below_vwap and barstate.isconfirmed
// Variabelen om bij te houden of we in een positie zitten
var bool inLongPosition = false
var bool inShortPosition = false
// Strategy entrypoints
if longCondition and not inLongPosition and not inShortPosition
strategy.entry("Long", strategy.long)
inLongPosition := true
inShortPosition := false
if shortCondition and not inShortPosition and not inLongPosition
strategy.entry("Short", strategy.short)
inShortPosition := true
inLongPosition := false
// Strategy exitpoints - wacht op tegenovergestelde CBC flip signaal
if cbc_short and inLongPosition
strategy.close("Long", comment="Exit Long on CBC flip short")
inLongPosition := false
if cbc_long and inShortPosition
strategy.close("Short", comment="Exit Short on CBC flip long")
inShortPosition := false
// Visuele weergave van signalen
plotshape(series=cbc_long, location=location.belowbar, color=color.green, style=shape.triangleup, title="Bulls")
plotshape(series=cbc_short, location=location.abovebar, color=color.red, style=shape.triangledown, title="Bears")
// Achtergrondkleur voor visuele ondersteuning
bgcolor(cbc_long ? color.rgb(255, 235, 59, 71) : cbc_short ? color.rgb(5, 185, 240, 59) : na)
// Extra achtergrondkleur voor trading signalen
bgcolor(longCondition ? color.rgb(0, 255, 0, 90) : shortCondition ? color.rgb(255, 0, 0, 90) : na)
// Labels voor de trading posities
if inLongPosition and barstate.islast
label.new(bar_index, low - (low * 0.002), "IN LONG", color=color.green, style=label.style_label_up, textcolor=color.white, size=size.small)
if inShortPosition and barstate.islast
label.new(bar_index, high + (high * 0.002), "IN SHORT", color=color.red, style=label.style_label_down, textcolor=color.white, size=size.small)