我正在构建一个交易组合管理系统,负责生产、优化和模拟非高频交易组合(处理 1 分钟或 3 分钟的数据柱,而不是分时数据)。
我计划使用 Amazon Web 服务来承担应用程序的全部负载。
我有四个选择,我正在考虑作为语言。
- 爪哇
- C++
- C#
- Python
这里是项目范围的极端范围。也许永远不会是这样,但它在要求的范围内:
- 每周模拟 10,000,000 个交易系统。
- (每个交易系统都应该有自己的数据挖掘方法,包括计算量非常大的特征选择算法。想象一下使用包装器的 500-5000 个特征。无论如何这些都不会经常运行,但它仍然是一个考虑因素)
- 使用 100,000 个交易策略实时生成投资组合
- 从全球每个股票/期货市场获取 1 分钟或 3 分钟的数据(约 100,000)
- 具有多达 100,000 种策略的投资组合优化。(相当密集的算法)
速度是一个问题,但我相信 Java 可以处理负载。
我只是想确保 Java 可以轻松地处理上述要求。我不想用 C++ 做这个项目,但如果需要的话我会做的。
之所以使用 C#,是因为我认为它是 Java 的一个很好的替代品,尽管我根本不喜欢 Windows,如果一切都一样,我更喜欢 Java。
Python - 我在 PyPy 和 pyscho 上读过一些东西,声称 python 可以通过 JIT 编译进行优化,以接近 C 的速度运行......这几乎是它出现在这个列表中的唯一原因,除了 Python 是一个很棒的语言,可能是最令人愉快的编码语言,这对这个项目来说根本不是一个因素,而是一个额外的好处。
总结一下:
- 实时生产
- 每周模拟大量系统
- 每周/每月优化投资组合
- 用于收集数据的大量连接
没有处理毫秒甚至秒级的交易。唯一需要考虑的是,当 Java 分散在必要数量的 EC2 服务器上时,是否可以处理这种负载。
非常感谢你们的智慧。