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