Стратегия сочетания супертенденции и полос Боллинджера

Автор:Чао Чжан, Дата: 2024-03-29 15:18:22
Тэги:

img

Обзор

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

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

  1. Вычислить средний истинный диапазон (ATR) и индикатор Supertrend для определения текущего направления тренда рынка.
  2. Вычислить верхнюю и нижнюю полосы Боллинджера для измерения волатильности рынка.
  3. Создание длинного сигнала, когда цена закрытия превышает линию супертенденции и находится ниже нижней полосы Боллинджера; создание короткого сигнала, когда цена закрытия превышает линию супертенденции и находится выше верхней полосы Боллинджера.
  4. При удержании длинной позиции, если цена закрытия превышает линию Supertrend, закрыть позицию; при удержании короткой позиции, если цена закрытия превышает линию Supertrend, закрыть позицию.

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

  1. Объединение информации как по тенденции, так и по волатильности позволяет более полно понять возможности рынка.
  2. Способность вовремя выходить на рынок, когда тенденция ясна, что помогает извлечь выгоду из тенденционных рынков.
  3. На нестабильном рынке сочетание полос Боллинджера и супертенденции может эффективно отфильтровать ложные сигналы прорыва и уменьшить риск потерь.
  4. Логика кода ясна, с небольшим количеством параметров, и ее легко понять и реализовать.

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

  1. На рынке с односторонним трендом из-за частых сигналов о выходе на рынок это может привести к чрезмерной частоте торговли и увеличению затрат на транзакции.
  2. Показатель Supertrend чувствителен к параметрам, и тенденции индикатора сильно различаются в зависимости от параметров, что может повлиять на эффективность стратегии.
  3. Ширина полос Боллинджера будет меняться с изменением волатильности рынка и может увеличивать стоп-лосс в условиях высокой волатильности.

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

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

Резюме

Стратегия сочетания Supertrend Bollinger Band - это стратегия, которая эффективно отслеживает тренды и может эффективно использовать трендовые возможности, объединяя два фактора рынка: тренд и волатильность. Однако эта стратегия также имеет определенные ограничения, такие как чувствительность к параметрам и повышенный риск в условиях высокой волатильности. Поэтому в фактическом применении необходимо надлежащим образом оптимизировать и улучшить стратегию в соответствии с характеристиками рынка и собственными предпочтениями к риску.


/*backtest
start: 2024-03-21 00:00:00
end: 2024-03-28 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © sabhiv27

//@version=4
strategy("Supertrend & Bollinger Bands Strategy", shorttitle="ST_BB_Strategy", overlay=true)

// Input options
factor = input(3, title="Supertrend Factor")
length = input(10, title="ATR Length")
bollinger_length = input(20, title="Bollinger Bands Length")
bollinger_deviation = input(2, title="Bollinger Bands Deviation")

// Calculate True Range for Supertrend
truerange = rma(tr, length)

// Calculate Supertrend
var float up_trend = na
var float dn_trend = na
var float trend = na
up_signal = hl2 - (factor * truerange)
dn_signal = hl2 + (factor * truerange)
up_trend := close[1] > up_trend[1] ? max(up_signal, up_trend[1]) : up_signal
dn_trend := close[1] < dn_trend[1] ? min(dn_signal, dn_trend[1]) : dn_signal
trend := close > dn_trend ? 1 : close < up_trend ? -1 : nz(trend[1], 1)

// Calculate Bollinger Bands
basis = sma(close, bollinger_length)
dev = stdev(close, bollinger_length)
upper_band = basis + bollinger_deviation * dev
lower_band = basis - bollinger_deviation * dev

// Entry conditions
long_condition = crossover(close, up_trend) and close < lower_band
short_condition = crossunder(close, dn_trend) and close > upper_band

// Exit conditions
exit_long_condition = crossover(close, dn_trend)
exit_short_condition = crossunder(close, up_trend)

// Plot Supertrend
plot(trend == 1 ? up_trend : dn_trend, color=trend == 1 ? color.green : color.red, linewidth=2)

// Plot Bollinger Bands
plot(upper_band, color=color.blue)
plot(lower_band, color=color.blue)

// Generate buy and sell signals
strategy.entry("Long", strategy.long, when=long_condition)
strategy.entry("Short", strategy.short, when=short_condition)
strategy.close("Long", when=exit_long_condition)
strategy.close("Short", when=exit_short_condition)

Больше