复制链接
克隆策略

    {"description":"实验创建于1/13/2021","graph":{"edges":[{"to_node_id":"-18:instruments","from_node_id":"-5:data"},{"to_node_id":"-79:instruments","from_node_id":"-5:data"},{"to_node_id":"-18:features","from_node_id":"-13:data"},{"to_node_id":"-25:features","from_node_id":"-13:data"},{"to_node_id":"-25:input_data","from_node_id":"-18:data"},{"to_node_id":"-494:data1","from_node_id":"-25:data"},{"to_node_id":"-115:input_data","from_node_id":"-494:data"},{"to_node_id":"-58:input_ds","from_node_id":"-115:data"},{"to_node_id":"-1390:input_ds","from_node_id":"-79:data"},{"to_node_id":"-494:data2","from_node_id":"-1390:data"}],"nodes":[{"node_id":"-5","module_id":"BigQuantSpace.instruments.instruments-v2","parameters":[{"name":"start_date","value":"2022-05-01","type":"Literal","bound_global_parameter":null},{"name":"end_date","value":"2022-05-31","type":"Literal","bound_global_parameter":null},{"name":"market","value":"CN_STOCK_A","type":"Literal","bound_global_parameter":null},{"name":"instrument_list","value":"","type":"Literal","bound_global_parameter":null},{"name":"max_count","value":0,"type":"Literal","bound_global_parameter":null}],"input_ports":[{"name":"rolling_conf","node_id":"-5"}],"output_ports":[{"name":"data","node_id":"-5"}],"cacheable":true,"seq_num":1,"comment":"","comment_collapsed":true},{"node_id":"-13","module_id":"BigQuantSpace.input_features.input_features-v1","parameters":[{"name":"features","value":"# 同时按日期和key做分组,求平均\n#group_mean(industry_CN_STOCK_A__industry_sw_level1, return_0)\n\n# 同时按日期和key做分组,求和\n# group_sum(industry_level1_0, return_0)\n\n# 同时按日期和key做分组,求当前值在分组内的排名百分比\ngroup_rank(industry_sw_level3_0, basic_info_IndustrySw_name,return_0)","type":"Literal","bound_global_parameter":null}],"input_ports":[{"name":"features_ds","node_id":"-13"}],"output_ports":[{"name":"data","node_id":"-13"}],"cacheable":true,"seq_num":2,"comment":"","comment_collapsed":true},{"node_id":"-18","module_id":"BigQuantSpace.general_feature_extractor.general_feature_extractor-v7","parameters":[{"name":"start_date","value":"","type":"Literal","bound_global_parameter":null},{"name":"end_date","value":"","type":"Literal","bound_global_parameter":null},{"name":"before_start_days","value":90,"type":"Literal","bound_global_parameter":null}],"input_ports":[{"name":"instruments","node_id":"-18"},{"name":"features","node_id":"-18"}],"output_ports":[{"name":"data","node_id":"-18"}],"cacheable":true,"seq_num":3,"comment":"","comment_collapsed":true},{"node_id":"-25","module_id":"BigQuantSpace.derived_feature_extractor.derived_feature_extractor-v3","parameters":[{"name":"date_col","value":"date","type":"Literal","bound_global_parameter":null},{"name":"instrument_col","value":"instrument","type":"Literal","bound_global_parameter":null},{"name":"drop_na","value":"False","type":"Literal","bound_global_parameter":null},{"name":"remove_extra_columns","value":"False","type":"Literal","bound_global_parameter":null},{"name":"user_functions","value":"\n{}","type":"Literal","bound_global_parameter":null}],"input_ports":[{"name":"input_data","node_id":"-25"},{"name":"features","node_id":"-25"}],"output_ports":[{"name":"data","node_id":"-25"}],"cacheable":true,"seq_num":4,"comment":"","comment_collapsed":true},{"node_id":"-58","module_id":"BigQuantSpace.sort.sort-v5","parameters":[{"name":"sort_by","value":"return_0","type":"Literal","bound_global_parameter":null},{"name":"group_by","value":"date","type":"Literal","bound_global_parameter":null},{"name":"keep_columns","value":"--","type":"Literal","bound_global_parameter":null},{"name":"ascending","value":"False","type":"Literal","bound_global_parameter":null}],"input_ports":[{"name":"input_ds","node_id":"-58"},{"name":"sort_by_ds","node_id":"-58"}],"output_ports":[{"name":"sorted_data","node_id":"-58"}],"cacheable":true,"seq_num":5,"comment":"","comment_collapsed":true},{"node_id":"-494","module_id":"BigQuantSpace.join.join-v3","parameters":[{"name":"on","value":"code,name","type":"Literal","bound_global_parameter":null},{"name":"how","value":"left","type":"Literal","bound_global_parameter":null},{"name":"sort","value":"False","type":"Literal","bound_global_parameter":null}],"input_ports":[{"name":"data1","node_id":"-494"},{"name":"data2","node_id":"-494"}],"output_ports":[{"name":"data","node_id":"-494"}],"cacheable":true,"seq_num":7,"comment":"","comment_collapsed":true},{"node_id":"-115","module_id":"BigQuantSpace.dropnan.dropnan-v2","parameters":[],"input_ports":[{"name":"input_data","node_id":"-115"},{"name":"features","node_id":"-115"}],"output_ports":[{"name":"data","node_id":"-115"}],"cacheable":true,"seq_num":8,"comment":"","comment_collapsed":true},{"node_id":"-79","module_id":"BigQuantSpace.use_datasource.use_datasource-v1","parameters":[{"name":"datasource_id","value":"basic_info_IndustrySw","type":"Literal","bound_global_parameter":null},{"name":"start_date","value":"","type":"Literal","bound_global_parameter":null},{"name":"end_date","value":"","type":"Literal","bound_global_parameter":null}],"input_ports":[{"name":"instruments","node_id":"-79"},{"name":"features","node_id":"-79"}],"output_ports":[{"name":"data","node_id":"-79"}],"cacheable":true,"seq_num":9,"comment":"","comment_collapsed":true},{"node_id":"-1390","module_id":"BigQuantSpace.select_columns.select_columns-v3","parameters":[{"name":"columns","value":"code,name","type":"Literal","bound_global_parameter":null},{"name":"reverse_select","value":"False","type":"Literal","bound_global_parameter":null}],"input_ports":[{"name":"input_ds","node_id":"-1390"},{"name":"columns_ds","node_id":"-1390"}],"output_ports":[{"name":"data","node_id":"-1390"}],"cacheable":true,"seq_num":10,"comment":"","comment_collapsed":true}],"node_layout":"<node_postions><node_position Node='-5' Position='303,187,200,200'/><node_position Node='-13' Position='645.2376098632812,189,200,200'/><node_position Node='-18' Position='479,298,200,200'/><node_position Node='-25' Position='481,399,200,200'/><node_position Node='-58' Position='523,1024,200,200'/><node_position Node='-494' Position='477,754.4752807617188,200,200'/><node_position Node='-115' Position='491,870,200,200'/><node_position Node='-79' Position='113.82403564453125,443.1203308105469,200,200'/><node_position Node='-1390' Position='42.61997985839844,603.0447998046875,200,200'/></node_postions>"},"nodes_readonly":false,"studio_version":"v2"}
    In [106]:
    # 本代码由可视化策略环境自动生成 2022年6月26日 21:27
    # 本代码单元只能在可视化模式下编辑。您也可以拷贝代码,粘贴到新建的代码单元或者策略,然后修改。
    
    
    m1 = M.instruments.v2(
        start_date='2022-05-01',
        end_date='2022-05-31',
        market='CN_STOCK_A',
        instrument_list='',
        max_count=0
    )
    
    m9 = M.use_datasource.v1(
        instruments=m1.data,
        datasource_id='basic_info_IndustrySw',
        start_date='',
        end_date=''
    )
    
    m10 = M.select_columns.v3(
        input_ds=m9.data,
        columns='code,name',
        reverse_select=False
    )
    
    m2 = M.input_features.v1(
        features="""# 同时按日期和key做分组,求平均
    #group_mean(industry_CN_STOCK_A__industry_sw_level1, return_0)
    
    # 同时按日期和key做分组,求和
    # group_sum(industry_level1_0, return_0)
    
    # 同时按日期和key做分组,求当前值在分组内的排名百分比
    group_rank(industry_sw_level3_0, basic_info_IndustrySw_name,return_0)"""
    )
    
    m3 = M.general_feature_extractor.v7(
        instruments=m1.data,
        features=m2.data,
        start_date='',
        end_date='',
        before_start_days=90
    )
    
    m4 = M.derived_feature_extractor.v3(
        input_data=m3.data,
        features=m2.data,
        date_col='date',
        instrument_col='instrument',
        drop_na=False,
        remove_extra_columns=False,
        user_functions=
    {}
    )
    
    m7 = M.join.v3(
        data1=m4.data,
        data2=m10.data,
        on='code,name',
        how='left',
        sort=False
    )
    
    m8 = M.dropnan.v2(
        input_data=m7.data
    )
    
    m5 = M.sort.v5(
        input_ds=m8.data,
        sort_by='return_0',
        group_by='date',
        keep_columns='--',
        ascending=False
    )
    
    ---------------------------------------------------------------------------
    KeyError                                  Traceback (most recent call last)
    <ipython-input-106-a272673b74bf> in <module>
         54 )
         55 
    ---> 56 m7 = M.join.v3(
         57     data1=m4.data,
         58     data2=m10.data,
    
    KeyError: 'code'