
Эта стратегия является средневзвешенной регрессивной стратегией, основанной на индексе буринской полосы и внутридневной силы. Она использует цену, чтобы преодолеть буринскую полосу и выйти на погоню, в сочетании с индикатором объема торгов в течение дня, чтобы определить время входа в игру.
Эта стратегия начинается с вычисления средних, верхних и нижних треков по Брин-поясу. Средние треки представляют собой простые скользящие средние или индексные скользящие средние для цены закрытия. Верхние и нижние треки строятся путем вычисления стандартного разрыва, а на средних треках добавляется уменьшение стандартного разрыва в два раза.
В качестве вспомогательного индикатора, стратегия вводит индикатор интенсивности в течение дня. Этот индикатор объединяет информацию о ценах и объемах сделок. Когда индекс положительный, он обозначает усиление покупательной силы, как сигнал о наличии большего количества позиций.
В случае открытия позиции, стратегия требует одновременного прорыва цены в коридор Бринга и выхода из индекса внутридневного силы. В случае остановки, стратегия принимает время для остановки и выходит из остановки, если она не приносит прибыли после определенного периода.
Наибольшее преимущество этой стратегии заключается в том, что она использует свойства среднего возврата цены для получения прибыли. Согласно статистическим законам, когда цена имеет большое отклонение, вероятность возврата цены к средней оси больше, что обеспечивает теоретическую основу для работы стратегии.
Еще одно преимущество заключается в том, что стратегия включает в себя индикатор загрузки и индекс интенсивности за сутки, чтобы фильтровать ценовые сигналы. Загрузка может подтвердить эффективность ценового сигнала. Это позволяет избежать ошибочных сигналов в некоторых случаях, когда цена сильно колеблется, а загрузка недостаточна.
Несмотря на то, что стратегия зависит от вероятности того, что цена вернется к среднему значению, чтобы получить прибыль, случайные движения цены на рынке также могут привести к тому, что будет вызван стоп-лосс, что приведет к убыткам. Это риск, с которым сталкиваются стратегии среднего значения.
Другой основной риск заключается в том, что возвращение цены к средней стоимости само по себе является длительным процессом. Для инвестора средства могут быть заперты на некоторое время. Этот риск времени может привести к тому, что инвесторы потеряют другие лучшие инвестиционные возможности.
Эта стратегия может быть оптимизирована в следующих аспектах:
Оптимизация параметров буринских поясов, циклов корректировки, стандартных отклонений для адаптации к колебаниям на различных рынках
Попробуйте другие типы скользящих средних, такие как линейные взвешенные скользящие средние, чтобы улучшить плавность
Попытайтесь использовать другие типы показателей объема сделок в поисках лучших сигналов подтверждения цены
Присоединение к стратегии стоп-стоп, чтобы контролировать максимальные потери для каждого заказа
Эта стратегия в целом является типичной стратегией среднезначного возврата. Зависимость от вероятности событий приносит прибыль, но риски также очевидны.
/*backtest
start: 2024-01-20 00:00:00
end: 2024-02-19 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// Bollinger Bands Strategy with Intraday Intensity Index
// by SparkyFlary
//For Educational Purposes
//Results can differ on different markets and can fail at any time. Profit is not guaranteed.
strategy(title="Bollinger Bands Strategy with Intraday Intensity Index", shorttitle="Bollinger Bands Strategy", overlay=true)
BBlength = input(20, title="Bollinger Bands length")
BBmaType = input("SMA", title="Bollinger Bands MA type", type=input.string, options=["SMA", "EMA"])
BBprice = input(close, title="source")
timeStop = input(10, title="Time-based stop length")
BBmult = input(2.0, title="Bollinger Bands Standard Deviation")
withIII = input(true, title="with Intraday Intensity Index?")
IIIlength = input(21, title="Intraday Intensity Index length")
//function for choosing moving averages
f_ma(type, src, len) =>
float result = 0
if type == "SMA"
result := sma(src, len)
if type == "EMA"
result := ema(src, len)
result
//Intraday Intensity Index
k1 = (2 * close - high - low) * volume
k2 = high != low ? high - low : 1
i = k1 / k2
iSum = sum(i, IIIlength)
//Bollinger Bands
BBbasis = f_ma(BBmaType, BBprice, BBlength)
BBdev = BBmult * stdev(BBprice, BBlength)
BBupper = BBbasis + BBdev
BBlower = BBbasis - BBdev
plot(BBupper, title="Bollinger Bands Upper Line")
plot(BBlower, title="Bollinger Bands Lower Line")
plot(BBbasis, title="Bollinger Bands Mid line", color=color.maroon)
//Strategy
buy = close[1]<BBlower[1] and close>BBlower and (withIII ? iSum>0 : 1)
sell = close>BBbasis or buy[timeStop] or (strategy.openprofit>0 and buy==0 and buy[1]==0 and buy[2]==0 and buy[3]==0)
short = close[1]>BBupper[1] and close<BBupper and (withIII ? iSum<0 : 1)
cover = close<BBbasis or short[timeStop] or (strategy.openprofit>0 and short==0 and short[1]==0 and short[2]==0 and short[3]==0)
strategy.entry(id="enter long", long=true, when=buy)
strategy.close(id="enter long", comment="exit long", when=sell)
strategy.entry(id="enter short", long=false, when=short)
strategy.close(id="enter short", comment="exit short", when=cover)