一、聚宽模块安装、更新方法
代码如下:
#安装模块
pip install jqdatadsk
#更新模块
pip install -U jqdatasdk
二、聚宽模块登录
代码如下:
from jqdatasdk import *
auth('账号','密码')
三、获取股票行情数据方法
(一).获取单个股票多天每分钟行情数据的获取函数:get_price(参数)
参 数:
security【股票代码】
start_date【开始时间】=’时间’
end_date【结束时间】=’时间’
frequency【单位时间长度】=’1 d(日)’或’1m(分)’
fields【表头】=[ ‘open【开盘价】’ , ’close【收盘价】’ , ’high【最高价】’ , ’low【最低价】’ , ’volume【成交量】’ , ’money【成交额】’ ]
skip_paused【判断是否跳过非交易日】= True 或 False
fq【复权选项】= ’pre(前复权)’ , ’none(不复权)’ , ’post(后复权)’
count【end_date前的数据个数】= 数值
panel【返回的数据格式】=True 或 False
fill_paused【判断停牌股票的价格处理】=True 或 False
代码如下:
#获取平安银行按1分钟为周期以“2022-1-1至20022-5-1”每分钟数据的数据
data1 = get_price('000001.XSHE', start_date='2022-1-1',end_date='2022-5-1',frequency='1m', skip_paused=True,fq='pre',fields=['open','close','high','low','volume','money'],fill_paused=True,panel=True)
(二).获取单个股票基本信息
( 1 ) 获取所有股票基本信息函数get_all_securities()
参 数 :
display_name【中文名】
name【缩写简称】
start_date【上市时间】
end_date【退市时间】
type【类型】
代码如下:
#所有股票基本信息
AllSecurities=get_all_securities()
#获取单个股票基本信息
Target=AllSecurities[AllSecurities['display_name']=='广发银行']
( 2 )分级基金的母基金代码函数get_security_info(‘股票代码’).parent
代码如下:
#获取分级基金的母基金代码
code = get_security_info('股票代码').parent
四、获取财务数据方法
(一)获取所有股票基本财务数据函数get_fundamentals(参数1)
参 数 1:
query(参数2)【列表名】
date【查询时间】=‘年-月-日’
statDate【财报统计的年份季度】=‘年季度号’
注:date与statDate不能同时用>
参 数 2:
valuation【市值数据】
balance【资产负债数据】
income【利润数据】
indicator【财务指标数据】★
security_indicator【券商业专项指标】
insurance_indicator【保险业专项指标】
cash_flow【现金流数据】
bank_indicator【银行业专项指标】
代码如下:
(1)AllStockData=get_fundamentals(query(列表名,列表名),date='年-月-日')
(2)AllStockData=get_fundamentals(query(列表名,列表名),statDate='年季度号')
(二)获取特定股票股票基本财务数据函数get_fundamentals(query(参数).filer(列表名.code.in_([‘股票代码’,‘股票代码’]),data=‘年-月-日’)
代码如下:
(1)TargetStockData=get_fundamentals(query(列表名,列表名).filer(表名.code.in_(['股票代码','股票代码']),data='年-月-日')
(2)TargetStockData=get_fundamentals(query(列表名,列表名).filer(表名.code.in_(['股票代码','股票代码']),statData='年季度号')
五、实践
1.获取特定股票基本信息,汇总周月K数据
from jqdatasdk import *
import pandas as pd
import time
auth('账号','密码')
print('=============================================================================================================================================================================')
TargetStockList=['中国银行','工商银行']
#获取所有股票基本信息
AllSecurities=get_all_securities()
for StockName in TargetStockList:
TargetStockName=AllSecurities[AllSecurities['display_name']==StockName]
print(TargetStockName)
#获取股票代码
TargetStockID=TargetStockName.index.values
for stockid in TargetStockID:
TargetStockData=get_price(stockid,start_date='2020-1-1',end_date='2021-1-1',frequency='1d',fields=['open', 'close', 'high', 'low', 'volume', 'money', 'avg', 'high_limit', 'low_limit', 'pre_close', 'paused', 'factor', 'price'],fill_paused=True,panel=True)
print(TargetStockData)
time.sleep(3)
#汇总周数据表
TargetStockData_week=pd.DataFrame()
#周开盘价
TargetStockData_week['W_open']=TargetStockData['open'].resample('w').first()
#周收盘价
TargetStockData_week['W_close']