一直都知道Python可以用于量化投资分析,很想学习一下这方面的知识,趁着最近参加的一个项目意外搁浅,花点时间入门下。
查了下现在市场上的基于Python的量化回测框架,开源的有zipline、vnpy、Pyalgotrade和backtrader等,量化平台有Quantopian、聚宽、万矿、优矿、米筐等。
既然是程序猿,还是弄个开源框架自己跑跑试试,比较了下觉得BackTrader(德国人写的)好像入门容易点,搭一个先试试看。
BackTrader的安装很简单,支持从pypi安装pip install backtrader, 也支持从源代码安装https://github.com/mementum/backtrader, 加压后执行python3 setup.py install。
我执行了下源码安装,主要看看以后有没有时间学习别人怎么写的python工程。
还需要安装一些backtrader需要的依赖需要安装 python3 -m pip install --upgrade tushare python3 -m pip install --upgrade pandas python3 -m pip install --upgrade datetime python3 -m pip install --upgrade matplotlib sudo apt install python3-tk tk-dev -y
注册新版的tushare pro账户,个人主页获取token,这个是为了程序能通过tushare提供的接口获取行情数据。
也有其它些网站和交易商提供了行情数据接口,但是tushare用起来挺方便的,重点不在这里,不研究其它的了。
新建一个目录,把程序firstsample.py, SimpleStrategy.py下载到目录下,直接执行python3 firstsample.py就能看到执行结果。
简单解释一下程序
1) 准备连接tushare,从网上找一些股票代码(特意加上了太极,以后如果有好的策略,分析一下太极)。 TOKEN = '******************' pro = ts.pro_api(token=TOKEN)
data = { 'code':['600819.SH','000612.SZ','000998.SZ','002009.SZ','300159.SZ','300048.SZ','600150.SH','002041.SZ','601669.SH','002368.SZ'], 'name':['耀皮玻璃','焦作万方','隆平高科','天奇股份','新研股份','合康新能','中国船舶','登海种业','中国电建','太极股份'] } frame = pd.DataFrame(data) stock=frame['code']
for i in range(len(stock)): data=fetch_daily_data(stock.iloc[i],'20200813', '20210813')#字段分别为股票代码、开始日期、结束日期 data.to_csv(stock.iloc[i]+'.csv')
还有一个文件SimpleStrategy.py就是动量+趋势跟踪的策略,策略思路为:计算24只股票过去30日的收益率并进行排序,选择前10只股票加入选股池(动量),逐日滚动计算和判断:如果选股池中某只个股满足股价位于20均线以上且没有持仓时买入(以20日均线为生命线跟踪趋势);如果某只个股已持仓但判断不在选股池中或股价位于20均线以下则卖出。每次交易根据十只个股平均持仓。 这个是从网上找的一个现成策略,我随便找了10只股票,并不完全满足策略要求,主要为了测试backtrader是否为我所用了,具体的策略问题等以后慢慢研究。
到这一步,一个backtrader的环境就搭建好了,backtrader还支持绘图, 以后的学习中再仔细研究一下。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。