这是一个概念上的问题。
我正在构建一个小型算法交易软件,我想知道如何在该系统中设置数据收集/检索。该系统应该是完全自治的。
目前,我想实时进行交易的算法的交易频率非常低,但是我希望将来能够以更高的频率进行交易,因此我认为建立交易将是一个好主意使用websocket进行数据收集以立即获得实时交易。如果需要,我可以稍后汇总。
我的第一个问题是:考虑到数据将是实时的这一事实,我是否可以一开始就使用CSV文件进行存储,或者您会建议更重要的内容?
无论如何,数据收集将作为守护程序在我的应用程序中进行。
我的第二个问题是:是否有可用的框架来处理实时传入数据,以在数据库的其余部分查询数据库时保持数据库恒定,以免发生冲突?
我的第三个也是最后一个问题是:您认为在这种情况下使用websocket是一种明智的方法吗?还是每次应用程序需要数据时查询都更好?
答案 0 :(得分:0)
CSV是一种很好的交换格式,但是由于它基于文本文件,因此不利于实时更新。只有我的意见,但我无法想象有理由偏向数据库。
为了处理实时冲突,以后您将需要一个专业级数据库。 PostgreSQL以健壮着称,MariaDB也可能是正确的选择。您可以在开发模式下使用SQLite之类的数据库,例如SQLite,但要注意细微的区别:编写可以在一个数据库上工作而又会在另一个数据库上崩溃的东西很容易。另一方面,如果跨数据库的可移植性很重要,则应至少使用两个数据库:一个在开发时使用,另一个在集成时使用。
一个要立即问自己的问题是,您要关系数据库还是noSQL数据库。前者确保ACID(原子性,一致性,隔离性,耐久性)转换,后者提供更大的可扩展性。
答案 1 :(得分:0)
Man Group是算法交易的主要参与者之一,已经开放了名为Artic的数据存储库,该数据存储库专门用于时间序列和报价数据。您可以找到它here。