資訊系統/架構/產品‎ > ‎KGQ‎ > ‎GMDS相關文章‎ > ‎GMDS‎ > ‎

TickToChart 轉分線規格

張貼者:2011年3月8日 下午5:49Wei-Xiuang Wang   [ 已更新 2017年12月17日 下午10:36 ]

轉檔程式提供三種操作方式
  1. 針對單一Tick,轉出指定之分線 XML / JSON 資料檔案
  2. 針對指定路徑檢查有異動之Tick檔作轉檔處理
  3. 針對日排程於根路徑下檢查當日與昨日有異動之Tick檔處理

GMDS可透過LinkDog安排每間隔時間(例如15分鐘)自動作日排程轉分線之處理,
每次轉檔動作進行時只要Tick於上次轉檔之後有異動過便會持續更新轉檔內容

PATS為例資料位置與檔名如
Tick:
D:\FileDS\YYYYMMDD\Tick\PATS\<Exchange>\<Symbol>
XML:
D:\FileDS\YYYYMMDD\KChart\PATS\<Exchange>\<Symbol>
Tick延伸附檔名為 .tic
XML延伸附檔名為 .##Min.xml
 (##1,5,10,為指定轉出之幾分線類型)

Usage1:
        TickToChart <MinSet> <TickFile> <XMLfile>
Example:
        TickToChart "1,5,60" "1103MINI S&P.tic" "1103MINI S&P"
Example Output file(s):
 1103MINI S&P.1Min.xml
 1103MINI S&P.5Min.xml
 1103MINI S&P.60Min.xml

Usage1針對指定之Tick, 轉出指定檔名之XMLK資料
不作是否有異動的檢查,一律進行轉檔置換內容

Usage2:
        TickToChart <MinSet> /PATH TheTickPathWhereForTrans
Example:
        TickToChart <MinSet> /PATH D:\FileDS\20110308\
Example Output file(s):
 All *.tic in 'D:\FileDS\20110308\Tick\'
 will trans to *.##Min.xml in 'D:\FileDS\20110308\KChart\'

Usage2指定資料夾進行轉檔
針對該資料夾下的Tick\資料夾內所有的*.tic包含子路徑
若比對檔案有異動都將重新轉檔至
指定資料夾下的KChar\,Tick\之檔名相對應之檔案

Usage3:
        TickToChart <MinSet> /DAY TheTickRootWhereForTrans
Example:
        TickToChart <MinSet> /DAY D:\FileDS\
Example Output file(s):
 All *.tic in 'D:\FileDS\YYYYMMDD\Tick\'
 will trans to *.##Min.xml in 'D:\FileDS\YYYYMMDD\KChart\'
 where YYYYMMDD is Today and Yestarday

Usage3指定根路徑將當日與昨日的資料夾進行指定資料夾轉檔處理

(2017-12-18新增)
Advence <MinSet> Using:
        <MinSet[,para1[,para2[,...]]]>
Example:
        1,5,60,/json
This will make JSON output instead of XML output,
 and ext .xml will replace as .json too.


於<MinSet>的部分有擴充參數設定功能,例如 /json 可改用 .json 檔之輸出取代 .xml 檔

每日資料Tick與KChart存檔位置範例

檔名與路徑位置範例

GMDS上TickToChart排程處理

Tick檔案

內容為純文字,每行為一筆Tick,欄位以','隔開(如同EXCEL的CSV檔)
欄位依序為 時間,買價,賣價,成交價,單量,總量
時間為DEC格式, 如 08:10:20 則為 81020 半夜 00:12:34 為 001234
這裡以CME之習慣 CST (GMT - 06:00) 作為Tick時間依據便於比對,
取PATS上CME之商品MINI S&P觀察,此商品開盤約是 15:30 CST 為24HR可交易商品
擷取附近Tick內容
151527,1300,1300.25,1300,3,1392922
151527,1300,1300.25,1300,5,1392927  <== 總量最大的最後一筆Tick
153028,1300,1300.25,1300.25,10,188  <== 15:30:28 總量變小,重新累計
153028,1300,1300.25,1300,20,208
153030,1300,1300.25,1300,1,209
如先前示範,GMDS可以透過Bias之設定,讓商品於正確的區域時間下正確作交易明細之分日
此商品之 Bias 應該會是 -150,以此為設定值
商品的交易時間會變為 00:00~23:45 (GMT + 02:30)
而上面紅色151527的Tick會成為23:45:27總量最大的當日最後一根

目前時間的部份實際上已改為採用GMT,便於依據各時區重新調整以當地時間顯示

分線資料檔

內容如
<?xml version="1.0" encoding="utf-8" ?>
<QUOTES>
<QUOTE>
<CHARTDATA TYPE="1Min" TIME="2011-02-03 06:00:00.000 GMT">1Min</CHARTDATA>
<CHARTITEM T="0001" O="1302.25" H="1302.25" L="1302.25" C="1302.25" V="45985" N="5" />
<CHARTITEM T="0002" O="1302.25" H="1302.25" L="1302.25" C="1302.25" V="30" N="2" />
...
</QUOTES>
</QUOTE>

CHARTITEM中
T 為 時間(HHMM)
O 為 Open
H 為 High
L 為 Low
C 為 Close
V 為 增量
N 為 成交筆數

轉檔程式 ( 下載 )

限制指定
可轉1~59 Min任意指定之分線資料,
可轉1440分鐘以下 60 Min的倍數資料
例如 <MinSet> 為 "1,5,60" 則轉出 1分鐘,五分鐘,1小時 三個分線XML資料檔
轉檔程式針對時間或總量有發生換日的狀況皆有作安排處置,

發生總量換日的狀況說明,轉出結果為

<CHARTITEM T="0001" O="1302.25" H="1302.25" L="1302.25" C="1302.25" V="45985" N="5" />
<CHARTITEM T="0002" O="1302.25" H="1302.25" L="1302.25" C="1302.25" V="30" N="2" />
...
<CHARTITEM T="1515" O="1301.5" H="1301.5" L="1300.25" C="1300.25" V="7875" N="143" />
<CHARTITEM T="1516" O="1300" H="1300.5" L="1299.75" C="1300" V="4139" N="114" />   <== 總量最大的最後一筆Tick在這裡面
<CHARTITEM T="1531" O="1300.25" H="1300.25" L="1300" C="1300" V="500" N="28" />
<CHARTITEM T="1532" O="1300" H="1300" L="1299.75" C="1300" V="202" N="20" />
<CHARTITEM T="1533" O="1299.75" H="1300" L="1299.5" C="1299.5" V="396" N="17" />
...
<CHARTITEM T="2359" O="1299" H="1299" L="1299" C="1299" V="5" N="2" />
<CHARTITEM T="2400" O="1299" H="1299" L="1298.75" C="1299" V="46" N="6" />

發生時間換日的狀況說明,轉出結果為

<CHARTITEM T="1531" O="1300.25" H="1300.25" L="1300" C="1300" V="500" N="28" />
<CHARTITEM T="1532" O="1300" H="1300" L="1299.75" C="1300" V="202" N="20" />
...

<CHARTITEM T="2359" O="1299" H="1299" L="1299" C="1299" V="5" N="2" />
<CHARTITEM T="2400" O="1299" H="1299" L="1298.75" C="1299" V="46" N="6" />
<CHARTITEM T="0001" O="1302.25" H="1302.25" L="1302.25" C="1302.25" V="19813" N="5" />
<CHARTITEM T="0002" O="1302.25" H="1302.25" L="1302.25" C="1302.25" V="30" N="2" />
...
<CHARTITEM T="1515" O="1301.5" H="1301.5" L="1300.25" C="1300.25" V="7875" N="143" />
<CHARTITEM T="1516" O="1300" H="1300.5" L="1299.75" C="1300" V="4139" N="114" />

以上兩個結果除了時間序不一樣外,其餘結果一致,僅01:00這一筆會因為計算點依據不同而有量不一樣的結果

改以日K作比對,僅有開和收(應該)會有不一樣而已, 高、低、量與成交筆數都會一致
1103MINI S&P.tic
<CHARTITEM T="2400" O="1302.25" H="1305.5" L="1296.75" C="1299" V="1392927" N="33815" />
1103MINI Test.tic
<CHARTITEM T="2400" O="1300.25" H="1305.5" L="1296.75" C="1300" V="1392927" N="33815" />

轉檔依據

1. 轉檔程式轉出之XML檔會依據來源Tick檔案時間做標記,作為轉檔判斷依據,
    當GMDS週期性檢查XML檔不存在或Tick檔有異動時則進行轉檔

2. KD的價位主要依據成交價,若是外匯之類無成交價的會自動改以買賣均價替代成交價

GMDS上的設定範例

版本更動:
2017-12-18
2017-11-23


註解