首页 > 解决方案 > quickfix 中 SecurityListRequest 的“标签未定义”

问题描述

尝试使用以下代码在 quickfix 中发送 SecurityListRequest

void FixApplication::SendSecurityListRequest()
{
    FIX44::SecurityListRequest request(SecurityReqID(NextRequestID()), SecurityListRequestType(4));
    Session::sendToTarget(request, sessionID(false));
}

得到

8=FIX.4.49=12435=334=349=nik52=20211015-19:40:29.47256=DERIBITSERVER57=U100D145=258=Tag appears more than once371=15372=y373=1310=011

在调用 sendToTarget 后的 toAdmin 函数中

372=y表示问题出现在消息类型“y”中,即 SecurityList 371=15表示问题出现在标签 15 中,即货币。

有人可以告诉这里出了什么问题吗?

我也尝试使用 settings.cfg 设置 DataDictionary 但它导致

8=FIX.4.49=13435=334=349=nik52=20211015-19:46:29.29256=DERIBITSERVER57=U100D145=258=Tag not defined for this message type371=15372=y373=210=247

我当前的配置文件

[DEFAULT]
 
ConnectionType=initiator
HeartBtInt=20
FILESTOREPATH=store
FileLogPath=Logs
StartDay=TUESDAY
StartTime=00:00:00
EndDay=TUESDAY
EndTime=00:00:00
UseDataDictionary=Y
DataDictionary=FIX44.xml
ValidateUserDefinedFields=N
ValidateFieldsHaveValues=N
ValidateFieldsOutOfOrder=N
ValidateUnorderedGroupFields=N
ValidateLengthAndChecksum=N
ReconnectInterval=60
ResetOnDisconnect=Y
ResetSeqNumFlag=Y
ResetOnLogout=Y
ResetOnLogon=Y
SendResetSeqNumFlag=Y
ContinueInitializationOnError=Y
PrintIncoming=Y
PrintOutgoing=Y
PrintEvents=Y
IgnorePossDupResendRequests=Y
TargetSubID=U100D1
Username=
Password=
 
[SESSION]
SocketConnectHost=www.deribit.com
SocketConnectPort=9881
BeginString=FIX.4.4
SenderCompID=nik
TargetCompID=DERIBITSERVER
MDEntryType=Y

标签: c++quickfix

解决方案


推荐阅读