```
# example
# # 1 - 获取20180301上证50指数(000016.XSHG)成分股
# t = get_index_stocks('000016.XSHG')
# # 上证50包含的第一支股票代码
# print(t[0]) # 600000.XSHG
# # 上证50包含的所有股票代码,以列表的形式返回
# print(t)
'''
['600000.XSHG', '600016.XSHG', '600019.XSHG',
'600028.XSHG', '600029.XSHG', '600030.XSHG',
'600036.XSHG', '600048.XSHG', '600050.XSHG',
'600104.XSHG', '600111.XSHG', '600309.XSHG',
'600340.XSHG', '600518.XSHG', '600519.XSHG',
'600547.XSHG', '600606.XSHG', '600837.XSHG',
'600887.XSHG', '600919.XSHG', '600958.XSHG',
'600999.XSHG', '601006.XSHG', '601088.XSHG',
'601166.XSHG', '601169.XSHG', '601186.XSHG',
'601211.XSHG', '601229.XSHG', '601288.XSHG',
'601318.XSHG', '601328.XSHG', '601336.XSHG',
'601390.XSHG', '601398.XSHG', '601601.XSHG',
'601628.XSHG', '601668.XSHG', '601669.XSHG',
'601688.XSHG', '601766.XSHG', '601800.XSHG',
'601818.XSHG', '601857.XSHG', '601878.XSHG',
'601881.XSHG', '601985.XSHG', '601988.XSHG',
'601989.XSHG', '603993.XSHG']
'''
# 2 - 获取股票行情数据
# history()
# w = history(count=3, field='money', security_list=['000001.XSHE', '000002.XSHE'])
# print('------------------------------------')
# print(w)
'''
000001.XSHE 000002.XSHE
2018-02-26 1.318960e+09 1.832518e+09
2018-02-27 1.590018e+09 1.683178e+09
2018-02-28 1.463314e+09 1.621988e+09
'''
# w = history(count=3, field='money', security_list=['000001.XSHE', '000002.XSHE'], df=False)
# print(w)
'''
{'000001.XSHE': array([1318960463.96, 1590018492.14, 1463313702.75]),
'000002.XSHE': array([1832518319.86, 1683177664.9, 1621987601.86])}
'''
# attribute_history()
# w = attribute_history(security='000001.XSHE', count=3, fields=['money', 'high'])
# print(w)
'''
money high
2018-02-26 1.318960e+09 12.00
2018-02-27 1.590018e+09 11.86
2018-02-28 1.463314e+09 11.38
'''
# pandas.DataFrame
# w = attribute_history(security='000001.XSHE', count=3, fields=['money', 'high', 'open'])
# print(w)
'''
money high open
2018-02-26 1.318960e+09 12.00 11.93
2018-02-27 1.590018e+09 11.86 11.80
2018-02-28 1.463314e+09 11.38 11.30
'''
# 获取index
# print(w.index)
'''
DatetimeIndex(['2018-02-26', '2018-02-27', '2018-02-28'],
dtype='datetime64[ns]', freq=None)
'''
# 获取column
# print(w.columns)
'''
Index(['money', 'high', 'open'], dtype='object')
'''
# print(list(w.columns))
'''
['money', 'high', 'open']
'''
# print(w.values)
'''
[[1318960463.96 12.0 11.93]
[1590018492.14 11.86 11.8]
[1463313702.75 11.38 11.3]]
'''
# print(w.loc[:, ['open', 'high']]) # 按标签获取
'''
open high
2018-02-26 11.93 12.00
2018-02-27 11.80 11.86
2018-02-28 11.30 11.38
'''
# print(w.iloc[:, [0, 2]]) # 按位置获取
'''
money open
2018-02-26 1.318960e+09 11.93
2018-02-27 1.590018e+09 11.80
2018-02-28 1.463314e+09 11.30
'''
# print(w.iloc[:, :])
# print(w.loc[:, :])
'''
money high open
2018-02-26 1.318960e+09 12.00 11.93
2018-02-27 1.590018e+09 11.86 11.80
2018-02-28 1.463314e+09 11.38 11.30
'''
# print(w.iloc[:, [0, 2]].values)
'''
[[1318960463.96 11.93]
[1590018492.14 11.8]
[1463313702.75 11.3]]
'''
# print(w.iloc[[0, 2], :])
'''
money high open
2018-02-26 1.318960e+09 12.00 11.93
2018-02-28 1.463314e+09 11.38 11.30
'''
# print(w.T)
'''
2018-02-26 2018-02-27 2018-02-28
money 1.318960e+09 1.590018e+09 1.463314e+09
high 1.200000e+01 1.186000e+01 1.138000e+01
open 1.193000e+01 1.180000e+01 1.130000e+01
'''
# q = query(valuation.code, balance.retained_profit
# ).filter(valuation.market_cap > 100, valuation.pe_ratio < 100
# ).order_by(valuation.market_cap.desc()
# ).limit(10)
# w = get_fundamentals(q)
# print(w)
'''
code retained_profit
0 601398.XSHG 1.084375e+12
1 601939.XSHG 8.842860e+11
2 601857.XSHG 7.039340e+11
3 601288.XSHG 5.666660e+11
4 601988.XSHG 6.485020e+11
5 601318.XSHG 2.222000e+11
6 600519.XSHG 7.327905e+10
7 600028.XSHG 2.808460e+11
8 600036.XSHG 2.390510e+11
9 601628.XSHG 1.404090e+11
'''
# 练习
# 获取任一股票最近5个交易日最高价的平均价
# w = history(count=5, unit='1d', field='high', security_list=['000001.XSHE'], df=True, skip_paused=False)
# print(w)
# print(w.mean()) # 方法1
# print(sum(w) / len(w)) # 方法2
'''
000001.XSHE
2022-07-29 12.90
2022-08-01 12.66
2022-08-02 12.34
2022-08-03 12.27
2022-08-04 12.17
000001.XSHE 12.468
dtype: float64
000001.XSHE 12.468
dtype: float64
'''
# 生成一个list,list中为上证指数成分股中流通市值最大的5个股票的股票代码
cmc_max5 = []
q = query(valuation.code, valuation.circulating_market_cap
).order_by(valuation.circulating_market_cap.desc()).limit(5)
cmc_max5 = get_fundamentals(q)
print(cmc_max5)
'''
code circulating_market_cap
0 600519.XSHG 24068.8750
1 601398.XSHG 11782.0537
2 300750.XSHE 10211.6309
3 601288.XSHG 8559.5381
4 601857.XSHG 8209.4492
'''
# 在本地环境安装使用jqdatasdk,获取当天的实时行情数据
# from jqdatasdk import *
# import jqdatasdk as jq
# jq.auth('你的手机号', '你的密码')
# df = jq.get_price('000001.XSHE', start_date='2022-08-05', end_date='2022-08-11')
# print(df)
'''
open close high low volume money
2022-08-05 12.13 12.31 12.33 11.98 76529787.0 9.308364e+08
2022-08-08 12.25 12.20 12.36 12.16 55199969.0 6.749509e+08
2022-08-09 12.21 12.12 12.22 12.08 55844757.0 6.770986e+08
2022-08-10 12.12 12.06 12.24 12.02 68302321.0 8.258060e+08
2022-08-11 12.08 12.35 12.39 12.04 139930361.0 1.710719e+09
'''
```
2022-08-12