简单免费,两步计算出想要投资股票的PE,PB的分位值
以前的文章的里介绍了如何利用聚宽网站的资源来免费计算现在PE,PB分位数,不过有些人肯定还是不满足,因为在某些网站上,通常不是直接给出数值而是给出图来更形象一点。原因也很简单,有的人是左侧交易,有的则是右侧交易,所以是否出现拐点,是这些投资者更关心的。
有钱的大户可以选择ichoice终端(几千),稍微有钱的散户可以选择理杏仁这样新兴起的量化网站(几百),但是如果水平不到或者觉得前面都是浪费钱的,其实可以有第三种选择。
还是拿聚宽网站来举例,自己DIY的东西有个好处就是可以随时根据自己的需要改,譬如像我一样觉得4万亿刺激带来的短暂股市失真经常让人摸不到头脑,就可以选择将数值的起始日期选在2010年1月1号开始。
登陆后,在【我的策略】,【投资研究】中新建一个python2的策略,粘贴下面的代码后,就可以得出自己想要的pe和pb估值趋势图,当然,仅仅需要修改的是第60行的股票代码哦
怎么样,下面的图是否中意呢?
'000963.XSHE' # 华东医药
import numpy as np
import pandas as pd
import ma as plt
import bisect
import copy
# 得到该股票某一天的pe
def getPe(code,d):
q = query(
valuation
).filter(
valua == code
)
df = get_fundamentals(q, d)
return df['pe_ratio'].values
# 得到该股票某一天的pe
def getPb(code,d):
q = query(
valuation
).filter(
valua == code
)
df = get_fundamentals(q, d)
return df['pb_ratio'].values
# 得到该股票所有的pes
def getPes(code):
start='2010-1-1'
end = ()
pes=[]
dates=[]
for d in (start,end,freq='d'): #频率为日
# 剔除停盘日
if get_price(code,start_date=d, end_date=d ,frequency='daily', fields=['volume']).values != 0:
(getPe(code,d)[0])
da(d)
return (pes, index=dates)
# 得到该股票所有的pbs
def getPbs(code):
start='2010-1-1'
end = ()
pbs=[]
dates=[]
for d in (start,end,freq='d'): #频率为日
# 剔除停盘日
if get_price(code,start_date=d, end_date=d ,frequency='daily', fields=['volume']).values != 0:
(getPb(code,d)[0])
da(d)
return (pbs, index=dates)
# print(get_price('000625.XSHE', start_date='2015-04-30', end_date='2015-04-30', frequency='daily', fields=['volume']).values)
print ('今天是: ',())
code ='000963.XSHE' # 华东医药
df=()
df['pe']= getPes(code)
df['pb']= getPbs(code)
df.plot(figsize=(12,10))