python pandas数据处理,pandas 回测
这篇文章主要介绍了大蟒使用熊猫进行量化回测,文章围绕熊猫进行量化回测的相关资料展开简单内容,文章内容可以做一些比较简单的技术指标测试,需要的朋友可以参考一下
下面文章描述可能比超过高级一点,距离反向交易者这些框架又差一点。做最基础的测试可以,如果后期加入加仓功能,或者是止盈止损等功能,很不合适。只能做最简单的技术指标测试。
导包,常用包导入:
导入操作系统
将阿克沙尔作为美国阿拉斯加邮递区号导入
导入请求
将数组作为铭牌导入
进口熊猫作为螺纹中径
将matplotlib.pyplot作为血小板计数导入
将塔利卜作为谢谢导入
%matplotlib内联
plt.style.use(ggplot )
获取数据,本文使用akshare中债券数据为对象分析:
邦德_ zh _ hs _ daily _ df=AK。bond _ zh _ hs _ daily(symbol= sh 010107 )
添加指标:
极好的回测_趋势_策略(ohlc: pd .数据帧,
fast_period: int=50,
慢速周期: int=200
threshold: float=1.0) - pd .数据帧:
封装向量化回测的逻辑
# 计算指标
ohlc[fast_ema]=talib .EMA(ohlc.close,fast_period)
ohlc[slow_ema]=talib .EMA(ohlc.close,slow_period)
ohlc[ pct _ diff ]=(ohlc[ fast _ EMA ]/ohlc[ slow _ EMA ]-1)* 100
# 生成信号,1表示做多,-1表示做空,0表示空仓
ohlc[信号]=NP。其中(ohlc[ pct _ diff ]阈值,1,0)
ohlc[信号]=NP。其中(ohlc[ pct _ diff ]-阈值,-1,ohlc[信号])
# 计算策略收益率
ohlc[ returns ]=NP。log(ohlc[ close ]/ohlc[ close ]).shift(1))
ohlc[策略]=ohlc[信号]。shift(1) * ohlc[returns]
ohlc[策略_返回]=ohlc[策略]。累计和()
返回开高低收
运行策略,并绘制图片:
数据=策略1(数据)
fig,ax=plt.subplots(nrows=3,ncols=1,figsize=(12,15),sharex=True)
ax[0].plot(data.index,data[close])
ax[0].plot(data.index,data[fast_ema])
ax[0].plot(data.index,data[slow_ema])
ax[0].set_title(价格和指标)
斧[1].plot(data.index,data[signal])
斧[1].set_title(策略位置)
数据[[returns ,策略]].累计()。plot(ax=ax[2],title=策略返回)
参数优化:
# 选择核心参数和扫描区间,其它参数保持不变
fast_period_rng=np.arange(5,101,5)
total_return=[]
对于快速_周期_rng:中的快速_周期
ohlc=data.filter([open , high , low , close])
RES=回溯测试_趋势_策略(ohlc,fast_period,200,1.0)
总回报。append(RES[ strategy _ returns ].iloc[-1])
# 散点图:策略收益率相对快速均线回溯期
fig,ax=plt.subplots(figsize=(12,7))
ax.plot(fast_period_rng,total_return, r-o ,markersize=10)
ax.set_title(策略回报相对快速周期)
ax.set_xlabel(fast_period )
ax.set_ylabel(return(%))
到此这篇关于大蟒使用熊猫进行量化回测的文章就介绍到这了,更多相关熊猫进行量化回测内容请搜索盛行信息技术软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行信息技术软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。