大家好,我是橙哥!在本篇文章中,我将展示 如何将均值回归与LSTM神经网络相结合,并设计一个策略来交易比特币,在两年内实现60%的回报率 。文章涵盖数据预处理、模型训练、策略实施和性能评估,风险管理等过程。 点击此处或在文末获取本文完整源代码。
为什么用均值回归和LSTM?
理解均值回归
均值回归是一种交易策略,表明 资产价格往往会随着时间的推移回归到其历史均值 。交易者利用这一策略的方式如下:
-
当价格低于均值时买入资产
-
当价格超过均值时卖出
这一策略假设均值的偏离是暂时的,价格将随着时间的推移回归到其平均值。这种现象已在各种市场和资产类别中观察到。
LSTM的作用
LSTM是专门为金融时间序列数据设计的神经网络。它擅长 通过“记住”数据中的长期依赖关系来识别模式和预测未来价格走势 。研究表明,LSTM在预测金融市场趋势方面具有有效性。
通过结合LSTM与均值回归,我们可以创建一个预测优势,从而增强这一策略的盈利潜力。
导入库
我们导入用于数据检索(yfinance)、数据操作(pandas, numpy)、可视化(matplotlib, mplfinance)、预处理和评估(sklearn)以及构建神经网络(tensorflow, keras)的库。
获取加密货币数据
然后我们获取过去七年中比特币的每日价格数据,确保模型有足够的历史数据。
数据集包括开盘价、最高价、最低价、收盘价、调整后收盘价和成交量等信息。
数据预处理
为LSTM模型准备数据,我们计算了捕捉价格趋势和波动性的技术指标。
我们计算包括移动平均线、布林带、RSI、MACD、动量和ATR在内的技术指标。 这些指标有助于捕捉趋势、动量和波动性 ,对价格预测和信号生成至关重要。
可视化技术指标
让我们对其中的一些指标进行可视化。
下图显示了比特币的收盘价以及20天和50天移动平均线,以及布林带。这些指标有助于可视化价格趋势和波动性。
为LSTM模型准备数据
我们对数据进行处理,并创建LSTM模型所需的序列。
我们按照60天的序列长度来捕捉每次预测的两个月的历史数据,在提供足够长的回溯时间和计算效率之间取得平衡。
将数据拆分为训练集和测试集
我们将数据拆分为训练集(5年)和测试集(2年),并确保没有数据泄露。
通过将数据分为5年用于训练和2年用于测试,我们确保模型使用过去数据训练,未来数据测试,从而避免数据泄露。
构建和训练LSTM模型
该模型由堆叠的LSTM层和用于正则化的dropout组成。
我们的模型首先使用一个包含128个单元的LSTM网络层,并应用L2正则化来防止过拟合。我们采用0.3的dropout率进行正则化。接着是一个包含64个单元的第二个LSTM网络层,用于捕捉更抽象的模式。最后,我们使用一个全连接层来生成输出。
预测并对模型进行评估
我们对测试集进行预测,并使用 MAE、MSE 和 RMSE 来评估模型的性能。
评估结果:
MAE: 0.1483047224232923
MSE: 0.04917100263081512
RMSE: 0.22174535537596976
该模型在测试集上达到了0.1483的平均绝对误差(MAE)和0.2217的均方根误差(RMSE),表明预测性能较好。
同时将其预测转换回原始尺度。
预测价格与实际价格高度一致,表明模型已经学习了潜在的模式 。
实施交易策略
我们基于模型的预测和技术指标来应用均值回归策略。
我们的策略在测试期间生成了133个买入信号和142个卖出信号。这表明模型识别了多个交易机会,其中资产相对于其预测均值被低估或高估。
模拟交易并实施风险管理
我们模拟交易,初始资本为500美元,并考虑了交易成本、止损和止盈机制。
基于生成的信号执行买入和卖出订单,从而模拟交易,同时加入交易成本、止损和止盈规则。
计算关键绩效指标
我们计算关键绩效指标以评估策略的有效性。
我们的策略 在两年的测试期内实现了60.20%的总回报率 ,将初始的500美元增长到约800美元。 年化回报率为32.09% 。 夏普比率为0.94 ,表明相对于所承担的风险,回报是良好的。 最大回撤为-16.88% ,显示了从峰值到谷底的最大下降幅度,考虑到回报率,这一回撤是可以接受的。
可视化交易信号
我们在蜡烛图上绘制买入和卖出信号,以便更好地可视化。
该图表直观地展示了该策略如何通过生成的买卖信号利用价格波动。
绘制投资组合价值走势图
随时间变化的图表我们可视化投资组合价值随时间的变化,以观察策略的执行效果。
投资组合价值随时间稳步增长,这体现了交易策略的有效性。
评估策略的表现
我们分析了表现好与差的时期,并将我们的策略与买入持有策略进行比较。
总结
在本文中,我们研究了使用LSTM模型应用于比特币价格数据的均值回归交易策略的实现。通过在数据预处理中采取谨慎措施、防止数据泄露并结合风险管理,我们开发了一种策略,将500美元的初始投资在两年内转化为约800美元,实现了60.20%的总回报率。
长按下方扫码获取本文完整源码
点击阅读原文加入 宽客邦量化俱乐部
获取本文完整源码