奇狐社區論壇
在這個頁面顯示本主題全部的 9 個文章

奇狐社區論壇 (http://www.chiefox.com.tw/bbs/index.php)
- 問題交流 (http://www.chiefox.com.tw/bbs/forumdisplay.php?forumid=28)
-- 游標移動時顯示的資料不一致 (http://www.chiefox.com.tw/bbs/showthread.php?threadid=22385)


由 seychen 在 2020-03-09 14:22 發表:

游標移動時顯示的資料不一致

我寫了以下的一段程式,試圖使用v5.2所提供的財務資料, 由過去4季及過去3年的EPS...,算出合理股價並繪在主圖上. 但是有個問題,那就是當移動游標時,原來所畫的線會改變, 如附件. 請問這是哪裡出了問題?


DYM:=floor(SEQDATA('','OprEff','DATE')/100)+190000; //資料年月
DMM:=MOD(DYM,100); //資料月份
DYQ:=floor(DYM/100)*10+ceiling(DMM/3); //資料年季
EPS:=SEQDATA('','OprEff','EaitSale');

LastDPP: SEQDATA('','OPREFF','barpos','last');
LastD: sysparam(1);

if (LastD<1 or LastD > datacount) then LastD:=datacount;

if (LastD>LASTDPP) then LastNO:=LastDPP else LastNO:=LastD;

A4EPS:=EPS;
J:=1;
for i=LastNO downto lbound(DYQ) do begin
if DYQ[i] <> DYQ[i-1] then begin
A4EPS:=A4EPS+EPS[i-1];
// A4EPS:=A4EPS+ref(EPS,LastNO-i+1);
IF J=3 then break;
j:=J+1;
end;
end;
A4EPS: A4EPS;
DEPS: ref(EPS,LastNO-i+1);
KN:=(A4EPS/c)*100;

EPS3:=EPS;
J:=1;
for i=LastNO downto lbound(DYQ) do begin
if DYQ[i] <> DYQ[i-1] then begin
EPS3:=EPS3+EPS[i-1];
// EPS3:=EPS3+ref(EPS,LastNO-i+1);
IF J=11 then break;
j:=J+1;
end;
end;
EPS3: EPS3/3;
Kn3:= (EPS3)/C*100;

PBR:= Close /((FINANCE(12)-FINANCE(19)) / FINANCE(1));

預計現金殖利率:= selfdata('2011現金股利')/C*100;
價值權重:= selfdata('價值權重');
價值比:= (Kn /PBR * Kn3 * 預計現金殖利率/4*價值權重) ;
合理價: round(C*SQRT(SQRT(價值比/60))),colorgreen, linethick1;


由 cgjj 在 2020-03-09 14:55 發表:

回覆: 游標移動時顯示的資料不一致

引用:
最初由 seychen 發表
我寫了以下的一段程式,試圖使用v5.2所提供的財務資料, 由過去4季及過去3年的EPS...,算出合理股價並繪在主圖上. 但是有個問題,那就是當移動游標時,原來所畫的線會改變, 如附件. 請問這是哪裡出了問題?


DYM:=floor(SEQDATA('','OprEff','DATE')/100)+190000; //資料年月
DMM:=MOD(DYM,100); //資料月份
DYQ:=floor(DYM/100)*10+ceiling(DMM/3); //資料年季
EPS:=SEQDATA('','OprEff','EaitSale');

LastDPP: SEQDATA('','OPREFF','barpos','last');
LastD: sysparam(1);

if (LastD<1 or LastD > datacount) then LastD:=datacount;

if (LastD>LASTDPP) then LastNO:=LastDPP else LastNO:=LastD;

A4EPS:=EPS;
J:=1;
for i=LastNO downto lbound(DYQ) do begin
if DYQ[i] <> DYQ[i-1] then begin
A4EPS:=A4EPS+EPS[i-1];
// A4EPS:=A4EPS+ref(EPS,LastNO-i+1);
IF J=3 then break;
j:=J+1;
end;
end;
A4EPS: A4EPS;
DEPS: ref(EPS,LastNO-i+1);
KN:=(A4EPS/c)*100;

EPS3:=EPS;
J:=1;
for i=LastNO downto lbound(DYQ) do begin
if DYQ[i] <> DYQ[i-1] then begin
EPS3:=EPS3+EPS[i-1];
// EPS3:=EPS3+ref(EPS,LastNO-i+1);
IF J=11 then break;
j:=J+1;
end;
end;
EPS3: EPS3/3;
Kn3:= (EPS3)/C*100;

PBR:= Close /((FINANCE(12)-FINANCE(19)) / FINANCE(1));

預計現金殖利率:= selfdata('2011現金股利')/C*100;
價值權重:= selfdata('價值權重');
價值比:= (Kn /PBR * Kn3 * 預計現金殖利率/4*價值權重) ;
合理價: round(C*SQRT(SQRT(價值比/60))),colorgreen, linethick1;



這個公式有動用 sysparam(1)
它會追著滑鼠移動變動重算,LastNO 會隨之變化,故當然會變動呀!

若您要要求算歷史曲線,並不需要動用sysparam(1)


由 cgjj 在 2020-03-09 15:06 發表:

給您一個範例當參考

//近四季單季EPS之合計
QNum:=4; DYM:=floor(SEQDATA('','FIN','DATE')/100);
DSW:=DYM<>ref(DYM,1) or barpos=lbound(DYM);
QEPS:=SEQDATA('','FIN','I_EPS#S')*DSW;
合計:sum(QEPS,sumbars(DSW,QNum));

//將還沒有資料的區域,用前面算的值遞補
LastDPP:=SEQDATA('','FIN','Barpos','Last'); //最後資料位置
NullP:=barpos>LastDPP or LastDPP=0;
RefSP:=barslast(NullP=0);
合計:=ref(合計,RefSP);


由 seychen 在 2020-03-09 16:02 發表:

可以了. 謝謝!


由 cgjj 在 2020-03-09 17:04 發表:

引用:
最初由 seychen 發表
可以了. 謝謝!


不客氣^^


由 seychen 在 2020-03-10 16:39 發表:

我發現 兆豐金及一些銀行股的 2019Q3 的季營收資料好像是空的, 或是有其他問題. 如附件.
另外, 想請問, 何時開始會提供月營收資料


由 cgjj 在 2020-03-10 17:54 發表:

引用:
最初由 seychen 發表
我發現 兆豐金及一些銀行股的 2019Q3 的季營收資料好像是空的, 或是有其他問題. 如附件.
另外, 想請問, 何時開始會提供月營收資料



Re: 兆豐金及一些銀行股的 2019Q3 的季營收資料好像是空的
剛看這些商品 2019Q2、2019Q3 這部分資料有點問題,會請工程師查明並進行修正, 謝謝通報。

[月營收] 需 即時加盤後版(或未來的盤後版) 才有權限存取。該資料目前是自動化更新的,會隨新資料送達陸續更新。


由 seychen 在 2020-03-10 20:02 發表:

引用:
最初由 cgjj 發表
Re: 兆豐金及一些銀行股的 2019Q3 的季營收資料好像是空的
剛看這些商品 2019Q2、2019Q3 這部分資料有點問題,會請工程師查明並進行修正, 謝謝通報。

[月營收] 需 即時加盤後版(或未來的盤後版) 才有權限存取。該資料目前是自動化更新的,會隨新資料送達陸續更新。



Thank you!


由 cgjj 在 2020-03-10 21:46 發表:

引用:
最初由 seychen 發表
Thank you!


數據已經修正了,謝謝!


全部時間均為台灣時間, 現在時間為16:14
在這個頁面顯示本主題全部的 9 個文章


Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.

簡愛洋行 製作 Copyright 2003-. All Rights Reserved.