复制链接
克隆策略

    {"description":"实验创建于2022/11/2","graph":{"edges":[{"to_node_id":"-13:instruments","from_node_id":"-4:data"},{"to_node_id":"-36:input_1","from_node_id":"-13:data"},{"to_node_id":"-13:features","from_node_id":"-28:data"}],"nodes":[{"node_id":"-4","module_id":"BigQuantSpace.instruments.instruments-v2","parameters":[{"name":"start_date","value":"2022-02-05","type":"Literal","bound_global_parameter":null},{"name":"end_date","value":"2022-02-15","type":"Literal","bound_global_parameter":null},{"name":"market","value":"CN_STOCK_A","type":"Literal","bound_global_parameter":null},{"name":"instrument_list","value":"603200.SHA\n300811.SZA","type":"Literal","bound_global_parameter":null},{"name":"max_count","value":0,"type":"Literal","bound_global_parameter":null}],"input_ports":[{"name":"rolling_conf","node_id":"-4"}],"output_ports":[{"name":"data","node_id":"-4"}],"cacheable":true,"seq_num":1,"comment":"","comment_collapsed":true},{"node_id":"-13","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":"0","type":"Literal","bound_global_parameter":null}],"input_ports":[{"name":"instruments","node_id":"-13"},{"name":"features","node_id":"-13"}],"output_ports":[{"name":"data","node_id":"-13"}],"cacheable":true,"seq_num":2,"comment":"","comment_collapsed":true},{"node_id":"-28","module_id":"BigQuantSpace.input_features.input_features-v1","parameters":[{"name":"features","value":"\n# #号开始的表示注释,注释需单独一行\n# 多个特征,每行一个,可以包含基础特征和衍生特征,特征须为本平台特征\namount_0","type":"Literal","bound_global_parameter":null}],"input_ports":[{"name":"features_ds","node_id":"-28"}],"output_ports":[{"name":"data","node_id":"-28"}],"cacheable":true,"seq_num":4,"comment":"","comment_collapsed":true},{"node_id":"-36","module_id":"BigQuantSpace.cached.cached-v3","parameters":[{"name":"run","value":"# Python 代码入口函数,input_1/2/3 对应三个输入端,data_1/2/3 对应三个输出端\n\ndef bigquant_run(input_1, input_2, input_3):\n # 示例代码如下。在这里编写您的代码\n df = pd.DataFrame({'data': [1, 2, 3]})\n def cal(df):\n df['成交累加']=df['amount'].cumsum()/10000\n return df\n df.groupby('instrument').apply(cal)\n\n return Outputs(data_1=data_1, data_2=None, data_3=None)\n\n \n# data_1 = DataSource.write_df(df)\n# data_2 = DataSource.write_pickle(df)\n","type":"Literal","bound_global_parameter":null},{"name":"post_run","value":"# 后处理函数,可选。输入是主函数的输出,可以在这里对数据做处理,或者返回更友好的outputs数据格式。此函数输出不会被缓存。\n# def bigquant_run(outputs):\n# return outputs\n","type":"Literal","bound_global_parameter":null},{"name":"input_ports","value":"","type":"Literal","bound_global_parameter":null},{"name":"params","value":"{}","type":"Literal","bound_global_parameter":null},{"name":"output_ports","value":"","type":"Literal","bound_global_parameter":null}],"input_ports":[{"name":"input_1","node_id":"-36"},{"name":"input_2","node_id":"-36"},{"name":"input_3","node_id":"-36"}],"output_ports":[{"name":"data_1","node_id":"-36"},{"name":"data_2","node_id":"-36"},{"name":"data_3","node_id":"-36"}],"cacheable":true,"seq_num":5,"comment":"","comment_collapsed":true}],"node_layout":"<node_postions><node_position Node='-4' Position='169,92.11111450195312,200,200'/><node_position Node='-13' Position='282,245.11111450195312,200,200'/><node_position Node='-28' Position='511,85.11111450195312,200,200'/><node_position Node='-36' Position='279,394.77777099609375,200,200'/></node_postions>"},"nodes_readonly":false,"studio_version":"v2"}
    In [18]:
    # 本代码由可视化策略环境自动生成 2022年11月2日 17:21
    # 本代码单元只能在可视化模式下编辑。您也可以拷贝代码,粘贴到新建的代码单元或者策略,然后修改。
    
    
    # Python 代码入口函数,input_1/2/3 对应三个输入端,data_1/2/3 对应三个输出端
    
    def m5_run_bigquant_run(input_1, input_2, input_3):
        # 示例代码如下。在这里编写您的代码
        df = pd.DataFrame({'data': [1, 2, 3]})
        def cal(df):
            df['成交累加']=df['amount'].cumsum()/10000
            return df
        df.groupby('instrument').apply(cal)
    
        return Outputs(data_1=data_1, data_2=None, data_3=None)
    
        
    #     data_1 = DataSource.write_df(df)
    #     data_2 = DataSource.write_pickle(df)
    
    # 后处理函数,可选。输入是主函数的输出,可以在这里对数据做处理,或者返回更友好的outputs数据格式。此函数输出不会被缓存。
    # def m5_post_run_bigquant_run(outputs):
    #     return outputs
    
    
    m1 = M.instruments.v2(
        start_date='2022-02-05',
        end_date='2022-02-15',
        market='CN_STOCK_A',
        instrument_list="""603200.SHA
    300811.SZA""",
        max_count=0
    )
    
    m4 = M.input_features.v1(
        features="""
    # #号开始的表示注释,注释需单独一行
    # 多个特征,每行一个,可以包含基础特征和衍生特征,特征须为本平台特征
    amount_0"""
    )
    
    m2 = M.general_feature_extractor.v7(
        instruments=m1.data,
        features=m4.data,
        start_date='',
        end_date='',
        before_start_days=0
    )
    
    m5 = M.cached.v3(
        input_1=m2.data,
        run=m5_run_bigquant_run,
        post_run=m5_post_run_bigquant_run,
        input_ports='',
        params='{}',
        output_ports=''
    )
    
    ---------------------------------------------------------------------------
    KeyError                                  Traceback (most recent call last)
    <ipython-input-18-8588829404be> in <module>
         48 )
         49 
    ---> 50 m5 = M.cached.v3(
         51     input_1=m2.data,
         52     run=m5_run_bigquant_run,
    
    <ipython-input-18-8588829404be> in m5_run_bigquant_run(input_1, input_2, input_3)
         11         df['成交累加']=df['amount'].cumsum()/10000
         12         return df
    ---> 13     df.groupby('instrument').apply(cal)
         14 
         15     return Outputs(data_1=data_1, data_2=None, data_3=None)
    
    KeyError: 'instrument'