В процессе загрузки ресурсов... загрузка...

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

Автор:Чао Чжан, Дата: 2024-05-24 18:14:37
Тэги:MACDЕМАSMA

img

Обзор

Эта стратегия основана на нулевой версии индикатора MACD (Moving Average Convergence Divergence), который фиксирует краткосрочные тенденции, быстро реагируя на изменения цен, что позволяет торговать с высокой частотой. Стратегия использует две скользящие средние с разными периодами (быстрые и медленные линии) для построения индикатора MACD и внедряет алгоритм нулевого задержки для устранения задержки между индикатором и ценой, улучшая своевременность сигналов. Кроме того, перекресток линии сигнала и линии MACD используется в качестве сигналов покупки и продажи, и предупреждения устанавливаются, чтобы помочь трейдерам вовремя воспользоваться торговыми возможностями.

Принцип стратегии

  1. Вычислить EMA (экспоненциальная скользящая средняя) или SMA (простая скользящая средняя) быстрой линии (по умолчанию 12 периодов) и медленной линии (по умолчанию 26 периодов).
  2. Используйте алгоритм нулевого отставания для двойного сглаживания быстрых и медленных линий, устраняя задержку между индикатором и ценой.
  3. Линия MACD формируется от разницы между скоростной линией с нулевым отставанием и медленной линией с нулевым отставанием.
  4. Линия сигнала формируется EMA (по умолчанию 9 периодов) или SMA линии MACD.
  5. Гистограмма MACD формируется от разницы между линией MACD и линией сигнала, синий означает положительные значения, а красный - отрицательные.
  6. Когда линия MACD пересекает линию сигнала снизу, а точка перекрестки находится ниже нулевой оси, генерируется сигнал покупки (голубая точка).
  7. Когда линия MACD пересекает линию сигнала сверху, а точка перекрестности находится выше нулевой оси, генерируется сигнал продажи (красная точка).
  8. Стратегия автоматически размещает заказы на основе сигналов покупки и продажи и запускает соответствующие предупреждения.

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

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

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

  1. На волатильных рынках частые перекрестные сигналы могут привести к переоценке и убыткам.
  2. Неправильное настройка параметров может вызвать искажение сигнала и повлиять на эффективность стратегии.
  3. Стратегия опирается на исторические данные для расчетов и имеет слабую адаптивность к внезапным событиям и событиям черного лебедя.

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

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

Резюме

MACD Dual Crossover Zero Lag Trading Strategy достигает высокочастотного трейдинга, быстро реагируя на изменения цен и фиксируя краткосрочные тенденции. Алгоритм нулевого лага и двойной дизайн скользящих средних улучшают своевременность и точность сигналов. Стратегия имеет определенные преимущества, такие как интуитивные сигналы и удобная эксплуатация, но также сталкивается с такими рисками, как переоценка и чувствительность параметров. В будущем стратегия может быть оптимизирована путем внедрения индикаторов подтверждения тренда, оптимизации параметров, многофакторных моделей и т. д., чтобы повысить надежность и рентабельность стратегии.


/*backtest
start: 2024-04-23 00:00:00
end: 2024-05-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("BNM INTRADAY SETUP MACD 3M - Version 1.2", shorttitle="Zero Lag MACD Enhanced 1.2")
source = close

fastLength = input(12, title="Fast MM period", minval=1)
slowLength = input(26,title="Slow MM period", minval=1)
signalLength =input(9,title="Signal MM period", minval=1)
useEma = input(true, title="Use EMA (otherwise SMA)")
useOldAlgo = input(false, title="Use Glaz algo (otherwise 'real' original zero lag)")
showDots = input(true, title="Show symbols to indicate crossing")
dotsDistance = input(1.5, title="Symbols distance factor", minval=0.1)

// Fast line
ma1 = useEma ? ema(source, fastLength) : sma(source, fastLength) 
ma2 = useEma ? ema(ma1, fastLength) : sma(ma1, fastLength) 
zerolagEMA = ((2 * ma1) - ma2)

// Slow line
mas1 = useEma ? ema(source, slowLength) : sma(source, slowLength)
mas2 = useEma ? ema(mas1, slowLength) : sma(mas1, slowLength)
zerolagslowMA = ((2 * mas1) - mas2)

// MACD line
ZeroLagMACD = zerolagEMA - zerolagslowMA 

// Signal line
emasig1 = ema(ZeroLagMACD, signalLength)
emasig2 = ema(emasig1, signalLength)
signal = useOldAlgo ? sma(ZeroLagMACD, signalLength) : (2 * emasig1) - emasig2

hist = ZeroLagMACD - signal

upHist = (hist > 0) ? hist : 0
downHist = (hist <= 0) ? hist : 0

p1 = plot(upHist, color=color.blue, transp=40, style=plot.style_columns, title='Positive delta')
p2 = plot(downHist, color=color.red, transp=40, style=plot.style_columns, title='Negative delta') 

zeroLine = plot(ZeroLagMACD, color=color.red, transp=0, linewidth=2, title='MACD line')
signalLine = plot(signal, color=color.blue, transp=0, linewidth=2, title='Signal')

ribbonDiff = hist > 0 ? color.blue : color.red
fill(zeroLine, signalLine, color=ribbonDiff)

circleYPosition = signal * dotsDistance
ribbonDiff2 = hist > 0 ? color.blue : color.red

// Generate dots for cross signals
plot(showDots and cross(ZeroLagMACD, signal) ? circleYPosition : na, style=plot.style_circles, linewidth=4, color=ribbonDiff2, title='Dots')

// Alerts for buy and sell signals
buySignal = cross(ZeroLagMACD, signal) and (ribbonDiff2 == color.blue) and (ZeroLagMACD < 0)
sellSignal = cross(ZeroLagMACD, signal) and (ribbonDiff2 == color.red) and (ZeroLagMACD > 0)

// Use 'strategy.entry' for placing orders in strategy context
if (buySignal)
    strategy.entry("Buy", strategy.long)
    alert("Buy Signal: Blue dot below zero line", alert.freq_once_per_bar_close)

if (sellSignal)
    strategy.entry("Sell", strategy.short)
    alert("Sell Signal: Red dot above zero line", alert.freq_once_per_bar_close)


Связанные

Больше