Торговая стратегия «Возвращение к среднему» на основе полос Боллинджера и динамическая поддержка

BB SMA SD
Дата создания: 2024-07-31 14:19:48 Последнее изменение: 2024-07-31 14:19:48
Копировать: 4 Количество просмотров: 377
1
Подписаться
1166
Подписчики

Торговая стратегия «Возвращение к среднему» на основе полос Боллинджера и динамическая поддержка

Обзор

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

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

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

Эта стратегия работает следующим образом:

  1. Условия участия:

    • Устанавливается многоочередная позиция, когда цена прорывает среднюю полосу по Брин-Бенду и остается выше средней полосы в течение последующих двух торговых дней.
    • Это условие помогает гарантировать, что тенденция к росту является постоянной, а не только временными колебаниями цен.
  2. В результате, они получают прибыль.

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

    • Если цена снизится более чем на 2% от цены входа, ликвидируйте позицию.
    • Это помогает защитить деньги в случае резкого падения цен.
  4. Ограничения на однодневную торговлю:

    • Стратегия гарантирует, что не будет ни покупки, ни продажи в один день, если только не будет задействована стоп-лосс.
    • Это помогает избежать ненужных сделок и потенциальных колебаний цен.

Стратегия использует 20-дневную простую движущуюся среднюю ((SMA) в качестве средней полосы буринского пояса, причем верхняя и нижняя полосы соответствуют средней полосе плюс уменьшение в 2 раза стандартной разницы. Эти параметры могут быть скорректированы в зависимости от предпочтений трейдеров и рыночных условий.

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

  1. Динамично адаптироваться к рынку:

    • Брин-пояса автоматически корректируются в зависимости от волатильности рынка, что позволяет стратегии адаптироваться к различным рыночным условиям.
  2. Ясные сигналы входа и выхода:

    • Стратегия предоставляет четкие правила входа и выхода, что уменьшает необходимость субъективного суждения.
  3. Управление рисками:

    • Используя фиксированный процент стоп-лосса, стратегия позволяет эффективно контролировать риск каждой сделки.
  4. Принцип среднезначной регрессии:

    • Стратегия использует распространенный в финансовых рынках феномен среднезначного возврата, увеличивая возможность получения прибыли.
  5. Избегайте частых сделок:

    • Заявление о том, чтобы цена оставалась выше средней орбиты в течение двух торговых дней до входа в рынок, снижает количество ненужных сделок, вызванных ложными прорывами.
  6. Гибкость:

    • Параметры стратегии (например, длина ленты Брин, кратность стандартной разницы, стоп-процент) могут быть скорректированы в соответствии с различными рынками и личными предпочтениями.

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

  1. Неудача на рынке трендов:

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

    • На рынках с высокой волатильностью цены могут часто пересекать среднюю полосу, что приводит к чрезмерному количеству сделок и более высоким расходам на их совершение.
  3. Ограничения фиксированных стоп-убытков:

    • 2% фиксированного стоп-стоп может быть слишком большим или слишком маленьким в некоторых случаях и не может хорошо адаптироваться ко всем рыночным условиям.
  4. Скидки и риски ликвидности:

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

    • Показатели эффективности стратегии могут быть чувствительны к параметрам настройки по Брин-полосе и требуют тщательной оптимизации и обратной проверки.
  6. Фальшивые взломы:

    • Несмотря на наличие двухдневного механизма подтверждения, возможны фальшивые прорывы, которые могут привести к ненужным сделкам.

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

  1. Динамическая остановка:

    • Подумайте о том, чтобы использовать динамические остановки, основанные на волатильности рынка, такие как ATR (средняя реальная волновая amplitude), чтобы лучше адаптироваться к различным рыночным условиям.
  2. Анализ нескольких временных рамок:

    • Внедрение более длительного анализа временных рамок для обеспечения того, чтобы направление торговли соответствовало более широким тенденциям рынка.
  3. Количественно подтвержденные показатели:

    • Добавление других технических показателей (например, RSI или MACD) в качестве фильтров для улучшения качества входящего сигнала.
  4. Оптимизация динамических параметров:

    • Реализация динамической корректировки параметров буринских полос в соответствии с различными циклами и волатильностью рынка.
  5. Управление некоторыми позициями:

    • Введение механизма строительства и хранения складов в разрезе, чтобы лучше управлять рисками и улавливать колебания цен.
  6. Фильтрация рынка:

    • Присоединение к механизму идентификации рыночной среды, приостановка торговли в рыночной среде, не подходящей для торговли с возвратом средней стоимости.
  7. Оптимизация тормозной системы:

    • Подумайте о создании дополнительных тормозных условий вблизи верхней полосы, чтобы улавливать большие колебания цен.
  8. Расчеты по стоимости сделки:

    • В стратегическую логику следует учитывать стоимость сделки, чтобы избежать слишком частых мелких сделок.

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

Торговая стратегия возврата по средним по Брин-Бенду с динамической поддержкой - это количественный метод торговли, который сочетает в себе принципы технического анализа и статистики. Используя индикатор по Брин-Бенду, стратегия пытается захватить возможность его возврата после отклонения цены от средних значений, а также управлять риском с помощью динамической поддержки и механизма остановки убытков.

Основными преимуществами этой стратегии являются четкие правила торговли и динамическая адаптация к волатильности рынка. Однако она также подвержена риску неудачной работы на рынке с сильными тенденциями и возможной переторговке.

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

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

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

//@version=5
strategy("Mean Reversion Strategy with Bollinger Bands", overlay=true)

// Bollinger Bands settings
length = input.int(20, minval=1, title="Bollinger Bands Length")
src = input(close, title="Source")
mult = input.float(2.0, minval=0.1, title="Bollinger Bands Multiplier")

// Calculate Bollinger Bands
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev

// Plot Bollinger Bands
plot(basis, title="Middle Band", color=color.blue)
p1 = plot(upper, title="Upper Band", color=color.red)
p2 = plot(lower, title="Lower Band", color=color.red)
fill(p1, p2, color=color.rgb(255, 0, 0, 90))

// Buy condition: Price crosses above the middle band
longCondition = ta.crossover(close, basis)

// Close condition: Price touches the middle band
closeCondition = ta.crossunder(close, basis)

// Emergency stop condition: Price drops below 2% of entry price
dropCondition = strategy.position_size > 0 and close < strategy.position_avg_price * 0.98

// Plot Buy/Sell Signals only on initial cross
plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.triangleup, textcolor=color.black, text="BUY", size=size.small)
plotshape(series=closeCondition and not dropCondition, location=location.abovebar, color=color.red, style=shape.triangledown, textcolor=color.black, text="SELL", size=size.small)
plotshape(series=dropCondition, location=location.abovebar, color=color.red, style=shape.triangledown, textcolor=color.black, text="STOP", size=size.small)

// Track entry date to ensure no same-day buy/sell
var float entryPrice = na
var int entryYear = na
var int entryMonth = na
var int entryDay = na

// Strategy Logic
if (longCondition and (na(entryDay) or (year != entryYear or month != entryMonth or dayofmonth != entryDay))) 
    strategy.entry("Long", strategy.long)
    entryPrice := close
    entryYear := year
    entryMonth := month
    entryDay := dayofmonth

if ((closeCondition or dropCondition) and strategy.position_size > 0 and (na(entryDay) or (year != entryYear or month != entryMonth or dayofmonth != entryDay or dropCondition)))
    strategy.close("Long")
    entryDay := na