- 博客(239)
- 资源 (2)
- 收藏
- 关注

原创 博主的新书上线了
有很多同学希望能够系统的学习股票多因子模型,所以博主深入浅出的通过模型代码解读来让大家了解股票多因子模型背后的逻辑。https://detail.tmall.com/item.htm?id=642577837266望大家支持。
2021-04-20 14:59:51
1119
7

原创 我的视频课程
多因子模型之单因子测试视频教程 包括alphalens的使用,单因子的计算实例,单因子的处理,包括正交化;怎么样的单因子才是一个好因子?https://edu.csdn.net/course/detail/25572量化回测平台Backtrader实战系统学习backtrader回测的方法和策略的编写https://edu.csdn.net/course/detail/904...
2018-09-13 20:27:51
2353
1

原创 多因子模型之因子(信号)测试平台----python中Pandas做处理时内存节省的技巧
之前看到过一篇文章,讲的就是如何在使用pandas的时候降低内存的开销。笔者亲自尝试了一下,发现确实不错,但是也会有很多问题,譬如,一些第三方包(例如statsmodels、alphalens等)的运算要求数据就是float64类型的,这使得我们很尴尬呀。 不管怎么样,如果我们自己处理数据的时候,或者第三方包支持的时候,这一系列方法还是很有用的。1.查看dataframe占用空间 例如
2017-09-16 14:16:54
5079

原创 多因子模型之因子(信号)测试平台----alphalens(四)
广告:本人的单因子测试视频教程https://edu.csdn.net/course/detail/25572接下来,还剩下最后一部分的单因子分析,就是换手率的分析。当然,我们要知道,这仅仅是三个主要部分,后续我们可能会增加几个观察的指标。 1.换手率概括表 上图是turnover的分析表。由于实际交易中,我们是有手续费的,所以,对于因子而...
2017-09-05 21:37:01
4220

原创 多因子模型之因子(信号)测试平台----alphalens(三)
广告:本人的单因子测试视频教程https://edu.csdn.net/course/detail/25572今天,我们讲alphalens下一个重要的因子测试的输出部分,Information Analysis,也就是,信息的分析。听起来有点抽象。那么,我们开始吧。 首先,讲一个主动投资组合管理的第一个定理,叫做fundmental law,其形式就是:IR = IC *...
2017-09-02 14:09:16
5416

原创 多因子模型之因子(信号)测试平台----alphalens(二)
广告:本人的单因子测试视频教程https://edu.csdn.net/course/detail/25572 今天这一个部分,我们要用到另外一个python的大杀器,notebook,现在叫做jupter notebook。大家如果装了anaconda的话就会有这个的。 大家在命令窗口中把目录切换到工作目录就可以了。 回车之后就可以启...
2017-08-29 22:05:21
7597
4

原创 多因子模型之因子(信号)测试平台----alphalens(一)
广告:本人的单因子测试视频教程https://edu.csdn.net/course/detail/25572 之前,我们计算了revs10这个因子,并且对其进行了去极值、标准化、和行业中性。计算因子,并合理处理是单因子测试的第一步,我们必须有正确、合理的因子值,才会有有意义的结果,否则就是garbage in, garbage out。 对于单因子测试,...
2017-08-27 22:56:43
8127

原创 多因子模型之因子(信号)测试平台----因子值的处理(二)
广告:本人的单因子测试视频教程https://edu.csdn.net/course/detail/25572 我们知道,一个因子值的处理大致分为三个步骤,去极值、标准化、中性化,上次我们对因子值进行了去极值和标准化,这一次,我们主要讲一讲中性化,也就是neut。 neut分为行业中性和风格中性两种。行业中性很好理解,我们知道,一个因子在不同的行业间不一定有可比性...
2017-08-26 14:21:57
4756

原创 多因子模型之因子(信号)测试平台----因子值的处理(一)
广告:本人的单因子测试视频教程https://edu.csdn.net/course/detail/25572在前面一节,我们成功计算出来了因子值。在开始今天的内容前,我们要先了解几个概念。许多书本上,可能不会这样讲,这个仅仅是笔者的一些感悟。0.几种factor 先来弄清楚笔者自己总结的factor的生命周期1)raw facto raw fa...
2017-08-16 22:58:33
7572
原创 Bokeh可视化笔记——x轴设为日期
Bokeh是一个很好用的可视化工具库,画出来的图还是不错滴。比如想画历史上所有合约的螺纹-热卷价差。整体质感还是不错的,比matplot好看,而且可以放大缩小,可以点击标签来选择是否显示。比如:数据处理部分就不说了,这里应为我们是一个金融数据,x轴设置为日期。随便百度一下百度不到设置方法,所以找了一下官方的一些例子才实现。于是笔者实现之后来写个教程。大致来看一下绘图的函数吧。def plot_month_diff_line(plot_df, contract_df): de
2020-12-23 16:52:56
1354
原创 卖期权的时候,我们在卖什么?
一直在思考一个问题,卖期权到底是怎么回事?卖实值期权、平值期权、虚值期权背后的本质有什么区别?卖近期的和远期的期权背后的本质又是什么?我们用沪深300指数期权来研究一下。 我们先从数据上来直观感受一下。上面这个表格是2020-12-09日这一天期权的情况。这里列了四类期权(都是看跌),分别代表实值期权(5400行权价),平值期权(5000行权价),虚值期权(4800行权价)和深度虚值期权(4400行权价)。 我们先来看时间维度,也就是theta*close。...
2020-12-10 22:04:49
565
原创 Wind的实时行情API使用
很久以前用过Wind的实时行情接口,最近又要开始用的时候,居然一下子忘记怎么用了。所以写个文章做个记录,毕竟网上也没有人写过这个。 Wind的实时行情是通过回调函数来实现的。也就是大框架下,我们是让主程序一直while循环,然后有新的行情到来的时候,wind的API会自动调用我们写好的回调函数。if __name__ == '__main__': w.wsq("000002.SZ,2202.HK", "rt_date,rt_tim...
2020-07-11 21:47:26
6305
原创 mobi电子书中删除多余的空格
过年放假,还是在宅家里看书,结果发现,有些电子书网上整理的并不好,有很多没有用的空格,十分影响阅读效率,于是打算看看能不能解决一下。步骤也很简单,首先下载一个caliber,这个重度kindle使用者都知道,然后我们需要把mobi转换为epub格式,这个格式是可以编辑的,caliber有自带的caliber editor这样的编辑器,打开就好。我们可以看到,红色的框框中有很多的空格,而...
2020-01-23 23:09:24
2260
原创 linux(centos7)下安装vnpy2的坑
1、gcc版本过低。vnpy2要求c++ 17以上,但是老的linux系统都不支持,所以需要升级一下。vnpy2对linux下gcc编译器的版本要求较高,会出现这样的错误:我们可以发现,gcc是2015年的,版本确实是低。然后我们就来升级一下。然后我们就可以看到,gcc获得了升级。2、编译的问题。安装好了gcc,我们在运行vnpy里面的install.sh,...
2019-11-07 16:53:11
1700
原创 宏观经济指标分析与数据可视化——PMI
PMI是一个很有意思的东西,一般都会认为PMI是一个领先指标。PMI中文名叫做采购经理人指数,听起来有点不知所云,说白了就是一个问卷调查。1、PMI是怎么来的? 我们来假设一个场景。话说在小天才幼儿园里面,老师很关心小朋友的开心程度,于是每个月快到月底的时候都会让小朋友填一个问卷,问卷内容很简单,就是一个判断题: 你这个月比上个月开心吗?请选...
2019-11-04 20:40:31
3660
原创 mysql数据库复制过程
现在本地有一个数据库,但是我们想在云端建一个一样的数据库,所以需要复制。两边都是mysql数据库。首先,我们在本地端打开mysql workbench,然后点击server,选择data export。这样之后呢,我们就会有一个本地的sql文件了。然后 我们连上另外一个数据库,同样的,在workbench里面,然后把生成的sql文件拖进去运行一下就可以了,一下子一个数据库就复制过去...
2019-11-04 10:31:59
586
原创 阿里云上安装mysql的全过程(centos7)
1、安装mysqlwgethttp://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpmyum localinstall mysql57-community-release-el7-8.noarch.rpmyum repolist enabled | grep "mysql.*-community.*"yu...
2019-11-03 17:29:49
285
原创 is blocked beacuse of many connection errors; unblock with 'mysqladmin flush-hosts'
mysql会有too many connections的问题,有时候明明connection允许连接很多了,但还是会有is blocked beacuse of many connection errors; unblock with 'mysqladmin flush-hosts'这样的错误。很多时候不是连接数量限制的问题,而是需要把连接计数清零。在mysql中运行:flush ...
2019-10-29 09:25:03
687
原创 商品期货的估值与驱动
商品期货很有意思,这个体系反馈比股票市场迅速,毕竟到了交割期现价格需要收敛。而且,毕竟期货背后是实物,是一个最终可以看得见摸得着的东西,价格不会跌到地底下也不会涨到九天之上。虽然股票背后是上市公司,但是这个看不见的股票代表的权利也是虚无缥缈。做商品期货的其实有很多种方式,有的人专注于短线,做价量分析;做突破,做反转。有的人套利,跨期也好,跨品种也好。而往往能够...
2019-10-28 19:20:10
4089
1
原创 pyecharts绘制文字云
pyecharts居然改版了,升级了一下,文字云的代码也和以前不一样了:#coding=utf-8from pyecharts.charts import WordCloudname = [ '行业研究', '市场风格', '流动性跟踪', '资金风格', '基金持仓', '上下游比较', '宏观数据', '中观数据', '微观数据', '行业比较', '资产配置',...
2019-09-13 21:14:22
732
原创 vn.py2-行情记录的使用
vnpy很早就出新版本了,开始用python3了。毕竟据说2020年python2就寿终正寝了。 vnpy2的文档和说明都详细了很多,很多东西显得具有很好的可用性,这就可以直接使用vnpy的vntrader,简单改装就可以真正的用起来了。 vn_trader里面的功能特别有意思。 一打开这个东西,就会开始在我们C盘的用户文件...
2019-09-09 22:44:45
3662
原创 reportlab教程2--中文的显示
无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。教程链接:https://www.cbedai.net/qtlyx很多时候,我们想实现自动化报表,但是一般都会需要用中文,而reportlab天然是不支持中文的,所以我们需要让他支持,而办法其实很简单。1、下载字体比...
2019-08-15 19:47:20
5727
原创 pyqt中QTableWidget里的下拉列表
无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。教程链接:https://www.cbedai.net/qtlyx有时候我们希望在QTableWidget的单元格中进行下拉列表的选择,就像excel里面这样。那么怎么设置呢?怎么实现读和写呢?特别是在pyqt中,在c++中,网上...
2019-07-22 20:49:02
6018
2
原创 pyqtgraph嵌入pyqt
无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。教程链接:https://www.cbedai.net/qtlyx最近做了个东西,又开始用pyqt了,想想之前用这个,都已经好几年了。pyqt当中画图是很麻烦的事情,matplotlib据说刷新很麻烦?反正pyqtgraph和...
2019-07-22 20:17:49
4027
5
原创 mongodb学习笔记(一、Robo的使用)
mongodb安装、启动什么的就不说了,给大家一个一键启动的bat文件吧,这样以后每次双击就可以启动mongdb服务,大家有也可以放到windows启动项里面。@echo off D:cd \mongodb\bin\mongod --dbpath "D:\mongodb\data"上面这段代码复制在记事本里,然后修改一下后缀名为bat,然后就可以双击启动了。当然,mongdb...
2019-06-21 20:01:52
743
原创 vnpy安装的坑记录
无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。教程链接:https://www.cbedai.net/qtlyx 虽然vnpy出了2,但是不知道为什么多多少少都会出问题,而且,2之后的vnpy更加傻瓜化了,不太那么程序员,总觉得哪里怪怪的。所以在新...
2019-06-16 10:41:40
4995
1
原创 Backtrader量化平台教程-作者的一篇博客(十一)
无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。教程链接:https://www.cbedai.net/qtlyx Backtrader的作者在他的博客上写了一篇很有意思的文章。这个哥们从csdn上面找了backtrader的代码,然后改写...
2019-05-22 21:33:55
12843
2
原创 vn.py源码解读(十、参数优化)
任何一个策略,在初步回测之后,都会有一个参数寻优的过程。这个过程vnpy给大家实现了。其实这个是最简单了,说白了就是换参数多跑几次回测嘛。但是,说的直白点,vnpy的参数寻优在代码上来讲是不够高效的,原因很简单,我们其实可以进行一次数据回放就可以完成很多组参数的回测,而不是一组参数回放一次。我们简单过一下代码吧,这部分比较简单。之前我们是配置好之后就调用bactest了,但是如果是优化的话...
2019-04-18 21:24:57
4532
1
原创 重回机器学习----(1、机器学习的一些基本问题)
1.样本偏差问题 所谓样本偏差问题,以二分类问题来说,就是两个类别的样本个数存在很大的区别。比如,我们识别违约的问题,我们知道,一般违约都是小概率的,要不然放贷款的就都玩完了。那么这个时候,训练模型就会有样本偏差的问题,可能一百个样本中只有一个是违约的,如果不做处理,模型肯定更加习惯于判定不违约,因为随便来一个样本,判断不违约的准确率都是99%。 这个问题要分情...
2019-04-11 20:12:50
354
原创 vn.py源码解读(九、策略类代码解析)
说到这个最重要的类了。这个类说白了就是策略的实现。和绝大部分回测框架一样,策略想法是一个类的抽象,一般会继承一个基础类模板,每一个真实运行的策略就是这个策略想法类的一个实例。好的,有点绕。我们来看代码吧。 在vn.py中,每一个策略类开始不出意外都是下面这样的:1、类的定义和类变量class TRStrategy(CtaTemplate): """学习版...
2019-04-05 19:01:59
5671
1
原创 升级版VNPY(一)
之前在读vnpy源代码的时候,一直就有升级改造的想法,也有同学在博客下面互动,说希望能够开源升级后的代码。最近花了点时间,做了一点点修改,包括数据的本地获取、回测后的策略测试。大概展示一下吧。回测的结果包括vnpy原来自带的。vnpy自带的是以大图和命令行输出形式,笔者这里变成了网页。但是由于笔者不是前端工作者,所以网页的美化程度几乎没有。vnpy自己原有的内容呢,暂时笔者也不做修...
2019-04-02 21:43:58
2747
1
原创 pyfolio教程3——create_interesting_times_tear_sheet
我们有时候对一些时间段特别的关注,比如911、互联网泡沫、外星人入侵什么的。在pyfolio中,有一个interesting times tear sheet,其实就是把某些特殊的时间段放大了给大家看看。 至于特殊时间段的定义: 在pyfolio的这个文件夹下面,有一个这个py文件,在里面进行设置就可以了:# Dotcom bubblePERIO...
2019-03-25 19:45:48
1426
1
原创 pyfolio教程2——第一个returns_tear_sheet
首先,说明一下我们的数据,为了一步一步的明确pyfolio的功能和一些结果,我们首先选取我们的策略是0.3的中证500指数、0.3的中证1000指数和0.4的上证50指数,也就是我们的组合的收益就是这三个指数的加权收益。换句话说,我们是把这三个指数当成了三个资产。benchmark是沪深300,后续有需要的时候,回依次加入其它的东西。 我们先来看一下我的retur...
2019-03-22 22:12:42
5456
2
原创 pandas画图的几个技巧
1、pandas画图的时候颜色种类不够我们经常会用pandas处理数据,处理完之后,很多时候会画个图看看。但是pandas默认的曲线就只有十种颜色,如果我们要绘制的数据过多,就会出现颜色重复。其实很简单,pandas绘图的时候有一个colors参数,我们可以对这个参数进行赋值。data_df.plot(figsize=(19, 10), colors=cnames.keys())其实...
2019-03-19 19:15:33
2884
原创 tick数据研究
经常听见tick数据,回测的时候也用过,但是还真的没有自己去处理过tick数据,据说tick数据有很多坑,所以打算自己研究一下。首先的第一步就是先拿正常的tick数据来生成bar,从而能够理解一些细节,然后就是自己用ctp去接收tick数据,看看ctp有没有坑。 这里,完美的tick数据是wind上的。 这是wind上面导出来的,看起来还是比较正常的,反...
2019-03-15 23:24:52
10122
原创 同比日期的获取(公历与农历)
在进行宏观数据和中观数据研究分析分的时候,经常会用到同比的概念。宏观数据一般都是月度的,所以一般一二月份由于春节效应,会合起来考虑;但是中观数据的频率有时候会比较高,比如周度或者旬度的数据。 这些数据更多的时候,我们希望看到的是一个同比的情况,而且是农历同比,比如钢铁的库存、水泥的产量、建材的成交量等等,所以就涉及计算去年同比的一个问题了。下面的代码就是在当前的有数据的时...
2019-03-13 19:25:17
2682
原创 Brison归因与代码
不管是做FOF也好,仅仅想单纯归因也好,Brison是一种比较常见,也算是通用的归因方法,其一般用于权益类或者大类资产配置类基金。 其实Brison归因的逻辑很简单,假设有一个基准,基准在各类资产的配置上的权重分别是wbi(weight of benchmark of asset i),这些资产的收益率分别是rbi(return of benchmark of asset...
2019-03-05 22:27:39
5055
3
原创 pandas的Groupby加速
在平时的金融数据处理中,模型构建中,经常会用到pandas的groupby。之前的一篇文章中也讲述过groupby的作用:https://blog.csdn.net/qtlyx/article/details/80515077 但是,大家都知道,python有一个东西叫做GIL,说白了就是python并没有多线程这种东西。那么,现在如果我们要进行grou...
2019-02-14 22:05:52
7573
7
原创 vn.py源码解读(八、回测结果计算代码解析)
我们核心关注一下calculateBacktestingResult这个方法,这个方法中最核心的是一个大循环。 for trade in self.tradeDict.values(): # 复制成交对象,因为下面的开平仓交易配对涉及到对成交数量的修改 # 若不进行复制直接操作,则计算完后所有成交的数量会变成0 ...
2018-12-29 17:52:25
4198
3
原创 pyecharts绘制K线
最近想扩展一下vnpy,优化一些功能和代码的性能。在看backtesting部分代码的时候,发现,vnpy其实回测功能挺弱的,可以自己扩展一下。随之而来的就是一个回测结果可视化的问题。vnpy原生的回测结果没有绘制k线,所以也就没有指标的可视化和开仓平仓的可视化,只有随后交易结果的可视化。笔者自己其实有点点不习惯,没有看到策略的可视化回测结果,有点点不开心,所以打算自己做一下。首先...
2018-12-23 20:07:15
18551
26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人