关于模拟盘的使用问题


(tifariti) #1

@iQuant:您好!我上周五收盘后新开了一个模拟盘(原有一个,加上新开的共有两个),但是今天这一模拟盘没有运行,请问是什么原因?


(iQuant) #2

你好,你检查下你的代码是否有prepare数据准备函数,以及基础特征列表的模块中是否设置了“向前取数据天数”这个参数


(tifariti) #3

策略中没有prepare数据准备函数,也未在基础特征列表的模块中设置“向前取数据天数”参数。我明白了,因为我未设该参数,而我的特征中用诸如5日收益、10收益等用到运行开始之日前的数据,所以该策略只能在最大天数之后才能运行,是这个原因吧?
谢谢您的及时回答。


(tifariti) #4

@iQuant:你好!继续调试该程序,发现下列问题:
、首先说明,这一策略--StockRanker滚动训练是我直接克隆下来的,当我未对其进行改动时,它是可以正常运行的。
、当我在m2 = M.general_feature_extractor.v5模块中加入before_start_days=21时,即:
m2 = M.general_feature_extractor.v5(
instruments=conf.instruments, start_date=conf.start_date, end_date=conf.end_date,
before_start_days=21, features=conf.features)
出现如下错误:
TypeError Traceback (most recent call last)
in ()
41 m2 = M.general_feature_extractor.v5(
42 instruments=conf.instruments, start_date=conf.start_date, end_date=conf.end_date,
—> 43 before_start_days=21, features=conf.features)
44 # 数据预处理:缺失数据处理,数据规范化,T.get_stock_ranker_default_transforms为StockRanker模型做数据预处理
45 m3 = M.transform.v2(

TypeError: init() got an unexpected keyword argument ‘before_start_days’

我试着将M.general_feature_extractor.v5的版本号由v5改为v6, 解决了这一问题。
、但进行了上述修改之后,当策略运行到M.stock_ranker_train_rolling.v2模块时,又出现了如下错误报警:
ValueError Traceback (most recent call last)
in ()
54 evaluation_start_date=conf.split_date,
55 features=conf.features,
—> 56 model_update_days = 180
57 )
58

ValueError: min() arg is an empty sequence
当然,我还注意到M.stock_ranker_train_rolling.v2模块的最新版本是v3,但使用v3版本仍出现同样错误,请问如何解决?


(小Q) #5

因为你使用的是滚动训练,该模块使用设置要复杂一点,建议你直接分享你的策略到社区,我们帮你看看。


(tifariti) #6

已将克隆的策略分享到“新手专区”。