こんにちは! 今回は、Raspberry Piを使ってNISA口座の投資状況を管理できるDIYシステムを構築しながら方法を詳しく解説します。
「自分の投資データを即座に確認したい」「DIYで学び楽しく投資管理を」したい」という方にオススメです!
システム概要
このシステムでは以下のことができます:
- 突然で株価や投資信託の価格を取得します。
- NISA口座の非枠(120万円)の利用状況を計算・沈黙化。
- 投資データをグラフ表示して、現状を直感的に把握。
これをRaspberry Piを使った小型ディスプレイで常に確認できるようにします。
準備物
Raspberry Pi 4(推奨):他のモデルでも可能ですが、処理速度の点で4が最適です。
microSDカード(32GB以上):OSやプログラムの保存用。
タッチスクリーンディスプレイ:公式7インチディスプレイまたはHDMI接続の小型ディスプレイ。Raspberry Pi用電源アダプターUSBキーボードとマウス:セットアップ時に使用します。
Python環境:初期インストール時に用意します。
処理の流れ
- データ取得:Yahoo! Finance APIまたはAlpha Vantage APIを使ってポートデータを取得します。
- データの管理:投資済み金額を計算し、NISA枠の残高を表示します。
- 結果の一時化:Raspberry Piのディスプレイで当面表示。
手順
1.Raspberry Piのセットアップ
OSのインストール
- Raspberry Pi公式サイトからRaspberry Pi OSをダウンロード。
- Balena Etcherなどを使ってSDカードにOSを焼き込みます。
- 初期設定を行い、Wi-Fiや接続SSHを有効化します。
Pythonライブラリのインストール
以下のコマンドをターミナルで実行して、必要なライブラリをインストールします:
sudo apt update
sudo apt install python3-pip
pip3 install requests matplotlib
2. 収益データ取得スクリプトの作成
ヤフー! Finance APIを使ってリアルタイムデータを取得するプログラムを作成します。
ポータル取得スクリプト(stock_price.py
)
import requests
def get_stock_price(symbol):
url = f"https://query1.finance.yahoo.com/v7/finance/quote?symbols={symbol}"
response = requests.get(url)
data = response.json()
try:
price = data['quoteResponse']['result'][0]['regularMarketPrice']
return price
except (IndexError, KeyError):
return None
# 銘柄コードを指定(例: Apple Inc.)
symbol = "AAPL"
price = get_stock_price(symbol)
if price:
print(f"{symbol}の株価は${price}です。")
else:
print("株価を取得できませんでした。")
3. NISA枠の利用状況を計算する
投資金額計算スクリプト(nisa_calculator.py
)
def calculate_nisa_limit(invested, limit=1200000):
remaining = limit - invested
return max(remaining, 0)
# 投資済み金額を入力
invested_amount = 800000 # 80万円投資済み
remaining_limit = calculate_nisa_limit(invested_amount)
print(f"NISA枠の残りは{remaining_limit}円です。")
4. データをグラフで解決する
グラフ表示スクリプト(nisa_graph.py
)
import matplotlib.pyplot as plt
def show_nisa_pie_chart(invested, limit=1200000):
remaining = calculate_nisa_limit(invested, limit)
labels = ['使用済み', '残り枠']
sizes = [invested, remaining]
colors = ['gold', 'lightblue']
plt.pie(sizes, labels=labels, colors=colors, autopct='%1.1f%%')
plt.title("NISA枠の利用状況")
plt.show()
# 投資済み金額
invested_amount = 800000
show_nisa_pie_chart(invested_amount)
5.全体を統合したメインスクリプト
メインプログラム(investment_manager.py
)
import requests
import matplotlib.pyplot as plt
# 株価取得
def get_stock_price(symbol):
url = f"https://query1.finance.yahoo.com/v7/finance/quote?symbols={symbol}"
response = requests.get(url)
data = response.json()
try:
return data['quoteResponse']['result'][0]['regularMarketPrice']
except (IndexError, KeyError):
return None
# NISA枠計算
def calculate_nisa_limit(invested, limit=1200000):
return max(limit - invested, 0)
# グラフ表示
def show_nisa_pie_chart(invested, limit=1200000):
remaining = calculate_nisa_limit(invested, limit)
labels = ['使用済み', '残り枠']
sizes = [invested, remaining]
colors = ['gold', 'lightblue']
plt.pie(sizes, labels=labels, colors=colors, autopct='%1.1f%%')
plt.title("NISA枠の利用状況")
plt.show()
# メイン処理
if __name__ == "__main__":
symbol = "AAPL" # 銘柄コード
invested_amount = 800000 # 投資済み金額
# 株価を取得
price = get_stock_price(symbol)
if price:
print(f"{symbol}の株価は${price}です。")
else:
print("株価を取得できませんでした。")
# NISA枠の状況を表示
show_nisa_pie_chart(invested_amount)
6. システムの起動と表示
- ディスプレイをRaspberry Piに接続し、Pythonスクリプトを実行します:バッシュ著作権を所有する
python3 investment_manager.py
ディスプレイにポータル情報とNISA枠のグラフが表示されます。
これで、Raspberry Piを使った投資管理システムが完成です!