pythonで株価を扱う 指標を取得する(epsやper)

備忘録

分かりやすいのでメモさせていただきました。

▷pandas
Python版のエクセル。データ分析では必須。

▷pandas_datareader
Yahoo!finance USから必要なデータを取得できる便利なライブラリ。
マーケット分析では必須。

▷matplotlib
Pythonでチャートを描画する際、必ずと言って良いほど使う可視化ライブラリ。
『matplotlib.pyplot』はよく書くパターン。

 

次に株価に関わるいろいろな指標を取得してみる。

まずは、参考にさせていただいているブログを真似てみる。

 

import datetime
import pandas_datareader.data as web
codelist = ["KO","PG","MSFT"]
pers = web.get_quote_yahoo(codelist)['trailingPE']
# trailingPE:実績PER
print(pers)

実績per

次にEPSを取得してみる。

import datetime
import pandas_datareader.data as web
codelist = ["KO","PG","MSFT"]
data = web.get_quote_yahoo(codelist)

[ ['epsTrailingTwelveMonths','epsCurrentYear','epsForward'] ]

print(data)
 

 
# epsForward:12ヶ月先の予想eps
# epsTrailingTwelveMonths:過去12ヶ月のEPS
#epsCurrentYear:今年のEPS

EPS



とりあえず、ここまで。

 
 

Pythonで株価を扱う yahoo_finance_api2

参考にさせていただいているブログに従って、yahoo_finance_api2も試してみた。

 

まずはライブラリーページのまま、マイクロソフトの過去10日間の5分足データを得ることにする。

 

import sys
import pandas as pd
from yahoo_finance_api2 import share
from yahoo_finance_api2.exceptions import YahooFinanceError
my_share = share.Share('MSFT')
symbol_data = None
 
try:
symbol_data = my_share.get_historical(
share.PERIOD_TYPE_DAY,10,
share.FREQUENCY_TYPE_MINUTE,5) 
except YahooFinanceError as e:
print(e.message)
sys.exit(1)
 
#symbol_dataは辞書型、それぞれの値はリストになっているので、DataFrameに変換する。
df = pd.DataFrame(symbol_data)
 
#日付がtimestampになっているので、datetimeに変換する
#pandasにはto_datetimeという関数がある。
df["datetime"]=pd.to_datetime(df.timestamp,unit="ms")
print(df.head())

f:id:toto0130:20220130070009j:plain

MSFT

できた!

同様に、コカコーラ(KO)の過去10週の週足データを求めてみる。

f:id:toto0130:20220130083501j:plain

 

  • 日で指定:share.PERIOD_TYPE_DAY
  • 週で指定:share.PERIOD_TYPE_WEEK
  • 月で指定:share.PERIOD_TYPE_MONTH
  • 年で指定:share.PERIOD_TYPE_YEAR

とのことです。

 

 

 

Pythonで株価を扱う チャート

調子に乗って、チャートも書いてみる。

1990年からコカコーラの株を買っていたらどうなっていたか。

f:id:toto0130:20220127090229j:plain

株価(Coca-Cola)

すごいな。何倍になっているんだろう?

でも、下落幅も大きくて持ち続けるのはストレスになりそう。

買ったら株価は見ないで放置しておくのが良さそう。

 

import datetime
import pandas_datareader.data as web
import matplotlib.pyplot as plt

#日付を指定して、コカ・コーラのデータを入手する.
start = datetime.date(1990,1,1)
end = datetime.date.today()

#Adj Close:終値だけ抜き出してdataに入れる
data = web.DataReader('KO','yahoo',start,end)["Adj Close"]

plt.plot(data,label="KO Adj Close")
plt.xlabel('date')
plt.ylabel('value')
plt.legend()
plt.show()

 

チャートを書くとき、全部のデータを描いちゃうと訳わからなくなるので、終値だけ抜き出すのがコツでした。

 

 

Pythonで株価を扱う2

前回に引き続き、どんどん進める。

次はライブラリを使った方法。

pandas_datareaderはインストールする必要があるようです。

    pip install pandas_datareader

で簡単にインストール可能。

思いのほか簡単にダウジョーンズの株価を手に入れることができました。

すごい世の中だなー

 
    import pandas as pd
    from pandas_datareader import data
    df = data.DataReader("^DJI","yahoo")
    print(df.head(10))
 
同様に日本株も読み込んでみる。あと、日付けも指定してみる。
参考にしたのはこちらの方のブログ。とても分かりやすいです。
 
    #日付を指定して、日経225のデータを入手する.
    #直近10日間のデータを表示する。
 
    import datetime
    import pandas_datareader.data as web
 
    start = datetime.date(2017,1,1)
    end = datetime.date.today()
 
    df = web.DataReader("^N225","yahoo",start,end)
    print(df.tail(10))

f:id:toto0130:20220127073216j:plain

inv_n225

できた。嬉しい!

 
 

Pythonで株価を扱う

 プログラミングを勉強したくて、これまで本で何冊か勉強したけれどその都度挫折してきた。本の内容が分からないということはあまりないんですが、そのあとが続かない。

 何をやったらいいのか、と思っているうちに離れてしまう・・・ということを繰り返してきました。多分、プログラミングの勉強自体を目的化してしまって、プログラミングを使って何をしたいか明確にしてこなかったからだろうと思います。

 

 何年か前から株を始めていて、あまりのデータの多さにプログラミングを使えたらな・・・と思っていたのですが、どうせ難しいんだろうと思って本気に考えていなかった。

 けれど、最近、まさに僕のやってみたいことをブログで公開されている方を見つけて、「おぉっ」ってなったので、ちょっとトレースさせていただくことにした。

 参考にさせていただいたのはこちらのブログ →気ままなブログ

 

 手始めに、こちらのページをトレースしてみる → 

【コード解説】Pythonで株価データを取得する!【3つの方法を解説】

 

と思ったら、pandasというライブラリのインストールをはじめとして、しばらくプログラミングしてなかったからxcodeやなんやらのアップデートが必要になって、訳わからなくなっていろんなところからコピペしてインストールしているうちに遂にPythonまで動かなくなってしまう。。

 

知識をおろそかにして勉強せず、インストールしまくっていた報いです。

で、ちょこっとだけググって、なんとかPythonを再インストールして動かせるようにした。

 

そしたら、ブログのとおり株価を読み込むことができた。う、嬉しい。。。

   import pandas as pd

   df = pd.read_csv("7203 過去データ.csv")
   print(df.head())

たったこれだけなんだけど、嬉しいです。

pandas はデータ解析用のライブラリとのこと。

最後の行は標準出力用としてprint文を追加したら表示できました。

 

今回思ったのは、ググればみんななんか書いてくれているんだなということ。

集合知というか、今の時代って分からないことってあまりないから、あとはやる気の問題なんだなぁと実感。

 

 

Pythonを再インストールするための備忘録

久しぶりにプログラミングをするためにPythonをいじっていたら動かなくなってしまったので、再インストールするためにいろいろ調べた備忘録

 

  • pip
    ・ Pythonパッケージのインストールなどを行うユーティリティ。Python3.4以降には標準で付属されている。
    ・ anacondaのインストールユーティリティはcondaを使うのが本当。(pipも使えるらしいけど)

 科学技術計算でないかぎり初心者はanacondaは使わない方がいい。

  • Pythonのインストール
    ・ Pythonをインストールする場合、主に2つの方法がある。Python公式サイトからダウンロードする場合。もう1つは、anacondaを使用する場合。
    ・ Python版は一般的なプログラミングする場合におすすめ。anaconda版は機械学習や統計処理などを行うためのプラットフォームであり、その1つとしてPythonが含まれている。
    ・ Pythonの膨大な資産であるライブラリの利用方法として2つある。1つはPyPl。もう1つは科学技術計算用のanaconda。これらは混同して使用しない方がよいと言われている。
  • Anaconda
    ・ PythonとRプログラミング言語のための無料かつオープンソースのプラットフォーム。
    データサイエンス機械学習人工知能のためのインストールパッケージが多数用意されている。
  • pyenv
    ・ 一つのマシンに複数のバージョンのpythonをインストールしてそれを切り替えて使える仕組み。
    ・ pyenvは使わなくてもインストールできる。頻繁にマイナーバージョンを指定して切り替える必要のあるユーザーには便利だが、初心者には必要ない場合が多い。
  • Homebrew
    ・ Mac OS Xオペレーティングシステム上でソフトウェアの導入を単純化するパッケージ管理システムのひとつ。 Rubyスクリプトで動いている。
  • MacにpyenvをインストールしてPython環境を構築する
    参考: https://www.karakaram.com/mac-pyenv-install/
  • NumPy
    ・ Pythonの数値演算パッケージ
  • TensorFlow
    ・ Google機械学習ライブラリ。NumPyを使用している。
  • 1)pyenvを使ったインストールの流れ
    参考: https://qiita.com/ksato9700/items/5d9eba10fe6b8e064178

    ・ macOSにあるHomebrewを使ってpyenvをインストールする。(pythonのバージョン管理ができるようになる)
    ・ pyenvを使って、必要なバージョンのpythonをインストールする。
  • 2)pyenvを使わないインストールの流れ。
    参考: https://www.python.jp/install/macos/index.html

    ・ gccのインストール → gcc --version で確認できる。
    ・ Homebrewのインストール → brew --version で確認できる。
    ・ Pythonのインストール → brew install python3 で最新版がインストールできる。
  • Anacondaをアンインストールする方法
    参考: https://www.drbuho.com/jp/how-to/uninstall-anaconda-on-mac

    1)BuhoCleanerというツールを使用する。数回クリックするだけ。
    2)ターミナルを使って手動でアンインストールする。
    3)Finderを使って手動でアンインストールする。
  • Pythonを完全にアンインストールする方法
    参考: https://aizine.ai/python-uninstall0227/

    ・ Pythonをアンインストールする前に、Python単体のみをインストールしているのか、 Anacondaなどのアプリケーションもインストールしているのか確認する必要がある。アンインストールに関する操作が変わる。
    ・ Pythonのみをインストールしている場合は、Pythonをインストールした際に作成された関連フォルダを削除する必要がある
    ・ Anacondaをインストールしている場合は、PythonだけでなくAnacondaもアンインストールする必要がある。 その場合Pythonをインストールした際に作成されたフォルダおよび、Anacondaをインストールしていたフォルダの中で残ったファイルについて不要な場合は削除する。
  • Homebrewのインストール
    $ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
    $ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  • パス
    HomebrewはPythonを/usr/local/binにインストールしている。





ジャズの壁

jazzyな雰囲気に憧れてジャズピアノをやりたいという人は多いけど、なかなか続けられない人が多いんじゃないかと思う。

クラシックピアノが上手くても、ジャズピアノには大きな壁がいくつもある。

その1つがアドリブ。

楽譜がない頼りなさがどうにも難しく感じてしまう。

 

アドリブ上達のアドバイスとしてよく聞くのが、耳コピ

クラシックを習った方なら耳コピして採譜することは得意な方だと思う。

 

けれど、コードを理解しないまま耳コピしてしまうと、1コーラス丸ごと覚えてしまうことになり後々応用が効かなくなってしまう。(体験談)

 

そこで、ジャズ理論が必要になってくる。

これがまた難しい。

このコードにはこのスケールが合うとか、(それも1つじゃない)

このコードにはこのテンションが合うとか、合わないとか。

最後には、「理論」じゃなく「感覚」が大事!とか。

 

そんなん覚えられるか!ってことで、諦めてしまう人が多いんじゃないかと思う。

 

全然弾けない自分が言うのもなんだけれど、理論はまぁ必要だけれど、たぶん、体で(指と感覚で)覚えることが必要なんだろうなと思う。

 

理論と実践のバランスが大事。

そう言う意味で、ジャズを勉強すると言うことは、英会話を勉強することに似ているのだと思います。