复制链接
克隆策略

    {"description":"实验创建于2020/2/23","graph":{"edges":[{"to_node_id":"-96:instruments","from_node_id":"-11:data"},{"to_node_id":"-96:features","from_node_id":"-19:data"},{"to_node_id":"-31:features","from_node_id":"-19:data"},{"to_node_id":"-31:input_data","from_node_id":"-96:data"}],"nodes":[{"node_id":"-11","module_id":"BigQuantSpace.instruments.instruments-v2","parameters":[{"name":"start_date","value":"2022-09-10","type":"Literal","bound_global_parameter":null},{"name":"end_date","value":"2022-11-08","type":"Literal","bound_global_parameter":null},{"name":"market","value":"CN_STOCK_A","type":"Literal","bound_global_parameter":null},{"name":"instrument_list","value":"003003.SZA\n600519.SHA\n","type":"Literal","bound_global_parameter":null},{"name":"max_count","value":"0","type":"Literal","bound_global_parameter":null}],"input_ports":[{"name":"rolling_conf","node_id":"-11"}],"output_ports":[{"name":"data","node_id":"-11"}],"cacheable":false,"seq_num":2,"comment":"","comment_collapsed":true},{"node_id":"-19","module_id":"BigQuantSpace.input_features.input_features-v1","parameters":[{"name":"features","value":"\n# #号开始的表示注释,注释需单独一行\n# 多个特征,每行一个,可以包含基础特征和衍生特征,特征须为本平台特征\n# amount=bar1d_CN_STOCK_A__amount\n#mean(amount, 2)\n#close_1=shift(bar1d_CN_STOCK_A__close, 1)\n#close_avg=(bar1d_CN_STOCK_A__close + bar1d_CN_STOCK_A__open)/2\n# pb_lf=market_value_CN_STOCK_A__pb_lf\n#pe_ttm=market_value_CN_STOCK_A__pe_ttm\n# amount_5\n# rank_amount_5\n# #((close_0-open_0)/open_0)/((close_0-open_4)/open_4)\n# daily_return_3\n# # rank_avg_amount_5\n# avg_amount_5\n# # rank_amount_5\n# rank_amount_0\n# std(turn_0,10)\n# avg_turn_5\n# rank_swing_volatility_60_0\n# fe1=sum(max(0,high_0-delay((high_0+low_0+close_0)/3,1)),26)/sum(max(0,delay((high_0+low_0+close_0)/3,1)-1),26)*100\n# mean(turn_0*(return_0-1),30)\n# std(return_0-1,60)\n# std(return_0-1,15)\n# fe2o=rank(((close_0-sum(min(low_0,delay(close_0,1)),6))/sum(max(high_0,delay(close_0,1))-min(low_0,delay(close_0,1)),6)*12*24+(close_0-sum(min(low_0,delay(close_0,1)),12))/sum(max(high_0,delay(close_0,1))-min(low_0,delay(close_0,1)),12)*6*24+(close_0-sum(min(low_0,delay(close_0,1)),24))/sum(max(high_0,delay(close_0,1))-min(low_0,delay(close_0,1)),24)*6*24)/-20000)\n# # rank_amount_0/rank_avg_amount_5\nfs_roe_0\nclose_0\nfe3=sum((close_0-open_0)/open_0>0.04,20)\nrank_volatility_10_0\nrank_swing_volatility_10_0\n\n\n\n# market_cap_float_0\n#fe2=((close_0-sum(min(low_0,delay(close_0,1)),6))/sum(max(high_0,delay(close_0,1))-min(low_0,delay(close_0,1)),6)*12*24+(close_0-sum(min(low_0,delay(close_0,1)),12))/sum(max(high_0,delay(close_0,1))-min(low_0,delay(close_0,1)),12)*6*24+(close_0-sum(min(low_0,delay(close_0,1)),24))/sum(max(high_0,delay(close_0,1))-min(low_0,delay(close_0,1)),24)*6*24)*100/(6*12+6*24+12*24)","type":"Literal","bound_global_parameter":null}],"input_ports":[{"name":"features_ds","node_id":"-19"}],"output_ports":[{"name":"data","node_id":"-19"}],"cacheable":false,"seq_num":3,"comment":"","comment_collapsed":true},{"node_id":"-96","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":"200","type":"Literal","bound_global_parameter":null}],"input_ports":[{"name":"instruments","node_id":"-96"},{"name":"features","node_id":"-96"}],"output_ports":[{"name":"data","node_id":"-96"}],"cacheable":false,"seq_num":1,"comment":"","comment_collapsed":true},{"node_id":"-31","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":"-31"},{"name":"features","node_id":"-31"}],"output_ports":[{"name":"data","node_id":"-31"}],"cacheable":true,"seq_num":4,"comment":"","comment_collapsed":true}],"node_layout":"<node_postions><node_position Node='-11' Position='179.75076293945312,142.43533325195312,200,200'/><node_position Node='-19' Position='483.42022705078125,141.44674682617188,200,200'/><node_position Node='-96' Position='345.3276672363281,286.1951599121094,200,200'/><node_position Node='-31' Position='352.2735595703125,384.3444519042969,200,200'/></node_postions>"},"nodes_readonly":false,"studio_version":"v2"}
    In [37]:
    # 本代码由可视化策略环境自动生成 2022年11月10日 10:47
    # 本代码单元只能在可视化模式下编辑。您也可以拷贝代码,粘贴到新建的代码单元或者策略,然后修改。
    
    
    m2 = M.instruments.v2(
        start_date='2022-09-10',
        end_date='2022-11-08',
        market='CN_STOCK_A',
        instrument_list="""003003.SZA
    600519.SHA
    """,
        max_count=0,
        m_cached=False
    )
    
    m3 = M.input_features.v1(
        features="""
    # #号开始的表示注释,注释需单独一行
    # 多个特征,每行一个,可以包含基础特征和衍生特征,特征须为本平台特征
    # amount=bar1d_CN_STOCK_A__amount
    #mean(amount, 2)
    #close_1=shift(bar1d_CN_STOCK_A__close, 1)
    #close_avg=(bar1d_CN_STOCK_A__close + bar1d_CN_STOCK_A__open)/2
    # pb_lf=market_value_CN_STOCK_A__pb_lf
    #pe_ttm=market_value_CN_STOCK_A__pe_ttm
    # amount_5
    # rank_amount_5
    # #((close_0-open_0)/open_0)/((close_0-open_4)/open_4)
    # daily_return_3
    # # rank_avg_amount_5
    # avg_amount_5
    # # rank_amount_5
    # rank_amount_0
    # std(turn_0,10)
    # avg_turn_5
    # rank_swing_volatility_60_0
    # fe1=sum(max(0,high_0-delay((high_0+low_0+close_0)/3,1)),26)/sum(max(0,delay((high_0+low_0+close_0)/3,1)-1),26)*100
    # mean(turn_0*(return_0-1),30)
    # std(return_0-1,60)
    # std(return_0-1,15)
    # fe2o=rank(((close_0-sum(min(low_0,delay(close_0,1)),6))/sum(max(high_0,delay(close_0,1))-min(low_0,delay(close_0,1)),6)*12*24+(close_0-sum(min(low_0,delay(close_0,1)),12))/sum(max(high_0,delay(close_0,1))-min(low_0,delay(close_0,1)),12)*6*24+(close_0-sum(min(low_0,delay(close_0,1)),24))/sum(max(high_0,delay(close_0,1))-min(low_0,delay(close_0,1)),24)*6*24)/-20000)
    # # rank_amount_0/rank_avg_amount_5
    fs_roe_0
    close_0
    fe3=sum((close_0-open_0)/open_0>0.04,20)
    rank_volatility_10_0
    rank_swing_volatility_10_0
    
    
    
    # market_cap_float_0
    #fe2=((close_0-sum(min(low_0,delay(close_0,1)),6))/sum(max(high_0,delay(close_0,1))-min(low_0,delay(close_0,1)),6)*12*24+(close_0-sum(min(low_0,delay(close_0,1)),12))/sum(max(high_0,delay(close_0,1))-min(low_0,delay(close_0,1)),12)*6*24+(close_0-sum(min(low_0,delay(close_0,1)),24))/sum(max(high_0,delay(close_0,1))-min(low_0,delay(close_0,1)),24)*6*24)*100/(6*12+6*24+12*24)""",
        m_cached=False
    )
    
    m1 = M.general_feature_extractor.v7(
        instruments=m2.data,
        features=m3.data,
        start_date='',
        end_date='',
        before_start_days=200,
        m_cached=False
    )
    
    m4 = M.derived_feature_extractor.v3(
        input_data=m1.data,
        features=m3.data,
        date_col='date',
        instrument_col='instrument',
        drop_na=False,
        remove_extra_columns=False,
        user_functions={}
    )
    
    In [42]:
    m4.data.read().tail()
    
    Out[42]:
    close_0 date fs_roe_0 instrument open_0 rank_swing_volatility_10_0 rank_volatility_10_0 fe3
    343 11119.764648 2022-11-02 22.410101 600519.SHA 11029.414062 0.680469 0.815997 1.0
    344 10874.548828 2022-11-03 22.410101 600519.SHA 10905.294922 0.714257 0.820275 1.0
    345 11456.765625 2022-11-04 22.410101 600519.SHA 10862.915039 0.663302 0.881308 2.0
    346 11385.300781 2022-11-07 22.410101 600519.SHA 11286.640625 0.668213 0.789102 2.0
    347 11217.367188 2022-11-08 22.410101 600519.SHA 11392.024414 0.653226 0.804278 2.0