编辑:Joshua
文章部分翻译自The Ocean
上周,我们通过时间序列分析课程开始了我们的算法交易。现在,我们引入均值回归作为模型更进一步地探讨算法交易。当然,还是要重申一下,从来没有一个正确的模型,建立一个有利可图的策略需要良好的数据管理,微调参数和优化执行。
一、数据的简述
数据是算法交易的命脉,它是你识别初始模式,策略回测以及确保模型实时响应的方式, 但更多数据并不一定更好。它需要花时间在一种简单的格式中去组织和清理数据,例如,将值从整数更改为浮动小数或将数据以分钟或秒为单位转换为毫秒。测试大数据会占用服务器空间并降低计算机性能。模型中过多的变量可能导致多重共线性,使其中参数估计值变得不稳定并且难以分配阐释力。有一个适当的平衡点需要考虑, 我需要探索多少数据,以及我可以有效和高效地管理多少数据。
二、制定重审战略
1.确定战略的类型
alpha生成,利差捕捉,套利,做市,事件驱动等都是可以选用的战略模型,并没有哪种策略会更胜一筹。这实际上都取决于风险/回报预测,以及实施和测试情况。
2.生成持仓信号
有进入/退出信号也是非常重要的。如果你只有一个仓位,就非常简单了。对于多个仓位来说,一定要确保你的仓位不重叠和/或不矛盾(即你的模型让你在同一时间,同一资产进入和退出仓位)。进入信号通常更容易创建 - 一旦你的模型触发'命中',你就开始交易。退出信号可能有点棘手 - 你可能会取的一些小的快速胜利,但你可能也会想到,'如果我再等一会儿,或许我可以得到更高的分数'。因此,你在退出时的决定(按照总利润或止损定义)取决于你的风险承受能力 ——持有仓位的时间越长,所面临的不确定性就越大。
3.回溯测试并优化模型的参数
回溯测试是指在与其进行实时交易之前根据历史数据测试您的模型。你可以在受控环境中,在许多不同的时间段或场景中模拟结果,以查看模型在各种条件下的性能。也可以使用'参数'(例如,我应该使用一个或五个滞后期?)来找到一组产生一致、正确的结果,针对您的风险/回报预测进行优化。您可能需要运行很多次迭代和模型配置才能找到有价值的策略。对参数的微小变化可能会产生很大的,有时甚至意外的影响。这就是为什么收集数据,针对它测试模型以及不断更新/微调新数据的重要性。
4.考虑执行等外部风险因素
没有模型可以预测未来,本质上,模型是世界的一种简化的表示。在易变的加密货币市场中,这一点在执行时尤为明显。例如,资产的当前价格为1.00,您处于多头仓位,且止损值设置为0.95卖出。假设价格不是连续更新,而是间隔更新,那么实际看到和可以交易的下一个价格实际上是0.90。那么,即使您假设的“最大损失”为0.05,您仍然会以0.10的损失进行出售!这个问题是由于价格内的流动性和延迟性造成的(这是加密货币交易中常见的问题,尤其是DEX)。
另一个可以影响战略盈利能力降低的外部因素就是是交易成本。即使是一个经过完美反复测试的模型也可能是无利可图,特别是如果建模人员没有考虑到交易成本(不仅通过费用而且通过滑点和其他因素来衡量)。如果你的实时策略性能偏离了你的回测,那么就需要深入研究其中的问题了。我们将在后面的课程中重点介绍关于加密货的一些问题。
5.评估基准回报
观察回报的幅度可能会产生误导,因为如果您投资于较大的仓位,利润自然会更高。人们使用的最常见基准是夏普比率:
夏普比率将你的策略表现放在更大的环境中,即你为实现这些回报所承担的风险或波动性。夏普比率越大越好,这意味着获得更高的回报或低波动率来获得这些回报。其他需要考虑的因素包括尾端风险的提取、每笔交易的平均回报和平均持有期。
三、均值回归模型
均值回归模型的假设是,如果资产价格偏离其平均值,则它注定会回归到平均值。在许多市场中,这在许多市场都是一个公平的假设 ,即如果价格下跌得太低,那么很多市场参与者就会认为价格很便宜。因此,当许多交易商购买时,它就会提高价格 ,回到平均值。反过来也是如此 ,如果被视为“昂贵”,交易者将卖出以获取(可能是暂时的)收益。因此,均值回归模型采用“低买高卖”的思维方式,建模者就需要去确定适当的“均值”水平是多少。
什么会导致价格偏离其均值?新闻事件往往会引起最大的变动,这可以是一个新的产品发布,盈利呼吁,或诉讼,都有可能将价格推向任何方向。即使是推文或知名参与者的评论也会对价格产生重大影响。请注意,普遍看法是(至少在均值回归背景下), 这些事件或导致价格偏差的其他因素是一次性的,价格最终会回归,但也可能存在真正的突破,就是当平均价格水平出现永久性而非暂时性的变化时。这就是为什么在模型中要包含止损参数 ——你愿意承担损失的最大金额非常重要。
让我们深入研究模型背后的数学。在离散时间均值回归模型中,我们可以将价格变动建模为:
因此我们可以看到,我们的价格预测是我们的价格在时间t偏离平均值多少乘以一些常数K的函数。K可以被认为是“均值回归的速度” - 更大的K意味着我们期望价格更快地回归到均值。该模型实际上是具有一个滞后期的自回归模型的扩展,因为我们在等式中没有使用外部回归量。
技术说明:在连续时间内,使用微积分,均值回复模型的另一种常见形式是Ornstein-Uhlenbeck过程。
四、汇总整合
在实践中,我们必须确定价格需要偏离平均值多少才能在统计上足以占据一席之地。常用的方法是使用置信区间、相对强度指标、布林格带,甚至是偏离移动平均值的固定标准差。
使用数据表,我们看到收盘价的简单平均值为1.0059,标准差为0.0893。因此,一个标准差置信区间为(0.9166,1.0952)。假设我们只在价格突破这个区间时才持有仓位,如果我们从第1天开始,我们的第一个仓位将在第4天拿下,因为1.18在不在区间之内。我们在这里采取做空,相信价格会回归到1.0059的平均值。由于价格确实在第5天回归,所以这是一个盈利仓位。
这个例子忽略了均值回复速度参数,并设置了适当的止损 - 通过回溯测试可以优化每一个参数,以探索如何以最小的风险实现最大化利润。例如,你可以设置止损,当你的止损超过3个标准偏差时,就存在于该仓位 - 这就意味着一个新的平均价格水平。或者它应该是2个标准偏差 - 你可能有较小的利润,但面临更小的风险。与所有算法交易一样,你自己的目标和风险承受能力将会推动你很多的建模决策。
如果我们的文章对您有帮助的话,欢迎点赞、转发和关注我们