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

Автор:Чао Чжан, Дата: 2023-11-23 17:34:06
Тэги:

img

Обзор

Стратегия перекрестного использования двойных экспоненциальных скользящих средних - это типичная стратегия, основанная на тренде.

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

Стратегия использует 3 DEMA одновременно с различными параметрами: DEMA ((8), DEMA ((20) и DEMA ((63).

  • DEMA (8) реагирует быстрее всего на краткосрочные тенденции;

  • DEMA(20) движется немного медленнее для выявления среднесрочных тенденций;

  • DEMA ((63) реагирует медленнее, чтобы судить о долгосрочном направлении тренда.

Когда быстрая линия DEMA ((8) пересекает над средней линией DEMA ((20) и медленной линией DEMA ((63), это указывает на то, что рынок поворачивается снизу вверх, должна быть сделана длинная позиция. Когда DEMA ((8) пересекает ниже DEMA ((20) и DEMA ((63), это указывает на то, что рынок поворачивается сверху вниз, должна быть сделана короткая позиция.

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

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

Сочетание многочасовых линий DEM улучшает качество торговых сигналов и предотвращает ложные прорывы.

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

Основными рисками этой стратегии являются:

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

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

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

Стратегия может быть оптимизирована из следующих аспектов:

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

Резюме

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


/*backtest
start: 2022-11-16 00:00:00
end: 2023-11-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Noldo

//@version=4
//Quoted by Author HighProfit

//Lead-In
strategy("Double Exponential Moving Average 8-20-63 Strategy", 
         shorttitle="DEMA-8-20-63", 
         overlay=true,
         max_bars_back = 5000,
         initial_capital=100000, 
         max_bars_back = 5000,
         default_qty_type=strategy.percent_of_equity, 
         default_qty_value=100, 
         commission_type=strategy.commission.percent, 
         commission_value=0.1,
         pyramiding = 0)

short = input(8, minval=1)
srcShort = input(ohlc4, title="Source Dema 1")

long = input(20, minval=1)
srcLong = input(low, title="Source Dema 2")

long2 = input(63, minval=1)
srcLong2 = input(close, title="Source Dema 3")
e1 = ema(srcShort, short)
e2 = ema(e1, short)
dema1 = 2 * e1 - e2
plot(dema1, color=color.green, linewidth=2)

e3 = ema(srcLong, long)
e4 = ema(e3, long)
dema2 = 2 * e3 - e4
plot(dema2, color=color.blue, linewidth=2)

e5 = ema(srcLong2, long2)
e6 = ema(e5, long2)
dema3 = 2 * e5 - e6
plot(dema3, color=color.black, linewidth=2)

longC  = dema1 > dema2 and dema1 > dema3
shortC = dema1 < dema2 and dema1 < dema3 

alertlong  = longC and  not longC[1]
alertshort = shortC and not shortC[1]


strategy.entry("Long" , strategy.long , when = longC ,comment="Long")
strategy.entry("Short", strategy.short, when = shortC,comment="Short")

// Alerts 

alertcondition(longC  , title='Long' , message=' Buy  Signal ')
alertcondition(shortC , title='Short', message=' Sell Signal ')



Больше