AIとファイナンス

AIとファイナンスの架け橋、それがこのブログの目指すところです。兼業投資家向けに、Pythonを駆使して株やFXの分析を「自分で」行えるようになるための情報を提供します。ニューラルネットワークを活用した市場予測から、実証済みの金融理論まで、全てのコードを公開し、誰もが活用できるように!是非色々なコードで遊んでみてください!

強化学習を通じて学ぶ日経平均株価予測:データ収集から結果分析まで 【その2】

はじめに

前回の記事では、強化学習を用いた株価予測システムの開発について紹介しました。今回は、このプロジェクトで実際に行ったデータの収集と前処理について詳しく見ていきます。

データの収集


このプロジェクトでは、米国市場のS&P500とDowの指数データを使用しました。これらのデータは、YFinanceからダウンロードしました。YFinanceは、Yahoo Financeの市場データを簡単に取得できるPythonライブラリです。株価、指数、通貨、商品などの歴史的データを無料で提供しており、金融市場分析やアルゴリズムトレーディングのためのデータソースとして広く利用されています。YFinanceを使用すると、特定の銘柄の時系列データを簡単に取得し、分析に利用することができます。

使用したデータ

4本値: 各指数の開始価格、最高価格、最低価格、終了価格を含むデータを使用しました。これらのデータは、市場の動向を理解するのに役立ちます。

データの前処理

収集したデータは、分析に適した形式に変換するために前処理を行いました。

 

実際に行った前処理
データのクリーニング: 欠損値の確認と処理を行いました。特に、市場が休業している日のデータは除外しました。
データの正規化についての考察
このプロジェクトでは、データの正規化は行いませんでした。株価のような時系列データでは、データの絶対値が重要な情報を持つことがあり、正規化によってその情報が失われる可能性があります。また、株価の最大値や最小値が事前に不明であるため、伝統的な正規化手法が適用できない場合があります。
使用したツールとテクニック
PythonとPandas: データの前処理にはPythonとPandasライブラリを使用しました。これらのツールを使用してデータを操作し、分析に適した形式に変換しました。
まとめ
データの収集と前処理は、株価予測モデルの開発において非常に重要なステップです。次回の記事では、モデルの設計と開発について詳しく見ていきます。

今回実際に書いたコードはこちら!コピーして使ってみてください。

import yfinance as yf
import datetime
import pandas as pd
import numpy as np

# 設定: ダウンロードするデータの期間
start_date = "2015-01-01"
end_date = datetime.datetime.now().strftime('%Y-%m-%d')

# S&P 500 (^GSPC), Dow Jones (^DJI), 日経平均(^N225) のティッカーシンボル
tickers = ["^GSPC", "^DJI", "^N225"]

# データをダウンロードしてCSVに保存
for ticker in tickers:
    data = yf.download(ticker, start=start_date, end=end_date)
    data.to_csv(f"{ticker}_data.csv")

print("データのダウンロードが完了しました。")

# CSVファイルからデータを読み込む
sp500_data = pd.read_csv("^GSPC_data.csv", index_col='Date', parse_dates=True)
dow_data = pd.read_csv("^DJI_data.csv", index_col='Date', parse_dates=True)
nikkei_data = pd.read_csv("^N225_data.csv", index_col='Date', parse_dates=True)

# データの最初の数行を表示して確認
print(sp500_data.head())
print(dow_data.head())
print(nikkei_data.head())