米国yahooから任意の株価情報をゲットしてグラフ化するパイソンプログラム

株式アルゴリズムトレードへの道

finance.yahoo.comからAPIをコールして株価データを取得しグラフ化するコード

パイソンプログラムを走らせて、ticker(株コード)を入力するだけ。

tickerがわからなければ list と入力してエンターで一覧のサイトを開きます。

日本株もOK,トヨタなら 7203.T と日本の証券コード+.Tとします。

ループしますので、終えるときは end と入力

 

例:qcomと入力しクァルコム株価2年分のチャートを表示

(qcom 10株持ってます、爆騰がりだウシシ)


わざわざfnance.yahoo.comである理由は、日本のサイトにはAPIを無料でコールできるサイトがないの情報が少ないからです。

ソースコード

コードは↓たったこれだけです。python恐るべし。

#pandas_datareaderをインストール↓
#pip install git+https://github.com/pydata/pandas-datareader.git
import pandas_datareader.data as web #要pip↑
import datetime
import matplotlib.pyplot as plt
import webbrowser#標準モジュールpip不要
end = datetime.datetime.today() #今日の日付を取得
start = end-datetime.timedelta(days=732)#遡る日数
while True:
    stock1=input('input ticker (h=help) > ')#ticker,日本で言う証券コード
    if stock1=='end':
       break
    elif stock1=='list':
        webbrowser.open('https://search.sbisec.co.jp/v2/popwin/info/stock/pop6040_usequity_list.html')
    elif stock1=='h' or stock1=='help':
        print ('''   [h]  help
   [list] open listing site(SBI証券アメリカ株一覧のページを勝手に開くぞよ)
   [end] END      ''')
    else :
        try:
            f1 = web.DataReader(stock1, 'yahoo', start, end)
            print(f1.tail())
            f1['Close'].plot(title='YAHOO finance  '+stock1, grid=True)
            plt.show()

        except:
            print('SYMBOL名が間違っていませんか?')

 


ヘルプ類を取ったシンプルなコード

import pandas_datareader.data as web #要pip
import datetime
import matplotlib.pyplot as plt
end = datetime.datetime.today()
start = end-datetime.timedelta(days=732)#日数
while True:
    stock1=input('input ticker (h=help) > ')#ticker,日本で言う証券コード
    try:
        f1 = web.DataReader(stock1, 'yahoo', start, end)
        f1['Close'].plot(title='YAHOO finance  '+stock1, grid=True)
    except:
        print('SYMBOL名が間違っていませんか?')

 

コメント

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