【问题标题】:C++ FIX Implementation --> Invalid user for session. Username and SenderCompId must matchC++ FIX 实现 --> 会话用户无效。用户名和 SenderCompId 必须匹配
【发布时间】:2020-10-09 00:23:39
【问题描述】:

我正在使用 QuickFix 在 C++ 中开发一个机器人,当我发送登录消息时,我收到一个注销响应,说 “会话的用户无效。用户名和 SenderCompId 必须匹配”

这是我的信息:

8=FIXT.1.1|9=113|35=A|34=1|49=REM4820|52=20201008-22:22:59.886|56=ROFX|553=User|554=pass|98=0|108=30|141=Y|1137=9|10=054|

(出于隐私原因更改了用户和密码)

这是回复:

8=FIXT.1.1|9=135|35=5|34=1|49=ROFX|52=20201008-22:33:00.356|56=REM4820|1128=9|58=Invalid user for session. Username and SenderCompId must match.|1409=1|10=124|

我尝试过的事情:

  • 我已经下载了this python 项目并用它来连接 Remarkets,得到了相同的结果。 (并发送相同的登录消息)

  • 交换 SenderCompID 和 TargetCompID,正如我在另一篇文章中看到的那样,它帮助了某人。

  • 让新用户使用新密码尝试不同的帐户,结果相同。

  • 没有发送用户和密码,因为 Remarkets 文档表明没有必要:主机没有响应

  • 玩过 SSL 配置。我正在使用 Stunnel4,但我假设如果“用户名和 SenderCompId 必须匹配”,Acceptor 必须正在接收和阅读我的消息。

  • 忽略 SSL 并直接连接:对等方重置连接。

我的第一个也是最重要的问题是:我做错了什么?

其他可能真正有帮助的问题:

  • 有没有办法让我使用漂亮的 GUI #OrNot 连接(操作系统:ubuntu)并检查 FIX 消息以查看连接的消息与我的未连接的消息之间的区别?这些是我对 python 的意图,但我得到了相同的结果。

  • 有人知道 Remarkets Alternative,将其归咎于再营销就像将其归咎于编译器,但我需要检查一下。

  • 为什么服务器回答字段 58 并给出解释,但有时我得到“对等方重置连接”?

Client.conf

[DEFAULT]
PersistMessages=Y
ConnectionType=initiator 
ReconnectInterval=60
FileLogPath=./Logs/ 
FileStorePath=./Sessions/
UseLocalTime=Y
UseDataDictionary=Y
AppDataDictionary=conf/spec/FIX50SP2_rofex.xml
TransportDataDictionary=conf/spec/FIXT11.xml
StartTime=00:00:00
EndTime=00:00:00
ValidateUserDefinedFields=N
ResetOnLogon=Y
ResetOnLogout=Y
DefaultApplVerID=FIX.5.0SP2

[SESSION]
BeginString=FIXT.1.1
SenderCompID=REM4820
TargetCompID=ROFX
SocketConnectHost=127.0.0.1
SocketConnectPort=9876
HeartBtInt=30

TimeInForce=Day
TradingSessionID=1
ScreenLogShowIncoming=Y
ScreenLogShowOutgoing=Y
ScreenLogEvents=Y
LogoutTimeout=5
LogonTimeout=30
ResetOnDisconnect=Y
RefreshOnLogon=Y
SocketNodelay=N
ValidateFieldsHaveValues=N
ValidateFieldsOutofOrder=N
CheckLatency=N

【问题讨论】:

  • 您是否连接到发起方或接受方?检查配置文件
  • 嗨!我正在尝试作为发起者连接到接受者。接收器蜂鸣Remarkets。添加配置文件发布。

标签: python c++ authentication quickfix fix-protocol


【解决方案1】:

这绝对是交易对手特定的逻辑问题,而不是 FIX 协议问题。

让我们变得非常直白:

Username and SenderCompId must match.

仅通过该消息,标签 49(SenderCompID)和标签 553(用户名)似乎很明显必须具有相同的值。

有吗?我猜他们没有。尝试将 553 设置为匹配 49。

【讨论】:

  • 就是这样!!非常感谢!两天前,Y 曾尝试将 REM4820 放在他们两个身上,但不是相反!!!!
猜你喜欢
  • 2023-03-25
  • 1970-01-01
  • 1970-01-01
  • 2020-12-05
  • 2021-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多