
Стратегия является торговой системой, основанной на нескольких технических показателях, в сочетании с пересечением скользящей средней (EMA), центральной точки ссылочной цены (CPR), фильтрацией объема сделки и автоматической остановкой / остановкой. Основная логика стратегии заключается в определении направления рыночной тенденции через пересечение короткой и медленной линии EMA, а также использовании CPR в качестве дополнительной точки ссылочной цены для подтверждения сигнала и проверки активности рынка с помощью фильтрации объема сделки, и, наконец, установка фиксированного процента остановок и остановок для управления риском и блокировки прибыли.
Основная логика сделки стратегии основана на следующих ключевых компонентах:
EMA перекрестная система: Стратегия использует 20-циклические и 50-циклические индикаторные движущиеся средние ((EMA) в качестве основного индикатора тренда. Когда быстрая ЭМА ((20 циклов) проходит медленную ЭМА ((50 циклов), генерируется многосигнал; когда быстрая ЭМА проходит медленную ЭМА ниже, генерируется пустой сигнал. Это классическая стратегия пересечения равновесных линий, используемая для захвата поворотных точек тренда.
CPR (цены центральных точек) подтвержденоCPR состоит из трех ключевых уровней цен: центральный ((Pivot), нижний центральный ((BC) и верхний центральный ((TC)). Эти уровни рассчитываются на основе высоких, низких и закрытых цен за предыдущий день. В большинстве случаев стратегия требует, чтобы цена находилась выше центральной точки; в случае пустоты цена должна находиться ниже центральной точки. Это увеличивает строгость условий торговли и может отфильтровать некоторые потенциальные ошибочные сигналы.
Фильтр объемов сделок: Чтобы избежать торговли при недостаточном объеме торгов, стратегия устанавливает условие, что объем торгов должен быть больше, чем 20-дневный средний объем торгов. Высокий объем торгов обычно означает высокую вовлеченность в рынок, что повышает надежность движения цен.
Автоматическая остановка / остановка: Стратегия устанавливает фиксированный процент стоп-порогов и остановок, основанных на цене входа. По умолчанию, стоп-порог находится на 1,5% ниже цены входа, а остановка на 3% выше цены входа. Это приводит к соотношению возврата к риску 1:2, что соответствует принципам здорового управления риском.
Визуализация сигналаСтратегия: интуитивно отображает сигналы покупки и продажи на графике в виде ярлыков и фигур, позволяющих трейдерам четко видеть точки входа.
Логика исполнения сделки проста: когда выполняются условия многодетной сделки (переход на EMA, цена выше центральной точки, условия объема сделки), стратегия входит в многоочередную позицию и одновременно устанавливает стоп-лосс и стоп-ордеры. Когда выполняются условия пустоты (переход под EMA, цена ниже центральной точки, условия объема сделки), стратегия входит в пустоту, а также устанавливает соответствующие стоп-лосс и стоп-ордеры.
Механизм многократного подтвержденияСтратегия объединяет индикаторы тренда (EMA), уровня цены (CPR) и объема торгов в систему многократного подтверждения. Это уменьшает вероятность ложных сигналов и повышает надежность торгов. Одиночный индикатор может создавать ошибочные сигналы, но подтверждение нескольких различных типов индикаторов увеличивает вероятность успешной торговли.
Умение адаптироватьсяС помощью настраиваемых параметров (например, длина EMA, стоп-процент, стоп-процент и использование фильтров объема сделки), стратегия может быть адаптирована к различным рыночным условиям и рисковым предпочтениям трейдеров. Это делает стратегию подходящей как для рынков с высокой волатильностью, так и для относительно стабильных рынков.
Интеграция управления рискомВ стратегии встроены автоматические механизмы остановки и остановки, чего не хватает многим базовым стратегиям. Это гарантирует, что каждая сделка имеет предопределенные цели риска и прибыли, избегая влияния эмоциональных решений на результаты торговли.
Визуальные торговые сигналы: Стратегия визуально отображает торговые сигналы на графике, позволяя трейдерам легко идентифицировать точки входа и выхода, что помогает отслеживать и корректировать стратегию.
Код прост и эффективенСтратегическая структура кода ясна, логически модулирована, легко понятна и изменяется. Это позволяет даже трейдерам с ограниченным опытом программирования понимать, как работает стратегия, и корректировать ее в соответствии с их потребностями.
Широкое применение: Стратегия применима к различным видам торговли, включая фьючерсы и акции, без специальной корректировки для конкретных рынков. Эта универсальность позволяет стратегии поддерживать относительно стабильную производительность в различных рыночных условиях.
Ложный перекрестный сигнал: EMA-крестная стратегия может вызывать многократные ложные крестные сигналы на горизонтальных или волатильных рынках, что приводит к последовательным убыточным сделкам. Хотя CPR и фильтры объема торгов помогают уменьшить эти ложные сигналы, это по-прежнему является значительным риском на рынках, где отсутствует четкая тенденция. Решение заключается в приостановке торговли на горизонтальных рынках или добавлении дополнительных признаков подтверждения тенденции.
Ограничения фиксированных стоп-убытковСтратегия: использование фиксированного процентного стоп-стопа, основанного на входной цене, который может не подходить для всех рыночных условий и волатильности. Фиксированный процентный стоп-стоп может быть слишком жестким в высоко волатильных рынках; в низко волатильных рынках может быть слишком мягким.
Скидки и риски исполненияСтратегия предполагает, что все ордера могут быть исполнены по заданной цене, но в реальном трейдинге могут быть проскальзывания и задержки в исполнении, особенно в рынках с ограниченной ликвидностью. Это может привести к тому, что результаты реального трейдинга будут отличаться от результатов обратной измерения.
Оптимизация параметров: эффективность стратегии сильно зависит от выбранных параметров (длина EMA, стоп-лосс/стоп-брок и т. д.); чрезмерная оптимизация параметров может привести к тому, что стратегия будет хорошо работать в обратном тестировании, но плохо работать в реальных сделках; решение - использование более длительных циклов обратного тестирования и тестирование эффективности стратегии в нескольких рыночных условиях;
Ограничения CPRСтратегия: использование данных дневной линии для расчета ЦПР, которая может быть недостаточно гибкой или быстро реагировать на сделки в течение дня или в более короткие временные рамки. Одним из возможных решений является адаптация цикла расчета ЦПР в зависимости от используемой временной рамки.
Фальшивые сигналыПростые критерии, основанные на том, что объем торгов превышает 20-дневную среднюю величину, могут быть недостаточно точными для определения активности рынка. В некоторых необычных торговых днях может наблюдаться резкое увеличение объема торгов, но это не означает истинного подтверждения тенденции. Можно рассмотреть возможность добавления более сложных анализов объема торгов, таких как тенденции объема торгов или относительные изменения объема торгов.
Улучшение механизма определения тенденцийВ настоящее время стратегия основывается на перекрестном распознавании трендов EMA. Можно рассмотреть возможность добавления дополнительных трендовых индикаторов, таких как ADX, чтобы гарантировать, что торговля будет проводиться только на рынках с сильными тенденциями. Это поможет отфильтровать ложные сигналы на рынках с поперечным диапазоном, повышая качество, а не количество сделок.
Динамическая остановка и остановкаНапример, можно установить стоп-лост в 2 раза выше ATR, а стоп-лост в 4 раза выше ATR, чтобы сохранить такую же доходность от риска, но лучше адаптироваться к рыночным условиям.
Улучшение анализа объема транзакций: можно улучшить фильтр объема сделок, чтобы он учитывал не только размер объема сделок, но и тенденции объема сделок и отношение цены к объему сделок. Например, можно добавить условия, требующие увеличения объема сделок в соответствии с направлением движения цены, или использовать более сложные показатели объема сделок, такие как OBV (энергетический поток).
Оптимизация времени поступленияПримечание: При появлении пересечения в текущей стратегии можно рассмотреть возможность добавления условий подтверждения, таких как ожидание восстановления цены до ключевых уровней поддержки/сопротивления или ожидание подтверждения на 1-2 цикла, чтобы снизить риск ложного прорыва. Это может быть достигнуто путем задержки сигнала входа или добавления подтверждения ценовой модели.
Добавить фильтр рыночной среды: Можно добавить логику оценки рыночной ситуации, например, оценить текущее состояние рынка с помощью волатильных показателей (например, VIX или ATR) и использовать различные параметры настройки или даже приостановить торговлю в разных рыночных условиях. Например, в высоко волатильных рынках могут потребоваться более широкие остановки и более консервативные размеры позиций.
Недостаток аналогичных транзакцийДля повышения применимости стратегии на рынках, где нет данных о количестве сделок или где данные о количестве сделок не являются надежными, можно разработать альтернативную версию, которая не требует количества сделок, например, использование диапазона колебаний цен или других технических показателей вместо подтверждения количества сделок.
Добавить фильтр времениПодумайте о добавлении временных фильтров, чтобы избежать торговли в периоды высокой волатильности перед открытием и закрытием рынка или во время публикации важных экономических данных. Это можно сделать, проверив текущие торговые часы и установив временные окна, позволяющие торговлю.
Эта торговая стратегия, основанная на перекрестных EMA, CPR и фильтрации объема торгов, обеспечивает комплексную торговую системную структуру в сочетании с отслеживанием тенденций, подтверждением уровня цен и проверкой объема торгов, а также встроенными функциями управления рисками. Основные преимущества стратегии заключаются в ее многочисленных механизмах подтверждения и автоматической установке остановок / остановок, что способствует повышению надежности и дисциплины торгов.
Однако, как и все торговые стратегии, она также сталкивается с некоторыми проблемами, такими как риск ложных сигналов и ограничения фиксированных параметров. С помощью вышеуказанных направлений оптимизации, в частности, улучшения идентификации тенденций, динамической остановки / остановки и усиленной фильтрации рыночных условий, можно еще больше повысить устойчивость и адаптивность стратегии.
Для трейдеров эта стратегия является хорошей отправной точкой, в которой можно настроить настройки в соответствии с личным стилем торговли и предпочтениями рынка. Самое важное, что независимо от того, как изменяется стратегия, всегда следует поддерживать принципы управления рисками, избегать чрезмерной оптимизации параметров и проводить полное отслеживание и проверку аналогичных сделок перед торговлей на реальных рынках.
/*backtest
start: 2024-05-20 00:00:00
end: 2025-05-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDC"}]
*/
//@version=6
strategy("Backtest: EMA + CPR + Volume + SL/Target", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=1)
// === INPUTS === //
emaFastLen = input.int(20, title="Fast EMA (20)")
emaSlowLen = input.int(50, title="Slow EMA (50)")
showCPR = input.bool(true, title="Show CPR?")
slPct = input.float(1.5, title="Stop Loss %") / 100
tpPct = input.float(3.0, title="Target %") / 100
useVolume = input.bool(true, title="Use Volume Filter?")
// === EMAs === //
emaFast = ta.ema(close, emaFastLen)
emaSlow = ta.ema(close, emaSlowLen)
bullishCross = ta.crossover(emaFast, emaSlow)
bearishCross = ta.crossunder(emaFast, emaSlow)
plot(emaFast, color=color.orange, title="EMA 20")
plot(emaSlow, color=color.blue, title="EMA 50")
// === CPR === //
prevHigh = request.security(syminfo.tickerid, "D", high[1])
prevLow = request.security(syminfo.tickerid, "D", low[1])
prevClose = request.security(syminfo.tickerid, "D", close[1])
pivot = (prevHigh + prevLow + prevClose) / 3
bc = (prevHigh + prevLow) / 2
tc = (pivot * 2) - bc
plot(showCPR ? pivot : na, color=color.gray, title="Pivot")
plot(showCPR ? bc : na, color=color.gray, title="CPR BC")
plot(showCPR ? tc : na, color=color.gray, title="CPR TC")
// === Volume Filter === //
volOK = not useVolume or (volume > ta.sma(volume, 20))
// === BUY / SELL CONDITIONS === //
longCondition = bullishCross and close > pivot and volOK
shortCondition = bearishCross and close < pivot and volOK
// === TRADE EXECUTION === //
if (longCondition)
strategy.entry("BUY", strategy.long)
strategy.exit("TP/SL", from_entry="BUY", stop=close * (1 - slPct), limit=close * (1 + tpPct))
if (shortCondition)
strategy.entry("SELL", strategy.short)
strategy.exit("TP/SL", from_entry="SELL", stop=close * (1 + slPct), limit=close * (1 - tpPct))
// === VISUAL SIGNALS === //
plotshape(longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")