jsm

次のコードをまずpython3向けに直した。
株価をYahoo Financeから取得する[Python] - Qiita

import jsm



"""Get Brand"""

b = jsm.Brand()

q = jsm.Quotes()

IDS = b.IDS

list_of_dict_brand = []

for industry_code in IDS.keys():

    print(industry_code)

    industry_name = IDS[industry_code]

    brand_data = q.get_brand(industry_code)

    [list_of_dict_brand.append({"ccode":brand.ccode,

                                "industry_code":industry_code,

                                "industry_name":industry_name,

                                "market":brand.market,

                                "name":brand.name,

                                "info":brand.info

                                }) for brand in brand_data]



""" get finance data """

ccodes = [i["ccode"] for i in list_of_dict_brand]



list_of_dict_finance = []

cnt = 0

for ccode in ccodes: #取得した証券コードでループをまわす。

    print(ccode)

    try:

        finance_data = q.get_finance(ccode)

        list_of_dict_finance.append({"ccode":ccode,

                                    "market_cap":finance_data.market_cap,

                                    "shares_issued":finance_data.shares_issued,

                                    "dividend_yield":finance_data.dividend_yield,

                                    "dividend_one":finance_data.dividend_one,

                                    "per":finance_data.per,

                                    "pbr":finance_data.pbr,

                                    "eps":finance_data.eps,

                                    "bps":finance_data.bps,

                                    "price_min":finance_data.price_min,

                                    "round_lot":finance_data.round_lot})

    except:

        print("Error in Financial Data " , ccode)



""" get stock. This takes a time more than minutes"""

list_of_dict_stock = []

start_date = datetime.date(2014,1,1)

end_date = datetime.date.today()

for ccode in ccodes:

    try:

        quote_data = q.get_historical_prices(ccode,jsm.DAILY,start_date=start_date,end_date=end_date)

        if quote_data is None:

            print('ccode {} is None'.format(ccode))

            continue



        [list_of_dict_stock.append({"ccode":ccode,

                     "date":quote.date,

                     "open":quote.open,

                     "high":quote.high,

                     "low":quote.low,

                     "close":quote.close,

                     "volume":quote.volume}) for quote in quote_data]

        print(ccode)



    except:

        print("Error in Quote Data", ccode)



####
次のような結果が返る

list_of_dict_brand[:4]

[{'name': '特種東海製紙(株)',
  'industry_code': '3150',
  'market': '東証1部',
  'ccode': '3708',
  'industry_name': 'パルプ・紙',
  'info': '特種製紙と東海パルプが07年統合、独立系。特殊紙と段ボール原紙用板紙が両輪。製紙8位級'},
 {'name': '王子ホールディングス(株)',
  'industry_code': '3150',
  'market': '東証1部',
  'ccode': '3861',
  'industry_name': 'パルプ・紙',
  'info': '1873年創立。製紙国内首位、うち洋紙2位・板紙1位。アジアや南米など成長市場へ展開'},
 {'name': '日本製紙(株)',
  'industry_code': '3150',
  'market': '東証1部',
  'ccode': '3863',
  'industry_name': 'パルプ・紙',
  'info': '旧王子製紙のうち十條製紙を継承、01年大昭和製紙統合。製紙国内2位、うち洋紙1位・板紙3位'},
 {'name': '三菱製紙(株)',
  'industry_code': '3150',
  'market': '東証1部',
  'ccode': '3864',
  'industry_name': 'パルプ・紙',
  'info': '業界5位で印刷・情報用紙大手。写真感光材などイメージングとの両輪。北越紀州と販社統合へ'}]

{'ccode': '2388',
 'date': datetime.datetime(2015, 1, 13, 0, 0),
 'volume': 15000,
 'open': 164,
 'high': 165,
 'low': 163,
 'close': 165}


コメント