 |
m3energy
中級會員
註冊日期: Sep 2004
來 自:
文章數量: 33 |
[求救] 能否協助修改成「類股本益比」公式?
在論壇找到底下之公式算法,無奈程式功力不足,改寫不出來。
參考文章:
【範例】類股平均EPS
http://www.chiefox.com.tw/bbs/showt...%B8%BB%E9%A1%8C
請教是否能協助將此公式修改成「類股本益比」公式。
想要修正的「類股本益比」算法:
1.對應年度已公佈的"類股股票全年EPS均值"算出當年類股本益比。
2.標示出類股年度最高本益比與類股年度最低本益比。
3.當年度的類股EPS均值,「使用者自行輸入類股EPS均值預估值」。
PS:待2024全年全部EPS公佈後,系統即修正為依上述方法算出2024年類股本益比。
|
|
向版主報告此篇 |  |
|
2024-10-12 16:04 |
|
|
|  |
 |
cgjj
總版主

註冊日期: Oct 2003
來 自:
文章數量: 18102 |
回覆: [求救] 能否協助修改成「類股本益比」公式?
引用: 最初由 m3energy 發表
在論壇找到底下之公式算法,無奈程式功力不足,改寫不出來。
參考文章:
【範例】類股平均EPS
http://www.chiefox.com.tw/bbs/showt...%B8%BB%E9%A1%8C
請教是否能協助將此公式修改成「類股本益比」公式。
想要修正的「類股本益比」算法:
1.對應年度已公佈的"類股股票全年EPS均值"算出當年類股本益比。
2.標示出類股年度最高本益比與類股年度最低本益比。
3.當年度的類股EPS均值,「使用者自行輸入類股EPS均值預估值」。
PS:待2024全年全部EPS公佈後,系統即修正為依上述方法算出2024年類股本益比。
請自行核對計算結果是否為您想要的正確值!
注意!!!
這裡的"股票本益比"與奇狐系統內建公式算法不同!(有採用未來季度的數據)
另外!!!
若在不宜的時間觀看,會讓數值落差很大!
例如:僅只有幾支已公告12月的,其他都還沒有公告時
此時有效樣本數會過少,計算將嚴重偏差
原碼: FEPS均:1.99 linethick; //請自行根據當前類股調改此值
//此為全年EPS均值尚未公告處所採用的值(自定義預估值)
UseBlk:=''; //類股成份股板塊
if stklabel='201' then UseBlk:='水泥工業';
if stklabel='202' then UseBlk:='食品工業';
if stklabel='203' then UseBlk:='塑膠工業';
if stklabel='204' then UseBlk:='紡織纖維';
if stklabel='205' then UseBlk:='電機機械';
if stklabel='206' then UseBlk:='電器電纜';
if stklabel='208' then UseBlk:='玻璃陶瓷';
if stklabel='209' then UseBlk:='造紙工業';
if stklabel='210' then UseBlk:='鋼鐵工業';
if stklabel='211' then UseBlk:='橡膠工業';
if stklabel='212' then UseBlk:='汽車工業';
if stklabel='214' then UseBlk:='建材營造';
if stklabel='215' then UseBlk:='航運業';
if stklabel='216' then UseBlk:='觀光事業';
if stklabel='217' then UseBlk:='金融保險';
if stklabel='218' then UseBlk:='貿易百貨';
if stklabel='220' then UseBlk:='其他';
if stklabel='237' then UseBlk:='化學工業';
if stklabel='241' then UseBlk:='生技醫療業';
if stklabel='260' then UseBlk:='油電燃氣業';
if stklabel='223' then UseBlk:='半導體業';
if stklabel='224' then UseBlk:='電腦及週邊設備業';
if stklabel='225' then UseBlk:='光電業';
if stklabel='226' then UseBlk:='通信網路業';
if stklabel='227' then UseBlk:='電子零組件業';
if stklabel='228' then UseBlk:='電子通路業';
if stklabel='229' then UseBlk:='資訊服務業';
if stklabel='230' then UseBlk:='其他電子業';
if stklabel='531' then UseBlk:='文化創意業';
DRAWTEXTEX(UseBlk='',1,500,550,'本公式僅適用於類股指數(或無相對應類股成份)!') ALIGN0 COLORMAGENTA;
if UseBlk='' then exit;
ZeroAry:=C*0;
YEPS總:=ZeroAry;
資料年月:ZeroAry linethick colorFF33FF;
樣本數:ZeroAry linethick color777777; //具資料才列入統計
//找出最新財報所屬資料年月
資料年月:=ZeroAry;
for i=1 to STKCOUNT(UseBLK) do begin
UseStk:=STKFROMBLK(UseBLK,i);
DYM:=FLOOR(SEQDATA(UseStk,'FIN','DATE')/100)+190000;
if lbound(DYM)>0 then begin
DYM:=if(barpos>=lbound(DYM),DYM,0);
資料年月:=MAX(資料年月,DYM);
end;
end;
//找出採用預估值的區域
LB:=datacount-barslast(MOD(資料年月,100)=12);
預估區:=barpos>LB[datacount];
資料年月:=資料年月*(預估區=0);
//以灰色背景標示全年EPS均值尚未公告處(亦即採自定義預估值處)
STICKLINEPY(預估區,0,999,10,0) color777777;
//注意!!!
//這裡的"股票本益比"與奇狐系統內建公式算法不同!(有採用未來季度的數據)
KYM:=FLOOR(tradedate/100)+190000; //K棒年月
KYZ:=MOD(KYM,100)=12 and refx(KYM,1)>KYM or islastbar; //年度終K
KYF:=ref(KYZ,1) or barpos=1; //年度首K
//將類股成份之EPS值加總
for i=1 to STKCOUNT(UseBLK) do begin
UseStk:=STKFROMBLK(UseBLK,i);
DYM:=FLOOR(SEQDATA(UseStk,'FIN','DATE')/100)+190000;//資料年月
if lbound(DYM)>0 then begin
DYM:=if(barpos>=lbound(DYM),DYM,0);
DMM:=MOD(DYM,100);//資料月份
IEPS:=SEQDATA(UseStk,'FIN','I_EPS');
YEPS:=SETVAL(KYM=DYM and KYZ,IEPS,-barslast(KYF),IEPS); //以該年度全年EPS(最終年累EPS),填滿該年度相應K棒
CheckOK:=資料年月=DYM and DYM>0;
樣本數:=樣本數+CheckOK;
YEPS總:=YEPS總+if(CheckOK,YEPS,0);
end;
end;
預估EPS總:=FEPS均*ref(樣本數,barslast(預估區=0));
YEPS總S:=if(預估區,預估EPS總,YEPS總) linethick colorFF6666;
類股本益比:(CLOSE/YEPS總S)*(YEPS總S>0) linethick2;
DLB:=BARSSINCE(資料年月>=201303); StKNo:=lbound(DLB);
if StKNo>0 then x:=SETLBOUND(類股本益比,StKNo);
KYFSP:=barslast(KYF);
年度最高本益比:HHV(類股本益比,KYFSP+1) linethick;
年度最低本益比:LLV(類股本益比,KYFSP+1) linethick;
|
|
向版主報告此篇 |  |
|
2024-10-14 16:38 |
|
|
|  |
 |
m3energy
中級會員
註冊日期: Sep 2004
來 自:
文章數量: 33 |
引用: 最初由 cgjj 發表
並非是顯示不正確~~
而是該期間有些成分股 I_EPS 是負數
會對加總的數值,產生較大的波動影響
^^^^^^^^^^^^^^^^^
感謝總版主的解說,謝謝。
|
|
向版主報告此篇 |  |
|
2024-10-15 22:13 |
|
|
|  |
 |
m3energy
中級會員
註冊日期: Sep 2004
來 自:
文章數量: 33 |
引用: 最初由 cgjj 發表
DYM 是迴圈中個股的資料,不可拿到迴圈外使用
DYY:=FLOOR(DYM/100); //資料年
需修正為
DYY:=FLOOR(資料年月/100); //資料
^^^^^^^^^^^^^^^^^^
謝謝。
|
|
向版主報告此篇 |  |
|
2024-10-15 22:33 |
|
|
|  |
本站所有內容未經作者授權禁止轉貼節錄, 發表言論僅供參考勿作為投資決策依據。瀏覽本站請使用 IE 5.5 以上版本, 最佳瀏覽解析度 1024 x 768 全彩。
|
Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.
簡愛洋行 製作 Copyright 2003-. All Rights Reserved. 聯絡我們
|