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

Автор:Чао Чжан, Дата: 2023-11-27 15:30:29
Тэги:

img

Обзор

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

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

Стратегия состоит из трех основных частей:

  1. Разница EMA (s2): вычислить разницу между быстрой EMA (ema_range) и медленной EMA (ema_watch) для определения направления тренда цен.

  2. Канал стандартного отклонения (s3): создать верхний и нижний канал на основе разницы EMA с кратными стандартного отклонения.

  3. Флаги и сигналы: генерируют сигналы покупки, когда цены проходят через верхний рельс снизу вверх, и сигналы продажи, когда цены проходят через нижний рельс сверху вниз.

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

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

Стратегия имеет следующие преимущества:

  1. EMA может эффективно отслеживать тенденции.
  2. Стандартное отклонение создает каналы, чтобы избежать ложных сигналов.
  3. Формы флага делают сигналы ясными.
  4. Гибкие параметры скользящих средних и кратных стандартного отклонения.
  5. Максимальное ограничение потребления помогает снизить риски.

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

Существуют также некоторые риски:

  1. На рынках с ограниченным диапазоном может быть больше ложных сигналов.
  2. Слишком большие кратные стандартного отклонения могут упустить возможности.
  3. При отсутствии стоп-лосса возможны большие убытки во время ретраксеров.

Решения:

  1. Добавьте диапазонные рыночные суждения и вместо этого используйте другие стратегии.
  2. Оптимизировать параметры стандартного отклонения.
  3. Добавьте движущуюся стоп-лосс для контроля по потерям отдельных сделок.

Оптимизация

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

  1. Добавьте больше индикаторов, таких как полосы Боллинджера, чтобы улучшить качество сигнала.
  2. Оптимизировать параметры скользящей средней и стандартного отклонения.
  3. Добавьте стратегии стоп-лосса, чтобы уменьшить вывод.
  4. Установка оптимальных параметров сигналов покупки/продажи в соответствии с различными рынками.
  5. Добавьте алгоритмы машинного обучения для определения общего режима рынка.

Заключение

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


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

//@version=5
strategy("ROCKET_EWO", overlay=true)
ema_range = input(5)
ema_watch = input(13)
inval_a = input(open)
inval_b = input(open)
ratio = input(0)
max = 5000
s2=ta.ema(inval_a, ema_range) - ta.ema(inval_b, ema_watch)
c_color=s2 <= ratio ? 'red' : 'lime'
s3 = s2 + (ta.stdev(open, 1)) * 5.618
plotshape(s3, color=color.white, style=shape.cross, location=location.abovebar, size=size.auto, show_last=max, transp=30, offset= 0)
cr = s2 > 0
alertcondition(cr, title='[Rocket_EWO]', message='[Rocket_EWO]')
buy = s2 > 1
sell = s2 < -1
txt  = "🚀" + "\n"+ "\n"+ "\n"+ "\n"
plotshape(buy, color=color.lime, style=shape.triangleup, location=location.belowbar ,color=color.white, text=txt, size=size.normal, show_last=max, transp=1, offset= -3)
plotshape(not buy, color=color.red, style=shape.triangledown, location=location.belowbar, size=size.normal, show_last=max, transp=1, offset= 0)
signalperiod = time
s4 = ta.cross(s2, 0) ? time : na
colsig= s2 <= ratio ? color.red : color.lime
plotshape((time==s4)?7000:na,color=color.blue, style=shape.flag, location=location.abovebar, size=size.large, transp=1)

longCondition =  ta.crossover(s2, 1.618)
if (longCondition)
    strategy.entry("LONG Id", strategy.long)

shortCondition = ta.crossunder(s2, 1.618)
if (shortCondition)
    strategy.entry("SHORT Id", strategy.short)

strategy.close("LONG Id", when = s2 < 0.218)
// strategy.risk.max_drawdown(75, strategy.percent_of_equity)


Больше