Эта стратегия использует принцип двойного перекрестка скользящей средней в сочетании с индикатором отслеживания тренда для определения и отслеживания тенденций. Основная идея заключается в том, чтобы пойти длинным, когда скользящая средняя короткого периода пересекает длинный скользящий средний период, и идти коротким, когда скользящая средняя короткого периода пересекает длинный скользящий средний период.
Стратегия состоит в основном из двойной системы перекрестного использования скользящей средней и системы отслеживания тенденций.
Двойная система перекрестного движения скользящей средней содержит быструю EMA1 и медленную EMA2. Периоды по умолчанию составляют 10 дней для EMA1 и 20 дней для EMA2. Сигнал покупки генерируется, когда EMA1 пересекает EMA2. Сигнал продажи генерируется, когда EMA1 пересекает EMA2.
100-дневная EMA (EMA100) добавляется для определения общего направления тренда. Сигналы покупки генерируются только тогда, когда цена находится в восходящем тренде (цена выше 100-дневной EMA). Сигналы продажи генерируются только тогда, когда цена находится в нисходящем тренде (цена ниже 100-дневной EMA). Это фильтрует большинство ложных ситуаций прорыва.
На свечах также изображены стрелки покупки и продажи для визуального отображения торговых сигналов.
Система отслеживания тренда использует внутридневные и циклические дневные линии, чтобы подтвердить направление тренда.
Торговые сигналы генерируются только тогда, когда внутридневные и циклические суждения согласуются.
Наибольшее преимущество этой стратегии заключается в интеграции как систем отслеживания тенденций, так и систем перекрестного отслеживания скользящих средних, которые эффективно фильтруют ложные сигналы и сохраняют снижение в пределах приемлемых уровней.
В частности, преимущества системы перекрестного использования двойной скользящей средней составляют:
Простая логика и легко понятна, подходит для начинающих.
Следующий за трендом, избегает торговли против тренда.
Настраиваемые быстрые и медленные периоды EMA, адаптируемые к различным циклам.
Сильная рентабельность в основных тенденциях.
Добавление EMA100 имеет преимущества:
Избегать торговли против тренда, сокращать потери.
Следовать тенденции, держать снижение под контролем.
Система отслеживания тенденций имеет следующие преимущества:
Анализ нескольких временных рамок, избегая шума из одного периода.
Обеспечение согласованности с основным направлением тренда, снижение снижения.
Хайкин-Аши сглаживает шум, фиксируя только тенденции.
Некоторые риски для этой стратегии:
Частые перекрестки и дополнительные затраты на торговлю при длительной консолидации.
Задержка сигналов, отсутствие ранних этапов тренда.
Серьезные потери, когда основная тенденция меняется.
Работа зависит от оптимизации параметров.
Решения:
Уменьшить частоту торговли во время консолидации.
Сокращение периодов EMA для получения более ранних сигналов тренда.
Используйте стоп-лосс для контроля одиночных потерь.
Оптимизировать параметры для различных продуктов и рыночных условий.
Эта стратегия может быть оптимизирована в следующих областях:
Оптимизация периода EMA. Испытать больше комбинаций, чтобы найти оптимальные периоды.
Добавьте больше суждений о сроках, например, ежемесячные или квартальные линии.
Включайте механизмы остановки потери, такие как движение или экспоненциальные остановки.
Комбинируйте с показателями объема, такими как объем баланса.
Улучшить сроки входа с помощью более быстрых осцилляторов, таких как MACD.
Оптимизация параметров для большего количества продуктов и активов.
Эта стратегия объединяет в себе сильные стороны двойного пересечения скользящих средних и систем отслеживания трендов, избегая недостатков одиночных систем. Многократный анализ временных рамок обеспечивает правильное направление торговли, в то время как контроль за снижением является отличным. Дальнейшие оптимизации могут адаптировать его к большему количеству рыночных сред для практического использования.
/*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)