对基金进行标注时,返回ValueError: Bin edges must be unique错误

报错
标签: #<Tag:0x00007f8c74d498d0>

(congcong009) #1

M1结点为选择交易市场为CN_FUND,M2结点为自动标注,其中标注函数为模板函数

m2 = M.advanced_auto_labeler.v2(
    instruments=m1.data,
    label_expr="""
# 计算收益: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)
""",
    start_date='',
    end_date='',
    benchmark='510300.HOF',
    drop_na_label=True,
    cast_label_int=True
)

执行后返回错误是

[2020-10-12 12:07:28.737741] INFO: moduleinvoker: instruments.v2 运行完成[0.365575s].
[2020-10-12 12:07:28.739690] INFO: moduleinvoker: advanced_auto_labeler.v2 开始运行..
[2020-10-12 12:07:29.892090] INFO: 自动标注(股票): 加载历史数据: 0 行
[2020-10-12 12:07:29.893175] INFO: 自动标注(股票): 开始标注 ..
[2020-10-12 12:07:29.899942] ERROR: moduleinvoker: module name: advanced_auto_labeler, module version: v2, trackeback: Traceback (most recent call last):
ValueError: Bin edges must be unique: array([-inf,  nan,  nan,  nan,  nan,  nan,  nan,  nan,  nan,  nan,  nan,
        nan,  nan,  nan,  nan,  nan,  nan,  nan,  nan,  nan,  inf]).
You can drop duplicate edges by setting the 'duplicates' kwarg

看之前论坛里报错是关于股票,数据里存在大量nan值导致,这里是基金,可能需要官方再看看,如何做内部优化。

第一次发帖不怎么会贴图,请帮忙看看,然后建议这种内部错误可以有个速查列表,好难排障啊。

https://i.bigquant.com/user/congcong009/lab/share/userlib%2F%E8%8C%83%E4%BE%8B%E7%AD%96%E7%95%A5-%E9%AD%94%E6%94%B9%2F%E8%82%A1%E7%A5%A8AI%E7%AD%96%E7%95%A5-%E7%AD%89%E8%B5%84%E9%87%91%E6%9D%83%E9%87%8D%E8%AE%BE%E7%BD%AE%E8%82%A1%E7%A5%A8%E7%89%88%E6%9C%AC.ipynb


(adhaha111) #2

您可以分享策略到社区哦:
image


(congcong009) #3

好吧,我分享了,但感觉这链接好丑


(adhaha111) #4

您好,该链接能够被解析成相应的策略哦,您再试试呢: