机器人|股票的量化交易中如何建立数据库,如何构建数据存储和检索-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方法都可以使用 。 它们的一个共同点是它们通常依赖于给定的语言或技术 , 而不是系统工程方法 。 它涉及某些系统工程 , 但不是主要方法 。
- 36氪首发|烹饪机器人公司「智谷天厨」获数千万元天使轮融资,羲融善道独家投资
- 京东|裁员不忘膈应人,这家互联网大厂送的离职礼物恶心到我了!
- iPhone14|准大学生的数码装备推荐
- 有人觉得中暑就是热出来的,吃一些退烧药就好了,这种做法 蚂蚁庄园今日答案6月28日
- 浮甘瓜于清泉,沉朱李于寒水”描述的是什么场面 蚂蚁庄园今日答案6月28日
- 个头大的车厘子比小樱桃营养价值更高,对吗 蚂蚁新村6月28日答案最新
- 位于广东省阳江市的海陵岛自然资源丰富,景色优美,该岛没有 神奇海洋6月28日答案
- 哪种水果横着切开像星星的形状 蚂蚁庄园今日答案6月29日
- 为验证人类和黑猩猩,是否会产生新的后代,科学家找来5位姑娘!
- 喜马拉雅山出现的“雪人”是何生物?目击者:智商高、攻击性强
