TradeMaster 是由新加坡南洋理工大学开发的一款基于强化学习的开源量化交易平台。为了更全面地评价和提升算法性能,我们推出了沙盒工具箱,同时搭配了易于使用的网页端平台。
项目主页:https://github.com/TradeMaster-NTU/TradeMaster
网页平台:http://trademaster.ai/
沙盒工具箱功能
PRUDEX-Compass:PRUDEX-Compass工具提供一系列评价指标和一个基准方法,帮助您系统性地理解和比较算法在多个维度上的表现。
市场状态建模工具:市场状态建模工具精准并可控地建模和标注市场中的不同状态,从而为策略优化提供更多方向。
市场价格模拟器:基于深度生成模型的市场价格模拟器能够根据市场的上下文信息生成价格特征,既可用于训练数据增强,也可以用于模拟极端市场情况进行压力测试。
1
PRUDEX-Compass
目前人们因强化学习算法在交易中表现出的强大盈利能力而关注它,却经常忽略其在其他方面上的性能。为了使强化学习算法在复杂金融市场中的交易行为更加稳定和可预期,PRUDEX-Compass 提供了一套系统性评价强化学习算法在金融任务中表现的流程以及可视化工具,包括17个评价指标,涵盖收益能力,风险控制,多样性,可解释性,鲁棒性,通用性 6 个维度。
使用PRUDEX-Compass测评 benchmark算法
如图所示PRUDEX-Compass可视化了八种不同算法的相对性能。以平均投资策略的表现作为得分五十的基准 (图中内圈六边形),所有算法的指标都被转化为了一个百分制得分以便于理解和对比。由于不同的交易任务有着不同的侧重,使用PRUDEX-Compass时可以根据任务灵活地选择部分指标进行评价,图中外圈标注了算法已运行的评价指标。
PRIDE-Star展现算法的收益能力,风险控制以及策略多样性
Performance Profile展现不同方法收益得分在4个不同金融市场中的分布
除此之外PRUDEX-Compass还配套了5个更细粒度的评价和可视化工具。其中(1) PRIDE-Star能够展现单个算法不同维度上的表现; (2) Performance Profile对算法在不同市场中的得分分布进行无偏评价,相比较于将表现简单总结为平均分的方法更加全面和鲁棒; (3) 市场数据t-SNE图将降维后的不同市场数据可视化以方便理解和对比市场之间的差异;(4) 投资组合热图能够可视化不同方法的持仓比重以评价方法之间的差异;(5)极端市场表现测试则可衡量算法在黑天鹅事件下的风险控制能力和可靠性。
AlphaMix 是一个基于风险感知的混合专家的通用深度强度强化学习框架
由于现有的基线方法在PRUDEX-Compass的评价中表现不佳,我们提出了一种基于风险感知的混合专家 (MoE) 的强化学习方法框架AlphaMix 。在交易决策中,投资组合经理会综合不同交易模型提供的策略的表现,控制风险并进行最终决策,AlphaMix 模仿了这一工作流程,在下游训练出多元化的强化学习算法并将它们集成,获得了在绝大多数情况中优于其他基线方法的性能。
目前PRUDEX-Compass已作为TradeMaster的一部分开源,项目地址为:https://github.com/TradeMaster-NTU/PRUDEX-Compass。
2
市场状态建模工具
真实金融市场中多变的市场状态为机器学习模型带来了一系列挑战,可能导致模型的过拟合与策略的不稳定,增大了训练和评价难度。尽管深度学习模型有着强大的拟合能力,在复杂的市场变化中端到端训练得到一个在任何市场状态中都能表现良好的模型绝非易事。对市场状态进行建模和标注,将市场切分为具有明确状态的片段将更好的帮助研究者优化和评价不同市场环境下的策略的性能和风险。然而,基于规则划分市场的方法依赖专家知识并具有很强的主观性,而基于模型 (如HMM) 挖掘出的市场状态则缺乏评价和解释的方法。
苹果股价的市场建模标注结果,其中蓝色为下降市场,绿色为震荡市场,红色为上升市场
基于以上问题,TradeMaster制作了一个不需要金融专家知识又可解释的自适应市场状态建模标注工具。通过数个易于调节的超参数,该工具可以将任意市场数据切分为具有明确语义的片段。
市场建模流程
在建模市场状态的过程中,原始数据在过滤高频市场波动后被切分为不可分割的最小片段, 之后这些片段根据时序相似度指标被迭代地聚合直至收敛, 并根据每一个片段由回归模型计算得到的斜率进行市场状态的分类标注。在标注市场状态后,算法可以针对不同市场状态有针对性的进行训练。
EarnHFT的算法流程示意图
例如在高频加密货币交易算法EarnHFT (https://arxiv.org/abs/2309.12891) 中,我们使用该市场状态建模工具将总长为三百万步的秒粒度的加密货币限价订单薄进行了市场状态标注。EarnHFT使用不同的市场状态数据分别训练不同的强化学习模型,使得这些模型拥有多样的策略风格,并挑选出一部分进入模型池。获得模型池之后,EarnHFT训练出一个模型作为router,根据分钟粒度市场信息从模型池中选择一个模型的策略作为最终的交易策略。EarnHFT相较于使用未经标注的数据集训练单一强化学习算法,提升了至少30%的收益率。
与此同时,在不同市场状态下分别进行评价也有助于理解算法交易策略的风格,提供更进一步的改进思路。该市场状态建模工具已被收入TradeMaster中,与此同时我们还在网页平台 (http://trademaster.cpolar.io/evaluation-toolbox)上提供了该工具的服务。除了使用我们的预设数据集之外,用户也可以在线对自定义数据集进行市场状态的建模以及标注。
3
市场价格模拟器
金融数据的低信噪比,非平稳性和极端市场为训练以数据驱动的机器学习交易模型带来了许多困难。大量噪声会影响模型的准确性,变化的市场会导致模型泛化性不足,极端市场会使模型的策略不鲁棒。除了从优化模型的角度来解决这些挑战,TradeMaster也尝试从数据端来辅助模型学习。
历史市场数据固然是最重要的市场信息来源,但是其也存在一定局限性。由于历史数据只提供在特定时间段和市场状态下的已经发生的事件,我们无法对其进行任何反事实的推断和假设。与此同时,静态的历史数据也可能没有包括所有类型的极端情况,导致模型缺乏鲁棒性。因此一个能够可控地生成多样的合成数据的市场模拟器可以作为历史数据源的有力补充,帮助我们更好的评价和优化模型。
Market-GAN使用的数据样本, 其中历史信息,市场状态,股票代号为控制生成数据的上下文信息
基于以上考量, TradeMaster开发了一个基于深度生成模型的市场价格模拟器-- Market-GAN(https://arxiv.org/abs/2309.07708)。Market-GAN可以根据给定的市场上下文 (历史数据,市场状态,股票代号) 控制生成的市场价格序列。
Market-GAN的对抗训练流程, 其中红色模块为autoencoder,绿色模块为上下文supervisor,蓝色和黄色模块为GAN
Market-GAN中包含一个autoencoder用于挖掘低维表征,数个上下文supervisor以及一个用于生成市场数据的GAN网络。Market-GAN的两阶段预训练-对抗训练流程使得其能够生成符合上下文控制信息的低噪声多样化数据。
2013-06-01后苹果公司若处于下降市场的64个生成的数据样本的平均走势
2013-06-01后苹果公司若处于上升市场的64个生成的数据样本的平均走势
基于历史市场数据,Market-GAN可以生成一段符合指定市场状态风格的未来市场的合成数据, 如图分别展示了一段在“2013-06-01后苹果公司若处于下降/上升市场”的64个生成的数据样本的平均走势。在控制信号的作用下,Market-GAN倾向于生成更为极端的市场数据。在实验中我们发现使用该极端合成数据对高噪声的真实市场数据进行数据增强可以缓解预测器的过拟合,增加其预测真实市场时的准确性。
不同市场状态下的生成数据(左)相较真实数据(右)更加有区分度
与此同时,Market-GAN生成的数据在还原关键市场特征的同时相较真实数据在不同语义上区分度更大。因此在数据增强之外,生成的数据也可以用于交易策略在极端市场下的压力测试。
该模拟器的网页端服务现已于TradeMaster网页平台 (http://trademaster.cpolar.io/MarketGAN)上线,支持道琼斯指数中的29支股票从2000-06-01到2023-06-01时期的数据的在线生成与下载,以便应用于下游任务。
4
结语
通过使用TradeMaster沙盒工具箱,您不仅能更深入地理解市场状态和算法表现,还能在实践中不断优化和改进交易策略。从全面的评价工具到市场模拟器,每一个功能都是为了让您能在复杂和多变的金融环境中,找到更为稳健和可靠的交易解决方案。欢迎体验TradeMaster,与我们一同探索机器学习量化交易的新纪元!