Pythonを使った株価予測のやり方!超初心者向けガイド

プログラミング

今回は、Pythonを使って、株価を予測するアルゴリズムを作りました。初心者の私でもそれなりのプログラムができた感じです!みなさんもぜひ、株価を予想するアルゴリズムに挑戦してみてください!

この記事は、以下のような人におすすめです!

・金融工学のアルゴリズムやデータサイエンスがどんなものか分からない人

・データサイエンスを始めてみたい人

Pythonを使った株価予測のやり方!超初心者向けガイド

はじめに:株価予測とは?

株価予測は、過去の株価データやその他の情報を元に、未来の株価を予測することです。これは投資家やファイナンシャルアナリストにとって非常に重要なタスクであり、正確な予測は投資の成功を左右します。

しかし、株価は多くの要素によって影響を受け、その動きは非常に複雑です。

実際に、私は2か月前に株式投資を始めましたが、日によって株価がとても変動しています。なので株価の結果をみるときにめっちゃドキドキします笑。

このように、株価は非常に複雑で精度の高い予測をすることが容易ではないことが分かります。

しかし、株価予測では、プログラミング言語Pythonが役立つ場面があります。

なぜなら、Pythonはデータ分析や機械学習などのツールの使い勝手が良く、とても高い精度の株価アルゴリズムを予想できるからです。そして実際に、専門家(人間の判断)よりもアルゴリズムのほうが精度が高いといった研究結果もでていますし、、、

ですので、株価予測では、Pythonを使ったアルゴリズムが役立つ可能性があります。

Pythonと株価予測:なぜPythonが必要なのか?

Pythonは、株価予測のようなデータ分析タスクにおいて、その高い柔軟性と強力なデータ処理能力で広く利用されています。以下に、Pythonが株価予測に適している理由をいくつか挙げてみましょう。

  • 豊富なデータ分析ライブラリ:Pythonには、データ分析や機械学習に使用できるライブラリが数多く存在します。たとえば、Pandasはデータの操作や分析を簡単に行うことができ、NumPyは数値計算を効率的に行うことができます。また、Scikit-learnは機械学習のアルゴリズムを含み、線形回帰のような予測モデルを簡単に作成することができます。
  • コードの読みやすさ:Pythonのコードは非常にシンプルで読みやすく、初心者でも学びやすいです。これにより、自分のコードを他の人が理解しやすくなり、問題解決やデバッグが容易になります。
  • 可視化ツール:株価のデータや予測結果を視覚的に表現することは、分析結果を理解する上で非常に重要です。Pythonには、MatplotlibやSeabornなどの強力な可視化ライブラリがあり、データの傾向や予測結果を明確に表現することができます。

Pythonでの株価予測:簡単なプログラムを紹介

それでは、Pythonを使って株価を予測する手順について見ていきましょう。

ここでは、Jupyternotebookの環境でプログラムを作成しました。Jupyternotebookは、機械学習コンペや参考書のプログラムなどで活用されているため、データサイエンスを学びたい人はぜひインストールしましょう。

Jupyternotebookのインストール方法は以下の記事がおすすめです。

https://doku-pro.com/jupyter-notebook-install/ (DOKUPROさんの記事)

そして、以下に作成した簡単な株価予測プログラムを紹介します。プログラムでは、大部分をchatgpt(様)を活用して作成しましたね(笑)。

ここでは実際の株価データではなく、ランダムに設定した株価データを使用します。

#株価予想アルゴリズム
#まず、必要なライブラリをインポートします。
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt
from sklearn.metrics import mean_squared_error

# データの準備
np.random.seed(0)  # 乱数の種を固定
days = 365  # データの期間(1年)
initial_price = 100  # 初期価格
final_price = initial_price * 1.06  # 1年後の価格(年利6%で増加)

# 株価を生成(基本的には線形に増加するが、ノイズを加えることでランダム性を持たせる)
values = np.linspace(initial_price, final_price, days) + np.random.normal(0, initial_price * 0.06, days)

# データフレームを作成
data = pd.DataFrame({
    'day': np.arange(days),
    'price': values
})

# データを学習用とテスト用に分割(ここでは、半分に分割しました)
train_data, test_data = train_test_split(data, test_size=0.5, shuffle=False)

# 3. モデルの学習(学習データをもとに一次関数を作ります)
model = LinearRegression()
model.fit(train_data['day'].values.reshape(-1, 1), train_data['price'])

# 4. モデルの評価
predictions = model.predict(test_data['day'].values.reshape(-1, 1))
mse = mean_squared_error(test_data['price'], predictions)

# 5. 予測結果の可視化
plt.figure(figsize=(10, 6))
plt.plot(train_data['day'], train_data['price'], label='Train Data')
plt.plot(test_data['day'], test_data['price'], label='Test Data')
plt.plot(test_data['day'], predictions, label='Prediction')
plt.legend()
plt.grid(True)
plt.title(f'Stock Price Prediction (MSE: {mse:.2f})')
plt.xlabel('Day')
plt.ylabel('Price')
plt.show()

実行結果

緑が、予測モデルです。そして、青のデータ(0~約180day)が訓練データで、オレンジのデータがテストデータです。とくに、予測モデルとテストデータではかなり大きな差ができていることから、上手く近似はできていないプログラムって感じはありますね(笑)。

このプログラムから私が分析したこと

この株価予想プログラムは、シンプルな線形回帰モデルを使って株価を予測する一例を示しています。見た目はまったく株価を予想していないですよね(笑)。

この推測結果を株価に活用するなら、緑の予測線よりも値段が低い時に株価を購入すれば、おおむね値段が上昇して利益が出そうって感じですかね。予測線よりも低いときに買うといった基準を設けているため、投資の初心者が適当にやるよりかは良い結果になるかなと思います。

そして、この欠点だらけの株価予想アルゴリズムの反省点と改良すべきポイントを示します。

  1. モデルの選択:線形回帰モデルは、シンプルで理解しやすいモデルであり、今回のように株価が年間1.06%確実に増えるいうようにデータが線形の関係を持つ場合に適すかと思います。しかし、株価のような複雑なデータに対しては、もっと柔軟性のあるより高度なモデル(例えば、深層学習モデル)を使用するべきですよね。
  2. データの準備:このプログラムでは、シミュレーションデータを使ってモデルの学習と評価を行っています。しかし、実際の問題では、株価が年間1.06%確実に増えるといったことは予測できません。また、株価だけでなく、会社の会計情報やビジネストレンドなどの複数のデータの準備と、アルゴリズムが必要そうですね。

まとめと私がおすすめする勉強法

この記事では、Pythonを使って株価を予測する基本的な手順を学びました。これは初心者が株価予測の基本的なプロセスを理解するための第一歩です。しかし、実際の株価予測では、より高度なモデルや手法を使用することが求められます。私がおすすめする勉強法を紹介します。

1.chatgptにたよる

chatgptは、初心者がアルゴリズム・プログラムを勉強するためにとても優れています。

なぜなら、文章で指示するだけでとても素早く、正確なプログラムを返してくれるからです。

そのため、初心者がありがちなエラーでつまづくことやプログラムを書くのに時間がかかるといった挫折する要因を防いでくれます。

具体的には、今回のプログラムでも簡単な株価予想アルゴリズムを作ってと指示しただけで、今回紹介したようなプログラムを作成してくれました。

ですので、chatgptは、初心者がアルゴリズム・プログラムを勉強するためにとてもおすすめです。全く分からない人もまずはchatgptに書いてもらったプログラムの理解に努めましょう!

2.書籍で学ぶ

まず、株価など金融工学のPythonアルゴリズムをざっくりと学べる本を読みましょう!以下の本がお勧めです。

この本を読むことで、深層学習や時系列解析の技術を使って、より精度の高い予測を行うことができます。これらの技術を学ぶことで、Pythonを使った株価予測のスキルをさらに向上させましょう!

そして、私もまだ駆け出しのエンジニアです。今後、よりよいプログラムを作成し、その都度記事を作成して発信していきたいと思います。ぜひ、勉強法やプログラムを参考にしてみてください!

以上、読んでいただきありがとうございました。

また、過去にFXをしてみた体験談も参考にしてみてください!

そして、プログラミングは挫折が多いです。私が過去に挫折した体験を共有するので、挫折しそうなかたは以下を参考にしてください!

また、インターンにいってみたい方は、以下の記事を参考にしてみてください。初心者であれば、いきなり長期インターンにいくのではなく、短期のインターンシップに参加してみるのがおすすめです。

コメント

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