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


Дата создания: 2023-09-28 11:52:16 Последнее изменение: 2023-09-28 11:52:16
Копировать: 0 Количество просмотров: 646
1
Подписаться
1617
Подписчики

Обзор

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

Стратегический принцип

Эта стратегия состоит в основном из двух равнолинейных систем скрещивания и системы отслеживания тенденций.

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

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

Кроме того, на K-линии размещены стрелки для покупки и продажи, которые визуально отображают торговые сигналы.

Система отслеживания трендов использует внутридневную и внутрициклическую солнечную линию для повторного подтверждения направления тренда. Суждение производится с использованием средней линии Heikin-Ashi в течение 5 минут и 60 минут в течение дня, а также средней линии 8 и 12 дней в течение цикла.

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

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

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

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

  1. Простые в использовании и понятные для новичков.

  2. “Общественное мнение” - это то, что мы должны делать.

  3. Параметры быстрого и медленного курса могут быть настроены на различные циклы;

  4. Например, в Китае, где уровень доходов от продажи товаров и услуг выше, чем в других странах мира, уровень доходов от продажи товаров и услуг выше.

Преимущества участия в EMA100:

  1. Фильтрация контрастных операций, снижение убытков;

  2. Вместе с трендовыми операциями, отступление может быть управляемым.

Преимущества отслеживания трендов:

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

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

  3. Heikin-Ashi: “Сгладить ценовую разницу, отфильтровать шум, просто поймать тренд”

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

Однако есть и другие риски, о которых следует помнить:

  1. В долгосрочной перспективе часто встречаются пересечения, что приводит к чрезмерным торговым возможностям и стоимости внешнеторговых операций.

  2. Торговые сигналы могут задерживаться и пропускать начальные этапы тренда.

  3. В случае реверсии тенденции на большом уровне, возможны серьезные убытки.

  4. Параметры должны быть оптимизированы, и их неправильное использование может повлиять на эффективность стратегии.

Ответ:

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

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

  3. Установка стоп-стоп и контроль одноразовых убытков

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

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

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

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

  2. Добавить больше временных интервалов. Например, добавить лунную или квартальную линию.

  3. Увеличение механизма стоп-порога. Установка мобильного стоп-порога или индексного стоп-порога.

  4. В сочетании с показателями объема торгов. Например, энергетический поток в сочетании с такими показателями, как KDJ.

  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)