一、框架介绍

基础回测框架

不适用

量化 回归分析 python 量化分析回测_新版本

 

 

云端的框架

量化 回归分析 python 量化分析回测_数据获取_02

 

 

二、策略创建运行流程

2.1 一个完整的策略,需要做的事情

量化 回归分析 python 量化分析回测_数据_03

 

 

 

2.2 策略初始设置介绍

量化 回归分析 python 量化分析回测_新版本_04

 

 

量化 回归分析 python 量化分析回测_数据获取_05

 

 

 

2.3 策略主体运行流程分析

量化 回归分析 python 量化分析回测_数据获取_06

 

 

量化 回归分析 python 量化分析回测_数据获取_07

 

如果 回测频率 选的是每分钟,那么handle_bar就是每分钟判断一次。

 

三、数据获取接口

量化 回归分析 python 量化分析回测_新版本_08

 

 

3.1 数据接口种类

(from 弹幕:get_fundamentals 目前改用get_factor)

量化 回归分析 python 量化分析回测_数据获取_09

 

 

3.2 获取行业

industry - 行业股票列表

量化 回归分析 python 量化分析回测_量化 回归分析 python_10

 

 

这里,A01在每个量化云平台都是通用的

量化 回归分析 python 量化分析回测_数据_11

 

量化 回归分析 python 量化分析回测_新版本_12

 

 

 

3.3 获取板块

sector - 板块股票列表

量化 回归分析 python 量化分析回测_量化 回归分析 python_13

 

量化 回归分析 python 量化分析回测_数据获取_14

 

 

量化 回归分析 python 量化分析回测_新版本_15

 

 

 

3.4 获取概念

量化 回归分析 python 量化分析回测_新版本_16

 

 

3.5 获取指数成分股

index_components - 指数成分股

量化 回归分析 python 量化分析回测_数据_17

 

 

量化 回归分析 python 量化分析回测_量化 回归分析 python_18

  

 

 

 

3.6 获取股票合约数据

history_bars - 某一合约历史数据

不能在init调用!!!

量化 回归分析 python 量化分析回测_量化 回归分析 python_19

 

bar_count指的是,在策略运行当前,往前取几天的数据

量化 回归分析 python 量化分析回测_量化 回归分析 python_20

 

量化 回归分析 python 量化分析回测_量化 回归分析 python_21

 

 

量化 回归分析 python 量化分析回测_数据获取_22

 

 

bar_dict - 只能获取指定天的行情

但只能拿当天的信息!

量化 回归分析 python 量化分析回测_数据_23

 

 

量化 回归分析 python 量化分析回测_新版本_24

 

 

3.7 获取财务数据

get_fundamentals - 查询财务数据

回测的时候,主要拿来去选股

不能在init中使用!!

量化 回归分析 python 量化分析回测_数据获取_25

 

 

量化 回归分析 python 量化分析回测_数据获取_26

 

 

如何构建get_fundamentals的参数 query

量化 回归分析 python 量化分析回测_数据_27

 

 

示例:

打印出A股所有股票的pe_ratio指标,返回类型是DataFrame

量化 回归分析 python 量化分析回测_量化 回归分析 python_28

 

 

示例:把输出结果转置(行列颠倒)

在fund.T加一个大写的T,即可

量化 回归分析 python 量化分析回测_新版本_29

 

 

 

过滤指标条件

量化 回归分析 python 量化分析回测_新版本_30

 

 filter示例:

量化 回归分析 python 量化分析回测_数据_31

 

 

order_by示例:

按照pe_ratio的升序排序。。如果需要降序,需要变成pe_ratio.desc()

量化 回归分析 python 量化分析回测_新版本_32

 

 

limit示例:

量化 回归分析 python 量化分析回测_数据获取_33

 

 

fundamentals.stockcode.in_() 在制定的股票池中过滤

context.inex_list前文被赋值为沪深300的股票

量化 回归分析 python 量化分析回测_数据获取_34

 

 

3.8 scheduler定时器定时数据获取

必须都在init中使用!!

量化 回归分析 python 量化分析回测_新版本_35

 

 

scheduler.run_daily - 每天运行

量化 回归分析 python 量化分析回测_数据获取_36

 

 

scheduler.run_weekly - 每周运行

 

 

scheduler.run_monthly - 每月运行

量化 回归分析 python 量化分析回测_数据获取_37

 

 示例:

量化 回归分析 python 量化分析回测_数据_38

 

 

定时器中的函数,何时执行?

定时器中的函数,这里是get_data。在执行日,会插在before_trading()和handle_bar()之间。

量化 回归分析 python 量化分析回测_数据获取_39

 

 

四、回测交易接口

量化 回归分析 python 量化分析回测_量化 回归分析 python_40

 

 

4.1 用于股票交易的函数

加粗的是常用的

量化 回归分析 python 量化分析回测_数据_41

 

 

order_shares - 指定股数交易(股票专用)

量化 回归分析 python 量化分析回测_数据获取_42

 

在handle_bar()中,使用order_shares()...

 

order_target_value -  目标价值下单(股票专用)

某个股票要买到一定的数额。

 

量化 回归分析 python 量化分析回测_数据_43

 

量化 回归分析 python 量化分析回测_新版本_44

 

 

4.2 出现自动拒单的情景

量化 回归分析 python 量化分析回测_数据_45

 

 

4.3 撮合机制

量化 回归分析 python 量化分析回测_数据_46

 

 

例如,今天是1月2日:

  • 当前收盘价,就是按照1月2日的收盘价进行买卖;
  • 下一开盘价,就是以1月3日的开盘价进行1月2号的买卖 -- 不合理,因为不能未卜先知明天的价格,新版本米宽已经废弃

 

4.4 市价单 vs 限价单

量化 回归分析 python 量化分析回测_量化 回归分析 python_47

 

 

4.5 滑点

真实交易,不需要设置滑点

滑点允许的范围为[0,1)  -- 例如设置滑点0.1,如果原本买入成交价为10元,设置滑点之后将变成11元,即买的更贵。

量化 回归分析 python 量化分析回测_数据_48

 

 

五、投资组合

5.1 什么是投资组合

量化 回归分析 python 量化分析回测_数据_49

 

 

量化 回归分析 python 量化分析回测_数据_50

 

5.2 如何查看投资组合的信息

用stock_account 对象 查看 - 不常用

量化 回归分析 python 量化分析回测_数据获取_51

 

 

用 context.portfolio 对象 查看 - 常用

量化 回归分析 python 量化分析回测_新版本_52

 

 

context.portfolio对象 具体细节

量化 回归分析 python 量化分析回测_新版本_53

 

context.portfolio.positions对象 具体细节

量化 回归分析 python 量化分析回测_数据获取_54

 

量化 回归分析 python 量化分析回测_量化 回归分析 python_55

 

 

六、策略评价指标

分为两大类:

  • 收益指标
  • 风险指标

 

6.1 收益指标

回测收益率

量化 回归分析 python 量化分析回测_量化 回归分析 python_56

 

 

回测年化收益率 - 更重要

量化 回归分析 python 量化分析回测_量化 回归分析 python_57

 

 

 

基准收益

一般默认选择沪深300作为基准

量化 回归分析 python 量化分析回测_量化 回归分析 python_58

 

 

 

6.2 风险指标

量化 回归分析 python 量化分析回测_量化 回归分析 python_59

 

 

最大回撤

量化 回归分析 python 量化分析回测_量化 回归分析 python_60

 

 

夏普比率

量化 回归分析 python 量化分析回测_数据获取_61