Адаптивная стратегия количественной торговли с отслеживанием тренда на основе KAMA и MACD

KAMA MACD ATR SL TP
Дата создания: 2025-02-20 10:33:36 Последнее изменение: 2025-02-20 15:01:37
Копировать: 1 Количество просмотров: 521
2
Подписаться
319
Подписчики

Адаптивная стратегия количественной торговли с отслеживанием тренда на основе KAMA и MACD Адаптивная стратегия количественной торговли с отслеживанием тренда на основе KAMA и MACD

Обзор

Стратегия представляет собой систему отслеживания трендов, основанную на Kaufman Adaptive Moving Average (KAMA) и MACD. Она позволяет разумно отслеживать рыночные тенденции и точно понимать время торговли, используя KAMA в качестве основного индикатора для определения тенденций в сочетании с MACD в качестве индикатора подтверждения динамики. Стратегия работает в 4-часовом временном фреймве и использует динамические цели для управления рисками.

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

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

  1. Вычисление KAMA: с использованием 50-циклического KAMA в качестве основного индикатора тенденций, динамически корректируя сглаживающий коэффициент с помощью эффективного соотношения, чтобы подвижная средняя могла лучше адаптироваться к рыночным условиям.
  2. Подтверждение MACD: использование MACD с более медленной установкой ((26, 52, 18) в качестве инструмента подтверждения тренда, чтобы гарантировать, что направление торговли соответствует общей динамике.
  3. ATR-стоп: использование 3-кратного 14-циклического ATR в качестве основы для расчета динамических стоп- и прибыльных целей.
  4. Правила торговли:
    • При условии, что цены находятся в позитивном состоянии и MACD находится в позитивном состоянии
    • Условия равновесия: цена пробилась через KAMA и MACD находится в состоянии падения
    • Управление рисками: динамические цели по остановке убытков и прибыли на основе ATR

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

  1. Умение адаптироваться: KAMA может автоматически корректировать чувствительность в зависимости от эффективности рынка, чтобы хорошо работать в различных рыночных условиях.
  2. Сигнал надежен: в сочетании с подтверждением MACD значительно снижается риск ложного проникновения.
  3. Улучшение управления рисками: использование динамических стоп-лостов и прибыльных целей, основанных на волатильности, чтобы сделать управление рисками более адаптивным.
  4. Большое пространство для оптимизации параметров: ключевые параметры могут быть скорректированы в соответствии с различными рыночными характеристиками.

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

  1. Риск обратного тренда: в условиях резкой волатильности рынка может быть больше ложных сигналов.
  2. Риск отставания: как KAMA, так и MACD имеют определенный риск отставания и могут пропустить лучший момент для вступления.
  3. Чувствительность параметров: в зависимости от рыночных условий параметры могут нуждаться в корректировке для поддержания эффективности стратегии.
  4. Воздействие на стоимость транзакций: частое совершение транзакций может привести к более высоким транзакционным затратам.

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

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

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

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

Исходный код стратегии
/*backtest
start: 2024-02-20 00:00:00
end: 2025-02-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © mckat

//@version=5
strategy("4-Hour KAMA Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// === Inputs ===
ama_length = input.int(50, title="KAMA Length for 4H")
fast_length = input.int(3, title="KAMA Fast Length")
slow_length = input.int(30, title="KAMA Slow Length")
atr_length = input.int(14, title="ATR Length")
atr_mult = input.float(3.0, title="ATR Multiplier for Stop-Loss & Take-Profit")
// === KAMA Calculation ===
var float kama = na
price_change = math.abs(close - close[ama_length])
volatility_sum = 0.0
for i = 0 to ama_length - 1
    volatility_sum := volatility_sum + math.abs(close[i] - close[i + 1])
efficiency_ratio = price_change / volatility_sum
smoothing_constant = math.pow(efficiency_ratio * (2 / (fast_length + 1) - 2 / (slow_length + 1)) + 2 / (slow_length + 1), 2)
kama := na(kama[1]) ? close : kama[1] + smoothing_constant * (close - kama[1])
// Plot KAMA
plot(kama, color=color.blue, title="KAMA (50)")
// === ATR for Stop-Loss and Take-Profit ===
atr = ta.atr(atr_length)
stop_loss = close - atr * atr_mult
take_profit = close + atr * atr_mult
// === MACD for Momentum Confirmation (Slow Settings for 4H) ===
[macd_line, signal_line, _] = ta.macd(close, 26, 52, 18)
macd_bullish = macd_line > signal_line
macd_bearish = macd_line < signal_line
// === Entry and Exit Conditions ===
buy_condition = ta.crossover(close, kama) and macd_bullish
sell_condition = ta.crossunder(close, kama) and macd_bearish
// === Execute Trades ===
if (buy_condition)
    strategy.entry("Buy", strategy.long)
if (sell_condition)
    strategy.close("Buy")
// === Dynamic Stop-Loss and Take-Profit ===
strategy.exit("Exit", "Buy", stop=stop_loss, limit=take_profit)
// === Plot Signals ===
plotshape(series=buy_condition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=sell_condition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")