Двойная скользящая средняя MACD кросс-дата регулируемая количественная торговая стратегия

MACD EMA SMA MA
Дата создания: 2024-11-28 15:36:04 Последнее изменение: 2024-11-28 15:36:04
Копировать: 0 Количество просмотров: 458
1
Подписаться
1617
Подписчики

Двойная скользящая средняя MACD кросс-дата регулируемая количественная торговая стратегия

Обзор

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

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

Стратегия использует 8-циклические и 16-циклические индексные скользящие средние (EMA) для вычисления значения MACD и использует 11-циклические простые скользящие средние (SMA) в качестве сигнальной линии. При прохождении сигнальной линии по MACD вызывается сигнал покупки, а при прохождении - сигнал продажи. При этом стратегия вводит настройки 1% стоп-лосса и 2% стоп-стопа, а также выполняет сделки только в пределах времени, указанных пользователем (по умолчанию - весь 2023 год).

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

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

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

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

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

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

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

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

Исходный код стратегии
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-27 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_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/
// © sergengurgen83

//@version=5
strategy(title="MACD Crossover Strategy with Date Range", shorttitle="MACD Crossover strategys.g", overlay=true)

// Kullanıcı girişleri
fastLength = input.int(8, minval=1, title="Hızlı MA Süresi")
slowLength = input.int(16, minval=1, title="Yavaş MA Süresi")
signalLength = input.int(11, minval=1, title="Sinyal MA Süresi")
stopLossPercent = input.float(1.0, title="Stop-Loss Yüzdesi") / 100
takeProfitPercent = input.float(2.0, title="Kar Al Yüzdesi") / 100

// Tarih aralığı girişleri
startDate = input(timestamp("2023-01-01 00:00"), title="Başlangıç Tarihi")
endDate = input(timestamp("2023-12-31 23:59"), title="Bitiş Tarihi")

// Tarih aralığı kontrolü
inDateRange = true

// Hareketli Ortalamalar ve MACD Hesaplamaları
fastMA = ta.ema(close, fastLength)
slowMA = ta.ema(close, slowLength)
macd = fastMA - slowMA
signal = ta.sma(macd, signalLength)

// Alım ve Satım sinyalleri
buySignal = ta.crossover(macd, signal) and inDateRange
sellSignal = ta.crossunder(macd, signal) and inDateRange

// Strateji kuralları
if (buySignal)
    strategy.entry("Buy", strategy.long)
    
if (sellSignal)
    strategy.close("Buy")

// Stop-Loss ve Kar Al seviyeleri
strategy.exit("Sell", from_entry="Buy", loss=stopLossPercent * close, profit=takeProfitPercent * close)

// Sinyallerin grafikte gösterilmesi
plot(macd, color=color.blue, title="MACD")
plot(signal, color=color.red, title="Sinyal")
hline(0, color=color.purple, linestyle=hline.style_dashed)

plotshape(series=buySignal, location=location.belowbar, color=color.green, style=shape.labelup, title="Al", text="AL")
plotshape(series=sellSignal, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sat", text="SAT")