Python量化交易知识站Python · JoinQuant · Backtest · Factors

Chapter · 第 254 页起

第12章 Python量化策略的回测

章节主张

第十二章通过双均线策略把回测的完整观察路径搭出来:写策略、配参数、看详情、看风险指标。

中文释读

这一章最有价值的不是双均线本身,而是让回测从“跑一个结果”升级成“读一张策略体检报告”。

如果你以后做自己的量化实验,回测理解力会直接决定你能否避免最常见的自我欺骗。

本章知识路线

关键论据

  • 回测是结构检验。
  • 风险指标和收益曲线同样重要。
  • 参数设置会改变结论边界。

行动清单

  • 每次回测都记录参数。
  • 同时看收益、波动、回撤。
  • 先做合理性判断,再谈优化。

本章图版学习路径

图版按知识点分组,用来把理论页、平台页和代码页重新接上。

源章节深读

以下卡片基于章节和小节起始页 OCR,并补上“问题、动作、提醒”三层解读。

12.1 回测的过程

Python 量化交易实战入门与技巧 12.1 回测的过程 Python 量化策略的回测过程具体如下: 第一,利用Python编写好量化策略,选择要操作的股票池,实现 handle_data 函效。handle_data 函数每个单位时间会调用一次,如果按天 回测,则每天调用一次;如果按分钟,则每分钟调用一次。 第二,选定一个回测开始日期和结束日期,再选择初始资金、调仓间隔 (每天还是每分钟),然后就可以开始回测了。 第三,通过选择的股票池和日期,取得股票数据,然后每一天或者每一 分钟调用一次 handle_data 函数。同时告诉操作人员现金、持仓情况和股票 在上一天或者上一分钟的数据。在 handle data 函数中,还可以调用其他函 数获取任何多天的历史数据,然后做出调仓决定。 第四,下单后会根据接下来时间的实际交易情况,处理你的订单。

这节解决什么问题:这一节解决策略如何被历史检验的问题。
怎么用到自己的系统:适合把参数、收益、波动、回撤和基准比较写入同一张体检表。
常见错误:不要只盯收益曲线,忽略风险指标。

12.2 编写双均线量化策略

第12章 Python 量化策略的回测 12.2 编写双均线量化策略 下面通过编写双均线量化策略再进行回测。 12.2.1 量化策略的编辑页面 在浏览器的地址栏中输入 “https://www.joinquant.com” ,回车,进 人 JoinQuant(聚宽)量化交易平台的首页页面。 单击菜单栏中的“我的策略/ 我的策略” 命令,然后单击“新建策略” 按钮,弹出下拉菜单,在其中单击“股票策略”,进入量化策略的编辑页面, 如图 12.1所示。

这节解决什么问题:这一节解决完整策略如何从信号走向执行与回测闭环。
怎么用到自己的系统:适合拆出初始化、选股、过滤、交易和回测几个模块。
常见错误:不要只看买卖条件,不看完整执行结构。

12.3 设置量化策略的回测参数

第12章 Python 量化策略的回测 order_target (security,O) # 记录这次卖出 log.info(“Selling ss” ge (security)) #绘制 n1 日均线价格 record (ma_nl=ma_n1) #绘制n2日均线价格 record (ma_n2=ma_n2) 首先获取要操作的股票,然后调用attribute_history 函数获取要操作股 票的收盘价格,再通过meanl函数获取5日均线值和 10日均线值,接着获 取当前账户的资金。 然后通过i语句实现,当5 日均线大于10日均线时,调用 order_value 函数全仓买入股票,并记录这次买人;当5日均线小于10日均线时,调用 order_value 函数全部卖出股票,并记录这次卖出。 最后调用 record 函数,绘制5日和10日均线。 12.3 设置量化策略的回测参数 双均线量化策略编写完成后,就可以进行回测了。

这节解决什么问题:这一节解决策略如何被历史检验的问题。
怎么用到自己的系统:适合把参数、收益、波动、回撤和基准比较写入同一张体检表。
常见错误:不要只盯收益曲线,忽略风险指标。

12.4 双均线量化策略的回测详情

第12章 Python 量化策略的回测 如果是一天内的分钟序列,即构成一根日线K线,又称日线Bar,如 图12.8所示。 蒉 司线 万科A MA5:29.57+ MA10:29.82| 1A20:31.26+ MA3| 42.24 H服 加自选 均线 除权 叠窗 43.06 40.32 37.57 K 致图 34.83 32.09 …29.34 27.42一 12 02 •图12.8 03 日线Bar 04 2. 频率详解 当选择“每天” 频率时,算法在每根日线 Bar 上都会运行一次,即每天运行一次。 选择“分钟”钟频率时,算法在每根分钟 Bar上都会运行一次,即每分钟运行一次。 提醒:Bar 就是时间维度上,价格在 空间维度上变化构成的数据单元。

这节解决什么问题:这一节解决策略如何被历史检验的问题。
怎么用到自己的系统:适合把参数、收益、波动、回撤和基准比较写入同一张体检表。
常见错误:不要只盯收益曲线,忽略风险指标。

12.5 量化策略的风险指标

Python 量化交易实战入门与技巧 a JoinQuant聚宽 商贞 的策站 販煎广场 基金投理料化 策前大赛数系帮助 量化课空 社区个人敗写 设量:2016-03-26 到 2018-03-26、¥100000.每天 C 日因分析 街分旗烈社区 赤蛋代码 中氏, 箙黠收盓 田期, 1个月 3个月. 6月 12个月 © 性脂分斬 2016-12 2017-01 2017-02 0.0000 -0.0427 -0.0147 -0.0396 -0.0605 -0.0558 0.1829 0.3455 NaN NaN 0.1169 2017-03 2017-04 2017-05 -0.0029 -0.0244 -0.0585 -0.0415 0.0047 -0.0958 -0.0095 0.1137 0.0865 0.1221 2017-06 2017-07 2017-08 0.0012 -0.0965 0.0241 0.0088

这节解决什么问题:这一节解决某类技术指标在什么场景下更有意义。
怎么用到自己的系统:适合按趋势、震荡、能量、支撑压力等功能给指标分组。
常见错误:不要把多个同类指标叠加成噪声。
辨析题:为什么回测章节最重要的是风险指标而不是双均线?

因为真正可迁移的能力是读懂任何策略的风险画像,而不是只会复现一个案例。