以前的文章的裡介紹瞭如何利用聚寬網站的資源來免費計算現在PE,PB分位數,不過有些人肯定還是不滿足,因為在某些網站上,通常不是直接給出數值而是給出圖來更形象一點。原因也很簡單,有的人是左側交易,有的則是右側交易,所以是否出現拐點,是這些投資者更關心的。
有錢的大戶可以選擇ichoice終端(幾千),稍微有錢的散戶可以選擇理杏仁這樣新興起的量化網站(幾百),但是如果水平不到或者覺得前面都是浪費錢的,其實可以有第三種選擇。
還是拿聚寬網站來舉例,自己DIY的東西有個好處就是可以隨時根據自己的需要改,譬如像我一樣覺得4萬億刺激帶來的短暫股市失真經常讓人摸不到頭腦,就可以選擇將數值的起始日期選在2010年1月1號開始。
登陸後,在【我的策略】,【投資研究】中新建一個python2的策略,粘貼下面的代碼後,就可以得出自己想要的pe和pb估值趨勢圖,當然,僅僅需要修改的是第60行的股票代碼哦
怎麼樣,下面的圖是否中意呢?
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import bisect
import copy
# 得到該股票某一天的pe
def getPe(code,d):
q = query(
valuation
).filter(
valuation.code == code
)
df = get_fundamentals(q, d)
return df['pe_ratio'].values
# 得到該股票某一天的pe
def getPb(code,d):
q = query(
valuation
).filter(
valuation.code == code
)
df = get_fundamentals(q, d)
return df['pb_ratio'].values
# 得到該股票所有的pes
def getPes(code):
start='2010-1-1'
end = pd.datetime.today()
pes=[]
dates=[]
for d in pd.date_range(start,end,freq='d'): #頻率為日
# 剔除停盤日
if get_price(code,start_date=d, end_date=d ,frequency='daily', fields=['volume']).values != 0:
pes.append(getPe(code,d)[0])
dates.append(d)
return pd.Series(pes, index=dates)
# 得到該股票所有的pbs
def getPbs(code):
start='2010-1-1'
end = pd.datetime.today()
pbs=[]
dates=[]
for d in pd.date_range(start,end,freq='d'): #頻率為日
# 剔除停盤日
if get_price(code,start_date=d, end_date=d ,frequency='daily', fields=['volume']).values != 0:
pbs.append(getPb(code,d)[0])
dates.append(d)
return pd.Series(pbs, index=dates)
# print(get_price('000625.XSHE', start_date='2015-04-30', end_date='2015-04-30', frequency='daily', fields=['volume']).values)
print ('今天是: ',pd.datetime.today())
code ='000963.XSHE' # 華東醫藥
df=pd.DataFrame()
df['pe']= getPes(code)
df['pb']= getPbs(code)
df.plot(figsize=(12,10))
閱讀更多 重甲奔騰 的文章