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

MACD EMA SMA ROC
Дата создания: 2024-11-27 14:54:02 Последнее изменение: 2024-11-27 14:54:02
Копировать: 0 Количество просмотров: 441
1
Подписаться
1617
Подписчики

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

Обзор

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

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

Стратегия использует усовершенствованную систему MACD-индикаторов, которая включает в себя расчеты разности между быстрыми и медленными скользящими средними величинами (EMA12) и EMA26, а также сигнальные линии, основанные на двух циклах. Основная логика торговли основана на следующих ключевых моментах:

  1. Динамические изменения в тренде, рассчитанные на скорости изменения (hist_change) в столбцевом графике
  2. Когда столбик отрицательный и три последовательных цикла показывают восходящую тенденцию, предсказание может показать сигнал золотого форка, чтобы сделать более ранний вход
  3. Когда столбчатый график является положительным и в течение трех последовательных циклов демонстрирует нисходящую тенденцию, предварительно может возникнуть сигнал мертвой форки, выход из позиции
  4. Стратегия вводит механизм временной фильтрации, позволяющий торговать только в установленные временные рамки

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

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

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

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

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

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

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

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

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

//@version=5
strategy(title="Demo GPT - Moving Average Convergence Divergence", shorttitle="MACD", commission_type=strategy.commission.percent, commission_value=0.1, slippage=3, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// Getting inputs
fast_length = input(title="Fast Length", defval=12)
slow_length = input(title="Slow Length", defval=26)
src = input(title="Source", defval=close)
signal_length = input.int(title="Signal Smoothing", minval=1, maxval=50, defval=2)  // Set smoothing line to 2
sma_source = input.string(title="Oscillator MA Type", defval="EMA", options=["SMA", "EMA"])
sma_signal = input.string(title="Signal Line MA Type", defval="EMA", options=["SMA", "EMA"])

// Date inputs
start_date = input(title="Start Date", defval=timestamp("2018-01-01T00:00:00"))
end_date = input(title="End Date", defval=timestamp("2069-12-31T23:59:59"))

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

// Strategy logic
isInDateRange = true

// Calculate the rate of change of the histogram
hist_change = hist - hist[1]

// Anticipate a bullish crossover: histogram is negative, increasing, and approaching zero
anticipate_long = isInDateRange and hist < 0 and hist_change > 0 and hist > hist[1] and hist > hist[2]

// Anticipate an exit (bearish crossover): histogram is positive, decreasing, and approaching zero
anticipate_exit = isInDateRange and hist > 0 and hist_change < 0 and hist < hist[1] and hist < hist[2]

if anticipate_long
    strategy.entry("Long", strategy.long)

if anticipate_exit
    strategy.close("Long")

// Plotting
hline(0, "Zero Line", color=color.new(#787B86, 50))
plot(hist, title="Histogram", style=plot.style_columns, color=(hist >= 0 ? (hist > hist[1] ? #26A69A : #B2DFDB) : (hist < hist[1] ? #FF5252 : #FFCDD2)))
plot(macd, title="MACD", color=#2962FF)
plot(signal, title="Signal", color=#FF6D00)

// Plotting arrows when anticipating the crossover
plotshape(anticipate_long, title="Long +1", location=location.belowbar, color=color.green, style=shape.arrowup, size=size.tiny, text="Long +1")
plotshape(anticipate_exit, title="Short -1", location=location.abovebar, color=color.red, style=shape.arrowdown, size=size.tiny, text="Short -1")