
本书采用生动活泼的语言,从入门者的角度讲解BackTrader专业量化软件的使用方法和实盘操作技巧,同时结合国内股票市场、期货、外汇等实盘交易数据进行量化分析实例讲解,包括股票价格分析、量化策略编程、策略参数优化等。书中包含大量简单风趣的实际案例,内置专业模块结构图和相关程序源码,方便初学者入门学习,以快速掌握BackTrader的使用方法,为日常实盘操作奠定扎实的基础。
推荐序 AI交易逐渐成为全球投资市场的主流,趋势已经形成。十几年前,在美国投资市场中,程序化交易的占比已经达到80%。程序化交易的核心是交易员在市场中进行上万次的观察和交易而寻找到的逻辑因子,通过人工智能模型,计算各种逻辑因子的获利概率。因为每个逻辑因子的生命周期都很短,通常只有几个月,所以需要交易员不停地跟随变化的市场寻找适合当下的程序化的逻辑。目前,AI交易时代已经到来,这可以使交易员的工作更精准细致,杜绝人性主观的一面,同时减少程序化交易被“钓鱼”风险。 我和何海群因为程序化交易相识并成为朋友,一直敬佩海群在程序化交易中十几年如一日的坚持,一直走在AI交易最前沿,且成绩斐然。AI交易在国内刚刚起步,发展空间巨大,海群愿意做中国AI交易的基石,通过本书分享自己多年的研究成果,为广大程序化交易爱好者提供一条便捷的成功之路。 在AI交易方面,BackTrader简单易学、优势明显,已成为交易系统方面的佼佼者,为国内投资者提供更顺畅的AI交易赛道。BackTrader使用Python编写策略,其特点是简单、快速、便捷,在投资研究方面可满足机构的需求,让专业投资者能更好地专注于策略和交易本身。国内的AI交易犹如一片蓝海,等着各位读者朋友去开发。 紧跟市场趋势才是成功之道,感谢海群为中国人工智能和金融科技融合做出的贡献! 中国通信工业人工智能协会专家 王立博 前 言 BackTrader是源自欧洲的开源量化软件,也是目前金融行业应用最广的量化分析软件。BackTrader属于单机量化软件,支持“7×24”小时高强度的实盘工作模式。 任何行业都存在技术更新迭代的问题,人们对于专业技能的升级应用,正是社会蓬勃发展的驱动力。在金融行业中,BackTrader无疑是从业者更好地预测、分析未来发展趋势的必需品。学好了BackTrader,就相当于在金融市场多了一套披荆斩棘的投资利器。 本书特点 ? IT零起点:不需要任何编程基础,就能看懂本书。 ? 投资零起点:无须购买任何专业软件,本书配套的zwPython软件包,采用开源模式,提供免费的工业级数据分析平台。 ? 配置零起点:所有软件、数据全部采用“开箱即用”模式,绿色版本,无须安装,解压缩后可直接运行。 ? 理财零起点:采用通俗易懂的语言,配合大量专业图表和实盘操作案例,让你轻松掌握各种量化投资策略。 ? 数学零起点:全书没有复杂的数学公式,只有最基本的加、减、乘、除,你可以轻轻松松看懂全书。 网络资源 书中关于BackTrader及其他模块库的架构图,均由“zwPython研习社”网站授权使用。 有些模块架构图非常复杂,放在书中无法清晰展示,大家可以去“极宽”网站资源中心下载,或者通过QQ群(群号:124134140)下载电子版进行浏览。 为了避免运行环境版本的冲突,请各位读者下载对应版本的软件和配套课件: ? zwPython 2020版本。 ? 本书最新版本的配套课件程序。 使用其他Python运行环境的读者,如Linux、Mac平台的用户,请尽量使用Python 3.0以上版本,自行安装所需的其他模块库,如NumPy、Pandas、BackTrader等第三方模块库。 致谢 在本书创作过程中,极宽开源量化团队和培训班的全体成员提出了很多宝贵的意见,并对部分程序代码做了中文注解,特别是星语同学,在本书文稿的整理和修改过程中做了大量工作,为他们的付出表示感谢。 何海群(字王)
第1章 BackTrader简介 1 1.1 BackTrader量化软件的特点 2 1.2 进入神奇的Python世界 3 1.3 TOP极宽量化工具函数库 4 1.4 量化回测“四步曲” 5 1.5 案例:完整的量化版“Hello”程序 7 第2章 数据预处理 11 2.1 数据格式 12 2.2 Lines内部数据格式 14 2.3 数据目录 17 2.4 指数代码文件 18 2.5 数据预处理函数 18 2.6 案例:数据预处理 20 第3章 策略编程 25 3.1 SQN指数&策略评估参数 26 3.2 量化金融指标 27 3.3 交易数据更新 29 3.4 策略编程模板 30 3.5 案例:策略编程 33 第4章 Buy买入策略 39 4.1 Buy买入函数 40 4.2 案例:设置Buy买入价格 40 4.3 next策略执行函数 45 4.4 Buy买入策略编程 46 第5章 Sell卖出策略 49 5.1 Position仓位检查 50 5.2 Smart Staking智能动态仓位管理 52 5.3 Sell卖出函数 54 5.4 案例:Sell卖出策略 55 5.5 买卖点图表 57 5.6 notify_order订单状态检查函数 57 5.7 双边交易策略 59 5.8 bar量化节点数据包变量 61 第6章 Broker数字经纪人 64 6.1 Broker数字经纪人概述 65 6.2 交易佣金(Commission) 67 6.3 案例:添加Broker经纪人 68 6.4 Broker常用参数 72 6.5 案例:Sizer交易数额 74 6.6 Sizer交易数额模块库架构图 77 第7章 MA均线策略编程 79 7.1 MA均线策略和指标简介 80 7.2 案例:MA均线策略编程 81 第8章 plot绘制金融图 87 8.1 金融分析曲线 88 8.2 案例:绘制不同风格K线图 88 8.3 多曲线金融指标 93 8.4 Observers观测子模块 95 8.5 plot绘图函数的常用参数 96 8.6 案例:买卖点符号和色彩风格 98 8.7 案例:vol成交量参数 105 8.8 案例:多图拼接模式 110 8.9 案例:绘制HA平均K线图 114 8.10 K线图绘制 120 8.11 案例:绘制多指标金融图 122 第9章 回测结果分析 127 9.1 常用量化分析指标 128 9.2 案例:回测数据基本分析 131 9.3 Analyzer分析类 137 9.4 Analyzer分析模块架构图 138 9.5 SQN指数 142 9.6 案例:回测数据扩展指标分析 144 9.7 案例:底层数据分析 151 第10章 PyFolio专业量化分析图 158 10.1 常用量化模块库 159 10.2 轻量级量化分析模块 159 10.3 PyFolio简介 160 10.4 案例:PyFolio量化分析 164 10.5 解读专业量化分析图 173 第11章 Trade交易操作 175 11.1 量化回测分析流程 176 11.2 Cerebro类模块 177 11.3 案例:Trade交易 178 11.4 实盘交易及其隐性规则 185 11.5 Stake交易数额和Trade交易执行价格 188 第12章 买卖点分析 192 12.1 案例:买卖点设置 193 12.2 优化输出信息 197 12.3 案例:手动版策略参数优化 201 第13章 sign信号交易模式 208 13.1 Indicator指标模块库架构图 209 13.2 案例:信号交易的基本操作 213 13.3 案例:信号模式买卖点分析 218 13.4 SignalStrategy信号策略类 222 第14章 参数寻优 227 14.1 参数寻优概述 228 14.2 演示案例:单参数自动寻优 228 14.3 BackTrader内置优化函数 232 14.4 演示案例:多参数自动寻优 234 第15章 模拟盘/实盘操作 238 15.1 模拟盘交易和实盘交易的区别 239 15.2 实盘数据和交易接口 239 15.3 数据共性 241 15.4 数据区别 243 15.5 案例:模拟盘的参数设置 244