import numpy as np
import pandas as pd
import tushare as ts
import MySQLdb as mdb
#获取沪深300指数的股票名单
hs300_data=ts.get_hs300s()
hss=hs300_data[“name”]
#获取上交所SSE,深交所SZSE,港交所HKEX正常上市交易的股票名单
pro=ts.pro_api()
exc=[“SSE”,“SZSE”]
stock_data=[]
for ex in exc:
data=pro.query(‘stock_basic’, exchange=ex,
list_status=‘L’,
fields=‘ts_code,symbol,name,area,industry,list_date’)
stock_data.append(data)
#获取沪深300成分股中正常上市交易的名单
s_name=pd.concat([stock_data[0][[“name”,“ts_code”]],
stock_data[1][[“name”,“ts_code”]]],ignore_index=True)
normal300=[]
num300=len(hss)
numn=len(s_name)
for i in range(num300):
for j in range(numn):
if hss.loc[i]==s_name.loc[j][“name”]:
normal300.append(s_name.loc[i])
#提取沪深300指2010年01月01到2018年01月01的交易数据,存入d_price中
d_price=[]
for i in range(len(normal300)):
df = pro.daily(ts_code=normal300[i][“ts_code”],
start_date=‘20100101’,
end_date=‘20180101’)
d_price.append(df)
PS:本例中总共提取了295个,貌似正常交易的就295个
可以用我的邀请链接注册tushare:https://tushare.pro/register?reg=231221