您好:
由於盤中新的 tick 不斷出現。
網頁有說:q_Last = [最近.tick.成交價], q_TickVolume = [最近.tick.單量]。
如果想要記住 [上一筆.成交價] 或 [上一筆.單量] 到某變數,請問是否有語法可以做到呢?
謝謝~
您好:
由於盤中新的 tick 不斷出現。
網頁有說:q_Last = [最近.tick.成交價], q_TickVolume = [最近.tick.單量]。
如果想要記住 [上一筆.成交價] 或 [上一筆.單量] 到某變數,請問是否有語法可以做到呢?
謝謝~
Hi yifei
目前可以取得上一個tick的方式,是使用getfield語法直接去指定頻率"tick"
不過目前tick的資料僅支援近兩周,因此如果使用日頻率搭配逐筆洗價,其資料讀取筆數最多僅能至10(10個交易日)
因此會依照您的雷達腳本而有不同()。
例如您需要的成交價&量,其資料欄位都支援tick頻率。
您可以使用以下語法作業,請參考getfield語法使用
以下的value1[1] value2[1],就會是前一筆tick的資料喔~
value1=getfield("close","tick");
value2=getfield("volume","tick");
小幫手有替您製作範例,請您參考,謝謝。

您好: 在此想到 2 個延伸問題:
問題1) 如果想取得「每10 tick」的 [成交價, 單量]。請問語法應該怎麼給?謝謝~
問題2) 假設:我想用程式去讀 [台指期 tick],然而開盤不久,今天的 tick 剛剛出現 100 個。
而我固定用 for 迴圈回溯 1000 個 tick 。以便讀取 [今天份] 的 [成交價, 單量]。
但是希望 for 迴圈讀到不是今天的 tick 就離開迴圈,請問應該怎麼辦?謝謝~
目前想到的部份語法如下:
var: count(0);
tick_p = getfield("close","tick");
tick_v = getfield("volume","tick");
for n = 1 to 1000 begin
// 這裡不知該放什麼碼,才能「判斷現在讀到的不是今天的 tick 於是離開迴圈」???
if tick_p[n] > tick_p[n-1] then count=count+1;
end;
Hi yifei
其實因為XS的設計是屬於序列資料,因此如果只是要讀取今日的成交價與量
您可以直接使用getfield("close","D")跟getfield("volume","D")去處理
在日頻率搭配逐筆洗價的過程中,只要有新的tick進來,資料就會更新
-----------------------------------------------------------------------------------------------
系統不會記錄以前跑過了哪一些tick,無論在哪一個頻率下,即使使用getfield("close","tick");
也只會在未來有tick進來洗價的時候紀錄(執行中),先前的資料都會以您選定的頻率存在
例如現在已經9點了,您從9點執行雷達(日頻率逐筆洗價),就會從9點開始紀錄您的tick,是無法往前抓到每一個過往的tick的
9點以前的資料就會只有日頻率喔~
可能要請您在敘述您想要做什麼,小幫手才比較好給您建議,謝謝。
3 評論