XS指標 / 策略雷達 / 自動交易:支援選股欄位

2024-12-17 17:05:09

前言

過去有許多用戶,提出希望能在自訂的 指標 / 策略雷達 / 自動交易 腳本中,用 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 就能取得 以上用指標來當範例說明,同樣在策略雷達與自動交易也適用。