架空の猫の雑記帳

だらだらと趣味を楽しみつつ米国株で早期リタイアを目指すブログ

米国株の過去データの入手及び解析方法

f:id:kakuneko:20200214205036j:plain

今回は初心者向けの米国株の過去データの入手及び解析方法について説明します。

はじめに

少し前にS&P500の上がりやすい曜日や月を調べました。

割りと簡単に調べる事ができるのですが、やり方を知らない方も居るかも知れませんので説明したいと思います。

www.kakuneko.com

www.kakuneko.com

今回説明する方法

色々方法はあるのですが、今回はyahoo financeのサイトからデータを取得してプログラミング言語のPythonで解析するという方法を説明したいと思います。

なお、私は本職は組み込みエンジニアでC言語を扱っていますが、pyhtonについてはあくまで趣味で少し触った程度なので間違っている点があればご容赦下さい。(コメントで指摘頂けると助かります)

Pythonを使う理由

投資の記事かと思いきや、いきなりプログラミングの話が出てきて驚いた方もいるかもしれません。しかしこれには理由があります。

それは、プログラミングがよくオススメされる副業の一つだからです。(Pythonは習得が容易で求人もけっこうあるらしいです)

ただ、いきなりプログラミングの勉強を始めてもなかなかモチベーションが続かないでしょう。

しかし、今回の米国株の解析のように投資や趣味を元にして、はっきりとした目的が出来ると楽しく学んでいけるのではと思っています。

米国株の解析ができて、プログラムスキルを伸ばして副業に活かせれば、まさに一石二鳥です。

今回の例題

今回は例題として、2019年のS&P500の1日の変化率の平均を求めます。

yahoo financeから米国株の過去データを取得する

日本では無く米国のyahoo financeから取得します。

まず、yahoo financeのサイトに行きます。

finance.yahoo.com

上にある検索画面で「S&P500」で検索すると「^GSPC」が出てくるのでそれを表示します。

「Historical Data」を選択します。

Time Preriodを2019年1月1日~2019年12月31日に設定して「Apply」を選択します。

そしてDownload Dataを選択すればCSV形式で指定した期間のS&P500のデータをダウンロード出来ます。

f:id:kakuneko:20200214211007p:plain

Pythonの準備

Excelに慣れた方ならcsvファイルさえあれば解析できるでしょうが、ここではPythonで解析する方法を説明します。

Pythonのインストール方法については「Python インストール」で検索すればいくらでも出てくるの細かい事は割愛します。以下はWindowsの場合の説明です。

www.python.jp

一緒にPython用のエディタ等も用意すると捗るのですが、今回の趣旨では無いので省略します。

PythonでCSVファイルを読み込んで解析

 以下はソースコードです。

import csv # CSV読み出し

# CSVファイルを読み込む
with open('^GSPC.csv') as f:

    # CSV Readerを作成
    cr = csv.reader(f)

    # 初期化
    l = list()
    i = 0
    
    # CSVを1行づつ読み込む
    for row in cr:

        i += 1

        # ヘッダは飛ばす
        if i == 1:
            continue

        # 1つ目のDataも飛ばす
        elif i == 2:
            close = float(row[5])
            old_close = close
            continue

        # 2つ目以降のData        
        close = float(row[5])
        
        # 変化率を求めてListに入れる
        l.append(close / old_close * 100 - 100)

        # 一つ前のDataを更新
        old_close = close

# 平均値を求める
print(str(sum(l) / len(l)))

流れとしては以下です。

CSVファイルを1行づつ読み込みます。CSVの1行目はヘッダなので無視。2行目はデータだけold_closeに入れておきます。

3行目からは取得したデータ(close)と1行前のデータ(old_close)から変化率を求めてList lに追加していきます。

そして最後にList lの各要素の合計値と要素の数から平均値を求めて表示します。

Pythonの構文や関数の意味についてはググってもらった方が早いかと。質問があればお答えします。

なお、補足ですがPythonのpandas-datareaderというモジュールを使えばPyhtonだけでネットから株価のデータを取得する事も出来ます。こちらもいつか紹介したいと思います。

最後に

いかがでしょうか。

今回の記事を元に自分で色々と米国株を解析してみると面白いでしょう。

プログラミングの勉強を進めれば副業はもちろん、最近流行りのAIを活用して自動で株価を売買するシステムなんかも自分で作れてしまうかもしれません。

色々と夢が広がるのでは無いでしょうか。