python 计算 换手率_backtrader如何加载股票因子数据?以换手率、市盈率为例进行回测【附Python代码】...

本文介绍了如何在backtrader上扩展数据加载,以包含股票的换手率、市盈率等因子。通过示例展示了如何使用tushare获取数据,扩展backtrader的PandasData类加载更多列,以及如何编写策略进行回测。最后,给出了一个基于换手率和市盈率的简单交易策略及其回测结果。
摘要由CSDN通过智能技术生成

1引言

关于backtrader,公众号已连续发布了三篇推文:《

2数据扩展实例

01数据准备

下面使用tushare pro获取个股交易数据,包含日期(datetime)、价格(open、high、low、close)和成交量(volume)、换手率(turnover_rate)、市盈率(pe)、市净率(pb)等数据。

import pandas as pd

import tushare as ts

#tushare pro需到官网注册并获取token才能用

token='输入你的token'

pro=ts.pro_api(token)

def get_data(code,date='20200101'):

data1=ts.pro_bar(ts_code=code, adj='qfq', start_date=date)

data1=data1[['trade_date','open','high','low','close','vol']]

data2=pro.daily_basic(ts_code=code,fields='trade_date,turnover_rate,pe,pb')

data=pd.merge(data1,data2,on='trade_date')

data.index=pd.to_datetime(data.trade_date)

data=data.sort_index()

data['volume']=data.vol

data['openinterest']=0

data['datetime']=pd.to_datetime(data.trade_date)

data=data[['datetime','open','high','low','close',\

'volume','openinterest','turnover_rate','pe','pb']]

data=data.fillna(0)

return data

查看数据并保存csv格式到本地,文件名为“test.csv”。

#数据保存到本地

get_data('300002.SZ').to_csv('test.csv',index=False)

get_data('300002.SZ').head()

02扩展feeds中的数据加载

对backtrader相关模块进行扩展,首先要先研究一下原生代码的构成,找到安装文件夹,我装的是anaconda,所以backtrader所在文件夹路径为:

C:\Anaconda3\Lib\site-packages\backtrader\,进入该路径找到feeds文件夹,看到里面有很多py文件,说明backtrader支持加载的数据或类型,在线数据支持quandl和yahoo适合做美股分析。我们关注的是如何加载A股数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值