BigQuant使用文档

数据读取

由small_q创建,最终由small_q 被浏览 115 用户

在AIStudio中编写的策略,不论是可视化版本还是代码版本,使用的数据来源都是BigQuant的DAI数据平台

DAI数据平台由两个部分组成:

  • DAI数据平台的框架是BigQuant自研的分布式高性能数据库,了解数据平台怎么用,可以查看这个链接:数据平台/DAI
  • DAI数据平台的内容是覆盖全球金融市场全部资产品类的数据表,了解数据平台中有哪些数据表,可以查看这个链接:https://bigquant.com/data/home

1. 可视化模式下的单表数据读取

数据提取的主要问题,其实就是从哪个表中提取那些字段的数据,并且强调一下数据提取的时间范围,这需要两个模块来完成:

  • 输入特征(DAI SQL)”模块:填写从哪个表中提取哪些字段
  • 数据抽取(DAI)”模块:填写数据抽取的时间范围

1.1 “输入特征(DAI SQL)”模块

在可视化模式下,我们需要在“输入特征(DAI SQL)”模块中,”表达式-默认数据表”一栏中填入表名,“表达式特征”一栏填入字段名,并且一个字段占一行,结尾不用加任何分隔符

例如,我们想从cn_stock_prefactors这两表中,将close, open, high, low, volume这五个字段提取出来

我们就可以在AIStudio中的画布上,加入一个“输入特征(DAI SQL)”模块中:

  • 在“输入模式”的选项中,选择“表达式
  • 在”表达式-默认数据表”一栏填入cn_stock_prefactors
  • 在“表达式特征”一栏填入close open high low volume,每个字段占一行
  • 在“表达式-其他字段”中,默认填入了date, instrument,这个表示要将日期和股票代码也提取出来,这个基本不用修改
  • 在“表达式-排序字段”中,默认填入了,这个表示抽取出来的数据,先按照日期排列,再按照股票代码排列,这个只在有排序需求的时候修改

1.2 “数据抽取(DAI)”模块

在编写完“输入特征(DAI SQL)”模块后,我们把“输入特征(DAI SQL)”模块的输出,连接到一个“数据抽取(DAI)”模块的输入上即可

数据抽取(DAI)”模块中的设置比较简单,我们填写数据的开始时间结束时间即可

除此之外,“数据抽取(DAI)”模块还有两个参数,开始日期绑定交易日和结束日期绑定交易日,这个参数勾选上以后,提交模拟交易后,时间范围可以随着每天的变化而自动变化,这个是提交模拟交易必选的一个指标

1.3 “输入特征(DAI SQL)”模块与“数据抽取(DAI)”模块的运行结果

在连接了“输入特征(DAI SQL)”模块与“数据抽取(DAI)”模块后,我们运行一下“数据抽取(DAI)”模块,运行成功后,我们可以新建一个代码块,输入m4.data.read(),将数据提取出来

  • m4是“数据抽取(DAI)”模块的编号,这个要根据你的模块编号来变化
  • datam4模块的数据提取结果,它是一个DataSource对象
  • read()方法会将DataSource对象,转为pandas的DataFrame对象,从而做到结果展示

这样,从单表中进行数据抽取就完成了

2. 可视化模式下的多表数据读取

在进行多表数据提取时,我们可以分以下两种情况:表中字段无重复的情况,表中字段有重复的情况

2.1 表中字段无重复

当提取的表中字段没有重复时,例如:

  • 我们想从cn_stock_bar1d这张表中提取close这个字段,从cn_stock_valuation这张表中提取出total_market_cap float_market_cap两个字段
  • 由于close只存在于cn_stock_bar1d表中,total_market_cap float_market_cap只存在于cn_stock_valuation这张表中
  • 因此,我们想要提取的字段,单独存在于两张表中,并不重复
    • 在这种情况下,我们就可以在“表达式-默认数据表”一栏中填入cn_stock_bar1d; cn_stock_valuation,两张表用分号隔开
    • 接着我们在“表达式特征”一栏填入close total_market_cap float_market_cap,三个字段分别占一行,结尾不加分隔符
    • 接着我们接一个“数据抽取(DAI)”模块,就可以把数据提取出来了

2.2 表中字段有重复

当提取的表中字段有重复时,例如:

  • 我们想从cn_stock_bar1d这张表中提取close这个字段,从cn_stock_prefactors这张表中提取出pe_ttm ps_ttm两个字段
  • 由于close这个字段既存在于cn_stock_bar1d表中,又存在于cn_stock_prefactors,因此我们必须以cn_stock_bar1d.close的形式强调是cn_stock_bar1d表中的close字段
  • 在这种情况下,“输入特征(DAI SQL)”这个模块的编写就稍有差异:
    • 在“表达式特征”一栏填入cn_stock_bar1d.close total_market_cap float_market_cap,三个字段分别占一行,结尾不加分隔符
    • 在“表达式-默认数据表”一栏中只填入cn_stock_valuation,因为我们需要使用到cn_stock_bar1d这张表这件事,已经在“表达式特征”一栏中告诉程序了
    • 接着我们接一个“数据抽取(DAI)”模块,就可以把数据提取出来了

标签

金融市场
{link}