如果一个交易机器人是基于Node.JS对每一个市场更新做出反应,它会立即开始偏离现实,而不会在单独的子线程上进行客户端混淆吗?
换句话说,它将收到订单簿更新,更新其当前的书,机器人将执行其交易逻辑,并在此期间它不会处理下一次更新。因此,当机器人收到并处理更多市场数据更新时,它会立即开始落后并且每次更新都会变得更糟?
我认为市场活动可能存在差距,使其能够赶上,但这并不能保证。
示例我已经看过NodeJS机器人没有处理这个问题,所以我想知道它是否是一个非问题,并且有一些我不知道或不理解的东西。
当然,我可以产生一个专门用于处理价格并将它们混淆的子流程,另一个用于交易逻辑和通过IPC进行交谈。但是,假设我测得正确,上次尝试时的延迟时间约为500微秒。好吧,我们想要更快。
答案 0 :(得分:0)
取决于你如何制作它,如果你在从数据库系统〜和像redis这样的缓存系统提供的无限循环上执行交易逻辑,你可以将并行请求存储到数据库,同时计算,它在获取,存储,计算,反应之间总会有延迟,问题是,是否足够快以做出正确的决策并做出足够快的反应来执行?答案是我不知道......这取决于
答案 1 :(得分:0)
在构建交易机器人时,每个人都可以访问相同的数据,因此您的机器人与其他机器人处于平等的竞争环境中。有几件事要记住:
使用诸如Coygo API之类的库来直接连接每个交易所的实时数据Feed,不要使用任何会创建中间人的API,因为这会增加延迟并且不会发送垃圾邮件用于股票行情,订单簿或交易数据的REST API。
在单独的线程/网络工作者中执行任何数据处理,以便您继续实时获取更新。
您始终可以在功能强大的硬件(尤其是快速CPU)上运行bot,以进行快速数据处理。
您的反应速度实际上取决于您的策略。许多对冲基金每周只进行一次或两次重新平衡,而有些交易员则每天进行数百笔交易。找到适合您的策略。