python的简单fix协议实现

simplefix的Python项目详细描述


Build statusDocsCode HealthCoveragePyPIPython

导言

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文件

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java实现双锁并发队列   java如何更改SpringWS 2.4.4版或更高版本中maxOccurs的默认限制?   java Selenium RC如何处理动态行?   java何时引入Javac StringBuilder/StringBuffer优化?   java mediaplayer在R.raw Android上失败   java JPA2:不区分大小写,就像在任何地方匹配一样   如何从JDK15中提取java预览类文件?   java与mySQL删除查询不一致   从Shutdownow()返回的java列表<Runnable>无法转换为提交的Runnable   java如何从回调接口获取对象值?   java如何获得视图的高度,在xml中可见性和高度定义为wrap_内容?   postgresql Mybatis在启动时遇到“由以下原因引起:java.net.UnknownHostException:localhost”,为什么?   带有实例调用的方法调用的java intellij格式化程序换行   由于特定的第三方库,java Proguard产生运行时错误   动画JAVA JPanel同时滑出和滑入