Стратегия следования тренду EMA


Дата создания: 2023-10-16 15:54:41 Последнее изменение: 2023-10-16 15:54:41
Копировать: 0 Количество просмотров: 714
1
Подписаться
1617
Подписчики

Стратегия следования тренду EMA

Обзор

Тренд-следящая стратегия EMA - это стратегия для отслеживания тренда, основанная на показателях EMA. Эта стратегия определяет направление ценового тренда путем вычисления линии EMA на заданный период.

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

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

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

Стратегические преимущества

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

Риски и решения

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

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

  • Частота торговли может быть слишком высокой или слишком низкой. Различные циклы EMA имеют разную частоту торговли.

Рекомендации по оптимизации

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

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

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

  • Оптимизировать выбор сортов. Настраивать параметры цикла EMA в зависимости от характеристик различных сортов для достижения оптимального эффекта.

Подвести итог

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

Исходный код стратегии
/*backtest
start: 2022-10-09 00:00:00
end: 2023-10-15 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title = "EMA Close Strategy", shorttitle = "EMA Close",calc_on_order_fills=true,calc_on_every_tick =true, initial_capital=21000,commission_value=.25,overlay = true,default_qty_type = strategy.percent_of_equity, default_qty_value = 100)

EmaSource   = input(defval = close, title = "EMA Source")
EmaLength   = input(defval = 8, title = "EMA Period", minval = 1)

StartYear = input(2018, "Backtest Start Year")
StartMonth = input(1, "Backtest Start Month")
StartDay = input(1, "Backtest Start Day")
stopLoss = input(30, title = "Stop loss percentage(0.1%)") 
UseStopLoss = input(true,"UseStopLoss")

window() => time >=  timestamp(StartYear, StartMonth, StartDay,00,00) ? true : false



EMA = ema(EmaSource,EmaLength)

plot(EMA, title = "EMA", color = green, linewidth = 2, style = line, transp = 50)

long = crossunder(EMA, close)
short= crossover(EMA, close)

if (long)
    strategy.entry("LongId", strategy.long, when=window())
    
if (short)
    strategy.entry("ShortId", strategy.short, when=window())

if (UseStopLoss)
    strategy.exit("StopLoss", "LongId", loss = close * stopLoss / 1000 / syminfo.mintick)
    strategy.exit("StopLoss", "ShortId", loss = close * stopLoss / 1000 / syminfo.mintick)