Найти тему

Расчёт скользящей средней в Power Pivot

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

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

С сайта finam.ru я импортировал котировки нескольких инструментов с начала 2016 года по следующим акциям:

  • AFLT - Аэрофлот
  • GAZP – Газпром
  • MGNT – Магнит
  • MTSS – МТС
  • SBER – Сбербанк
  • YNDX – Яндекс
Рис. №1. Таблица «Данные»
Рис. №1. Таблица «Данные»

Первое, что необходимо сделать, это для каждого инструмента добавить номер рабочего дня. Связано это с тем, что на разных биржах могут быть разные рабочие дни. Например, в Католическое рождество не работают западные биржи, а Московская работает.

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

-2

Теперь даты каждой акции пронумерованы по возрастанию.

В данном примере добавим две средние, что часто используется для анализов инструментов.

В таблице Период создадим две меры для расчёта длинной средней и короткой средней:

  • ShortPeriodMovingAverage:=MIN('Период'[ПериодСредней])
  • LongPeriodMovingAverage:=MAX('Период'[ПериодСредней])

Теперь добавим меру расчёта среднего в таблицу Данные.

Для длинной средней:

-3
  • Функция CALCULATE рассчитывает выражение (в примере функция AVERAGE) с учетом фильтров (в примере функция FILTER).
  • Функция FILTER в качестве таблицы принимает ALLSELECTED('данные') (ALLSELECTED снимает фильтр, который накладывает сводная таблица), которые накладываются сводной таблицей) и применяет к этой таблицей указанные фильтры:
  • Номер дня в таблице больше, чем разница текущего номера дня и периода длинной средней.
  • Номер дня меньше либо равен текущему номеру дня.

Для короткой средней формула аналогична, только используется рассчитанная ранее мера: ShortPeriodMovingAverage.

С данными расчётами мы можем вывести на диаграмму цену инструмента и наши средние, а также слайсер для акции и периода средней.

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

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