Блог им. Zmey56

Общий финансовый анализ на Python (Часть 2)

    • 22 марта 2020, 13:48
    • |
    • Aleks
  • Еще
Ну что продолжим?

Скользящее окно(Moving Windows)

В заголовке я привел дословный перевод. Если кто меня поправит, и другой термин применяется — то спасибо.

Смысл скользящего окна– с каждым новым значением функция пересчитывается за заданный период времени. Этих функций большое количество. Для примера: rolling.mean(), rolling.std(), которые чаще всего и используют при анализе движения акций. rolling.mean() — это обычная скользящая средняя, которая сглаживает краткосрочные колебания и позволяет визуализировать общую тенденцию.

# Выделяю скорректированную цену закрытия 
adj_close_px = sber['Adj Close']

# Вычисляю скользящую среднию
moving_avg = adj_close_px.rolling(window=40).mean()

# Вывожу результат
print(moving_avg[-10:])
Общий финансовый анализ на Python (Часть 2)
Дальше построим график, чтоб лучше понять то, что получается в результате работы данной функции:
# Вычисление короткой скользящей средней
sber['40'] = adj_close_px.rolling(window=40).mean()

# Вычисление длинной скользящей средней
sber['252'] = adj_close_px.rolling(window=252).mean()

# Построение полученных значений
sber[['Adj Close', '40', '252']].plot(figsize=(20,20))

plt.show()
Общий финансовый анализ на Python (Часть 2)

Как видно rolling.mean() справляется с поставленной задачей. Функция сглаживает краткосрочные колебания и позволяет увидеть долгосрочный тренд на основании которого можно принять решение. Цена выше рассматриваемой скользящей средней — берем акцию, ниже — продаем акцию — если просто. Или кто то может построить свою стратегию на основании пересечения средних. Тут уже каждый должен самостоятельно принять решение.

Волатильность

Волатильность акций — это изменение дисперсии доходности акций в течение определенного периода времени. Обычно сравнивают волатильность одной акции с другой, чтобы получить представление о том, какая может иметь меньший риск, или с рыночным индексом, чтобы понять волатильность акций относительно рынка. Как правило, чем выше волатильность, тем рискованнее инвестиции в эту акцию. Необходимо отметить, что она не является постоянной и изменяется с течением времени. Это можно увидеть опять же при помощи функции rolling.std(), входящей в пакет pandas. Проведу расчет изменения волатильности за квартал:

# Определяю рассматриваемый период
min_periods = 60 

# Вычисляю волатильность
vol = daily_pct_change.rolling(min_periods).std() * np.sqrt(min_periods) 

# Строю график
vol.plot(figsize=(10, 10))

plt.show()
Общий финансовый анализ на Python (Часть 2)
Прошу обратить внимание, что в отличие от прошлой недели у меня появилось еще два значения — индекс московской биржи (IMOEX.ME) и РБК (RBCM.ME). Их значения мне потребуются в следующей публикации про метод наименьших квадратов.




★25
10 комментариев
Волатильность акций — это изменение дисперсии доходности акций в течение определенного периода времени. 
Отсюда следует, что волатильность не может изменяться скачкообразно.
Откуда тогда на графиках скачкообразные изменения волатильности?
avatar
3Qu, если я правильно понял вопрос, то просто график сжат, так как я год и три месяца уместил в одной картинке. растянуть и картинка будет выглядеть более приемлемо. Но не считая последние месяц в силу определенных событий.
avatar
Zmey56, не так уж и сжат. Мин период =60, на графике деление = 2 мес.
Длительность переходного процесса на 1(t) = 2 мес. По уровню 0.7 = 42 дня.
Не говорю, что ошибка, но я не понимаю откуда берутся скачки.
avatar
3Qu, так как вопрос интересный, пересчитал все — ошибки нет. можно еще через excel прогнать, как на сайте бкс предлагают, но я не думаю, что что то измениться. Ради интереса я проверил PIKK — скачок произошел 10.10.2019.
График из Yahoo. Можно еще конечно наложить скользящую среднюю, чтоб сгладить такие вещи, но мне это не подходит.

avatar
Zmey56, скачек по волатильности
avatar
Zmey56, не, на волатильность МА не надо накладывать. Она сама по себе уже д.б. сглажена.
avatar
3Qu, согласен. но есть же индикаторы где средняя сглаживается еще одной средней и т.д. Это просто как вариант я предложил и сам как говорил не использую…
avatar
Графики может рисовать только Юпитер или еще кто?
avatar
Exorcist, я, так, в Spyder все делаю. Имхо, все гораздо удобней. Но на вкус и цвет…
avatar
 Почему, по идее в любой среде. Мне удобнее Jupyter, так как на нем учился + использую Colab, если лень устанавливать на машину Anaconda.
avatar

теги блога Aleks

....все тэги



UPDONW
Новый дизайн