为了账号安全,请及时绑定邮箱和手机立即绑定

【精选】神经网络应用于算法交易

标签:
人工智能

作者:Alex Honchar

编译:编辑部

https://medium.com/@alexrachnog?source=post_header_lockup

今天编辑部带来关于在基于金融时间序列的预测模型案例,我们将通过神经网络来增强一个经典的移动平均策略,并表明它真的是有所改善相对原策略。

基于技术分析的投资策略

https://img1.sycdn.imooc.com//5d2fddca00010cdb05830344.jpg

但这种交易策略有一个主要的缺陷:在震荡行情中,策略没有过多的触及信号并交易,这样我们也很难赚到钱。

https://img1.sycdn.imooc.com//5d2fddcd000151b106630355.jpg


那我们怎么应用机器学习去改善呢?


我们来看下面的策略假设:在移动平均线金发生叉死叉的时刻,我们会对某些特征的变化做出预测,如果我们真的期望这个交叉点是可行的,我们便选择相信这个交易信号。 否则我们会跳过。

作为预测目标,我想用偏度来衡量分布的不对称性。 让我们假设,如果我们预测分布的变化,这意味着我们目前的趋势将来也会发生变化。

https://img1.sycdn.imooc.com//5d2fddd20001ea5506500291.jpg

输入数据

在这里,我们将使用pandans和PyTi生成更多的指标。 我们将使用MACD,Ichimocku  cloud,RSI等指标。 所有这些指标算出来的值将形成多变量时间序列,用flatten函数处理后,使用在 MLP 或继续使用再 CNN 或 RNN中。

PyTi(https://github.com/kylejusticemagnuson/pyti)

获得的指标特征连接到OHLCV元组以产生最终向量。

网络结构

在这里我们展示一个如何训练正则化MLP进行时间序列预测的例子:

这里的““Novel”是增加小的噪声给单层神经网络的输入和输出。它非常类似于L2正则化,数学解释如下:(http://www.deeplearningbook.org/)

https://img1.sycdn.imooc.com//5d2fddd70001ec7606700471.jpg

https://img1.sycdn.imooc.com//5d2fddda00010b6106660483.jpg

我们在2012年至2016年间以AAPL的价格训练我们的网络,在2016-2017年进行样本外测试。

训练网络后,我们绘制收盘价,均线和垂直线的交叉点:红色线和橙色线代表我们要交易的点。绿色线代表我们不去交易的点。

https://img1.sycdn.imooc.com//5d2fdddd0001474b06720435.jpg

神经网络结果

[(‘Total Return’, ‘1.66%’),

(‘Sharpe Ratio’, ‘16.27’),

(‘Max Drawdown’, ‘2.28%’),

(‘Drawdown Duration’, ‘204’)]

Signals: 9

Orders: 9

Fills: 9

https://img1.sycdn.imooc.com//5d2fde260001ef7f06810434.jpg

我们将如何使用“红色”和“橙色”交易信号,并跳过绿色。 我们可以看到,策略减少了2次交易,并帮助我们减少了第一个drawdown,最终提高了几乎两倍的回报!

[(‘Total Return’, ‘3.07%’),

(‘Sharpe Ratio’, ‘27.99’),

(‘Max Drawdown’, ‘1.91%’),

(‘Drawdown Duration’, ‘102’)]

Signals: 7

Orders: 7

Fills: 7

https://img1.sycdn.imooc.com//5d2fde290001951807050451.jpg

部分代码

https://img1.sycdn.imooc.com//5d2fde330001fa4206400633.jpg

https://img1.sycdn.imooc.com//5d2fde3c00017c7206400764.jpg


总结

通过这篇文章,我们可以使用神经网络来完成(至少一段时间)有关金融时间序列预测的一些研究。 但是,我们不能直接用它来预测价格知否涨跌。 我们必须考虑不同的数据源和目标值,认真对待处理过拟合和超参数优化,那么我们可以得出什么结论呢?

1、注意过拟合! 你会在99%的情况下做到这一点,不要完全相信你的回测曲线,它一定是有问题的。

2、除了收盘价,波动收益率,偏度等,尝试着预测其他特征。

3、如果有不同的数据源,请使用多模态学习。

4、不要忘记找到正确的超参数!

5、编写一个可以混合一些经典机器学习的策略!



作者:吉编辑
链接:https://www.jianshu.com/p/6f8bb3b98b70


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消