机器学习在量化交易上的运用(一)
来源:互联网 发布:物理层提供给mac 编辑:程序博客网 时间:2024/05/09 18:40
首先阐述下背景。
也需要一个自己去做总结提高的地方,所以在此开个博。
废话少说,开始干活(后面也请谅解想到哪写到哪的风格,因为这里很多东西是用分享的方式在自己总结)
今天的第一个任务是在TB上实现均线特征的线性回归交易。
之前这个东西我做过,但是却被某些机器学习方面的大牛批评:过多的业务框架限制了机器能学到的东西。现在对这个批评理解的都不够透彻。
其实,很多想入门做数分或机器学习的人会发现,数据源是个头疼事。我的建议是,不妨从股市或期货市场的交易数据入手,因为够好获取。
http://www.tb18.net 这个是TB的网站,这个是一个国内比较好的第三方程序化交易软件,它上面可以导出数据。除了可以导出常规的价格数据外,还可以用导出所有plot的自定义数据(可以自己定义一些标签,可以直接plot出来后导出哦)
当然,还有很多获取数据的方式,但这个比较直观,而且训练的模型可以直接在上面实盘操作(感觉自己在安利TB,不过现在很多人都根据CTP接口自己写程序交易软件喽)
在TB上实现一个线性模型。
Y = wX+b
这里的X可以自己定义,我们采用了均线来定义(我不知道这是不是在各类挖掘或机器学习中叫的特征的概念)。
ParamsNumeric n(10);VarsNumericSeries ma8;NumericSeries ma13;NumericSeries diffc;NumericSeries diffma8;NumericSeries diffma13;NumericSeries df;BoolSeries condbuy;BoolSeries condsellshort;Beginma8 = Average(close, 8);ma13 = Average(close, 13);diffc = (close[-1] - close)/close * 10000;diffma8 = (close - ma8)/close * 10000;diffma13 = (close - ma13)/close * 10000;df = (-0.037803471919434*diffma8 + 0.033816490363161*diffma13)*100;condbuy = df > n;condsellshort = df < n*-1;//PlotNumeric("ma8",ma8);//PlotNumeric("ma13",ma13);PlotNumeric("diffma8",diffma8);PlotNumeric("diffma13",diffma13);PlotNumeric("diffc",diffc);PlotNumeric("df",df);if (condbuy){Buy(1,close);}if (condsellshort){SellShort(1,close);}End
代码不注释的。哈哈。是段TB代码,可以直接复制到TB里测试。
diffma8 和 diffma13是特征,下一根K线的涨跌幅是需要去预测的量。通过w=(x'*x)^-1*x'*y的公式可以求w参数。然后带回到TB里。
大的框架就是这样的。现在问题是,好的X和Y有哪些?自己定义的框架是不是像批评者说的,限制了机器的learn。怎么突破?
如何用python实现批量的回测?
今天暂且先到这,这个框架以前搭过,需要持续研究的优化。
有兴趣一同探讨的朋友可以联系我。
PS:好久没撸matlab的代码和TB的代码了。今天为了写博先开了个头,后面会不断更新。
- 机器学习在量化交易上的运用(一)
- 机器学习与量化交易项目班
- 量化交易如何建立高效的交易系统(一)
- 量化交易----利用机器学习预测股票价格趋势
- 股票量化交易初探一
- 量化交易学习:交易数据自动抓取
- 程序员的量化交易之路(11)--命令参数解析库JCommonder学习
- 学习poi在java上的运用
- 量化进阶——理工科出身如何转做量化交易(一)
- 量化投资(一):十行代码实现一个量化交易入门程序
- 什么是数学交易?(量化交易)
- 程序员的量化交易之路(1)----规划开篇
- (京东量化)基于相关性的配对交易策略
- (京东量化)基于相关性的配对交易策略
- 量化交易如何建立高效的交易系统(二)
- 量化交易如何建立高效的交易系统(三)
- Python学习与量化交易学习
- 云计算上的机器学习:引言(一)
- 组合分类器设计
- Andorid中EditText中hint属性的字体颜色修改
- 面向对象OOP
- Struts2 笔记
- 减小APK体积
- 机器学习在量化交易上的运用(一)
- 【转载】Linux kernel的中断子系统之(二):IRQ Domain介绍
- 踏平RecyclerView使用的各种坑,跟ListView和GridView说拜拜
- Leetcode219. Contains Duplicate II(重新修改)
- (个人事务)配眼镜的瞳距
- Nginx+Php-fpm运行原理详解
- 程序员常去的14个顶级开发社区
- 来个NB点儿的产品经理看看。。提提需求
- Git实现部分提交