首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >c# (快速修复)中的BeginString (FIX.4.4)不正确

c# (快速修复)中的BeginString (FIX.4.4)不正确
EN

Stack Overflow用户
提问于 2020-11-10 16:55:46
回答 1查看 368关注 0票数 2

我正在尝试从fix获取MarketData,但是我似乎回答了“不正确的BeginString (FIX.4.4)”。"Logon“返回OK。但是,当我调用MarketDataRequest时,它不起作用。我检查了我的XML字典,它被设置为FIX.4.4。

quickfix C+ Incorrect BeginString with FIXT.1.1 and FIX.5.0 - FIX.5.0SP2

我看过一个像我这样的帖子,但是我的字典xml被声明为FIX.4.4,而且"LOGON“也在工作。因此,我认为与上面的链接不同的情况。

这是日志。

代码语言:javascript
复制
2020-11-10 17:27:44,148 [1] INFO  QuickFixDemo.Program OnCreate FIX.4.4:xxxxxxxxxxxxxxxx->XXXXXX
2020-11-10 17:27:46,321 [8] INFO  QuickFixDemo.Program ToAdmin 8=FIX.4.4|9=83|35=A|34=1|49=xxxxxxxxxxxxxxxx|52=20201110-08:27:46.309|56=XXXXXX|98=0|108=20|141=Y|10=112|
2020-11-10 17:27:46,666 [8] INFO  QuickFixDemo.Program FromAdmin 8=FIX.4.4|9=83|35=A|34=1|49=XXXXXX|52=20201110-08:27:46.437|56=xxxxxxxxxxxxxxxx|98=0|108=20|141=Y|10=114|
2020-11-10 17:27:46,681 [8] INFO  QuickFixDemo.Program OnLogon
2020-11-10 17:27:46,686 [8] INFO  QuickFixDemo.Program ToApp 8=FIX.4.4|9=126|35=V|34=2|49=xxxxxxxxxxxxxxxx|52=20201110-08:27:46.685|56=XXXXXX|262=0|263=1|264=0|265=0|146=1|48=4004|22=8|267=2|269=1|269=0|10=033|
2020-11-10 17:27:47,093 [8] INFO  QuickFixDemo.Program ToAdmin 8=FIX.4.4|9=100|35=5|34=3|49=xxxxxxxxxxxxxxxx|52=20201110-08:27:47.093|56=XXXXXX|58=Incorrect BeginString (FIX.4.4)|10=052|
2020-11-10 17:27:47,405 [8] INFO  QuickFixDemo.Program FromAdmin 8=FIX.4.4|9=65|35=5|34=3|49=XXXXXX|52=20201110-08:27:47.187|56=xxxxxxxxxxxxxxxx|10=038|
2020-11-10 17:27:47,426 [8] INFO  QuickFixDemo.Program OnLogout

我的字典头看起来像这样

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>

<fix major="4" minor="4" servicepack="0" type="FIX">
  <header>
    <field name="BeginString" required="Y"/>
    <field name="BodyLength" required="Y"/>
    <field name="MsgType" required="Y"/>
    <field name="SenderCompID" required="Y"/>
    <field name="TargetCompID" required="Y"/>
    <field name="MsgSeqNum" required="Y"/>
    <field name="PossDupFlag" required="N"/>
    <field name="PossResend" required="N"/>
    <field name="SendingTime" required="Y"/>
    <field name="OrigSendingTime" required="N"/>
  </header>

我的MarketDataRequest是这样的:

代码语言:javascript
复制
<message name="MarketDataRequest" msgcat="app" msgtype="V">
  <field name="MDReqID" required="Y"/>
  <field name="SubscriptionRequestType" required="Y"/>
  <field name="MarketDepth" required="Y"/>
  <field name="MDUpdateType" required="N"/>
  <field name="AggregatedBook" required="N"/>
  <component name="MDReqGrp" required="Y"/>
  <component name="InstrmtMDReqGrp" required="Y"/>
</message>

我的配置

代码语言:javascript
复制
[DEFAULT]
BeginString=FIX.4.4
ConnectionType=initiator
ReconnectInterval=10
FileStorePath=store
FileLogPath=log
StartTime=00:00:00
EndTime=00:00:00
UseDataDictionary=Y
DataDictionary=./Fix/LMAX.xml
SocketConnectHost=fix-marketdata.london-demo.lmax.com
SocketConnectPort=443
SSLEnable=Y
SSLValidateCertificates=N
HeartBtInt=20

[SESSION]
# inherit ConnectionType, ReconnectInterval and SenderCompID from default
SenderCompID=XXXXXXXXXXX
TargetCompID=LMXBDM
Username=XXXXXXXXXXXXXXXXXXXXX
Password=XXXXXXXXXXXXXXXX
ResetOnLogon=Y

-附加信息2020/11/11

我调试了快速修复程序,发现它返回给我"UnsupportedVersion exception“的位置。遵循我的调试器的图像。

DefaultMessageFactory的this._factories为空。然后这个类返回给我UnsupportedVersion...我正在研究这个问题的原因。你有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-17 07:41:49

问题是在Linux中,Directory.GetFiles是区分大小写的,所以在linux中,DefaultMessageFactory:LoadLocalDlls()不能找到本地dll。我在github https://github.com/connamara/quickfixn/pull/663中创建了拉取请求,通过这种更改,它在Linux中可以完美地工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64765696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档