历史文档

【历史文档】算子样例-自动标注股票

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

更新

本文内容对应旧版平台与旧版资源,其内容不再适合最新版平台,请查看新版平台的使用说明

新版量化开发IDE(AIStudio):

https://bigquant.com/wiki/doc/aistudio-aiide-NzAjgKapzW

新版模版策略:

https://bigquant.com/wiki/doc/demos-ecdRvuM1TU

新版数据平台:

https://bigquant.com/wiki/doc/dai-PLSbc1SbZX

新版表达式算子:

https://bigquant.com/wiki/doc/dai-sql-Rceb2JQBdS

新版因子平台:

https://bigquant.com/wiki/doc/bigalpha-EOVmVtJMS5

\

使用场景

标注股票目标值。

输入端

  • 代码列表:代码列表,必选。

输入参数

  • 标注表达式:必填。
  • 开始日期:开始日期,必填。
  • 结束日期:结束日期,必填。
  • 基准指数:默认为000300.SHA,选填。

输出端

  • 标注数据:标注后的数据。常用关联板块有衍生特征抽取。

运行结果

  • 可以通过模块id.data.read()来查看模块的具体数据,能够看到具体的数据。

    {w:100}{w:100}{w:100}{w:100}

模块详讲

根据相对收益率标注

m2模块代码示例

# 计算收益:5日收盘价(作为卖出价格)除以明日开盘价(作为买入价格)
shift(close, -5) / shift(open, -1)

# 极值处理:用1%和99%分位的值做clip
clip(label, all_quantile(label, 0.01), all_quantile(label, 0.99))

# 将分数映射到分类,这里使用20个分类
all_wbins(label, 20)

# 过滤掉一字涨停的情况 (设置label为NaN,在后续处理和训练中会忽略NaN的label)
where(shift(high, -1) == shift(low, -1), NaN, label)

通过运行 m2.plot_label_counts() 可以查看标注结果:

 {w:100}{w:100}{w:100}{w:100}{w:100}{w:100}这幅柱状图描述了整个训练集中各个label的分布情况,本例中将收益率分为0到19个档级,柱状图高度表示各个档级的样本数量。

代码解读

  • 根据未来几天的收益率进行标注可以直接修改shift(close, -5) 中的-5。
  • clip(label, all_quantile(label, 0.01), all_quantile(label, 0.99)) ,利用分位数对极值进行处理。
  • all_wbins(label, 20)是按照收益率等间隔分为20类,每个标注类别的之间的收益率间隔大小相等, 也可以使用all_cbins(label,20)是按照收益率等频间隔分为20类,但每个标注类别中样本个数相等,但每个标注类别之间的收益率间隔大小不等。
  • where(shift(high, -1) == shift(low, -1), NaN, label) 过滤掉一字涨停的情况 (设置label为NaN,在后续处理和训练中会忽略NaN的label)

模块案例

https://bigquant.com/experimentshare/243ecf764a9f48c78882968f1d1d82ea

\

评论
  • 这两个链接已失效: # 1. 可用数据字段见 # 添加benchmark_前缀,可使用对应的benchmark数据 # 2. 可用操作符和函数见 `表达式引擎 `_
  • 这label是怎么来的?
{link}