python的简单fix协议实现
simplefix的Python项目详细描述
导言
FIX (金融信息交换)协议被广泛使用, 基于文本的金融交易各方互动协议 交易银行、经纪人、清算公司、交易所和其他一般 市场参与者在电子产品的所有阶段都使用fix协议 交易。
典型地,修复实现作为固定引擎存在:一个独立的 充当其他应用程序网关的服务(匹配 引擎、交易算法等)并实现fix协议。这个 最流行的开源修复引擎可能是 QuickFIX。
这个包提供了修复的simple实现 应用层协议。它不处理套接字,也不 实现修复恢复或任何消息持久性。它支持 fix消息的创建、编码和解码。
许可证
该模块在MIT license下获得许可。 虽然这不是法律建议,简而言之,这意味着你可以 不管你喜欢这段代码,除了声称你 写的。
基本用法
参见Programmer’s Guide了解 更多信息
创建消息
要创建修复消息,请首先创建修复消息类的实例。
msg=simplefix.FixMessage()
然后可以根据需要向邮件添加字段。你应该加上 所有邮件的标准头标记8、34、35、49、52和56。对大多数人来说 标签,使用append_pair()是向消息添加字段的最简单方法。 当使用 append_utc_timestamp()将为您处理格式化。
append_string()将分解“tag=value”字符串并将其作为适当的 field;append_strings()将对“tag=value”序列执行相同的操作 串。append_data()将正确附加一个数据字段,设置 长度标记的值,并将值标记放在 格式化的消息。
设置完所有字段后,调用encode()将返回一个字节缓冲区 包含格式正确的修复消息,其中 顺序,并自动添加和设置车身长度(9)和 校验和(10)字段
注意,如果要手动控制所有字段的顺序,则 bodylength或校验和字段的值,有一个“raw”标志指向 encode()禁用此功能的方法这对 为测试目的创建已知的错误消息。
解析消息
从字节缓冲区中提取修复消息,例如从 socket,您应该首先创建FixParser类的实例。为了 接收到的每个字节字符串,使用 append_buffer()。在任何时候,您都可以调用get_message():如果 在解析器的内部缓冲区中没有完整的消息,它将返回none, 否则,它将返回一个FixMessage实例。
从get_message()收到FixMessage后,您可以:检查 具有count()的字段数,使用 get()或内置的“[%”语法,或使用 “为了……在……”
可以使用get(tag, nth)访问重复组的成员,其中 “nth”值是一个整数,指示要返回的标记的出现次数 (注意,第一次出现的是数字1,而不是零)。
贡献
评论,建议,错误报告,错误修复-所有贡献 这个项目很受欢迎请参阅项目的GitHub页以获取最新的 源代码,请打开issue以获取注释, 建议和错误。
有关详细说明,请参见CONTRIBUTING.rst文件