机器人|股票的量化交易中如何建立数据库,如何构建数据存储和检索-1

机器人|股票的量化交易中如何建立数据库,如何构建数据存储和检索-1

文章图片

机器人|股票的量化交易中如何建立数据库,如何构建数据存储和检索-1


作为专业的量化交易服务提供商 , 今天来说一说关于量化交易的一些想法 , 接下来的这几篇文章专业性会强一点 , 可能会晦涩一点 。
数据、基础设施、策略
量化金融需要大量的数据 。 一旦开始处理小于每日时间段的数据 , 数据就会变得更加庞大 。 数据工程中含有检索、存储、解析、和数据分发等多个方面 。 给予终端的方面有方法、技术、软件、程序和基础设施等等 。
基础设施设置是专业操作的一部分 , 它是该领域的业余和专业方法之间的区别之一 。 定义正确的基础设施是业务运营的一部分 , 在使用量化交易赚钱的中长期旅程中发挥着重要作用 。
不同的方法
有不同的方法可以满足这种数据工程需求 。 所有方法都同样有效 , 但它们之间有很大区别 , 需要了解对象的资源和环境才能选择正确的方法 。
供应商环境
低频交易量很高的大公司可以选择专有环境(例如Microsoft生态系统)来移动和存储数据 。 通过这样做 , 可以在需要任何自定义(C#和Python)时使用友好的编程环境 , 通过Azure和Microsoft ETL工具集成云存储以构建易于维护的数据管道 。
这种方法的优点是对所有内容使用相同的技术 , 可以期待在不同的组件中顺利集成 。 使用商业解决方案还提供了供应商支持 。 缺点是成本高 , 而且被供应商绑定 , 会涉及经常性成本 , 并且某些活动无法正确完成 , 因为使用的是通用工具 。 有一家成熟的商品交易公司就用的是这个方案 。 这个方案不适用于处理高频或非常自定义或ML密集型策略 。

全 Python方法
业界广泛使用的另一种方法是构建纯 Python解决方案 。 其实我对Python的个人感受是复杂的 。 Python有自己的优势那就是非常容易编码并可以使用许多ML库进行计数 , Jupyter notebooks可以简化结构维护 , 并促进对过程的自我记录 。
这可能不是最好的解决方案 , 但在混合环境中 , 我认为在操作方面它非常方便 。 我一直认为 Python在性能或速度方面不占优势 , 但在编写高级可维护的软件层却非常好 。 更短的开发时间和更轻松的团队协作的好处胜过性能障碍 。 有经验的Python开发人员也可以使用可以加速Python的替代方法 。 这种方法在一家成熟的小型对冲基金公司中得到了非常成功的使用 。
C++/Java方法
另一种方法涉及使用 C++或Java作为环境 , 并开发自定义框架来处理数据 。 这是具有大量数据的日内高频运营公司所使用的方法 。 对于刻度数据来说 , 可能至少在基础设施的某些区域需要这种方法 。 关于要使用的特定语言 , C++是旗舰机构公司的首选 , 但Java可以以较低的成本运营 , 而且有非常成功的小公司使用 Java提供所有内容 。 现实情况是 , 我们可以获得与 C++几乎相同的性能 , 但比C++更易于管理语言和开发和调试环境 。 交易软件的某些方面可以用 C/C++语言更好地表示 。 比如为OHLC和报价数据定义数据结构在C中比在Java中更自然 。 在交易中使用Java总是涉及以一种对Java程序员来说不太自然的方式进行编码 , 因为我们需要始终考虑低级编程和性能 , 因此C背景是有益的 。
存储替代品
数据本身可以存储在数据库中 , SQL和非SQL方法都可以使用 。 它们的一个共同点是它们通常依赖于给定的语言或技术 , 而不是系统工程方法 。 它涉及某些系统工程 , 但不是主要方法 。