目录
import easyquotation
quotation = easyquotation.use('tencent') #数据接口选择,新浪 ['sina'] 腾讯 ['tencent', 'qq']
1.获取所有股票代码:
>>>loaded_codes_list=quotation.load_stock_codes() #返回无前缀的股票代码列表,也含有一些基金代码
>>>loaded_codes_list
['000001', '000002', '000003', '000004', '000005', '000006', ...]
>>>len(loaded_codes_list)
6079
quotation.stock_list属性也返回列表类型的股票代码,但元素为60个代码组成的字符串:
>>>stock_list=quotation.stock_list
>>>stock_list
['sz000001,sz000002,sz000003,sz000004,sz000005,sz000006,sz000007,sz000008,sz000009,sz000010,sz000011,sz000012,sz000013,sz000014,sz000015,sz000016,sz000017,sz000017,sz000018,sz000019,sz000020,sz000021,sz000023,sz000024,sz000025,sz000026,sz000027,sz000028,sz000029,sz000030,sz000031,sz000032,sz000033,sz000034,sz000035,sz000036,sz000037,sz000038,sz000039,sz000040,sz000042,sz000043,sz000045,sz000046,sz000047,sz000048,sz000049,sz000050,sz000055,sz000056,sz000058,sz000059,sz000060,sz000061,sz000062,sz000063,sz000065,sz000066,sz000068,sz000069',
'sz000070,sz000078,sz000088,sz000089,sz000090,sz000096,sz000099,sz000100,sz000150,sz000151,sz000153,sz000155,sz000156,sz000157,sz000158,sz000159,sz000166,sz000301,sz000333,sz000338,sz000400,sz000401,sz000402,sz000403,sz000404,sz000405,sz000406,sz000407,sz000408,sz000408,sz000409,sz000410,sz000411,sz000412,sz000413,sz000415,sz000416,sz000417,sz000418,sz000419,sz000420,sz000421,sz000422,sz000423,sz000425,sz000426,sz000428,sz000429,sz000430,sz000488,sz000498,sz000501,sz000502,sz000503,sz000504,sz000505,sz000506,sz000507,sz000508,sz000509',...]
>>>a=[]
>>>for i in stock_list:
a.extend(i.split(','))
>>>len(a)
6079
2.获取一只或多只股票当前行情信息:
方法1:real()方法或stocks()方法,二者用法相同
>>> quotation.real('000001') #股票代码不加前缀
{'000001': {'name': '平安银行', 'code': '000001',
'now': 13.16, 'close': 13.03, 'open': 13.04, 'volume': 81803600.0, 'bid_volume': 46890400, 'ask_volume': 34913200.0,
'bid1': 13.15, 'bid1_volume': 454700, 'bid2': 13.14, 'bid2_volume': 175300, 'bid3': 13.13, 'bid3_volume': 287700,
'bid4': 13.12, 'bid4_volume': 224300, 'bid5': 13.11, 'bid5_volume': 102400,
'ask1': 13.16, 'ask1_volume': 61300, 'ask2': 13.17, 'ask2_volume': 756500, 'ask3': 13.18, 'ask3_volume': 305300,
'ask4': 13.19, 'ask4_volume': 263700, 'ask5': 13.2, 'ask5_volume': 284300,
'最近逐笔成交': '', 'datetime': datetime.datetime(2022, 12, 30, 16, 14, 30),
'涨跌': 0.13, '涨跌(%)': 1.0, 'high': 13.28, 'low': 12.96,
'价格/成交量(手)/成交额': '13.16/818036/1074756754', '成交量(手)': 81803600, '成交额(万)': 1074760000.0,
'turnover': 0.42, 'PE': 5.82, 'unknown': '', 'high_2': 13.28, 'low_2': 12.96, '振幅': 2.46,
'流通市值': 2553.77, '总市值': 2553.82, 'PB': 0.72, '涨停价': 14.33, '跌停价': 11.73, '量比': 1.1, '委差': -4267.0,
'均价': 13.14, '市盈(动)': 5.22, '市盈(静)': 7.03}}
>>> quotation.real('sz000001') #股票代码加前缀sz
{'000001': {'name': '平安银行', 'code': '000001', 'now': 13.16, 'close': 13.03, 'open': 13.04,...}}
>>> quotation.real('sh000001') #股票代码加前缀sh
{'000001': {'name': '上证指数', 'code': '000001', 'now': 3089.26, 'close': 3073.7, 'open': 3084.52,...}}
>>> quotation.real('000001',prefix=True) #返回值有前缀
{'sz000001': {'name': '平安银行', 'code': 'sz000001', 'now': 13.16, 'close': 13.03, 'open': 13.04, ...}}
>>> quotation.real(['000001','000002'],prefix=True) #查询多只股票
{'sz000001': {'name': '平安银行', 'code': 'sz000001', 'now': 13.16, 'close': 13.03, 'open': 13.04, ...},
'sz000002': {'name': '万 科A', 'code': 'sz000002', 'now': 18.2, 'close': 18.16, 'open': 18.23, ...}}
方法2:get_stock_data()方法
>>>quotation.get_stock_data(['sz000001','sh000002'],prefix=True) #输入须为有前缀的股票代码列表,prefix默认为False
{'sz000001': {'name': '平安银行', 'code': 'sz000001', 'now': 13.16, ...},
'sh000002': {'name': 'A股指数', 'code': 'sh000002', 'now': 3238.19,...}}
3.获取所有股票当前行情信息
方法1:all属性(股票代码无前缀):
>>>all_dict=quotation.all
>>>all_dict
{'000001': {'name': '上证指数', 'code': '000001',
'now': 3089.26, 'close': 3073.7, 'open': 3084.52, 'volume': 21754534400.0,
'bid_volume': 10877267200, 'ask_volume': 10877267200.0,
'bid1': 0.0, 'bid1_volume': 0, 'bid2': 0.0, 'bid2_volume': 0, 'bid3': 0.0, 'bid3_volume': 0,
'bid4': 0.0, 'bid4_volume': 0, 'bid5': 0.0, 'bid5_volume': 0,
'ask1': 0.0, 'ask1_volume': 0, 'ask2': 0.0, 'ask2_volume': 0, 'ask3': 0.0, 'ask3_volume': 0,
'ask4': 0.0, 'ask4_volume': 0, 'ask5': 0.0, 'ask5_volume': 0,
'最近逐笔成交': '', 'datetime': datetime.datetime(2022, 12, 30, 16, 0, 2),
'涨跌': 15.56, '涨跌(%)': 0.51, 'high': 3096.31, 'low': 3082.2,
'价格/成交量(手)/成交额': '3089.26/217545344/250355950865',
'成交量(手)': 21754534400, '成交额(万)': 250355950000.0,
'turnover': 0.5, 'PE': 12.4, 'unknown': '', 'high_2': 3096.31, 'low_2': 3082.2, '振幅': 0.46,
'流通市值': 391951.22, '总市值': 501248.71, 'PB': 0.0,
'涨停价': -1.0, '跌停价': -1.0, '量比': 1.03, '委差': 0.0, '均价': 3090.54, '市盈(动)': None, '市盈(静)': None},
'000002': {'name': 'A股指数',...},...}
方法2:all_market属性(股票代码有前缀):
>>>all_market_dict=quotation.all_market
>>>all_market_dict
{'sz000001': {'name': '平安银行', 'code': 'sz000001', 'now': 13.16, 'close': 13.03, 'open': 13.04, 'volume': 81803600.0,...},
'sz000002': {'name': '万 科A',...},...}
两种方法所得到的数量稍有差别:
>>>len(all_dict),len(all_market_dict)
(5344, 5444)
方法3:market_snapshot()方法
>>>market_snapshot_dict=quotation.market_snapshot() #不设置prefix为True时,返回结果同方法1的quotation.all
>>>market_snapshot_dict
{'000001': {'name': '上证指数', 'code': '000001', 'now': 3089.26, 'close': 3073.7, ...},
'000002': {'name': 'A股指数',...},...}
>>>prefixed_market_snapshot_dict=quotation.market_snapshot(prefix=True) #设置prefix为True时,返回结果同方法2的quotation.all_market
>>>prefixed_market_snapshot_dict
{'sz000001': {'name': '平安银行', 'code': 'sz000001', 'now': 13.16, 'close': 13.03, 'open': 13.04, 'volume': 81803600.0,...},
'sz000002': {'name': '万 科A',...},...}
4.将合理的股票代码加上前缀:
>>>quotation.gen_stock_list(['000001','000002','600001','sh600001','sz600001','sz000001600001','sh30022700001'])
['sz000001,sz000002,sh600001,sh600001,sz600001,sz600001,sh700001']