
Эта стратегия является торговой стратегией, основанной на поясах бурин и случайных колебателях. Она использует бурин для определения диапазона колебаний на рынке и использует случайные колебатели для определения состояния перекупа и перепродажи на рынке.
В основе этой стратегии лежат два технических показателя: брин-пояса и случайные волновые колебания. Брин-пояса состоят из трех линий: средний, верхний и нижний. Средний является простой скользящей средней цены, при этом верхний и нижний составляют некоторое кратное значение стандартной разницы цены плюс и минус средний.
Случайный осциллятор состоит из двух линий: %K и %D. %K измеряет местоположение цены закрытия между наивысшей и самой низкой ценой за последнее время, а %D - это движущаяся средняя %K. Когда %K проходит через %D, это указывает на то, что рынок может быть перекуплен; когда %D проходит через %K, это указывает на то, что рынок может быть перепродан.
Эта стратегия объединяет эти два показателя, когда цена прорывает пояса Бурина вверх и случайная волна% K проходит через% D; когда цена падает по поясу Бурина вниз и случайная волна% K проходит через% D. Эта комбинация может эффективно улавливать тенденции рынка, а также позволяет избежать частых торгов на волатильных рынках.
Эта стратегия является простой и эффективной торговой стратегией, которая позволяет получать устойчивую прибыль в условиях как тенденционного, так и шокирующего рынка путем объединения двух классических технических показателей, таких как ленты Брин и случайные колебатели. Несмотря на то, что эта стратегия также имеет некоторые риски и ограничения, ее эффективность и адаптивность могут быть дополнительно улучшены с помощью соответствующей оптимизации и улучшения.
/*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")