构建量化交易系统:如何处理系统故障

当你是一名算法交易员时,人们会认为你花了一整天的时间来构建使用复杂数学函数的新奇特策略,但事实并非如此。相反,宽客将大部分时间都花在了改善他们当前的基础设施和扩展他们的业务上。

这是因为量化策略最大的危险是其系统的故障。风险引擎中的错误计算、系统崩溃以及隐藏在难以阅读的代码中的bug。量化策略就像罗马一样, 它们不是一天建成的,但可以一次性烧毁。因此,让我们谈谈使您的系统健壮的一些简单方法。

简化一切

您通过他们的 API 与交易所进行通信,但是,每个交易所都有自己的 API,需要在每次调用时提供某些信息,而其他人可能没有。让我举个例子,看看 Binance & FTX 如何期望你下订单。

因此,对于两个交易所,您有四个不同的端点,需要 9 到 18 条信息才能下订单。这很难解决,但也并不是完全没有办法, 通过创建我们自己的 API 包装器,它期望每次交换的每个 API 调用都使用相同的参数,并以相同的格式返回相同的信息。

已经有一些像CCXT这样的解决方案,但它们的代码很乱,不能统一一切,也不支持异步请求。除此之外,如果您创建自己的解决方案,则添加额外的交换会更容易,因为您的统一包装器/API 是根据您的需求量身定制的,因此添加额外的功能和调试会更容易。

数据并不总是你的朋友

您的系统可帮助您根据收到的数据自行做出决定或完全自行做出决定。但是,如果这些数据是错误的、延迟的或以错误的方式解释怎么办?让我们看一个例子。

 让我们玩一个游戏,你在上面看到的每个市场的美元价格是多少?其中一个与其他的不同,大多数人会说价格是美元价格,但事实并非如此。由于合约以 USDT 命名,因此美元价值将是 20317.87 美元而不是 20520 美元。许多人不会注意到这种低效率,但考虑到这一点非常重要。

 2022 年 5 月 13 日,USDT 跌至最低点约 94 美分

让我们回到 2022 年 5 月 13 日,与 Luna 脱钩的 UST 让人们对持有稳定币感到不舒服,导致市场抛售 Tether (USDT)。对于不考虑稳定币实时价格的人来说,这意味着什么?

  • USDT 对的实时市场价格将不正确
  • 您的内部资产负债表将不正确,因为您仍然认为 Tether 是 1 美元。
  • 每个依赖 USDT 市场定价的数据点都是不正确的

Monolithic结构可能真的会让你回到石器时代

Monolithic 是新宽客 开始构建系统的最常见方式,软件是作为一个单元开发的。所有功能、特性和模块都是作为一个实体开发的。这是一种创建和部署系统的简单方法,但从长远来看是可怕的。

在我看来,微服务架构是 宽客的最佳解决方案。您可以在不停机的情况下独立扩展每个元素,轻松集成新技术,并且可以单独测试组件,但最重要的是,一个微服务的故障不会影响其他服务。

用非技术性的方式来解释它,把一个单一的系统想象成场内的单个交易者,他管理你的风险,执行交易者并进行你的分析。然而,当/如果这个人失败了,一切都会失败。微服务是一群人。一个人做风险管理,另一个人执行交易,另一个人做分析。如果一个失败了,这并不意味着整个系统都失败了,他可以被替换。添加具有不同技能的新人很容易,他们只需要学习与团队中的其他人沟通。

如果第三方交易失败了怎么办?

但它会在 2020 年 3 月存活下来吗?这是我最喜欢问的问题之一,当交易失败时,我的系统还能生存吗?

你会如何处理:

  • 交易所禁止在您持有头寸的特定市场进行交易
  • 禁止存取款
  • 冻结的区块链
  • API 问题
  • 交易所交互界面问题

其中一些比其他更难,您是否有未平仓头寸但交易所禁止交易?在另一个交易所对冲它。

但是如果交易所的 API 失败了怎么办?您的系统是否能够检测到它并采取必要的措施?禁用存款怎么办?当您无法存入抵押品时,您将如何对冲您的赌注或避免被清算?

它们都是您必须考虑的危机,需要大量创造性思维才能找到有效的解决方案。

总结:

对于那些有耐心并管理风险的人来说,加密市场有足够多的机会。但是您必须能够手头有现金才能利用这些机会。当其他人被迫退出头寸时,最好的交易机会出现了,您需要发现并利用它们。

猜你喜欢

转载自blog.csdn.net/blockbytes/article/details/125929173
今日推荐