如何解决c#Quickfixn中不正确的BeginStringFIX.4.4
我正在尝试从修订中获取MarketData,但似乎正在回答“错误的BeginString(FIX.4.4)”。 “登录”返回“确定”。但是当我调用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”正在运行。 因此,我认为与上面的链接不同。
这是日志。
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
我的字典标题看起来像这样
<?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是这样的:
<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>
我的配置
[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异常”的地方。跟随我的调试器的图像。
DefaultMessageFactory的“ this._factories”为空。然后该类返回给我UnsupportedVersion ...我正在研究这样做的原因。你有什么建议吗?
解决方法
问题是在Linux Directory.GetFiles中区分大小写,因此DefaultMessageFactory:LoadLocalDlls()无法在Linux中找到本地dll。我在github https://github.com/connamara/quickfixn/pull/663中创建了pull请求,并进行了此更改,使其在Linux中运行完美。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。