bookloveru2
株価をライン(Line)に通知しよう。
更新日:2021年1月2日
皆様、こんにちは。
今回は、pythonを使って、株価をラインに通知してみます。
対象銘柄は、
①S&P500
②日経平均株価
③Amazon
④半導体大手AMD
⑤イーロン・マスク最強!テスラ
⑥みんな大好きリンゴ
の6銘柄です。
コードを実行すると、下図の通り画像が通知されます。


何と!AMDは2018.1.1から7倍を達成‼テスラも6倍強!アップルとAmazonもスゲーなんじゃこりゃ~!ビットコインなんて買ってる場合じゃなかった(´・ω・`)的なことになっております。因みに、ビットコ大好きです。
そして、いきなりコードです。
ハイ。ドン!
#まずは必要なモジュールをインポートします。
import datetime
import fix_yahoo_finance as yf
import matplotlib.pyplot as plt
import argparse
import requests
#次に、株価を取得する開始日を決めます。今回は2018.1.1としています。
start = datetime.date(2018,1,1)
end = datetime.date.today()
#ここで、取得したい株価の銘柄を入力します。
#今回は、
#「①S&P500、②日経平均株価、③Amazon、④半導体大手AMD、
# ⑤イーロン・マスク最強!テスラ、⑥みんな大好きリンゴ」の6銘柄です。
codelist = ["SPY","^N225","AMZN","AMD","tsla","APPL"]
#data2に各銘柄の終値を格納。
data2 = yf.download(codelist, start=start, end=end)["Adj Close"]
#パーセント表記へ変換。
df_all=(1+data2.pct_change()).cumprod()
bairitu = df_all.iloc[-1]
print(bairitu)
#グラフを作成。
df_all.plot(figsize=(8,6),fontsize=18)
plt.legend(loc = 'upper left', bbox_to_anchor=(0, 1), borderaxespad=0, fontsize=16)
plt.grid(True)
#ここで、plt.show()のコードを記述しないよう、注意してください。
#ラインへ画像が送信できません。
plt.savefig("test1.png")
#ここからは、ラインへ株価の変化を通知するコードになります。
def PythonNotify(message, *args):
# 諸々の設定
line_notify_api = 'https://notify-api.line.me/api/notify'
line_notify_token = 'メモしておいたアクセストークンに置換'
headers = {'Authorization': 'Bearer ' + line_notify_token}
# メッセージ
payload = {'message': message}
# 画像を含むか否か
if len(args) == 0:
requests.post(line_notify_api, data=payload, headers=headers)
else:
# 画像
files = {"imageFile": open(args[0], "rb")}
requests.post(line_notify_api, data=payload, headers=headers, files=files)
if __name__=='__main__':
PythonNotify('これはテストです。\nブログって結構楽しいかも!(^^)!\nTwitterフォローもお願い致します。\n以下、倍率です。\n' + str(bairitu), 'test1.png')
※LINE Notify(らいん のーてぃふぃー)の設定方法は、ググれば沢山記事があります
ので、ここでは省略しております。
pythonを使えば、ラインの通知も自動化できますね!(^^)!
因みに、Heroku等のサーバーにコードを置けば、対話型Botも作成できます。
以下、参考までにLINEBotとの会話を貼っておきます。

上記のイメージでは、
「ビットコ」と入力すれば、現在のbitflyerFXの価格を返してくれます。
また、それ以外の単語を入力した場合、Wikipediaで調べた結果を送り返してくれます。
なかなか面白いです!(^^)!
上記のコードについては、また別記事にて紹介していきたいと思います。
では、本日もお疲れ様でした。
バイちゃ。