目前只有自行研發引擎,像GMDS這樣的平台系統, 才能輕鬆簡單的將所有CME Group行情集中管理與應用。 簡化CME資訊處理, 不需透過轉譯FIX 直接以格式化結構欄位處理更有效率 簡化後的程式設計方式 連續資料(Sequence)的處理範例 上述範例,針對Template格式 104, 商品 Security ID 20301125, 餵足兩天資料(2011/05/13 00:00:00 ~ 2011/05/16 02:00:00) 8.35GB的FAST Code 產生的Log Output LogTID:104 SeqId:268 (2/0) 279(0)=0 1023(1)=1 269(2)=1 286(0)=null 64(3)=0 22(0)=8 48(4)=20301125 83(5)=2 276(6)=null 270(7)=0 270(0)=2140 346(8)=1 273(9)=155203000 271(0)=300 336(10)=null 451(11)=null 451(0)=-1310 1020(12)=0 277(13)= 274(14)= 5797(15)=0 5799(16)=null TID:104 SeqId:268 (2/1) 279(0)=0 1023(1)=null 269(2)=4 286(0)=null 64(3)=0 22(0)=8 48(4)=20301125 83(5)=3 276(6)=K 270(7)=0 270(0)=2140 346(8)=0 273(9)=155203000 271(0)=null 336(10)=null 451(11)=null 451(0)=-1310 1020(12)=0 277(13)= 274(14)= 5797(15)=0 5799(16)=null TID:104 SeqId:268 (1/0) 279(0)=0 1023(1)=null 269(2)=4 286(0)=null 64(3)=0 22(0)=8 48(4)=20301125 83(5)=4 276(6)=null 270(7)=0 270(0)=2140 346(8)=0 273(9)=155253000 271(0)=null 336(10)=null 451(11)=null 451(0)=125 1020(12)=0 277(13)= 274(14)= 5797(15)=0 5799(16)=null TID:104 SeqId:268 (6/0) 279(0)=0 1023(1)=null 269(2)=7 286(0)=null 64(3)=0 22(0)=8 48(4)=20301125 83(5)=5 276(6)=null 270(7)=0 270(0)=2140 346(8)=0 273(9)=155604000 271(0)=null 336(10)=null 451(11)=null 451(0)=18 1020(12)=0 277(13)= 274(14)= 5797(15)=0 5799(16)=null TID:104 SeqId:268 (6/1) 279(0)=0 1023(1)=1 269(2)=8 286(0)=null 64(3)=0 22(0)=8 48(4)=20301125 83(5)=6 276(6)=K 270(7)=0 270(0)=2140 346(8)=0 273(9)=155604000 271(0)=null 336(10)=null 451(11)=null 451(0)=18 1020(12)=0 277(13)= 274(14)= 5797(15)=0 5799(16)=null TID:104 SeqId:268 (6/2) 279(0)=2 1023(1)=1 269(2)=0 286(0)=null 64(3)=0 22(0)=8 48(4)=20301125 83(5)=7 276(6)=K 270(7)=0 270(0)=2140 346(8)=0 273(9)=155604000 271(0)=null 336(10)=null 451(11)=null 451(0)=18 1020(12)=0 277(13)= 274(14)= 5797(15)=0 5799(16)=null TID:104 SeqId:268 (6/3) 279(0)=2 1023(1)=1 269(2)=1 286(0)=null 64(3)=0 22(0)=8 48(4)=20301125 83(5)=8 276(6)=K 270(7)=0 270(0)=2140 346(8)=0 273(9)=155604000 271(0)=null 336(10)=null 451(11)=null 451(0)=18 1020(12)=0 277(13)= 274(14)= 5797(15)=0 5799(16)=null TID:104 SeqId:268 (6/4) 279(0)=0 1023(1)=null 269(2)=2 286(0)=null 64(3)=0 22(0)=8 48(4)=20301125 83(5)=9 276(6)=K 270(7)=0 270(0)=2140 346(8)=0 273(9)=155604000 271(0)=300 336(10)=null 451(11)=0 451(0)=0 1020(12)=300 277(13)= 274(14)= 5797(15)=0 5799(16)=null TID:104 SeqId:268 (6/5) 279(0)=0 1023(1)=1 269(2)=4 286(0)=null 64(3)=0 22(0)=8 48(4)=20301125 83(5)=10 276(6)=K 270(7)=0 270(0)=2140 346(8)=0 273(9)=155604000 271(0)=null 336(10)=null 451(11)=null 451(0)=0 1020(12)=0 277(13)= 274(14)= 5797(15)=0 5799(16)=null TID:104 SeqId:268 (1/0) 279(0)=0 1023(1)=null 269(2)=5 286(0)=null 64(3)=0 22(0)=8 48(4)=20301125 83(5)=11 276(6)=null 270(7)=0 270(0)=2140 346(8)=0 273(9)=215200000 271(0)=null 336(10)=null 451(11)=null 451(0)=-895 1020(12)=0 277(13)= 274(14)= 5797(15)=0 5799(16)=null TID:104 SeqId:268 (1/0) 279(0)=0 1023(1)=null 269(2)=5 286(0)=null 64(3)=0 22(0)=8 48(4)=20301125 83(5)=12 276(6)=null 270(7)=0 270(0)=2140 346(8)=0 273(9)=41327000 271(0)=null 336(10)=null 451(11)=null 451(0)=-40 1020(12)=0 277(13)= 274(14)= 5797(15)=0 5799(16)=null Template格式104的定義(目前流量最大的格式) PS: FAST/FIX的技術不論是便利性或效率性還是頻寬節省的功能性皆遠不如本平台架構的上之新穎技術,
更糟糕的是FAST/Template的嚴謹性甚差,這樣落伍的技術若不加以淘汰只會阻礙資訊科技的發展而已! 就像看視頻, 聲音與影像會有不同調的狀況, 這樣的品質應該被接受嗎? 2014/8/7 果然CME已準備改用SBE淘汰FAST, 雖然SBE仍是不盡理想, 但同樣結構化資料的處理方式總比FAST的Template的設計較為直接簡單也有效率, 所以叫SBE 就是 Simple Binary Encoding 同時間HKEx也將要改版, 由 Unicast 變成 Multicast 真的是倒退嚕... 想也知道, 架構是抄CME 而原因則是當資料量越來越大一般發送端TCP又常常設計不良 改用UDP是最沒責任又省功夫的作法, 同時可以幫忙ISP拓展寬頻業務 台灣時間18:00開始可接收到大量的Template格式79 Security Definitionlength=2 of 0 865(0)=5 866(0)=20110224 1145(0)=223000000 length=2 of 1 865(0)=7 866(0)=20111129 1145(0)=34439738367 1150(2)=0 1150(0)=113 731(0)=2 1149(3)=0 1149(0)=9999900 1148(4)=-2 1148(0)=25 1151(0)=HWP 55(0)=H3 107(0)=HWPX1 P9300 48(0)=360198 22(5)=8 461(0)=OPAFPS length=2 of 0 865(0)=5 866(0)=20110506 1145(0)=220000000 length=2 of 1 865(0)=7 866(0)=20110804 1145(0)=478435455 1150(2)=-2 1150(0)=133 731(0)=1 1149(3)=0 1149(0)=9999900 1148(4)=-4 1148(0)=25 1151(0)=VXT 55(0)=3E 107(0)=VXTQ1 P1610 48(0)=445844 22(5)=8 461(0)=OPEFPS length=2 of 0 865(0)=5 866(0)=20110421 1145(0)=220000000 length=2 of 1 865(0)=7 866(0)=20110527 1145(0)=458435455 1150(2)=0 1150(0)=756 731(0)=2 1149(3)=0 1149(0)=9999900 1148(4)=-2 1148(0)=5 1151(0)=6E4 55(0)=XT 107(0)=6E4K1 C1335 48(0)=286535 22(5)=8 461(0)=OCAFPS length=2 of 0 865(0)=5 866(0)=20100604 1145(0)=193000000 length=2 of 1 865(0)=7 866(0)=20110603 1145(0)=458435455 1150(2)=0 1150(0)=968 731(0)=2 1149(3)=0 1149(0)=9999900 1148(4)=0 1148(0)=1 1151(0)=EPL 55(0)=X8 107(0)=EPLM1 C0247 48(0)=486870 22(5)=8 461(0)=OCAFPS length=2 of 0 865(0)=5 866(0)=20101104 1145(0)=220000000 length=2 of 1 865(0)=7 866(0)=20110909 1145(0)=458435455 1150(2)=0 1150(0)=464 731(0)=2 1149(3)=0 1149(0)=9999900 1148(4)=-2 1148(0)=5 1151(0)=6N 55(0)=2N 107(0)=6NU1 C0805 48(0)=286544 22(5)=8 461(0)=OCAFPS length=2 of 0 865(0)=5 866(0)=20110506 1145(0)=193000000 length=2 of 1 865(0)=7 866(0)=20110805 1145(0)=458435455 1150(2)=0 1150(0)=4276 731(0)=2 1149(3)=0 1149(0)=9999900 1148(4)=0 1148(0)=1 1151(0)=PLZ 55(0)=FR 107(0)=PLZQ1 C0315 48(0)=425676 22(5)=8 461(0)=OCAFPS length=2 of 0 865(0)=5 866(0)=20100924 1145(0)=193000000 length=2 of 1 865(0)=7 866(0)=20110603 1145(0)=458435455 1150(2)=0 1150(0)=754 731(0)=2 1149(3)=0 1149(0)=9999900 1148(4)=0 1148(0)=1 1151(0)=PLZ 55(0)=FR 107(0)=PLZM1 C0359 48(0)=408314 22(5)=8 461(0)=OCAFPS length=2 of 0 865(0)=5 866(0)=20110429 1145(0)=220000000 length=2 of 1 865(0)=7 866(0)=20110610 1145(0)=458435455 1150(2)=0 1150(0)=796 731(0)=2 1149(3)=0 1149(0)=9999900 1148(4)=-2 1148(0)=5 1151(0)=6C2 55(0)=XD 107(0)=6C2M1 C0950 48(0)=360193 22(5)=8 461(0)=OCAFPS length=2 of 0 865(0)=5 866(0)=20110506 1145(0)=193000000 length=2 of 1 865(0)=7 866(0)=20110805 1145(0)=458435455 1150(2)=0 1150(0)=2056 731(0)=2 1149(3)=0 1149(0)=9999900 1148(4)=0 1148(0)=1 1151(0)=CKO 55(0)=FR 107(0)=CKOQ1 P0563 48(0)=808695 22(5)=8 461(0)=OPAFPS length=2 of 0 865(0)=5 866(0)=20100903 1145(0)=220000000 length=2 of 1 865(0)=7 866(0)=20110909 1145(0)=458435455 1150(2)=0 1150(0)=704 731(0)=1 1149(3)=0 1149(0)=9999900 1148(4)=-2 1148(0)=5 1151(0)=6C 55(0)=XD 107(0)=6CU1 C0965 48(0)=323200 22(5)=8 461(0)=OCAFPS length=2 of 0 865(0)=5 866(0)=20110304 1145(0)=230000000 length=2 of 1 865(0)=7 866(0)=20120309 1145(0)=468435455 1150(2)=0 1150(0)=282 731(0)=1 1149(3)=0 1149(0)=9999900 1148(4)=-2 1148(0)=5 1151(0)=6C 55(0)=XD 107(0)=6CH2 P1000 48(0)=120987 22(5)=8 461(0)=OPAFPS length=2 of 0 865(0)=5 866(0)=20100920 1145(0)=193000000 length=2 of 1 865(0)=7 866(0)=20110909 1145(0)=458435455 1150(2)=0 1150(0)=0 731(0)=2 1149(3)=0 1149(0)=9999900 1148(4)=-2 1148(0)=25 1151(0)=RP 55(0)=X8 107(0)=RPU1 C9000 48(0)=770540 22(5)=8 461(0)=OCAFPS length=2 of 0 865(0)=5 866(0)=20100712 1145(0)=193000000 length=2 of 1 865(0)=7 866(0)=20110603 1145(0)=458435455 1150(2)=0 1150(0)=0 731(0)=2 1149(3)=0 1149(0)=9999900 1148(4)=0 1148(0)=1 1151(0)=HFO 55(0)=FR 107(0)=HFOM1 P0458 48(0)=726244 22(5)=8 461(0)=OPAFPS Template格式79的定義(基本定義資料) CFICode可提供商品大略分類(先前看路透也有提供,PATS則沒有) CFICode6 bytes populated as follows: Future Outright Byte 1 = F Byte 2 = F, C, or X Byte 3 = I, C, D, A, M, or X Byte 4 = X Byte 5 = S Byte 6 = X Option Outright Byte 1 = O Byte 2 = C, P, or X Byte 3 = A, E, or X Byte 4 = F, or X Byte 5 = P Byte 6 = S Future Spread Byte 1 = F Byte 2 = M Byte 3 = I, C, D, A, M, or X Byte 4 = X Byte 5 = S Byte 6 = X Option Spread Byte 1 = O Byte 2 = M Byte 3 = X Byte 4 = F, or X Byte 5 = P Byte 6 = S Indicates the type of security using ISO 10962 standard, Classification of Financial Instruments (CFI code) values. ISO 10962 is maintained by ANNA (Association of National Numbering Agencies) acting as Registration Authority. Please note that BM&F CFICodes do not follow these conventions, and are listed in the Appendix below. Byte 1: Future Outright or Future Spread: F = Futures Option Outright or Option Spread: O = Options Byte 2: Future Outright or Future Spread: F = Financial Futures C = Commodity Futures X = Unknown Option Outright or Option Spread: C = Call P = Put X = Unknown M = Other Byte 3: Future Outright or Future Spread: I = Indices C = Currencies D = Interest rate/notional debt. sec A = Agriculture M = Other Option Outright or Option Spread: A = American E = European X = Unknown Byte 4 Future Outright or Future Spread: X = Unknown Option Outright or Option Spread: F = Futures X = Unknown Byte 5: Future Outright or Future Spread: S = Standardized terms Option Outright or Option Spread: P = Physical Byte 6: Future Outright or Future Spread: X = Not applicable Option Outright or Option Spread: S = Standardized terms 透過PatsEmu-CME模擬成目前PATS資訊架構,讓以下之系統直接相容運作 CME資訊架構 CME資訊架構
單一 URDS ---> TSHS-TfsRaw ---> PatsEmu-CME 拓展 TSHS-TfsRaw ---> TSHS-GW ---> PatsEmu-CME 延伸/應用 PatsEmu-CME ---> UniDbf-SB (Backup/Repeater) , TSHS-UniDbf (for CUBE) , TSHS-UniDbf-PATS-OBG (for INSKW) 商品基本資料,報價,深度行情都解開了! 過來是整理的功夫, 共有36萬多檔商品 Template 103 解碼範例Here is a FAST message that uses template ID 103 c0e71233b7235a3e2a1f4e60cf094a70de837678c08080b2800424e80f0edf0746ff5f3606b88380808101960a 02f7822038e0808080ff808081800a02f882805000a081b18080a39080 Parsing template byte: 1 Received templateID: 103 Parsing PMAP: 1 M M M M M 0 M M ID PMAP Field Operator Optional Current Value FIX HEX 0 1 U32 Copy false null 103 e7 1128 M String Constant false 9 1128=9 35 M String Constant false X 35=X 49 M String Constant false CME 49=CME 34 M U32 none false null 301495 34=301495 12 33 b7 52 M U64 none false null 20101214200115279 52=20101214200115279 23 5a 3e 2a 1f 4e 60 cf 43 0 String Default true null null 75 M U32 none false null 20101214 75=20101214 9 4a 70 de 268 M U32 none false null 3 268=3 83 Parsing PMAP: 1 1 1 M 0 M 1 1 0 M 1 M M 1 1 M 1 0 0 0 1 0 279 1 U32 Copy false 1 0 279=0 80 1023 1 U32 Default true 1 0 80 269 1 String Copy false 0 2 269=2 b2 286 M U32 none true null 0 80 64 0 U32 Default true null N/A 22 M U32 Constant false 8 22=8 48 1 U32 Copy false null 70248 48=70248 4 24 e8 83 1 U32 Increment false null 247647 83=247647 f e df 270 0 I32 Default false 0 N/A 270 M I64 Delta false null 123775 270=123775 7 46 ff 273 1 U32 Copy false null 200115000 273=200115000 5f 36 6 b8 271 M I32 Delta true null 2 271=2 83 346 M U32 Delta true null 0 80 336 1 String Default true 2 null 80 451 1 I32 Default true null 0 81 451 M I64 Delta false null 150 451=150 1 96 1020 1 U32 Default true null 164214 1020=164214 a 2 f7 277 0 String Default true null null 274 0 String Default true null null 276 0 String Default true null null 5797 1 U32 Default true null 1 5797=1 82 5799 0 String Default true 1 5799=1 Parsing PMAP: 0 1 0 M 0 M 0 0 0 M 0 M M 1 1 M 1 0 0 0 1 1 279 0 U32 Copy false 0 N/A 279=0 1023 1 U32 Default true 1 0 80 269 0 String Copy false 2 269=2 286 M U32 none true null 0 80 64 0 U32 Default true null N/A 22 M U32 Constant false 8 22=8 48 0 U32 Copy false 70248 N/A 48=70248 83 0 U32 Increment false 247647 N/A 83=247648 270 0 I32 Default false 0 N/A 270 M I64 Delta false 123775 0 270=123775 80 273 0 U32 Copy false 200115000 N/A 273=200115000 271 M I32 Delta true 2 -1 271=1 ff 346 M U32 Delta true null 0 80 336 1 String Default true 2 null 80 451 1 I32 Default true null 0 81 451 M I64 Delta false 150 0 451=150 80 1020 1 U32 Default true null 164215 1020=164215 a 2 f8 277 0 String Default true null null 274 0 String Default true null null 276 0 String Default true null null 5797 1 U32 Default true null 1 5797=1 82 5799 1 String Default true 1 null 80 Parsing PMAP: 1 0 1 M 0 M 0 0 0 M 0 M M 0 0 M 0 0 0 0 0 1 279 1 U32 Copy false 0 1 279=1 81 1023 0 U32 Default true 1 N/A 1023=1 269 1 String Copy false 2 1 269=1 b1 286 M U32 none true null 0 80 64 0 U32 Default true null N/A 22 M U32 Constant false 8 22=8 48 0 U32 Copy false 70248 N/A 48=70248 83 0 U32 Increment false 247648 N/A 83=247649 270 0 I32 Default false 0 N/A 270 M I64 Delta false 123775 0 270=123775 80 273 0 U32 Copy false 200115000 N/A 273=200115000 271 M I32 Delta true 1 34 271=35 a3 346 M U32 Delta true null 15 346=15 90 336 0 String Default true 2 336=2 451 0 I32 Default true null N/A 451 M I64 Delta false 150 1020 0 U32 Default true null N/A 277 0 String Default true null null 274 0 String Default true null null 276 0 String Default true null null 5797 0 U32 Default true null N/A 5799 1 String Default true 1 null 80 => 1128=9|35=X|49=CME|34=301495|52=20101214200115 279|75=20101214|268=3| 279=0|269=2|22=8|48=70248|83=247647|270=123775|273=200115000|271=2|451=150|1020=164214|5797=1|5799=1| 279=0|269=2|22=8|48=70248|83=247648|270=123775|273=200115000|271=1|451=150|1020=164215|5797=1| 279=1|1023=1|269=1|22=8|48=70248|83=247649|270=123775|273=200115000|271=35|346=15|336=2| Template 79 解碼範例Here is the decoded FAST message of template ID 79 (stop-bit encode hex 0xcf) 5ff3cf8f235a3e44260a6197908386094a69e03f3556c1830050bb81810745e9b180810619f945d345 d345534db10450ed4646495853d8b558434dc5808180808335b081805553c4820fd15553c4 8082808ac68080313230b08084c098b1c080b4c08031b40c23938199ff00fd80808180b7808080 8049504ed48080808080094a70e580 Parsing template byte: 1 Received template ID: 79 Parsing PMAP: 1 M M M M M 0 M M 1 M M 1 M 1 M M M M M 1 M M M M 1 M M M M 1 M M M M M M M M M M M M M M 1 M 1 M M M 0 M M M 0 1 M 1 M M M M M M M M M M ID PMAP Field Operator Optional Current Value FIX HEX 0 1 U32 Copy false null 79 cf 1128 M String Constant false 9 1128=9 35 M String Constant false d 35=d 49 M String Constant false CME 49=CME 34 M U32 none false null 15 34=15 8f 52 M U64 none false null 20101221193003159 52=20101221193003159 23 5a 3e 44 26 a 61 97 43 0 String Default true null null 911 M U32 none true null 15 911=15 90 864 M U32 none true null 2 864=2 83 NO PMAP Defined: M M M 865 M U32 Delta true null 5 865=5 86 866 M U64 Delta true null 20100319 866=20100319 9 4a 69 e0 1145 M U64 Delta true null 133000000 1145=133000000 3f 35 56 c1 NO PMAP Defined: M M M 865 M U32 Delta true 5 2 865=7 83 866 M U64 Delta true 20100319 10298 866=20110617 0 50 bb 1145 M U64 Delta true 133000000 0 1145=133000000 81 1150 1 I32 Default true -2 0 81 1150 M I64 none false null 123625 1150=123625 7 45 e9 731 M String none true null 1 731=1 b1 1149 1 I32 Default true -2 0 80 1149 M I64 none false null 1148 1 I32 Default true -2 0 81 1148 M I64 none false null 101625 1148=101625 6 19 f9 1151 M String none true null ES 1151=ES 45 d3 55 M String none true null ES 55=ES 45 d3 107 M String none true null ESM1 107=ESM1 45 53 4d b1 48 M U32 none true null 75884 48=75884 4 50 ed 22 1 U32 Constant true 8 22=8 461 M String none true null FFIXSX 461=FFIXSX 46 46 49 58 53 d8 462 M String none true null 5 462=5 b5 207 M String none true null XCME 207=XCME 58 43 4d c5 9853 M String none true null null 80 9850 1 I32 Default true -2 0 81 9850 M I64 none false null 0 9850=0 80 454 M U32 none true null 0 454=0 80 827 M U32 none true null 2 827=2 83 1147 M String none true null 50 1147=50 35 b0 202 1 I32 Default true -2 0 81 202 M I64 none false null 0 202=0 80 947 M String none true null USD 947=USD 55 53 c4 562 M U64 none true null 1 562=1 82 1140 M U64 none true null 2000 1140=2000 f d1 15 M String none true null USD 15=USD 55 53 c4 120 M String none true null null 80 1141 M U32 none true null 1 1141=1 82 Parsing PMAP: 0 M 1022 0 String Default false GBX 1022=GBX 264 M U32 none false null 10 264=10 8a 1142 M String none true null F 1142=F c6 762 M String none true null null 80 711 M U32 none true null 0 711=0 80 1143 M String none true null 1200 1143=1200 31 32 30 b0 1144 M String none true null null 80 870 M U32 none true null 3 870=3 84 Parsing PMAP: M 1 871 M U64 Delta false null 24 871=24 98 872 1 String Copy true null 1 872=1 b1 Parsing PMAP: M 1 871 M U64 Delta false 24 0 871=24 80 872 1 String Copy true 1 4 872=4 b4 Parsing PMAP: M 1 871 M U64 Delta false 24 0 871=24 80 872 1 String Copy true 4 14 872=14 31 b4 200 M U64 none true null 201106 200=201106 c 23 93 969 1 I32 Copy true -2 0 81 969 M I64 Delta false null 25 969=25 99 1146 1 I32 Default true -2 -1 ff 1146 M I64 none false null 125 1146=12.5 0 fd 779 M U64 none true null 0 80 980 M String none true null null 80 9787 0 I32 Default true -2 N/A 9787 M I64 none false null 1 9787=0.01 81 555 M U32 none true null 0 555=0 80 1180 M String none true null 7 1180=7 b7 9779 0 String Constant true Y null 5770 1 I32 Default true 0 0 80 5770 M I64 none false null 1435 1 U32 Default true 1 0 80 1439 M U32 none true null 0 80 231 M U32 none true null 0 80 996 M String none true null IPNT 996=IPNT 49 50 4e d4 5818 M U64 none true null 0 80 5819 M U64 none true null 0 80 5849 M U64 none true null 0 80 5791 M U32 none true null 0 80 5792 M U32 none true null 0 80 5796 M U32 none true null 20101220 5796=20101220 9 4a 70 e5 1234 M U32 none true null 0 1234=0 80 => 1128=9|35=d|49=CME|34=15|52=20101221193003159|911=15|864=2|865=5|866=20100319|1145=133000000|865=7|866=20110617| 1145=133000000|1150=123625|731=1|1148=101625|1151=ES|55=ES|107=ESM1|48=75884|22=8|461=FFIXSX|462=5| 207=XCME|9850=0|827=2|1147=50|202=0|947=USD|562=1|1140=2000|15=USD|1141=1|1022=GBX|264=10| 1142=F|1143=1200|870=3|871=24|872=1|871=24|872=4|871=24|872=14|200=201106|969=25|1146=12.5|9787=0.01| 1180=7|996=IPNT|5796=20101220| |
CME FAST/Template Decode
張貼者:2011年6月13日 上午10:24Wei-Xiuang Wang [ 已更新 2018年12月5日 下午6:32 ]目前只有自行研發引擎,像GMDS這樣的平台系統, 才能輕鬆簡單的將所有CME Group行情集中管理與應用。 簡化CME資訊處理, 不需透過轉譯FIX 直接以格式化結構欄位處理更有效率 簡化後的程式設計方式 連續資料(Sequence)的處理範例 上述範例,針對Template格式 104, 商品 Security ID 20301125, 餵足兩天資料(2011/05/13 00:00:00 ~ 2011/05/16 02:00:00) 8.35GB的FAST Code 產生的Log Template格式104的定義(目前流量最大的格式) PS: FAST/FIX的技術不論是便利性或效率性還是頻寬節省的功能性皆遠不如本平台架構的上之新穎技術,
更糟糕的是FAST/Template的嚴謹性甚差,這樣落伍的技術若不加以淘汰只會阻礙資訊科技的發展而已! 就像看視頻, 聲音與影像會有不同調的狀況, 這樣的品質應該被接受嗎? 2014/8/7 果然CME已準備改用SBE淘汰FAST, 雖然SBE仍是不盡理想, 但同樣結構化資料的處理方式總比FAST的Template的設計較為直接簡單也有效率, 所以叫SBE 就是 Simple Binary Encoding 同時間HKEx也將要改版, 由 Unicast 變成 Multicast 真的是倒退嚕... 想也知道, 架構是抄CME 而原因則是當資料量越來越大一般發送端TCP又常常設計不良 改用UDP是最沒責任又省功夫的作法, 同時可以幫忙ISP拓展寬頻業務 台灣時間18:00開始可接收到大量的Template格式79 Template格式79的定義(基本定義資料) CFICode可提供商品大略分類(先前看路透也有提供,PATS則沒有) 透過PatsEmu-CME模擬成目前PATS資訊架構,讓以下之系統直接相容運作 CME資訊架構 商品基本資料,報價,深度行情都解開了! 過來是整理的功夫, 共有36萬多檔商品 |