{"description":"实验创建于2023/2/10","graph":{"edges":[{"to_node_id":"-19:instruments","from_node_id":"-6:data"},{"to_node_id":"-19:features","from_node_id":"-14:data"},{"to_node_id":"-26:features","from_node_id":"-14:data"},{"to_node_id":"-26:input_data","from_node_id":"-19:data"},{"to_node_id":"-38:input_1","from_node_id":"-26:data"}],"nodes":[{"node_id":"-6","module_id":"BigQuantSpace.instruments.instruments-v2","parameters":[{"name":"start_date","value":"2023-01-01","type":"Literal","bound_global_parameter":null},{"name":"end_date","value":"2023-02-02","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":"-6"}],"output_ports":[{"name":"data","node_id":"-6"}],"cacheable":true,"seq_num":1,"comment":"","comment_collapsed":true},{"node_id":"-14","module_id":"BigQuantSpace.input_features.input_features-v1","parameters":[{"name":"features","value":"\n# #号开始的表示注释,注释需单独一行\n# 多个特征,每行一个,可以包含基础特征和衍生特征,特征须为本平台特征\nreturn_5\nreturn_10\nreturn_20\navg_amount_0/avg_amount_5\navg_amount_5/avg_amount_20\nrank_avg_amount_0/rank_avg_amount_5\nrank_avg_amount_5/rank_avg_amount_10\nrank_return_0\nrank_return_5\nrank_return_10\nrank_return_0/rank_return_5\nrank_return_5/rank_return_10\npe_ttm_0\n","type":"Literal","bound_global_parameter":null}],"input_ports":[{"name":"features_ds","node_id":"-14"}],"output_ports":[{"name":"data","node_id":"-14"}],"cacheable":true,"seq_num":2,"comment":"","comment_collapsed":true},{"node_id":"-19","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":"-19"},{"name":"features","node_id":"-19"}],"output_ports":[{"name":"data","node_id":"-19"}],"cacheable":true,"seq_num":3,"comment":"","comment_collapsed":true},{"node_id":"-26","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":"{}","type":"Literal","bound_global_parameter":null}],"input_ports":[{"name":"input_data","node_id":"-26"},{"name":"features","node_id":"-26"}],"output_ports":[{"name":"data","node_id":"-26"}],"cacheable":true,"seq_num":4,"comment":"","comment_collapsed":true},{"node_id":"-38","module_id":"BigQuantSpace.cached.cached-v3","parameters":[{"name":"run","value":"# Python 代码入口函数,input_1/2/3 对应三个输入端,data_1/2/3 对应三个输出端\ndef bigquant_run(input_1, input_2, input_3):\n # 示例代码如下。在这里编写您的代码\n import dai\n \n df = input_1.read()\n data = dai.query(\"\"\"\n SELECT *\n FROM cn_stock_money_flow;\n \"\"\", full_db_scan=True).df()\n data['instrument'] = data['instrument'].apply(lambda x: x+'A')\n df = pd.merge(df, data, on=['date', 'instrument'], how='inner')\n data_1 = DataSource.write_df(df)\n return Outputs(data_1=data_1, data_2=None, data_3=None)\n","type":"Literal","bound_global_parameter":null},{"name":"post_run","value":"# 后处理函数,可选。输入是主函数的输出,可以在这里对数据做处理,或者返回更友好的outputs数据格式。此函数输出不会被缓存。\ndef 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":"-38"},{"name":"input_2","node_id":"-38"},{"name":"input_3","node_id":"-38"}],"output_ports":[{"name":"data_1","node_id":"-38"},{"name":"data_2","node_id":"-38"},{"name":"data_3","node_id":"-38"}],"cacheable":true,"seq_num":5,"comment":"","comment_collapsed":true}],"node_layout":"<node_postions><node_position Node='-6' Position='22.494857788085938,93.57731628417969,200,200'/><node_position Node='-14' Position='402.38140869140625,95.0412368774414,200,200'/><node_position Node='-19' Position='198.89691162109375,209.226806640625,200,200'/><node_position Node='-26' Position='255.98965454101562,310.2370910644531,200,200'/><node_position Node='-38' Position='253.06185913085938,407.587646484375,200,200'/></node_postions>"},"nodes_readonly":false,"studio_version":"v2"}
    In [1]:
    # 本代码由可视化策略环境自动生成 2023年8月24日 14:22
    # 本代码单元只能在可视化模式下编辑。您也可以拷贝代码,粘贴到新建的代码单元或者策略,然后修改。
     
    # 显式导入 BigQuant 相关 SDK 模块
    from bigdatasource.api import DataSource
    from bigdata.api.datareader import D
    from biglearning.api import M
    from biglearning.api import tools as T
    from biglearning.module2.common.data import Outputs
     
    import pandas as pd
    import numpy as np
    import math
    import warnings
    import datetime
     
    from zipline.finance.commission import PerOrder
    from zipline.api import get_open_orders
    from zipline.api import symbol
     
    from bigtrader.sdk import *
    from bigtrader.utils.my_collections import NumPyDeque
    from bigtrader.constant import OrderType
    from bigtrader.constant import Direction
    
    # Python 代码入口函数,input_1/2/3 对应三个输入端,data_1/2/3 对应三个输出端
    def m5_run_bigquant_run(input_1, input_2, input_3):
        # 示例代码如下。在这里编写您的代码
        import dai
        
        df = input_1.read()
        data = dai.query("""
            SELECT *
            FROM cn_stock_money_flow;
        """, full_db_scan=True).df()
        data['instrument'] = data['instrument'].apply(lambda x: x+'A')
        df = pd.merge(df, data, on=['date', 'instrument'], how='inner')
        data_1 = DataSource.write_df(df)
        return Outputs(data_1=data_1, data_2=None, data_3=None)
    
    # 后处理函数,可选。输入是主函数的输出,可以在这里对数据做处理,或者返回更友好的outputs数据格式。此函数输出不会被缓存。
    def m5_post_run_bigquant_run(outputs):
        return outputs
    
    
    m1 = M.instruments.v2(
        start_date='2023-01-01',
        end_date='2023-02-02',
        market='CN_STOCK_A',
        instrument_list='',
        max_count=0
    )
    
    m2 = M.input_features.v1(
        features="""
    # #号开始的表示注释,注释需单独一行
    # 多个特征,每行一个,可以包含基础特征和衍生特征,特征须为本平台特征
    return_5
    return_10
    return_20
    avg_amount_0/avg_amount_5
    avg_amount_5/avg_amount_20
    rank_avg_amount_0/rank_avg_amount_5
    rank_avg_amount_5/rank_avg_amount_10
    rank_return_0
    rank_return_5
    rank_return_10
    rank_return_0/rank_return_5
    rank_return_5/rank_return_10
    pe_ttm_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={}
    )
    
    m5 = M.cached.v3(
        input_1=m4.data,
        run=m5_run_bigquant_run,
        post_run=m5_post_run_bigquant_run,
        input_ports='',
        params='{}',
        output_ports=''
    )
    
    In [2]:
    m5.data_1.read()
    
    Out[2]:
    avg_amount_0 avg_amount_20 avg_amount_5 date instrument pe_ttm_0 rank_avg_amount_0 rank_avg_amount_10 rank_avg_amount_5 rank_return_0 ... netflow_s netflow_m netflow_l netflow_xl netflow_s_rate netflow_m_rate netflow_l_rate netflow_xl_rate main_flow main_rate
    0 1.119090e+09 1.171122e+09 9.742346e+08 2022-10-10 000001.SZA 5.450059 0.988664 0.982699 0.986193 0.252936 ... -5.400730e+07 -6.004651e+07 -2.471854e+07 -9.068172e+06 -0.048260 -0.053657 -0.022088 -0.008103 -9.383323e+07 -0.083848
    1 4.767492e+08 1.146994e+09 8.713493e+08 2022-10-11 000001.SZA 5.454811 0.950212 0.981478 0.981940 0.395627 ... -1.038995e+07 -9.545568e+06 -9.050558e+06 -6.880568e+05 -0.021793 -0.020022 -0.018984 -0.001443 -1.928418e+07 -0.040449
    2 6.417765e+08 1.140009e+09 8.205232e+08 2022-10-12 000001.SZA 5.511830 0.958325 0.978646 0.978098 0.198037 ... -1.604656e+06 3.730352e+06 -2.744544e+06 3.708536e+06 -0.002500 0.005813 -0.004276 0.005779 4.694344e+06 0.007315
    3 9.700217e+08 1.142644e+09 8.244916e+08 2022-10-13 000001.SZA 5.388289 0.978362 0.979052 0.978715 0.052914 ... -1.772657e+08 -9.336797e+07 -4.017879e+07 -1.187117e+07 -0.182744 -0.096253 -0.041421 -0.012238 -1.454179e+08 -0.149912
    4 1.265487e+09 1.145366e+09 8.520051e+08 2022-10-14 000001.SZA 5.478569 0.983428 0.980898 0.978129 0.482110 ... 1.702288e+06 2.858917e+07 2.531678e+07 2.562892e+07 0.001345 0.022591 0.020006 0.020252 7.953488e+07 0.062849
    ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
    379936 1.519026e+08 1.004233e+08 1.240130e+08 2023-01-20 689009.SHA 54.846340 0.766680 0.687352 0.716262 0.339321 ... -2.901316e+07 -1.022964e+07 -3.269114e+06 0.000000e+00 -0.190998 -0.067343 -0.021521 0.000000 -1.349876e+07 -0.088865
    379937 2.448643e+08 1.098317e+08 1.492669e+08 2023-01-30 689009.SHA 56.392273 0.794710 0.701265 0.740660 0.818720 ... -1.952433e+05 5.920944e+05 1.837913e+06 1.065600e+06 -0.000797 0.002418 0.007506 0.004352 3.495608e+06 0.014276
    379938 1.626498e+08 1.142111e+08 1.405115e+08 2023-01-31 689009.SHA 57.010647 0.727345 0.704707 0.721376 0.716627 ... -9.805500e+06 -1.747002e+07 -5.601842e+06 0.000000e+00 -0.060286 -0.107409 -0.034441 0.000000 -2.307186e+07 -0.141850
    379939 2.139207e+08 1.204186e+08 1.603181e+08 2023-02-01 689009.SHA 59.071896 0.763173 0.712732 0.735968 0.879589 ... 1.150372e+07 1.569416e+07 8.371722e+06 0.000000e+00 0.053776 0.073364 0.039135 0.000000 2.406588e+07 0.112499
    379940 2.501142e+08 1.287991e+08 1.882792e+08 2023-02-02 689009.SHA 58.831417 0.791322 0.729051 0.753603 0.388045 ... -1.504910e+07 -1.136048e+07 4.462720e+06 -1.035000e+06 -0.060169 -0.045421 0.017843 -0.004138 -7.932764e+06 -0.031717

    379941 rows × 43 columns

    In [ ]: