转载:通过JQData批量导出指定时间段的估值及财务数据,并保存为csv文件

作为基本面投资者,企业的估值指标(pe、pb、ps)及财务数据非常重要,而如何快速导出特定时间段的这些数据?

下面的代码不仅可以快速导出JQ所有的估值指标及最新财务数据(需要哪些指标可以直接在代码中添加),而且还有股票筛选功能,代码简单,功能灵活。

微信图片_20181115010740.png

from jqdatasdk import *
import sqlalchemy
import pandas as pd
from datetime import datetime, timedelta # 导入datetime模块

auth(‘name’,‘password’) #输入用户名密码

“”"
该代码可以设定指定区间、指定股票(可以筛选或者列出具体代码)、指定估值指标及财务数据,将所有数据生成一个csv文件。
财务数据为该日期时公布最新财报数据

“”"

#############
#用户输入
startDate=datetime.strptime(“2018-01-01”, “%Y-%m-%d”) #输入初始日
endDate=datetime.strptime(“2018-02-01”, “%Y-%m-%d”) #输入到期日
stockList=[‘000001.XSHE’,‘000002.XSHE’,‘000006.XSHE’] #输入股票代码
savePath=“C:/JQresult.csv” #输入结果保存路径
##############

calDay=startDate
dataList=[]

while(calDay<=endDate):
calDayFormat=calDay.strftime(’%Y-%m-%d’) #将日期转成字符串

df = get_fundamentals(query(
        #下一行为估值指标,包括代码、市值、pe、pb、ps、pcf,可自由添加其它指标
        valuation.code, valuation.market_cap, valuation.pe_ratio, valuation.pb_ratio,valuation.ps_ratio,valuation.pcf_ratio,\
        #下一行为资产负债表,包括报表发布日期、报表期最后一天、总资产、可自由添加其它指标
        balance.pubDate,balance.statDate,balance.total_assets,\
         #下一行为利润表,包括报营业总收入、净利润、可自由添加其它指标
        income.total_operating_revenue,income.net_profit
        #可自由添加其它表和指标……

    ).filter(

        valuation.code.in_(stockList), #指定股票为stockList的股票,如果这个代码删掉,则为全部股票
        #可在下面加入各种筛选标准,如筛选出pe<10、Pb<3的股票
        # valuation.pe_ratio < 10,
        # valuation.pb_ratio<3

    ).order_by(
        # 按市值降序排列
        valuation.market_cap.desc()
    ).limit(

        # 最多返回个数,最大不超过10000行
        10000
    ), date=calDayFormat)
df["date"]=calDayFormat
calDay=calDay+timedelta(days=1)  
dataList.append(df)

finalDf=pd.concat(dataList)

finalDf.to_csv(savePath)

相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页