我已经编译并控制了quickfix(http://www.quickfixengine.org)源代码和示例。我认为一个好的起点是编译(C ++)并运行'executor'示例,然后使用'tradeclient'示例连接到'executor',并发送它的订单请求。 我创建了两个单独的会话文件,一个用于'executor'作为接受者,一个用于'tradeclient'作为发起者。它们都在同一台Win7上运行。
'executor'运行,但是tradeclient无法连接到它,我无法弄清楚原因。我下载了Mini-fix,并且能够向执行者发送消息,所以我知道执行者正在工作。我认为问题在于tradeclient会话设置。我在下面列出了他们两个,我希望有人可以指出是什么导致他们不能沟通。它们都使用端口56156在同一台计算机上运行。
- accceptor session.txt ----
[DEFAULT]
ConnectionType=acceptor
ReconnectInterval=5
SenderCompID=EXEC
DefaultApplVerID=FIX.5.0
[SESSION]
BeginString=FIXT.1.1
TargetCompID=SENDER
HeartBtInt=5
#SocketConnectPort=
SocketAcceptPort=56156
SocketConnectHost=127.0.0.1
TransportDataDictionary=pathToXml/spec/FIX50.xml
StartTime=07:00:00
EndTime=23:00:00
FileStorePath=store
----发起人session.txt ---
[DEFAULT]
ConnectionType=initiator
ReconnectInterval=5
SenderCompID=SENDER
DefaultApplVerID=FIX.5.0
[SESSION]
BeginString=FIXT.1.1
TargetCompID=EXEC
HeartBtInt=5
SocketConnectPort=56156
#SocketAcceptPort=56156
SocketConnectHost=127.0.0.1
TransportDataDictionary=pathToXml/spec/FIX50.xml
StartTime=07:00:00
EndTime=23:00:00
FileLogPath=log
FileStorePath=store
--------端------
更新:感谢您的共鸣......原来我的日志文件目录不存在。一旦我创建它们,它们都开始沟通。必须是一些没有抛出异常的日志记录错误,但是禁用了正确的行为。
是否存在我应该检查的错误情况?我依赖于例外,但这显然是不够的。
答案 0 :(得分:1)
它似乎不是配置,检查您的消息序列号是否同步,特别是因为您使用相同的设置连接到不同的服务器。
答案 1 :(得分:0)
尝试将接受者的TargetCompID
和SenderCompID
设置为*