知行编程网知行编程网  2022-06-11 11:00 知行编程网 隐藏边栏 |   抢沙发  16 
文章评分 0 次,平均分 0.0

AI交易系统建设指南:如何使用强化学习建立可盈利的算法交易系统

来源 | Dennybritz
转自 | 大数据文摘   编译 | 木槿

AI交易系统建设指南:如何使用强化学习建立可盈利的算法交易系统

在过去的几年间,我大约建立了四个半交易系统。第一个系统是一堆垃圾,第二个系统在我认识到它也是一堆垃圾后就放弃了,第三个系统是出于个人和政治原因放弃了,第四个系统在投入使用的第12个月到第18个月运作良好,然后利润下降,我打算从事其它工作并且缺乏动力重新投入。我研究过的某些系统用于金融市场,但最后一个用于加密市场。

在经历实战后有一番自己的心得,我把心得和需要注意的关键点写成了这篇文章。

   交易好比多人游戏

如果你上过一些经济学的课程,你第一反应可能是这样:

哈哈,新来的!有效市场假说!你是战胜不了市场的!全靠运气!

我想说的是像有效市场假说等经济学理论和现实世界相去甚远,以至于它们一点都不重要,但这并不意味着它们是错误的。它们是有趣的模型可以用于特定的场景,比如发表文章或拿奖,不过它们无法在凌乱的现实世界和感性思维的对抗中幸免。

如果你不知道有效市场假说,那么你很幸运,因为有时候无知也是一种幸运。

我不会在这里讨论它,因为你一定可以发现一个更好的观点。可以肯定地说,我坚信并建立了一个可获利的交易系统,该交易系统可以获得高于市场平均的收益。最后市场是否会使得该交易系统回归平均收益?可能会,不过这无关紧要,因为市场可能需要数月,数年乃至数十年的调整,高频交易系统就是如此。

你可以随着时间的推移发现新的机会并调整交易系统,我之前就是这么做的。市场通过调整,我的交易系统获得的收益开始减少,但通常市场调整需要十二个月以上的时间,如果有积极的动机,我可能会调整并改进交易系统使其重新获得超额收益。

与其从经济学的角度思考市场,我更愿意从博弈论或强化学习的角度思考市场,市场是不存在的。

人们所说的市场是许多代理人在一个环境中行动,试图使自己的目标最大化的一种新兴属性。

每个人的目标可能略有不同,有的人想把自己通过股票期权计划获得的股票卖出一个好价钱,有些人为了快速获利而进行套利,有些人试图根据新闻或图表模式来预测短期走势,有些人根据基本面进行长期投机。

有的是指定的做市商,为特定的资产或交易所提供流动性,以获得回报。每个人都可能是凭直觉和情绪行事,遵循某种隐性模糊算法(如图表),或者是凭数据行事的自动系统。所有这些代理人的行为产生被人们称为市场的东西。

你的目标不是打败市场,而是在你关心的时间范围内打败市场上的一些其他参与者。时间跨度这部分很重要,并不是每笔交易都有明确的赢家和输家,因为代理商在不同的时间范围(从微秒到数十年)内进行优化。

   交易者心态:都是相对的

如果你来自科技公司或有创业背景,转型到交易领域可能需要改变思路。产品和工程往往是绝对的,如果你的网站需要100ms的加载时间,那就很不错了,使其在99ms内加载,对用户终端的好处可以忽略不计,但这是对工程资源的浪费,对于创业公司来说也同样如此。

保罗·格雷厄姆常说,初创公司很少被竞争对手杀死,相反,它们是在自杀,它们失败的原因是找不到客户,没有稳固的商业模式,或者是创始人的问题,被产品稍好的竞争对手杀死是相当罕见的。

与之相比,交易有很大不同,它是相对的。如果你的竞争对手加载网页需要十一秒,而你只需要十秒,这很好。如果对手的数据更烂的话,有烂数据也挺好的。如果对手收取的费用很高的话,你收取高额的交易费用也行。市场是一个多人游戏,如果你在该领域是个糟糕的玩家,对手更糟糕,很明显你也能,这一点对你如何在市场中使用软件交易有直接影响。

   构建交易基础设施

注重相对性能对工程来说意味着什么,可能是很违反直觉的

在为产品型公司建设基础设施时,你会更倾向于使用经过实战检验的、能将风险降到最低的强大框架。如果别人已经发明了轮子,为什么还要重新发明轮子呢?使用已经被成千上万人采用的东西是安全的,这就是开源的魅力所在。使用AWS来托管你的服务器?使用Postgres来存储你的数据?使用JSON用于序列化?使用Python或Node来收集数据?使用用于调用API的开源库?下载Keras并结合你的数据训练一个人工神经网络?这是一个合理的想法,但你构建交易基础设施时应该三思而行。

广泛采用的技术是商品,如果和别人使用同样的技术,那么你的优势从何而来?构建一个产品时这并不重要,因为它是关于绝对服务级别的协议,但交易是相对的。自己打造的所有专业化和商品化的技术都是打败竞争对手的机会,通过构建混合云,可以降低延迟,通过高效的二进制格式存储数据,可以节省序列化时间,从而在开发过程中加快迭代,在生产中加快预测。通过交易所创建自定义接口,而不是使用现成的API,你可能会使用其他人无法使用的特定订单类型,或者通过处理交易所特定信息以获得信息优势,诸如此类。工程师非常讨厌构建高度专业化的非通用系统,我们喜欢通用化和抽象化,但专业化往往是交易中的优势所在。

你不需要从头开始,创建自己的编程语言来实现交易。你在交易的时候应该意识到采用的商品化技术,并且有意识地做出决定。上面的一些事情看起来很小,但大量微小的优势加起来就可以形成显著的优势。

   人工智能和交易

你可能会说这很有道理,但是我真的不想在基础架构方面竞争。相反,我想构建一个可以做出更准确预测的智能模型。这就是我的优势! 我听过很多这样的话,但我从来没有看到过这样的系统工作。

人工智能非常商品化的。我要说的是,它比优秀的基础设施工程、数据收集或来自领域知识的归纳偏差更商品化。如今,你可以轻松地下载最先进的模型,并在你的数据上运行它们。除非你处于一些相关度极高的研究最前沿,否则你不可能仅仅通过训练一个更好的模型就能获得显著的优势。

当人们意识到建立在糟糕的基础架构上的花哨的人工智能模型无法正常工作时,他们会放弃使用错误的数据训练的基础结构(其他人也使用过)。人工智能可以给你带来优势,但优势无法大到以至于可以忽略其他因素。你仍然需要建立良好的基础设施,良好的数据和适当的延迟等等。似乎很少有人愿意花时间在这些没有意义的事情上,如果把每一个事情都看作是一个乘数,其中一个非常接近于零,那么人工智能模型再好也不重要了

那么这些重要的事情又是什么呢?

  • 市场:选择正确的交易市场,不要选择大家都默认的显而易见的选择。在法律和技术上,进入市场的难度越大,你越有可能发现机会。流动性较差的市场可能会被成熟的基金公司忽视,因为它们的规模不符合他们的资产管理规模。同样,这对于那些追求好的API的工程师来说是违背直觉的,因为好的API意味着流行,而流行就意味着商品化。


  • 数据:想想哪些别人无法获取或者不容易获取的数据源,比如说,可能有一些数据会出现复杂的IP速率限制导致难以抓取,大多数人可能会选择放弃,这对你来说是一个好机会。对流行的API和开源软件保持怀疑的态度,因为这些资源别人也能轻易使用。


  • 延迟:即使你不打算和高频交易员竞争的话(这是一个坏主意),也不意味着你可以完全忽略延迟。更短的延迟可以让你的执行更容易,并且较少出现滑点。要注意你的系统主机在哪里,如何发送数据以及如何序列化等。


  • 模型:一般来说好数据比好的模型更重要,但是好的模型也可以成为优势。你要注意到,利用延迟保证了模型的复杂性。


  • 执行:模型再好不能执行也是徒劳。你收集的历史数据可能看起来与交易所的实际情况大相径庭,在你开始实盘交易之前,你是不会知道的。


   强化学习

距离我上一篇一文章的发表已有两年时间,我是否依然相信强化学习是市场中正确的交易方法?是的,我相信,我个人也用它取得了成功。不过,我承认要让它发挥作用需要有些小技巧。强化学习最重要的一个好处是,你不需要设置一个可区分的损失函数,相反,你可以直接优化某个时间范围内的盈亏。通过建立一个良好的模拟,你的模型可以通过学习保证鲁棒性,模型学习过程中会经历延迟、抖动、滑点和其它真实市场可能发生的事情。

如果使用监督学习的话,那就难多了,很多超参数需要恰到好处,比如说要在什么时间范围内优化、优化什么(收益取对数?仓位大小?)何时平仓、如何处理由延迟、拒绝订单、API问题等引起的随机性、如何处理外部数据等等。如果你真的很努力的话,我相信你可以做到这一点,并且依靠基于模拟的方法似乎是一个更有标准的解决方案。

并且我相信市场模拟是测试强化学习算法的好平台,市场模拟还有一些当前技术难以解决的问题。

  • 稀疏的正反馈:在随机探索和简单的奖励下,你发现好政策的可能性相当小。

  • 需要对未来日期进行泛化。研究人员在RL上测试训练集时,泛化往往被忽略了。

  • 有了好的模拟器,环境可以提供很多随机性的形式,比如延迟、抖动、API问题和滑移等。

  • 非稳定性:市场数据分布会随着时间的推移而变化,代理(系统)与人必须学会应对。

  • 观测中的低信噪比


   优化迭代速度


由于其他代理商会适应你的策略,因此大多数效率低下的问题都会转瞬即逝。具体多短?这取决于你的交易地点和方式,它们可能会持续几毫秒、几秒、几分钟、几小时、几天、几周或几个月。持续盈利的方法是保持善于识别短暂的机会,这就是基本的元学习。

优化训练模型时外循环的速度,你能越快发现新策略,调整模型和基础结构越好。围绕这一点构建你的基础设施,查询和加载批量历史数据的速度应该尽可能快,要特别注意反序列化成本。在构建具有匹配引擎的市场模拟器时,需要对其进行广泛的基准测试,实现远程过程调用(RPC)和来回通信延迟最小化。我们这里谈论的是数量级,我的第一个模拟器比最近的模拟器慢大概50倍。由于模型是通过仿真进行训练的,因此在训练或实际应用时意味着迭代速度提高了50倍。通过自动化数据可视化,你可以在获得意外结果时轻松查看它们。

   在市场下跌时你无法赚钱

我从不太懂交易的人那里听到的一个常见的说法和误解是:我运气好并且获利了,因为市场在涨。其实,很多个月我的损益表(PnL)看起来是这样的:(这是为了这个观点生成的,但我的真实数据和下表极其相似)。
       AI交易系统建设指南:如何使用强化学习建立可盈利的算法交易系统       
我只是做空了资产吗?不,我没有做空任何东西,因为我交易的市场是没有做空的。很少有市场一直下跌这种事情。当人们说市场下跌的时候,他们说的是一个特定的时间尺度,市场下跌可能是以每天或每小时为尺度绘制的,但这并不意味着只有在较短的时间尺度上才有下跌,它可能会有很大的波动。一旦你开始放大到秒级和毫秒级,总会有在小时线、日线或月线图上看不到的涨和跌,在不做空任何资产的情况下仍然可以从中获利。

就我个人而言,我在下跌趋势中(按小时或日线计算)赚的钱总是比上涨趋势多。我仍然不知道为什么会发生这种情况,可能是因为市场的多方有更大的流动性,或者是因为当价格开始下跌时,更多不知情的交易者提交错误的多单进入市场。

   学习交易

向诸位来自不同背景的交易员提出同样的问题,你会得到一系列不同的意见。

请注意,我用的是意见这个词,而不是答案或事实。因为交易是一个如此神秘的领域,很少有被广泛接受的真理。人们不共享相同的背景知识,并且使用不同的术语。如果你想学习交易,这不容易。我不知道有哪些在线资源在教授算法交易方面做的很好,你在网上找到的大多数课程和教程都是由大师编写的,他们通过教学赚钱,但从未建立过盈利的系统,并且可能会试图在向你推销他们的SaaS产品。

相关研究论文也是如此,我订阅了arXiv的q-fin.TR,论文的平均质量明显低于机器学习领域。偶尔也会有一些具好点子的文章,但绝大多数都是为了找工作和填充简历的实验,没有一篇建立过盈利的交易系统。很明显的是,那些运行一个盈利系统的人没有任何动力去发表与之相关的论文。阅读书籍《交易和交易所:从业者市场微观结构》和《金融机器学习前沿》是一个非常好的开始,但是在我看来,没有什么比边做边学或找导师更重要

相关报道:
https://dennybritz.com/blog/ai-trading/

<p style="white-space: normal;text-align: center;"><strong style="color: rgb(0, 0, 0);font-family: -apple-system-font, system-ui, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 0.544px;widows: 1;background-color: rgb(255, 255, 255);font-size: 16px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;letter-spacing: 0.5px;font-size: 14px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><strong style="max-width: 100%;font-size: 16px;letter-spacing: 0.544px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;letter-spacing: 0.5px;box-sizing: border-box !important;overflow-wrap: break-word !important;">—</span></strong>完<strong style="max-width: 100%;font-size: 16px;letter-spacing: 0.544px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;letter-spacing: 0.5px;font-size: 14px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><strong style="max-width: 100%;font-size: 16px;letter-spacing: 0.544px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;letter-spacing: 0.5px;box-sizing: border-box !important;overflow-wrap: break-word !important;">—</span></strong></span></strong></span></strong></p><pre><pre style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="max-width: 100%;letter-spacing: 0.544px;white-space: normal;font-family: -apple-system-font, system-ui, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;widows: 1;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section powered-by="xiumi.us" style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="margin-top: 15px;margin-bottom: 25px;max-width: 100%;opacity: 0.8;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="max-width: 100%;letter-spacing: 0.544px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section powered-by="xiumi.us" style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="margin-top: 15px;margin-bottom: 25px;max-width: 100%;opacity: 0.8;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section><p style="margin-bottom: 15px;padding-right: 0em;padding-left: 0em;max-width: 100%;color: rgb(127, 127, 127);font-size: 12px;font-family: sans-serif;line-height: 25.5938px;letter-spacing: 3px;text-align: center;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;color: rgb(0, 0, 0);box-sizing: border-box !important;overflow-wrap: break-word !important;"><strong style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;font-size: 16px;font-family: 微软雅黑;caret-color: red;box-sizing: border-box !important;overflow-wrap: break-word !important;">为您推荐</span></strong></span></p><p style="margin-top: 5px;margin-bottom: 5px;padding-right: 0em;padding-left: 0em;max-width: 100%;min-height: 1em;font-family: sans-serif;letter-spacing: 0px;opacity: 0.8;line-height: normal;text-align: center;box-sizing: border-box !important;overflow-wrap: break-word !important;">MIT校长评中美科技竞赛:胜利不是期盼对手的失利</p><p style="margin-top: 5px;margin-bottom: 5px;padding-right: 0em;padding-left: 0em;max-width: 100%;min-height: 1em;font-family: sans-serif;letter-spacing: 0px;opacity: 0.8;line-height: normal;text-align: center;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="font-size: 14px;">GitHub重大更新:在线开发上线,是时候卸载IDE了</span></p><p style="margin-top: 5px;margin-bottom: 5px;padding-right: 0em;padding-left: 0em;max-width: 100%;min-height: 1em;font-family: sans-serif;letter-spacing: 0px;opacity: 0.8;line-height: normal;text-align: center;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="font-size: 14px;">美国官宣117000名 IT 人失业,真是史无前例!</span><br  /></p><p style="margin-top: 5px;margin-bottom: 5px;padding-right: 0em;padding-left: 0em;max-width: 100%;min-height: 1em;font-family: sans-serif;letter-spacing: 0px;opacity: 0.8;line-height: normal;text-align: center;box-sizing: border-box !important;overflow-wrap: break-word !important;">数据分析入门常用的23个牛逼Pandas代码</p><section style="margin: 5px 8px;padding-right: 0em;padding-left: 0em;max-width: 100%;min-height: 1em;font-family: sans-serif;letter-spacing: 0px;opacity: 0.8;line-height: normal;text-align: center;box-sizing: border-box !important;overflow-wrap: break-word !important;">特朗普拿H1B签证开刀,LeCun吴恩达等实名谴责!<br  /></section></section></section></section></section></section></section></section></section>
AI交易系统建设指南:如何使用强化学习建立可盈利的算法交易系统

本篇文章来源于: 深度学习这件小事

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享