Heerozh / spectre

GPU-accelerated Factors analysis library and Backtester
GNU General Public License v3.0
627 stars 108 forks source link

有停牌时,排序值好像不符合预期。 #25

Open qtbgo opened 5 months ago

qtbgo commented 5 months ago

请教,针对A股运行如下代码

`from spectre.data import ArrowLoader import torch from spectre.factors import from spectre.factors.basic import

loader = ArrowLoader('./Ashare.feather')

engine = FactorEngine(loader) if torch.cuda.is_available(): print("GPU is available.") engine.to_cuda() else: print("GPU is not available.") engine.to_cpu()

universe = StaticAssets({'SZ002880','SH600030'}) # 5.29日SZ002880停牌 engine.set_filter(universe) # 设置股池 engine.add(RankFactor(inputs=[OHLCV.close]), 'RankFactor') all_factors = engine.run("2023-5-25", "2023-5-29") print(all_factors)

输出`结果如下,29号SZ002880停牌,所以只有SH600030,期望其排序值为1,为啥输出的是2呢? RankFactor date asset 2023-05-26 00:00:00+00:00 SH600030 2.0 SZ002880 1.0 2023-05-29 00:00:00+00:00 SH600030 2.0

qtbgo commented 4 months ago

经过测试,发现对每一天,若股池中有一只股票停牌,则股票排名从2开始,若有2只股票停牌,则排名从3开始,以此类推。