Ну что продолжим?
В заголовке я привел дословный перевод. Если кто меня поправит, и другой термин более применим — то спасибо.
Смысл скользящего окна– с каждым новым значением функция пересчитывается за заданный период времени. Этих функций большое количество. Для примера: rolling.mean(), rolling.std(), которые чаще всего и используют при анализе движения акций. rolling.mean() — это обычная скользящая средняя, которая сглаживает краткосрочные колебания и позволяет визуализировать общую тенденцию.
График, который позволит понять то, что получается в результате работы данной функции:
Как видно rolling.mean() справляется с поставленной задачей. Функция сглаживает краткосрочные колебания и позволяет увидеть долгосрочный тренд на основании которого можно принять решение: цена выше рассматриваемой скользящей средней — берем акцию, ниже — продаем акцию — если просто и я бы не советовал следовать этому методу. Как правило помимо скользящих средних используются и другие индикаторы, которые могут подтвердить правильность принимаемого решения. Каждый должен самостоятельно принять решение в зависимости от стиля торговли.
Волатильность акций — это изменение дисперсии доходности акций в течение определенного периода времени. Обычно сравнивают волатильность одной акции с другой, чтобы получить представление о том, какая может иметь больший риск, или с рыночным индексом, чтобы понять волатильность акций относительно рынка. Как правило, чем выше волатильность, тем рискованнее инвестиции в эту акцию. Необходимо отметить, что она не является постоянной и изменяется с течением времени. Это можно увидеть опять же при помощи функции rolling.std(), входящей в пакет pandas. Пример расчета изменения волатильности:
Прошу обратить внимание, что в отличие от прошлой недели у меня появилось еще два значения — индекс московской биржи (IMOEX.ME) и РБК (RBCM.ME). Их значения мне потребуются в следующей публикации про метод наименьших квадратов. А на сегодня все.
Скользящее окно (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:])
График, который позволит понять то, что получается в результате работы данной функции:
# Вычисление короткой скользящей средней
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()
Как видно 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()
Прошу обратить внимание, что в отличие от прошлой недели у меня появилось еще два значения — индекс московской биржи (IMOEX.ME) и РБК (RBCM.ME). Их значения мне потребуются в следующей публикации про метод наименьших квадратов. А на сегодня все.
Pythonist_Financist
Не понял, если загружали только данные по Сбербанку откуда на последнем графике все остальные акции и индексы?
Zmey56 Автор
В первой части все загружал. Это продолжение
Pythonist_Financist
Спасибо, нашел. Если можно еще вопрос: Если пользоваться только: sber = yf.download('SBER.ME', '2018-01-01') все дальше нормально работает. Но если сохранить в csv-формате: sber.to_csv('sber.csv')
sber = pd.read_csv('sber.csv') выдает TypeError:
Only valid with DatetimeIndex, TimedeltaIndex or PeriodIndex, but got an instance of 'RangeIndex' Как поправить?
Zmey56 Автор
Провел испытание и у меня таких проблем не возникает. Как совет — попробуйте явно указать индексы при открытие csv файла через index_col