Стратегия BB Keltner Squeeze Trading

Автор:Чао Чжан, Дата: 2023-09-25 17:38:08
Тэги:

Обзор

BB Keltner Squeeze торговая стратегия определяет обратные тенденции путем поиска сжатия между полосами Боллинджера и каналами Келтнера. Это краткосрочная торговая стратегия. Стратегия использует полосы Боллинджера в качестве базового индикатора и каналы Келтнера для подтверждения сигналов.

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

Основными принципами этой стратегии являются:

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

  2. Келтнерские каналы подтверждают сигналы Боллинджера. Келтнерские каналы также измеряют волатильность цен. Когда цена приближается к полосам Боллинджера, сжатие с Келтнером означает повышенную волатильность и потенциальные переломы.

  3. Торговые сигналы генерируются на основе сжатий. Прорывы выше верхней полосы Боллинджера с сужением Келтнера ниже этого сигнала длинны. Разрывы ниже нижней полосы Боллинджера с сужением Келтнера выше этого сигнала короткие.

  4. Цены выше среднего диапазона сигнализируют о подъеме, а ниже - о падении.

  5. Входы и выходы основаны на направлении средней полосы.

Стратегия дополняет полосы Боллинджера каналами Келтнера для выявления точек переворота.

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

Основными преимуществами этой стратегии являются:

  1. Объединение двух показателей повышает надежность сигнала, избегая ложных перерывов от одного показателя.

  2. Интуитивно отслеживает тренд в реальном времени.

  3. Гибкая логика входа/выхода, основанная на совпадении средней полосы.

  4. Подходит для краткосрочной торговли, отслеживает краткосрочные прорывы и сжатия для быстрой прибыли.

  5. Интуитивно понятные визуальные эффекты подчеркивают сжатие, среднюю полосу, гистограмму MACD и т. Д. Чистое графическое представление.

  6. Простая логика и настраиваемые параметры делают принятие удобным.

Риски

Основные риски, которые следует учитывать:

  1. Сжатия могут вызвать серию проигрышных сделок во время сильных трендов.

  2. Риск неудачного прорыва.

  3. Риск оптимизации параметров. Неправильная настройка полос и каналов может ухудшить производительность. Требует строгих испытаний.

  4. Риск бычьего рынка. Чрезмерные шорты, вызванные длительными восходящими трендами. Избегайте применения во время бычьего рынка.

  5. Краткосрочный характер может увеличить затраты от комиссионных и сдвига.

  6. Сигналы могут перестать работать в экстремальных условиях.

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

Возможности для расширения

Некоторые способы улучшения стратегии:

  1. Включайте дополнительные показатели для усиления сигналов, улучшая показатель победы.

  2. Добавьте механизмы остановки потерь, такие как остановки отслеживания или остановки ATR, чтобы ограничить потери.

  3. Оптимизировать параметры для полос и каналов через строгие испытания.

  4. Корректировка размеров позиций на основе рыночных условий и силы тренда.

  5. Применение машинного обучения для оптимизации параметров, усиления сигнала и адаптации.

  6. Различить бычьи и медвежьи режимы. Уменьшить контра-тенд сделки во время сильного направленного уклонения.

  7. Дополнительные индикаторы объема и импульса для увеличения разнообразия сигналов.

При постоянном совершенствовании стратегия может стать надежной и последовательной краткосрочной торговой системой на различных рынках.

Заключение

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


/*backtest
start: 2023-09-17 00:00:00
end: 2023-09-24 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("BB Keltner Squeeze Strategy", overlay=true, initial_capital=10000, currency='USD')
length = input(title="Length", type=input.integer, defval=20, minval=0)
src = input(close, title="Source")
bband(length, mult) =>
    sma(close, length) + mult * stdev(close, length)
keltner(length, mult) =>
    ema(close, length) + mult * ema(tr, length)


//BB
B2mult = input(2.0, minval=0.001, maxval=50, title="Band 1 StDev")
B2basis = sma(src, length)
B2dev = B2mult * stdev(src, length)
B2upper = B2basis + B2dev
B2lower = B2basis - B2dev
plot(B2basis, color=color.blue)
p1 = plot(B2upper, color=#00ffff, linewidth=2, title="Band 2SD upper")
p2 = plot(B2lower, color=#00ffff, linewidth=2, title="Band 2SD lower")

//Keltner
useTrueRange = input(true)
Kmult = input(1.5, title="Keltner Range")
Kma = ema(src, length)
Krange = useTrueRange ? tr : high - low
Krangema = ema(Krange, length)
Kupper = Kma + Krangema * Kmult
Klower = Kma - Krangema * Kmult
p5 = plot(Kupper, color=color.yellow, linewidth=2, style=plot.style_circles, title="Keltner upper")
p6 = plot(Klower, color=color.yellow, linewidth=2, style=plot.style_circles, title="Keltner lower")


e1 = (highest(high, length) + lowest(low, length)) / 2 + sma(close, length)
osc = linreg(close - e1 / 2, length, 0)
diff = bband(length, 2) - keltner(length, 1)
osc_color = osc[1] < osc[0] ? osc[0] >= 0 ? #00ffff : #cc00cc : 
   osc[0] >= 0 ? #009b9b : #ff9bff
mid_color = diff >= 0 ? color.green : color.red
fromYear = year > 2014
toYear = year < 2016


direction = 0
squeeze = Kupper > B2upper
midc = 0
midc := squeeze ? 0 : close > B2basis ? 1 : 2
midcolor = midc == 0 ? #666666 : midc == 1 ? #00ff00 : #ff0000
direction := midc[1]

plot(B2basis, color=midcolor, linewidth=4, title="BB Mid")
bgcolor(midc == 0 ? #333333 : #000000, transp=75)

if direction == 0
    if midc[1] == 0 and midc == 1
        strategy.entry("LONG", strategy.long)
        direction := 1
    else if midc[1] == 0 and midc == 2
        strategy.entry("SHORT", strategy.short)
        direction := 2
else if direction != midc
    strategy.close_all()
    direction := 0








Больше