![](https://img-blog.csdnimg.cn/20210331154719727.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
[米筐量化]技术揭秘
文章平均质量分 93
分享米筐技术团队相关文章,欢迎联系米筐量化王老师微信RicequantCS,交流、分享更多技术干货。
Ricequant米筐量化
Ricequant是一个量化交易平台与策略分享社区,跟随我们,获取量化信息分享以及获取平台技术内容的推送
展开
-
一种低成本动态扩展 Java API 的解决方案 - Ricequant米筐量化
Java 作为一种静态类型语言,以灵活性为代价换来了更多的编译期检查,使得代码在运行时出错的概率相对更低。然而,这也为代码编写者,尤其是 SDK 类项目的实现者带来了一些困难。本文论述了一种以较低成本解决API动态性不足的问题,同时又不丧失编译检查能力(对于 SDK 的使用者来说)的方案,希望给有类似需求的开发者一定的启示,旨在抛砖引玉。问题描述假设我们正在编写一个工具包,暴露了一个接口实例给用户。但是该工具包又希望通过插件的方式拓展它的 API,例如增加一个方法。但由于 Java 为静态语言.原创 2021-03-31 14:48:35 · 379 阅读 · 0 评论 -
说一说协议生成器 - Ricequant米筐量化
协议是在通信层之上管理具体消息在应用之间如何传递和理解的逻辑规则,而协议生成器则是一种根据这些规则生成具体的消息定义的工具。协议生成器大大降低了维护协议的难度,是某些协议(例如大名鼎鼎的 Protobuf 和老牌一些的 Thrift 等)得以流行的关键。本文将假设读者对计算机通信和协议有一定了解,重点讲述生成器的设计和作用。协议的设计从最高层来看,一个通信协议必须具备三种要素:数据交互方式、消息描述和编解码规范。这里也许会有不同意见——将编解码规范列入到通信层。但是本文所持的观点是,编解码规范.原创 2021-03-31 14:20:52 · 671 阅读 · 0 评论 -
如何设计 RQData 通讯协议 - Ricequant米筐量化
前面我们介绍了 RQData如何用 Asyncio 来提高服务端性能,这次我们介绍一下 RQData 的通讯协议,通过对比 RQData 的通讯协议和一些常用程序的通讯协议,看看如何设计一个合适的通讯协议。互联网上两台计算机进行通讯的基础是网络传输协议——数据在网络上以字节流的形式从一台计算机传输到另一台计算机,如果没有双方约定好的协议,就无法将数据流重塑成我们需要的数据结构。这就像是一个家长拆了一个用积木搭成的城堡,然后把一个一个积木递给小孩子,小孩子根据记忆用这些积木把城堡再重新搭起来。上述过程就.原创 2021-03-31 14:13:49 · 835 阅读 · 0 评论 -
Python 3.9 新特性速览 - Ricequant米筐量化
去年国庆假期,Python 社区发布了 3.9 版本的第一个 stable release 。相比于 3.8,Python 3.9 新特性众多,但不少特性与大多数 Python“使用者”(而非 CPython 的贡献者或使用 C 接口编写扩展的开发者)关系不大。本文将站在 Python “使用者”的角度,简单介绍新特性中很可能会与各位的日常开发产生关系的几个。字典“并集”运算符“并集”运算符顾名思义就是给两个字典取并,并产生新的字典对象。熟悉 collections 标准库的开发者听到这一特性.原创 2021-03-31 14:00:55 · 557 阅读 · 0 评论 -
理解 asyncio 来构建高性能 Python 网络程序 - Ricequant米筐量化
Python 是一门上手快、优雅简洁的编程语言,其多范式、丰富的标准库和第三方库能够让编程人员把精力集中在逻辑和思维方法上,而不用去担心复杂语法、类型系统等外在因素,从而高效地达成自己的编程目标。Python 抽象层次非常高,这帮助我们更好更快地完成编程,但也屏蔽了很多细节,程序员也无法精确控制计算机底层的资源,代码性能优化就变得比较复杂。很多资深的程序员可能会觉得 Python 性能不够好,无法编写高性能的程序,其实这句话也不全对。对于计算密集型的程序,Python 可以通过扩展的形式使得核心计算直接调用原创 2021-03-31 13:49:11 · 344 阅读 · 0 评论