价格时序预测-LSTM
价格时序预测-LSTM
- LSTM原理
- LSTM基本使用原理
- Pseudo Trading
- Keras LSTM Layer使用结果
- In-Sample结果
- Out-of-Sample结果
LSTM原理
LSTM是一种有监督神经网络。在普通的RNN模块里增加一个“短期记忆”模块,使得神经网络能够对基于“很久之前”曾经看到过并重复出现的“时域特征片段”作出预测上的修正。一个简单的应用是利用文本里的相距比较远的“上下文”作更好的文本分析。
LSTM是最新的受到广泛应用的有监督神经网络之一。
LSTM基本使用原理
(以下的表述基于Keras里的LSTM layer)
- 一个Episode里的收敛性&Overfitting(Underfitting)可以用Valiation Data Set来检查。在fit时,指定一个1/3的validation_split。
- 网络的表达能力(层数&每层节点数)需要和数据量匹配,否则非常容易出现Overfitting。LSTM的“表达能力”非常出众。同时还要用Dropout来控制LSTM疯狂的表达能力。
Pseudo Trading
回测中需要有个交易规则。我使用的是相邻两个Candle的Close Price,p0, p1,其中p1是预测的未来价格。如果p1>p0,则buy@p0,并且在下一个时刻sell@p1*,其中p1*是真实价格。反之如是。
忽略所有滑点和手续费。
Keras LSTM Layer使用结果
单层LSTM,128个节点,使用MinMaxScaler, Early-exit, Dropout。模型越简单越好。数据为5分钟BTC/USD交易历史数据,提取OHLCV以及ATR等一共9个Features作为LSTM输入,输出为价格。注意,Deep Learning (DL)本身是随机算法,所以即使是in-sample回测,也是有随机性。但是,In-sample的 Agg. Returns明显是too good to be true,不可能是真实交易。
从Out-of-Sample结果看,LSTM训练的模型是有能力beat the market的。在统计套利方面,还是有很强的实用性。LSTM很适合小资金投资者使用,因为成本很低,结果不错。
为LSTM提供数据时,要考虑Feature的选择,比如BTC这样几乎就是没有基本面,完全是动量交易驱动,那么选择的Feature可以很简单,比如ATR,EMA等等常用的指标都很有效。但是,如果交易 APPL或者GOOG,那就需要其他Reference数据,因为这些大公司的股价对基本面数据是有很强的依赖。
同时,数据的时间尺度也要考虑。5分钟的波动有可能无法cover taker手续费,所以可以考虑小时级别的交易,或者等待波动大的时候开启交易。
In-Sample结果
Out-of-Sample结果
只展示两个时间段作为示范。其中第一个时间段跑了两次回测,展示出算法的随机性。使用时需要考虑是否要voting algo的“加持”。
【待续】
价格时序预测-LSTM相关推荐
- 时序预测 | MATLAB实现基于EMD-LSTM时间序列预测(EMD分解结合LSTM长短期记忆神经网络)
时序预测 | MATLAB实现基于EMD-LSTM时间序列预测(EMD分解结合LSTM长短期记忆神经网络) 目录 时序预测 | MATLAB实现基于EMD-LSTM时间序列预测(EMD分解结合LSTM ...
- Keras LSTM实现多维输入输出时序预测实践详解
自古以来,我们就希望预知未来,现如今,随着大数据人工智能技术的发展,我们早已经不满足传统的同比.环比等数据分析方法,但是时间序列趋势预测的传统算法又很专业,很难用于日常生产经营中. 深度学习神经网络为 ...
- 时序预测 | python实现仿生算法优化LSTM时间序列预测(全网最全仿生算法)
** 时序预测 | python实现仿生算法优化LSTM时间序列预测(全网最全仿生算法) ** 多变量/单变量预测程序 多变量/单变量预测程序 多变量/单变量预测程序 A ABC-LSTM--人工蜂群 ...
- 时序预测 | MATLAB实现LSTM长短期记忆神经网络时间序列预测
目录 时序预测 | MATLAB实现LSTM长短期记忆神经网络时间序列预测 预测效果 程序设计 案例1 案例2 参考资料 时序预测 | MATLAB实现LSTM长短期记忆神经网络时间序列预测 预测效果 ...
- 时序预测 | MATLAB实现基于Adam算法优化LSTM长短期记忆神经网络时间序列预测
时序预测 | MATLAB实现基于Adam算法优化LSTM长短期记忆神经网络时间序列预测 目录 时序预测 | MATLAB实现基于Adam算法优化LSTM长短期记忆神经网络时间序列预测 效果一览 基本 ...
- 用于金融时序预测的神经网络:可改善经典的移动平均线策略
北京 上海巡回站 | NVIDIA DLI深度学习培训 2018年1月26/1月12日 NVIDIA 深度学习学院 带你快速进入火热的DL领域 阅读全文 ...
- 时序分析 26 - 时序预测 Prophet包初探
时序分析 26 时序预测 - Prophet包初探 前言 在本系列前面的文章中,我们介绍了多种时序预测技术和模型.我们可以看出时序预测技术还是非常复杂的,步骤也比较繁琐.读者可能还记得VAR模型的步骤 ...
- 时序预测的三种方式:统计学模型、机器学习、循环神经网络
作者 | luanhz 来源 | 小数志 导读 时序预测是一类经典的问题,在学术界和工业界都有着广泛的研究和应用.甚至说,世间万物加上时间维度后都可抽象为时间序列问题,例如股票价格.天气变化等等.关于 ...
- 时序预测:从两篇高影响力的论文谈起
未来可以预测吗? 本文从两篇高影响力的时序预测文章谈起,其中一篇是18年放在arXiv上的文章,文中总结性地提出了时序卷积网络(TCN: Temporal Convolutional Network) ...
最新文章
- android服务重启间隔,android – 崩溃的服务在很长一段时间后重新启动
- 360不用卸,照样上你QQ
- css 实现table 隔行变色
- 每个客户使用Jersey处理的Cookie
- Mdi悬浮子窗体不超过主窗体边界
- 低代码发展专访系列之六:低代码平台能解决业务重构的问题么?
- 达梦工作笔记-达梦客户端,执行命令后要保存退出,才生效
- rust地基蓝图在哪找_Rust错误处理的思考
- Linux中安装.rpm、.tar和.tar.gz或.tgz包
- matlab getdata 仿照一个曲线 提取图像中的曲线数据
- Python实现过采样和欠采样
- Rockchip_双屏显示旋转方向调试文档
- 大衣哥家的小伟和亚楠还能走多久?
- SCI影响因子与期刊检索网站整理
- centos7部署calamari
- 基层管理者的第一步——从“我”变成“我们”
- POST,PUT和PATCH的区别
- 1.华为设备CPU过高排查过程
- python日历软件的制作
- Knapsack Problem(0-1背包问题)
热门文章
- 高级JavaScript Day03 | 函数定义和调用、this、严格模式、高阶函数、闭包、递归
- 01- 初识MySQL
- 失业下的深圳中年:没有人活的容易,生活仍得继续...
- 随手记——echarts图表
- redhat7安装oracle11gR2之动手安装
- 都匀三中2021高考成绩查询,2017年黔南州高考各县市600分以上人数统计表,都匀市仅排第九。...
- 无线网卡在服务器上不能启用,解决无线网卡突然不能启用的问题(事件ID4294)...
- 微服务开放平台接口设计
- 游戏中的三角学——Sprite Kit 和 Swift 教程(1)
- Python读写zip压缩文件