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

Автор:Чао Чжан, Дата: 2023-09-28 11:52:16
Тэги:

Обзор

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

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

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

Двойная система перекрестного движения скользящей средней содержит быструю EMA1 и медленную EMA2. Периоды по умолчанию составляют 10 дней для EMA1 и 20 дней для EMA2. Сигнал покупки генерируется, когда EMA1 пересекает EMA2. Сигнал продажи генерируется, когда EMA1 пересекает EMA2.

100-дневная EMA (EMA100) добавляется для определения общего направления тренда. Сигналы покупки генерируются только тогда, когда цена находится в восходящем тренде (цена выше 100-дневной EMA). Сигналы продажи генерируются только тогда, когда цена находится в нисходящем тренде (цена ниже 100-дневной EMA). Это фильтрует большинство ложных ситуаций прорыва.

На свечах также изображены стрелки покупки и продажи для визуального отображения торговых сигналов.

Система отслеживания тренда использует внутридневные и циклические дневные линии, чтобы подтвердить направление тренда.

Торговые сигналы генерируются только тогда, когда внутридневные и циклические суждения согласуются.

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

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

В частности, преимущества системы перекрестного использования двойной скользящей средней составляют:

  1. Простая логика и легко понятна, подходит для начинающих.

  2. Следующий за трендом, избегает торговли против тренда.

  3. Настраиваемые быстрые и медленные периоды EMA, адаптируемые к различным циклам.

  4. Сильная рентабельность в основных тенденциях.

Добавление EMA100 имеет преимущества:

  1. Избегать торговли против тренда, сокращать потери.

  2. Следовать тенденции, держать снижение под контролем.

Система отслеживания тенденций имеет следующие преимущества:

  1. Анализ нескольких временных рамок, избегая шума из одного периода.

  2. Обеспечение согласованности с основным направлением тренда, снижение снижения.

  3. Хайкин-Аши сглаживает шум, фиксируя только тенденции.

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

Некоторые риски для этой стратегии:

  1. Частые перекрестки и дополнительные затраты на торговлю при длительной консолидации.

  2. Задержка сигналов, отсутствие ранних этапов тренда.

  3. Серьезные потери, когда основная тенденция меняется.

  4. Работа зависит от оптимизации параметров.

Решения:

  1. Уменьшить частоту торговли во время консолидации.

  2. Сокращение периодов EMA для получения более ранних сигналов тренда.

  3. Используйте стоп-лосс для контроля одиночных потерь.

  4. Оптимизировать параметры для различных продуктов и рыночных условий.

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

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

  1. Оптимизация периода EMA. Испытать больше комбинаций, чтобы найти оптимальные периоды.

  2. Добавьте больше суждений о сроках, например, ежемесячные или квартальные линии.

  3. Включайте механизмы остановки потери, такие как движение или экспоненциальные остановки.

  4. Комбинируйте с показателями объема, такими как объем баланса.

  5. Улучшить сроки входа с помощью более быстрых осцилляторов, таких как MACD.

  6. Оптимизация параметров для большего количества продуктов и активов.

Заключение

Эта стратегия объединяет в себе сильные стороны двойного пересечения скользящих средних и систем отслеживания трендов, избегая недостатков одиночных систем. Многократный анализ временных рамок обеспечивает правильное направление торговли, в то время как контроль за снижением является отличным. Дальнейшие оптимизации могут адаптировать его к большему количеству рыночных сред для практического использования.


/*backtest
start: 2023-09-20 00:00:00
end: 2023-09-27 00:00:00
period: 1h
basePeriod: 15m
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/
// © askkuldeeprandhawa

//@version=4

strategy("KSR Strategy", overlay=true)



par1=input(10)
par2=input(20)
ema1=ema(close,par1)
ema2=ema(close,par2)
buy=ema1>ema2
sell=ema2<ema1
mycolor= iff(buy,color.green,iff(sell,color.blue,color.red))
barcolor(color=mycolor)



ema100=ema(close,100)
ibuy=crossover(ema1,ema2)
iSell=crossunder(ema1,ema2)

varp=tostring(close[1])
plotshape(ibuy, "Up Arrow", shape.triangleup, location.belowbar, color.green, 0, 0,"Buy" , color.green, true, size.tiny)
plotshape(iSell, "Down Arrow", shape.triangledown, location.abovebar, color.red, 0, 0, "Sell", color.red, true, size.tiny)

crossed =crossover(ema(close,par1), ema(close,par2))
// if crossed
//     l = label.new(bar_index, na, tostring(close), 
//          color=color.green, 
//          textcolor=color.white,
//          style=label.style_labelup, yloc=yloc.belowbar)
         
crossed2 =crossunder(ema(close,par1), ema(close,par2))
// if crossed2
//     l = label.new(bar_index, na, tostring(close), 
//          color=color.red, 
//          textcolor=color.white,
//          style=label.style_labeldown, yloc=yloc.abovebar)
         
plot(ema(close,par1),"EMA Short",color=color.white)
plot(ema(close,par2),"EMA Long",color=color.orange)


longCondition = crossover(ema(close, par1), ema(close, par2))
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

shortCondition = crossunder(ema(close, par1), ema(close, par2))
if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)




ma1_len = input(title="MA1", type=input.integer, defval=8, minval=1, maxval=100, step=1)
ma2_len = input(title="MA2", type=input.integer, defval=12, minval=1, maxval=100, step=1)

o = ema(open, ma1_len)
c = ema(close, ma1_len)
h = ema(high, ma1_len)
l = ema(low, ma1_len)

tim1=input('D',"Short Time")
tim2=input('W',"Long Time")

ema_p=input(title="EMA Period", type=input.integer, defval=16, minval=1, maxval=100, step=1)
refma = ema(close, ema_p)
plot(refma, title="EMA" , linewidth=1, color=close < refma ? color.orange : color.blue)
ha_t = heikinashi(syminfo.tickerid)
ha_o = security(ha_t, tim2, o)
ha_c = security(ha_t, tim2, c)
ha_h = security(ha_t, tim2, h)
ha_l = security(ha_t, tim2, l)
o2 = ema(ha_o, ma2_len)
c2 = ema(ha_c, ma2_len)
h2 = ema(ha_h, ma2_len)
l2 = ema(ha_l, ma2_len)
ha_col = ha_c > ha_o ? color.red : color.green
plotshape(true, style=shape.circle, color=ha_c > ha_o ? color.green : color.red, location=location.bottom)


ha_t1 = heikinashi(syminfo.tickerid)
ha_o1 = security(ha_t1, tim1, o)
ha_c1 = security(ha_t1, tim1, c)
ha_h1 = security(ha_t1, tim1, h)
ha_l1 = security(ha_t1, tim1, l)
o3 = ema(ha_o1, ma2_len)
c3 = ema(ha_c1, ma2_len)
h3 = ema(ha_h1, ma2_len)
l3 = ema(ha_l1, ma2_len)
ha_col1 = ha_c1 > ha_o1 ? color.red : color.green
plotshape(true, style=shape.circle, color=ha_c1 > ha_o1 ? color.green : color.red, location=location.top)







Больше