![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=1739287609-a35bqQfDwiY1QEzL0TVhqjJCuZwfaflV-0-750ce64fc73762d8e6e9e21f6470840e)
adddata类函数,作用是添加量化交易数据,设置数据源参数:
![](https://epubservercos.yuewen.com/80F853/18519309601631906/epubprivate/OEBPS/Images/39705_53_2.jpg?sign=1739287609-nt8yAcTPqvGLDNJFXWz30qTchFUtHayN-0-fbbfe77c4cc1993acc4bac7f26328ee6)
addstrategy类函数,作用是添加量化策略,设置策略参数:
![](https://epubservercos.yuewen.com/80F853/18519309601631906/epubprivate/OEBPS/Images/39705_53_3.jpg?sign=1739287609-VDXIMzwM7UhIsZYmrNBF9PD2IDWiuIVb-0-6ff41055e794a0a7448acdccc386918a)
第三组代码运行量化程序;第四组代码输出回测数据,绘制相关图表,如下:
![](https://epubservercos.yuewen.com/80F853/18519309601631906/epubprivate/OEBPS/Images/39705_54_1.jpg?sign=1739287609-rZZbwDUPuPwLj7qslsMHhTH1rkfqd3Wu-0-9f4a3d59029c41c5098c604112c32561)
运行案例程序,主要输出信息如下:
![](https://epubservercos.yuewen.com/80F853/18519309601631906/epubprivate/OEBPS/Images/39705_54_2.jpg?sign=1739287609-kJNDtV83w1SFm0HE33ZPrXGdxQVdSiJZ-0-300b8d9c2bdfe27ea8962d213ac4882c)
![](https://epubservercos.yuewen.com/80F853/18519309601631906/epubprivate/OEBPS/Images/39705_55_1.jpg?sign=1739287609-9bX9TwLLXrATnAIk0HpT1DMwMFCAOU8U-0-af531efec14ba39c11ad4e9a25adac05)
在以前的案例程序中,因为是空策略,所以没有买卖交易,程序的起始资金和资产总值都是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=1739287609-8IF5CW1irUgWP5Feh8bXvr45KieR867E-0-cc4c34a814180edbe672b11a73180930)
图4-2 买入策略分析图
图4-2最上方的蓝色曲线是资产总额,包括股票和持有现金的总额。资产总额曲线,可以反映用户买卖的盈亏情况。
大家注意蓝色资产总额曲线的走势变化:起点是10万元,这是开始时的现金持有量。随着股票的买入增多,现金持有量越来越少。但当前案例不是正式交易,只是单边买入股票,没有卖出。
案例中出现的亏损数额很少,还有一个原因是量化软件默认只买入一手股票。而每只股票价格才6元多,每次交易就只是买卖一手,即使亏损也不会亏损太多。
图4-2中价格曲线附近的三角符号就是股票的实际交易买卖点。
我们在实际测试时发现,这些买卖点存在一些时间误差,前后误差大约是两天时间。
笔者分析,造成误差的原因有两个:
(1)时差和时区。例如,zipline量化软件要求要把导入数据转换为UTC世界统一时间。
(2)交易日历模块库。目前还没有统一的交易时间标准,因为各国风俗不同,所以各国的节假日也有所不同。
这些误差,对于量化程序的实际分析结果影响不大,图中的买卖点图标也只是提示参考图标。