复制链接
克隆策略

    {"description":"实验创建于2017/8/26","graph":{"edges":[{"to_node_id":"-215:instruments","from_node_id":"287d2cb0-f53c-4101-bdf8-104b137c8601-8:data"},{"to_node_id":"-215:features","from_node_id":"287d2cb0-f53c-4101-bdf8-104b137c8601-24:data"},{"to_node_id":"-222:features","from_node_id":"287d2cb0-f53c-4101-bdf8-104b137c8601-24:data"},{"to_node_id":"-222:input_data","from_node_id":"-215:data"}],"nodes":[{"node_id":"287d2cb0-f53c-4101-bdf8-104b137c8601-8","module_id":"BigQuantSpace.instruments.instruments-v2","parameters":[{"name":"start_date","value":"2021-10-01","type":"Literal","bound_global_parameter":null},{"name":"end_date","value":"2021-12-01","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":"287d2cb0-f53c-4101-bdf8-104b137c8601-8"}],"output_ports":[{"name":"data","node_id":"287d2cb0-f53c-4101-bdf8-104b137c8601-8"}],"cacheable":true,"seq_num":1,"comment":"","comment_collapsed":true},{"node_id":"287d2cb0-f53c-4101-bdf8-104b137c8601-24","module_id":"BigQuantSpace.input_features.input_features-v1","parameters":[{"name":"features","value":" \nclose_0\nSBDLX3","type":"Literal","bound_global_parameter":null}],"input_ports":[{"name":"features_ds","node_id":"287d2cb0-f53c-4101-bdf8-104b137c8601-24"}],"output_ports":[{"name":"data","node_id":"287d2cb0-f53c-4101-bdf8-104b137c8601-24"}],"cacheable":true,"seq_num":3,"comment":"","comment_collapsed":true},{"node_id":"-215","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":"40","type":"Literal","bound_global_parameter":null}],"input_ports":[{"name":"instruments","node_id":"-215"},{"name":"features","node_id":"-215"}],"output_ports":[{"name":"data","node_id":"-215"}],"cacheable":true,"seq_num":15,"comment":"","comment_collapsed":true},{"node_id":"-222","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":"def SBDLX3(df,close_0):\n Z1=ts_max(close_0,10)\n Z2=shift(Z1,1)\n Z3=mean(Z2,2)\n return Z3\n \n\n# 因为这俩表达式是我们新自定义的表达式,因此需要声明,以便在输入特征列表可使用\nbigquant_run = {\n 'SBDLX3':SBDLX3,\n}","type":"Literal","bound_global_parameter":null}],"input_ports":[{"name":"input_data","node_id":"-222"},{"name":"features","node_id":"-222"}],"output_ports":[{"name":"data","node_id":"-222"}],"cacheable":true,"seq_num":16,"comment":"","comment_collapsed":true}],"node_layout":"<node_postions><node_position Node='287d2cb0-f53c-4101-bdf8-104b137c8601-8' Position='-11.659164428710938,-278.55804443359375,200,200'/><node_position Node='287d2cb0-f53c-4101-bdf8-104b137c8601-24' Position='295.6517028808594,-282.8202238082886,200,200'/><node_position Node='-215' Position='107,-51,200,200'/><node_position Node='-222' Position='79.26217651367188,37.47565460205078,200,200'/></node_postions>"},"nodes_readonly":false,"studio_version":"v2"}
    In [122]:
    # 本代码由可视化策略环境自动生成 2022年4月21日 19:45
    # 本代码单元只能在可视化模式下编辑。您也可以拷贝代码,粘贴到新建的代码单元或者策略,然后修改。
    
    
    def SBDLX3(df,close_0):
        Z1=ts_max(close_0,10)
        Z2=shift(Z1,1)
        Z3=mean(Z2,2)
        return Z3
      
    
    # 因为这俩表达式是我们新自定义的表达式,因此需要声明,以便在输入特征列表可使用
    m16_user_functions_bigquant_run = {
        'SBDLX3':SBDLX3,
    }
    
    m1 = M.instruments.v2(
        start_date='2021-10-01',
        end_date='2021-12-01',
        market='CN_STOCK_A',
        instrument_list='',
        max_count=0
    )
    
    m3 = M.input_features.v1(
        features=""" 
    close_0
    SBDLX3"""
    )
    
    m15 = M.general_feature_extractor.v7(
        instruments=m1.data,
        features=m3.data,
        start_date='',
        end_date='',
        before_start_days=40
    )
    
    m16 = M.derived_feature_extractor.v3(
        input_data=m15.data,
        features=m3.data,
        date_col='date',
        instrument_col='instrument',
        drop_na=False,
        remove_extra_columns=False,
        user_functions=m16_user_functions_bigquant_run
    )
    
    In [123]:
    df = m16.data.read()
    
    In [124]:
    df[df['date'] == '2021-10-08']
    
    Out[124]:
    close_0 date instrument
    27 2086.225342 2021-10-08 000001.SZA
    93 3456.542969 2021-10-08 000002.SZA
    159 77.863594 2021-10-08 000004.SZA
    225 20.110699 2021-10-08 000005.SZA
    291 173.479218 2021-10-08 000006.SZA
    ... ... ... ...
    296480 38.639999 2021-10-08 688799.SHA
    296546 73.269997 2021-10-08 688800.SHA
    296612 44.475529 2021-10-08 688819.SHA
    296678 55.770000 2021-10-08 688981.SHA
    296744 80.580002 2021-10-08 689009.SHA

    4482 rows × 3 columns