Это двойная стратегия торговли скользящей средней, основанная на сдержанной синтетической цене (DSP). DSP - это функция, которая находится в фазе с доминирующим циклом данных о реальных ценах, полученная путем вычитания EMA полуцикла из EMA квартального цикла. Когда DSP пересекает верхнюю полосу или ниже нижней полосы, принимаются односторонние сделки.
Вычислить среднюю цену xHL2 за 1/2 цикла.
Вычислить EMA 1/4 цикла (xEMA1) и EMA 1/2 цикла (xEMA2) xHL2 на основе длины.
Получить DSP путем вычитания xEMA2 из xEMA1.
Установите параметры верхней и нижней полос, идите длинным, когда DSP пересекает верхнюю полосу, и коротким, когда пересекает ниже нижней полосы.
Обратный параметр может переключаться между длинным и коротким направлением.
Преимущества этой стратегии:
DSP фиксирует доминирующий ценовой цикл, избегая заблуждения от второстепенных циклов.
Дизайн двойной EMA эффективно отслеживает изменения доминирующего цикла.
Простые верхние/нижние диапазоны позволяют избежать чрезмерной торговли.
Легко переключаться между длинным и коротким с помощью обратного параметра, адаптируемого к различным рыночным условиям.
Не требуется сложной оптимизации параметров, просто и практично.
Основные риски:
Неправильное установление цикла DSP может привести к пропуску доминирующего цикла.
Ширина полосы должна быть оптимизирована, иначе может произойти перепродажа.
Конструкция фиксированного цикла имеет слабую адаптивность к резким изменениям рынка.
Торговля на DSP оставляет стратегию уязвимой для ударов.
Отсутствие стоп-лосса может привести к значительным потерям.
Улучшения:
Оптимизируйте параметры, чтобы найти лучшую комбинацию циклов.
Добавить динамические диапазоны на основе волатильности.
Включите фильтры тренда и волатильности для уменьшения ложных сигналов.
Добавьте механизмы остановки потерь или остановки отслеживания для контроля риска.
Испытание на нескольких инструментах для универсальности.
Внедрение машинного обучения для адаптивной оптимизации цикла DSP.
В целом это очень простая и практичная стратегия торговли двойными скользящими средними. Она построена на твердых основах анализа цикла, при этом DSP эффективно отслеживает доминирующий цикл. С усовершенствованием оптимизации параметров, остановки потерь, условий фильтра и многого другого, она может стать надежной количественной торговой стратегией.
/*backtest start: 2023-09-11 00:00:00 end: 2023-09-13 02:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 20/03/2017 // Detrended Synthetic Price is a function that is in phase with the // dominant cycle of real price data. This DSP is computed by subtracting // a half-cycle exponential moving average (EMA) from the quarter cycle // exponential moving average. // See "MESA and Trading Market Cycles" by John Ehlers pages 64 - 70. // // You can change long to short in the Input Settings // Please, use it only for learning or paper trading. Do not for real trading. //////////////////////////////////////////////////////////// strategy(title="D_DSP (Detrended Synthetic Price)", shorttitle="D_DSP") Length = input(14, minval=1) SellBand = input(25) BuyBand = input(-25) reverse = input(false, title="Trade reverse") hline(0, color=blue, linestyle=line) hline(SellBand, color=red, linestyle=line) hline(BuyBand, color=green, linestyle=line) xHL2 = hl2 xEMA1 = ema(xHL2, Length) xEMA2 = ema(xHL2, 2 * Length) xEMA1_EMA2 = xEMA1 - xEMA2 pos = iff(xEMA1_EMA2 > SellBand, 1, iff(xEMA1_EMA2 < BuyBand, -1, nz(pos[1], 0))) possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1, 1, pos)) if (possig == 1) strategy.entry("Long", strategy.long) if (possig == -1) strategy.entry("Short", strategy.short) barcolor(possig == -1 ? red: possig == 1 ? green : blue ) plot(xEMA1_EMA2, color=blue, title="D_DSP")