LoginSignup
3
7

More than 1 year has passed since last update.

日本株、米国株の日足と週足データを取得する。

Last updated at Posted at 2021-05-15

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
3
7
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
7