用 Python 撬动财富!揭秘比特币算法交易策略

大数据机器学习算法

picture.image

大家好,我是橙哥!在本篇文章中,我将展示 如何将均值回归与LSTM神经网络相结合,并设计一个策略来交易比特币,在两年内实现60%的回报率 。文章涵盖数据预处理、模型训练、策略实施和性能评估,风险管理等过程。 点击此处或在文末获取本文完整源代码。

为什么用均值回归和LSTM?

理解均值回归

均值回归是一种交易策略,表明 资产价格往往会随着时间的推移回归到其历史均值 。交易者利用这一策略的方式如下:

  • 当价格低于均值时买入资产

  • 当价格超过均值时卖出

这一策略假设均值的偏离是暂时的,价格将随着时间的推移回归到其平均值。这种现象已在各种市场和资产类别中观察到。

LSTM的作用

LSTM是专门为金融时间序列数据设计的神经网络。它擅长 通过“记住”数据中的长期依赖关系来识别模式和预测未来价格走势 。研究表明,LSTM在预测金融市场趋势方面具有有效性。

通过结合LSTM与均值回归,我们可以创建一个预测优势,从而增强这一策略的盈利潜力。

导入库

我们导入用于数据检索(yfinance)、数据操作(pandas, numpy)、可视化(matplotlib, mplfinance)、预处理和评估(sklearn)以及构建神经网络(tensorflow, keras)的库。

picture.image

获取加密货币数据

然后我们获取过去七年中比特币的每日价格数据,确保模型有足够的历史数据。

picture.image

数据集包括开盘价、最高价、最低价、收盘价、调整后收盘价和成交量等信息。

数据预处理

为LSTM模型准备数据,我们计算了捕捉价格趋势和波动性的技术指标。

picture.image

我们计算包括移动平均线、布林带、RSI、MACD、动量和ATR在内的技术指标。 这些指标有助于捕捉趋势、动量和波动性 ,对价格预测和信号生成至关重要。

可视化技术指标

让我们对其中的一些指标进行可视化。

picture.image

下图显示了比特币的收盘价以及20天和50天移动平均线,以及布林带。这些指标有助于可视化价格趋势和波动性。

为LSTM模型准备数据

我们对数据进行处理,并创建LSTM模型所需的序列。

picture.image

我们按照60天的序列长度来捕捉每次预测的两个月的历史数据,在提供足够长的回溯时间和计算效率之间取得平衡。

将数据拆分为训练集和测试集

我们将数据拆分为训练集(5年)和测试集(2年),并确保没有数据泄露。

picture.image

通过将数据分为5年用于训练和2年用于测试,我们确保模型使用过去数据训练,未来数据测试,从而避免数据泄露。

构建和训练LSTM模型

该模型由堆叠的LSTM层和用于正则化的dropout组成。

picture.image

我们的模型首先使用一个包含128个单元的LSTM网络层,并应用L2正则化来防止过拟合。我们采用0.3的dropout率进行正则化。接着是一个包含64个单元的第二个LSTM网络层,用于捕捉更抽象的模式。最后,我们使用一个全连接层来生成输出。

picture.image

预测并对模型进行评估

我们对测试集进行预测,并使用 MAE、MSE 和 RMSE 来评估模型的性能。

picture.image

评估结果:

MAE: 0.1483047224232923
MSE: 0.04917100263081512
RMSE: 0.22174535537596976

该模型在测试集上达到了0.1483的平均绝对误差(MAE)和0.2217的均方根误差(RMSE),表明预测性能较好。

同时将其预测转换回原始尺度。

picture.image

预测价格与实际价格高度一致,表明模型已经学习了潜在的模式

实施交易策略

我们基于模型的预测和技术指标来应用均值回归策略。

picture.image

picture.image

我们的策略在测试期间生成了133个买入信号和142个卖出信号。这表明模型识别了多个交易机会,其中资产相对于其预测均值被低估或高估。

模拟交易并实施风险管理

我们模拟交易,初始资本为500美元,并考虑了交易成本、止损和止盈机制。

picture.image

基于生成的信号执行买入和卖出订单,从而模拟交易,同时加入交易成本、止损和止盈规则。

计算关键绩效指标

我们计算关键绩效指标以评估策略的有效性。

picture.image

picture.image

我们的策略 在两年的测试期内实现了60.20%的总回报率 ,将初始的500美元增长到约800美元。 年化回报率为32.09%夏普比率为0.94 ,表明相对于所承担的风险,回报是良好的。 最大回撤为-16.88% ,显示了从峰值到谷底的最大下降幅度,考虑到回报率,这一回撤是可以接受的。

可视化交易信号

我们在蜡烛图上绘制买入和卖出信号,以便更好地可视化。

picture.image

picture.image

该图表直观地展示了该策略如何通过生成的买卖信号利用价格波动。

绘制投资组合价值走势图

随时间变化的图表我们可视化投资组合价值随时间的变化,以观察策略的执行效果。

picture.image

picture.image

投资组合价值随时间稳步增长,这体现了交易策略的有效性。

评估策略的表现

我们分析了表现好与差的时期,并将我们的策略与买入持有策略进行比较。

picture.image

picture.image

picture.image

总结

在本文中,我们研究了使用LSTM模型应用于比特币价格数据的均值回归交易策略的实现。通过在数据预处理中采取谨慎措施、防止数据泄露并结合风险管理,我们开发了一种策略,将500美元的初始投资在两年内转化为约800美元,实现了60.20%的总回报率。

长按下方扫码获取本文完整源码

picture.image

picture.image

点击阅读原文加入 宽客邦量化俱乐部

获取本文完整源码

0
0
0
0
关于作者
相关资源
火山引擎大规模机器学习平台架构设计与应用实践
围绕数据加速、模型分布式训练框架建设、大规模异构集群调度、模型开发过程标准化等AI工程化实践,全面分享如何以开发者的极致体验为核心,进行机器学习平台的设计与实现。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论