Стратегия торговли индексами с сильным индексом, основанная на двухполосной системе


Дата создания: 2023-12-12 17:12:35 Последнее изменение: 2023-12-12 17:47:33
Копировать: 1 Количество просмотров: 920
1
Подписаться
1621
Подписчики

Стратегия торговли индексами с сильным индексом, основанная на двухполосной системе

Обзор

Эта стратегия сочетает в себе индикатор двойного диапазона и индикатор сильного диапазона, реализуя модель прорыва. Когда быстрая EMA прорывает канал диапазона, в сочетании с многополюсным сигналом индикатора AO образуется сигнал покупки и продажи.

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

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

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

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

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

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

Решение проблемы

  1. Оптимизировать параметры по Брин-полосе и показателям AO, чтобы найти оптимальное сочетание.
  2. Увеличение интенсивности прорыва, чтобы избежать ложных прорывов.
  3. Использование в сочетании с другими индикаторами обеспечивает надежность торговых сигналов.

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

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

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

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

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

//@version=3

strategy(shorttitle="BB+AO STRAT", title="BB+AO STRAT", overlay=true)


// === BACKTEST RANGE ===
FromMonth = input(defval = 6, title = "From Month", minval = 1)
FromDay   = input(defval = 1, title = "From Day", minval = 1)
FromYear  = input(defval = 2018, title = "From Year", minval = 2014)
ToMonth   = input(defval = 1, title = "To Month", minval = 1)
ToDay     = input(defval = 1, title = "To Day", minval = 1)
ToYear    = input(defval = 9999, title = "To Year", minval = 2014)

// Bollinger Bands Inputs
bb_use_ema = input(false, title="Use EMA for Bollinger Band")
bb_length = input(5, minval=1, title="Bollinger Length")
bb_source = input(close, title="Bollinger Source")
bb_mult = input(2.0, title="Base Multiplier", minval=0.5, maxval=10)
// EMA inputs
fast_ma_len = input(2, title="Fast EMA length", minval=2)
// Awesome Inputs
nLengthSlow = input(34, minval=1, title="Awesome Length Slow")
nLengthFast = input(5, minval=1, title="Awesome Length Fast")




// Breakout Indicator Inputs
bb_basis = bb_use_ema ? ema(bb_source, bb_length) : sma(bb_source, bb_length)
fast_ma  = ema(bb_source, fast_ma_len)

// Deviation

dev = stdev(bb_source, bb_length)
bb_dev_inner = bb_mult * dev

// Upper bands
inner_high = bb_basis + bb_dev_inner
// Lower Bands
inner_low = bb_basis - bb_dev_inner

// Calculate Awesome Oscillator
xSMA1_hl2 = sma(hl2, nLengthFast)
xSMA2_hl2 = sma(hl2, nLengthSlow)
xSMA1_SMA2 = xSMA1_hl2 - xSMA2_hl2
// Calculate direction of AO
AO = xSMA1_SMA2>=0? xSMA1_SMA2 > xSMA1_SMA2[1] ? 1 : 2 : xSMA1_SMA2 > xSMA1_SMA2[1] ? -1 : -2



// === PLOTTING ===

// plot BB basis
plot(bb_basis, title="Basis Line", color=red, transp=10, linewidth=2)
// plot BB upper and lower bands
ubi = plot(inner_high, title="Upper Band Inner", color=blue, transp=10, linewidth=1)
lbi = plot(inner_low, title="Lower Band Inner", color=blue, transp=10, linewidth=1)
// center BB channel fill
fill(ubi, lbi, title="Center Channel Fill", color=silver, transp=90)

// plot fast ma
plot(fast_ma, title="Fast EMA", color=black, transp=10, linewidth=2)

// Calc breakouts
break_down =   crossunder(fast_ma, bb_basis) and close < bb_basis and abs(AO)==2
break_up   =  crossover(fast_ma, bb_basis) and close > bb_basis and abs(AO)==1

// Show Break Alerts
plotshape(break_down, title="Breakout Down", style=shape.arrowdown, location=location.abovebar, size=size.auto, text="Sell", color=red, transp=0)
plotshape(break_up, title="Breakout Up", style=shape.arrowup, location=location.belowbar, size=size.auto, text="Buy", color=green, transp=0)
// === ALERTS ===



strategy.entry("L", strategy.long, when=(break_up and (time > timestamp(FromYear, FromMonth, FromDay, 00, 00)) and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59))))


strategy.close("L", when=(break_down and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59))))

// === /PLOTTING ===
barcolor(AO == 2 ? red: AO == 1 ? green : blue )



// eof