AIStudio 常用模块和开源
由jliang创建,最终由jliang 被浏览 768 用户
介绍
-
使用方式:M.模块id.v版本(**kwargs)
-
如何升级模块版本:刷新模块列表,进入代码模式,修改模块版本,返回可视化模式
-
本文档模块后的数字表示重要度:1 ~ 5,5表示最重要最常用,推荐深入学习掌握
数据
输入特征(DAI SQL)/5
- 模块:
M.input_features_dai
- 开源代码:https://github.com/BigQuant/input_features_dai
- 此模块是最重要的模块之一,理解此模块将可以实现 90+% 的数据、因子等数据操作需求
- 功能介绍\n此模块用于通过SQL或表达式模式抽取因子和特征数据,提供灵活的数据操作来准备大型数据集的输入,适合于数据预处理、特征工程等场景。它允许用户指定多种数据输入,并在内部转化为SQL语句以转换、过滤和准备数据用于进一步的数据分析或机器学习任务。
- 输入数据
input_1
,input_2
,input_3
: 可选的数据输入端口,接收来自其他模块输出的数据源。其可以是任何形式的数据集,例如在BigQuant平台上的股票数据源。如果提供,这些数据将被用于进一步的SQL或表达式操作。
- 参数
mode
: 输入模式(表达式 "expr" 或 SQL "sql"),用于指定如何构建特征。表达式模式允许用户通过简单的算术和丰富的函数操作来定义特征,而SQL模式提供了更强大和灵活的数据操作能力。expr
: 在表达式模式下使用,定义了如何从数据中计算特征。默认提供了一些示例特征计算。expr_filters
: 在表达式模式下使用,定义了用于过滤数据的条件。expr_tables
: 表名字符串,通过逗号分隔。在表达式中没有明确指定表名的字段,默认会从这些表中进行推断。order_by
: 指定如何对结果进行排序,典型使用是按照日期和股票代码划序。expr_drop_na
: 在表达式模式下,此布尔参数指定是否删除具有缺失值的行。sql
: 在SQL模式下,此参数直接接收一个SQL查询字符串,用于更复杂和特定的数据操作要求。更多参考 DAI文档extract_data
: 表明是否将处理后的数据抽取到一个新的数据源中。如果是True,输出将是调整后的数据集;如果是False,将返回一个包含SQL查询字符串的数据源。
- 输出
data
:提供一个输出端口,内容是{"sql": "..."}
,该端口输出处理和准备好的数据源。数据源的具体格式取决于extract_data
参数和模式选择。
- 示例用途
- 数据预处理:利用SQL或表达式快速进行数据选择、特征计算和数据清洗。
- 动态特征工程:结合来自多个数据源的数据,利用复杂的SQL逻辑动态构建特征,适用于高级机器学习模型的训练。
- 数据标注:自定义逻辑来创建训练机器学习模型所需的标签或其他目标变量。
- 一般情况下,在查询中不建议做日期过滤,日期可以放在后续 数据抽取 模块,会得到更灵活的实现和性能
- 该模块允许非常自由的数据操作,因此要求用户具有一定的SQL知识或对数据表达式有基本的理解。不当的SQL或表达式可能导致执行错误或在处理大数据时效率低下。
- 相关模块
- 数据抽取 (DAI):生成的SQL输入到数据抽取模块执行数据抽取
数据抽取(DAI)/5
- 模块:
M.extract_data_dai
- 开源代码: https://github.com/BigQuant/extract_data_dai
- 功能介绍:
- 数据抽取模块
M.extract_data_dai
主要功能是执行SQL查询和计算进行数据提取。它支持在部署任务/模拟交易模式下绑定这些日期到交易日。
- 数据抽取模块
- 输入参数:
sql
: 一个数据源输入端口,接收一个包含数据查询SQL的DataSource
实例。start_date
: 开始日期,SQL查询的起始时间。此日期也会用于执行是下推剪枝,用于性能优化。start_date_bound_to_trading_date
: 布尔值,指定在模拟交易等任务运行时是否将开始日期绑定到交易日。end_date
: 结束日期。此日期也会用于执行是下推剪枝,用于性能优化。end_date_bound_to_trading_date
: 布尔值,指定在模拟交易等任务运行时是否将结束日期绑定到交易日。before_start_days
: 整数,指定在start_date
之前额外向前取的天数。开始日期会减去此天数,用于计算需要向前历史数据的因子,比如 m_lag(close, 10),需要向前去10天数据debug
: 调试模式,开启则显示更多运行时信息。
- 输出:
data
: 标准输出端口,输出处理完毕且符合查询条件的数据集,可以读取为pandas DataFrame
。- 同时会在 data 上会添加 metadata extra,用于传递数据开始结束日给后续模块,比如 BigTrader 回测交易模块,用于确定回测时间范围。\n
- 相关模块
A股-基础选股/3
- 模块:
M.cn_stock_basic_selector
- 开源代码: https://github.com/BigQuant/extract_data_dai
- 功能介绍: 提供常用的根据股票基本信息做选股过滤的功能\n
- 输出:
data
: 标准输出端口,输出处理完毕且符合查询条件的数据集,可以读取为pandas DataFrame
。- 同时会在 data 上会添加 metadata extra,用于传递数据开始结束日给后续模块,比如 BigTrader 回测交易模块,用于确定回测时间范围。\n
- 相关模块
- 输入特征(DAI SQL):可以在基础选股后继续做特征添加或者股票过滤
- 数据抽取 (DAI):生成的SQL输入到数据抽取模块执行数据抽取
算法
\
回测&交易
因子
因子挖掘中常用模块
策略
策略开发中常用模块
仓位分配/3
- 模块:
M.score_to_position
- 开源代码:https://github.com/BigQuant/score_to_position
- 相关模块
- 数据抽取 (DAI)
- StockRanker 预测:从 StockRanker 的预测 score 生成 仓位position
- BigTrader 模块:为 BigTrader 输入仓位数据
超参优化
TODO
- 超参优化、滚动训练
- 因子、绩效 …
\