【历史文档】策略-可视化模块深入理解
由clearyf创建,最终由small_q 被浏览 528 用户
更新
本文内容对应旧版平台与旧版资源,其内容不再适合最新版平台,请查看新版平台的使用说明
新版量化开发IDE(AIStudio):
https://bigquant.com/wiki/doc/aistudio-aiide-NzAjgKapzW
新版模版策略:
https://bigquant.com/wiki/doc/demos-ecdRvuM1TU
新版数据平台:
https://bigquant.com/data/home
https://bigquant.com/wiki/doc/dai-PLSbc1SbZX
新版表达式算子:
https://bigquant.com/wiki/doc/dai-sql-Rceb2JQBdS
新版因子平台:
https://bigquant.com/wiki/doc/bigalpha-EOVmVtJMS5
\
导语
本文详细介绍BigStudio可视化实验中各个模块,希望大家对每个模块的功能和使用更加了解。
通过上一篇文章了解到BigStudio可视化实验工作流如下:
从这幅图可以看出,BigStudio上的可视化AI量化策略主要包括数据标注、特征抽取、模型训练、模型预测、回测交易5个部分,但却包含了多个小模块。本文从微观层面单独介绍各个小模块。
模块介绍
属性窗格
我们从微观层面具体了解每一个模块。在单独介绍每个模块之前,先来介绍属性窗格的常用按钮。以 模块证券代码列表 举例:
其中图上一共有5个绿色标记。按从上到下的顺序,第一个点击可以折叠整个属性窗格,第二个可以折叠该模块的属性;第三个是下拉选项,点击可以展开下来列表进行选择;第四个是复选框,表明是否启用缓存加速, 如果开启,每次运行的时候会先检查之前是否有运行结果,如果有,就直接输出上次运行结果。最下面一个点击可以折叠帮助界面。点击帮助可以获得相关模块的文档介绍。
画布中的各个模块
由于特征抽取部分包括训练数据的特征抽取和评估数据的特征抽取,本文只介绍训练数据的特征抽取。评估数据的特征抽取同理,只是数据不一样(数据由start_date和end_date决定)。
证券代码列表
帮助文档: 证券代码列表
- 开始日期:start_date (str) 。示例 2017-02-12。
- 结束日期:end_date (str) 。示例 2017-02-12。
- 交易市场:market(str)。获取哪个市场的证券列表,下拉列表有多个选择
- 最大数量:max_count(float)。获取证券数量,如果设置为0就表明没有限制。
自动数据标注
帮助文档: 自动数据标注
- 开始日期:start_date (str) 。示例 2017-02-12。
- 结束日期:start_date (str) 。示例 2017-02-12。
- 标注表达式:这里是一个代码编辑器,点击可放大,也可以点击弹出代码编辑器窗口,可手动输入标注表达式。
输入特征列表
帮助文档: 输入特征列表
- 特征数据 :为一个代码编辑器窗口,可手动输入特征数据
基础特征抽取
帮助文档: 基础特征抽取
- 开始日期:start_date (str)。示例 2017-02-12。
- 结束日期:end_date (str) 。示例 2017-02-12。
生特征抽取
帮助文档:衍生特征列表
- 日期列名:date_col (str) 。如果在表达式中用到切面相关函数时,比如 rank,会用到此列名;默认值是date。
- 证券代码列名:instrument_col (str) 。如果在表达式中用到时间序列相关函数时,比如 shift,会用到此列名;默认值是instrument。
连接数据
帮助文档: 连接数据
- 关联列:on (str) 。多个列用英文逗号分隔;默认值是date,instrument。
- 连接方式:how (choice) 。可选值有: left, right, outer, inner;默认值是inner。
- 对结果排序:sort (bool) 。默认值是False。
缺失数据处理
除了是否启用缓存加速,缺失数据处理模块没有其他参数。
StockRanker训练
帮助文档:StockRanker训练
- 学习算法:learning_algorithm (choice) 。机器学习优化算法;可选值有: 排序, 回归, 二分类, logloss;默认值是排序。
- 叶节点数量:number_of_leaves (int) 。每棵树最大叶节点数量。一般情况下,叶子节点越多,则模型越复杂,表达能力越强,过拟合的可能性也越高;默认值是30。
- 每叶节点最小样本数:minimum_docs_per_leaf (int) 。每个叶节点最少需要的样本数量,一般值越大,泛化性性越好;默认值是1000。
- 树的数量:number_of_trees (int) 。一般情况下,树越多,则模型越复杂,表达能力越强,过拟合的可能性也越高;默认值是20。
- 学习率:learning_rate (float) – 学习率:学习率如果太大,可能会使结果越过最优值,如果太小学习会很慢;默认值是0.1。
- 特征值离散化数量:max_bins (int) 。一般情况下,max_bins越大,则学的越细,过拟合的可能性也越高;默认值是1023。
- 特征使用率:feature_fraction (int)。在构建每一颗树时,每个特征被使用的概率,如果为1,则每棵树都会使用所有特征;默认值是1。
StockRanker预测
帮助文档:StockRanker预测
Trade(回测/模拟)
帮助文档:Trade(回测/模拟)
- 开始日期:start_date (str)。设定值只在回测模式有效,在模拟实盘模式下为当前日期
- 结束日期:end_date (str)。设定值只在回测模式有效,在模拟实盘模式下为当前日期
- 主函数:handle_data (函数)。必须实现的函数,该函数每个单位时间会调用一次, 如果按天回测,则每天调用一次,如果按分钟,则每分钟调用一次,由于我们现在数据只有日K,所以是按天回调。在回测中,可以通过对象data获取单只股票或多只股票的时间窗口价格数据。如果算法中没有schedule_function函数,那么该函数为必选函数。一般策略的交易逻辑和订单生成体现在该函数中;默认值是None。
- 数据准备函数:prepare (函数) 。准备数据函数,运行过程中只调用一次,在 initialize 前调用,准备交易中需要用到数据。目前支持设置交易中用到的股票列表,设置到 context.instruments。
- 初始化函数:initialize (函数) 。整个回测中只在最开始时调用一次,用于初始化一些账户状态信息和策略基本参数,context也可以理解为一个全局变量,在回测中存放当前账户信息和策略基本参数便于会话;默认值是None。
- 盘前处理函数:before_trading_start (函数) 。每个单位时间开始前调用一次,即每日开盘前调用一次,该函数是可选函数。你的算法可以在该函数中进行一些数据处理计算,比如确定当天有交易信号的股票池;
- 成交率限制:volume_limit (float)。执行下单时控制成交量参数,默认值2.5%,若设置为0时,不进行成交量检查;默认值是0.025。
- 买入点:order_price_field_buy (choice) 。open=开盘买入,close=收盘买入;可选值有: open, close;默认值是open。
- 卖出点:order_price_field_sell (choice) 。open=开盘卖出,close=收盘卖出;可选值有: open, close;默认值是close。
- 初始资金:capital_base (float) 。默认值是1000000.0。
- 基准指数:benchmark (str)。不影响回测结果;默认值是000300.SHA。
- 自动取消无法成交的订单:auto_cancel_non_tradable_orders (bool) 。是否自动取消因为停牌等原因不能成交的订单;默认值是True。
- 回测数据频率:data_frequency (choice)。目前只支持日线 (daily),未来将支持分钟线 (minute);可选值有: daily;默认值是daily。
- 显示回测结果图表:plot_charts (bool) – 显示回测结果图表;默认值是True。
- 只在回测模式下运行:backtest_only (bool) 。默认情况下,Trade会在回测和实盘模拟模式下都运行。如果策略中有多个M.trade,在实盘模拟模式下,只能有一个设置为运行,其他的需要设置为 backtest_only=True,否则将会有未定义的行为错误;默认值是False。
- 现在,BigStudio上的AI量化策略的模块已经介绍完毕。当我们新建一个可视化AI量化策略的时候,我们不用做太多的改动,直接使用模板,然后调一下参数,将精力更多地放在特征抽取和数据标注上。接下来,我们会介绍如何自定义模块和使用更灵活地特征抽取和数据标注。
\