如何運用Print指令來抓程式的臭蟲
選擇單元...
XS語法進階應用
單元目錄
單元目錄
進階功能介紹
1-1 SetTotalBar資料讀取範圍與腳本執行的關係
1-2 SetBackBar指定頻率設定資料筆數
1-3 探討變數序列的觀念:幾天前黃金交叉商品為例
1-4 如何運用Print指令來抓程式的臭蟲
1-5 談OutputField跟GetFieldDate這兩個函數
1-6 計算區間漲跌幅的自訂函數
1-7 盤中即時資料欄位的應用
1-8 Tick欄位的應用
1-9 台股逐筆撮合的連續成交Tick序列
1-10 選股中心創掛牌新高與大單欄位的應用
1-11 集保相關欄位調整
1-12 如何使用函數取得商品的實際庫存數量
1-13 XS在可轉債的應用
1-14 XS函數「isfirstcall」說明
1-15 XScript 編輯器已支援 *.xs 副檔名的檔案
大家在寫腳本的時候,有沒有常常跟小編一樣,遇到跑出來的結果跟原先預期不一樣的情形?今天小編就要來跟大家介紹一個抓臭蟲(Bug)的工具:這個工具就叫做Print指令。Print指令除了可以用來抓臭蟲之外,他也可以幫我們把腳本中運算完的數據輸出成文字檔,方便我們把運算結果儲存下來或是再做其他的應用。首先來介紹基本的語法:
Value1 = Average(Close, 5); Print("Date=", Date, "Close=", Close, "Value1", Value1);在Print指令內,我們可以把想要印出來的欄位一股腦的寫在裡面,可以印出字串,也可以印出數值。然後當腳本執行時,在XScript編輯器內的下方的「執行」視窗內,就可以即時看到印出來的數值。在這裡可以同時看到不同腳本執行時印出來的內容,商品欄位顯示的是指標目前的商品,或是策略雷達執行的商品,腳本就是有使用到Print指定的腳本名稱:有了這個指令之後,以後如果腳本跑出來的結果跟你想的不一樣的話,那就直接在腳本內加上Print指令,把想要看到的數值印出來就方便許多了!Print的結果,除了在XScript編輯器內可以看到之外,另外在XS的安裝目錄底下也會產生檔案,檔案的路徑是在C:\SysJust\XQ2005\XS\Print底下,檔案的名稱,預設是腳本名稱_商品名稱.log:如果使用到Print的腳本很多的話,那這個目錄內就會越來越亂。有辦法控制Print產出的檔案的位置或是名稱嗎?
密技1:指定輸出檔案路徑
在Print指令的第一個參數位置,加上file(“檔案路徑")的參數,就可以指定print出來的檔案要放置的路徑。例如,我們想輸出成交價至C:\Print下,可以這樣寫:print(file("C:\print\"),date,symbol,close);這個腳本輸出的檔案就會移到C:\Print下。
密技2:指定輸出檔案名稱
不過,既然可以指定輸出檔案路徑,當然也可以指定輸出的檔案名稱。一樣是透過file這個參數來指定輸出的檔案名稱。例如,我們想把檔案名稱改為“商品代碼.log”,可以這樣寫:print(file("c:\Print\[Symbol].log"),date,symbol,close);有沒有注意到我們上一個範例怎麼指定商品代碼的?用[Symbol]。只要是在file裡面寫了[Symbol]的位置,在輸出的時候就會自動用當時的商品代碼來取代。另外,你也可以使用[ScriptName]、[Freq]或[Date]。這些特殊字串在指定路徑或檔名的時候都可以用,這樣子我們可以輸出的變化就很多了。如果我們想按商品代碼來整理數據,可以這樣寫:
print(file("C:\print\[Symbol]\"),date,symbol,close);這樣子可以把不同腳本輸出的資料都集中到個別商品的目錄當中。或者是,我們想把所有數據都輸出到同一個檔案print.log中,可以這樣寫:
print(file("C:\print\print.log"),date,symbol,close);有了這些功能,我們就可以控制檔案輸出的位置,不管是要把執行結果存下來,或是跟其他程式共用檔案,都可以輕易的辦到。小編要在這裡告訴大家一個好消息,在XQ操盤高手 2.40 改版中,Print指令已可在回測與選股中心使用!由於回測與選股中心Print指令是從雲端上運行,故使用此功能跑回測時,執行回測的時間會較久一些,此特性請大家注意一下囉!回測或選股腳本撰寫好Print指令後,在回測設定畫面下方記得勾選「啟動腳本內Print指令」在選股中心畫面右上角記得勾選「啟動腳本內Print指令」,即可在執行回測或選股策略後,將所需要檢查的數據輸出,方便查找問題的原因。希望從此之後,大家都可以鎮定的面對臭蟲,Happy Coding and Happy Hunting。