c ++ quickfix无法发送

时间:2014-10-15 23:38:03

标签: c++ quickfix

我在使用FIX 4.4的c ++ quickfix客户端应用程序时遇到了意外问题。我形成marketdatarequest并填充它然后调用send返回true。消息或事件日志文件中找不到该消息。 似乎没有报道任何错误 - 可能发生什么?

FIX44::MarketDataRequest request(FIX::MDReqID(tmp)
        , FIX::SubscriptionRequestType('1')
        , FIX::MarketDepth(depth)); // 0 is full depth
FIX::SubscriptionRequestType subType(FIX::SubscriptionRequestType_SNAPSHOT);
FIX44::MarketDataRequest::NoRelatedSym symbolGroup;
symbolGroup.set(FIX::Symbol(I.subID));

request.addGroup(symbolGroup);

FIX::Header &header = request.getHeader();
header.setField(FIX::SenderCompID(sessionSenderID));
header.setField(FIX::TargetCompID(sessionTargetID));


if (FIX::Session::sendToTarget(request) == false)
    return false;

我的FixConfig看起来像:

[DEFAULT]
HeartBtInt=30
ResetOnLogout=Y
ResetOnLogon=Y
ResetOnDisconnect=Y
ConnectionType=initiator
UseDataDictionary=Y
FileLogPath=logs
[SESSION]
FileLogPath=logs
BeginString=FIX.4.4
DataDictionary=XXXXX
ConnectionType=initiator
ReconnectInterval=60
TargetCompID=tCompID
SenderCompID=sCompID
SocketConnectPort=123456
SocketConnectHost=XX.XX.XXX.XX
SocketConnectProtocol=TCP
StartTime=01:05:00
EndTime=23:05:30
FileLogPath=logs
FileStorePath=logs
SocketUseSSL=N

感谢您的帮助,   标记

1 个答案:

答案 0 :(得分:-1)

马克,只有几个与您的问题没有关系的笔记,但您可能会觉得有用:

  1. 您不必为每条消息明确设置TargetCompId / SenderCompId,引擎会为您完成。
  2. 不要将逻辑放入回调中(就像在onLogon中使用市场数据订阅一样)。更好地创建额外的线程,这将消耗来自您的侦听器的事件,做出决定并采取行动。
相关问题