大家好,
分享前一年盤整50%內(最高-最低)與去年同期月營收年增率增加30%的選股腳本,供參考
撰寫方式大致說明:
0. 會使用到時間序列的部分,取得前幾期的資料(取得前一年、去年同期)
1. 使用 setbarfreq 函數將資料頻率設定在月,避免調整錯誤
2. 使用 GetField 函數跨年頻率取得前一年最高價與前一年最低價,以便計算 "前一年盤整50%內" 的條件
3. 使用 月營收年增率 (選股欄位) 函數,以便計算 "去年同期的月營收年增率增加30%" 的條件
4. 使用 OutputField 函數,將相關數值列在選股中心列表中,以利檢驗數值正確(請參考 選股欄位放大鏡:談OutputField)
選股中心資料讀取筆數設定:

選股腳本範例如下:
//能有前一年盤整50%內(最高-最低),
//去年同期的月營收年增率增加30%
setbarfreq("M");
input:_Change(50,"盤整不超過(%)"),Sales_YoY_Percent(30,"月營收年增率增幅(%)");
value1 = (GetField("最高價","Y")[1] - GetField("最低價","Y")[1])/GetField("最低價","Y")[1] * 100;
value2 = GetField("月營收年增率")[12] + absvalue(GetField("月營收年增率")[12] * Sales_YoY_Percent/100);
condition1 = value1 <= _Change;
condition2 = GetField("月營收年增率") > value2;
if condition1 and condition2 and GetField("月營收年增率")[12] <> 0 then ret = 1;
outputfield(1,value1,"前一年盤整(最高-最低/最低)(%)");
outputfield(2,GetField("月營收年增率"),"當期月營收年增率(%)");
outputfield(3,GetField("月營收年增率")[12],"去年同期月營收年增率(%)");
outputfield(4,value2,"去年同期的月營收年增率增幅30%");
以上供大家參考,有問題歡迎詢問。


11 評論