{"description":"实验创建于2020/12/25","graph":{"edges":[{"to_node_id":"-50:instruments","from_node_id":"-20:data"},{"to_node_id":"-50:features","from_node_id":"-38:data"},{"to_node_id":"-66:features","from_node_id":"-38:data"},{"to_node_id":"-6138:input_data","from_node_id":"-50:data"},{"to_node_id":"-1569:input_1","from_node_id":"-66:data"},{"to_node_id":"-66:input_data","from_node_id":"-6138:data"},{"to_node_id":"-662:input_1","from_node_id":"-1569:data_1"},{"to_node_id":"-6110:instruments","from_node_id":"-6097:data"},{"to_node_id":"-281:instruments","from_node_id":"-6097:data"},{"to_node_id":"-6110:features","from_node_id":"-6105:data"},{"to_node_id":"-6117:features","from_node_id":"-6105:data"},{"to_node_id":"-6126:input_data","from_node_id":"-6110:data"},{"to_node_id":"-6139:input_1","from_node_id":"-6117:data"},{"to_node_id":"-6117:input_data","from_node_id":"-6126:data"},{"to_node_id":"-662:input_2","from_node_id":"-6139:data_1"},{"to_node_id":"-281:options_data","from_node_id":"-662:data_1"}],"nodes":[{"node_id":"-20","module_id":"BigQuantSpace.instruments.instruments-v2","parameters":[{"name":"start_date","value":"2016-01-01","type":"Literal","bound_global_parameter":null},{"name":"end_date","value":"2020-01-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":"-20"}],"output_ports":[{"name":"data","node_id":"-20"}],"cacheable":true,"seq_num":1,"comment":"训练时间","comment_collapsed":false},{"node_id":"-38","module_id":"BigQuantSpace.input_features.input_features-v1","parameters":[{"name":"features","value":"#收盘突破所有短期均线,收盘表现强势\nbuy_cond_1 = where((close_0>mean(close_0, 20))&(close_0>mean(close_0, 10))&(close_0>mean(close_0, 5)),1,0)\n#底部冲短线均线下方开始反弹\nbuy_cond_2 = where((low_0<mean(close_0, 5))&(low_0<mean(close_0, 10))&(low_0<mean(close_0, 20)), 1, 0)\n#确保当天为阳\nbuy_cond_3 = where((close_0>open_0), 1, 0)\n\n\n#预测值Y\ny = shift(close_0,-2)/shift(open_0,-1)\n\n# 过滤掉一字涨停\nwhere(shift(high_0, -1) == shift(low_0, -1), NaN, y)\n\n#股价相对位置,RSI指标\na1 = ta_rsi_14_0 \n#量价因子\na2 = (ta_ema(volume_0, 12)-ta_ema(volume_0, 26))\n#资金流因子,近几天大单相对流通市值\na3 = sum(mf_net_amount_xl_0,10)/market_cap_float_0\n#换手率因子\na4 = turn_0/mean(turn_0, 5)\n#技术指标因子(量价因子)\na5 = close_0/mean(close_0, 20)","type":"Literal","bound_global_parameter":null}],"input_ports":[{"name":"features_ds","node_id":"-38"}],"output_ports":[{"name":"data","node_id":"-38"}],"cacheable":true,"seq_num":2,"comment":"股票池\n预测值\n因子","comment_collapsed":false},{"node_id":"-50","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":"50","type":"Literal","bound_global_parameter":null}],"input_ports":[{"name":"instruments","node_id":"-50"},{"name":"features","node_id":"-50"}],"output_ports":[{"name":"data","node_id":"-50"}],"cacheable":true,"seq_num":3,"comment":"","comment_collapsed":true},{"node_id":"-66","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":"True","type":"Literal","bound_global_parameter":null},{"name":"user_functions","value":"","type":"Literal","bound_global_parameter":null}],"input_ports":[{"name":"input_data","node_id":"-66"},{"name":"features","node_id":"-66"}],"output_ports":[{"name":"data","node_id":"-66"}],"cacheable":true,"seq_num":4,"comment":"","comment_collapsed":true},{"node_id":"-6138","module_id":"BigQuantSpace.chinaa_stock_filter.chinaa_stock_filter-v1","parameters":[{"name":"index_constituent_cond","value":"%7B%22enumItems%22%3A%5B%7B%22value%22%3A%22%E5%85%A8%E9%83%A8%22%2C%22displayValue%22%3A%22%E5%85%A8%E9%83%A8%22%2C%22selected%22%3Atrue%7D%2C%7B%22value%22%3A%22%E4%B8%8A%E8%AF%8150%22%2C%22displayValue%22%3A%22%E4%B8%8A%E8%AF%8150%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E6%B2%AA%E6%B7%B1300%22%2C%22displayValue%22%3A%22%E6%B2%AA%E6%B7%B1300%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E4%B8%AD%E8%AF%81500%22%2C%22displayValue%22%3A%22%E4%B8%AD%E8%AF%81500%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E4%B8%AD%E8%AF%81800%22%2C%22displayValue%22%3A%22%E4%B8%AD%E8%AF%81800%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E4%B8%8A%E8%AF%81180%22%2C%22displayValue%22%3A%22%E4%B8%8A%E8%AF%81180%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E4%B8%AD%E8%AF%81100%22%2C%22displayValue%22%3A%22%E4%B8%AD%E8%AF%81100%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E6%B7%B1%E8%AF%81100%22%2C%22displayValue%22%3A%22%E6%B7%B1%E8%AF%81100%22%2C%22selected%22%3Afalse%7D%5D%7D","type":"Literal","bound_global_parameter":null},{"name":"board_cond","value":"%7B%22enumItems%22%3A%5B%7B%22value%22%3A%22%E5%85%A8%E9%83%A8%22%2C%22displayValue%22%3A%22%E5%85%A8%E9%83%A8%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E4%B8%8A%E8%AF%81%E4%B8%BB%E6%9D%BF%22%2C%22displayValue%22%3A%22%E4%B8%8A%E8%AF%81%E4%B8%BB%E6%9D%BF%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E6%B7%B1%E8%AF%81%E4%B8%BB%E6%9D%BF%22%2C%22displayValue%22%3A%22%E6%B7%B1%E8%AF%81%E4%B8%BB%E6%9D%BF%22%2C%22selected%22%3Atrue%7D%2C%7B%22value%22%3A%22%E5%88%9B%E4%B8%9A%E6%9D%BF%22%2C%22displayValue%22%3A%22%E5%88%9B%E4%B8%9A%E6%9D%BF%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E7%A7%91%E5%88%9B%E6%9D%BF%22%2C%22displayValue%22%3A%22%E7%A7%91%E5%88%9B%E6%9D%BF%22%2C%22selected%22%3Afalse%7D%5D%7D","type":"Literal","bound_global_parameter":null},{"name":"industry_cond","value":"%7B%22enumItems%22%3A%5B%7B%22value%22%3A%22%E5%85%A8%E9%83%A8%22%2C%22displayValue%22%3A%22%E5%85%A8%E9%83%A8%22%2C%22selected%22%3Atrue%7D%2C%7B%22value%22%3A%22%E4%BA%A4%E9%80%9A%E8%BF%90%E8%BE%93%22%2C%22displayValue%22%3A%22%E4%BA%A4%E9%80%9A%E8%BF%90%E8%BE%93%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E4%BC%91%E9%97%B2%E6%9C%8D%E5%8A%A1%22%2C%22displayValue%22%3A%22%E4%BC%91%E9%97%B2%E6%9C%8D%E5%8A%A1%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E4%BC%A0%E5%AA%92%2F%E4%BF%A1%E6%81%AF%E6%9C%8D%E5%8A%A1%22%2C%22displayValue%22%3A%22%E4%BC%A0%E5%AA%92%2F%E4%BF%A1%E6%81%AF%E6%9C%8D%E5%8A%A1%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E5%85%AC%E7%94%A8%E4%BA%8B%E4%B8%9A%22%2C%22displayValue%22%3A%22%E5%85%AC%E7%94%A8%E4%BA%8B%E4%B8%9A%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E5%86%9C%E6%9E%97%E7%89%A7%E6%B8%94%22%2C%22displayValue%22%3A%22%E5%86%9C%E6%9E%97%E7%89%A7%E6%B8%94%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E5%8C%96%E5%B7%A5%22%2C%22displayValue%22%3A%22%E5%8C%96%E5%B7%A5%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E5%8C%BB%E8%8D%AF%E7%94%9F%E7%89%A9%22%2C%22displayValue%22%3A%22%E5%8C%BB%E8%8D%AF%E7%94%9F%E7%89%A9%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E5%95%86%E4%B8%9A%E8%B4%B8%E6%98%93%22%2C%22displayValue%22%3A%22%E5%95%86%E4%B8%9A%E8%B4%B8%E6%98%93%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E5%9B%BD%E9%98%B2%E5%86%9B%E5%B7%A5%22%2C%22displayValue%22%3A%22%E5%9B%BD%E9%98%B2%E5%86%9B%E5%B7%A5%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E5%AE%B6%E7%94%A8%E7%94%B5%E5%99%A8%22%2C%22displayValue%22%3A%22%E5%AE%B6%E7%94%A8%E7%94%B5%E5%99%A8%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E5%BB%BA%E7%AD%91%E6%9D%90%E6%96%99%2F%E5%BB%BA%E7%AD%91%E5%BB%BA%E6%9D%90%22%2C%22displayValue%22%3A%22%E5%BB%BA%E7%AD%91%E6%9D%90%E6%96%99%2F%E5%BB%BA%E7%AD%91%E5%BB%BA%E6%9D%90%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E5%BB%BA%E7%AD%91%E8%A3%85%E9%A5%B0%22%2C%22displayValue%22%3A%22%E5%BB%BA%E7%AD%91%E8%A3%85%E9%A5%B0%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E6%88%BF%E5%9C%B0%E4%BA%A7%22%2C%22displayValue%22%3A%22%E6%88%BF%E5%9C%B0%E4%BA%A7%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E6%9C%89%E8%89%B2%E9%87%91%E5%B1%9E%22%2C%22displayValue%22%3A%22%E6%9C%89%E8%89%B2%E9%87%91%E5%B1%9E%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E6%9C%BA%E6%A2%B0%E8%AE%BE%E5%A4%87%22%2C%22displayValue%22%3A%22%E6%9C%BA%E6%A2%B0%E8%AE%BE%E5%A4%87%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E6%B1%BD%E8%BD%A6%2F%E4%BA%A4%E8%BF%90%E8%AE%BE%E5%A4%87%22%2C%22displayValue%22%3A%22%E6%B1%BD%E8%BD%A6%2F%E4%BA%A4%E8%BF%90%E8%AE%BE%E5%A4%87%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E7%94%B5%E5%AD%90%22%2C%22displayValue%22%3A%22%E7%94%B5%E5%AD%90%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E7%94%B5%E6%B0%94%E8%AE%BE%E5%A4%87%22%2C%22displayValue%22%3A%22%E7%94%B5%E6%B0%94%E8%AE%BE%E5%A4%87%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E7%BA%BA%E7%BB%87%E6%9C%8D%E8%A3%85%22%2C%22displayValue%22%3A%22%E7%BA%BA%E7%BB%87%E6%9C%8D%E8%A3%85%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E7%BB%BC%E5%90%88%22%2C%22displayValue%22%3A%22%E7%BB%BC%E5%90%88%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E8%AE%A1%E7%AE%97%E6%9C%BA%22%2C%22displayValue%22%3A%22%E8%AE%A1%E7%AE%97%E6%9C%BA%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E8%BD%BB%E5%B7%A5%E5%88%B6%E9%80%A0%22%2C%22displayValue%22%3A%22%E8%BD%BB%E5%B7%A5%E5%88%B6%E9%80%A0%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E9%80%9A%E4%BF%A1%22%2C%22displayValue%22%3A%22%E9%80%9A%E4%BF%A1%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E9%87%87%E6%8E%98%22%2C%22displayValue%22%3A%22%E9%87%87%E6%8E%98%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E9%92%A2%E9%93%81%22%2C%22displayValue%22%3A%22%E9%92%A2%E9%93%81%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E9%93%B6%E8%A1%8C%22%2C%22displayValue%22%3A%22%E9%93%B6%E8%A1%8C%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E9%9D%9E%E9%93%B6%E9%87%91%E8%9E%8D%22%2C%22displayValue%22%3A%22%E9%9D%9E%E9%93%B6%E9%87%91%E8%9E%8D%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E9%A3%9F%E5%93%81%E9%A5%AE%E6%96%99%22%2C%22displayValue%22%3A%22%E9%A3%9F%E5%93%81%E9%A5%AE%E6%96%99%22%2C%22selected%22%3Afalse%7D%5D%7D","type":"Literal","bound_global_parameter":null},{"name":"st_cond","value":"%7B%22enumItems%22%3A%5B%7B%22value%22%3A%22%E5%85%A8%E9%83%A8%22%2C%22displayValue%22%3A%22%E5%85%A8%E9%83%A8%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E6%AD%A3%E5%B8%B8%22%2C%22displayValue%22%3A%22%E6%AD%A3%E5%B8%B8%22%2C%22selected%22%3Atrue%7D%2C%7B%22value%22%3A%22ST%22%2C%22displayValue%22%3A%22ST%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22*ST%22%2C%22displayValue%22%3A%22*ST%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E6%9A%82%E5%81%9C%E4%B8%8A%E5%B8%82%22%2C%22displayValue%22%3A%22%E6%9A%82%E5%81%9C%E4%B8%8A%E5%B8%82%22%2C%22selected%22%3Afalse%7D%5D%7D","type":"Literal","bound_global_parameter":null},{"name":"delist_cond","value":"%7B%22enumItems%22%3A%5B%7B%22value%22%3A%22%E5%85%A8%E9%83%A8%22%2C%22displayValue%22%3A%22%E5%85%A8%E9%83%A8%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E9%80%80%E5%B8%82%22%2C%22displayValue%22%3A%22%E9%80%80%E5%B8%82%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E9%9D%9E%E9%80%80%E5%B8%82%22%2C%22displayValue%22%3A%22%E9%9D%9E%E9%80%80%E5%B8%82%22%2C%22selected%22%3Atrue%7D%5D%7D","type":"Literal","bound_global_parameter":null},{"name":"output_left_data","value":"False","type":"Literal","bound_global_parameter":null}],"input_ports":[{"name":"input_data","node_id":"-6138"}],"output_ports":[{"name":"data","node_id":"-6138"},{"name":"left_data","node_id":"-6138"}],"cacheable":true,"seq_num":5,"comment":"先过滤数据,提高运行速度","comment_collapsed":false},{"node_id":"-1569","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 df_all = m4.data.read_df()\n df_all = df_all[df_all['date']>'2016-01-01']\n df_all = df_all[(df_all['buy_cond_1']==1)&(df_all['buy_cond_2']==1)&(df_all['buy_cond_3']==1)]\n #df_all['label'] = df_all['y']\n data_1 = DataSource.write_df(df_all)\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","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":"-1569"},{"name":"input_2","node_id":"-1569"},{"name":"input_3","node_id":"-1569"}],"output_ports":[{"name":"data_1","node_id":"-1569"},{"name":"data_2","node_id":"-1569"},{"name":"data_3","node_id":"-1569"}],"cacheable":true,"seq_num":6,"comment":"按条件过滤","comment_collapsed":false},{"node_id":"-6097","module_id":"BigQuantSpace.instruments.instruments-v2","parameters":[{"name":"start_date","value":"2020-01-01","type":"Literal","bound_global_parameter":"交易日期"},{"name":"end_date","value":"2022-08-16","type":"Literal","bound_global_parameter":"交易日期"},{"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":"-6097"}],"output_ports":[{"name":"data","node_id":"-6097"}],"cacheable":true,"seq_num":7,"comment":"测试时间","comment_collapsed":false},{"node_id":"-6105","module_id":"BigQuantSpace.input_features.input_features-v1","parameters":[{"name":"features","value":"#收盘突破所有短期均线,收盘表现强势\nbuy_cond_1 = where((close_0>mean(close_0, 20))&(close_0>mean(close_0, 10))&(close_0>mean(close_0, 5)),1,0)\n#底部冲短线均线下方开始反弹\nbuy_cond_2 = where((low_0<mean(close_0, 5))&(low_0<mean(close_0, 10))&(low_0<mean(close_0, 20)), 1, 0)\n#确保当天为阳\nbuy_cond_3 = where((close_0>open_0), 1, 0)\n\n\n#预测值Y\ny = shift(close_0,-2)/shift(open_0,-1)\n\n# 过滤掉一字涨停\nwhere(shift(high_0, -1) == shift(low_0, -1), NaN, y)\n\n#股价相对位置,RSI指标\na1 = ta_rsi_14_0 \n#量价因子\na2 = (ta_ema(volume_0, 12)-ta_ema(volume_0, 26))\n#资金流因子,近几天大单相对流通市值\na3 = sum(mf_net_amount_xl_0,10)/market_cap_float_0\n#换手率因子\na4 = turn_0/mean(turn_0, 5)\n#技术指标因子(量价因子)\na5 = close_0/mean(close_0, 20)","type":"Literal","bound_global_parameter":null}],"input_ports":[{"name":"features_ds","node_id":"-6105"}],"output_ports":[{"name":"data","node_id":"-6105"}],"cacheable":true,"seq_num":8,"comment":"股票池\n预测值\n因子","comment_collapsed":false},{"node_id":"-6110","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":"50","type":"Literal","bound_global_parameter":null}],"input_ports":[{"name":"instruments","node_id":"-6110"},{"name":"features","node_id":"-6110"}],"output_ports":[{"name":"data","node_id":"-6110"}],"cacheable":true,"seq_num":9,"comment":"","comment_collapsed":true},{"node_id":"-6117","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":"True","type":"Literal","bound_global_parameter":null},{"name":"user_functions","value":"","type":"Literal","bound_global_parameter":null}],"input_ports":[{"name":"input_data","node_id":"-6117"},{"name":"features","node_id":"-6117"}],"output_ports":[{"name":"data","node_id":"-6117"}],"cacheable":true,"seq_num":10,"comment":"","comment_collapsed":true},{"node_id":"-6126","module_id":"BigQuantSpace.chinaa_stock_filter.chinaa_stock_filter-v1","parameters":[{"name":"index_constituent_cond","value":"%7B%22enumItems%22%3A%5B%7B%22value%22%3A%22%E5%85%A8%E9%83%A8%22%2C%22displayValue%22%3A%22%E5%85%A8%E9%83%A8%22%2C%22selected%22%3Atrue%7D%2C%7B%22value%22%3A%22%E4%B8%8A%E8%AF%8150%22%2C%22displayValue%22%3A%22%E4%B8%8A%E8%AF%8150%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E6%B2%AA%E6%B7%B1300%22%2C%22displayValue%22%3A%22%E6%B2%AA%E6%B7%B1300%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E4%B8%AD%E8%AF%81500%22%2C%22displayValue%22%3A%22%E4%B8%AD%E8%AF%81500%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E4%B8%AD%E8%AF%81800%22%2C%22displayValue%22%3A%22%E4%B8%AD%E8%AF%81800%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E4%B8%8A%E8%AF%81180%22%2C%22displayValue%22%3A%22%E4%B8%8A%E8%AF%81180%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E4%B8%AD%E8%AF%81100%22%2C%22displayValue%22%3A%22%E4%B8%AD%E8%AF%81100%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E6%B7%B1%E8%AF%81100%22%2C%22displayValue%22%3A%22%E6%B7%B1%E8%AF%81100%22%2C%22selected%22%3Afalse%7D%5D%7D","type":"Literal","bound_global_parameter":null},{"name":"board_cond","value":"%7B%22enumItems%22%3A%5B%7B%22value%22%3A%22%E5%85%A8%E9%83%A8%22%2C%22displayValue%22%3A%22%E5%85%A8%E9%83%A8%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E4%B8%8A%E8%AF%81%E4%B8%BB%E6%9D%BF%22%2C%22displayValue%22%3A%22%E4%B8%8A%E8%AF%81%E4%B8%BB%E6%9D%BF%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E6%B7%B1%E8%AF%81%E4%B8%BB%E6%9D%BF%22%2C%22displayValue%22%3A%22%E6%B7%B1%E8%AF%81%E4%B8%BB%E6%9D%BF%22%2C%22selected%22%3Atrue%7D%2C%7B%22value%22%3A%22%E5%88%9B%E4%B8%9A%E6%9D%BF%22%2C%22displayValue%22%3A%22%E5%88%9B%E4%B8%9A%E6%9D%BF%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E7%A7%91%E5%88%9B%E6%9D%BF%22%2C%22displayValue%22%3A%22%E7%A7%91%E5%88%9B%E6%9D%BF%22%2C%22selected%22%3Afalse%7D%5D%7D","type":"Literal","bound_global_parameter":null},{"name":"industry_cond","value":"%7B%22enumItems%22%3A%5B%7B%22value%22%3A%22%E5%85%A8%E9%83%A8%22%2C%22displayValue%22%3A%22%E5%85%A8%E9%83%A8%22%2C%22selected%22%3Atrue%7D%2C%7B%22value%22%3A%22%E4%BA%A4%E9%80%9A%E8%BF%90%E8%BE%93%22%2C%22displayValue%22%3A%22%E4%BA%A4%E9%80%9A%E8%BF%90%E8%BE%93%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E4%BC%91%E9%97%B2%E6%9C%8D%E5%8A%A1%22%2C%22displayValue%22%3A%22%E4%BC%91%E9%97%B2%E6%9C%8D%E5%8A%A1%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E4%BC%A0%E5%AA%92%2F%E4%BF%A1%E6%81%AF%E6%9C%8D%E5%8A%A1%22%2C%22displayValue%22%3A%22%E4%BC%A0%E5%AA%92%2F%E4%BF%A1%E6%81%AF%E6%9C%8D%E5%8A%A1%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E5%85%AC%E7%94%A8%E4%BA%8B%E4%B8%9A%22%2C%22displayValue%22%3A%22%E5%85%AC%E7%94%A8%E4%BA%8B%E4%B8%9A%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E5%86%9C%E6%9E%97%E7%89%A7%E6%B8%94%22%2C%22displayValue%22%3A%22%E5%86%9C%E6%9E%97%E7%89%A7%E6%B8%94%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E5%8C%96%E5%B7%A5%22%2C%22displayValue%22%3A%22%E5%8C%96%E5%B7%A5%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E5%8C%BB%E8%8D%AF%E7%94%9F%E7%89%A9%22%2C%22displayValue%22%3A%22%E5%8C%BB%E8%8D%AF%E7%94%9F%E7%89%A9%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E5%95%86%E4%B8%9A%E8%B4%B8%E6%98%93%22%2C%22displayValue%22%3A%22%E5%95%86%E4%B8%9A%E8%B4%B8%E6%98%93%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E5%9B%BD%E9%98%B2%E5%86%9B%E5%B7%A5%22%2C%22displayValue%22%3A%22%E5%9B%BD%E9%98%B2%E5%86%9B%E5%B7%A5%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E5%AE%B6%E7%94%A8%E7%94%B5%E5%99%A8%22%2C%22displayValue%22%3A%22%E5%AE%B6%E7%94%A8%E7%94%B5%E5%99%A8%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E5%BB%BA%E7%AD%91%E6%9D%90%E6%96%99%2F%E5%BB%BA%E7%AD%91%E5%BB%BA%E6%9D%90%22%2C%22displayValue%22%3A%22%E5%BB%BA%E7%AD%91%E6%9D%90%E6%96%99%2F%E5%BB%BA%E7%AD%91%E5%BB%BA%E6%9D%90%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E5%BB%BA%E7%AD%91%E8%A3%85%E9%A5%B0%22%2C%22displayValue%22%3A%22%E5%BB%BA%E7%AD%91%E8%A3%85%E9%A5%B0%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E6%88%BF%E5%9C%B0%E4%BA%A7%22%2C%22displayValue%22%3A%22%E6%88%BF%E5%9C%B0%E4%BA%A7%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E6%9C%89%E8%89%B2%E9%87%91%E5%B1%9E%22%2C%22displayValue%22%3A%22%E6%9C%89%E8%89%B2%E9%87%91%E5%B1%9E%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E6%9C%BA%E6%A2%B0%E8%AE%BE%E5%A4%87%22%2C%22displayValue%22%3A%22%E6%9C%BA%E6%A2%B0%E8%AE%BE%E5%A4%87%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E6%B1%BD%E8%BD%A6%2F%E4%BA%A4%E8%BF%90%E8%AE%BE%E5%A4%87%22%2C%22displayValue%22%3A%22%E6%B1%BD%E8%BD%A6%2F%E4%BA%A4%E8%BF%90%E8%AE%BE%E5%A4%87%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E7%94%B5%E5%AD%90%22%2C%22displayValue%22%3A%22%E7%94%B5%E5%AD%90%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E7%94%B5%E6%B0%94%E8%AE%BE%E5%A4%87%22%2C%22displayValue%22%3A%22%E7%94%B5%E6%B0%94%E8%AE%BE%E5%A4%87%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E7%BA%BA%E7%BB%87%E6%9C%8D%E8%A3%85%22%2C%22displayValue%22%3A%22%E7%BA%BA%E7%BB%87%E6%9C%8D%E8%A3%85%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E7%BB%BC%E5%90%88%22%2C%22displayValue%22%3A%22%E7%BB%BC%E5%90%88%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E8%AE%A1%E7%AE%97%E6%9C%BA%22%2C%22displayValue%22%3A%22%E8%AE%A1%E7%AE%97%E6%9C%BA%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E8%BD%BB%E5%B7%A5%E5%88%B6%E9%80%A0%22%2C%22displayValue%22%3A%22%E8%BD%BB%E5%B7%A5%E5%88%B6%E9%80%A0%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E9%80%9A%E4%BF%A1%22%2C%22displayValue%22%3A%22%E9%80%9A%E4%BF%A1%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E9%87%87%E6%8E%98%22%2C%22displayValue%22%3A%22%E9%87%87%E6%8E%98%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E9%92%A2%E9%93%81%22%2C%22displayValue%22%3A%22%E9%92%A2%E9%93%81%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E9%93%B6%E8%A1%8C%22%2C%22displayValue%22%3A%22%E9%93%B6%E8%A1%8C%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E9%9D%9E%E9%93%B6%E9%87%91%E8%9E%8D%22%2C%22displayValue%22%3A%22%E9%9D%9E%E9%93%B6%E9%87%91%E8%9E%8D%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E9%A3%9F%E5%93%81%E9%A5%AE%E6%96%99%22%2C%22displayValue%22%3A%22%E9%A3%9F%E5%93%81%E9%A5%AE%E6%96%99%22%2C%22selected%22%3Afalse%7D%5D%7D","type":"Literal","bound_global_parameter":null},{"name":"st_cond","value":"%7B%22enumItems%22%3A%5B%7B%22value%22%3A%22%E5%85%A8%E9%83%A8%22%2C%22displayValue%22%3A%22%E5%85%A8%E9%83%A8%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E6%AD%A3%E5%B8%B8%22%2C%22displayValue%22%3A%22%E6%AD%A3%E5%B8%B8%22%2C%22selected%22%3Atrue%7D%2C%7B%22value%22%3A%22ST%22%2C%22displayValue%22%3A%22ST%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22*ST%22%2C%22displayValue%22%3A%22*ST%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E6%9A%82%E5%81%9C%E4%B8%8A%E5%B8%82%22%2C%22displayValue%22%3A%22%E6%9A%82%E5%81%9C%E4%B8%8A%E5%B8%82%22%2C%22selected%22%3Afalse%7D%5D%7D","type":"Literal","bound_global_parameter":null},{"name":"delist_cond","value":"%7B%22enumItems%22%3A%5B%7B%22value%22%3A%22%E5%85%A8%E9%83%A8%22%2C%22displayValue%22%3A%22%E5%85%A8%E9%83%A8%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E9%80%80%E5%B8%82%22%2C%22displayValue%22%3A%22%E9%80%80%E5%B8%82%22%2C%22selected%22%3Afalse%7D%2C%7B%22value%22%3A%22%E9%9D%9E%E9%80%80%E5%B8%82%22%2C%22displayValue%22%3A%22%E9%9D%9E%E9%80%80%E5%B8%82%22%2C%22selected%22%3Atrue%7D%5D%7D","type":"Literal","bound_global_parameter":null},{"name":"output_left_data","value":"False","type":"Literal","bound_global_parameter":null}],"input_ports":[{"name":"input_data","node_id":"-6126"}],"output_ports":[{"name":"data","node_id":"-6126"},{"name":"left_data","node_id":"-6126"}],"cacheable":true,"seq_num":11,"comment":"先过滤数据,提高运行速度","comment_collapsed":false},{"node_id":"-6139","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 df_all = m10.data.read_df()\n df_all = df_all[df_all['date']>'2020-01-01']\n df_all = df_all[(df_all['buy_cond_1']==1)&(df_all['buy_cond_2']==1)&(df_all['buy_cond_3']==1)] \n\n data_1 = DataSource.write_df(df_all)\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","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":"-6139"},{"name":"input_2","node_id":"-6139"},{"name":"input_3","node_id":"-6139"}],"output_ports":[{"name":"data_1","node_id":"-6139"},{"name":"data_2","node_id":"-6139"},{"name":"data_3","node_id":"-6139"}],"cacheable":true,"seq_num":12,"comment":"按条件过滤","comment_collapsed":false},{"node_id":"-662","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 df = pd.DataFrame({'data': [1, 2, 3]})\n data_1 = DataSource.write_df(df)\n data_2 = DataSource.write_pickle(df)\n return Outputs(data_1=data_1, data_2=data_2, 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":"-662"},{"name":"input_2","node_id":"-662"},{"name":"input_3","node_id":"-662"}],"output_ports":[{"name":"data_1","node_id":"-662"},{"name":"data_2","node_id":"-662"},{"name":"data_3","node_id":"-662"}],"cacheable":true,"seq_num":13,"comment":"无任何功能","comment_collapsed":false},{"node_id":"-281","module_id":"BigQuantSpace.trade.trade-v4","parameters":[{"name":"start_date","value":"","type":"Literal","bound_global_parameter":null},{"name":"end_date","value":"","type":"Literal","bound_global_parameter":null},{"name":"initialize","value":"# 回测引擎:初始化函数,只执行一次\ndef bigquant_run(context):\n context.set_commission(PerOrder(buy_cost=0.0005, sell_cost=0.0012, min_cost=5))\n","type":"Literal","bound_global_parameter":null},{"name":"handle_data","value":"# 回测引擎:每日数据处理函数,每天执行一次\ndef bigquant_run(context, data):\n # 获取当前持仓\n positions = {e.symbol: p.amount * p.last_sale_price for e, p in context.portfolio.positions.items()}\n \n # 按日期过滤得到今日的预测数据\n df = context.df\n today = data.current_dt.strftime('%Y-%m-%d')\n today_data = df[df['date']==today]\n \n #选择预测值最高的股票,持仓的股票卖出\n df = today_data.sort_values(['pred'],ascending=False)\n df = df[:1]\n\n buy_instruments = df['instrument'].tolist()\n sell_instruments = [instrument.symbol for instrument in context.portfolio.positions.keys()]\n \n #半仓买入\n cash_for_buy = min(context.portfolio.cash,0.5*context.portfolio.portfolio_value) \n \n for instrument in sell_instruments:\n context.order_target(context.symbol(instrument), 0)\n for instrument in buy_instruments:\n context.order_value(context.symbol(instrument), cash_for_buy)\n","type":"Literal","bound_global_parameter":null},{"name":"prepare","value":"# 回测引擎:准备数据,只执行一次\ndef bigquant_run(context):\n #模型训练,预测功能也放置在自定义模块\n #-----------------------------------------------------------------------训练---------------------------------------------------------------------------------\n #训练数据,选用五个因子的多因子模型\n train_data = m6.data_1.read_df()\n train_data = train_data[(train_data['date']>'2016-01-01')&(train_data['date']<'2020-01-01')]\n train_data_temp = train_data[['a1', 'a2', 'a3', 'a4', 'a5','y','date','instrument']]\n train_data_temp = train_data_temp.dropna(axis = 0) \n\n x = train_data_temp[['a1', 'a2', 'a3', 'a4', 'a5']]\n y = train_data_temp[['y']]\n #用随机森林模型训练\n ##--------------------model---------------------\n from sklearn.ensemble import RandomForestRegressor\n model = RandomForestRegressor(\n n_estimators=10,#弱分类树个数\n bootstrap = False,#不放回抽样\n\n max_features = None,#考虑所有特征\n max_depth = 5,#最大深度\n min_samples_leaf = 2000#最小样本数\n )\n model.fit(x,y)\n ##--------------------model---------------------\n #------------------------------------------------------------------------训练----------------------------------------------------------------------------------\n \n #---------------------------------------------------------------------------测试------------------------------------------------------------------------------------\n #测试数据\n test_data = m12.data_1.read_df()\n test_data = test_data[(test_data['date']>'2020-01-01')]\n \n test_data_temp = test_data[['a1', 'a2', 'a3', 'a4', 'a5','date','instrument']]\n test_data_temp = test_data_temp.dropna(axis = 0)\n x = test_data_temp[['a1', 'a2', 'a3', 'a4', 'a5']]\n #model预测\n y_pred = model.predict(x)\n \n #整理预测后的数据,预测值要大于1,0.002考虑费用\n df_result = test_data_temp[['date','instrument']]\n df_result['pred'] = y_pred\n df_result = df_result[df_result['pred']>1.002]\n #--------------------------------------------------------------------------测试------------------------------------------------------------------------------------\n\n context.df = df_result \n","type":"Literal","bound_global_parameter":null},{"name":"before_trading_start","value":"# 回测引擎:每个单位时间开始前调用一次,即每日开盘前调用一次。\ndef bigquant_run(context, data):\n pass\n","type":"Literal","bound_global_parameter":null},{"name":"volume_limit","value":0.025,"type":"Literal","bound_global_parameter":null},{"name":"order_price_field_buy","value":"open","type":"Literal","bound_global_parameter":null},{"name":"order_price_field_sell","value":"close","type":"Literal","bound_global_parameter":null},{"name":"capital_base","value":"100000","type":"Literal","bound_global_parameter":null},{"name":"auto_cancel_non_tradable_orders","value":"True","type":"Literal","bound_global_parameter":null},{"name":"data_frequency","value":"daily","type":"Literal","bound_global_parameter":null},{"name":"price_type","value":"真实价格","type":"Literal","bound_global_parameter":null},{"name":"product_type","value":"股票","type":"Literal","bound_global_parameter":null},{"name":"plot_charts","value":"True","type":"Literal","bound_global_parameter":null},{"name":"backtest_only","value":"False","type":"Literal","bound_global_parameter":null},{"name":"benchmark","value":"000300.HIX","type":"Literal","bound_global_parameter":null}],"input_ports":[{"name":"instruments","node_id":"-281"},{"name":"options_data","node_id":"-281"},{"name":"history_ds","node_id":"-281"},{"name":"benchmark_ds","node_id":"-281"},{"name":"trading_calendar","node_id":"-281"}],"output_ports":[{"name":"raw_perf","node_id":"-281"}],"cacheable":false,"seq_num":14,"comment":"建模,回测","comment_collapsed":false}],"node_layout":"<node_postions><node_position Node='-20' Position='789,331,200,200'/><node_position Node='-38' Position='1202,372.7884826660156,200,200'/><node_position Node='-50' Position='799,486,200,200'/><node_position Node='-66' Position='792,647,200,200'/><node_position Node='-6138' Position='795,565,200,200'/><node_position Node='-1569' Position='969,735,200,200'/><node_position Node='-6097' Position='1562,346,200,200'/><node_position Node='-6105' Position='2004,418,200,200'/><node_position Node='-6110' Position='1569,447,200,200'/><node_position Node='-6117' Position='1566,629,200,200'/><node_position Node='-6126' Position='1567,532,200,200'/><node_position Node='-6139' Position='1350,733,200,200'/><node_position Node='-662' Position='1161,895,200,200'/><node_position Node='-281' Position='1387,1123,200,200'/></node_postions>"},"nodes_readonly":false,"studio_version":"v2"}
[2022-09-17 00:43:55.336150] INFO: moduleinvoker: instruments.v2 开始运行..
[2022-09-17 00:43:55.354087] INFO: moduleinvoker: 命中缓存
[2022-09-17 00:43:55.355950] INFO: moduleinvoker: instruments.v2 运行完成[0.019819s].
[2022-09-17 00:43:55.364067] INFO: moduleinvoker: input_features.v1 开始运行..
[2022-09-17 00:43:55.404786] INFO: moduleinvoker: input_features.v1 运行完成[0.040706s].
[2022-09-17 00:43:55.427818] INFO: moduleinvoker: general_feature_extractor.v7 开始运行..
[2022-09-17 00:43:55.445625] INFO: moduleinvoker: 命中缓存
[2022-09-17 00:43:55.449097] INFO: moduleinvoker: general_feature_extractor.v7 运行完成[0.021284s].
[2022-09-17 00:43:55.474911] INFO: moduleinvoker: chinaa_stock_filter.v1 开始运行..
[2022-09-17 00:43:55.489105] INFO: moduleinvoker: 命中缓存
[2022-09-17 00:43:55.491487] INFO: moduleinvoker: chinaa_stock_filter.v1 运行完成[0.016578s].
[2022-09-17 00:43:55.507609] INFO: moduleinvoker: derived_feature_extractor.v3 开始运行..
[2022-09-17 00:44:00.293390] INFO: derived_feature_extractor: 提取完成 buy_cond_1 = where((close_0>mean(close_0, 20))&(close_0>mean(close_0, 10))&(close_0>mean(close_0, 5)),1,0), 2.299s
[2022-09-17 00:44:02.502300] INFO: derived_feature_extractor: 提取完成 buy_cond_2 = where((low_0[2022-09-17 00:44:02.508384] INFO: derived_feature_extractor: 提取完成 buy_cond_3 = where((close_0>open_0), 1, 0), 0.004s
[2022-09-17 00:44:02.874753] INFO: derived_feature_extractor: 提取完成 y = shift(close_0,-2)/shift(open_0,-1), 0.365s
[2022-09-17 00:44:03.213000] INFO: derived_feature_extractor: 提取完成 where(shift(high_0, -1) == shift(low_0, -1), NaN, y), 0.337s
[2022-09-17 00:44:03.216662] INFO: derived_feature_extractor: 提取完成 a1 = ta_rsi_14_0, 0.002s
[2022-09-17 00:44:07.234698] INFO: derived_feature_extractor: 提取完成 a2 = (ta_ema(volume_0, 12)-ta_ema(volume_0, 26)), 4.017s
[2022-09-17 00:44:07.978205] INFO: derived_feature_extractor: 提取完成 a3 = sum(mf_net_amount_xl_0,10)/market_cap_float_0, 0.742s
[2022-09-17 00:44:08.716234] INFO: derived_feature_extractor: 提取完成 a4 = turn_0/mean(turn_0, 5), 0.736s
[2022-09-17 00:44:09.442628] INFO: derived_feature_extractor: 提取完成 a5 = close_0/mean(close_0, 20), 0.725s
[2022-09-17 00:44:09.731956] INFO: derived_feature_extractor: /y_2015, 38199
[2022-09-17 00:44:10.175959] INFO: derived_feature_extractor: /y_2016, 270989
[2022-09-17 00:44:10.802658] INFO: derived_feature_extractor: /y_2017, 292568
[2022-09-17 00:44:11.435119] INFO: derived_feature_extractor: /y_2018, 308078
[2022-09-17 00:44:12.068629] INFO: derived_feature_extractor: /y_2019, 323494
[2022-09-17 00:44:12.417148] INFO: moduleinvoker: derived_feature_extractor.v3 运行完成[16.909531s].
[2022-09-17 00:44:12.432985] INFO: moduleinvoker: cached.v3 开始运行..
[2022-09-17 00:44:13.605393] INFO: moduleinvoker: cached.v3 运行完成[1.172412s].
[2022-09-17 00:44:14.036639] INFO: moduleinvoker: instruments.v2 开始运行..
[2022-09-17 00:44:14.048326] INFO: moduleinvoker: 命中缓存
[2022-09-17 00:44:14.050383] INFO: moduleinvoker: instruments.v2 运行完成[0.013755s].
[2022-09-17 00:44:14.056240] INFO: moduleinvoker: input_features.v1 开始运行..
[2022-09-17 00:44:14.063441] INFO: moduleinvoker: 命中缓存
[2022-09-17 00:44:14.065266] INFO: moduleinvoker: input_features.v1 运行完成[0.009041s].
[2022-09-17 00:44:14.095543] INFO: moduleinvoker: general_feature_extractor.v7 开始运行..
[2022-09-17 00:44:20.771528] INFO: 基础特征抽取: 年份 2019, 特征行数=133862
[2022-09-17 00:44:29.261380] INFO: 基础特征抽取: 年份 2020, 特征行数=945961
[2022-09-17 00:44:36.834478] INFO: 基础特征抽取: 年份 2021, 特征行数=1061527
[2022-09-17 00:44:42.360621] INFO: 基础特征抽取: 年份 2022, 特征行数=714682
[2022-09-17 00:44:42.506627] INFO: 基础特征抽取: 总行数: 2856032
[2022-09-17 00:44:42.514095] INFO: moduleinvoker: general_feature_extractor.v7 运行完成[28.418575s].
[2022-09-17 00:44:42.535315] INFO: moduleinvoker: chinaa_stock_filter.v1 开始运行..
[2022-09-17 00:44:43.549007] INFO: A股股票过滤: 过滤 /y_2019, 47663/0/133862
[2022-09-17 00:44:48.268367] INFO: A股股票过滤: 过滤 /y_2020, 320025/0/945961
[2022-09-17 00:44:53.460273] INFO: A股股票过滤: 过滤 /y_2021, 333350/0/1061527
[2022-09-17 00:44:57.147987] INFO: A股股票过滤: 过滤 /y_2022, 209965/0/714682
[2022-09-17 00:44:57.153352] INFO: A股股票过滤: 过滤完成, 911003 + 0
[2022-09-17 00:44:57.188238] INFO: moduleinvoker: chinaa_stock_filter.v1 运行完成[14.652922s].
[2022-09-17 00:44:57.196914] INFO: moduleinvoker: derived_feature_extractor.v3 开始运行..
[2022-09-17 00:45:00.623625] INFO: derived_feature_extractor: 提取完成 buy_cond_1 = where((close_0>mean(close_0, 20))&(close_0>mean(close_0, 10))&(close_0>mean(close_0, 5)),1,0), 1.795s
[2022-09-17 00:45:02.316919] INFO: derived_feature_extractor: 提取完成 buy_cond_2 = where((low_0[2022-09-17 00:45:02.321585] INFO: derived_feature_extractor: 提取完成 buy_cond_3 = where((close_0>open_0), 1, 0), 0.003s
[2022-09-17 00:45:02.624873] INFO: derived_feature_extractor: 提取完成 y = shift(close_0,-2)/shift(open_0,-1), 0.302s
[2022-09-17 00:45:02.912175] INFO: derived_feature_extractor: 提取完成 where(shift(high_0, -1) == shift(low_0, -1), NaN, y), 0.285s
[2022-09-17 00:45:02.916522] INFO: derived_feature_extractor: 提取完成 a1 = ta_rsi_14_0, 0.002s
[2022-09-17 00:45:06.810362] INFO: derived_feature_extractor: 提取完成 a2 = (ta_ema(volume_0, 12)-ta_ema(volume_0, 26)), 3.892s
[2022-09-17 00:45:07.432014] INFO: derived_feature_extractor: 提取完成 a3 = sum(mf_net_amount_xl_0,10)/market_cap_float_0, 0.620s
[2022-09-17 00:45:08.030647] INFO: derived_feature_extractor: 提取完成 a4 = turn_0/mean(turn_0, 5), 0.597s
[2022-09-17 00:45:08.626764] INFO: derived_feature_extractor: 提取完成 a5 = close_0/mean(close_0, 20), 0.594s
[2022-09-17 00:45:08.837870] INFO: derived_feature_extractor: /y_2019, 47663
[2022-09-17 00:45:09.425888] INFO: derived_feature_extractor: /y_2020, 320025
[2022-09-17 00:45:10.538496] INFO: derived_feature_extractor: /y_2021, 333350
[2022-09-17 00:45:11.035476] INFO: derived_feature_extractor: /y_2022, 209965
[2022-09-17 00:45:11.279335] INFO: moduleinvoker: derived_feature_extractor.v3 运行完成[14.0824s].
[2022-09-17 00:45:11.306928] INFO: moduleinvoker: cached.v3 开始运行..
[2022-09-17 00:45:12.099611] INFO: moduleinvoker: cached.v3 运行完成[0.792684s].
[2022-09-17 00:45:12.113225] INFO: moduleinvoker: cached.v3 开始运行..
[2022-09-17 00:45:12.187563] INFO: moduleinvoker: cached.v3 运行完成[0.074345s].
[2022-09-17 00:45:16.061046] INFO: moduleinvoker: backtest.v8 开始运行..
[2022-09-17 00:45:16.067148] INFO: backtest: biglearning backtest:V8.6.3
[2022-09-17 00:45:18.018423] INFO: backtest: product_type:stock by specified
[2022-09-17 00:45:18.360733] INFO: moduleinvoker: cached.v2 开始运行..
[2022-09-17 00:45:39.202748] INFO: backtest: 读取股票行情完成:4050916
[2022-09-17 00:45:42.691513] INFO: moduleinvoker: cached.v2 运行完成[24.330785s].
[2022-09-17 00:45:46.804697] INFO: backtest: algo history_data=DataSource(c1763b1b67d745dc8378a7077307f102T)
[2022-09-17 00:45:46.806561] INFO: algo: TradingAlgorithm V1.8.8
[2022-09-17 00:45:48.467341] INFO: algo: trading transform...
[2022-09-17 00:45:50.250345] INFO: algo: handle_splits get splits [dt:2020-07-03 00:00:00+00:00] [asset:Equity(1701 [002973.SZA]), ratio:0.9987605810165405]
[2022-09-17 00:45:50.855161] INFO: algo: handle_splits get splits [dt:2020-10-19 00:00:00+00:00] [asset:Equity(4431 [002088.SZA]), ratio:0.9682971239089966]
[2022-09-17 00:45:52.236317] INFO: algo: handle_splits get splits [dt:2021-07-05 00:00:00+00:00] [asset:Equity(574 [000671.SZA]), ratio:0.9278937578201294]
[2022-09-17 00:45:52.238011] INFO: Position: position stock handle split[sid:574, orig_amount:16400, new_amount:17674.0, orig_cost:5.290000539518855, new_cost:4.9086, ratio:0.9278937578201294, last_sale_price:4.889999866485596]
[2022-09-17 00:45:52.239356] INFO: Position: after split: PositionStock(asset:Equity(574 [000671.SZA]), amount:17674.0, cost_basis:4.9086, last_sale_price:5.269999980926514)
[2022-09-17 00:45:52.240989] INFO: Position: returning cash: 2.1382
[2022-09-17 00:45:54.031696] INFO: algo: handle_splits get splits [dt:2022-06-16 00:00:00+00:00] [asset:Equity(1394 [000069.SZA]), ratio:0.982332170009613]
[2022-09-17 00:45:54.374831] INFO: Performance: Simulated 636 trading days out of 636.
[2022-09-17 00:45:54.376365] INFO: Performance: first open: 2020-01-02 09:30:00+00:00
[2022-09-17 00:45:54.377516] INFO: Performance: last close: 2022-08-16 15:00:00+00:00
[2022-09-17 00:46:00.579695] INFO: moduleinvoker: backtest.v8 运行完成[44.518652s].
[2022-09-17 00:46:00.581477] INFO: moduleinvoker: trade.v4 运行完成[48.37322s].
- 收益率276.78%
- 年化收益率69.15%
- 基准收益率1.98%
- 阿尔法0.76
- 贝塔0.64
- 夏普比率1.53
- 胜率0.51
- 盈亏比1.41
- 收益波动率36.75%
- 信息比率0.1
- 最大回撤25.01%
bigcharts-data-start/{"__type":"tabs","__id":"bigchart-799cdee88aa24e259999adbd784ff144"}/bigcharts-data-end