2023-08-15

ローソク足チャート ~ PySide6, mplfinance

PySide (Qt for Python) は、Qt(キュート)の Python バインディングで、GUI などを構築するためのクロスプラットフォームなライブラリです。配布ライセンスは LGPL で公開されています(商用ライセンスも有り)。最新のバージョンは Qt6 に対応した PySide6(記事執筆時点で 6.5.2)です。

ローソク足チャート (Candlestick chart) は、株価などの相場の値動きを時系列に沿って図表として表す手法の一つです。単位期間を定め、単位期間中に初めに付いた値段を始値(はじめね)、最後に付いた値段を終値(おわりね)、最も高い値段を高値(たかね)、最も安い値段を安値(やすね)とし、この四種の値段(四本値=よんほんね)を「ローソク」と呼ばれる一本の棒状の図形に作図し、時系列に沿って並べて値段の変動をグラフとして表したものです。

mplfinance ライブラリを使ってローソク足チャートをプロットできます。mplfinance は金融データの視覚化および分析のための matplotlib ユーティリティーです。

以前、PySide2 に mplfinance で出力したチャートを埋め込んだサンプルを示しましたが [1]、今回は PySide6 を使ったサンプル(改良版)を紹介します。

データファイル candlestick_sample_data.csv

上記サンプル CSV ファイルを読み込んでローソク足プロットを作成するスクリプトを下記に示しました。

qt_mpl_finance.py
#!/usr/bin/env python
# coding: utf-8
import matplotlib.pyplot as plt
import mplfinance as mpf
import pandas as pd
import sys
from matplotlib.backends.backend_qtagg import (
FigureCanvasQTAgg as FigureCanvas,
NavigationToolbar2QT as NavigationToolbar,
)
from matplotlib.figure import Figure
from PySide6 import QtCore
from PySide6.QtWidgets import (
QApplication,
QMainWindow,
)
class Example(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
self.resize(800, 600)
self.setWindowTitle('Candlestick Chart on PySide6')
def initUI(self):
# sample dataset
filename = 'candlestick_sample_data.csv'
df = pd.read_csv(filename, index_col=0, parse_dates=True)
fig = Figure()
grid = plt.GridSpec(3, 1, wspace=0, hspace=0.0)
ax1 = fig.add_subplot(grid[0:2, 0])
ax2 = fig.add_subplot(grid[2, 0], sharex=ax1)
mpf.plot(
df,
style='binance',
type='candle',
mav=(14, 28),
show_nontrading=False,
datetime_format='%m/%d',
ax=ax1,
volume=ax2
)
ax1.grid()
ax2.grid()
canvas = FigureCanvas(fig)
self.setCentralWidget(canvas)
self.addToolBar(
QtCore.Qt.ToolBarArea.BottomToolBarArea,
NavigationToolbar(canvas, self)
)
def main():
app = QApplication(sys.argv)
ex = Example()
ex.show()
sys.exit(app.exec())
if __name__ == '__main__':
main()
view raw gistfile1.txt hosted with ❤ by GitHub

Fedora 38 の GNOME デスクトップ環境で実行した例を示しました。

qt_mpl_finance.py の実行例

参考サイト

  1. bitWalk's: ローソク足チャート ~ python/mplfinance [2021-05-02]

 

ブログランキング・にほんブログ村へ bitWalk's - にほんブログ村 にほんブログ村 IT技術ブログ オープンソースへ
にほんブログ村

オープンソース - ブログ村ハッシュタグ
#オープンソース



0 件のコメント: