前言
過去有許多用戶,提出希望能在自訂的
指標 / 策略雷達 / 自動交易 腳本中,用 GetField 取得
財報等選股欄位,在 15.01 版之後這個需求可以達成。
需要特別注意的是,過去選股欄位僅能使用在選股腳本上,也就是應用在選股中心。
如果要在指標、策略雷達、自動交易腳本使用選股欄位,無論是即時或回測的情境,都需要先具備使用選股欄位的權限。
欄位種類說明
先複習一下不同
XS 欄位種類 與不同產品間,在此次調整前的使用情境:
1. 報價欄位:僅能使用盤中更新資料,支援策略雷達 / 自動交易腳本;無不同頻率的歷史資料,故不可回測。
2. 資料欄位:盤中、盤後更新資料皆能使用,支援指標 / 策略雷達 / 自動交易腳本;可以回測。
3. 選股欄位:僅能使用盤後更新資料,僅支援選股腳本;可以回測。
這次最主要的調整如下:
3. 選股欄位:僅能使用盤後更新資料,支援
選股 / 指標 / 策略雷達 / 自動交易 腳本;可以回測。
使用情境
以下用指標來舉例,用法與 GetField 取得資料欄位的方式完全一樣,只是需要特別注意的是對位的方式。
在指標、策略雷達、自動交易使用選股欄位時,一律使用「
絕對對位」(按資料期別的日期對位);在選股中心使用選股欄位時,則使用「
公布日對位」(按資料可被 XS 取得的日期對位)。
詳情可參考:
SetAlign
先就預設的「絕對對位」,提供一個說明範例:
//預設為「絕對對位」:SetAlign("營收財報", 0);
plot1(GetField("營業利益率","q"));
可以看到下方直接 plot 出季頻率的 "營業利益率",由於 2024/Q4 的資料尚未公布,所以在 Q4 範圍的K棒下,"營業利益率" 都是沒有值 (N/A) 的狀態;
最新公布的 2024/Q3 資料,則會標記在 Q3 資料期別的K棒下,也就是[7 月初 ~ 9 月底]。
若是改成「
公布日對位」呢?
//公布日對位
SetAlign("營收財報", 1);
plot1(GetField("營業利益率","q"));
可以看到資料會被標記在可被 XS 取得的日期區間,例如上圖「
絕對對位」時最新的雖然是 2024/Q3 的資料,但是在下圖「
公布日對位」時會標記在 2024/11/04 以後的 K 棒下。
對照選股中心可取得 2024/Q3 的 "營業利益率",最早是在 11/01 的盤後,因此在指標就會從下一個交易日也就是 11/04 的K棒開始標記。
不能標記在 11/01 的K棒是因為,11/01 盤中無法取得照理來說盤後才能取得的資料。
所以我們也可以這樣理解:
「
公布日對位」等同於回到K棒時間的當時能取得的資料,這是如果想避免發生使用「
絕對對位」時,會偷看到未來資料的問題,在使用上可以斟酌使用 SetAlign 做調整。
偷看到未來資料的意思是說,本來在 11/01 盤後才能知道的資料,在絕對對位時,會因為資料期別的緣故,在 07/01 就能取得
以上用指標來當範例說明,同樣在策略雷達與自動交易也適用。