我已经编译并浏览了快速修复(http://www.quickfixengine.org)源和示例。我认为一个好的起点是编译(C++)并运行"执行器"示例,然后使用"tradeclient"示例连接到"执行器",并向其发送订单请求。我创建了两个单独的会话文件,一个用于作为接受者的"执行者",另一个用于作为发起者的"tradeclient"。它们都在同一台 Win7 电脑上运行。
"执行器"运行,但 tradeclient 无法连接到它,我不知道为什么。我下载了Mini-fix并能够向执行器发送消息,因此我知道执行器正在工作。我认为问题出在交易客户端会话设置上。我在下面列出了他们两个,我希望有人能指出导致他们无法沟通的原因。它们都使用端口 56156 在同一台计算机上运行。
--受体会议.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
----启动器会话.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
--------结束------
更新:感谢您的共鸣...原来我的日志文件目录不存在。一旦我创建了它们,他们俩就开始交流。一定是一些未引发异常但禁用正确行为的日志记录错误。
是否存在我应该检查的错误情况?我依靠例外,但这显然还不够。
它似乎不是配置,请检查您的消息序列号是否同步,特别是因为您一直使用相同的设置连接到不同的服务器。
尝试将接受器上的TargetCompID
和SenderCompID
设置为*