Aru*_*Pal 4 c++ algorithmic-trading quickfix
我已经给出了一个使用c++和quickFix库开发算法交易系统的项目,我在谷歌上搜索了quickFix库,但没有找到任何有用的信息。谁能给我一些信息,我应该从哪里开始?
您在问题中提供的细节很少,所以我只能猜测一种有用的方法。我已经用 Python 完成了您开始的工作,并且可以为您提供一些指导。Karl 提到的所有链接都至关重要(您应该特别注意配置文件中的 quickfix 文档),我将向其中添加FIXIMATE。
要在 QF 中执行此类操作,您需要回答许多问题。
登录。弄清楚如何登录。尝试从您的交易对手那里获取数据字典。您不想被迫过多地修改您的 DD。
界面。您将如何告诉 QF 登录、注销、退出糟糕的职位等等?我使用了一个命令行工具(cmd2),它给了我这种能力。其他人编写 GUI 窗口。
消息破解。某些版本的 QF 带有破解器,但如果您在 C++ 中没有破解器,则必须编写自己的破解器,以便解析传入的消息。
数据管理。您将如何将传入的市场数据保存在 RAM 和磁盘中以供稍后分析?您将如何代表和监控您的头寸、您的工作订单、您的审计跟踪?熟悉QF 中的ScreenLogFactory
和FileLogFactory
。
辅助功能。您将需要自己编写的许多函数来在各个阶段提供帮助。将它们全部保存在一个地方,并将它们分类以便于访问。
监控。当您不在计算机前监控算法时,您如何知道出现问题(或正确)?我启动了一个完全独立的进程,它通过队列使用消息并向我发送文本和电子邮件。
风险。您不希望您的机器在眨眼间向市场发送 1000 个订单。您需要编写一些检查代码,在它们发出之前,将否决坏订单作为最后阶段。还有一些代码会告诉你你是否处于应该平坦的位置。这部分非常重要。
战略。您将需要能够快速摄取数据、分析数据并生成信号。为了灵活性,您不应将策略设计到您的系统中,但您应该设计一个可以支持您提出的任何策略的策略对象。然后在系统中部署这些对象。
订单处理。您的算法需要知道何时以及如何输入订单、取消订单、移动止损等。它需要处理部分成交,并能够支持多种订单类型。
这只是个开始,在我的脑海里。在没有帮助的情况下独自完成所有工作是一条漫长的道路。不过很有趣,也很有收获。