Гибридная торговая система на основе масштабированной скользящей средней и двойных полос Боллинджера

KC EMA ATR SL TP TA BTC ETH
Дата создания: 2025-03-26 14:21:48 Последнее изменение: 2025-03-26 14:21:48
Копировать: 0 Количество просмотров: 379
2
Подписаться
319
Подписчики

Гибридная торговая система на основе масштабированной скользящей средней и двойных полос Боллинджера Гибридная торговая система на основе масштабированной скользящей средней и двойных полос Боллинджера

Обзор

Эта стратегия представляет собой гибридную торговую систему, которая сочетает в себе Кентнерский канал и многоиндексную скользящую среднюю (EMA). Она улавливает условия перекупки и перепродажи, отслеживая взаимодействие цены с границей Кентнерского канала, а также использует пересечения краткосрочной и среднесрочной EMA для подтверждения динамики тренда. Этот двойной подход позволяет трейдерам торговать в различных рыночных условиях: как для обратной торговли, когда цена достигает границы канала, так и для подтверждения тенденции, когда она идет.

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

В основе этой стратегии лежат две различные системы торговых сигналов:

  1. Торговля в обратном направлении в Кентнерском проходе:

    • При прорыве цены вниз (lower KC) вызывается многосигнал (longEntryKC)
    • Когда цена пробивается вверх (upper KC), запускается короткий сигнал (shortEntryKC)
    • Ретроверсионная торговля при возвращении цены на среднюю траекторию (emaBasis)
  2. Тренд-трек:

    • Когда 9-циклическая EMA проходит через 21-циклическую EMA и цена находится выше 50-циклической EMA, запускается многосигнал longEntryTrend
    • Когда 9-циклическая ЭМА проходит 21-циклическую ЭМА и цена находится ниже 50-циклической ЭМА, то срабатывает сигнал короткого входа в тренд.
    • Тенденционная торговля занижена, когда краткосрочная ЭМА снова пересекает среднесрочную ЭМА

Сам канал Кентнер проходит через 20-циклическую ЭМА в качестве средней полосы, причем верхняя и нижняя полосы получают ATR в 1,5 раза больше, чем средняя полоса. Такая конструкция позволяет каналу регулировать ширину в соответствии с динамикой волатильности рынка, автоматически расширяясь в периоды высокой волатильности и автоматически сокращаясь в периоды низкой волатильности.

Система использует механизм управления рисками с использованием динамических стоп-лосс и прибыльных целей, основанных на ATR:

  • Настройка сверхстоп-лосса в 1,5 раза ниже начальной цены ATR
  • Стоп-лосс настройка на ATR в 1,5 раза выше входной цены
  • Поставьте цель увеличить прибыль в 3 раза выше цены входа (ATR = 2×1,5 ATR)
  • Цель прибыли на открытом рынке устанавливается в 3 раза ниже цены входа ATR ((2 × 1.5 ATR)

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

  1. Многостратегическое объединениеКомбинация двух стратегий: обратного трейдинга и отслеживания тенденций позволяет системе сохранять гибкость в различных рыночных условиях, позволяя как улавливать краткосрочные ценовые повороты, так и отслеживать среднесрочные и долгосрочные тенденции.

  2. Динамическое управление рискамиПоказатели ATR: Показатели ATR автоматически корректируются в зависимости от рыночной волатильности, обеспечивая более широкое пространство для остановки в периоды высокой волатильности и ужесточение контроля риска в периоды низкой волатильности.

  3. Механизм подтверждения сигнала: Трендовые сделки требуют одновременного удовлетворения нескольких условий (пересечение краткосрочной и среднесрочной ЭМА, а также нахождение цены на правильной стороне долгосрочной ЭМА), значительно снижает количество ложных сигналов.

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

  5. Полный торговый циклСтратегия четко определяет условия для входа, выхода, остановки и получения прибыли, создавая целостную торговую структуру.

  6. Автоматическое напоминаниеИнтегрированная функция оповещения TradingView позволяет получать автоматические сигналы о торговых сделках.

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

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

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

  3. Недостаточный уровень сдерживанияВ некоторых экстремальных волатильных ситуациях установка Stop Loss в 1,5 раза ATR может оказаться недостаточной, чтобы избежать воздействия рынка. Способ смягчения: для определенных высоковолатильных сортов можно рассмотреть возможность корректировки Stop Loss в 2 раза или выше.

  4. Конфликт множественных сигналовСмещение: можно установить приоритетность сигнала или применять две стратегии по отдельности в разных временных рамках.

  5. Параметр Чувствительность: Стратегическая производительность более чувствительна к выбору множественного числа Кентнерских каналов (mult) и цикла EMA. Способ смягчения: Рекомендуется проведение полной оптимизации параметров и обратной проверки до реального диска.

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

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

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

  3. Оптимизация управления капиталом: текущая стратегия использует фиксированную пропорцию ((10%) для управления позициями, которая может быть улучшена для динамической корректировки позиций на основе волатильности, увеличения позиций в условиях низкой волатильности и уменьшения позиций в условиях высокой волатильности.

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

    • В сочетании с RSI индикатор фильтрует отклонение от каналов Кентнера
    • Требуется подтверждение пересечения по EMA
    • Осуществление сделки только в направлении основного тренда
  5. Анализ многовременных рамок: введение определения тенденции в более высоких временных рамках, выполнение сигналов низких временных рамок только в направлении тенденции в высоких временных рамках.

  6. Оптимизация прибылиВ настоящее время используется ATR с фиксированным коэффициентом как цель для получения прибыли, но можно улучшить механизм стоп-лосса для максимизации прибыли от захвата тренда.

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

Кентнерский канал и смешанная торговая система EMA - это всеобъемлющая и гибкая торговая стратегия, которая обеспечивает адаптацию в различных рыночных условиях путем сочетания обратных и трендовых сигналов. Ее ключевые преимущества заключаются в динамической корректировке ширины канала и управлении рисками на основе ATR, что позволяет стратегии автоматически адаптироваться к изменениям волатильности рынка. Однако, стратегии по-прежнему содержат некоторые присущие риски, такие как проблемы с ложными прорывами и задержкой сигнала.

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

Исходный код стратегии
/*backtest
start: 2024-03-26 00:00:00
end: 2024-07-22 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=5
strategy("Keltner Channel Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// Keltner Channel Settings
length = 20
mult = 1.5
emaBasis = ta.ema(close, length)
atrVal = ta.atr(length)

upperKC = emaBasis + (mult * atrVal)
lowerKC = emaBasis - (mult * atrVal)

// Entry Conditions for Different Strategies
longEntryKC = ta.crossunder(close, lowerKC)
shortEntryKC = ta.crossover(close, upperKC)

longEntryTrend = ta.crossover(ta.ema(close, 9), ta.ema(close, 21)) and close > ta.ema(close, 50)
shortEntryTrend = ta.crossunder(ta.ema(close, 9), ta.ema(close, 21)) and close < ta.ema(close, 50)

// Stop-Loss and Take-Profit Levels
atrMultiplier = 1.5
stopLossLong = close - (atrMultiplier * atrVal)
stopLossShort = close + (atrMultiplier * atrVal)
takeProfitLong = close + (2 * atrMultiplier * atrVal)
takeProfitShort = close - (2 * atrMultiplier * atrVal)

// Exit Conditions
exitLongKC = ta.crossover(close, emaBasis)
exitShortKC = ta.crossunder(close, emaBasis)
exitLongTrend = ta.crossunder(ta.ema(close, 9), ta.ema(close, 21))
exitShortTrend = ta.crossover(ta.ema(close, 9), ta.ema(close, 21))

// Plot Keltner Channels
plot(upperKC, title="Upper Keltner Band", color=color.blue)
plot(lowerKC, title="Lower Keltner Band", color=color.red)
plot(emaBasis, title="Mid Keltner Band", color=color.gray)

// Execute Trades
strategy.entry("Long_KC", strategy.long, when=longEntryKC)
strategy.close("Long_KC", when=exitLongKC)
strategy.entry("Short_KC", strategy.short, when=shortEntryKC)
strategy.close("Short_KC", when=exitShortKC)

strategy.entry("Long_Trend", strategy.long, when=longEntryTrend)
strategy.close("Long_Trend", when=exitLongTrend)
strategy.entry("Short_Trend", strategy.short, when=shortEntryTrend)
strategy.close("Short_Trend", when=exitShortTrend)

// Stop-Loss and Take-Profit Implementation
strategy.exit("Long_KC_Exit", from_entry="Long_KC", stop=stopLossLong, limit=takeProfitLong)
strategy.exit("Short_KC_Exit", from_entry="Short_KC", stop=stopLossShort, limit=takeProfitShort)
strategy.exit("Long_Trend_Exit", from_entry="Long_Trend", stop=stopLossLong, limit=takeProfitLong)
strategy.exit("Short_Trend_Exit", from_entry="Short_Trend", stop=stopLossShort, limit=takeProfitShort)

// Alerts
alertcondition(longEntryKC, title="Long Entry KC Alert", message="Price touched Lower Keltner Band - Possible Long Setup")
alertcondition(shortEntryKC, title="Short Entry KC Alert", message="Price touched Upper Keltner Band - Possible Short Setup")
alertcondition(longEntryTrend, title="Long Entry Trend Alert", message="9 EMA crossed above 21 EMA - Possible Long Setup")
alertcondition(shortEntryTrend, title="Short Entry Trend Alert", message="9 EMA crossed below 21 EMA - Possible Short Setup")