Комбинированная торговая стратегия Double SuperTend и MACD


Дата создания: 2023-09-26 17:45:03 Последнее изменение: 2023-09-26 17:45:03
Копировать: 0 Количество просмотров: 1606
1
Подписаться
1617
Подписчики

Обзор

Двойная стратегия торговли с комбинацией SuperTrend и MACD используется в сочетании с двумя индикаторами, отслеживающими тенденции (SuperTrend 1 и SuperTrend 2) и одним индикатором динамических колебаний (MACD), чтобы обеспечить последовательный, системный подход к торговле без необходимости субъективного суждения.

Ключевые преимущества этой стратегии:

  • Двойная проверка SuperTrend: с использованием двух индикаторов SuperTrend, ATR циклов и факторов различных, можно подтвердить направление тренда, механизм двойной проверки позволяет уменьшить ошибочный сигнал.

  • Подтверждение мощности: MACD-полюсная линия служит в качестве фильтра мощности, подтверждает вход и выход, увеличивает уровень верификации.

  • Объективный вход и выход: стратегия генерирует сигналы покупки и продажи в зависимости от направления тренда и комбинации динамик, без субъективного интерпретационного пространства.

  • Автоматизированное управление сделками: встроенные в стратегию комиссии, скольжение и настройка начального капитала, автоматизированное исполнение сделок.

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

Принципы

Стратегия работает по четкому набору правил, основное внимание уделяется направлению тренда, подтвержденному двойными супертрендами, и динамике, выраженной MACD-постными линиями.

Правила участия

  • Многоголовый вход: два индикатора SuperTrend многоголовы и MACD-постная линия больше 0。

  • Вход в пустоту: два индикатора SuperTrend пусты и MACD столбик меньше 0 .

Правила игры

  • Плюс-полюс: любой перевертыш SuperTrend или перевертыш MACD

  • Плоская позиция: любая из перевернутых сверхтенденций или коррекция MACD-полюса.

Управление сделками

  • Стратегия использует фиксированный процент комиссий и параметры скольжения.

  • Встроенная автоматическая функция управления рисками, предотвращает чрезмерное отключение.

Направление сделки

Эта стратегия позволяет проводить множество пустых двунаправленных сделок. Пользователь может выбрать направление торговли в зависимости от собственных рыночных представлений (только много, только пусто или много пусто).

Руководство по применению

  • Наиболее подходящий для периода времени, когда тенденция очевидна.

  • Пользователи могут корректировать ATR-циклы, факторы и MACD-параметры SuperTrend в зависимости от необходимости.

По умолчанию

  • Супертенд 1 ATR цикл:10

  • Супертенденция 1 фактор:3.0

  • СуперТренд 2 ATR цикл:20

  • Супертенденция 2 фактор: 5.0

  • Период MACD: 12

  • Продолжительность MACD: 26

  • Прямые циклы MACD: 9

  • Соотношение комиссионных: 0.1%

  • Точка скольжения: 1

  • Направление торговли: двустороннее

Параметры по умолчанию обеспечивают сбалансированный способ торговли, но могут быть настроены в соответствии с личными предпочтениями.

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

Эта стратегия имеет следующие преимущества:

  1. Подтверждение двойных тенденций снижает количество ложных сигналов

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

  1. Движущаяся фильтрация MACD повышает точность

В качестве вспомогательного критерия MACD-постная линия отфильтровывает некоторые нежелательные торговые сигналы и повышает точность входа.

  1. Сильный контроль за отступлением

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

  1. Высокий уровень автоматизации, без субъективного суждения

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

  1. Настраиваемость и адаптивность

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

Риск и оптимизация

Также существуют следующие риски:

  1. Трудность многополярной динамической трансформации

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

  1. Ограниченные возможности для отвода контроля

При сильных тенденциях стоп-цены могут отстать, а риск расширения может быть снижен.

  1. Невозможность реагировать на внезапные события

Поскольку не удалось оперативно реагировать на инцидент с черной лебедью, существует большая опасность отвода.

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

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

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

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

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

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

Исходный код стратегии
/*backtest
start: 2023-09-18 00:00:00
end: 2023-09-25 00:00:00
period: 30m
basePeriod: 15m
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/
// © PresentTrading

//@version=5
// Define the strategy settings
// strategy("Dual-Supertrend with MACD - Strategy [presentTrading]", overlay=true, precision=3, default_qty_type=strategy.cash, 
//  commission_value= 0.1, commission_type=strategy.commission.percent, slippage= 1, 
//   currency=currency.USD, default_qty_type = strategy.percent_of_equity, default_qty_value = 10, initial_capital= 10000)

// Trading Direction Dropdown
tradeDirection = input.string("both", "Trading Direction", options=["long", "short", "both"])

// MACD Inputs
fast_length = input(12, "Fast Length")
slow_length = input(26, "Slow Length")
signal_length = input(9, "Signal Smoothing")
sma_source = input.string("EMA", "Oscillator MA Type", options=["SMA", "EMA"])
sma_signal = input.string("EMA", "Signal Line MA Type", options=["SMA", "EMA"])


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

// Input Parameters for Supertrend 1
atrPeriod1 = input(10, "ATR Length for Supertrend 1")
factor1 = input.float(3.0, "Factor for Supertrend 1", step=0.01)

// Supertrend Calculation for 1
[supertrend1, direction1] = ta.supertrend(factor1, atrPeriod1)

// Input Parameters for Supertrend 2
atrPeriod2 = input(20, "ATR Length for Supertrend 2")
factor2 = input.float(5.0, "Factor for Supertrend 2", step=0.01)

// Supertrend Calculation for 2
[supertrend2, direction2] = ta.supertrend(factor2, atrPeriod2)

// Combined Conditions
isBullish = direction1 < 0 and direction2 < 0 and hist > 0
isBearish = direction1 > 0 and direction2 > 0 and hist < 0
exitLong = direction1 > 0 or direction2 > 0 or hist < 0
exitShort = direction1 < 0 or direction2 < 0 or hist > 0

// Strategy Entry and Exit based on Trading Direction
if (tradeDirection == "both" or tradeDirection == "long")
    strategy.entry("Buy", strategy.long, when=isBullish)
    strategy.close("Buy", when=exitLong)

if (tradeDirection == "both" or tradeDirection == "short")
    strategy.entry("Sell", strategy.short, when=isBearish)
    strategy.close("Sell", when=exitShort)

bodyMiddle1 = plot((open + close) / 2, display=display.none)
upTrend1 = plot(direction1 < 0 ? supertrend1 : na, "Up Trend", color = color.green, style=plot.style_linebr)
downTrend1 = plot(direction1 < 0? na : supertrend1, "Down Trend", color = color.red, style=plot.style_linebr)

fill(bodyMiddle1, upTrend1, color.new(color.green, 90), fillgaps=false)
fill(bodyMiddle1, downTrend1, color.new(color.red, 90), fillgaps=false)

bodyMiddle2 = plot((open + close) / 2, display=display.none)
upTrend2 = plot(direction2 < 0 ? supertrend2 : na, "Up Trend", color = color.green, style=plot.style_linebr)
downTrend2 = plot(direction2 < 0? na : supertrend2, "Down Trend", color = color.red, style=plot.style_linebr)

fill(bodyMiddle2, upTrend2, color.new(color.green, 90), fillgaps=false)
fill(bodyMiddle2, downTrend2, color.new(color.red, 90), fillgaps=false)