![BackTrader量化交易案例图解](https://wfqqreader-1252317822.image.myqcloud.com/cover/581/34667581/b_34667581.jpg)
4.2 案例:设置Buy买入价格
下面看看具体的案例,案例文件名是:btr_e004buy.py。
程序主体部分的代码和前面的案例是完全一样的。第一组和第二组源码都是设置数据及策略参数:
![](https://epubservercos.yuewen.com/80F853/18519309601631906/epubprivate/OEBPS/Images/39705_53_1.jpg?sign=1738930922-wYHc0FxoAhoHy3sPdYltlw99LKzEAMTQ-0-77cad099214c78f88ce80bc9fb0589b4)
adddata类函数,作用是添加量化交易数据,设置数据源参数:
![](https://epubservercos.yuewen.com/80F853/18519309601631906/epubprivate/OEBPS/Images/39705_53_2.jpg?sign=1738930922-uOEBEohxsdkcJsIWp4K7Lci1zLX75TFN-0-55e7567acc2cf38f32ac1a02d737617e)
addstrategy类函数,作用是添加量化策略,设置策略参数:
![](https://epubservercos.yuewen.com/80F853/18519309601631906/epubprivate/OEBPS/Images/39705_53_3.jpg?sign=1738930922-aXycyceXz5v3prQRgMIGnrXODJDmCXI5-0-9f379fed29dfcb8fb7d4572f549cc34b)
第三组代码运行量化程序;第四组代码输出回测数据,绘制相关图表,如下:
![](https://epubservercos.yuewen.com/80F853/18519309601631906/epubprivate/OEBPS/Images/39705_54_1.jpg?sign=1738930922-EXj1cQrbgKXvhdhVSv8sSiEEVafEbbp5-0-d5d7a44ef3cb42d5e21be09bd9d77c3e)
运行案例程序,主要输出信息如下:
![](https://epubservercos.yuewen.com/80F853/18519309601631906/epubprivate/OEBPS/Images/39705_54_2.jpg?sign=1738930922-XJBY8T9CkPQ8EslrUBQh7n1r4D8hKGce-0-fda6fab0b7d576c9e6ad0b118c233ff8)
![](https://epubservercos.yuewen.com/80F853/18519309601631906/epubprivate/OEBPS/Images/39705_55_1.jpg?sign=1738930922-hBUO77YojeXFDunqDLJJAdZxdWPBacj0-0-c61f0fb7e10abb8c07c3d6cc9ceeb860)
在以前的案例程序中,因为是空策略,所以没有买卖交易,程序的起始资金和资产总值都是10万元。
但在本节案例中,从输出信息来看,有稍许亏损:
资产总值 Final Portfolio Value:99923.51
本案例回测的时间周期是:2018年1月~2018年12月。
2018年,国内A股大盘形式不好,但本案例的亏损额很少,说明这个策略在2018年的行情中还是比较优秀的策略。
如图4-2所示是程序生成的买入策略分析图。
![](https://epubservercos.yuewen.com/80F853/18519309601631906/epubprivate/OEBPS/Images/39705_56_1.jpg?sign=1738930922-pojSBx0zS1Jw8QwXfW3IqW4PdxDWVZWD-0-6a5e207c1ba9a8ab5e723311e3875eef)
图4-2 买入策略分析图
图4-2最上方的蓝色曲线是资产总额,包括股票和持有现金的总额。资产总额曲线,可以反映用户买卖的盈亏情况。
大家注意蓝色资产总额曲线的走势变化:起点是10万元,这是开始时的现金持有量。随着股票的买入增多,现金持有量越来越少。但当前案例不是正式交易,只是单边买入股票,没有卖出。
案例中出现的亏损数额很少,还有一个原因是量化软件默认只买入一手股票。而每只股票价格才6元多,每次交易就只是买卖一手,即使亏损也不会亏损太多。
图4-2中价格曲线附近的三角符号就是股票的实际交易买卖点。
我们在实际测试时发现,这些买卖点存在一些时间误差,前后误差大约是两天时间。
笔者分析,造成误差的原因有两个:
(1)时差和时区。例如,zipline量化软件要求要把导入数据转换为UTC世界统一时间。
(2)交易日历模块库。目前还没有统一的交易时间标准,因为各国风俗不同,所以各国的节假日也有所不同。
这些误差,对于量化程序的实际分析结果影响不大,图中的买卖点图标也只是提示参考图标。