{"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":"2020-01-01","type":"Literal","bound_global_parameter":null},{"name":"end_date","value":"2020-12-31","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":"sharpe_ratio_20 = sharpe_ratio(close_0, 20)","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":90,"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 sharpe_ratio(df, x, N):\n import empyrical\n _df = pd.DataFrame({\"instrument\": df[\"instrument\"], \"x\": x}, index=df.index)\n _g = _df.groupby(\"instrument\", as_index=True, group_keys=False)\n _r = _g[\"x\"].rolling(abs(N), 1)\n def _gen_sharpe_ratio(s):\n return empyrical.sharpe_ratio(s, risk_free=0)\n \n _s = _r.apply(_gen_sharpe_ratio).droplevel(\"instrument\")\n return _s.loc[df.index]\n\nbigquant_run = {\n \"sharpe_ratio\": sharpe_ratio\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='211,61,200,200'/><node_position Node='287d2cb0-f53c-4101-bdf8-104b137c8601-24' Position='570,61,200,200'/><node_position Node='-215' Position='381,188,200,200'/><node_position Node='-222' Position='382,278,200,200'/></node_postions>"},"nodes_readonly":false,"studio_version":"v2"}
[2022-10-18 13:34:36.314359] INFO: moduleinvoker: instruments.v2 开始运行..
[2022-10-18 13:34:36.327101] INFO: moduleinvoker: 命中缓存
[2022-10-18 13:34:36.329771] INFO: moduleinvoker: instruments.v2 运行完成[0.01542s].
[2022-10-18 13:34:36.336651] INFO: moduleinvoker: input_features.v1 开始运行..
[2022-10-18 13:34:36.349551] INFO: moduleinvoker: 命中缓存
[2022-10-18 13:34:36.351879] INFO: moduleinvoker: input_features.v1 运行完成[0.015247s].
[2022-10-18 13:34:36.379820] INFO: moduleinvoker: general_feature_extractor.v7 开始运行..
[2022-10-18 13:34:36.390735] INFO: moduleinvoker: 命中缓存
[2022-10-18 13:34:36.393643] INFO: moduleinvoker: general_feature_extractor.v7 运行完成[0.01385s].
[2022-10-18 13:34:36.411933] INFO: moduleinvoker: derived_feature_extractor.v3 开始运行..
[2022-10-18 13:36:18.374603] INFO: derived_feature_extractor: 提取完成 sharpe_ratio_20 = sharpe_ratio(close_0, 20), 100.116s
[2022-10-18 13:36:18.769624] INFO: derived_feature_extractor: /y_2019, 225729
[2022-10-18 13:36:20.215193] INFO: derived_feature_extractor: /y_2020, 945961
[2022-10-18 13:36:20.467743] INFO: moduleinvoker: derived_feature_extractor.v3 运行完成[104.055826s].