本文将会讲解量化投资过程中的基本流程,量化投资无非这几个流程,数据输入------策略书写------回测输出
其中策略书写部分还涉及到编程语言的选择,如果不想苦恼数据输入和回测输出的话,还要选择回测平台.
第一段:数据
首先,必须是数据,数据是量化投资的基础
如何得到数据?
TuShare:TuShare -财经数据接口包,基于Python的财经数据包,利用Python进行摘取
如何存储数据?
Mysql
如何预处理数据?
空值处理:利用DataFrame的fill.na()函数,将空值(Nan)替换成列的平均数、中位数或者众数
数据标准化
数据如何分类?
行情数据
财务数据
宏观数据
第二段:计算语言软件
已经有很多人在网上询问过该选择什么语言?笔者一开始用的是matlab,但最终选择了python
python:库很多,只有你找不到的,没有你想不到,和量化这块结合比较紧密的有:
NumpyScipy:科学计算库,矩阵计算
Pandas:金融数据分析神器,原AQR资本员工写的一个库,处理时间序列的标配
Matplotlib:画图库
scikit-learn:机器学习库
statsmodels:统计分析模块
TuShare:免费、开源的python财经数据接口包
Zipline:回测系统
TaLib:技术指标库
matlab:主要是矩阵运算、科学运算这一块很强大,主要有优点是WorkSpace变量可视化
python的Numpy◆Scipy两个库完全可以替代Matlab的矩阵运算
Matplotlib完克Matlab的画图功能
python还有很多其他的功能
pycharm(python的一款IDE)有很棒的调试功能,能代替Matlab的WorkSpace变量可视化
推荐的python学习文档和书籍
涉及到数据运算的话,其实基础教程没什么应用,python各类包都帮你写好了,最好的学习资料还是它的官方文档,文档中的不仅有API,还会有写实例教程
pandas文档
statsmodels文档
scipy和numpy文档
matplotlib文档
TuShare文档
第二,推荐<<利用Python进行数据分析>>,pandas的开发初衷就是用来处理金融数据的
第三段:回测框架和网站
两个开源的回测框架
PyAlgoTrade - Algorithmic Trading
Zipline, a Pythonic Algorithmic Trading Library
比较成熟的库可以参考如下几个:
pybacktest
pyalgotrader
zipline
bt
backtrader
pybacktest基于vector,不是event based,快得多得多,缺点也明显.
通信达专长还是行情数据,建议你使用国内较成熟的量化平台如掘金量化、米筐、优矿.聚宽等,他们已经相对成熟支持python量化交易.
不管是对量化分析师还是普通的投资者来说,K线图(蜡烛图)都是一种很经典、很重要的工具.在K线图中,它会绘制每天的最高价、最低价、开盘价和收盘价,这对于我们理解股票的趋势以及每天的多空对比很有帮助.
一般来说,我们会从各大券商平台获取K线图,但是这种情况下获得的K线图往往不能灵活调整,也不能适应复杂多变的生产需求.所以呢我们有必要学习一下如何使用Python绘制K线图.
我们先使用mpl_finance绘制一下,看看是否一切正常.
可以看到,所有的节假日包括周末,今天这一节都会显示为空白,这对于我们图形的连续性非常不友好,所以呢我们要解决掉他们.
可以看到,空白问题完美解决,这里我们解释一下.由于matplotlib会将日期数据理解为 连续数据 ,而连续数据之间的间距是有意义的,所以非交易日即使没有数据,在坐标轴上还是会体现出来.连续多少个非交易日,在坐标轴上就对应了多少个小格子,但这些小格子上方并没有相应的蜡烛图.
明白了它的原理,我们就可以对症下药了.我们可以给横坐标(日期)传入连续的、固定间距的数据,先保证K线图的绘制是连续的;然后生成一个保存有正确日期数据的列表,此时此刻呢,我们根据坐标轴上的数据去取对应的正确的日期,并替换为坐标轴上的标签即可.
上边format_date函数就是这个作用.由于前边我们给dates列生成了从0开始的序列连续数据,所以呢我们可以直接把它当作索引,从真正的日期列表里去取对应的数据.今天这一节我们要使用matplotlib.ticker.FuncFormattter()方法,它允许我们指定一个格式化坐标轴标签的函数,在这个函数里,我们需要接受坐标轴的值以及位置,并返回自定义的标签.
你学会了吗?
当然,一个完整的K线图到这里并没有结束,后边我们会考虑加入均线、成交量等元素,感兴趣的同学欢迎关注哦!
扩展资料:
Python开发基础课程内容包括:计算机硬件、操作系统原理、安装linux操作系统、linux操作系统维护常用命令、Python语言介绍、环境安装、基本语法、基本数据类型、二进制运算、流程控制、字符编码、文件处理、数据类型、用户认证、三级菜单程序、购物车程序开发、函数、内置方法、递归、迭代器、装饰器、内置方法、员工信息表开发、模块的跨目录导入、常用标准库学习,b加密\re正则\logging日志模块等,软件开发规范学习,计算器程序、ATM程序开发等.
python 离散型数据量化的方法可以采用变量转换方法来解决,分类数据和连续数据需要参与模型计算,并且通常会转换为数值数据.
当然,某些算法允许这些数据直接参与计算,例如分类算法中的决策树和关联规则.将非数字数据转换为数字数据的最佳方法是将所有类别或有序变量的范围从一列多值形式转换为仅包含真值的多列.可以将True值传递给True,False或0、1.这种符号转换方法有时称为真值转换.
具体代码是:
import pandas as pddata = [.
['yellow', 'S', 10.1, 'class1'].
df = pd.DataFrame(.
data,columns=['color', 'size', 'prize', 'class'].
python 离散型数据用连续数据处理的方法是:
等宽法缺点是分箱结果会受到最值影响.并且需要人为指定箱子个数,比较依赖于经验.分箱结果会直接影响后续分类、聚类的结果.
以上就是土嘎嘎小编为大家整理的python量化函数库相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!