關於讀取資料

  •   217 
  • 最後發表   強哥  2018 三月 31
強哥 發文於   2018/03/27

關於讀取的資料實際是不存在的

比方說GetField("月營收年增率","M")[12]>20

不巧某檔股票實際上沒有這筆資料

因此這檔股票將不會被選出

但是這是因為沒有這筆資料  而不是因為年增沒超過20

請問我要如何做判斷?

排序方式: 標準 | 最新
強哥 發文於   2018/03/27

另外1808目前計資料是更新至Q4 20171201

可是我的程式碼讀出來outputfield(1, GetFieldDate("營業收入淨額","Q"),2,"使用季");  是20170901

完整程式碼如下  還請協助確認

 

Vars:DayCycle(30);
Vars:BackTrackingDate(0);
Vars:BackTrackingDayStart(0);
Vars:BackTrackingDayEnd(0);
Vars:BackTrackingDay(0);
Vars:BackTrackingMonth(0);
Vars:BackTrackingQ(0);
Vars:FloatingVolume(0);
Vars:FloatingCnt1X(0);
Vars:FloatingCnt2X(0);
Vars:HighestVolume(0);
Vars:HighestVolumeDay(0);
Vars:HighestPrice(0);
Vars:HighestPriceDay(0);
Vars:HighestPriceTolerance(0);
Vars:ValidHighest(0);
Vars:i(0);
Vars:UpRevenue(0);
Vars:DownRevenue(0);
Vars:HighestRevenue(0);
Vars:ValidRevenue(0);
Vars:ValidVolumeTrend(0);
Vars:ValidPriceTrend(0);
Vars:ValidPriceVolume(0);
Vars:ValidPriceJump(0);
Vars:ValidDown(0);
Vars:LatestRevenueQ(0);
Vars:GrossMargin(0);
Vars:BusinessExpense(0);
Vars:RealEps(0);
Vars:PredicEps(0);
Vars:ReportEps(0);
Vars:RealPERatio(0);
Vars:PredicPERatio(0);
Vars:ReportPERatio(0);
Vars:ReasonablePERatio(0);
Vars:PredicReportPERatio(0);
Vars:ValidEps(0);
Vars:ValidLegalPerson(0);
Vars:ValidRet(0);
Vars:Loop(1);
Vars:InPrice(0);
Vars:ActualInPrice(0);
Vars:OutPrice(0);
Vars:Profit(0);
Vars:ProfitDate(0);
Vars:BestProfit(0);
Vars:WorstProfit(0);
Vars:ShareCapital(0);


ValidRevenue=1;
  if ValidRevenue>0
  then
  Begin
  
   ShareCapital = GetField("最新股本");
   if(BackTrackingDay>0)
   then
   ShareCapital = GetField("普通股股本","Q");  
  
   FloatingCnt1X = 0;
   FloatingCnt2X = 0;
   FloatingVolume =(ShareCapital*10000)-GetField("董監持股","D")[BackTrackingDay];
 
   For i = HighestPriceDay to (HighestPriceDay+DayCycle)
   Begin   
    if GetField("成交量","D")[i]<FloatingVolume
    then
    FloatingCnt1X=FloatingCnt1X+1;
    
    if GetField("成交量","D")[i]<(FloatingVolume*2)
    then
    FloatingCnt2X=FloatingCnt2X+1;
   End;

   //獲利能力確認-最近一季EPS反推四季本益比 (百萬為單位)
   
 
   ReasonablePERatio=20;   
            

   
   RealEPS=0;
   PredicEPS=0;
   ReportEps=GetField("EPS","Q")[0]*4;
   RealPERatio=0;
   PredicPERatio=0;
   ReportPERatio=0;
   PredicReportPERatio=0;
   LatestRevenueQ=(GetField("月營收","M")[BackTrackingMonth]+GetField("月營收","M")[1+BackTrackingMonth]+GetField("月營收","M")[2+BackTrackingMonth])*100;
   GrossMargin=GetField("營業毛利率","Q");
   BusinessExpense=GetField("營業費用","Q");
   ValidEps=0;

   if RealEPS>0
   then
   RealPERatio=GetField("收盤價","D")[BackTrackingDay]/RealEPS;

   if PredicEPS>0
   then
   PredicPERatio=GetField("收盤價","D")[BackTrackingDay]/PredicEPS;

   if ReportEPS>0
   then
   Begin
    if GetField("營業外收入合計","Q")>GetField("營業外支出合計","Q")
    then
    ReportEps=GetField("EPS","Q")[0]*4*GetField("營業利益","Q")/((GetField("營業外收入合計","Q")-GetField("營業外支出合計","Q"))+GetField("營業利益","Q"));
    
   End;

  End;


if StrCompare(symbol,"1808.tw")=0
then
ValidRet=1;

 

//結束
if ValidRet=1
then
ret=1;


outputfield(1, GetFieldDate("營業收入淨額","Q"),2,"使用季");

 

 

 

 

強哥 發文於   2018/03/28

請問小幫手可以幫我解答以上兩個問題嗎?

XQ小幫手 發文於   2018/03/28

Hi 強哥,

關於第一個問題,請問是哪檔股票有遇到此狀況?以利小幫手查看問題的原因唷,謝謝。

XQ小幫手 發文於   2018/03/30

你好:

經小幫手查看過後,此檔股票是2017/06 才上市櫃,所以沒有那麼久以前的資料,所以會是N/A的狀態,故無法顯示,以上說明。

強哥 發文於   2018/03/31

謝謝小幫手,請問第一個問題有解答嗎?

 

XQ小幫手 發文於   2018/03/31

你好:

1808 資料顯示的問題,小幫手在最近財務報表陸續公告,最新的一期是以哪一個數字為基準? 這一篇有回覆喔。

發表回覆
Close