Стратегия следования за трендом на основе полос Боллинджера


Дата создания: 2024-01-18 16:37:56 Последнее изменение: 2024-01-18 16:37:56
Копировать: 0 Количество просмотров: 613
1
Подписаться
1617
Подписчики

Стратегия следования за трендом на основе полос Боллинджера

Обзор

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

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

Стратегия состоит в основном из индикаторов Брин-Бенда и скользящих средних.

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

Показатель скользящей среднейИспользуйте быстрые и медленные скользящие средние … … … … … … … … … . .

В соответствии с вышеуказанными правилами индикатора, конкретные торговые сигналы для этой стратегии следующие:

Сделайте больше сигналов: Закрытие цены пробило середину Брин-пояса и пробило медленное движение в средней скользящей средней

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

СтойкостьATR-стоп, стоп-пункт за вычетом 4 ATR-значений от текущей цены

Анализ преимуществ

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

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

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

ATR-стоп позволяет стоп-пойнту самостоятельно адаптироваться к колебаниям рынка, эффективно контролируя одиночные потери.

Анализ рисков

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

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

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

Эта стратегия может быть оптимизирована в следующих аспектах:

  1. Настройка параметров индикатора Брин-Бенда на рыночные особенности различных циклов

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

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

  4. Оптимизация управления позициями, увеличение позиций в условиях тренда и сокращение позиций в условиях потрясения

  5. Испытание различных методов сдерживания убытков в поисках лучших решений

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

Эта стратегия в целом является более типичной стратегией отслеживания тенденций. Она объединяет индикаторы Бриндовых полос и движущихся средних для определения ценовых тенденций и торговых возможностей.

Исходный код стратегии
/*backtest
start: 2024-01-10 00:00:00
end: 2024-01-17 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Robrecht99

//@version=5
strategy("Trend Following with Bollinger Bands", overlay=true, margin_long=100, margin_short=100, pyramiding=4)

// Bollinger Bands //

length = input.int(20, minval=1, group="Bollinger Bands Inputs")
src = input(close, title="Source", group="Bollinger Bands Inputs")
mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev")
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev
offset = input.int(0, "Offset", minval = -500, maxval = 500, group="Bollinger Bands Inputs")
plot(basis, "Basis", color=color.orange, offset = offset)
p1 = plot(upper, "Upper", color=color.orange, offset = offset)
p2 = plot(lower, "Lower", color=color.orange, offset = offset)
fill(p1, p2, title = "Background", color=color.rgb(255, 0, 255, 95))

// Moving Averages //

len1 = input.int(40, minval=1, title="Length Fast MA", group="Moving Average Inputs")
len2 = input.int(120, minval=1, title="Length Slow MA", group="Moving Average Inputs")
src1 = input(close, title="Source Fast MA")
src2 = input(close, title="Source Slow MA")
maColorFast = input.color(color.new(color.red, 0), title = "Color Fast MA", group = "Moving Average Inputs", inline = "maFast")
maColorSlow = input.color(color.new(color.purple, 0), title = "Color Slow MA", group = "Moving Average Inputs", inline = "maSlow")
fast = ta.ema(src1, len1) 
slow = ta.ema(src2, len2)
plot(fast, color=maColorFast, title="Fast EMA")
plot(slow, color=maColorSlow, title="Slow EMA")

// ATR Inputs //
strategy.initial_capital = 50000

lengthATR = input.int(title="ATR Period", defval=14, minval=1, group="ATR Input")
risk = input(title="Risk Per Trade", defval=0.01, group="ATR Input")
multiplier = input(title="ATR Multiplier", defval=2, group="ATR Inputs")
atr = ta.atr(length)
amount = (risk * strategy.initial_capital / (2 * atr))

// Buy and Sell Conditions //

entrycondition1 = ta.crossover(fast, slow)
entrycondition2 = fast > slow
sellcondition1 = ta.crossunder(fast, slow)
sellcondition2 = slow > fast

// Buy and Sell Signals //

if (close > basis and entrycondition2)
    strategy.entry("long", strategy.long, qty=amount)
    stoploss = close - atr * 4
    strategy.exit("exit sl", stop=stoploss, trail_offset=stoploss)
if (sellcondition1 and sellcondition2)
    strategy.close(id="long")

if (close < basis and sellcondition2)
    strategy.entry("short", strategy.short, qty=amount)
    stoploss = close + atr * 4
    strategy.exit("exit sl", stop=stoploss, trail_offset=stoploss)
if (entrycondition1 and entrycondition2)
    strategy.close(id="short")