Using FIX protocol to connect to the broker
我目前正在尝试构建一个使用 FIX 协议与代理 (currenex) 通信的程序。我将我的(自行生成的)登录消息发送到服务器并得到了一些回复。
这是我发送的
1 | 8=FIX.4.49=8835=A49=xxxxxxxx56=CNX34=152=20140718-11:40:18.24498=0108=30141=Y554=xxxxxx10=128 |
(SenderCompID 和密码被替换)
我得到了
1 | 8=FIX.4.49=7635=A34=149=CNX52=20140718-11:40:33.22456=xxxxxxxx141=Y98=0108=3010=1458=FIX.4.49=7035=h34=249=CNX52=20140718-11:40:33.22656=xxxxxxxx336=0340=210=128 |
从服务器返回。
我认为我正确地构建了登录消息(或者是吗?)。但是当我发送第二个请求 MarketDataRequest
1 | 8=FIX.4.49=13735=V49=xxxxxxxx56=CNX34=252=20140718-11:42:53.504262=363263=1264=0265=1266=N267=2269=1269=0146=155=GBP/USD554=xxxx10=013 |
我完全没有反应。我问了经纪人,他们说每次我登录后连接都会立即断开。
我认为这是一些连接问题,我尝试使用 RESTClient (Postman) 发送消息,但结果是一样的。
任何人都可以看看我的消息并指出是否有一些愚蠢的事情吗?
我所需要的只是实时汇率,所以一个简单的 FIX 消息示例将非常有帮助。非常感谢!
问候,
博
您的登录响应消息表明您的交易时段已打开 (340=2),因此这不是经纪商方面的问题。我认为您的程序在登录消息后断开与服务器的 TCP/IP 连接。 FIX 协议坚持 TCP/IP 连接必须在整个 FIX 会话期间保持活动状态 - 否则会话将被关闭。所以你需要重写你的程序来保持连接,然后发送你的请求并监听响应。不要关闭连接。
尝试使用 Minifix 工具来维护心跳和会话连接。
理想情况下,您应该得到 35=V 的请求
35=W = 市场数据-快照/全面刷新
35=X = 市场数据-增量刷新
35=Y = 市场数据请求拒绝
响应 35=A 请求,您会收到 35=3(拒绝)或 35=4(或 seq 重置)。