申万一级行业变化
程序员文章站
2022-07-13 15:15:10
...
1、比较
'''
申万指数在2014-02-21有一次大改,删除了6个一级行业,并增加了11个一级行业。故:
date < 2014-02-21 申万一级行业有23个
date = 2014-02-21 申万一级行业有34个
date > 2014-02-21 申万一级行业有28个
'''
#date='2014-02-20',23个
code1 = jd.get_industries(name='sw_l1', date='2013-01-20')
#date='2014-02-21'有34个
code2 = jd.get_industries(name='sw_l1', date='2014-02-21')
#date='2014-02-22'有28个
code3 = jd.get_industries(name='sw_l1', date='2015-02-22')
2、聚宽数据问题
查询申万一级行业估值数据时,行业名称有问题
def get_sw1_valuation(start_date=None, end_date=None):
#2014-02-22之后申万一级行业28个
code = jd.get_industries(name='sw_l1',date='2014-02-22').index.tolist()
days = jd.get_trade_days(start_date,end_date)
index = jd.finance.run_query(jd.query(jd.finance.SW1_DAILY_VALUATION).filter(
jd.finance.SW1_DAILY_VALUATION.date=='2014-02-22'
).limit(1)).columns.tolist()
data = pd.DataFrame(columns = index)
for day in days:
df=jd.finance.run_query(jd.query(jd.finance.SW1_DAILY_VALUATION).filter(
jd.finance.SW1_DAILY_VALUATION.code.in_(code),
jd.finance.SW1_DAILY_VALUATION.date==day
))
name1 = set(list(map(lambda x:x[:-1],code3.name.tolist())))
name2 = set(df.name.tolist())
print(day)
print(name1-name2)
if not name1-name2:
data = pd.concat([data, df], axis = 0, sort=False)
break
return data
df = get_sw1_valuation(start_date='2015-01-01',end_date='2020-05-01')
这里可以说明在2015-01-22之前申万一级行业名称有问题。(下图是debug得到的图)
最后验证一下:(说明2015-01-22之后数据就没问题了)
name1 = set(list(map(lambda x:x[:-1],code3.name.tolist())))
name2 = set(df.name.tolist())
上一篇: 金融科技之交易:动量效应选股策略
下一篇: DolphinDB基础概念理解:Orca
推荐阅读