В процессе загрузки ресурсов... загрузка...

Bollinger Breakout с средней реверсией 4H

Автор:Чао Чжан, Дата: 2024-12-12 11:24:28
Тэги:ББАНДЫSMAСДТПSL

img

Обзор

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

Принципы стратегии

Основная логика основана на следующих ключевых элементах:

  1. Использует 20-периодную скользящую среднюю в качестве средней полосы с двумя стандартными отклонениями для диапазона волатильности
  2. Входные сигналы: длинные, когда корпус свечи (среднее количество открытых и закрытых) прерывается выше верхней полосы, короткие, когда прерывается ниже нижней полосы
  3. Сигналы выхода: Закрыть длинные позиции, когда две последовательные свечи имеют как открытые, так и закрытые цены ниже верхней полосы и закрыть ниже открытых; обратная логика для коротких позиций
  4. Контроль риска: устанавливает стоп-лосс на текущих высоких/низких точках свечи для обеспечения контролируемых потерь на одну сделку.

Преимущества стратегии

  1. Ясная логика торговли: сочетает в себе подходы к трендовой и реверсионной торговле для достижения хороших результатов в различных рыночных условиях
  2. Всеобъемлющий контроль рисков: реализация динамического стоп-лосса на основе волатильности свечей для эффективного контроля за снижением
  3. Фильтрация ложного сигнала: подтверждает прорыв с использованием положения тела свечи, а не просто ценой закрытия для уменьшения ложных потерь прорыва
  4. Правильное управление денежными средствами: динамическое регулирование размера позиций на основе собственного капитала счета, балансовой доходности и риска

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

  1. Боковой рыночный риск: может вызывать частые ложные сигналы прорыва на различных рынках, приводящие к последовательным остановкам.
  2. Риск использования кредитного плеча: 3-кратное использование кредитного плеча может привести к значительным потерям при крайней волатильности
  3. Риск установки стоп-лосса: использование высоких/низких точек свечи для остановок может быть слишком свободным, увеличивая потери на одну сделку.
  4. Временная зависимость: четырехчасовой график может реагировать слишком медленно в определенных рыночных условиях, упуская возможности

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

  1. Внедрить фильтр тренда: добавить более долгосрочные индикаторы тренда к торговле в первичном направлении тренда
  2. Оптимизировать подход стоп-лосса: рассмотреть возможность использования ATR или ширины полосы Боллинджера для динамических расстояний стоп-лосса
  3. Улучшить управление позициями: динамически корректировать рычаги воздействия на основе волатильности или силы тренда
  4. Добавить анализ рыночных условий: включить показатели объема или волатильности для определения состояния рынка для выборочного входа

Резюме

Эта стратегия сочетает в себе характеристики Bollinger Bands, следующие за трендом, и средние характеристики реверсии, достигая стабильной доходности как на трендовых, так и на рыночных рынках с помощью строгих условий входа/выхода и мер по контролю риска.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-10 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Bollinger 4H Follow", overlay=true, initial_capital=300, commission_type=strategy.commission.percent, commission_value=0.04)
// StartYear = input(2022,"Backtest Start Year") 
// StartMonth = input(1,"Backtest Start Month") 
// StartDay = input(1,"Backtest Start Day")

// testStart = timestamp(StartYear,StartMonth,StartDay,0,0)

// EndYear = input(2023,"Backtest End Year")
// EndMonth = input(12,"Backtest End Month")
// EndDay = input(31,"Backtest End Day")

// testEnd = timestamp(EndYear,EndMonth,EndDay,0,0)

lev = 3

// Input parameters
length = input.int(20, title="Bollinger Band Length")
mult = input.float(2.0, title="Bollinger Band Multiplier")

// Bollinger Bands calculation
basis = ta.sma(close, length)
upperBand = basis + mult * ta.stdev(close, length)
lowerBand = basis - mult * ta.stdev(close, length)

// Conditions for Open Long
openLongCondition = strategy.position_size == 0 and close > open and (close + open) / 2 > upperBand

// Conditions for Open Short
openShortCondition = strategy.position_size == 0 and close < open and (close + open) / 2 < lowerBand

// Conditions for Close Long
closeLongCondition = strategy.position_size > 0 and strategy.position_size > 0 and (close < upperBand and open < upperBand and close < open)

// Conditions for Close Short
closeShortCondition = strategy.position_size < 0 and strategy.position_size < 0 and (close > lowerBand and open > lowerBand and close > open)


// Long entry
if openLongCondition
    strategy.entry("Long", strategy.long, qty=strategy.equity * lev / close)
    strategy.exit("Long SL", from_entry="Long", stop=low)  // Set Stop-Loss

// Short entry
if openShortCondition
    strategy.entry("Short", strategy.short, qty=strategy.equity * lev / close)
    strategy.exit("Short SL", from_entry="Short", stop=high)  // Set Stop-Loss

// Long exit
if closeLongCondition
    strategy.close("Long", comment = "TP")

// Short exit
if closeShortCondition
    strategy.close("Short", comment = "TP")

// Plot Bollinger Bands
plot(upperBand, color=color.yellow, title="Upper Band")
plot(lowerBand, color=color.yellow, title="Lower Band")

Связанные

Больше