金 融 量 化 分 析 • JoinQuant • 第 一 篇

本文详细介绍了使用Python进行金融量化分析的JoinQuant平台,涵盖了模块安装、登录、获取股票行情数据、财务数据的方法,并提供了实践案例,包括获取股票基本信息、财务数据以及基于财务指标的选股策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



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

代码如下:

#安装模块
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']
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Thomas_CC

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值