第二题程序计算的结果不对 但是不知道具体是哪错了

来源:2-10 【作业】使用财务数据计算估值指标-简答题

慕娘2479997

2021-05-15

导入库

import pandas as pd
from jqdatasdk import (auth, get_price, get_query_count, get_fundamentals, query, valuation, indicator, income)
import datetime

auth(账号, 密码)

today = datetime.datetime.today()

获得股票价格和基本面

maotaiIndex = '600519.XSHG' # 茅台代码

maotaiPrice = get_price(maotaiIndex, end_date=today, frequency='daily', fields=['close'], count=1) # 获取当日收盘价格
maotaiFunds = get_fundamentals(query(valuation.code, 
                                    valuation.capitalization, 
                                    valuation.market_cap, # 市值
                                    valuation.pe_ratio, # 市盈率
                                    indicator.eps, # 每股净收益
                                    income.net_profit # 净利润
                                    ).filter(valuation.code == maotaiIndex), date=today)

maotaiPrice:

close
2021-05-14 2009.85

maotaiFuns:

code capitalization market_cap pe_ratio eps net_profit
0 600519.XSHG 125619.7812 25247.6914 53.0882 11.1085 1.477203e+10

Question1: 计算市值并验证

maotaiValue = maotaiPrice.close.values[0] * maotaiFunds.capitalization.values[0] / 10000
print('Calculated Value:\t %f (亿)\nCorrect Value:\t\t %f (亿)'%(maotaiValue, maotaiFunds.iloc[0]['market_cap']))

Output:

Calculated Value:	 25247.691724 (亿)
Correct Value:		 25247.691400 (亿)

第一题应该计算的没什么问题 问题出在Question2

Question2: 计算市盈率并验证

maotaiREP1 = maotaiPrice.close.values[0] / maotaiFunds.eps.values[0] # 每股股价 / 每股收益
maotaiREP2 = maotaiValue * 100000000 / (maotaiFunds.net_profit.values[0]) # 市值 / 母公司净利润

print('maotaiREP1:\t %f\nmaotaiREP2:\t %f\nCorrect REP:\t %f'%(maotaiREP1, maotaiREP2, maotaiFunds.pe_ratio.values[0]))

Output:

maotaiREP1:	 180.929018
maotaiREP2:	 170.915514
Correct REP:	 53.088200

两种方法计算的结果都与直接从jqdata里面获取的市盈率不匹配,不知道具体是哪错了。希望老师能看一下。谢谢!

写回答

1回答

慕娘2479997

提问者

2021-05-15

我自己知道了 直接传入某天日期获得的是季度数据

1
0

程序员理财课 Python量化交易系统实战

打造一个自动交易平台,新手也能提升理财收益

2012 学习 · 405 问题

查看课程