Стратегия фильтра тренда EMA

EMA stdev Trend
Дата создания: 2024-06-14 15:51:05 Последнее изменение: 2024-06-14 15:51:05
Копировать: 0 Количество просмотров: 715
1
Подписаться
1617
Подписчики

Стратегия фильтра тренда EMA

Обзор

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

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

  1. Вычислить три различных цикла EMA: быстрый EMA ((по умолчанию 9 циклов), медленный EMA ((по умолчанию 21 цикл) и фильтр тренда EMA ((по умолчанию 200 циклов)
  2. Расчет стандартной разницы цен на 20 циклов, используемый для измерения рыночной волатильности.
  3. Введение Fukuiz Trend Indicator ((по умолчанию 14 циклов EMA) и определение цвета в зависимости от его отношения к величине предыдущего цикла ((повышение - зеленый, снижение - красный)).
  4. Сигнал покупателя появляется, когда быстрый EMA пересекает медленный EMA, и быстрый EMA выше медленного EMA, и цена выше EMA, отражающего тренд.
  5. Продажа происходит, когда быстрый EMA пересекает медленный EMA, и быстрый EMA находится ниже медленного EMA, и цена находится ниже фильтрующего тренд EMA.
  6. Если Fukuiz Trend Indicator становится красным, придерживаясь позиции с множественным заимствованием, ликвидируйте позицию с множественным заимствованием.
  7. Если Fukuiz Trend Indicator становится зеленым, при открытии позиции, Fukuiz Trend Indicator становится зеленым, а Fukuiz Trend Indicator становится зеленым.

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

  1. Благодаря комбинации ЭМА с несколькими циклами, можно лучше улавливать тенденции рынка.
  2. Введение Fukuiz Trend Indicators обеспечивает дополнительную основу для определения трендов и в некоторых случаях может быть использовано в качестве сдерживающего фактора.
  3. Параметры настраиваемы, адаптивны и могут быть оптимизированы в зависимости от рынка и цикла.

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

  1. По сути, EMA является отстающим индикатором, который может задерживать сигнал при быстром повороте рынка.
  2. Тренд-фильтрация на длинные ЭМА может привести к тому, что стратегия пропустит некоторые краткосрочные тренды.
  3. Логика позиционирования Fukuiz может привести к преждевременному потере стратегии и, таким образом, к упущению последующей тенденции.

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

  1. Оптимизация циклических параметров для каждой EMA, чтобы найти наиболее подходящую комбинацию параметров для текущего рынка.
  2. Введение других вспомогательных показателей, таких как RSI, MACD и т.д., обеспечивает больше оснований для входа и выхода из игры.
  3. Оптимизация логики стоп-порогов в Fukuiz Trend Indicator, например, добавление определенной буферной зоны, чтобы избежать преждевременных стоп-порогов.
  4. Рассматривается возможность добавления модулей управления позициями и контроля риска, повышения стабильности стратегии и устойчивости к риску.

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

Эта стратегия с помощью комбинации нескольких циклических EMA, а также с помощью Fukuiz Trend Indicator, создает относительно целостную систему для определения тенденций и торговли. Логика стратегии ясна, параметры регулируемы, адаптивны. Но в то же время существуют некоторые потенциальные риски, такие как задержка сигнала, отклонение в определении тенденций и т. Д. В будущем можно будет совершенствовать стратегию с точки зрения оптимизации параметров, комбинации индикаторов, управления рисками и т. Д.

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

//@version=5
strategy("EvilRed Trading Indicator Trend Filter", overlay=true)

// Parameters Definition
fastLength = input(9, title="Fast EMA Length")
slowLength = input(21, title="Slow EMA Length")
trendFilterLength = input(200, title="Trend Filter EMA Length")

// Moving Averages Calculation
fastEMA = ta.ema(close, fastLength)
slowEMA = ta.ema(close, slowLength)
trendEMA = ta.ema(close, trendFilterLength)

// Volatility Calculation
volatility = ta.stdev(close, 20)

// Add Fukuiz Trend Indicator
fukuizTrend = ta.ema(close, 14)
fukuizColor = fukuizTrend > fukuizTrend[1] ? color.green : color.red
plot(fukuizTrend, color=fukuizColor, title="Fukuiz Trend")

// Plotting Moving Averages
plot(fastEMA, color=color.blue, title="Fast EMA")
plot(slowEMA, color=color.red, title="Slow EMA")
plot(trendEMA, color=color.orange, title="Trend Filter")

// Plotting Buy and Sell Signals
buySignal = ta.crossover(fastEMA, slowEMA) and fastEMA > slowEMA and close > trendEMA
sellSignal = ta.crossunder(fastEMA, slowEMA) and fastEMA < slowEMA and close < trendEMA

// Entry and Exit Conditions
if (strategy.position_size > 0 and fukuizColor == color.red)
    strategy.close("Long", comment="Fukuiz Trend is Red")

if (strategy.position_size < 0 and fukuizColor == color.green)
    strategy.close("Short", comment="Fukuiz Trend is Green")

if (buySignal)
    strategy.entry("Long", strategy.long)
    
if (sellSignal)
    strategy.entry("Short", strategy.short)




plotshape(buySignal, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal")
plotshape(sellSignal, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, title="Sell Signal")