1 この記事は何?
日本株、米国株の日足と週足データを取得する方法を方法を説明します。
2 どのようにするの?
日足株価データは、pandas_datareaderを使います。pandas_datareaderがインストールされていない場合はpipコマンドにてインストールができると思います。インストール方法はこちら
週足データは上記で取得した日足データをresample('W')を行い取得します。下記に記載したコードを実行させてみてください。
週末の株価データを単純に取得する場合は、 dftmp=dftmp.resample('W').last()を使えばOK
example.py
import pandas
from pandas_datareader import data as pdr
import yfinance as yfin
yfin.pdr_override()
#本日から過去1年分の株価データを取得する関数。stocknumには銘柄番号を入れる。
def get_kabuka(stocknum):
Y = datetime.datetime.today().year
M = datetime.datetime.today().month
D = datetime.datetime.today().day
start=datetime.datetime(Y, M-1, D)
end=datetime.datetime(Y, M, D)
#日本株の場合は"銘柄番号.T"で株価データが取得できる。
snum=stocknum +".T" if str(stocknum).isnumeric()==True else stocknum
#df=web.DataReader(snum ,'yahoo',start,end) #株価データを取得する。しかしながら2021/7/2以降使用不可
df = pdr.get_data_yahoo(snum, start, end) #株価データ(日足)を取得する。
d_ohlcv = {'Open': 'first','High': 'max','Low': 'min','Close': 'last','Volume': 'sum'}
dfw = df.resample('W-MON', closed='left', label='left').agg(d_ohlcv) #株価データ(週足)を取得する。
return {"day":df,"week":dfw}
#STOCKNUM='VOOV'#米国株例
STOCKNUM='1570' #日本株例
#本日から過去1年分の株価データを取得する
df= get_kabuka(STOCKNUM)
print("#日足の株価を取得する")
display(df["day"]) #日足の株価を取得する
print("#週足の株価を取得する")
display(df["week"]) #週足の株価を取得する
実行結果は下記の通りになります。
example.py
#日本株'1570'の場合
[*********************100%***********************] 1 of 1 completed
#日足の株価を取得する
Open High Low Close Adj Close Volume
Date
2021-06-29 15850.0 15900.0 15650.0 15740.0 15740.0 4677700
2021-06-30 15830.0 15980.0 15700.0 15730.0 15730.0 4360694
2021-07-01 15780.0 15780.0 15540.0 15620.0 15620.0 3344471
2021-07-02 15620.0 15790.0 15610.0 15700.0 15700.0 2917852
2021-07-05 15650.0 15670.0 15490.0 15520.0 15520.0 3315590
2021-07-06 15620.0 15690.0 15500.0 15560.0 15560.0 3165551
2021-07-07 15050.0 15340.0 15030.0 15260.0 15260.0 6047534
2021-07-08 15200.0 15280.0 14990.0 15020.0 15020.0 4927900
2021-07-09 14620.0 14880.0 14240.0 14850.0 14850.0 15201967
2021-07-12 15440.0 15500.0 15360.0 15460.0 15460.0 8908945
2021-07-13 15630.0 15780.0 15610.0 15640.0 15640.0 6024571
2021-07-14 15410.0 15610.0 15370.0 15510.0 15510.0 4788303
2021-07-15 15430.0 15480.0 15120.0 15160.0 15160.0 6687459
2021-07-16 14840.0 15090.0 14700.0 14890.0 14890.0 8021962
2021-07-19 14500.0 14650.0 14320.0 14470.0 14470.0 8402245
2021-07-20 14200.0 14400.0 14140.0 14220.0 14220.0 8901150
2021-07-21 14610.0 14730.0 14260.0 14380.0 14380.0 7473282
2021-07-26 14900.0 14900.0 14610.0 14670.0 14670.0 5018976
2021-07-27 14750.0 14890.0 14700.0 14800.0 14800.0 3751393
2021-07-28 14500.0 14660.0 14280.0 14420.0 14420.0 7764140
#週足の株価を取得する
Open High Low Close Volume
Date
2021-06-28 15850.0 15980.0 15540.0 15700.0 15300717
2021-07-05 15650.0 15690.0 14240.0 14850.0 32658542
2021-07-12 15440.0 15780.0 14700.0 14890.0 34431240
2021-07-19 14500.0 14730.0 14140.0 14380.0 24776677
2021-07-26 14900.0 14900.0 14280.0 14420.0 16534509