Комбинированная торговая стратегия с использованием полос Боллинджера и экспоненциальной скользящей средней

EMA BB SMA
Дата создания: 2024-06-17 16:58:43 Последнее изменение: 2024-06-17 16:58:43
Копировать: 7 Количество просмотров: 1079
1
Подписаться
1617
Подписчики

Комбинированная торговая стратегия с использованием полос Боллинджера и экспоненциальной скользящей средней

Обзор

Эта стратегия в сочетании с полосами Буллинга и 5-дневными EMA создает торговый сигнал. Открывается открытая позиция, когда цена выходит за пределы полосы Буллинга и закрывается ниже 5-дневной EMA. Открывается многозадачная позиция, когда цена выходит за пределы полосы Буллинга и закрывается выше 5-дневной EMA.

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

  1. Вычислите верхнюю, среднюю и нижнюю полосы по Брин-ленте. Верхняя полоса - средняя полоса плюс два стандартных разрыва, нижняя полоса - средняя полоса минус два стандартных разрыва, средняя полоса - простая скользящая средняя цены закрытия.
  2. 5-дневная EMA рассчитывается в качестве отсчета тренда.
  3. Открытие позиции с пустой головой происходит, когда цена открытия выше, чем цена запуска по Брин-Бенду, и цена закрытия меньше 5-дневного EMA.
  4. Открыть позицию сверх залога, когда цена открытия торгового дня меньше, чем цена закрытия торгового дня с понижением по Бринскому поясу, и цена закрытия торгового дня больше, чем 5-дневная ЭМА.
  5. Если есть пустые позиции, при появлении многоголового сигнала, снимите пустые позиции и откройте многоголовые позиции.
  6. Если уже имеется многоголовый позиционный слой, при подаче сигнала пустого голова, выровняйте многоголовый слой и откройте пустое положение головы.
  7. Если у вас есть несколько позиций, вы должны погасить их при появлении сигнала о пустой ликвидации.
  8. Если у вас есть пустая позиция, вы должны вывести пустую позицию, когда будет вызван сигнал о многостороннем выравнивании.

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

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

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

  1. Неправильный выбор параметров может привести к искажению сигнала или чрезмерной торговле. Необходимо проводить оптимизационные тесты в зависимости от разновидности и цикла.
  2. Частые торговые сигналы могут возникать в условиях волатильности рынка, что приводит к чрезмерной торговле и увеличению затрат.
  3. Поскольку мы не можем определить точку перемены, мы можем пропустить лучший момент для входа в рынок.
  4. Одиночные комбинации технических показателей могут быть подвержены риску недействительности и нуждаются в проверке с другими сигналами.
  5. В экстремальных ситуациях риски могут выйти из-под контроля и требуют строгих мер по контролю риска.

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

  1. Оптимизация параметров, таких как длина, умножение и т. д., чтобы найти оптимальную комбинацию параметров.
  2. Оптимизация циклов EMA для выбора оптимального трендового цикла.
  3. Добавление других трендовых показателей, таких как MACD, в качестве вспомогательного суждения, повышает точность захвата тенденций.
  4. Внедрение показателей волатильности, таких как ATR, в качестве основы для хранения убытков и управления позициями, чтобы контролировать риски.
  5. Ограничение сроков торговли, чтобы избежать неэффективных колебаний в определенное время.
  6. В зависимости от особенностей рынка, настраивайте соответствующую стратегию стоп-стоп.

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

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

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

//@version=5
strategy("Bollinger Bands and EMA Strategy", overlay=true)

// Define the Bollinger Bands
length = input.int(20, title="BB Length")
src = input(close, title="BB Source")
mult = input.float(2.0, title="BB Multiplier")

basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev

// Plot Bollinger Bands
plot(upper, "Upper Band", color=color.red)
plot(lower, "Lower Band", color=color.green)
plot(basis, "Middle Band", color=color.blue)  // Use plot instead of hline for basis

// Define the 5-period EMA
ema5 = ta.ema(close, 5)

// Plot the 5 EMA
plot(ema5, "5 EMA", color=color.orange)

// Generate signals
var float entry_price = na
var string trade_direction = "none"

if (na(close[1]))
    trade_direction := "none"

// Condition for entering a short trade
if (open > upper and close < ema5)
    if (trade_direction != "short")
        strategy.entry("Short", strategy.short)
        entry_price := close
        trade_direction := "short"

// Condition for entering a long trade
if (open < lower and close > ema5)
    if (trade_direction != "long")
        strategy.entry("Long", strategy.long)
        entry_price := close
        trade_direction := "long"

// Close short trade on a long signal
if (trade_direction == "short" and open < lower and close > ema5)
    strategy.close("Short")
    strategy.entry("Long", strategy.long)
    entry_price := close
    trade_direction := "long"

// Close long trade on a short signal
if (trade_direction == "long" and open > upper and close < ema5)
    strategy.close("Long")
    strategy.entry("Short", strategy.short)
    entry_price := close
    trade_direction := "short"

// Close trades when opposite signal is generated
if (trade_direction == "long" and open > upper and close < ema5)
    strategy.close("Long")
    trade_direction := "none"

if (trade_direction == "short" and open < lower and close > ema5)
    strategy.close("Short")
    trade_direction := "none"