作者:老余捞鱼
原创不易,转载请标明出处及原作者。
写在前面的话:
日内价格波动对交易策略的重要性不言而喻,尤其是美跨式交易策略(The American straddle)。由于无法预测所有影响股价的因素,本文采用多元蒙特卡罗模拟来测试不同的价格路径,以评估交易策略的成功概率。文章介绍了如何使用多元蒙特卡罗模拟分析 UBER 股票的开盘、最高、最低和收盘价(OHLC),并预测未来 n 天的R日内价格走势。
若你是一名每天都进行美股交易的散户,那想必你曾遇到过如下情形:股票价格朝着某一方向剧烈波动后,又重新回到了开盘价附近。亦或是在整个交易日中股价都较为稳定,然而在下午收盘时又有消息传出,使得盘后 / 盘前市场中的股价大幅波动。这些价格行为,无论是因为大型机构对数十亿美元进行重新平衡而产生价格滑点所致,还是由于预期的公司公告引起,都有可能决定仓位的成败。从美跨式交易的使用角度来看,这属于最为理想的情况。
为什么选择多元蒙特卡罗模拟(multivariate Monte Carlo Simulation)而不是复杂的机器学习(ML)算法呢?预测价格走势是极具挑战性的,因为股票价格受到众多因素的影响。明天可能会有新的经济数据公布,竞争对手可能会推出更优质的产品,对公司至关重要的首席执行官可能会宣布退休,战争可能会爆发,COVID 等情况也可能发生。要考虑到所有这些因素几乎是不可能的。
对于蒙特卡罗模拟,我喜欢将其比作漫威电影《复仇者联盟:无限战争》中的奇异博士。如果你不了解这部电影,奇异博士是一个超级英雄角色,他是团队的一员,拥有预见无限宇宙的能力。在与反派萨诺斯的战斗中,奇异博士查看了战争中所有可能的结果,找到了通向胜利的事件路径。蒙特卡罗模拟的本质也是如此。我们利用过去观察到的价格走势,从当前价格推断出未来 n 天内的 m 条价格路径。通过这 m 条价格路径,我们可以计算出其中有多少条对我们有利。根据这些路径,我们可以决定是否应该参与交易。
一、数据(Data)
在理想状态下,挑选带有刻度线的专业数据源无疑是更为高阶的选择。然而,鉴于性价比方面的考量,我选择免费的雅虎财经数据源。采用每日数据的问题在于,我们会错失全天的所有价格动态。诚如动机部分所提及,正因上述缘由,很多时候你会目睹较大幅度的价格波动。那么,究竟怎样才能获取日内价格走势呢?答案便是运用每日 OHLC 价格。通过使用 OHLC,我们必须借助多元方法进行模拟。首先,让我们针对 UBER 的 OHLC 数据展开一番探索,瞧瞧如何将这些变量加以结合以进行模拟。
OHLC:这是金融领域中常用的一种价格表示方法,它代表开盘价(Open)、最高价(High)、最低价(Low)和收盘价(Close)。在金融市场中,尤其是在股票、期货、外汇等交易领域,OHLC 数据被广泛用于分析价格走势和市场行为。通过观察一段时间内的 OHLC 数据,可以了解资产在特定时间段内的价格波动范围、趋势以及市场的活跃程度。
二、分析(Analysis)
观察 OHLC 数据的价格走势,你会发现价格之间的差距有时很大,有时很小。例如,在 2024 年 5 月左右,你可以看到当日最高价达到峰值,而收盘价接近开盘价。这种价格走势可能为交易者带来日内所需的利润。
价格通常是非稳态的,因此需要进行一些转换才能使其成为稳态。我们可以通过以下转换计算得出转换变量。
通过计算每个 OHLC 变量之间的对数收益率,变量会变得更加静态。这可以通过运行增强型 Dickey Fuller 检验来验证。
Augmented Dickey Fuller Test results:
Random variable log range is Stationary
p-value is 5.528319339238798e-06
Random variable open close is Stationary
p-value is 0.0
Random variable after market is Stationary
p-value is 1.4682759344310902e-17
Random variable open low is Stationary
p-value is 8.112066684592019e-07
Random variable open high is Stationary
p-value is 8.751210005436563e-08
从折线图中可以看出,没有出现普遍的趋势。通过 ADF 检验,我们得到所有变量的 p 值都小于 0.05,这表明时间序列现在是静态的。既然变量是静态的,那么它们就非常适合建模和分析。
当把对数收益率与对数范围、开盘低点和开盘高点等变量绘制成图时,你会发现盘中价格有一些滑动的迹象,但最终又回到了原来的价格。对于能够实现盈利的美式跨式交易策略来说,了解这些信息是非常重要的。
为了使用多元蒙特卡罗模拟对所有变量进行建模,我们需要了解它们的一些特征。首先是它们的分布情况,其次是它们之间的相关性。如果它们之间没有相关性,我们就可以对它们进行独立采样。如果它们之间存在相关性,我们就需要考虑它们之间的关系。通过下面的图表,我们可以更清楚地了解这一点。
在处理“对数收益率”这类变量时,我使用“对数收益率”这个表述,因为这基本上就是我在处理 OHLC 变量之间的关系;它们的分布肥大的尾部。尾部是由于极端离群事件造成的。对于盘后和开盘收盘,这些变量的两端都有肥尾,因为其值可能为负,也可能为正。就这些变量而言,student-t 分布最为合适。另一方面,log range 和 open high 始终为正,而 open low 为负。这些分布会有偏度,指数分布或伽马分布更可能是最佳拟合。通过观察散点图,我们可以发现一些线性关系正在形成,这给我们一个信号,即我们不能简单地对变量进行独立模拟。
从散点图和相关热图来看,开盘低点-开盘收盘和开盘高点-开盘收盘变量之间存在很强的线性关系。这在直觉上是有道理的,开盘高点越极端,开盘收盘变量就越有可能在交易日结束时倾向于更高的正收益。低开与收盘之间的反比关系也是如此。同时,没有一个变量与后市变量存在任何关系。
根据上述信息,我们现在明白了在用多元方法建立模型时应如何处理这些变量。鉴于与盘后变量没有任何关系,可以对其进行单独取样。接下来,可以将开盘收盘作为开盘低点和开盘高点的自变量。由于它被视为自变量,因此也可以单独进行模拟。要模拟高开和低开变量,我们可以使用回归模型来模拟这些变量。
利用开盘收盘价预测开盘最高价和开盘最低价有多种回归模型。简单的线性回归模型、多项式回归或基于上述散点图颜色协调的量化回归,使用开盘收盘百分位数排名。在这种情况下,当两个因变量的开盘收盘价接近 0 时,我们需要在线性模型中出现结构性中断或弯曲。为了简单起见,我们首先使用多项式回归模型。
上图直观地显示了以开盘收盘价作为预测因子,对开盘最低价和开盘最高价变量的历史数据拟合多项式回归模型后的最佳拟合线。当我们绘制两个回归模型的残差时,可以得到下图。
3 x 2 图形的第一行表示高开和低开的拟合多项式回归模型的误差分布。理想情况下,我们希望这些分布呈正态分布。但低开度是负数,而高开度是正数,因此分布显示出偏斜。第二行的 qq 图也显示了同样的情况。第三行是误差与实际值的对比图。同样,在对这些图进行回归分析时,我们希望看到散点图呈现零模式。然而,随着高开值的增加和低开值的减少,我们看到了一种扇形的性质。
这表明,随着相应变量值的增减,可变性也在增减。虽然对于我们的回归模型来说,这些情况在学术上并不理想,但考虑到我将模拟这些值,我决定继续下去。此外,我还将通过从与上述误差拟合的 weibull 分布中采样,将噪声添加回预测值中。最终的回归模型如下所示。
Betas (β) 0、1 和 2 是模型的系数。Epsilon (𝜖) 是一个从伽马分布中采样的随机变量,与训练模型的误差相拟合。
多元模拟的步骤如下:
- 对历史后市变量拟合 student t 分布,并模拟 n 个样本。
- 对历史开仓收仓变量拟合 student t 分布,并模拟 n 个样本。
- 以开盘收盘价为自变量,开盘最高价为因变量,拟合多项式回归模型。
- 计算模型在其所训练的历史数据上的误差,并拟合 Weibull 分布。
- 利用训练模型的系数和步骤 2 中获得的 n 个样本,计算出 n 个高开样本。
- 从步骤 4 中的误差分布中生成 n 个样本,产生一个误差随机变量。然后将步骤 5 中的高开随机变量与本步骤中生成的误差随机变量 OH + E 相加。
- 对于低电平开路,重复高电平开路的 3 至 6 步骤。
执行以下步骤后,得出以下个体分布和联合分布。
根据上述所有变量的配对图,将实际值与模拟值进行比较后发现,个体分布和联合分布都非常相似。
三、结论(Conclusion)
从前面的单个分布和联合分布图可以看出,模拟多个变量的步骤非常有效。由于它比较接近,因此可以在多元蒙特卡罗模拟中使用这些步骤来模拟从当前价格算起 n 天后的 OHLC 价格。虽然效果不错,但仍有一些地方需要改进。首先,多项式回归可能不是最佳的拟合方法,另一种线性模型解决方案可能会产生更准确的结果。其次,这并不是一个适用于所有股票的稳健解决方案,它只特别适用于 UBER。其他股票的计算变量可能有不同的关系和分布。本文观点总结如下:
多元蒙特卡罗模拟是一种有效的方法来预测股票价格走势,尤其是在无法准确预测所有市场因素的情况下。
对数收益率的转换和稳态性检验对于建立模型至关重要,这有助于确保模型的准确性和可靠性。
价格行为的分析可以揭示交易策略中的利润机会,特别是对于日内交易者和使用美式跨式交易策略的投资者。
选择合适的概率分布来拟合股票价格数据是模型建立的关键,如 student-t 分布、伽马分布和Weibull分布。
多项式回归模型在某些情况下可能不是最佳选择,需要根据具体情况考虑其他线性模型解决方案。
模拟结果表明,通过多元模拟可以得到与实际数据相似的分布,这为评估交易策略的成功率提供了依据。
对于不同的股票,可能需要定制特定的价格行为模型,因为每只股票的变量关系和分布特性可能都不相同。
本文内容仅仅是技术探讨和学习,并不构成任何投资建议。
转发请注明原作者和出处。