Pythonで「株価分析ダッシュボード」を作ってみた【Dash×Plotly】

プログラミング

株価の変動をリアルタイムで分析したい。でも、証券サイトやアプリだと「使いづらい」「見たい情報が出せない」と感じていませんか?

そんな悩みを解決するのが自作の株価分析ダッシュボードです。

PythonとDash、Plotlyを使えば、自由にカスタマイズできる可視化ツールを簡単に作れます。

本記事では、プログラミング初心者でも理解できるように、誰でも作れる株価分析ダッシュボードの作成方法を解説します。

株価分析ダッシュボードとは?

結論

株価分析ダッシュボードとは、株価の動きを視覚的に確認できる自作の分析ツールです。

解説

一般的に株価分析は、証券会社のツールやアプリを使って行いますが、機能が限定されていたり、カスタマイズ性が低いと感じることがあります。

そこで注目されているのが、Pythonで作るオリジナルの株価可視化ツールです。

Dash×Plotlyを活用することで、以下のようなことが可能になります:

• 任意の銘柄の株価をグラフで表示

• 移動平均線や出来高の表示

• 日付を指定して期間絞り込み

• 表形式でのデータ確認

完全に自分用にカスタマイズできる点が最大のメリットです。

使用するライブラリと環境構築

結論

DashとPlotlyを使ってWebベースのダッシュボードを作成します。

解説

株価分析には以下のライブラリを使用します:

• yfinance:Yahoo! Financeから株価データを取得

• pandas:データの加工や計算

• Dash:インタラクティブなWebアプリケーションの構築

• Plotly:美しいグラフの描画

インストールコマンド:

1
pip install yfinance dash plotly pandas

DashはWebサーバーを立てるため、ローカル環境にPythonが必要です。

VSCodeやJupyter Notebookでも動作可能です。

株価データを取得する方法

結論

yfinanceライブラリを使うことで、日付指定の株価データが簡単に取得できます。

解説

以下のコードで、任意の銘柄(ここではトヨタ自動車)の株価データを取得できます。

1
2
3
4
5
import yfinance as yf
 
ticker = yf.Ticker("7203.T"# トヨタ自動車(東京証券取引所)
data = ticker.history(period="6mo")
print(data.head())

取得できる情報:

• 始値、終値、最高値、最安値

• 出来高(取引量)

• 日付ごとのデータフレーム

APIキー不要で無料なので、誰でも手軽に使えます。

Dash×Plotlyで可視化する方法

結論

DashでWebアプリを作り、Plotlyでグラフを描画するだけで視覚化できます。

解説

以下がシンプルな株価グラフを描画するコードです:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import dash
from dash import dcc, html
import plotly.graph_objs as go
 
app = dash.Dash(__name__)
app.layout = html.Div(children=[
    html.H1(children='株価分析ダッシュボード'),
    dcc.Graph(
        id='stock-graph',
        figure={
            'data': [
                go.Scatter(
                    x=data.index,
                    y=data['Close'],
                    mode='lines',
                    name='終値'
                )
            ],
            'layout': {
                'title': 'トヨタ株価の推移'
            }
        }
    )
])
 
if __name__ == '__main__':
    app.run_server(debug=True)

ブラウザでグラフを確認できる仕組みになっており、操作も直感的です。

インタラクティブ機能の追加

結論

ユーザーが選択できる機能を加えることで、より使いやすいツールに進化します。

解説

DashのDropdownやDatePickerを使えば、以下のようなことができます:

• 銘柄の選択

• 表示期間の変更

• グラフ種別の切り替え(折れ線・ローソク足など)

コード例:

1
2
3
4
5
6
7
8
dcc.Dropdown(
    id='ticker-dropdown',
    options=[
        {'label': 'トヨタ', 'value': '7203.T'},
        {'label': 'ソフトバンク', 'value': '9984.T'}
    ],
    value='7203.T'
)

インタラクティブ機能は学習コストは低く、効果が大きいです。

公的機関の株価データについて

結論

正確な株価データを扱うなら、金融庁や日本取引所のデータも参考になります。

解説

信頼できるデータソースとして、以下が挙げられます:

• 日本取引所グループ(JPX):https://www.jpx.co.jp

• 金融庁 統計情報:https://www.fsa.go.jp/statistics/

これらのデータは分析や検証にも活用できます。

yfinanceのデータと突き合わせて精度を高めるとより信頼性が上がります。

完成形コードの全体像

以下がダッシュボード全体の完成コードです:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# 必要なライブラリ
import yfinance as yf
import dash
from dash import dcc, html
import plotly.graph_objs as go
 
# データ取得
ticker = yf.Ticker("7203.T")
data = ticker.history(period="6mo")
 
# アプリ構築
app = dash.Dash(__name__)
app.layout = html.Div(children=[
    html.H1(children='株価分析ダッシュボード'),
    dcc.Graph(
        id='stock-graph',
        figure={
            'data': [
                go.Scatter(
                    x=data.index,
                    y=data['Close'],
                    mode='lines',
                    name='終値'
                )
            ],
            'layout': {
                'title': 'トヨタ株価の推移'
            }
        }
    )
])
 
if __name__ == '__main__':
    app.run_server(debug=True)

まとめ

本記事では、Pythonで「株価分析ダッシュボード」を作る方法を解説しました。

Dash×Plotlyを使えば、初心者でも簡単に可視化ツールが作れます。

この記事のポイント:

• 株価データはyfinanceで簡単取得

• DashでWebアプリ化、Plotlyでグラフ表示

• ユーザー入力やインタラクティブ操作も可能

• 完成形コードをそのまま実行できる

自作ダッシュボードを通じて、データ分析の力を実践で学ぶきっかけにしていただければ幸いです。

タイトルとURLをコピーしました