※本記事には広告・アフィリエイトリンクが含まれます。収益はサイト運営・検証費用に充てています。
結論から言うと:
- ConoHa VPSにUbuntu 22.04を立ててPython 3.11+yfinanceを動かすまでの手順は、おおよそ30分で完了する
- SSHでサーバーに接続し、aptとpip3の2コマンドで環境が整う仕組みです
- cron連携まで設定すれば、毎日自動で株価データを取得できる状態になる
動作確認環境:Ubuntu 22.04 / Python 3.11 / yfinance 0.2.x
必要なもの
ConoHa VPSのアカウントとサーバー(最小プランで十分)、ローカルPCのSSHクライアント(macOSはターミナル、WindowsはPowerShellまたはTera Term)、この3点があれば作業を進められます。
Ubuntuサーバーを起動する
ConoHaコントロールパネルから「サーバー追加」→「VPS」→「Ubuntu 22.04」を選択します。rootパスワードを設定し、サーバーが「起動中」になるまで待ちます。表示されたIPアドレスをメモしておきます。
SSHで接続する
ローカルのターミナルから次のコマンドで接続します。
ssh root@<サーバーのIPアドレス>
初回接続時は「Are you sure you want to continue connecting?」と聞かれるので、yesと入力します。
Pythonとpipをインストール
まずパッケージリストを最新化してからPythonをインストールします。
sudo apt update && sudo apt upgrade -y
sudo apt install python3 python3-pip -y
インストール後、バージョン確認します。
python3 --version
pip3 --version
ライブラリインストール
株価分析に必要なライブラリをまとめてインストールします。
pip3 install yfinance pandas requests matplotlib
率直に言うと、これだけで株価の取得・加工・グラフ化に必要な環境はほぼ整う仕組みです。
スクリプト配置・動作確認
サーバー上にスクリプトを配置して動作を確認します。
mkdir -p /home/stock && cd /home/stock
nano fetch_stock.py
以下のコードをfetch_stock.pyとして保存します。
import yfinance as yf
import pandas as pd
from datetime import datetime
ticker = yf.Ticker("7203.T")
df = ticker.history(period="1mo")
print(df[['Close']].tail(5))
print(f"取得日時: {datetime.now()}")
df.to_csv("/home/stock/toyota.csv")
print("保存完了: /home/stock/toyota.csv")
スクリプトを実行して動作を確認します。
python3 /home/stock/fetch_stock.py
筆者の検証メモ
Ubuntu 22.04 + ConoHa最小プランでも、yfinanceでの株価取得は問題なく動作した。matplotlibでグラフを描画する場合、ヘッドレス環境ではバックエンドをAggに切り替える必要がある(matplotlib.use(‘Agg’)をimport直後に記述)。pandas 2.x系ではFutureWarningが出る場合があるため、公式ドキュメントを参照するとよい。
次のステップ(cron自動実行)
環境が整ったら、cronを使ってスクリプトを毎日自動実行する設定に進むことを推奨します。平日の15:30に自動実行すれば、毎日の終値データを自動収集できる仕組みが完成します。
【投資免責事項】本記事で紹介するコードおよび分析結果は情報提供を目的としたものであり、特定の銘柄への投資を推奨するものではありません。投資判断はご自身の責任で行ってください。

