MultiSrc多重數據整合程式


MultiSrc程式畫面請參考 2017-08-22

MultiSrc的原理跟PatsEmu/PatsRaw相同, 只是處理的資訊來源為DTS系列的輸出
目前是提供來源為PATS Tags的轉碼,可將多重來源重新整理改分配

比如多重來源的數據庫DbfId都是相同的0x0021
則可以透過交易所代碼或DBN名稱之設定重新分配使用的數據庫DbfId

數據庫的分配 (預設檔名 PATSGroup.map )

PATSGroup.map

'for Option by key as "Contract|Exchange" , the others using "Exchange" as key
'Example:
'    "CME_CBT",0xA100
'    "TOCOM",0xA200
'    "GOLD|TOCOM",0xA201
'    "XCME",0x8100
'    "O_XCME",0x8101

'"HFOCX",0xCA00    'Gcbullion Test

'可設定優先資料庫作簡易歸類
'"$Spread",0x1021    '可提供價差商品一個優先資料庫
'"$Option",0x1022    '可提供選擇權商品一個優先資料庫
'"$Index",0x1023    '可提供指數現貨外匯一個優先資料庫
'"$Unknow",0x1024    '可提供未識別(無群組)商品一個優先資料庫

'可用 O_ + Exchange 針對該交易所選擇權快速分群
'"XCME",0x8100    '有設O_XCME則這裡只有期貨
'"O_XCME",0x8101    'XCME的未分群選擇權
'"XNYM",0x8200    '有設O_XNYM則這裡只有期貨
'"O_XNYM",0x8201    'XNYM的未分群選擇權
'"XCBT",0x8300    '有設O_XCBT則這裡只有期貨
'"O_XCBT",0x8301    'XCBT的未分群選擇權

'可用 "Contract|Exchange" 針對單一選擇權進行分群
'"LO|XNYM",0x8202    '交易所XNYM的LO全部選擇權


'**********************************************************************************
'MultiSource或PatsEmu-PATS-Tags有支援參數 /GroupByDBN
'如果有下參數 /GroupByDBN 的方式, 代表分群的依據為設定來源時於DataSet指定的DBN名稱
'例如 0x0021=RMDS,0x0022=MAN,0x0020=PATS
'分群的設定方式則以DBN為依據,可為

'    "RMDS",0xD021
'    "MAN",0xD022
'    "PATS",0xD020

'如果是MultiSource的版本
'以路透為例 可以把全部的來源都設0x0021=RMDS就會全部合併在 0xD021


'假如有兩個分流,例如35307與35317分別用DataSet
'    為 0x0021=CME 與 0x0021=CME2
'同時設定有

'    "CME",0xD007
'    "CME2",0xD017

'則兩個分流分別被分配到數據庫 0xD007 與 0xD017

'倘若兩個分流,35307與35317都一樣用DataSet
'    同為 0x0021=CME
'則兩個分流分就合併在數據庫 0xD007

'PS: 如果不同來源有重疊的#1欄位商品全域完整名稱
'則看從哪個來源先收到而分配到對應數據庫後,其他重複者都歸到同一項目中
'也就是相同的#1欄位只會保留1個


;常見的設定(路透, 同時使用 /GroupByDBN 之參數設定)
;於來源設定檔 (預設 MultiSrc.set ) 中, 依設計規劃
;可將 35307與35317合併成同一數據庫, 35306與35316也合併
; 將下列有用到的DBN分別指派想要使用的數據庫DbfId即可

'    "Index",0x6001
'    "Europe",0x6002
'    "China",0x6003
'    "Japan",0x6004
'    "NYBOT",0x6005
'    "SGX",0x6006
'    "CME",0x6007
'    "CBOT",0x6008
'    "HKF",0x6009
'    "NYMEX",0x6010
'    "ICEUS",0x6011
'    "NYMEX2",0x6012    '來源若為合併則用不到
'    "SGX2",0x6016    '來源若為合併則用不到
'    "CME2",0x6017    '來源若為合併則用不到


多重數據源的設定(預設檔名 MultiSrc.set )

MultiSrc.set

#本檔案註解字元可為 # 或 ' 或 ;

;DataSet指令用來建立有什麼接收項目,收什麼資料庫內容
;設好接收項目後,預設Host來源是 127.0.0.1:SourceID 也就是連本機與SourceID內容相同的port號
;格式
;    DataSet SourceID DataSetList

;DataSet命令範例:
'DataSet 35301 0x0021=Index    #此項目接收來源為 127.0.0.1:35301
'DataSet 35302 0x0021=Euroue    #此項目接收來源為 127.0.0.1:35302
'DataSet 35303 0x0021=China    #此項目接收來源為 127.0.0.1:35303
'DataSet 36600 0x8101=CMEopt,0x8202=LO,0x8301=CBTopt    #此項目接收來源為 127.0.0.1:36600
'DataSet 35600 0x8100=XCME,0x8200=XNYM,0x8300=XCBT,0x8400=XCEC    #此項目接收來源為 127.0.0.1:35600


;HostSet指令用來修改指定項目之接收來源Host
;需先用DataSet指令建立好之SourceID才能透過HostSet指令作變更
;格式
;    HostSet SourceID HostAddress

'HostSet 35301 192.168.1.64:30021    #變更35301的來源為 192.168.1.64:30021

;格式
;    HostSet SourceID HostAddress AppUserName

'HostSet 35301 192.168.100.64:30021 GMDS01(35301)    #變更35301的來源同時以指定的名稱作為上游連線之識別


;BackupSet指令用來啟動/變更指定項目之備源Host
;需先用DataSet與HostSet指令建立好之SourceID才能正確操作
;格式
;    BackupSet SourceID HostAddress

'BackupSet 35301 192.168.100.117:30021    #設定35301的備源為 192.168.100.117:30021


;常見的設定(路透, 同時使用 /GroupByDBN 之參數設定)

;這裡的作法是將 35307與35317合併成同一數據庫, 35306與35316也合併
;於來源設定檔 (預設 MultiSrc.set ) 中,
; 將下列有用到的DBN分別指派想要使用的數據庫DbfId即可
'DataSet 35301 0x0021=Index
'DataSet 35302 0x0021=Europe
'DataSet 35303 0x0021=China
'DataSet 35304 0x0021=Japan
'DataSet 35305 0x0021=NYBOT
'DataSet 35306 0x0021=SGX
'DataSet 35307 0x0021=CME
'DataSet 35308 0x0021=CBOT
'DataSet 35309 0x0021=HKF
'DataSet 35310 0x0021=NYMEX
'DataSet 35311 0x0021=ICEUS
'DataSet 35312 0x0021=NYMEX
'DataSet 35316 0x0021=SGX
'DataSet 35317 0x0021=CME


MultiSrc常用參數

/App : 用來變更識別名稱

/GroupByDBN : 以DBN作為數據庫分類原則 ( DataSet 時所指定的代碼, 如 0x0021=RMDS 則DBN是 RMDS),
若無此參數則以交易所代碼為原則 (#1欄位 | 符號後的代碼 如 |XCME 則是 XCME), 可參考 GroupMap

/DTSport : 用來變更程式的服務port號

/Expiry : 於載入時濾除過期商品, 例如設 -15 代表到期日比當前已超過15天的就濾除

/Top : 改以頂源方式服務(#97 #98 #16 #17 #99 等欄位改由本地產生, 並會依據 #60 欄位之異動而執行清盤)

基本上用法都同其他PatsEmu, 可參考比較新的PatsEmu-CME參數說明
有差異的是 /Source 變成是用來指定多重來源設定檔 MultiSrc.set


以TickWriter為例:
TW_EmuSrc.exe 127.0.0.1:35300 0x6001=1,0x6002=2,0x6003=3,0x6004=4,0x6005=5,0x6006=6,0x6007=7,0x6008=8,0x6009=9,0x6010=10,0x6011=11 .\Data\

上述設定會把各數據庫資料儲存在對應的DBN路徑下
0x6001 : .\Data\日期\Tick\1\<#93各交易所代碼>\<#1商品完整代碼>.tic
0x6002 : .\Data\日期\Tick\2\<#93各交易所代碼>\<#1商品完整代碼>.tic
0x6003 : .\Data\日期\Tick\3\<#93各交易所代碼>\<#1商品完整代碼>.tic
 ... ... ...
0x6010 : .\Data\日期\Tick\10\交易所\商品名稱.tic
0x6011 : .\Data\日期\Tick\11\交易所\商品名稱.tic

TW_EmuSrc.exe 127.0.0.1:35300 0x6007=RMDS,0x6008=RMDS,0x6010=RMDS .\Tick\

上述設定會把據庫資料都儲存在相同的DBN路徑下
0x6001 : .\Data\日期\Tick\RMDS\<#93各交易所代碼>\<#1商品完整代碼>.tic
0x6002 : .\Data\日期\Tick\RMDS\<#93各交易所代碼>\<#1商品完整代碼>.tic
0x6003 : .\Data\日期\Tick\RMDS\<#93各交易所代碼>\<#1商品完整代碼>.tic



註解