Торговая стратегия с двумя индикаторами, сочетающая следование тренду и импульс

SMA ATR MACD NNFX
Дата создания: 2024-09-26 16:14:22 Последнее изменение: 2024-09-26 16:14:22
Копировать: 1 Количество просмотров: 592
1
Подписаться
1617
Подписчики

Торговая стратегия с двумя индикаторами, сочетающая следование тренду и импульс

Обзор

Эта стратегия сочетает в себе два метода отслеживания тенденций и анализа динамики, используя показатели простого движущегося среднего ((SMA) и расхождения свертывания движущихся средних ((MACD) для выявления потенциальных торговых возможностей. Стратегия определяет тенденции на рынке в целом с помощью показателя Trendilo ((индикатор тренда, основанный на SMA), а также использует нулевую скрещивание MACD, чтобы улавливать изменения в краткосрочной динамике. Кроме того, стратегия использует диапазон среднего реального значения ((ATR) для динамического установления уровней стоп-лосса и прибыли, чтобы адаптироваться к изменению волатильности рынка.

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

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

  1. Индикатор Trendilo: использует простую движущуюся среднюю за 50 циклов для определения направления среднесрочных и долгосрочных тенденций.
  2. MACD нулевой пересечения: используется для захвата изменения краткосрочной динамики, в качестве входного сигнала.
  3. Настройка ATR stop loss/gain: использование 14-циклического ATR для динамической корректировки параметров управления рисками.

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

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

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

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

  1. Риск обратного тренда: хорошая работа на рынке с сильным трендом, но возможна потеря при рыночном повороте или быстром обратном тренде.
  2. Чувствительность к параметрам: эффективность стратегии может быть очень чувствительной к выбору входных параметров (например, циклов Трендило, умножения ATR и т. д.).
  3. Чрезмерная торговля: в условиях резкой волатильности рынка, может возникать частота торговых сигналов, увеличивающих стоимость сделки.
  4. Отставание: из-за использования скользящих средних стратегии могут упустить некоторые возможности в начале тренда.

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

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

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

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

Исходный код стратегии
/*backtest
start: 2019-12-23 08:00:00
end: 2024-09-24 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("NNFX Trendilo + Zero MACD Strategy", overlay=true)

// --- Inputs ---
atrPeriod = input.int(14, title="ATR Period")
stopLossMultiplier = input.float(1.5, minval=0.0, maxval = 20.0, step = 0.1 ,title="Stop Loss Multiplier")
takeProfitMultiplier = input.float(2.0, minval=0.0 , maxval = 20.0, step = 0.1,title="Take Profit Multiplier")

// --- Trendilo ---
trendiloPeriod = input.int(50, title="Trendilo Period")
trendilo = ta.sma(close, trendiloPeriod)

// --- MACD ---
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
macdZeroCrossUp = ta.crossover(macdLine, 0)
macdZeroCrossDown = ta.crossunder(macdLine, 0)

// --- ATR for Stop Loss and Take Profit ---
atr = ta.atr(atrPeriod)
stopLoss = atr * stopLossMultiplier
takeProfit = atr * takeProfitMultiplier

// --- Trading Logic ---
longCondition = macdZeroCrossUp and close > trendilo
shortCondition = macdZeroCrossDown and close < trendilo

// --- Execute Long Trades ---
if (longCondition)
    strategy.entry("Buy", strategy.long)
    strategy.exit("Take Profit/Stop Loss", "Buy", limit=close + takeProfit, stop=close - stopLoss)

// --- Execute Short Trades ---
if (shortCondition)
    strategy.entry("Sell", strategy.short)
    strategy.exit("Take Profit/Stop Loss", "Sell", limit=close - takeProfit, stop=close + stopLoss)

// --- Plot Signals ---
plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="Buy")
plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell")

// --- Plot Trendilo ---
plot(trendilo, color=color.blue, linewidth=2)