用Python怎么做量化投资

用Python怎么做量化投资,第1张

本文将会讲解量化投资过程中的基本流程,量化投资无非这几个流程,数据输入------策略书写------回测输出

其中策略书写部分还涉及到编程语言的选择,如果不想苦恼数据输入和回测输出的话,还败洞要选择回测平台。

一、数据

首先,必须是数据,数据是量化投资的基础

如何得到数据?

Wind:数据来源的最全的还是Wind,但是要付费,学生可以有免费试用的机会,之后还会和大家分享一下怎样才Wind里摘取数据,Wind有很多软雀枯派件的借口,Excel,Matlab,Python,C++。

预测者网:不经意间发现,一个免费提供股票数据网站 预测者网,下载的是CSV格式

TB交易开拓者:Tradeblazer,感谢@孙存浩提供数据源

TuShare:TuShare -财经数据接口包,基于Python的财经数据包,利用Python进行摘取

如何存储数据?

Mysql

如何预处理数据?

空值处理:利用DataFrame的fill.na()函数,将空值(Nan)替换成列的平均数、中位数或者众数

数据标准化

数据如何分类?

行情数据

财务数据

宏观数据

二、计算语言&软件

已经有很多人在网上询问过该选择什么语言?笔者一开始用的是matlab,但最终选择了python

python:库很多,只有你找不到的,没有你想不到,和量化这块结合比较紧密的有:

Numpy&Scipy:科学计算库,矩阵计算

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的基础,建议廖雪峰Python 2.7教程,适合于没有程序基础的人来先看,涉及到python的基本数据类型、循环语句、条件语句、函数、类与对象、文件读写等很重要的基础知识。

涉及到数据运算的话,其实基础教程没什么应用,python各类包都帮你写好了,最好的学习资料还是它的官方文档,文档中的不仅有API,还会有写实例教程

pandas文档

statsmodels文档

scipy和numpy文档

matplotlib文档

TuShare文档

第二,推荐《利用Python进行数据分析》,pandas的开发初衷就是用来处理金融数据的

三、回测框架和网站

两个开源的回测框架

PyAlgoTrade - Algorithmic Trading

Zipline, a Pythonic Algorithmic Trading Library

开源交易腔谨激平台开发框架

入门Python方便使用 vn.py学习建议

1.目前中文教程大多停留在2.5的版本上,所以如果英语很差(又没有编程基础)最好从这里开始。而且目前并非所有的模块,错,是大多数 模块 都不支持3.X。

国内前景就是,你可以独立完成XXXX就牛逼。

3.X舍弃了向下兼容性,立志把Python做的尽善尽美,但是各个 模块 的更新情况不太乐观。(怎么的也得3-5年吧)

2.Python 涉及的面比较广,其实任何语言都伍袜是,可以做所有的事情,就是各自的语言特点决定这种语言做这个方面适合与否。

3.Python 适合用于快速开发,解释性语言导致晌此了运行效率比较低,但是开发速度相对于其他语言却很高。

参考资料

https://zhidao.baidu.com/question/366176601130279212.html.百度知道[引用时间2018-3-28]

python 离散型数据量化的方法可以采用变量转换方法来解决,分类数据和连续数据需要参与模型计算,并且通常会转换为数值数据。

当然,某些算法允许这些数据直接参与计算,例如分类算法中的决策树和关联规则。将非数字数据转换为数字数据的最佳方法是将所有类别或有序变量的范围从一列多值形式转换为仅包含真值的多列。可以将True值传递给True,False或0、1。这种符号转换方法有时称为真值转换。

具体代码是:

import pandas as pddata = [.

['yellow', 'S', 10.1, 'class1'].

['red', 'M', 13.5, 'class1'].

['red', 'M', 15.1, 'class2'].

['blue'哗皮, 'XL', 15.3, 'class2'.

df = pd.DataFrame(.

data,columns=['color', 'size', 'prize', 'class'].

python 离散型数据用连续数据处理的方法是:

1、等宽法:若数据区间为0~20,设置箱子个数为4个,则等宽法会将数据装入4个箱子:[0,5],(5,10],(10,15],(15,20],并且可以设置每个箱子的名字,如1、2、3、4。

等宽法缺点是分箱结高吵果会受到最值影响。并且需要人为指定箱子个数,比较依赖于经验。分箱结果会直接影响后续分类、聚类的结果。

2、等频法:等频法是指将一组数据分解成n个部分后,每个部分的记录数量是戚芦侍一样多的。等频法常用pandas库中的qcut()函数进行处理。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8208535.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存