如何在 QuickFix 中获取 SessionID
How to get SessionID in QuickFix
我在 Python 中使用 QuickFix。在 问题的背后,我对 SessionID class 进行了一些探索,但我对这种行为感到困惑。
SessionID class 描述为 here。它由 BeginString、SenderCompID 和 TargetCompID 组成。
假设我的字符串形式的 SessionID 如下所示:FIX.4.2:LMXTS->TS68。
fix.SessionID().fromString()
returns :->
如果您看一下,这就是分隔 BeginString、SenderCompID 和 TargetCompID 的三个填充字符。
fix.SessionID().getBeginString
returns 8=☺
(即 BeginString 不存在)。同样的事情也适用于 getSenderCompID
和 getTargetCompID
,它们分别是 return 49=☺
和 56=☺
。
fix.SessionID().getTargetCompID().getValue()
returns 空字符串 ''
.
尝试另一种方式,fix.SessionID().fromString('FIX.4.2:LMXTS->TS68')
returns None
.
我正在尝试获取这些值 在 会话创建后(当我将 fix.ScreenLogFactory(settings)
传递给发起者时我可以明确地看到发生了这些值。所以我很困惑.
听起来您是在创建会话之后、登录之前等直接查看会话。这意味着您没有在 FromApp 或 ToApp 中使用断点来查看那里的会话属性。如果这样做,您将直接获得属性,即 SenderCompID 或 TargetCompID。
我在我使用的对象中找不到方法 SessionID。你如何定义你的 'fix' 对象?
Application.h
中的方法 void onLogon( const SessionID& ) {}
在登录会话时触发,并为您提供对 SessionID
的引用。您可以检查 onLogon
中的 SessionID
对象以查看其行为方式。
您可以在创建会话后使用任何 quickfix 方法执行此操作,因为 sesionId 是参数之一。
触发的第一个方法是 onCreate,因此您可以将 sesionId 存储在 class var 中,然后在需要时重用以检索您的设置。您还可以使用其他答案之一中建议的 onLogon 方法。
下面的例子
def onCreate(self, sessionID):
self.session_id = sessionID
target = sessionID.getTargetCompID().getString()
sender = sessionID.getSenderCompID().getString()
我在 Python 中使用 QuickFix。在
SessionID class 描述为 here。它由 BeginString、SenderCompID 和 TargetCompID 组成。
假设我的字符串形式的 SessionID 如下所示:FIX.4.2:LMXTS->TS68。
fix.SessionID().fromString()
returns :->
如果您看一下,这就是分隔 BeginString、SenderCompID 和 TargetCompID 的三个填充字符。
fix.SessionID().getBeginString
returns 8=☺
(即 BeginString 不存在)。同样的事情也适用于 getSenderCompID
和 getTargetCompID
,它们分别是 return 49=☺
和 56=☺
。
fix.SessionID().getTargetCompID().getValue()
returns 空字符串 ''
.
尝试另一种方式,fix.SessionID().fromString('FIX.4.2:LMXTS->TS68')
returns None
.
我正在尝试获取这些值 在 会话创建后(当我将 fix.ScreenLogFactory(settings)
传递给发起者时我可以明确地看到发生了这些值。所以我很困惑.
听起来您是在创建会话之后、登录之前等直接查看会话。这意味着您没有在 FromApp 或 ToApp 中使用断点来查看那里的会话属性。如果这样做,您将直接获得属性,即 SenderCompID 或 TargetCompID。
我在我使用的对象中找不到方法 SessionID。你如何定义你的 'fix' 对象?
Application.h
中的方法 void onLogon( const SessionID& ) {}
在登录会话时触发,并为您提供对 SessionID
的引用。您可以检查 onLogon
中的 SessionID
对象以查看其行为方式。
您可以在创建会话后使用任何 quickfix 方法执行此操作,因为 sesionId 是参数之一。
触发的第一个方法是 onCreate,因此您可以将 sesionId 存储在 class var 中,然后在需要时重用以检索您的设置。您还可以使用其他答案之一中建议的 onLogon 方法。
下面的例子
def onCreate(self, sessionID):
self.session_id = sessionID
target = sessionID.getTargetCompID().getString()
sender = sessionID.getSenderCompID().getString()