The CQ9 Beat

Applying Artificial Intelligence to Trading
Written
Topic
Published

Sep 15, 2021

Applying Artificial Intelligence to Trading

在过去的几年里,人们很难摆脱人工智能的无处不在. Although everything from your phone to your car or even your refrigerator 可能会被赋予人工智能,但真正被认为是人工智能的东西会因人而异. 事实证明,即使是人工智能领域的研究人员也没有一个通用的定义, but one (of unclear origin) is:

人工智能是任何能够感知其环境并采取行动以最大限度地成功实现其目标的设备.

CQ9 is an algorithmic trading company, 模型和代码驱动着我们每天每一秒的交易决策. 人工智能的这个定义如何映射到我们的交易问题?

First, let’s consider our “environment.“CQ9的一种观点是,它为世界提供了价格发现(确保证券相对公平定价)和流动性提供(如果你想买卖某物)等服务, CQ9 stands ready to take the other side). 为了以最低的成本提供这些服务,我们需要整合大量的数据, and so in some sense “everything” is our environment! 最完整的数据形式之一是“市场数据”,比如股票等交易所交易产品的价格和交易量, cryptocurrencies, commodities, options, and currencies. We can then add “alternative data” like news reports, company filings, and even more exotic forms of information like Tweets, 卫星数据——甚至是你最喜欢的股票交易版块上人们的观点.

Next, we need to define our “actions.“我们如何定义这一点可能取决于我们想要实现的目标, but let’s simply go with buy, sell, 或持有我们正在考虑的任何证券或工具.

Finally, what is our goal? 最大化净交易收入(我们交易的盈利能力减去交易成本,如佣金)将是明智的——尽管, we need to consider when that revenue will be realized. For example, 如果我们说“在接下来的一个小时内实现收益最大化”,那么我们可能会期待一些奇怪的效果,比如在接下来的一个小时内积累大量的头寸,这些头寸在账面上看起来有利可图,但实际上却无法卖出以实现利润,因为头寸太大了.

我们可以把这些组合成一个优化问题. 我们还没有讨论的一件事是我们的交易AI的限制. For example, 我们可能想要最大化我们的交易收入,但不超过风险(可以采取多种形式). 我们绝对不想违反我们交易市场的任何法规或法律, 但我们想更进一步:有些行为可能并不违反任何法律条文, but we want to be good market participants, so want to avoid certain behaviours.

在经历了这么多困难之后,准确地定义我们的问题, 现在我们必须优化我们的人工智能来实现它的目标. Before we embark on that long journey, 我们可以尝试将我们的问题映射到人工智能技术已经成功的地方. If we can make that map without too much fudging, 然后我们也许可以用同样的技术来解决我们的问题.

One of the classic success stories of AI has been board games; for example, IBM的深蓝(国际象棋)和DeepMind的AlphaGo(围棋). 在这两种情况下,人工智能都表现出了令人信服的超人表现(尽管人类在交易方面的表现不太好), so super-human isn’t much of a bar for us!). 让我们来讨论桌面游戏AI成功的一些关键因素, and contrast them to the trading problem:

  • Two-player “zero sum”国际象棋/围棋由两名棋手进行,只有一名棋手可以“赢”或平局. 也就是说,一个玩家要赢,另一个玩家必须输,我们都想赢. 这并不能很好地映射到CQ9电子游戏:而“现金”大致是保守的, 就参与者的效用或收益而言,市场不是零和的, which partially explains why anyone trades at all. For example, when I put money into my 401(k), I want to purchase stock now at minimal execution cost, 但我对确切的价格有点不敏感,因为我40多年后才会卖. 卖给我的人可能是为了对冲一些与我完全无关的交易的风险. 我们双方都会对这笔交易感到高兴——我们都赢了,因为我们都得到了我们想要的. 一个重要的暗示是,我们不能将《CQ9》的AI作为其他“玩家”的代理。, which is a key component of how AlphaGo works. Instead, 我们需要建立各种不同类型的“玩家”模型,以模拟真实市场中发生的互动.
  • Knowing the rulesAlphaGo在它的树搜索过程中充分利用了对游戏规则的了解, 每个行动的直接结果都是完全已知和确定的. Then, 其他玩家的后续反应很好地模仿了我们的行为, as we described above. 在交易中,我们部分拥有这样的属性:在国家股票市场等更发达的市场中,市场行为通常是明确的, 但是我们不知道如果我们下订单会发生什么. 一个简单的例子是,如果另一个“玩家”在同一时间发送他们的订单, the outcome is random.
  • Fully observing state: 像国际象棋和围棋这样的棋盘游戏不需要知道世界过去的状态, 除了一些角落的情况-你需要知道的一切都是可见的游戏板. 在市场中,过去对于预测未来至关重要. 一个简单的例子是回归的概念:如果股票价格突然变动, 它更有可能“回归”到其长期平均价格. The past is important, 但任何给定的瞬间都包含大量隐藏信息:所有其他市场参与者的身份和头寸都是显而易见的, but at a fine-grained level, 考虑“隐藏”订单类型,直到你与一个订单交易时才出现.
  • Infinite data我们可以随心所欲地与自己或不同的AI下棋. 这些游戏都是“真实的”,唯一的缺点是生成的数据集的多样性可能无法捕获所有可能的游戏方式. 相比之下,在交易中,我们只有一个现实,并实时获取新的数据.e., very slowly. 我们可以尝试通过模拟许多不同的人工智能来产生数据, 但它并不能很好地代表现实世界的丰富复杂性和相互作用, for reasons described above. 拥有大量数据对于训练AlphaGo获胜的人工智能所使用的大型神经网络至关重要.

Based on all that, 有人可能会认为我们不能将人工智能应用于交易,因为障碍太多了! 然而,有很多方法可以解决这些问题. 最好的方法之一是利用人类对整体结构的理解,将大问题分解成更小的子问题. If we put the solutions to these subproblems together, 对于原来的问题,我们可以得到一个好的但不完美的解决方案, 缩小这一差距是我们研究人员积极研究的问题之一.

让我们将其应用于一种交易方式,并考虑如何分解它. 在这个问题中,我们的目标是在多个交易日内最大化我们的净交易利润, subject to a limit on the total risk of our portfolio. Every minute, 我们可以选择买入或卖出投资组合中的每一种证券,在持有那些我们认为会上涨的证券之间保持平衡, and reducing the risks of our position. Naturally, 这个问题的很多方面对人工智能来说都很困难, 从确定哪些证券将增加或减少价格, to managing risk, to determining the best time to buy or sell them.

Rather than trying to train one AI to do it all, 我们可以用数学和直觉把它分解成三个子问题:

  • Prediction. The job of this AI is to simply predict the future! For example, we could say “given the observations of the world, 预测未来5天结束时每种证券的价格.“这仍然是一个非常困难的问题,但比原来的问题简单得多. 人工智能不需要担心其他市场参与者的反应, or even decide on an action. 相反,它只需要解决这个“监督”学习问题. We have many techniques to attack this problem, 从数据中手工制作“信号”并将它们组合起来, 让一个复杂的黑盒模型以任何可能的方式使用所有数据. 我们的许多研究人员把大部分时间花在这个子问题上.
  • Optimization. 这个人工智能的工作是将第一个人工智能的预测转化为我们可投资资金对每种证券的总体配置. 它将把更多的钱投入到我们认为会增值的证券中, 但我们会尝试分散资金,这样我们就不会把所有的钱都投在一家公司上——这是一个风险更大的头寸. 金融数学已经有很多解决这个问题的方法, 所以我们完全不需要从人工智能的角度出发, 但这里有足够的空间使我们的解决方案变得越来越复杂.
  • Execution. Given the target allocation from our optimization, how do we actually buy or sell to reach that target? For example, 让我们假设我们的人工智能在上午10点确定苹果股票明天会比今天更值钱, 在对风险进行调整后,它确定自己想再买9股,000 shares over the next 5 hours. Should it buy them all at once? You’d be sure to reach the target, 但现在可能没有足够多的人出售, and we might pay a high price. If we buy 30 shares every minute, we’d definitely get enough, 但是,基于非常短期的预测,也许某些时刻的价格会比其他时刻更好. 但是如果我们几分钟内不买的话,我们就得赶上了. Trading off all these concerns is a complex problem, but simpler than taking them all together, and one we can try to train an AI to do. Still, 这个问题在很多方面都是最难的,因为它触及了我们上面描述的问题——我们的行为会产生难以推理的直接后果, unlike in a game.

CQ9 has been working on these problems for many years, and will be working on them for many more to come. These are rich, complex, and difficult considerations, 没有任何一本书或学术论文可以让你找到解决方案. Instead, 我们的研究人员必须借鉴相关领域的见解, their own intuition and creativity, and a rigorous scientific approach to make progress. 如果你感兴趣,就申请加入我们的团队吧!

Don't Miss a Beat

关注我们,了解CQ9在工程、数学和自动化方面的最新信息.