想寫一個計算近年平均殖利率的選股邏輯

  •   909 
  • 最後發表   Daiso  2021 二月 24
Daiso 發文於   2018/09/09

我想寫一個計算近年平均殖利率的選股邏輯,但是跑出來的個股進行計算驗證,似乎怪怪的,請問我那裏頭寫錯了嗎?

邏輯:近5年 平均殖利率率大於5% 個股

 

input:CASH(5,"近年現金股利平均"),Yie(5,"大於平均殖利率(%)");

value1=Yie/100;

if 

(sumlist(GetField("CashDividend"),CASH)/CASH)/C>=value1

then ret=1;

  • 按讚來自於
  • ffang55tw
排序方式: 標準 | 最新
XQ小幫手 發文於   2018/09/10

Hi Daiso,

您好,請您使用 現金股利 (選股欄位)  與 股票股利 (選股欄位) 這兩個資料搭配 average 語法,進行近年平均殖利率的選股邏輯,

由於此選股邏輯僅在最後一期進行運算即可,故使用 if currentbar <> gettotalbar then return; 的語法撰寫在最後一期的運算,

最後在使用 outputfield1 顯示相關運算數值是否正確。

 

加入選股腳本後,記得將資料頻率調整為年,且資料讀取筆數至少要 5 筆,

如下圖,這樣應該較符合您的選股邏輯,

 

選股腳本範例程式碼如下,以上方向供參考,謝謝。

input:CASH(5,"現金股利平均年數"),Yie(5,"大於平均殖利率(%)");

value1 = (GetField("現金股利","Y") + GetField("股票股利","Y"))/close * 100;

if currentbar <> gettotalbar then return;

if average(value1,CASH) > Yie then ret = 1;

outputfield1(average(value1,CASH),"近五年平均殖利率");

 

股海小子 發文於   2021/02/22

謝謝分享程式碼,有收穫。不過提出幾個問題: 1. input宣告了CASH,在程式碼裡面沒有用到。 2. CASH根據原發問的問題,這邊應該是輸入的年數? 因此顯示輸入似乎不應該寫"近年現金股利平均",應該是"現金股利平均年數"。 

XQ小幫手 發文於   2021/02/24

Hi 股海小子,

謝謝指教,確實如您所述,需要做些調整,故已調整範例程式碼,謝謝。

  • 按讚來自於
  • Sinotrade006
發表回覆
Close