收好了!来自摩根大通的算法交易机器学习指南

Posted WHnightingale

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了收好了!来自摩根大通的算法交易机器学习指南相关的知识,希望对你有一定的参考价值。


JPM(摩根大通) 一直是银行金融行业中积极应用大数据和人工智能技术的典范和先行者。2019年5月,他们在 NIPS 上提交了一份题目为 Idiosyncrasies and challenges of data driven learning in electronic trading 的报告(其实是一篇小论文)。不过直至最近,内容才得以对外公布。这篇并不长的文章中,他们探讨了算法交易中机器学习等技术的应用情况,也分享了摩根大通的最新经验。


去年那份巨长的报告出自 Marko Kolanovic 之手,素有「半人半神」之称的 Marko Kolanovic 是 JPM 宏观量化研究团队负责人。另外一位合作者是去年四月刚从美林银行离职的量化策略师 Rajesh Krishnamachari。


不过,这篇报告并没那么长,共由五位 JPM 员工共同完成。他们分别是 Vacslav Glukhov(EMEA 电子交易量化研究中心负责人)、Vangelis Bacoyannis(电子交易定量研究中心副总裁)、Tom Jin(量化分析师)、Jonathan Kochems(量化研究员)及 Doo Re Song(量化研究员)。


2018 年 5 月,我们就在神经信息处理系统大会(NIPS conference)上提交过这份报告,不过直到最近才得以公开。想知道如何将「数据驱动的机器学习」用于算法交易的朋友们请注意了,报告概要如下:


如今算法控制关键交易决策,客户设置部分参数


算法在金融业务中控制「微观层」的交易,如股票和电子期货合约:「算法决定交易的波段、价格及数量。」然而,算法并不会完全按照人们的预期工作。JPM 提醒客户,「算法通常只是把具体约束及偏好下的交易指令告诉经纪人。


例如,客户可能想在投资组合时保持货币中立,以实现买卖数量大体相等。客户也可能会指定某组交易证券的主题、国家或行业。


客户下单交易时,他们也许想控制交易执行对市场价格影响的方式(操控市场影响)、或控制市场波动影响交易的方式(控制风险)、或指定一个能够平衡市场影响与风险的紧急程度。


交易委托账本包含的数据十分复杂


编写电子交易算法是一件让人抓狂且十分复杂的任务。


举个例子。JPM 分析师指出,一局国际象棋每人大约要走 40 步,一局围棋大约走 200 步。然而,即便是中等交易频率的电子交易算法(每秒都需要重新考虑交易选择)每小时大约要完成 3600 次交易选择。


问题远不止于此。当绘制国际象棋与围棋数据时,如何在所有可选项中选择走哪一步、下一步又该如何应对,这都是需要解决的问题。然而,一次电子交易行为包括了许多步骤。JPM 分析师认为「这就是一个子订单(child order)集合。


什么是子订单(child order)?JPM 解释道,系指可能会「提交被动买入订单和主动买入订单」的单次(single)交易。被动子订单是交易委托账本中指定价位水平的交易,因此,能为其它市场参与者提供流动性。提供流动性可能最终通过抓住局部上涨趋势,在交易时获得回报:更好的交易价格,或者更好的交易对象。另一方面,主动子订单会被用来基于预期的价格变动,捕捉交易良机。上述两种情况都会产生单次(single)交易行为。最终,交易行为范围被无限扩大,根据瞬时交易特征的组合数量呈指数增长。


诚然如是。


人工编写的交易算法容易变得庞大而笨拙


人工编写电子交易算法时,情况会迅速变得复杂。


过去,JPM 分析师认为:电子交易算法融合了许多科学的量化模型;量化模型是「从定量角度描述世界的运行机制」;算法包含着「代表交易员和算法使用者的实践经验、观察结论和风险偏好的规则和启发式方法。」


想把算法的方方面面都说清楚是十分困难的。「多数人编写的算法代码冗长至极且难于维护及修改。」JPM 认为,每当客户目标及市场条件变化时,人工算法都深感「功能拓展」之难。


随着时间的推移,算法将学会「积累多层逻辑、参数及微调,以处理特殊情况。」


监管让人工编写的算法再次变得更加复杂


此外,交易算法还必须应对诸如 MiFID II(新版欧盟金融工具市场指导)的监管及「最优执行」的理念。因此,算法编写必须考虑「变化发展的市场条件与结构、监管约束及客户的多重目标与不同偏好。


如果算法编写实现自动化且满足各类约束,一切都将变得简单。


编写交易算法时,使用数据的三种文化手段(cultural approaches)


机器学习文化尝试运用更多复杂且有时晦涩的函数表达观测结果,不要求函数能揭示潜在流程的本质。


算法决策文化更关注于决策,而非建模。算法决策文化尝试训练电子代理(譬如算法)以区分决策好坏,而不是试图映射出世界运行机制。如此一来,理解算法为何做出决策,及如何利用规则、价值及约束确保决策可被接受就成为新的问题。


算法必须实现最优执行率与最优执行计划之间的平衡

算法一旦写完,首先需要解决平衡问题:快速交易,其风险是影响市场价格;慢速交易,其风险是成交价格变化或将引起交易损失(升了,买家赚钱;跌了,卖家赚钱)。


是什么构成了成功交易?并非总是清晰可见


算法交易成功与否很难界定,因为这与如何权衡快速交易(效率)与固定价格交易(最优)有关──而这又取决于客户如何设定他的优先等级。


例如,算法的目标可能是与市场其他部分融合(blend with the rest of the market)。这意味着,需要平衡极速交易与价格变动引起的市场影响、或是通过慢速交易确保价格与交易反向。算法编写人员需要寻找一种表达信息和行为的方式,该方式能与模型与机器学习方法相匹配。尽管「市场庞大、多变,规模和订单状态经常变化,父订单与子订单数还不够作为模型输入。」,市场状态都需要能被总结和概括出来。


不过,这也无助于抓住瞬即逝的绝佳机会。而且,JPM 认为,算法交易执行或取消后,就无法判断交易的好坏,但这一点并非总是那么显而易见。「局部最优并不需要转变成全局最优。现在失败的交易也许以后某天又会赚的盆满钵满。


即便可能出现问题,JPM 已经开始使用强化学习算法处理交易


JPM 正急于掌握运用动态规划及奖惩机制的各种强化学习算法。


JPM 交易员说,「我们目前使用第二代基于强化算法的限价委托引擎,于有界行为空间内训练算法,选择具备差异化奖励、步长及时程特征的短期目标。」然而,训练算法十分复杂──如果你尝试通过在多重处理设备上同时执行算法以实现算法的平行训练,会得到错误结果。原因是算法与环境之间的闭环反馈。但如果你不这么做,而尝试基于梯度的算法训练,最终会得到大量无关经验,无法记住好的交易行为。


JPM 尝试应用超参数优化技术避免此问题。这代表每次训练都有多个抽样事件,并会尽早停止无意义的优化路径。银行应用超参数优化技术,通过运行平行训练项目训练算法。


JPM 表示,研究的主要目标已转变为「策略学习算法」,通过在固定参数条件下匹配特定商业目标以最大化累积报酬。分层强化学习可用于要求必须「生成可预测、可控制及可解释行为」的交易算法。在分层方法中,根据抽样频率和粒度水平将算法决策划分为不同组别,使得算法能够模块化,其求解效果也容易甄别。


JPM 已开发具备「某种特征」的强化学习算法,以应对长尾效应


在多数强化学习情况中,JPM 强调算法学习行为通常会产生更好的结果。然而,在金融业,过度关注平均结果是错误的──想想长尾效应。基于此原因,银行的量化专家始终基于多维度与不确定结果评价构建算法。


为实现该目标,银行会基于期望效用的未来分布对比结果,对不确定结果(长尾)排序──即 CERL(确定等值强化学习)。


通过 CERL,JPM 注意到算法能够有效获得基于风险偏好的特性。「如果客户是风险厌恶,结果的不确定增加会降低行为的确定等值奖励。」算法很自然的需要折扣因素 γ──代表结果分布,分布范围与风险正相关。算法将更加关注远期目标。


还有许多非常有用的开源强化学习框架


如果你也想构建自己的交易算法,JPM 研究人员推荐了许多学习网站。他们给出了许多有益的早期开源强化学习框架,包括 OpenAI baselines、 dopamine、deepmind/trfl 及 Ray RLlib。

 


官方网站|http://www.hscxai.com/

以上是关于收好了!来自摩根大通的算法交易机器学习指南的主要内容,如果未能解决你的问题,请参考以下文章

摩根大通CEO:我对比特币没兴趣 奈何客户喜欢

摩根大通:以太坊优于比特币,以太坊40万高位可期

摩根大通花旗银行面试算法真题:选择排序

《从python精通到机器学习量化交易全栈学习》

独家 | 全解用Python建立能源市场算法交易的机器学习框架(附链接)

全解用 Python 建立能源市场算法交易的机器学习框架