第 一 篇

  • 一、聚宽模块安装、更新方法
  • 二、聚宽模块登录
  • 三、获取股票行情数据方法
    • (一).获取单个股票多天每分钟行情数据的获取函数:get_price(参数)
    • (二).获取单个股票基本信息
      • ( 1 ) 获取所有股票基本信息函数get_all_securities()
      • ( 2 )分级基金的母基金代码函数get_security_info(‘股票代码’).parent
  • 四、获取财务数据方法
    • (一)获取所有股票基本财务数据函数get_fundamentals(参数1)
    • (二)获取特定股票股票基本财务数据函数get_fundamentals(query(参数).filer(列表名.code.in_(['股票代码','股票代码']),data='年-月-日')
  • 五、实践
    • 1.获取特定股票基本信息,汇总周月K数据
    • 2.获取的定股票所有财务数据
    • 3.设置指标进行选股。基于盈利指标(财务指标数据)和估值数据市盈率指标每股收益、经营活动净收益、净资产收益率、净资产同比增长率选股。


一、聚宽模块安装、更新方法

代码如下:

#安装模块
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.valuesfor 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']=TargetStockData['close'].resample('w').last()#周最高价TargetStockData_week['W_high']=TargetStockData['high'].resample('w').max()#周最低价TargetStockData_week['W_low']=TargetStockData['low'].resample('w').min()#周总的成交量TargetStockData_week['W_sum_Volume']=TargetStockData['volume'].resample('w').sum()#周总的成交额TargetStockData_week['W_sum_Money']=TargetStockData['money'].resample('w').sum()#周的平均价TargetStockData_week['W_avg']=TargetStockData['avg'].resample('w').mean()print(TargetStockData_week)time.sleep(10)#绘制月数据表TargetStockData_month=pd.DataFrame()#月开盘价TargetStockData_month['M_open']=TargetStockData['open'].resample('m').first()#月收盘价TargetStockData_month['M_close']=TargetStockData['close'].resample('m').last()#月最高价TargetStockData_month['M_high']=TargetStockData['high'].resample('m').max()#月最低价TargetStockData_month['M_low']=TargetStockData['low'].resample('m').min()#月总的成交量TargetStockData_month['M_sum_Volume']=TargetStockData['volume'].resample('m').sum()#月总的成交额TargetStockData_month['M_sum_Money']=TargetStockData['money'].resample('m').sum()#月的平均价TargetStockData_month['M_avg']=TargetStockData['avg'].resample('m').mean()print(TargetStockData_month)time.sleep(10)
with pd.ExcelWriter(r'F:\\XhssQUANT\\Data\\数据.py\\测试1.xlsx')as writer:TargetStockData.to_excel(writer,sheet_name='TargetStockData',index=False)TargetStockData_week.to_excel(writer,sheet_name='TargetStockData_week',index=False)TargetStockData_month.to_excel(writer,sheet_name='TargetStockData_month',index=False)print('ok')

2.获取的定股票所有财务数据

from jqdatasdk import *
import pandas as pd
auth('账号','密码')
print('========================================================================================================================================================================================================')# #提取2020年度财务数据
# #valuation估值数据
df1 = get_fundamentals(query(valuation).filter(valuation.code.in_(['000001.XSHE'])), statDate='2015q1')
df1.columns=['号码', '股票代码', '市盈率(PE, TTM)', '换手率(%)', '市净率(PB)', '市销率(PS, TTM)','市现率(PCF, 现金净流量TTM)', '总股本(万股)', '总市值(亿元)', '流通股本(万股)', '流通市值(亿元)','日期', '市盈率(PE)']# #balance(资产负债数据)
df2 =get_fundamentals(query(balance).filter(balance.code.in_(['000001.XSHE'])), statDate='2015q1')
df2.columns=['号码','股票代码','财报统计的季度的前后一天','公司发布财报的日期',
'财报统计的季度的最后一天','货币资金','结算备付金','拆出资金','交易性金融资产',
'应收票据','应收账款','预付款项','应收保费','应收分保账款','应收分保合同准备金',
'应收利息','应收股利','其他应收款','买入返售金融资产','存货','一年内到期的非流动资产',
'其他流动资产','流动资产合计','发放委托贷款及垫款','可供出售金融资产','持有至到期投资',
'长期应收款','长期股权投资','投资性房地产','固定资产','在建工程','工程物资','固定资产清理',
'生产性生物资产','油气资产','无形资产','开发支出','商誉','长期待摊费用','递延所得税资产',
'其他非流动资产','非流动资产合计','资产总计','短期借款','向中央银行借款','吸收存款及同业存放',
'拆入资金','交易性金融负债','应付票据','应付账款','预收款项','卖出回购金融资产款','应付手续费及佣金',
'应付职工薪酬','应交税费','应付利息','应付股利','其他应付款','应付分保账款','保险合同准备金',
'代理买卖证券款','代理承销证券款','一年内到期的非流动负债','其他流动负债','流动负债合计',
'长期借款','应付债券','长期应付款','专项应付款','预计负债','递延所得税负债','其他非流动负债',
'非流动负债合计','负债合计','实收资本(或股)','资本公积金','库存股','专项储备','盈余公积金',
'一般风险准备','未分配利润','外币报表折算差额','归属于母公司股东权益合计','少数股东权益','股东权益合计','负债和股东权益合计']# # #income(利润数据)
df3 =get_fundamentals(query(income).filter(income.code.in_(['000001.XSHE'])), statDate='2015q1')
df3.columns=['号码', '股票代码', '财报统计的季度的最后一天', '公司发布财报的日期', '财报统计的季度的最后一天',
'营业总收入 ', '营业收入 ','利息收入 ', '已赚保费 ', '手续费及佣金收入 ', '营业总成本 ', ' 营业成本 ', '利息支出 ',
'手续费及佣金支出 ', '退保金 ', '赔付支出净额 ', '提取保险合同准备金净额 ', '保单红利支出 ','分保费用 ','营业税金及附加 ',
'销售费用 ', '管理费用 ', '财务费用 ', '资产减值损失 ', '公允价值变动收益','投资收益 ', '对联营企业和合营企业的投资收益 ',
'汇兑收益 ', '营业利润 ', '营业外收入 ', '营业外支出 ','非流动资产处置净损失 ', '利润总额 ', '所得税费用 ', '净利润 ',
'归属于母公司股东的净利润 ','少数股东损益 ', '基本每股收益 ', '稀释每股收益 ', '其他综合收益 ', '综合收益总额 ',
'归属于母公司所有者的综合收益总额 ', '归属于少数股东的综合收益总额 ']# #indicator(财务指标数据)
df4 =get_fundamentals(query(indicator).filter(indicator.code.in_(['000001.XSHE'])), statDate='2015q1')
df4.columns=['号码', '股票代码', '财报统计的季度的最后一天', '公司发布财报的日期','财报统计的季度的最后一天', '每股收益EPS ','扣除非经常损益后的净利润 ', '经营活动净收益 ', '价值变动净收益 ', '净资产收益率ROE ',
'净资产收益率(扣除非经常损益) ', '总资产净利率ROA ', '销售净利率 ', '销售毛利率 ','营业总成本/营业总收入 ', '营业利润/营业总收入 ', '净利润/营业总收入 ', '营业费用/营业总收入','管理费用/营业总收入 ',
'财务费用/营业总收入 ', '经营活动净收益/利润总额 ', '价值变动净收益/利润总额 ','扣除非经常损益后的净利润/归属于母公司所有者的净利润 ', '销售商品提供劳务收到的现金/营业收入','经营活动产生的现金流量净额/营业收入 ',
'经营活动产生的现金流量净额/经营活动净收益 ', '营业总收入同比增长率 ','营业总收入环比增长率 ', '营业收入同比增长率 ', '营业收入环比增长率 ', '营业利润同比增长率 ','营业利润环比增长率 ', '净利润同比增长率 ',
'净利润环比增长率 ', '归属母公司股东的净利润同比增长率 ','归属母公司股东的净利润环比增长率 ']# #security_indicator(券商业专项指标)
df5 =get_fundamentals(query(security_indicator).filter(security_indicator.code.in_(['000001.XSHE'])), statDate='2015q1')
df5.columns=['号码', '股票代码', '公司发布财报的日期', '财报统计的季度的最后一天', '净资本', '净资产',
'净资本/各项风险准备之和', '净资本/净资产', '净资本/负债', '净资产/负债', '净资本/营业部家数',
'自营股票规模/净资本', '证券自营业务规模/净资本', '营运风险堆备', '经纪业务风险堆备', '证券自营业务风险准备',
'证券承销业务风险准备', '证券资产菅理业务风险准备', '自营权益类证券及证券衍生品/净资本', '自营固定收益类证券/净资本','融资融券业务风险资本准备', '分支机构风险资本堆备']# # #insurance_indicator(保险业专项指标)
df6 =get_fundamentals(query(insurance_indicator).filter(insurance_indicator.code.in_(['000001.XSHE'])), statDate='2015q1')
df6.columns=['号码', '股票代码', '公司发布财报的日期', '财报统计的季度的最后一天', '投资资产', '总投资收益率','净投资收益率', '己赚保费',
'己赚保费增长率', '赔付支出', '退保率(寿险业务)', '未到期责任准备金(产险业务)','未决赔款准备金(产险业务)', '综台成本率(产险业务)',
'综台赔付率(产险业务)', '偿付能力充足率', '实际资本','最低资本']# # #cash_flow(现金流数据)
df7 =get_fundamentals(query(cash_flow).filter(cash_flow.code.in_(['000001.XSHE'])), statDate='2015q1')
df7.columns=['号码', '股票代码', '财报统计的季度的最后一天', '公司发布财报的日期','财报统计的季度的最后一天', '销售商品、提供劳务收到的现金 ',
'客户存款和同业存放款项净增加额 ', '向中央银行借款净增加额 ', '向其他金融机构拆入资金净增加额 ',
'收到原保险合同保费取得的现金 ', '收到再保险业务现金净额 ', '保户储金及投资款净增加额 ',
'处置交易性金融资产净增加额 ', '收取利息、手续费及佣金的现金 ', '拆入资金净增加额 ', '回购业务资金净增加额',
'收到的税费返还 ', '收到其他与经营活动有关的现金 ', '经营活动现金流入小计 ', '购买商品、接受劳务支付的现金 ',
'客户贷款及垫款净增加额 ', '存放中央银行和同业款项净增加额 ', '支付原保险合同赔付款项的现金 ',
'支付利息、手续费及佣金的现金 ', '支付保单红利的现金 ', '支付给职工以及为职工支付的现金 ', '支付的各项税费 ',
'支付其他与经营活动有关的现金 ', '经营活动现金流出小计 ', '经营活动产生的现金流量净额 ', '收回投资收到的现金 ',
'取得投资收益收到的现金 ', '处置固定资产、无形资产和其他长期资产收回的现金净额 ',
'处置子公司及其他营业单位收到的现金净额 ', '收到其他与投资活动有关的现金 ', '投资活动现金流入小计 ',
'购建固定资产、无形资产和其他长期资产支付的现金 ', '投资支付的现金 ', '质押贷款净增加额 ',
'取得子公司及其他营业单位支付的现金净额 ', '支付其他与投资活动有关的现金 ', '投资活动现金流出小计 ',
'投资活动产生的现金流量净额 ', '吸收投资收到的现金 ', '子公司吸收少数股东投资收到的现金 ', '取得借款收到的现金 ',
'发行债券收到的现金 ', '收到其他与筹资活动有关的现金 ', '筹资活动现金流入小计 ', '偿还债务支付的现金 ',
'分配股利、利润或偿付利息支付的现金 ', '子公司支付给少数股东的股利、利润 ', '支付其他与筹资活动有关的现金 ',
'筹资活动现金流出小计 ', '筹资活动产生的现金流量净额 ', '汇率变动对现金及现金等价物的影响',
'现金及现金等价物净增加额', '期初现金及现金等价物余额 ', '期末现金及现金等价物余额 ']# # #bank_indicator(银行业专项指标)
df8 =get_fundamentals(query(bank_indicator).filter(bank_indicator.code.in_(['000001.XSHE'])), statDate='2015q1')
df8.columns=['号码', '股票代码', '公司发布财报的日期', '财报统计的季度的最后一天', '贷款总额', '存款总额', '生息资产','非生息资产', '生息资产收益率', '计息负债', '非计息负债', '计息负债成本率', '非利息收入', '非利息收入占比','净息差', '净利差', '核心一级资本(2013)', '核心一级资本净额(2013)', '核心一级资本充足率(2013)','一级资本净额(2013)', '一级资本充足率(2013)', '资本净额(2013)', '资本充足率(2013)','风险加权资产合计(2013)', '存贷款比例', '短期资产流动性比例(人民币)', '短期资产流动性比例(外币)','不良贷款率', '单一最大客户贷款比例', '最大十家客户贷款比例', '贷款呆账准备金', '不良贷款拨备覆盖率','成本收入比', '核心资本 (旧)', '核心资本净额(旧)', '核心资本充足率 (旧)', '资本净额 (旧)','资本充足率 (旧)', '加权风险资产净额(旧)', '正常-金额', '正常金额占比', '关注-金额', '关注金额占比','次级-金额', '次级金额占比', '可疑-金额', '可疑金额占比', '损失-金额', '损失金额占比','短期贷款-平均余额', '短期贷款-年平均利率', '中长期贷款-平均余额', '中长期贷款-年平均利率','企业存款-平均余额', '企业存款-年平均利率', '储蓄存款-平均余额', '储蓄存款-年平均利率']with pd.ExcelWriter(r'F:\\XhssQUANT\\Data\\数据.py\\测试1.xlsx')as writer:df1.to_excel(writer,sheet_name='valuation',index=False)df2.to_excel(writer,sheet_name='balance',index=False)df3.to_excel(writer,sheet_name='income',index=False)df4.to_excel(writer,sheet_name='indicator',index=False)df5.to_excel(writer,sheet_name='security_indicator',index=False)df6.to_excel(writer,sheet_name='insurance_indicator',index=False)df7.to_excel(writer,sheet_name='cash_flow',index=False)df8.to_excel(writer,sheet_name='bank_indicator',index=False)
print('ok')

3.设置指标进行选股。基于盈利指标(财务指标数据)和估值数据市盈率指标每股收益、经营活动净收益、净资产收益率、净资产同比增长率选股。

from jqdatasdk import *
auth('账号','密码')
print('========================================================================================================================================================================================================')AllStockFundamentalsData=get_fundamentals(query(indicator,valuation),statDate='2022q1')
TargetStockData=AllStockFundamentalsData[(AllStockFundamentalsData['eps']>0)&(AllStockFundamentalsData['operating_profit']>200000000)&(AllStockFundamentalsData['roe']>11)&(AllStockFundamentalsData['inc_net_profit_year_on_year']>10)&(AllStockFundamentalsData['pe_ratio']<50)]
TargetStockData.to_excel(r'F:\\XhssQUANT\\Data\\数据.py\\测试1.xlsx')
print('0k')

金 融 量 化 分 析 • JoinQuant • 第 一 篇相关推荐

  1. 金 融 量 化 分 析 • JoinQuant • 第 六 篇

    文章目录 一. 动 量 策 略 (一).动 量 正 向 策 略 (二).动 量 反 向 策 略 (三). 实 现 步 骤 (1)确定交易对象:股票池.考虑流动性(沪深300/创业板) (2)选定业绩评 ...

  2. 金 融 量 化 分 析 • JoinQuant • 第 四 篇

    第 四 篇 一.股 票 评 估 实 践 (一)风险指标 (1)最大回测 (2)夏普比率 (3)波动比率 二.使用步骤 一.股 票 评 估 实 践 根据过往数据评估平安银行.比亚迪.宁德时代.隆基股份 ...

  3. 金 融 量 化 分 析 • JoinQuant • 第 二 篇

    第 二 篇 一.自定义数据处理模块 (一).自定义获取所有A股列表模块 (二).自定义获取单个股票行情行情数据模块 (三).自定义导出股票相关数据模块 (四).自定义初始化股票行情数据库 (五).自定 ...

  4. 金 融 量 化 分 析 • JoinQuant • 第 五 篇

    文章目录 前言 一.策 略 可 靠 性 检 测 方 法 (一).评 估 指 标 1)胜 率 2)年 化 收 益 率 3)最 大 回 测 4)夏 普 比 率 (二).假 设 验 证 二.周 期 策 略 ...

  5. 金 融 量 化 分 析 • 外 篇 • 绘 制 行 情 数 据 数 据 图

    文章目录 前言 一.k 线 图 是 什 么 ? 二.K 线 图 结 构 (1) 影 线 和 实 体 (2) 十 字 线 四. 双 均 线 策 略 (一).金叉 (二).死叉 (三).均 线 策 略 的 ...

  6. 基 于 主 成 分分 析 和 灰 色 聚 类 对 我 国 居 民 收 入 差 距 分 析(陈 宝 平)

    作者:陈 宝 平 笔记:30各地区 行 业 的 平 均 工 资: 采 用 主 成 分 分析 对 每 个 地区1 0 年 的 泰 尔 指 数 降 维, 转 化 成 三 个 主 成 分 因 子: 通 过 ...

  7. 自 下 而 上 分 析 法 的 一 般 原 理

    自 下 而 上 分 析 法 的 一 般 原 理 编译中存在着多种自下而上的分析法,但不管哪种自下而上的分析法都是按照"移进 - 归约"法的原理建立起来的一种语法分析方法.这种分析法 ...

  8. 柴俊理金:量产高位施压原油,黄金颓势静待非农

    柴俊理金:量产高位施压原油,黄金颓势静待非农 美国WTI原油7月期货周二(5月31日)收跌0.23美元,跌幅0.47%,报49.10美元/桶,本月上涨6.34%.布伦特原油7月期货周二收跌0.07美元 ...

  9. 从大数据量分库分表 MySQL 合并迁移数据到 TiDB

    如果分表数据总规模特别大(例如大于 1 TiB),并且允许 TiDB 集群在迁移期间无其他业务写入,那么你可以使用 TiDB Lightning 对分表数据进行快速合并导入,然后根据业务需要选择是否使 ...

最新文章

  1. Fuel4d 2.3 公布
  2. WebAssembly基础
  3. 损失函数|交叉熵损失函数
  4. java多线程基本概述(二十六)——免锁容器
  5. rsa java ao_RSA加解密工具类
  6. WebAssembly 技术汇总
  7. linux编程进程,Linux编程—进程
  8. 【Android】Android 4.2源码下载(ubuntu 12.10)
  9. git 解决冲突(6)
  10. Acronis Disk Director 增大c盘
  11. Android 热修复Bugly和Sophix介绍
  12. 华为路由器配置NAT
  13. Java实现 LeetCode 273 整数转换英文表示
  14. Objective-C的算术表达式 .
  15. Excel百宝箱ET特别版
  16. 2021-4-19学习笔记
  17. mysql存储过程学习笔记
  18. 9位院士!10所一流大学,迎“新帅”
  19. 3dmax制作三维地形图
  20. Luogu P4735(可持久化字典树)

热门文章

  1. c语言十进制转十六进制
  2. 地球历上5次生物大灭绝
  3. GPS、LBS、AGPS、WIFI、iBeacon定位区别
  4. 【8051单片机学习资料大全】
  5. python中fasta转为字典
  6. 服务器主板信息花屏,显示设备出现问题:各种花屏_主板_主板评测-中关村在线...
  7. CSS中appearance属性的使用方法
  8. [win7]设置登录密码
  9. catkin翻译计算机,catkin是什么意思_catkin怎么读_catkin翻译_用法_发音_词组_同反义词_葇荑花(如柳絮等)-新东方在线英语词典...
  10. java多线程实现runnable_Java多线程实现Runnable方式