PATSAPI 有一個 SettlementUpdate callback (以下簡稱 event)
event 中的資訊, 會有以下主要欄位
日期(Date)
時間(Time)
價格(Price)
種類(SettlementType) 以下簡稱 ST
我們訂閱後, PATS會先刷來各種 ST 的價格 (我們視為 Init)
之後 PATS 會依結算等, 再送來各 ST 的價格 (我們視為 Realtime)
以下是原始 PATS 定義的 ST (SettlementType)
0 = ptStlLegacyPrice
7 = ptStlCurPrice
21 = ptStlLimitUp
22 = ptStlLimitDown
23 = ptStlExecDiff
24 = ptStlYDSPPrice
25 = ptStlNewPrice
26 = ptStlRFQiPrice
27 = ptStlRFQtPrice
28 = ptStlIndicative
MDC dsPATS 的結算處理如下:
event 發生
若是 Init
我們會將 ST=24 的價格, 放入 "昨日結算價" Basic.PreSettlementPrice
若為 Realtime
我們會將 ST=7,25 的價格, 視為 "結算價" Basic.SettlementPrice
但因 PATS 處理方式很亂七八糟,會亂送來
(例如都跨交易日了,都轉到昨結了,還是會在盤中送來結算...等)
所以我們要將 Date / Time 的值拿來判斷,若值沒變動
我就視為亂送的資料,不予處理。