XS語法入門—GetField

2015-06-04 09:16:12
在XScript問市之前,市場早有很多套程式語法可供交易者使用,但我們敢於宣稱XScript是最適合台灣人使用的程式交易語法,其原因就在於, 我們可以提供台灣市場獨有的欄位,供交易者來使用。 交易者在制定台股交易策略時,往往除了開高低收成交量之外,也想要試著用台股獨特的交易資料,例如融資券及法人的進出資料, 來作為交易策略的運算基礎,為了讓交易者可以如願以償,XScript提供了一套語法,來協助交易者完成這樣的工作,本章就是來介紹這套語法及其應用。 在撰寫腳本時,當您需要使用這些台股特有的欄位時,您只要在編輯器中打一個英文字母g,不管大小寫,編輯器都會跳出一個如下面附圖中的視窗, 只要您選取getfield(插入),系統就會跳出一個選取欄位的視窗,讓您直接挑選要使用的欄位。 20150604c-01 您只要選取其中一個欄位按插入鍵,系統就自動把這個欄位帶到您的腳本中,因此,您就不需要去記那個欄位的英文名字是什麼。 例如我們如果要取得今日的外資買賣超,我們的寫法可以如下 :
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這樣的語法,我們可以把台股特有的欄位拿來加入運算,不過要提醒大家,由於這些資料都是日資料, 所以運用這些欄位的腳本,在設進階警示時,其腳本的頻率必須設定為日線以上的頻率。   更新說明:從XQ全球贏家v6.00 & XQ操盤高手v2.00開始,GetField新增了跨頻率取資料的功能,詳細說明請參考GetSymbolField