github上有一个jdhc简单回测 是用python写的比较简单,需要设置些参数.
下面教你八步写个量化交易策略——单股票均线策略
①. 确定策略内容与框架
只操作一只股票,很简单对吧,但怎么用代码说给计算机听呢?
想想人是怎么操作的,应该包括这样两个部分
既然是单股票策略,事先决定好交易哪一个股票.
对应代码也是这两个部分
def?initialize(context):
用来写最开始要做什么的地方
def?handle_data(context,data):
用来写每天循环要做什么的地方
首先,获取昨日股票的收盘价
#?用法:变量?=?data[股票代码].close
last_price?=?data[g.security].close#?取得最这段时间收盘价,命名为last_price
然后,获取近二十日股票收盘价的平均价
#?用法:变量?=?data[股票代码].mavg(天数,'close')
#?获取近二十日股票收盘价的平均价,命名为average_price
数据都获取完,该做买卖判断了
#?如果昨日收盘价高出二十日平均价,?则买入,否则卖出
if?last_price?average_price:
买入
elif?last_price?average_price:
卖出
问题来了,现在该写买卖下单了,但是拿多少钱去买我们还没有告诉计算机,所以每天还要获取账户里现金量.
#?用法:变量?=?context.portfolio.cash
cash?=?context.portfolio.cash#?取得当前的现金量,命名为cash
#?用法:order_value(要买入股票股票的股票代码,要多少钱去买)
order_value(g.security,?cash)#?用当前所有资金买入股票
#?用法:order_target(要买卖股票的股票代码,目标持仓金额)
order_target(g.security,?0)#?将股票仓位调整到0,即全卖出
把买入卖出的代码写好,策略就写完了,如下
def?initialize(context):#初始化
def?handle_data(context,?data):#每日循环
last_price?=?data[g.security].close#?取得最这段时间收盘价
#?取得过去二十天的平均价格
cash?=?context.portfolio.cash#?取得当前的现金
#?如果昨日收盘价高出二十日平均价,?则买入,否则卖出.
本文将会讲解量化投资过程中的基本流程,量化投资无非这几个流程,数据输入------策略书写------回测输出
其中策略书写部分还涉及到编程语言的选择,如果不想苦恼数据输入和回测输出的话,还要选择回测平台.
第一段:数据
首先,必须是数据,数据是量化投资的基础
如何得到数据?
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
Python量化投资框架:回测+模拟+实盘
以上就是土嘎嘎小编为大家整理的python量化回测函数相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!