1. Gateway上用 MAP 8801=6600 只是示範,可以依自己的概念作設計 6600是代表一個主機HOST可以是Trader Server或GateWay, 於你所看到的設定中,是於MAP之前透過 ADD 6600=127.0.0.1:22820 作編號給予代碼6600表示主機 127.0.0.1:22820 而8801是指一個Channel的交易通路, MAP 8801=6600 代表所有下單到通路 8801 Channel 的單會被送往 127.0.0.1:22820 GateWay上可以設定多台下單Server主機HOST(或GateWay),可以一一透過 ADD 給一個編號作代碼 而各通路Channel實際路由主機或GateWay則透過MAP給予指示 例如 ADD 6600=127.0.0.1:22820 ADD 6601=test1.trader.com.tw:33388 ADD 4567=test2.trader.com.tw:33388 ADD 8801=test3.trader.com.tw:33388 MAP 8801=6600 MAP 8802=6600 MAP 8803=6600 MAP 6601=6601 MAP 6602=4567 MAP 6603=8801 以上代表 通路Channel 8801,8802,8803的單皆會被下至 127.0.0.1:22820 通路Channel 6601 的單會被下至 test1.trader.com.tw:33388 通路Channel 6602 的單會被下至 test2.trader.com.tw:33388 通路Channel 6603 的單會被下至 test3.trader.com.tw:33388 MAP時的Channel編號與ADD時的主機編號是兩回事, 上面故意作有重複的示範供參考思考 而如果某個HOST例如 test2.trader.com.tw:33388 其實又是個GateWay 則再依該GateWay上設定之原則作通路轉送 2. Server上的 O X F 基本上是不需要用的,也不會造成單子送不出去(請再確認) O 可以讓視窗立即更新(原本每秒自動會刷新) F 是字體環境切換,原本會顯示簡體字,按了變成繁體環境則會看到亂碼,再按就又恢復簡體 X 完全沒用 3. 所有單下出去只要沒收到Inser成功就是失敗 Status=0只是在告知通路的運作情形 Status=1才是告知下單是否成功 所有通路正常下一定會收到Status=1的結果 而如果通路中間有某個GateWay或最末端的Trader Server是掛掉的 會於Status=0的狀態下即會告知失敗 不會有任何單是卡在GateWay或TraderServer上的而是直接回覆失敗!! (訊息也如之前所提, Result=0: faild! , 1: success , 2: Disabled{目前無法交易} , 3: UnMapping{系統未配置的頻道} ) 你說Server掛掉,應該會收到Status=0,Result=2 請麻煩再確認一下,可以的話把逐筆接收到之訊息Log附上 (以上,代表不會有卡單問題,也沒有系統重開重送單的問題,只有AP收到失敗的處理方式而已) Console只是一個使用dll的範例程式 http://site.edu.wwx.tw/ftw/Home/pei-zi-jiao-yi-tong-lu-xi-tong/atsc-api 透過API可以指定直接連結ATS或連ATG 此Console範例是 if (fnATSCdll_Start("localhost:22821")) 所以是連 127.0.0.1 的GateWay 因此同一機器上所跑的GateWay怎麼設就怎麼送 實際上AP設計就是透過API來操作 (Console只是示範API的用法而已) 當然也可以把GateWay的設定改成放在ini檔中便於改設定, 程式則改由ini檔讀入, 如果有需要也可增加命令列參數是可以指定GateWay的格式方式... 也就是參考這隻Console程式可以自行開發任意需求的應用程式,不限開發工具, 未必要以命令列方式來應用, 也是能設計成有GUI介面操作的視窗軟體(例如像是IB提供的測試工具) PS: 參考於Python上使用DLL裡的API呼叫範例, 只要有好用的dll, 外行人也都能輕鬆開發自己合用的專屬應用程式 |