Стратегия стохастического осциллятора «Полосы Боллинджера»

SMA
Дата создания: 2024-05-09 15:59:11 Последнее изменение: 2024-05-09 15:59:11
Копировать: 0 Количество просмотров: 836
1
Подписаться
1617
Подписчики

Стратегия стохастического осциллятора «Полосы Боллинджера»

Обзор

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

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

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

Случайный осциллятор состоит из двух линий: %K и %D. %K измеряет местоположение цены закрытия между наивысшей и самой низкой ценой за последнее время, а %D - это движущаяся средняя %K. Когда %K проходит через %D, это указывает на то, что рынок может быть перекуплен; когда %D проходит через %K, это указывает на то, что рынок может быть перепродан.

Эта стратегия объединяет эти два показателя, когда цена прорывает пояса Бурина вверх и случайная волна% K проходит через% D; когда цена падает по поясу Бурина вниз и случайная волна% K проходит через% D. Эта комбинация может эффективно улавливать тенденции рынка, а также позволяет избежать частых торгов на волатильных рынках.

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

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

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

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

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

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

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

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

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

//@version=5
strategy("Unique Bollinger Bands Strategy", overlay=true)
src = input(close)
length = input.int(34, minval=1)
mult = input.float(2.0, minval=0.001, maxval=50)

basis = ta.sma(src, length)
dev = ta.stdev(src, length)
dev2 = mult * dev

upper1 = basis + dev
lower1 = basis - dev
upper2 = basis + dev2
lower2 = basis - dev2

colorBasis = src >= basis ? color.blue : color.orange

pBasis = plot(basis, linewidth=2, color=colorBasis)
pUpper1 = plot(upper1, color=color.new(color.blue, 0), style=plot.style_circles)
pUpper2 = plot(upper2, color=color.new(color.blue, 0))
pLower1 = plot(lower1, color=color.new(color.orange, 0), style=plot.style_circles)
pLower2 = plot(lower2, color=color.new(color.orange, 0))

fill(pBasis, pUpper2, color=color.new(color.blue, 80))
fill(pUpper1, pUpper2, color=color.new(color.blue, 80))
fill(pBasis, pLower2, color=color.new(color.orange, 80))
fill(pLower1, pLower2, color=color.new(color.orange, 80))




// Parameters
bbLength = input.int(34, title="Length", minval=1)
bbMultiplier = input.float(2.0, title="Multiplier", minval=0.001, maxval=50)

// Source
priceData = close // Unique name for price data source

// Bollinger Bands Calculation
bbBasis = ta.sma(priceData, bbLength)
bbDeviation = ta.stdev(priceData, bbLength)
bbDeviationMultiplied = bbMultiplier * bbDeviation

bbUpperBand = bbBasis + bbDeviationMultiplied
bbLowerBand = bbBasis - bbDeviationMultiplied

// Plot Bollinger Bands
plot(bbBasis, color=color.blue, linewidth=2)
plot(bbUpperBand, color=color.blue)
plot(bbLowerBand, color=color.orange)

// Strategy Logic for Entry and Exit
enterLong = ta.crossover(priceData, bbUpperBand)
enterShort = ta.crossunder(priceData, bbLowerBand)

// Enter Long when price crosses over upper band
if (enterLong)
    strategy.entry("Long", strategy.long)
// Enter Short when price crosses under lower band
if (enterShort)
    strategy.entry("Short", strategy.short)

// Close Long when Short condition is met (i.e., price under lower band)
if (enterShort)
    strategy.close("Long")
// Close Short when Long condition is met (i.e., price over upper band)
if (enterLong)
    strategy.close("Short")