GetField

By | 2015-05-26

在XScript問市之前,市場早有很多套程式語法可供交易者使用,但我們敢於宣稱XScript是最適合台灣人使用的程式交易語法,其原因就在於, 我們可以提供台灣市場獨有的欄位,供交易者來使用。
交易者在制定台股交易策略時,往往除了開高低收成交量之外,也想要試著用台股獨特的交易資料,例如融資券及法人的進出資料, 來作為交易策略的運算基礎,為了讓交易者可以如願以償,XScript提供了一套語法,來協助交易者完成這樣的工作,本章就是來介紹這套語法及其應用。
在撰寫腳本時,當您需要使用這些台股特有的欄位時,您只要在編輯器中打一個英文字母g,不管大小寫,編輯器都會跳出一個如下面附圖中的視窗, 只要您選取getfield(插入),系統就會跳出一個選取欄位的視窗,讓您直接挑選要使用的欄位。

gf1
您只要選取其中一個欄位按插入鍵,系統就自動把這個欄位帶到您的腳本中,因此,您就不需要去記那個欄位的英文名字是什麼。
例如我們如果要取得今日的外資買賣超,我們的寫法可以如下 :

value1=Getfield("外資買賣超"); 其單位是張數

如果我們要取得前一日的外資買賣超,其寫法跟我們要取得前一日的收盤價是一樣的,也就是用中括號裡寫個1就可以,所以其寫法如下 :

value1=Getfield("外資買賣超")[1];

那麼到底XS支援多少台股欄位呢? 目前XScript能支援的數據類別及欄位如下 :

1.法人買賣超

Ftotalbuy 外資買張
Ftotalsell 外資賣張
Fdifference 外資買賣超
Fsharesheld 外資持股
Fsharesheldratio 外資持股比例
Stotalbuy 投信買張
Stotalsell 投信賣張
Ssharesheld 投信持股
Ssharesheldratio 投信持股比例
Sdifference 投信買賣超
Dtotalbuy 自營商賣張
Dtotalsell 自營商賣張
Dsharesheld 自營商持股
Dsharesheldratio 自營商持股比例
Ddifference 自營商買賣超
InvestorTotalBuy 法人買張
investorTotalSell 法人賣張
investorDifference 法人買賣超張數
inverstorsharesheld 法人持股

2.信用交易

pomusingratio 融資使用率
pomnew 融資增減張數
shortsalenew 融券增減張數
Pomremain 融資餘額張數
shortsaleremain 融券餘額張數
daytradeshares 當日沖銷張數
SBLBorrowing 借券張數
SBLreturn 還券張數
SBLbalance 借券餘額張數

3.主力進出

Leadertotalbuy 主力買張
Leadertotalsell 主力賣張
LeaderDifference 主力買賣超張數
Leadersharesheld 主力持股
retailtotalbuy 散戶買張
retailtotalsell 散戶賣張
retaildifference 散戶買賣超張數
operatortotalbuy 實戶買張
operatortotalSell 實戶賣張
operatordifference 實戶買賣超張數
controllertotalbuy 控盤者買張
controllertotalsell 控盤者賣張
controllerdifference 控盤者買賣超張數

4.交易數據

TradeValue 融資使用率
TradeVolumeAtBid 融資增減張數
TradeVolumeAtAsk 融券增減張數
這麼多的欄位,在使用上,XScript建議的語法如下:

Value1=getfield(“tradevalue”)[1]

或是

value1=getfield(“成交金額”)[1]

這兩種方式都可以取得昨日成交金額。

請看以下這個範例 :

value1=Getfield("成交金額")[1];
value6=Getfield("外資買賣超")[1];
value13=Getfield("投信買賣超")[1];
value18=Getfield("自營商買賣超")[1];

variable: ForcePush(0);
input: ForceType(0);

Switch ( ForceType )
Begin
Case 0: ForcePush =value6;
Case 1: ForcePush =value13;
Case 2: ForcePush =value18;
End; //==================以上取回日線資料=======================

input: Atleast(1000); //最少買超張數 //條件1
condition1 = ( close[1]-open[1] > 0.75 *high[1]-low[1] ) and //紅棒
(high[1] -low[1]) > 2 *( high[2]-low[2]) ; //且大 則回傳True給 condition1 //條件2
if q_dailyhigh > highest(high[1],3) and //用逐筆 加上 q_dailyhigh 測試創新高
volume > volume[1] //今量大於昨量
then condition2 =true; //條件3
condition3 = ForcePush >Atleast ; //買超張數大於設定最少張數
if condition1 and condition2 and condition3 then ret=1;

透過getfield這樣的語法,我們可以把台股特有的欄位拿來加入運算,不過要提醒大家,由於這些資料都是日資料, 所以運用這些欄位的腳本,在設進階警示時,其腳本的頻率必須設定為日線以上的頻率。

你可能會有興趣的文章

回應