标签: fix-protocol

QuickFIX:从日志加载消息

我正在构建一个重播日志的工具.手动解析日志很烦人,所以我想知道是否有办法简单地从日志中加载消息.

另外,我并不反对仅使用第三方重播工具(如果存在).

quickfix fix-protocol

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

FIX 阅读重复组

我有一个 FIX 日志文件。我在行上迭代,将每个字符串放入

Message m = new Message(str, false)
Run Code Online (Sandbox Code Playgroud)

因为出于某种原因,文件验证失败(即使是第一行)。现在,我看到它是 35=X 类型,268=4(即 NoMDEntries=4,所以我应该在消息中有 4 个组)

但是,在调试显示中我没有看到任何组。m.base._groups 的计数为 0。

有问题的字符串是:

1128=9 | 9=363 | 35=X | 49=CME | 34=3151 | 52=20121216223556363 | 75=20121217 | 268=4 | 279=0 | 22=8 | 48=43585 | 83=902 | 107=6EH3 | 269=4 | 270=13186 | 273=223556000 | 286=5 | 279=0 | 22=8 | 48=43585 | 83=903 | 107=6EH3 | 269=E | 270=13186 | 271=9 | 273=223556000 | 279=0 | 22=8 | 48=43585 | 83=904 | 107=6EH3 …
Run Code Online (Sandbox Code Playgroud)

c# quickfix fix-protocol

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

quickfix:如何从消息中获取符号(标志55)?

我正在使用Python API运行QuickFix,并使用FIX4.2连接到TT FIX适配器

我正在登录并发送针对两种工具的市场数据请求。这样就可以正常工作,并且可以从仪器中获得预期的数据。我可以从消息中获取各种信息。

但是,我在获取符号(标志55)字段时遇到麻烦。

    import quickfix as fix

    def fromApp(self, message, sessionID):

        ID = fix.Symbol()
        message.getField(ID)
        print ID
Run Code Online (Sandbox Code Playgroud)

这适用于我收到的第一条消息[初始市场数据快照(标志35 = W)]。一旦开始进行增量刷新(标志35 = X),就无法再获取“符号”字段。每条到达的消息都会导致“未找到字段”错误。

这使我感到困惑,因为在日志中,无论消息类型是W还是X,符号字段始终存在。

认为符号在刷新消息的标题中,我尝试get.Field(ID)在35 = W和get.Header().getField(ID)35 = X时使用,但是这不起作用。

有人可以帮我弄清楚这里发生了什么吗?我希望能够明确告诉我的计算机正在查看什么仪器。

谢谢

python quickfix fix-protocol

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

处理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
查看次数

快速修复:如何在 Python 中使用 SSL

[抱歉我的英语] 我在连接我的用 python 开发的客户端 quckfix 时遇到问题。配置文件没有像我想要的那样响应。

如果我将路径(不正确的路径,强制错误)更改为文件 *.pem 并重新启动应用程序。该应用程序没有任何内容,只是保持正常运行。

就好像没有读取配置一样

在本教程中提到:quickfix 的 Python 实现不支持 SSL,这是真的吗?

https://medium.com/@federico_dv/fix-protocol-en-python-primeros-pasos-e-implementaci%C3%B3n-29a130b71ffc

这是用于在 Windows 中使用来自http://www.quickfixengine.org/的库 quickfix 的 python iomplementation

[DEFAULT]
PersistMessages=Y
ConnectionType=initiator
UseDataDictionary=Y 
StartTime=00:00:00
EndTime=23:59:00
FileStorePath=incoming 
FileLogPath=outgoing   


[SESSION]
SSLEnable=Y
SSLProtocol=TLSv1
ClientCertificateFil=C:\python\pyarb\cert\cert.pem
ClientCertificateKeyFile=C:\python\pyarb\cert\key.pem
StartTime=14:00:00
SenderCompID=AGENT
TargetCompID=FIX
EndTime=00:00:00
ConnectionType=initiator 
ApplVerID=9
BeginString=FIXT.1.1
DefaultApplVerID=9
TransportDataDictionary=quickfix_dicts\FIX50SP1.xml
AppDataDictionary=quickfix_dicts\FIX50SP1.xml
DataDictionary=quickfix_dicts\FIX50SP1.xml
SocketConnectPort=xxxx
SocketConnectHost=xxx.xxx.xxx.xxx
HeartBtInt=30
ReconnectInterval=30
ResetOnLogon=Y
ResetOnLogout=Y
ResetOnDisconnect=N
ResetSeqNumFlag=N
Run Code Online (Sandbox Code Playgroud)

python ssl quickfix fix-protocol

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

如何使用自定义标签排序发送 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
查看次数

FIX协议中的报价和市场数据消息是什么?

FIX协议中有两种类型的消息用于定价:MarketData和Quotes.
它们之间有什么区别?有什么用途?

谢谢

fix-protocol

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

高频交易系统如何连接到交易所

我正在尝试研究高频交易系统.什么是HFT用来连接交换机的机制和什么是程序(它是必须通过代理还是直接访问,如果它直接访问我需要的那种连接信息)

提前感谢您的回答.

fix-protocol hft

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

Quickfix 无法读取重复组

我在 Windows 中使用 Quickfix 和 python 绑定。我过去曾能够提出市场数据请求。我最近更换了不同的 API 提供商(Cunningham,又名 CTS),并且遇到了很多问题。然而,至少其中之一似乎是 Quickfix 内部的。这让我很困惑。

\n\n

当我发送市场数据请求时,我会收到回复。这是典型的 35=W 消息,市场快照。

\n\n

Quickfix 正在拒绝此消息,因为标签 269 出现多次!

\n\n

当然,标签269是MDEntryType,它应该出现多次。另请注意,定义了标签 268 NoMDEntries,它表示该组中有 21 个条目。

\n\n

我认为这是 QuickFix 的内部原因,因为 QuickFix 正在生成错误消息并将其发送回 CTS。此外,此错误会在消息传递给函数之前中止消息fromApp。(我知道,因为我的解析器在调用时将自己应用于消息,fromApp甚至没有收到此消息)。

\n\n

有任何想法吗?消息如下。

\n\n

(编辑 - 我已经关闭了配置文件中的数据字典 - 它与此有什么关系吗?)

\n\n

<20140915-22:39:11.953,FIX.4.2:XXXXX->CTS,传入>\n (8=FIX.4.2 \xe2\x98\xba 9=836 \xe2\x98\xba 35=W \xe2\x98 \xba 34=4 \xe2\x98\xba 49=CTS \xe2\x98\xba 56=XXXXX \xe2\x98\xba 52=20140915-22:39:11.963 \xe2\x98\xba 48=XDLCM\nE_F ZN (Z14) \xe2\x98\xba 387=2559 \xe2\x98\xba 965=2 \xe2\x98\xba 268=21 \xe2\x98\xba 269=0 \xe2\x98\xba 270=124156250 \xe2 \x98\xba …

python quickfix fix-protocol

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

QuickFIX/n:查询组时的FieldNotFoundException

我目前正在使用QuickFIX/n来构建一个接受器服务,我已经构建了一个启动器来测试接受器.我怀疑我得到的错误是由于接收器中的错误,因为同一错误发生在其他人发送给服务的消息上.

在发起程序中,我构建并发送AllocationInstruction,如下所示:

var fix44Message = new QuickFix.FIX44.AllocationInstruction(
    new AllocID(request.Info.AllocationID), EnumHelpers.ParseAllocationTransactionType(request.Info.AllocationTransactionType), EnumHelpers.ParseAllocationType(request.Info.AllocationType),
    new AllocNoOrdersType(AllocNoOrdersType.EXPLICIT_LIST_PROVIDED), EnumHelpers.ParseSide(request.Info.Side), new Symbol(request.Info.Symbol), new Quantity(request.Info.Quantity),
    new AvgPx(request.Info.AveragePrice), new TradeDate(request.Info.TradeDate.ToString("yyyyMMdd")))
    {
        SecurityID = new SecurityID(request.Info.SecurityID),
        SecurityIDSource = new SecurityIDSource(request.Info.SecurityIDSource),
        SecurityExchange = new SecurityExchange(request.Info.SecurityExchange),
        Issuer = new Issuer(request.Info.Issuer),
        Currency = new Currency(request.Info.Currency),
        TransactTime = new TransactTime(request.Info.TransactTime),
        SettlDate = new SettlDate(request.Info.SettlementDate.ToString("yyyyMMdd")),
        GrossTradeAmt = new GrossTradeAmt(request.Info.GrossTradeAmount),
        NetMoney = new NetMoney(request.Info.NetMoney)
    };

var group = new QuickFix.FIX44.AllocationInstruction.NoOrdersGroup
{
    ClOrdID = new ClOrdID(order.ClOrdID),
    OrderID = new OrderID(order.OrderID),
    OrderQty = new OrderQty(order.Quantity)
};
fix44Message.AddGroup(group); …
Run Code Online (Sandbox Code Playgroud)

fix-protocol quickfixn

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

标签 统计

fix-protocol ×10

quickfix ×6

python ×3

quickfixj ×2

c# ×1

hft ×1

java ×1

quickfixn ×1

ssl ×1