31 มี.ค. 2022 เวลา 13:46 • หุ้น & เศรษฐกิจ
สร้าง PE band หุ้น 10 ปี ไว้ดูเอง 📉
ฟังรายการวิเคราะห์หุ้นแล้วเห็นหลายรายการเอา PE band หุ้นมาให้ดู แต่สงสัยเค้าหามาจากไหน ?
ก่อนอื่น ก็ต้องบอกว่า การดู PE ของหุ้นนั้น นอกจากต้องเทียบกับตลาดและอุตสาหกรรมแล้ว ยังต้องเทียบกับตัวเองในอดีตด้วย จึงต้องมี PE band
แล้วเอา PE band มาจากไหน?
ง่ายสุด ไป copy ตัวเลขจาก set.or.th/settrade.com (ได้แค่ 4-5 ปี) หรือ Finnomena (ได้ถึง 10 ปี) แล้วใส่ excel คำนวณ mean/sd ไง
แต่นั่นไม่ใช่เรา ต้องง่ายกว่านั้น (คือ ยากตอนเขียน code จากนั้นง่ายแค่คลิก เพราะแค่เปลี่ยนชื่อหุ้นไปเรื่อยๆนั่นเอง)
นอกจากวิธีนี้ที่ว่าง่ายแล้ว จากการดูที่เค้านำมาโชว์ ก็อ้างที่มา เช่น Bloomberg และจากนักวิเคราะห์บ้าง เห็นแล้วคงต้องทำการบ้านพอควร
แต่บังเอิญเราอยากได้ง่ายๆ ลองหาจาก Bloomberg ก็ไม่เห็นมีนะ (ใครรู้บอกด้วยครับอยากได้จริงๆ) แถมต้อง subscribe อีก
เลยคิดว่าจะทำเองซะเลย
เจอเว็บนึงให้ดึงข้อมูล History PE ได้ เราก็ต้องเอาไปทำต่อเป็นกราฟ
เว็บที่ว่านั้น คือ https://pypi.org/project/starfishX/
function ที่ใช้ คือ pl.getPEHistory(symbol)
ก็แค่ต้องหัดเขียน python นิดหน่อย 💻
coding ก็ประมาณนี้
ส่วนผลลัพธ์ ก็ประมาณนี้
💥หมายเหตุ บทความนี้มิได้เชียร์ซื้อ-ขายหุ้นแต่อย่างใด
ตัวอย่าง code
#plot PE band 10 year backward
symbol=input('input symbol')
import pandas as pd
HxPE=pl.getPEHistory(symbol) #from starfishX
currentPE=pl.getPE(symbol)
print(currentPE)
df = pd.DataFrame(HxPE)
df_mean=df['P/E'].mean()
print("mean PE = ", df_mean)
df_sd=df['P/E'].std()
print("SD ", df_sd)
# creating the date object of today's date
from datetime import date
todays_date = date.today()
current_year=todays_date.year
#Generate a new column with append data using pandas
year=[]
for i in range(0,10):
yr=(current_year-10)+i
year.append(yr)
 
df['year']=year
df['meanPE']=df_mean
df['SD+1']=df['meanPE']+df_sd
df['SD+2']=df['meanPE']+(df_sd*2)
df['SD-1']=df['meanPE']-df_sd
df['SD-2']=df['meanPE']-(df_sd*2)
print(df)
#plot graph
import plotly.express as px
fig = px.line(df, x='year', y=['P/E','SD+2','SD+1','meanPE','SD-1','SD-2']
,title='PE Band 10 years backward: ' + symbol.upper())
fig.update_yaxes(title_text='PE')
fig.show()
โฆษณา