BigQuant使用文档

AIStudio 常用模块和开源

由jliang创建,最终由jliang 被浏览 67 用户

介绍

  • 使用方式: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)/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
  • 相关模块

算法

\

回测&交易

因子

因子挖掘中常用模块

策略

策略开发中常用模块

仓位分配/3

超参优化

TODO

  • 超参优化、滚动训练
  • 因子、绩效 …

\