加载中…
个人资料
自由复兴
自由复兴
  • 博客等级:
  • 博客积分:0
  • 博客访问:82,175
  • 关注人气:79
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
访客
加载中…
好友
加载中…
评论
加载中…
留言
加载中…
博文
(2019-03-26 11:44)
如题
阅读  ┆ 禁止转载 ┆ 收藏 
(2018-10-24 20:42)
本博即日起停止更新

写博纯粹的浪费时间,以后停止写博。。。就此封笔
阅读  ┆ 禁止转载 ┆ 收藏 
分类: python
本文开始陆续更新一些用Python进行数据分析的心得体会,所用的例子全部是真实开发的数据和资料

本文将会详细介绍如何把国内期货各大品种所有合约上市以来的日线数据用py进行拼接合成各个品种的主力连续数据,虽然总数据量不大,共114M,但却需要处理超过4000个文件,除了python源程序外主要用的是Pandas

我们打开上期的文件夹看看:


一个上期所各大品种所有合约在一起总共1829个文件,包括一些上古合约类似:SCE橡胶9507,和v9507这样的,由于2010年以前的合约确实比较乱,手头也没有对应的tick数据,所以这里这做2010年往后的,当然在下面的程序中设置了年限参数,也可以往前追溯。

目标是建立各个品种的主力连续,本例选取换合约的标准是成交
阅读  ┆ 禁止转载 ┆ 收藏 
分类: python
pandas里面style模块常用的函数有background_gradient,bar,format,highlight_max/min/null,set_properties,catption,set_precision和set_style_tables等等,可惜这些函数却远远不能满足我们的要求,像很多pan其它功能的函数一样,我们需要自己整合一个函数把常用的功能都加进去,理由如下:
1,实现条件格式 (类似excel里面的条件格式不过更为灵活),也就是根据指定的条件更改颜色,字体等等
2,虽然style模块通过export可以进行格式输出,实际上并不方便,这种死套格式的做法一旦输出的df稍微改动就用不了
3,多种格式的结合是通过函数的链式调用实现,同一个条件更改颜色,背景,大小,设置单元格最小宽度等等需要多个调用,书写太冗长,再加上自建函数的话稍微高一点的要求就得写半天重复的代码,浪费时间
4,highlight_max/min/null/set_properties这类型的函数本质就是条件格式,完全应该整合在一起
5,大量的颜色字体结合需要使用默认值加快速度,不然每次都得写半天,这个很重要,不然光调整颜色就大半天。。。
6,官网上面例子虽然很多,但大部分局限对style各种方法的介绍,貌似很漂亮的表格类
阅读  ┆ 禁止转载 ┆ 收藏 
分类: 杂谈







阅读  ┆ 禁止转载 ┆ 收藏 
分类: 杂谈
不少朋友问我到底量化交易有没有人能做成功,其实这是一个伪命题,先不说‘行行出状元‘这些不着边际的话,也不说一些量化的大牛(例如‘文艺复兴’),让我们单纯从概率的角度分析一下,即使市场是完全随机没有任何规律,或者这种规律完全不被人类所掌握也会有人成功,为什么?请看下面分析:

把所有的市场参与者的业绩建立一个分布图,那么总有一小部分位于坐标轴的最右侧,再极端一点即使所有人都随机交易那么也总有一小部分人位于分布图的最右侧,无疑这些人就是‘成功的’,例如用py模拟抛硬币游戏,每轮抛100次,总共测试10万轮,正面为1,负面为0,每轮的平均值都在50左右,看看分布和数据


阅读  ┆ 禁止转载 ┆ 收藏 
分类: python
前文已经提过一些Numpy的切片提取基础,不过那些更多集中在一维数组,去到多维数组的切片提取稍微复杂一点,本文尝试做一些归纳
numpy数组的切片提取大致可以分为范围,下标,维度,布尔等几大类,互相结合可以实现一些比较个性化的数据提取功能,  
1,范围提取:
先从简单的开始,范围提取可能是最熟悉的,通过':'或者slice对不同维度进行切片提取,例如x[1:20:3,::-1]等价于x[slice(1,20,3),slice(None,None,-1)],这类型的提取通常对一个数据片区进行切片,格式就是:np.array[start:stop:step] //  slice (start,stop,step), 比较简单,前文提过很多例子,不展开了,
2,下标提取:
下标的提取按数组维度的顺序从低到高,例如对一个二维数组:x[[1,4],[2,3]],这里提取的是两个元素,对应下标是(1,2),(4,3),前面的是行后面的是列,从axis0到axisn,对于多个元素提取可以定义一个row和一个col,例如:
row=np.array([[0,1],[3,4]]) # first dimension of b:row
col=np.array([[0,1],[2,3]]) #2nd dimension of b:column
x[row,col]
上例返回一个
阅读  ┆ 禁止转载 ┆ 收藏 
分类: python
Py里面很有趣的一个地方是达成目的不同方法之间的效率差异可以有好几百倍,这样的例子数不胜数,下面通过一个简单的例子对比一下numpy的vectorize与pandas里面的apply,虽然apply在用法上比vectorize多,但实际上apply对大于十万行的数据处理已经是慢如蜗牛,别谈大数据了,而numpy的apply_along_axis并不好用,这个前文已经提过,而vectorize函数可以说是一个挺好的补充,提供两个array的一对一计算,这两个函数在效率上面的差别是巨大的,下面提到的三种方法都是对一个df的两个列进行相同的计算,最慢和最快的都是pandas,先看看数据:


这里有一个10万行两列的df数组,需要进行的计算是如果a大于b,返回a-b,如果不是就返回a+b,看看用pandas的apply需要的时间:
阅读  ┆ 禁止转载 ┆ 收藏 
(2018-05-25 15:04)
分类: python
ipython运行Cython错误,折腾了两个小时,开始显示

%%cython_pyximport ImportError: Building module function failed: ['DistutilsPlatformError: Unable to find vcvarsall.bat\n']

查了半天在py目录下面的lib里面的distuils里面创建了一个distuils.cfg文件,内容是:
[build]
compiler=mingw32

[build_ext]
compiler = mingw32

结果显示另外一个错误:

阅读  ┆ 禁止转载 ┆ 收藏 
分类: python
0.20.2之前的版本有zlib(默认), lzo,bzip2, blosc等,其中lzo和bzip2已经被zlib取代,blosc在之后的版本里面有了很多选择,包括:blosclz,lz4,lz4hc,snappy,zlib,zstd,本次测试选取了默认的zlib, blosc,以及blosc里面的lz4hc,snappy,zlib和zstd,由于lz4hc是lz4的升级版本,提高了压缩比,所以lz4不测试了,官网推荐最佳压缩比和读写速度的是zstd,本例对各种格式都进行对比测试目的是得出性价比高的压缩格式,补充一下:由于实际操作中经常需要进行切片提取或者append,所以这里所有的format全部设置成't',虽然'f'读写速度会更快但大部分数组的存储都需要用到't'格式,例如只需要查看某一天的数据那么'f'格式必须整个数组读取而't'格式可以通过切片直接提取这一天的数据
先创建一个100万行+5列的数据如下:


数据大小27MB左右,先按
阅读  ┆ 禁止转载 ┆ 收藏 
  

新浪BLOG意见反馈留言板 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

新浪公司 版权所有