标签: quickfixj

获取 QuickFix/n 的会话属性(用户名和密码)

我已将我的用户名和密码放在 FIX 配置文件中。所以我必须认为我应该能够从一些内部变量中获取用户名和密码,比如 session 变量或 SessionSetting 变量或 session.SessionDataDictionary 或其他一些变量。但是,我没有找到任何直接的解决方案来从内部变量中获取用户名和密码。

[SESSION]
BeginString=FIX.4.4
SenderCompID= xxxxx
Username= xxxx
Password= xxxx
Run Code Online (Sandbox Code Playgroud)

从逻辑上讲,这可能是非常可行的。但是,没有人建议这样做,或者我没有看到有人在谷歌上这样做。我从谷歌找到的唯一代码是这个。

String username = sessionSettings.getString(sessionId, "Username"); //only works for Java version of QuickFix
Run Code Online (Sandbox Code Playgroud)

然而,以上代码仅适用于 Java 版本的 QuickFix,并且此方法在 QuickFix 的 DotNet 版本(即 QuickFix/n)中不可用

getString(sessionId, "Username"); 
Run Code Online (Sandbox Code Playgroud)

我希望使用 QuickFix/n 为 FIX 4.4 实现类似的结果。如果有人熟悉 QuickFix,这可能是一项非常简单的任务。我将非常感谢您的提示或建议。我不介意你对 Java 或 C++ 版本有什么想法,因为它们都非常相似。我只需要知道这个用户名和密码存储在哪个变量中,以及如何使用 Csharp 代码获取它。

提前致谢。

c# quickfix fix-protocol quickfixj

4
推荐指数
1
解决办法
4076
查看次数

是什么导致 QuickFIX/J 中出现“Disconnecting: E​​ncountered END_OF_STREAM”会话消息?

我在Apache Camel 2.17.0 中使用QuickFIX/J版本 1.6.4并且我收到会话消息。这不是错误,但在我的情况下,它会导致无意的LogoffDisconnecting: Encountered END_OF_STREAM

什么情况会导致此消息,我如何分析我的案例中的哪种情况是原因?

quickfix fix-protocol quickfixj camel-quickfix

4
推荐指数
2
解决办法
2097
查看次数

发生"发送测试请求测试"后Quickfix/j的奇怪行为

我正在使用Quickfix/J接收消息,但发生了"已发送测试请求测试".日志文件(FIX.4.2-AB.event.log)显示:

23:19:05: Sent test request TEST   
23:19:32: Disconnecting: Timed out waiting for heartbeat   
23:19:33: Initiated logon request   
23:19:44: Disconnecting: Timed out waiting for logon response   
23:19:45: Initiated logon request   
23:19:56: Disconnecting: Timed out waiting for logon response  ...
Run Code Online (Sandbox Code Playgroud)

但我在另一个日志文件(FIX.4.2-AB.message.log)中找到了一些东西:

8=FIX.4.2|9=68|35=1|34=250|49=A|52=20140224-23:19:05.909|56=B|112=TEST|10=106 
8=FIX.4.2|9=74|35=0|49=B|56=A|43=N|34=1320|52=20140224-23:19:23.381|112=TEST|10=130 
Run Code Online (Sandbox Code Playgroud)

这显然表明对方B已经将心跳发回给我们.

并且FIX.4.2-AB.messages.log文件仍在增长!!!!!!!!!!! 该文件继续接收消息,但Quickfix/J进程无(onMessage()方法中没有任何反应)!!!!

请帮忙告诉我为什么会这样?收到心跳后,为什么连接仍然丢失并且日志正在断开连接?


由于这个问题尚未解决.这是更新:

我的配置:

[default]
FileStorePath=/target/data/fixapplication
ConnectionType=initiator
SenderCompID=A
TargetCompID=B
SocketConnectHost=xxx.xxx.xxx.xx
StartTime=00:00:00
EndTime=00:00:00
HeartBtInt=30
ReconnectInterval=5
FileLogPath=logs/fix/

[session]
BeginString=FIX.4.2
SocketConnectPort=xxx
ValidateFieldsOutOfOrder=N
ResetOnLogon=Y
Run Code Online (Sandbox Code Playgroud)

这是代码:

@Override
    public void fromAdmin(Message message, SessionID sessionID) throws FieldNotFound,
            IncorrectDataFormat, IncorrectTagValue, RejectLogon {
        if (adminLog.isInfoEnabled())
            adminLog.info("Inside …
Run Code Online (Sandbox Code Playgroud)

java quickfix fix-protocol quickfixj

3
推荐指数
2
解决办法
3270
查看次数

quickfix.InvalidMessage exception thrown even with valid message

I am a newbie with a quick fix but trust me, I have searched all the forums thoroughly and haven't found the solution to this scenario. I am using quick fix 1.6 libs. I have a FIX message which has got a repeating group. When I send this message using sendToTarget() method, the message is forwarded to the FIX server without issues, but the fields get reordered due to which exchange rejects it. Reading through the posts, I got to …

java quickfixj

3
推荐指数
1
解决办法
1106
查看次数

QuickFIX/J:连接失败时如何检测?

当我通过 initiator.start() 方法使用 SSL 将启动器连接到 FIX 服务器时,它会启动一个单独的线程来建立连接。现在,当此失败(例如由于 SSL 握手问题或服务器连接问题)时,错误将被抛出到日志中,但似乎无法被捕获在代码中并进行管理。当错误发生时如何检测/捕获?

Disconnecting: Socket exception (<server ip>): java.net.SocketException: Connection reset.
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪的底部是线程池执行器。

我在 start 方法周围有一个 try-catch,但是当异常发生在另一个线程中时,它无法捕获它。

quickfixj

3
推荐指数
1
解决办法
2326
查看次数

处理FIX Reject:使用QuickFix/J在RefSeqNum中按序列号检索FIX消息

我正在尝试处理FIX Reject(MsgType 35=3),但我不清楚如何检索FIX Reject消息引用的消息.

FIX拒绝MsgSeqNumRefSeqNum字段(标记45)中引用被拒绝的消息.但是,我不知道如何通过序列号获取被拒绝的消息.我认为它应该是可能的,因为FIX引擎可以重新发送序列号范围内的消息(响应重发请求),所以如果引擎可以这样做,那么我应该这样做.

问题:如何在RefSeqNum字段中获取拒绝消息引用的消息?

java quickfix fix-protocol quickfixj

2
推荐指数
1
解决办法
1547
查看次数

quickfix.Message无法强制转换为quickfix.fix50sp2.Message

我使用的是最新的quickfix版本1.6.0.我已经有了针对1.5.3编写的代码,而我正在尝试将其升级到1.6.0

我遇到的问题是,当我使用crack(msg,sessionID)方法时,它会抛出quickfix.Message cannot be cast to quickfix.fix50sp2.Message错误.我从verifix发送了正确的FIX50SP2 MarketDataSnapshotFullRefresh消息.该例外的摘录如下

java.lang.ClassCastException: quickfix.Message cannot be cast to quickfix.fix50sp2.Message at quickfix.fix50sp2.MessageCracker.crack(MessageCracker.java:1555) at com.****.fixserver.FixMessageListener.fromApp(FixMessageListener.java:162) at quickfix.Session.fromCallback(Session.java:1731) at quickfix.Session.verify(Session.java:1682)

如何将传入的消息破解为正确的SP2消息?

有一个crack50()方法,但这需要一个SP2消息,该消息在fromApp回调中不可用.

java quickfix fix-protocol quickfixj

2
推荐指数
1
解决办法
1462
查看次数

quickfixj 交换组顺序

我想生成一个包含 2 个组NoMDEntryTypes(267) 和NoRelatedSym(146)的市场数据请求,如下所示:

267=2 269=0 269=1 146=1 55=EUR/USD
Run Code Online (Sandbox Code Playgroud)

但是当我以某种方式发送消息时,quickfixj 或我的数据字典将组的顺序交换为以下内容:

146=1 55=EUR/USD 267=2 269=0 269=1 
Run Code Online (Sandbox Code Playgroud)

即使我创建了一个直接字符串消息并通过我的数据字典对其进行验证,也会发生这种情况。

我该怎么做才能使组按我想要的顺序排列?!谢谢

quickfix quickfixj

2
推荐指数
1
解决办法
659
查看次数

如何使用自定义标签排序发送 FIX 消息?

订单请求在 FIX 服务器上发送,并且标签的顺序已更改。

如果我想要序列的输出,因为它是由我安排的(而不是被服务器修改)。

public void send50(Order order) {

    quickfix.fix50sp1.NewOrderSingle newOrderSingle = new quickfix.fix50sp1.NewOrderSingle(new ClOrdID(order.getID()),
            sideToFIXSide(order.getSide()), new TransactTime(), typeToFIXType(order.getType()));
    newOrderSingle.set(new OrderQty(order.getQuantity()));
    newOrderSingle.set(new Symbol(order.getSymbol()));
    newOrderSingle.set(new Price(order.getSharePrice()));
    newOrderSingle.set(new Account("13501100"));
    newOrderSingle.setField(new NoPartyIDs(1));
    newOrderSingle.setField(new PartyIDSource('C'));
    newOrderSingle.setField(new PartyRole(12));
    newOrderSingle.setField(new PartyID("13501100"));**
Run Code Online (Sandbox Code Playgroud)

这是用户给服务器的顺序,服务器将其安排为:

8=FIXT.1.1|9=173|35=D|34=5|49=135|52=20200131-05:35:12.956|56=PSE|1=13501100|11=1580448912440|38=10=10 1|44=10.78|54=1|55=AGI|59=0|60=20200131-13:35:12.956|447=C|448=13501100|452=12|453=1|10=213|

那么,如果我希望输出与发送的顺序相同,该怎么办?

fix-protocol quickfixj

2
推荐指数
1
解决办法
1135
查看次数

QuickFIX/J的数据库表

QuickFIX/J包含用于创建四个数据库表的SQL脚本:

  • sessions
  • messages
  • messages_log
  • event_log

我找不到任何描述每个表的目的的文档.

它们是什么,它们何时被写入,它们中的任何一个都无限增长等等......

quickfix quickfixj

1
推荐指数
1
解决办法
2238
查看次数

标签 统计

quickfixj ×10

quickfix ×7

fix-protocol ×6

java ×4

c# ×1

camel-quickfix ×1