返回首页
最新
我在周末完成了我的交易基础设施项目,名为FLOX。
该项目使用纯C++(采用C++20特性)构建,是一个模块化框架,适用于构建高频交易系统、交易基础设施、市场数据馈送,甚至可以用来制作类似TradingView的应用。
一切都是开源的: [https://github.com/eeiaao/flox](https://github.com/eeiaao/flox)
文档:[https://eeiaao.github.io/flox/](https://eeiaao.github.io/flox/)
项目中包含测试和基准,以确保其稳定性。
未来可能会添加JavaScript引擎支持,以便进行策略脚本编写。
欢迎反馈和贡献。
显然,这是一种与手机不同的设备,可能没有屏幕?我很难想象有什么功能是手机无法实现的,也无法想象人们会愿意再携带一个额外的设备。因此,我很想知道HN社区对此有什么看法。
早上好,HN。
随机数生成在C++领域似乎是一个相对被忽视的话题。网上关于它的信息良莠不齐,甚至标准库在算法方面也显得有些落后。它常常试图满足一些不切实际的标准要求,因此存在多种方式导致统计结果显著不佳。这使得许多可以轻松实现的性能和质量被搁置。
作为一名主要从事随机模型研究的数学家,我希望这些模型能够快速且高效地运行,因此我开始了一段旅程,试图总结“什么是好的,什么是坏的”,并实现“目前最好的东西”。
幸运的是,C++的<std::random>设计相当灵活且易于扩展。通过一些清理、泛化和编译时逻辑,所有不同的算法都可以封装在一个通用的标准兼容API中。
这项工作的成果是一个单头文件的随机数生成库,具有以下特点:
- 与<std::random>兼容的生成器(伪随机数生成器)性能提升3到6倍
- 加密安全生成器(CSPRNGs)
- 更快的均匀/正态分布,能够在每个平台上生成相同的序列
- 一些非线性分布的快速近似
- 比std::random_device()更可靠的熵源
- 类似rand()的API,方便我们在不需要复杂的<std::random>设置时获取随机数
实际上,这些改进使得许多工作负载的速度提升达到了2到8倍,同时产生了更好的统计质量。
我认为没有其他类似的东西,因此我想在这里展示这个成果,并听听大家对其改进的看法:
[https://github.com/DmitriBogdanov/UTL/blob/master/docs/module_random.md](https://github.com/DmitriBogdanov/UTL/blob/master/docs/module_random.md)
对于感兴趣的人,文档末尾对这个话题的所有细节进行了更详细的介绍,可能会是一次有趣的阅读。