Mann-Kendall算法用于金融品种长周期趋势判断和变点检测,以及策略思路
之前在研究用机器学习库Sci-kit做计算指标(特征值)和金融产品趋势(分类)关系学习的时候,对于如何判断趋势,是直接使用当前之后5根k线close值做线性回归,如果拟合的P值可信的直线斜率向上则是上涨,斜率向下则是下跌。具体代码可以见之前我之前blog。在vnpy有个网友讨论,为什么用这样方法判断趋势的时候;我做了些搜索,才发现判断一组时序队列的趋势并不是一个简单的事情,虽然人眼看很直接,但是数
Mann-Kendall算法用于金融品种长周期趋势判断和变点检测,以及策略思路
之前在研究用机器学习库Sci-kit做计算指标(特征值)和金融产品趋势(分类)关系学习的时候,对于如何判断趋势,是直接使用当前之后5根k线close值做线性回归,如果拟合的P值可信的直线斜率向上则是上涨,斜率向下则是下跌。具体代码可以见之前我之前blog。在vnpy有个网友讨论,为什么用这样方法判断趋势的时候;我做了些搜索,才发现判断一组时序队列的趋势并不是一个简单的事情,虽然人眼看很直接,但是数
另一个视角,使用对数化数据,计算非价位指标
之前在做时序数据整理时候学习时候,发现很多代码都行情数据做了对数化处理。学习了下,发现是另一个视角。https://www.zhihu.com/question/20831196/answer/16324269知乎查了,这个答案比较全。在很多计算中(例如做极大似然的时候),取对数可以将本来需要做的乘法变成加法;取对数可以避免数值巨大,计算机难于处理的困难;与对数有关的数据可以反映出物理量尺度的变化
另一个视角,使用对数化数据,计算非价位指标
之前在做时序数据整理时候学习时候,发现很多代码都行情数据做了对数化处理。学习了下,发现是另一个视角。https://www.zhihu.com/question/20831196/answer/16324269知乎查了,这个答案比较全。在很多计算中(例如做极大似然的时候),取对数可以将本来需要做的乘法变成加法;取对数可以避免数值巨大,计算机难于处理的困难;与对数有关的数据可以反映出物理量尺度的变化
如果使用Joinquant做实盘行情数据,有一个比较大bug的要注意
在我之前文章中,讲了用Joinquant做数据源,链接:http://blog.itpub.net/22259926/viewspace-2643621/ ,但是在我用作数据源做实盘交易的时候, 发下一个很危险的bug,更新下。如下图,如果运行行情数据下载时候,是在交易日中的话比如2点半,如果填写的endDate是当天,那么返回数据会自动填充到下午3点交易时候。
如果使用Joinquant做实盘行情数据,有一个比较大bug的要注意
在我之前文章中,讲了用Joinquant做数据源,链接:http://blog.itpub.net/22259926/viewspace-2643621/ ,但是在我用作数据源做实盘交易的时候, 发下一个很危险的bug,更新下。如下图,如果运行行情数据下载时候,是在交易日中的话比如2点半,如果填写的endDate是当天,那么返回数据会自动填充到下午3点交易时候。
利用Scikit-learn机器学习库的特征分类进行vnpy期货量化交易(代码)
代码如下,回测效果很好,test集合也基本100%中,但是总有哪里不对劲。各位帮忙看看。我也放在我的GitHub里面。已经加了注释,运行时候会有warning 信息。# encoding: UTF-8 import warnings warnings.filterwarnings("ignore") from pymongo&nbs
利用Scikit-learn机器学习库的特征分类进行vnpy期货量化交易(简介)
这个算是一个小坑,因为我也还在学习过程中,代码慢慢完善。一开始在python 2.7,vnpy 1.9.2环境中实现。后面在python 3.7也基本实现,增加支持了xgboost。代码写的繁杂,多多抱歉。首先说说Scikit-learn是Python语言中专门针对机器学习应用而发展起来的一款开源框架,相对于现在深度学习库tensorflow,由于Scikit-learn本身不支持深度学习,也不支
利用Scikit-learn机器学习库的特征分类进行vnpy期货量化交易(简介)
这个算是一个小坑,因为我也还在学习过程中,代码慢慢完善。一开始在python 2.7,vnpy 1.9.2环境中实现。后面在python 3.7也基本实现,增加支持了xgboost。代码写的繁杂,多多抱歉。首先说说Scikit-learn是Python语言中专门针对机器学习应用而发展起来的一款开源框架,相对于现在深度学习库tensorflow,由于Scikit-learn本身不支持深度学习,也不支
简单介绍VNPY 1.9.2版本支持看穿式终端的流程
我使用VNPY 1.9.2版本,因为监管要求,需要支持看穿式终端,这里说说实现流程。2.0版本还没有试过,不太确定,仅做参考。首先感谢vnpy及时更新。可以去GITHUB https://github.com/vnpy/vnpy/tree/v1.9.2-LTS , 下载最新版本。第一步是和期货公司客户经理联系,一般他会给你一个申请表,填号信息,主要是AppID:client_vnpyXXXX_版本
利用粒子群优化算法(PSO)来优化vnpy的量化策略参数
上一篇文章中说要用PSO算法来做量化策略优化,模仿DEAP的示例代码,做了一个单线程的类,实现优化。里面代码结构是和之前做利用遗传算法优化的基本一样。粒子全算法可以看看我之前文章,抄的分析结果:粒子群算法比遗传算法具有更高效的信息共享机制,更新群体极值使得信息实现全局范围共享,但遗传算法通过交叉和变异拥有比粒子群算法更有效的逃离局部最优解的概率。下面简单说说代码:1、静态函数object_func
优化算法库DEAP的粒子群优化算法(PSO)示例代码分析
之前使用优化算法库DEAP做遗传算法(Genetic Optimization),最近在研究粒子群优化算法(PSO)发现DEAP也提供支持;对原代码做了分析,之后会尝试用于交易策略参数优化。首先关于粒子群优化算法(PSO),这个算法的介绍很多,我看了不少,感觉下文介绍的是比较清楚的,可以参考。https://www.cnblogs.com/21207-iHome/p/6062535.html个人理
利用聚宽(Joinquant)数据源为vnpy添加期货行情数据
现在基于网络量化平台做的都很专业,richquant也是vnpy数据源的提供方;不过richquant的试用版只有30天,而聚宽(Joinquant)有一年试用期,而且也提供连续主力数据。我就东抄西抄,利用以后logic,做了使用聚宽(Joinquant)数据源JQData为vnpy添加期货行情数据。代码就两个文件,一个config.json主要放登陆用户名和期货品种名称对应表,因为期货品种在聚宽
python多进程简介,和VNPY多进程参数优化代码分析
之前为了实现利用遗传算法,进行多进程策略的优化,学习研究了python的多进程库Multiprocessing。以前感觉真是黑科技,学习后发现,还是python优点,简单好用,对于一般应用还是很好理解。首先,由于GIL(全局解释锁)的问题,全局对象只能一个进程调用,python多线程并不能充分利用多核处理器,比如有时候用pandas跑大型数据分析,发现只有一核在累死累活。如果想要充分地使用多核CP
为K线序列管理添加变动百分比属性,和一个简单分析
一般K线数据,主要是记录HLOC(High,Low,Open,Close)四个值,再加上Volume交易量。在做基于K线分析时候,变动百分比也是一个经常考虑数值。这里说下增加变动百分比的属性。其实还是很简单,如果不考虑跳空的话,就是(Close - Open)* 100.0 / Open; 考虑到跳空的话,就是当前K线结束值前取上个K线结束值,再处于上个K线结束值即可。如果有个close的值队列的
奇怪报错信息“db already exists with different case already have”解决方法
之前做了给数据库插入成交数据的功能,但是更新1.92后,每次成交都报错db already exists with different case already have: [VnTrader_DEAL_Db] trying to create [VnTrader_DEAL_Db
写了一个类GeneticOptimizeStrategy,针对VNPY策略遗传算法优化
写了一个类,GeneticOptimizeStrategy,Parameterlist 字典; 简化了调用参数和定义对应随机范围问题。只要在Parameterlist 中定义策略参数名称和对应的随机范围就可以,其中两个参数的元祖是两个之间随机数,调用random.uniform(),三个参数元祖是开始结束和中间步进,调用的是random.randrange(), 如果是数组就是在数组中间随机选择。
利用遗传算法库DEAP优化交易策略
首先,要感谢VNPY.com论坛 keke分享 海龟策略深入研究-策略回测系列-17 基于遗传算法的信号优化 一文https://www.vnpy.com/forum/topic/269-hai-gui-ce-lue-shen-ru-yan-jiu-ce-lue-hui-ce-xi-lie-17-ji-yu-yi-chuan-suan-fa-de-xin-hao-you-hua经过一段时
遗传算法库DEAP的示例代码的学习和分析
最近看到用遗传算法优化量化参数的文章,觉得还是有很先进,就开始学习。这个文章主要是针对针对遗传算法库DEAP的示例代码的学习和分析。代码链接:其实有不少针对这段代码文章,这里主要说说自己学习。原文链接如下: https://deap.readthedocs.io/en/master/overview.html 定义类型,方法creator.create(name,base,**kargs)这个有点
用DataFrame作为容器分析市场行情指标
之前在看一篇《基于阻力支撑相对强度(RSRS)的市场择时》(链接 https://mp.weixin.qq.com/s/LehwGXe_6JFZEZ8ekC4dCg) 尝试说试试用在期货交易,效果不怎么理想。不过作者用DataFrame作为容器来用指标在行情数据进行验证让我学到不少,也学了不少,之前做策略设计时候只是靠第三方平台或者交易软件来看,用DataFram