請教如何修改

  •   145 
  • 最後發表   雞雞王  2024 二月 06
雞雞王 發文於   2024/01/25

以下目的是想抓出個股前3年平均股利發放率後 用今年前3季EPS+去年第4季EPS來找殖利率較高的個股

不過用起來覺得一定寫錯了 該如何修改好

 

 

input:n1(0.07);

value2=GetField("每股稅後淨利(元)","Y");

value3=GetField("現金股利","Y");

value4=GetField("每股稅後淨利(元)","Q");

value5=summation(value4,4);                     <-----這樣寫有前3季EPS+去年第4季EPS嗎  還是會變成前一季*4便

 

value6=value3/value2;//股息配發率             <-----請問該如何改成抓前3年發放率

 

value7=value6*value5;

if value7/GetField("收盤價")>=n1

then ret=1;

 

XQ小幫手 發文於   2024/02/06

Hello, 雞雞王.

您的問題主因是資料頻率,因為選股預設是日頻率資料,但是您索取的資料多半為季或年,

 

所以您得將您的程式修改如下,

input:n1(0.07);

value2 = GetField("每股稅後淨利(元)","Y");
value3 = GetField("現金股利","Y");
value4 = GetField("每股稅後淨利(元)","Q");
value5 = summation(GetField("每股稅後淨利(元)","Q"),4);

value6 = GetField("現金股利","Y") / GetField("每股稅後淨利(元)","Y"); //最近一年的
value16 = GetField("現金股利","Y")[1] / GetField("每股稅後淨利(元)","Y")[1]; //最近一年的前一年
value26 = GetField("現金股利","Y")[2] / GetField("每股稅後淨利(元)","Y")[2]; //最近一年的前兩年

value7 = value6 * value5;
if 
    value7 / GetField("收盤價") >= n1
then 
    ret = 1;


outputField1(value5, "近四季EPS");
outputField2(GetField("每股稅後淨利(元)","Q"), "EPS");
outputField3(GetField("每股稅後淨利(元)","Q")[1], "EPS[1]");
outputField4(GetField("每股稅後淨利(元)","Q")[2], "EPS[2]");
outputField5(GetField("每股稅後淨利(元)","Q")[3], "EPS[3]");
outputField6(GetField("現金股利","Y"), "現金股利");
outputField7(GetField("每股稅後淨利(元)","Y"), "每股稅後淨利(Y)");

1707187322417

value2 = GetField("每股稅後淨利(元)","Y");

value2[1]:表示前一期取GetField("每股稅後淨利(元)","Y")資料的值(如果跑在日頻率,就是前一天)

GetField("每股稅後淨利(元)","Y")[1]:表示前一期GetField("每股稅後淨利(元)","Y")資料的值(也就是資料最新年份的前一年),

另外,您可以善用outputField(...)來做資料的驗證,

 

謝謝。

發表回覆
Close