Здесь мы попытаемся изучить библиотеку mplfinance, которую можно использовать для визуализации или анализа данных о ценах на акции. Для анализа здесь мы используем биржевые данные Happiest Minds Technologies (название сценария: HAPPSTMNDS), которые извлекаются из Yahoo Finance. Набор данных можно скачать здесь.

Приступим к анализу.

Данные, которые мы рассматриваем для использования matplotlib Finance Api, представляют собой объект фрейма данных Pandas, содержащий данные Open, High, Low и Close, с индексом даты и времени Pandas.
Мы рассматриваем данные Happiest Minds Limited со столбцами Open, High , Низкий, Близкий (OHLC)

import pandas as pd
df=pd.read_csv('Happiestmind.csv')
df.head()

Теперь давайте рассмотрим информацию об этом наборе данных.

df.info()

Из приведенной выше информации видно, что столбец Date имеет формат object, а не формат datetime. На следующем шаге мы преобразуем его в формат даты и времени, что необходимо для реализации библиотеки mplfinance.

df["Date"] = df["Date"].astype("datetime64")

Теперь мы установим столбец Date в качестве индекса фрейма данных, это также требование для реализации библиотеки mplfinance.

df=df.set_index('Date')

Давайте теперь посмотрим на наш фрейм данных.

df.head()

Поскольку наш фрейм данных готов. Мы можем двигаться дальше и приступить к реализации библиотеки mplfinance.

import mplfinance as mpf

После импорта mplfinance мы можем просто построить данные OHLC, вызвав mpf.plot() для фрейма данных.

mpf.plot(df)

Тип графика по умолчанию, который мы построили выше, — OHLC.
Однако в библиотеке доступны и другие типы графиков. Для других типов графиков мы должны указать ключевое слово с типом аргумента.
Например, type=’candle’, type=’line’, type=’renko’ или type=’pnf’

mpf.plot(df['2010-01':'2010-04'],type='candle')

mpf.plot(df,type='line')

mpf.plot(df['2010-01':'2010-12'],type='renko')

mpf.plot(df['2010-01':'2010-12'],type='pnf')

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

mpf.plot(df['2010-01':'2010-04'],type='ohlc',mav=4)

mpf.plot(df['2010-01':'2010-04'],type='candle',mav=(3,6,9))

В дополнение к скользящей средней мы также можем построить график торгового объема.

mpf.plot(df['2010-01':'2010-04'],
         type='candle',mav=(3,6,9),
         volume=True)

Мы можем стилизовать график, добавив аргумент стиля. Ключевое слово yahoo в аргументе стиля дает нам обычный красно-зеленый график.

mpf.plot(df['2010-01':'2010-04'],
         type='candle',
         style='yahoo', volume=True)

На всех вышеприведенных графиках нет разрывов по координате x, однако у нас есть дни, в которые не было торгов, так называемые неторговые дни. Неторговые дни не отображаются, так как цены для неторговых дней отсутствуют.
Мы можем видеть неторговые дни как гэпы, что может помочь нам определить, где выпадают выходные и праздничные дни.

Неторговые дни можно отображать с помощью show_nontradingключевого слова
show_nontrading=False — это значение по умолчанию, и будут отображаться только те даты/даты и время, которые имеют фактические строки в данных. рамка.

mpf.plot(df['2010-01'],
         type='candle',
         mav=(3,6,9),
         volume=True,
         show_nontrading=True)

Таким образом, mplfinance API упрощает визуализацию биржевых данных и создание иллюстративных финансовых графиков.

Старый API был matplotlib/mpl-finance. Чтобы получить доступ к старому API с новым установленным пакетом mplfinance, мы можем использовать следующие методы:

from mplfinance.original_flavor import <method>

где <method> указывает метод, который мы хотим импортировать, например:

from mplfinance.original_flavor import candlestick_ohlc