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

Автор:Чао Чжан, Дата: 2023-11-06 17:01:53
Тэги:

img

Обзор

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

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

Стратегия рассчитывает 3 скользящих средних с различными периодами: 34-периодическая EMA, 89-периодическая EMA и 200-периодическая EMA. Сначала она вычисляет эти 3 MAs, а затем графизирует их в различных цветах и линейных ширинах для четкой идентификации.

Торговые сигналы генерируются на основе перекресток между различными МА: когда быстрый МА пересекает средний МА, он запускает сигнал покупки; когда быстрый МА пересекает средний МА, он запускает сигнал продажи. Это относится к агрессивной стратегии торговли.

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

Преимущества

  • Использует многопериодические MAs для фильтрации шума и выявления больших изменений тренда.
  • Быстрый MA чувствителен, средний MA стабилен, а медленный MA фильтрует фальшивые прорывы.
  • Использует EMA для расчета МА, который большее значение придает последним ценам и лучше реагирует на изменения тенденций.
  • Визуализирует различные МА четко через перекресток для легкой идентификации сигнала.
  • Гибкая стратегия, позволяющая корректировать период МО для различных рыночных условий.

Риски

  • МА имеет задержку и может задержать генерацию сигнала.
  • Сильные тенденции могут отменять МА и генерировать чрезмерные сигналы.
  • Плохая настройка периода MA может увеличить частоту торговли и риск.
  • Чрезвычайная волатильность может привести к неправильному перекрестному использованию МД.
  • Рынки с высокими комиссионными не подходят для таких высокочастотных стратегий.

Усовершенствования

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

Заключение

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


/*backtest
start: 2022-10-30 00:00:00
end: 2023-11-05 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title="EMA 34, 89, 200 e cruzamento das EMA", overlay=true)

// Input options
fastMALen = input(title="Fast MA",  defval=34)
midMALen  = input(title="Medium MA",  defval=89)
slowMALen = input(title="Slow MA",  defval=200)

// Calculate values
fastMA = ema(close, fastMALen)
midMA  = ema(close, midMALen)
slowMA = ema(close, slowMALen)

// Plot values
plot(series=fastMA, color=yellow,
     title="Fast MA", linewidth=3, trackprice=false)
plot(series=midMA, color=red,
     title="Mid MA", linewidth=4, trackprice=false)
plot(series=slowMA, color=white,
     title="Slow MA", linewidth=5)

// Highlight crossovers
longCondition = crossover(ema(close, 34), ema(close, 200)) 
if (longCondition)
    strategy.entry("COMPRA FINAL", strategy.long)

longCondition1 = crossover(ema(close, 34), ema(close, 89)) 
if (longCondition1)
    strategy.entry("COMPRA INICIAL", strategy.long)

shortCondition = crossunder(ema(close, 34), ema(close, 200))
if (shortCondition)
    strategy.entry("VENDE FINAL", strategy.short)
    
shortCondition1 = crossunder(ema(close, 34), ema(close, 89))
if (shortCondition1)
    strategy.entry("VENDE INICIAL", strategy.short)


Больше