寫了一個以下的選股腳本,頻率:季,為怕跑不出股票,篩選條件刻意設為數值不等於0,但是依然跑不出任何股票,煩請協助看看問題出在哪裡?
------------------------------------------------------------
var: MTA(0),NIMTA(0), NIMTAAVG(0), TLMTA(0), CASHMTA(0), EXRET(0), EXRETAVG(0), SIGMA(0), RSIZE(0), MB(0), PRICE(0), LPFD(0), PFD(0), stockreturn(0), TSEreturn(0);
value1=GetField("稅前息前淨利","Q");
value2=GetSymbolField("TSE.TW","收盤價","Q");
value3=GetField("收盤價","Q");
value4=GetField("收盤價","D");
TSEreturn = (value2-value2[1])/value2[1];
stockreturn= (value3-value3[1])/value3[1];
MTA=GetField("總市值(億)","Q")*100+GetField("負債總額","Q");
NIMTA = GetField("稅前息前淨利","Q") / MTA;
NIMTAAVG = 0.5333*NIMTA+0.2666*NIMTA[1]+0.1333*NIMTA[2]+0.0666*NIMTA[3];
EXRET = (log(1+stockreturn)-log(1+TSEreturn)) / 2;
EXRETAVG = 0.5333*EXRET+0.2666*EXRET[1]+0.1333*EXRET[2]+0.0666*EXRET[3];
RSIZE = log(GetField("總市值","Q")/GetSymbolField("TSE.TW","總市值","Q"));
TLMTA = GetField("負債總額","Q") / MTA;
CASHMTA = GetField("現金及約當現金","Q") / MTA;
SIGMA = StandardDev(value4,60,2);
MB = MTA / (GetField("資產總額","Q")+0.1*(GetField("總市值(億)","Q")*100-GetField("資產總額","Q")));
//PRICE = log(value4);
if value4 >15 then PRICE = log(15)
else PRICE = log(value4) ;
LPFD = -20.26*NIMTAAVG + 1.42*TLMTA - 7.13*EXRETAVG + 1.41*SIGMA - 0.045*RSIZE - 2.13*CASHMTA + 0.075*MB - 0.058*PRICE - 9.16;
PFD = 1/(1+ExpValue(-LPFD));
if PFD<>0
then ret=1;
setoutputname1("PFD");
outputfield1(PFD);

9 評論