 |
m3energy
中級會員
註冊日期: Sep 2004
來 自:
文章數量: 33 |
[求救] 請教「股票本益比」公式,是否能這樣運算?(非公式內建算法)
我知道Chiefox v5.2內建公式有「FEA1 股票本益比(預估)」
我對論壇文章爬文與比對公式的數據後,理解此公式是採用「未還權價格除以近四季EPS之合」
參考文章:
"算本益比專用EPS"
http://www.chiefox.com.tw/bbs/showt...%A4%F1%E3%80%91
內建本益比公式,我的理解為:
「未還權價格除以近四季EPS之合」
以今年2024年為例,某檔股票,2024年股票EPS第一季、第二季已公佈:
2024年第一季算出的每日本益比:每日未還權收盤價格/(2023Q2EPS+2023Q3EPS+2023Q4EPS+2024Q1EPS)
2024年第二季算出的每日本益比:每日未還權收盤價格/(2023Q3EPS+2023Q4EPS+2024Q1EPS+2024Q2EPS)
2024年第三季算出的每日本益比(預估):每日未還權收盤價格/(2023Q3EPS+2023Q4EPS+2024Q1EPS+2024Q2EPS)
PS:因2024年股票EPS第三季尚未公布,第三季尚為預估,待第三季股票EPS公告後奇狐會自動修正為:每日未還權收盤價格/(2023Q4EPS+2024Q1EPS+2024Q2EPS+2024Q3EPS)。
想要修正的本益比算法:
1.對應年度已公佈的該檔股票全年EPS算出本益比。
2.標示出年度最高本益比與最低本益比。
3.當年度的EPS,「使用者自行輸入EPS預估值」。
例如:
2023年股票全年EPS皆已公佈:
2023年第一季算出的每日本益比:每日未還權價格/(2023Q1EPS+2023Q2EPS+2023Q3EPS+2023Q4EPS)
2023年第二季算出的每日本益比:每日未還權價格/(2023Q1EPS+2023Q2EPS+2023Q3EPS+2023Q4EPS)
2023年第三季算出的每日本益比:每日未還權價格/(2023Q1EPS+2023Q2EPS+2023Q3EPS+2023Q4EPS)
2023年第四季算出的每日本益比:每日未還權價格/(2023Q1EPS+2023Q2EPS+2023Q3EPS+2023Q4EPS)
2024年股票EPS,目前僅公佈第一季、第二季:
故2024年先由「使用者自行輸入EPS預估值」,待2024全年EPS公佈後,系統即修正為依2024年全年公告EPS對應2024年股價算出本益比。
另請教奇狐有沒有打算開班授課程式進階寫法?需要使用複雜功能時,瞎子摸象真的好無奈。
|
|
向版主報告此篇 |  |
|
2024-10-08 02:11 |
|
|
|  |
 |
cgjj
總版主

註冊日期: Oct 2003
來 自:
文章數量: 18091 |
回覆: [求救] 請教「股票本益比」公式,是否能這樣運算?(非公式內建算法)
引用: 最初由 m3energy 發表
我知道Chiefox v5.2內建公式有「FEA1 股票本益比(預估)」
我對論壇文章爬文與比對公式的數據後,理解此公式是採用「未還權價格除以近四季EPS之合」
參考文章:
"算本益比專用EPS"
http://www.chiefox.com.tw/bbs/showt...%A4%F1%E3%80%91
內建本益比公式,我的理解為:
「未還權價格除以近四季EPS之合」
以今年2024年為例,某檔股票,2024年股票EPS第一季、第二季已公佈:
2024年第一季算出的每日本益比:每日未還權收盤價格/(2023Q2EPS+2023Q3EPS+2023Q4EPS+2024Q1EPS)
2024年第二季算出的每日本益比:每日未還權收盤價格/(2023Q3EPS+2023Q4EPS+2024Q1EPS+2024Q2EPS)
2024年第三季算出的每日本益比(預估):每日未還權收盤價格/(2023Q3EPS+2023Q4EPS+2024Q1EPS+2024Q2EPS)
PS:因2024年股票EPS第三季尚未公布,第三季尚為預估,待第三季股票EPS公告後奇狐會自動修正為:每日未還權收盤價格/(2023Q4EPS+2024Q1EPS+2024Q2EPS+2024Q3EPS)。
想要修正的本益比算法:
1.對應年度已公佈的該檔股票全年EPS算出本益比。
2.標示出年度最高本益比與最低本益比。
3.當年度的EPS,「使用者自行輸入EPS預估值」。
例如:
2023年股票全年EPS皆已公佈:
2023年第一季算出的每日本益比:每日未還權價格/(2023Q1EPS+2023Q2EPS+2023Q3EPS+2023Q4EPS)
2023年第二季算出的每日本益比:每日未還權價格/(2023Q1EPS+2023Q2EPS+2023Q3EPS+2023Q4EPS)
2023年第三季算出的每日本益比:每日未還權價格/(2023Q1EPS+2023Q2EPS+2023Q3EPS+2023Q4EPS)
2023年第四季算出的每日本益比:每日未還權價格/(2023Q1EPS+2023Q2EPS+2023Q3EPS+2023Q4EPS)
2024年股票EPS,目前僅公佈第一季、第二季:
故2024年先由「使用者自行輸入EPS預估值」,待2024全年EPS公佈後,系統即修正為依2024年全年公告EPS對應2024年股價算出本益比。
另請教奇狐有沒有打算開班授課程式進階寫法?需要使用複雜功能時,瞎子摸象真的好無奈。
原碼: FEPS:9.99 linethick; //為全年EPS尚未公告處所採用的值(自定義預估值,請自行調改)
CkBK:=INBLOCK('上市指數')+INBLOCK('上櫃指數');
CkMT:=MARKETLABEL='TW' or MARKETLABEL='TO';
CK:=CkMT and CkBK=0;
DRAWTEXTEX(CK=0,1,500,450,'當前商品不適用,本指標僅適用於個股。') COLORMAGENTA ALIGN0;
if CK=0 then exit;
DYM:=FLOOR(SEQDATA('','FIN','DATE')/100)+190000; //資料年月
Err:=lbound(DYM)=0;
DRAWTEXTEX(Err,1,500,450,'本商品目前無相關資料存在。若尚未獲取資料,請與伺服器連線!') colorFF00FF ALIGN0;
if Err then exit;
未還權收盤價:=SEQDATA('','DAY','CLOSE'); //此價可在日線或日線以上週期中使用(其他價不行)
KYM:=FLOOR(tradedate/100)+190000; //K棒年月
年累EPS:=SEQDATA('','FIN','I_EPS');
DMM:=MOD(DYM,100);//資料月份
KYZ:=MOD(KYM,100)=12 and refx(KYM,1)>KYM or islastbar; //年度終K
KYF:=ref(KYZ,1) or barpos=1; //年度首K
//以灰色背景標示全年EPS尚未公告處(亦即採自定義預估值處)
LSP:=barslast(DMM=12);Mark:=0;
if lbound(LSP)>0 then Mark:=barpos>=datacount-LSP[datacount]+1;
STICKLINEPY(Mark,0,999,10,0) color777777;
//以該年度全年EPS(最終年累EPS),填滿該年度相應K棒
YEPS:=SETVAL(KYM=DYM and KYZ,年累EPS,-barslast(KYF),年累EPS) linethick;
//於末端全年EPS尚未公告處添加自定義預估值
YEPS:=if(Mark,FEPS,YEPS);
//注意!!!
//此處的"股票本益比"與奇狐系統內建公式算法不同!(有採用未來季度的數據)
股票本益比:(未還權收盤價/YEPS)*(YEPS>0) linethick2;
DLB:=BARSSINCE(DYM>=201303); StKNo:=lbound(DLB);
if StKNo>0 then x:=SETLBOUND(股票本益比,StKNo);
KYFSP:=barslast(KYF);
年度最高本益比:HHV(股票本益比,KYFSP+1) linethick;
年度最低本益比:LLV(股票本益比,KYFSP+1) linethick;
Re: 另請教奇狐有沒有打算開班授課程式進階寫法?需要使用複雜功能時,瞎子摸象真的好無奈。
如有需求,可約時間來公司,我們可以針對有問題之處,個別解說指導
若已具備任一程式語言的基礎(具備迴圈撰寫的能力),我們引導一下,其實很快就可以上手
程式的組織和建構能力,則需要靠寫作經驗累積來培養(多看範例多嘗試寫作...)
這部份考量各學員狀況可能彼此落差很大,以及目前人力狀況,暫時沒有考慮開班~~
|
|
向版主報告此篇 |  |
|
2024-10-08 11:37 |
|
|
|  |
 |
m3energy
中級會員
註冊日期: Sep 2004
來 自:
文章數量: 33 |
感謝總版主的協助,謝謝。
我發現一個問題,請總版主指導。
每一檔股票,在已經確認公佈該年度四季EPS值情況,「年度最高本益比、年度最低本益比,僅能比較年度1月-11月,12月本益比數值無法納入年度比較」
請教,是否能讓「年度最高本益比、年度最低本益比,採整年度(1-12月)比較」?
目前情況,每一檔股票以2023年為例:
每年1月第一日至11月最後一日,皆能正常比較出「年度最高本益比數值、年度最低本益比數值」
但,每年的12月「年度最高本益比數值、年度最低本益比數值,都會等於股票本益比」
如有需求,可約時間來公司,我們可以針對有問題之處,個別解說指導
若已具備任一程式語言的基礎(具備迴圈撰寫的能力),我們引導一下,其實很快就可以上手
程式的組織和建構能力,則需要靠寫作經驗累積來培養(多看範例多嘗試寫作...)
這部份考量各學員狀況可能彼此落差很大,以及目前人力狀況,暫時沒有考慮開班~~
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
了解,目前先自我努力研讀 Online Help 與多看範例多嘗試寫作。
|
最後由 m3energy 在 2024-10-09 12:45 編輯 |
向版主報告此篇 |  |
|
2024-10-09 01:49 |
|
|
|  |
 |
m3energy
中級會員
註冊日期: Sep 2004
來 自:
文章數量: 33 |
總版主千萬別這麼說,非常感謝你的指導與幫助,謝謝。
|
|
向版主報告此篇 |  |
|
2024-10-09 13:30 |
|
|
|  |
 |
m3energy
中級會員
註冊日期: Sep 2004
來 自:
文章數量: 33 |
版主,你好:
因時間已來到2025年,此程式遇到了問題,可否請版主協助指導修正程式,謝謝。
橘框部份:
1.2025年,無法Mark(淺灰色)背景?
2.2025年其年度EPS預估值已更改預設值為59,但系統依舊採用2024年年度累加EPS:42.25運算?
青框部份:
1.無法顯示2025垂直線,並標注文字"2025"?

程式碼:
==============================================================================
FEPS:59 linethick; //為全年EPS尚未公告處所採用的值(自定義預估值,請自行調改)
CkBK:=INBLOCK('上市指數')+INBLOCK('上櫃指數');
CkMT:=MARKETLABEL='TW' or MARKETLABEL='TO';
CK:=CkMT and CkBK=0;
DRAWTEXTEX(CK=0,1,500,450,'當前商品不適用,本指標僅適用於個股。') COLORMAGENTA ALIGN0;
if CK=0 then exit;
DYM:=FLOOR(SEQDATA('','FIN','DATE')/100)+190000; //資料年月
Err:=lbound(DYM)=0;
DRAWTEXTEX(Err,1,500,450,'本商品目前無相關資料存在。若尚未獲取資料,請與伺服器連線!') colorFF00FF ALIGN0;
if Err then exit;
未還權收盤價:=SEQDATA('','DAY','CLOSE'); //此價可在日線或日線以上週期中使用(其他價不行)
KYM:=FLOOR(tradedate/100)+190000; //K棒年月
年累EPS:=SEQDATA('','FIN','I_EPS');
DMM:=MOD(DYM,100);//資料月份
KYZ:=MOD(KYM,100)=12 and refx(KYM,1)>KYM or islastbar; //年度終K
KYF:=ref(KYZ,1) or barpos=1; //年度首K
//以灰色背景標示全年EPS尚未公告處(亦即採自定義預估值處)
LSP:=barslast(DMM=12);Mark:=0;
if lbound(LSP)>0 then Mark:=barpos>=datacount-LSP[datacount]+1;
STICKLINEPY(Mark,0,999,10,0) color777777;
//以該年度全年EPS(最終年累EPS),填滿該年度相應K棒
YEPS:=SETVAL(KYM=DYM and KYZ,年累EPS,-barslast(KYF),年累EPS) linethick;
//於末端全年EPS尚未公告處添加自定義預估值
YEPS:=if(Mark,FEPS,YEPS);
//注意!!!
//此處的"股票本益比"與奇狐系統內建公式算法不同!(有採用未來季度的數據)
股票本益比:(未還權收盤價/YEPS)*(YEPS>0) linethick2;
DLB:=BARSSINCE(DYM>=201303); StKNo:=lbound(DLB);
if StKNo>0 then x:=SETLBOUND(股票本益比,StKNo);
KYFSP:=barslast(KYF);
年度最高本益比:HHV(股票本益比,KYFSP+1) linethick;
年度最低本益比:LLV(股票本益比,KYFSP+1) linethick;
//畫年分隔線
DYY:=FLOOR(DYM/100); //資料年
YYCK:=DYY<>ref(DYY,1) or barpos=lbound(DYY);
VERTLINE(YYCK and datatype<>9) linedot color777777;
//標示畫年分隔線-年月文字
if datatype=9 then PN:=DYY; else PN:=DMM;
DRAWNUMBER(YYCK and datatype<>9,股票本益比,DYY,0) color777777 align4;
===============================================================================
|
|
向版主報告此篇 |  |
|
2025-03-01 00:31 |
|
|
|  |
 |
cgjj
總版主

註冊日期: Oct 2003
來 自:
文章數量: 18091 |
引用: 最初由 m3energy 發表
版主,你好:
因時間已來到2025年,此程式遇到了問題,可否請版主協助指導修正程式,謝謝。
橘框部份:
1.2025年,無法Mark(淺灰色)背景?
2.2025年其年度EPS預估值已更改預設值為59,但系統依舊採用2024年年度累加EPS:42.25運算?
青框部份:
1.無法顯示2025垂直線,並標注文字"2025"?

程式碼:
==============================================================================
FEPS:59 linethick; //為全年EPS尚未公告處所採用的值(自定義預估值,請自行調改)
CkBK:=INBLOCK('上市指數')+INBLOCK('上櫃指數');
CkMT:=MARKETLABEL='TW' or MARKETLABEL='TO';
CK:=CkMT and CkBK=0;
DRAWTEXTEX(CK=0,1,500,450,'當前商品不適用,本指標僅適用於個股。') COLORMAGENTA ALIGN0;
if CK=0 then exit;
DYM:=FLOOR(SEQDATA('','FIN','DATE')/100)+190000; //資料年月
Err:=lbound(DYM)=0;
DRAWTEXTEX(Err,1,500,450,'本商品目前無相關資料存在。若尚未獲取資料,請與伺服器連線!') colorFF00FF ALIGN0;
if Err then exit;
未還權收盤價:=SEQDATA('','DAY','CLOSE'); //此價可在日線或日線以上週期中使用(其他價不行)
KYM:=FLOOR(tradedate/100)+190000; //K棒年月
年累EPS:=SEQDATA('','FIN','I_EPS');
DMM:=MOD(DYM,100);//資料月份
KYZ:=MOD(KYM,100)=12 and refx(KYM,1)>KYM or islastbar; //年度終K
KYF:=ref(KYZ,1) or barpos=1; //年度首K
//以灰色背景標示全年EPS尚未公告處(亦即採自定義預估值處)
LSP:=barslast(DMM=12);Mark:=0;
if lbound(LSP)>0 then Mark:=barpos>=datacount-LSP[datacount]+1;
STICKLINEPY(Mark,0,999,10,0) color777777;
//以該年度全年EPS(最終年累EPS),填滿該年度相應K棒
YEPS:=SETVAL(KYM=DYM and KYZ,年累EPS,-barslast(KYF),年累EPS) linethick;
//於末端全年EPS尚未公告處添加自定義預估值
YEPS:=if(Mark,FEPS,YEPS);
//注意!!!
//此處的"股票本益比"與奇狐系統內建公式算法不同!(有採用未來季度的數據)
股票本益比:(未還權收盤價/YEPS)*(YEPS>0) linethick2;
DLB:=BARSSINCE(DYM>=201303); StKNo:=lbound(DLB);
if StKNo>0 then x:=SETLBOUND(股票本益比,StKNo);
KYFSP:=barslast(KYF);
年度最高本益比:HHV(股票本益比,KYFSP+1) linethick;
年度最低本益比:LLV(股票本益比,KYFSP+1) linethick;
//畫年分隔線
DYY:=FLOOR(DYM/100); //資料年
YYCK:=DYY<>ref(DYY,1) or barpos=lbound(DYY);
VERTLINE(YYCK and datatype<>9) linedot color777777;
//標示畫年分隔線-年月文字
if datatype=9 then PN:=DYY; else PN:=DMM;
DRAWNUMBER(YYCK and datatype<>9,股票本益比,DYY,0) color777777 align4;
===============================================================================
將
//以灰色背景標示全年EPS尚未公告處(亦即採自定義預估值處)
LSP:=barslast(DMM=12);Mark:=0;
if lbound(LSP)>0 then Mark:=barpos>=datacount-LSP[datacount]+1;
STICKLINEPY(Mark,0,999,10,0) color777777;
改為
//以灰色背景標示全年EPS尚未公告處(亦即採自定義預估值處)
TYM:=floor(TradeDATE/100)+190000;
TYM:=floor(TYM/100)*100+ceiling(mod(TYM,100)/3)*3;
Mark:=TYM>DYM; //該處屬預估區(未來數值會隨後續財報公佈追溯調整)
STICKLINEPY(Mark,0,999,10,0) color777777;
|
|
向版主報告此篇 |  |
|
2025-03-01 10:41 |
|
|
|  |
本站所有內容未經作者授權禁止轉貼節錄, 發表言論僅供參考勿作為投資決策依據。瀏覽本站請使用 IE 5.5 以上版本, 最佳瀏覽解析度 1024 x 768 全彩。
|
Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.
簡愛洋行 製作 Copyright 2003-. All Rights Reserved. 聯絡我們
|