Tick設計與清盤
張貼日期:Jan 10, 2011 9:18:35 AM
一般來說清盤是清掉開高低收等報價欄位,備份昨日相關資料作為今日的參考(例如昨收,昨量)
平台上針對市場或商品會提供交易日的欄位,當市場交易日變更即可進行市場全商品清盤,
如果是商品本身的交易日的欄位變更,則處理單一商品的清盤
Tick的設計可分為有量與無量兩種,一般TIck指的是有量的成交明細,
因此只要攔截到商品總量異動,就依據當時報價狀態取所需的對應資訊紀錄一筆Tick,
設計上可以簡化為即時的Append紀錄,規劃時以交易日作為紀錄分隔,
以檔案系統的方式來說每一個交易日儲存於不同的路徑下,因此不須要有(Tick)清盤的動作,
無量的設計更為簡單,針對有興趣的欄位發生異動時便作與上述成交明細的類似處理即可
以 API CallBack模式範例 設計成交明細作說明,
當商品異動時,Callback ItemProcessFunction 只須針對總量的Tag,
透過API抓取目前值(fnDbfTCdll_GetCurrTagValue)與更新前之值(fnDbfTCdll_GetPrevTagValue)判斷是否相異,
如果是則透過交易日的Tag取得交易日期配合Symbol產生要儲存的對應檔案名稱或DB Table,
再針對所有欲紀錄的欄位取得現值或前值或作計算,再將明細所需資料Append上去即完成
這樣以交易日為概念運行的系統,並不需要清盤,
當產生一個新的交易日時,所有對應交易日的市場資訊為'空'的狀態,
依據來源資訊提供當日的相關資料才陸續生成商品對應與資料狀態,
因此這樣的系統也沒有商品過期下市的問題,
但必須考慮的是部份欄位預設值的問題