Стратегия торговли с двойной скользящей средней и комбинацией MACD

Автор:Чао Чжан, Дата: 2024-02-29 11:31:48
Тэги:

img

Обзор

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

Логика стратегии

Эта стратегия использует комбинацию 20-периодного простого скользящего среднего (SMA) и 5-периодного экспоненциального скользящего среднего (EMA). 20-периодный SMA может эффективно сглаживать колебания рынка и определять средне- и долгосрочные ценовые тенденции, в то время как 5-периодный EMA присваивает более высокие веса последним ценам и чувствительно реагирует на краткосрочные изменения цен. Сигналы покупки генерируются, когда цена пересекает линию 5-периодного значения выше 20-периодного значения, а сигналы продажи генерируются, когда цена пересекает линию 5-периодного значения ниже 20-периодного значения. Такая комбинация двойных скользящих средних обеспечивает, чтобы торговые сигналы следовали основным тенденциям, улучшая при этом чувствительность и срочность сигналов за счет внедрения краткосрочных скользящих средних.

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

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

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

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

Анализ рисков

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

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

Руководство по оптимизации

Дальнейшие оптимизации этой стратегии могут быть осуществлены в следующих направлениях:

  1. Внедрение адаптивных алгоритмов скользящих средних.

  2. Включить модели машинного обучения. Алгоритмы, такие как глубокое обучение, могут автоматически идентифицировать рыночные характеристики различных продуктов и выводить оптимальные параметры в режиме реального времени.

  3. В дополнение к текущим сигналам могут быть введены другие технические показатели в качестве вспомогательных стандартов оценки, такие как интеграция факторов объема.

  4. Оптимизировать стратегии стоп-лосса. Следует исследовать более интеллектуальные методы стоп-лосса, такие как прорыв стоп-лосса и отслеживание стоп-лосса, чтобы получить большую прибыль при контроле риска.

Резюме

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


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Bollinger Band Strategy with Early Signal (v5)", overlay=true)

// Inputs
length = 20
mult = 1.5
src = close
riskRewardRatio = input(3.0, title="Risk-Reward Ratio")

// Calculating Bollinger Bands
basis = ta.ema(src, length)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev

// Plotting Bollinger Bands
plot(upper, "Upper Band", color=color.red)
plot(lower, "Lower Band", color=color.green)

// Tracking Two Candles Ago Crossing Bollinger Bands
var float twoCandlesAgoUpperCrossLow = na
var float twoCandlesAgoLowerCrossHigh = na

if (close[2] > upper[2])
    twoCandlesAgoUpperCrossLow := low[2]
if (close[2] < lower[2])
    twoCandlesAgoLowerCrossHigh := high[2]

// Entry Conditions
longCondition = (not na(twoCandlesAgoLowerCrossHigh)) and (high > twoCandlesAgoLowerCrossHigh)
shortCondition = (not na(twoCandlesAgoUpperCrossLow)) and (low < twoCandlesAgoUpperCrossLow)

// Plotting Entry Points
plotshape(longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")

// Strategy Execution
if (longCondition)
    stopLoss = low - (high - low) * 0.05
    takeProfit = close + (close - stopLoss) * riskRewardRatio
    strategy.entry("Buy", strategy.long)
    strategy.exit("Exit Buy", "Buy", stop=stopLoss, limit=takeProfit)

if (shortCondition)
    stopLoss = high + (high - low) * 0.05
    takeProfit = close - (stopLoss - close) * riskRewardRatio
    strategy.entry("Sell", strategy.short)
    strategy.exit("Exit Sell", "Sell", stop=stopLoss, limit=takeProfit)


Больше