我目前正在尝试使用FIX协议构建程序以与代理(currenex)进行通信。我将(自生成的)登录消息发送到服务器并返回了一些内容。 这就是我发送的内容
8=FIX.4.49=8835=A49=xxxxxxxx56=CNX34=152=20140718-11:40:18.24498=0108=30141=Y554=xxxxxx10=128
(更换了SenderCompID和密码) 我得到了
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
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消息示例将非常有用。非常感谢!
此致 博
答案 0 :(得分:2)
您的登录响应消息表明您的交易会话已打开(340 = 2),因此这不是经纪人方面的问题。我认为您的程序在登录消息后断开与服务器的TCP / IP连接。 FIX协议坚持在整个FIX会话期间必须保持TCP / IP连接 - 否则会话将被关闭。所以你需要重写你的程序以保持连接活着,只需发送你的请求并听取响应。不要关闭连接。
答案 1 :(得分:0)
尝试使用Minifix工具,它将维护心跳和会话连接。
理想情况下,对于35 = V请求,您应该得到
35 = W =市场数据快照/完全刷新
35 = X =市场数据 - 增量刷新
35 = Y =市场数据请求拒绝
你得到35 = 3(拒绝)或35 = 4(或seq重置)以响应35 = A请求。