接下來的幾天,我會介紹 XS 中的內建函數,顧名思義就是我們不用額外建立運算函數,就能呼叫取用。
內建函數根據使用情境大致分成以下這些函數
在 XS 中,一切的基礎都是建立在各種交易資料的相互運算上。但是要怎麼樣才能讓我們可以很方便連結到這些交易資料呢?
所以今天介紹的,是跟取得交易資料有關的欄位函數。透過這些函數的使用,加上不同參數的傳遞,就能連結到各式各樣的交易資料。在 XS 編輯器中,有些還能以介面的方式進行語法的插入,大大地提升開發上的效率,也省去背一大堆資料欄位的名稱。
以下就來認識兩個基本,卻很常用的欄位函數。
GetField(名稱:string, 頻率?:string)
取得台股市場的融資券及法人的進出資料。在 指標、警示 以及 選股 類型的腳本可使用。
第一個參數為中文或英文名稱。例如:"Ftotalbuy" or "外資買張"。
第二個參數為頻率,如有需要指定的話則填入頻率的代碼,否則頻率會跟腳本執行的頻率一樣。
天數 | 主題 | 說明 |
---|---|---|
1 個 tick | Tick |
證券價格變動的最小幅度,即可能出現的最小升幅或跌幅 |
分鐘 | 正整數 | e.g. 1, 45, 240 |
日 | D |
|
週 | W |
|
月 | M |
|
季 | Q |
|
半年 | H |
|
一年 | Y |
|
還原日 | AD |
避免因除權息的影響造成跳空缺口 |
還原週 | AW |
避免因除權息的影響造成跳空缺口 |
還原月 | AM |
避免因除權息的影響造成跳空缺口 |
在 XS 編輯器中,有兩種方式可以使用這類型的函數
g
,出現建議選項後,在 getfield(插入) 的項目雙擊跟前面提到的開高低收一樣,回傳值是一個序列。如果要取前 N 個時間單位的話,直接在後面加上 [N]
。
舉個簡單例子看看
If Close > Close[1] and // 如果近一日漲幅為正且大於前一天外資買賣超張數
GetField("外資買賣超") > GetField("外資買賣超")[1]
then ret = 1; // 觸發警示通知
GetQuote(名稱:string)
取得即時的報價欄位資料。目前僅能在 警示腳本 中使用。
跟 GetField
不一樣的地方是,由於報價欄位的資料會即時更新,而且沒有前期資料。回傳值僅會是一個數值。
另外語法的呈現上,GetQuote
只是協助我們取得特定欄位的變數的方式,而不是最終的名稱。
在 XS 編輯器中,有三種方式可以使用這類型的函數
g
,出現建議選項後,在 getquote(插入) 的項目雙擊q_
,出現建議選項,選擇想要插入的選項。看個例子。
Input: OpenGap(1);
Input: Downpercent(1);
if q_DailyHigh = q_DailyOpen and // 如果當日開在最高
q_DailyOpen > q_RefPrice * (1+ OpenGap/100) and // 而且跳空開出
q_Last < q_DailyHigh * (1 - Downpercent/100) // 而且目前的價格 q_Last已經回落一定範圍
then ret=1; // 觸發警示通知
我們接著要開始一步步熟悉每種函數的運用。今天介紹的欄位函數其實也不只這兩種,有興趣的可以前往底下的參考資源查看囉!
今天就到這邊
Happy trading ! 明天見囉 !