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


Дата создания: 2024-02-04 15:42:23 Последнее изменение: 2024-02-04 15:42:23
Копировать: 0 Количество просмотров: 815
1
Подписаться
1617
Подписчики

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

Обзор стратегии

Эта стратегия объединяет три показателя: ленты Бринга, скользящие средние и MACD, чтобы сформировать более полную торговую систему.

Название стратегии и принципы

Название стратегии называется “Треугольник лимонных лимонных лимонных трендов”. Это название подчеркивает, что она использует три технических показателя одновременно при определении направления тенденции и лимонных лимонных точек входа в рынок.

Основная логика сделки заключается в следующем:

  1. Определение направления тренда. Для определения того, на каком этапе находится рынок в настоящее время: на многоголовом или на холодном этапе, используйте среднюю полосу по Бринскому поясу, EMA и нулевую ось MACD.

  2. Поиск времени для выхода на рынок. После определения тенденции в сторону плюс (или пустой), стратегия будет судить о выходе на рынок в зависимости от того, прорвет ли EMA среднюю орбиту Бринна, а также будет ли столбик MACD положительным (или отрицательным) к линии прорыва.

  3. Настройка остановки и остановки. После входа в поле, будет предварительно установлен фиксированный остановка и остановка.

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

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

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

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

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

Наконец, стратегия предусматривает условия для остановки и убытков, которые позволяют контролировать риск-прибыль отдельных сделок, что гарантирует стабильную работу в целом.

Анализ стратегических рисков

Несмотря на то, что в этой стратегии используются различные аналитические инструменты, основные риски:

  1. Неправильно настроенные параметры пояса Бурин, средняя орбитальная линия не может четко отражать основную тенденцию.

  2. Однолинейная система выдает многоголовый сигнал, но MACD не четко перенаправлен, и сила холостого голова может расшириться.

  3. Стоп-стоп может быть слишком большим, и один убыток может увеличиться.

Основные решения:

  1. Настройка параметров пояса Бринна, чтобы обеспечить эффективное отражение основных тенденций в орбитальной линии.

  2. Введение новых технических показателей для определения энергии в воздухе.

  3. Оценка исторических сделок и оптимизация параметров стоп-стоп-лосса.

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

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

  1. Введение дополнительных показателей для определения тенденций. Вспомогательные суждения, такие как KDJ, ATR, повышают точность суждения.

  2. На операционном уровне устанавливается более тонкий способ остановки. Например, перемещение остановки, увеличение доли остановки после прорыва нового высокого ((низкого)) и т. Д.

  3. Оценить эффективность различных сортов. Приспособить параметры к более специфическим особенностям.

  4. Тестирование эффективности и оценка обратной связи в разные временные рамки и рынки.

  5. Добавление алгоритмов машинного обучения, автоматическая оптимизация параметров и динамическое обновление правил стратегии.

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

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

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

//@version=5
strategy("Combined Strategy", overlay=true, shorttitle="Comb Strat", default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// Precio de beneficio y Stop Loss
takeProfitTicks = 87636
stopLossTicks = 53350

// Bollinger Bands + EMA
length_bb = input(150, title="BB Length")
src_bb = input(close, title="BB Source")
mult = input(2.0, title="BB StdDev")
basis = ta.sma(src_bb, length_bb)
dev = mult * ta.stdev(src_bb, length_bb)
upper = basis + dev
lower = basis - dev

len_ema = input(34, title="EMA Length")
src_ema = input(close, title="EMA Source")
out_ema = ta.ema(src_ema, len_ema)

typeMA = input("SMA", title="Method")
smoothingLength = input(5, title="Length")

var float smoothingLine = na
if (typeMA == "SMA")
    smoothingLine := ta.sma(out_ema, smoothingLength)
else if (typeMA == "EMA")
    smoothingLine := ta.ema(out_ema, smoothingLength)

// MACD
fast_length = input(title="Fast Length", defval=9)
slow_length = input(title="Slow Length", defval=17)
src_macd = input(title="Source", defval=close)
signal_length = input.int(title="Signal Smoothing", minval=1, maxval=50, defval=9)
sma_source = input.string(title="Oscillator MA Type", defval="EMA", options=["SMA", "EMA"])
sma_signal = input.string(title="Signal Line MA Type", defval="EMA", options=["SMA", "EMA"])

fast_ma = sma_source == "SMA" ? ta.sma(src_macd, fast_length) : ta.ema(src_macd, fast_length)
slow_ma = sma_source == "SMA" ? ta.sma(src_macd, slow_length) : ta.ema(src_macd, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length)
hist = macd - signal

// Condiciones de compra y venta
longCondition = (out_ema > basis) and (macd > signal) and (signal > 0)
shortCondition = (out_ema < basis) and (macd < signal) and (signal < 0)

// Variables de estado
var bool longExecuted = na
var bool shortExecuted = na

// Estrategia
if (longCondition and not longExecuted)
    strategy.entry("Long", strategy.long)
    longExecuted := true
    shortExecuted := na
if (shortCondition and not shortExecuted)
    strategy.entry("Short", strategy.short)
    shortExecuted := true
    longExecuted := na

// Take Profit y Stop Loss para Compras y Ventas Cortas
strategy.exit("Take Profit/Close Long", from_entry="Long", profit=takeProfitTicks, loss=stopLossTicks)
strategy.exit("Take Profit/Close Short", from_entry="Short", profit=takeProfitTicks, loss=stopLossTicks)

// Cierre de posiciones cuando la dirección cambia
if ((out_ema < basis) and (macd < signal))
    strategy.close("Long")
    longExecuted := na
if ((out_ema > basis) and (macd > signal))
    strategy.close("Short")
    shortExecuted := na

// Plots
plot(basis, "BB Basis", color=#FF6D00)
plot(upper, "BB Upper", color=color.new(#2962FF, 0.5))
plot(lower, "BB Lower", color=color.new(#2962FF, 0.5))

plot(smoothingLine, title="Smoothing Line", color=#f37f20, linewidth=2)

hline(0, "Zero Line", color=color.new(#787B86, 50))
plot(hist, title="Histogram", style=plot.style_columns, color=(hist >= 0 ? (hist[1] < hist ? color.green : color.red) : (hist[1] < hist ? color.red : color.green)))
plot(macd, title="MACD", color=color.blue)
plot(signal, title="Signal", color=color.orange)