{"description":"实验创建于2018/6/27","graph":{"edges":[{"to_node_id":"-353:instruments","from_node_id":"-51:data"},{"to_node_id":"-370:instruments","from_node_id":"-51:data"},{"to_node_id":"-353:features","from_node_id":"-59:data"},{"to_node_id":"-360:features","from_node_id":"-59:data"},{"to_node_id":"-1372:input_1","from_node_id":"-353:data"},{"to_node_id":"-865:input_data","from_node_id":"-360:data"},{"to_node_id":"-531:input_data","from_node_id":"-390:sorted_data"},{"to_node_id":"-370:options_data","from_node_id":"-531:data"},{"to_node_id":"-93:input_data","from_node_id":"-865:data"},{"to_node_id":"-390:input_ds","from_node_id":"-93:data"},{"to_node_id":"-130:instruments","from_node_id":"-226:data"},{"to_node_id":"-443:features","from_node_id":"-234:data"},{"to_node_id":"-130:features","from_node_id":"-234:data"},{"to_node_id":"-2883:input_1","from_node_id":"-443:data"},{"to_node_id":"-360:input_data","from_node_id":"-1372:data"},{"to_node_id":"-138:instruments","from_node_id":"-2870:data"},{"to_node_id":"-138:features","from_node_id":"-2878:data"},{"to_node_id":"-1372:input_2","from_node_id":"-2883:data"},{"to_node_id":"-443:input_data","from_node_id":"-130:data"},{"to_node_id":"-2883:input_2","from_node_id":"-138:data"}],"nodes":[{"node_id":"-51","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-12-31","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":"-51"}],"output_ports":[{"name":"data","node_id":"-51"}],"cacheable":true,"seq_num":1,"comment":"","comment_collapsed":true},{"node_id":"-59","module_id":"BigQuantSpace.input_features.input_features-v1","parameters":[{"name":"features","value":"#MACD空中加油\nmy=where((sum(ta_macd_macdhist_12_26_9_0>0,5)==5)&(sum(ta_macd_macd_12_26_9_0>0,5)==5)&(ta_macd(close_0,'golden_cross', 12, 26, 9))&(sum(ta_macd(close_0,'death_cross', 12, 26, 9),5)==1),1,0)\navg_turn_20\nbuy_condition=where(my==1,1,0)\nsell_condition=where(max(close_0/max(high_1,high_2)<=0.95, ta_macd(close_0,'death_cross', 12, 26, 9)),1,0)","type":"Literal","bound_global_parameter":null}],"input_ports":[{"name":"features_ds","node_id":"-59"}],"output_ports":[{"name":"data","node_id":"-59"}],"cacheable":true,"seq_num":2,"comment":"","comment_collapsed":true},{"node_id":"-353","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":"60","type":"Literal","bound_global_parameter":null}],"input_ports":[{"name":"instruments","node_id":"-353"},{"name":"features","node_id":"-353"}],"output_ports":[{"name":"data","node_id":"-353"}],"cacheable":false,"seq_num":5,"comment":"","comment_collapsed":true},{"node_id":"-360","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":"-360"},{"name":"features","node_id":"-360"}],"output_ports":[{"name":"data","node_id":"-360"}],"cacheable":true,"seq_num":7,"comment":"","comment_collapsed":true},{"node_id":"-370","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\n # 系统已经设置了默认的交易手续费和滑点,要修改手续费可使用如下函数\n context.set_commission(PerOrder(buy_cost=0.0003, sell_cost=0.0013, min_cost=5))\n #context.set_commission(PerOrder(buy_cost=0.00001, sell_cost=0.0001, min_cost=1))\n \n # 设置买入的股票数量,这里买入预测股票列表排名靠前的5只\n context.stock_count = 2\n # 每只的股票的权重,如下的权重分配会使得靠前的股票分配多一点的资金,[0.339160, 0.213986, 0.169580, ..]\n #context.stock_weights = T.norm([1 / math.log(i + 2) for i in range(0, stock_count)])\n # 每只股票的权重平均分配\n context.stock_weights = 1/context.stock_count\n # 设置每只股票占用的最大资金比例\n context.max_cash_per_instrument = 0.5\n context.options['hold_days'] = 1\n\n","type":"Literal","bound_global_parameter":null},{"name":"handle_data","value":"# 回测引擎:每日数据处理函数,每天执行一次\ndef bigquant_run(context, data):\n today = data.current_dt.strftime('%Y-%m-%d')\n equities = {e.symbol: p for e, p in context.portfolio.positions.items() if p.amount>0}\n stock_now = len(equities); #获取当前持仓股票数量\n stock_count = context.stock_count\n \n # 按日期过滤得到今日的预测数据\n # 加载预测数据\n df = context.options['data'].read_df()\n df_today = df[df.date == data.current_dt.strftime('%Y-%m-%d')]\n df_today.set_index('instrument')\n \n \n now_stock = []\n sell_stock = []\n \n try:\n buy_list = context.daily_buy_stock[today]\n except:\n buy_list = []\n\n \n # 1. 资金分配\n #is_staging = context.trading_day_index < context.options['hold_days'] # 是否在建仓期间(前 hold_days 天) \n #stock_cash = context.portfolio.portfolio_value/stock_count\n #cash_avg = context.portfolio.portfolio_value\n #cash_for_buy = min(context.portfolio.cash, stock_cash)\n #cash_for_sell = cash_avg - (context.portfolio.cash - cash_for_buy)\n \n positions = {e.symbol: p.amount * p.last_sale_price\n for e, p in context.perf_tracker.position_tracker.positions.items()}\n \n \n #if not is_staging :\n if 1==1 : \n if len(equities) > 0:\n for i in equities.keys():\n last_sale_date = equities[i].last_sale_date\t# 上次交易日期\n delta_days = data.current_dt - last_sale_date \n hold_days = delta_days.days # 持仓天数\n if hold_days >= context.options['hold_days'] and i not in buy_list :\n print('日期:',today,'卖出2:',i)\n context.order_target(context.symbol(i), 0)\n sell_stock.append(i)\n stock_now = stock_now -1\n #print('日期:', today, '股票:', i, ' 卖出')\n \n# 3. 生成买入订单\n buy_num = stock_count - stock_now\n #if is_staging :\n # buy_num = 1\n if len(buy_list)>0:\n print('日期:', today, '选出股票数量:', len(buy_list))\n if buy_num>0 and len(buy_list)>0 :\n # 不再买入已经轮仓卖出和移动止损的股票,以防止出现空头持仓\n buy_instruments = [i for i in buy_list if i not in now_stock][:buy_num]\n cash_for_buy = context.portfolio.cash/len(buy_instruments)\n for i, instrument in enumerate(buy_instruments):\n current_price = data.current(context.symbol(instrument), 'price')\n \n if cash_for_buy>0 and data.can_trade(context.symbol(instrument)): \n amount = math.floor(cash_for_buy / current_price / 100) * 100\n context.order(context.symbol(instrument), amount)\n print('日期:',today,'买入:',instrument)\n else :\n print('日期:',today,'无资金或不能交易未买入:',instrument)","type":"Literal","bound_global_parameter":null},{"name":"prepare","value":"# 回测引擎:准备数据,只执行一次\ndef bigquant_run(context):\n # 加载预测数据\n df = context.options['data'].read_df()\n # 函数:求满足开仓条件的股票列表\n def open_pos_con(df):\n return list(df[df['buy_condition']>0].instrument)\n # 函数:求满足平仓条件的股票列表\n def close_pos_con(df):\n return list(df[df['sell_condition']>0].instrument)\n \n # 每日卖出股票的数据框\n context.daily_sell_stock= df.groupby('date').apply(close_pos_con) \n # 每日买入股票的数据框\n context.daily_buy_stock= df.groupby('date').apply(open_pos_con) \n\n\n \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":"","type":"Literal","bound_global_parameter":null}],"input_ports":[{"name":"instruments","node_id":"-370"},{"name":"options_data","node_id":"-370"},{"name":"history_ds","node_id":"-370"},{"name":"benchmark_ds","node_id":"-370"},{"name":"trading_calendar","node_id":"-370"}],"output_ports":[{"name":"raw_perf","node_id":"-370"}],"cacheable":false,"seq_num":8,"comment":"","comment_collapsed":true},{"node_id":"-390","module_id":"BigQuantSpace.sort.sort-v4","parameters":[{"name":"sort_by","value":"avg_turn_20","type":"Literal","bound_global_parameter":null},{"name":"group_by","value":"date","type":"Literal","bound_global_parameter":null},{"name":"keep_columns","value":"--","type":"Literal","bound_global_parameter":null},{"name":"ascending","value":"False","type":"Literal","bound_global_parameter":null}],"input_ports":[{"name":"input_ds","node_id":"-390"},{"name":"sort_by_ds","node_id":"-390"}],"output_ports":[{"name":"sorted_data","node_id":"-390"}],"cacheable":true,"seq_num":9,"comment":"","comment_collapsed":true},{"node_id":"-531","module_id":"BigQuantSpace.filter.filter-v3","parameters":[{"name":"expr","value":"my==1","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":"-531"}],"output_ports":[{"name":"data","node_id":"-531"},{"name":"left_data","node_id":"-531"}],"cacheable":true,"seq_num":3,"comment":"","comment_collapsed":true},{"node_id":"-865","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%3Atrue%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":"-865"}],"output_ports":[{"name":"data","node_id":"-865"},{"name":"left_data","node_id":"-865"}],"cacheable":true,"seq_num":6,"comment":"","comment_collapsed":true},{"node_id":"-93","module_id":"BigQuantSpace.dropnan.dropnan-v2","parameters":[],"input_ports":[{"name":"input_data","node_id":"-93"},{"name":"features","node_id":"-93"}],"output_ports":[{"name":"data","node_id":"-93"}],"cacheable":true,"seq_num":11,"comment":"","comment_collapsed":true},{"node_id":"-226","module_id":"BigQuantSpace.instruments.instruments-v2","parameters":[{"name":"start_date","value":"2015-01-01","type":"Literal","bound_global_parameter":null},{"name":"end_date","value":"2023-12-31","type":"Literal","bound_global_parameter":null},{"name":"market","value":"CN_STOCK_A","type":"Literal","bound_global_parameter":null},{"name":"instrument_list","value":"000002.HIX","type":"Literal","bound_global_parameter":null},{"name":"max_count","value":0,"type":"Literal","bound_global_parameter":null}],"input_ports":[{"name":"rolling_conf","node_id":"-226"}],"output_ports":[{"name":"data","node_id":"-226"}],"cacheable":true,"seq_num":10,"comment":"","comment_collapsed":true},{"node_id":"-234","module_id":"BigQuantSpace.input_features.input_features-v1","parameters":[{"name":"features","value":"zs_return_0=close/shift(close,1)\nzs_return_1=shift(zs_return_0,1)\nzs_open=open/shift(close,1)","type":"Literal","bound_global_parameter":null}],"input_ports":[{"name":"features_ds","node_id":"-234"}],"output_ports":[{"name":"data","node_id":"-234"}],"cacheable":true,"seq_num":12,"comment":"","comment_collapsed":true},{"node_id":"-443","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":"-443"},{"name":"features","node_id":"-443"}],"output_ports":[{"name":"data","node_id":"-443"}],"cacheable":true,"seq_num":13,"comment":"","comment_collapsed":true},{"node_id":"-1372","module_id":"BigQuantSpace.data_join.data_join-v3","parameters":[{"name":"on","value":"date","type":"Literal","bound_global_parameter":null},{"name":"how","value":"left","type":"Literal","bound_global_parameter":null},{"name":"sort","value":"False","type":"Literal","bound_global_parameter":null}],"input_ports":[{"name":"input_1","node_id":"-1372"},{"name":"input_2","node_id":"-1372"}],"output_ports":[{"name":"data","node_id":"-1372"}],"cacheable":true,"seq_num":14,"comment":"","comment_collapsed":true},{"node_id":"-2870","module_id":"BigQuantSpace.instruments.instruments-v2","parameters":[{"name":"start_date","value":"2015-01-01","type":"Literal","bound_global_parameter":null},{"name":"end_date","value":"2023-12-31","type":"Literal","bound_global_parameter":null},{"name":"market","value":"CN_STOCK_A","type":"Literal","bound_global_parameter":null},{"name":"instrument_list","value":"000002.HIX","type":"Literal","bound_global_parameter":null},{"name":"max_count","value":0,"type":"Literal","bound_global_parameter":null}],"input_ports":[{"name":"rolling_conf","node_id":"-2870"}],"output_ports":[{"name":"data","node_id":"-2870"}],"cacheable":true,"seq_num":18,"comment":"","comment_collapsed":true},{"node_id":"-2878","module_id":"BigQuantSpace.input_features.input_features-v1","parameters":[{"name":"features","value":"\n# #号开始的表示注释,注释需单独一行\n# 多个特征,每行一个,可以包含基础特征和衍生特征,特征须为本平台特征\nclose","type":"Literal","bound_global_parameter":null}],"input_ports":[{"name":"features_ds","node_id":"-2878"}],"output_ports":[{"name":"data","node_id":"-2878"}],"cacheable":true,"seq_num":19,"comment":"","comment_collapsed":true},{"node_id":"-2883","module_id":"BigQuantSpace.data_join.data_join-v3","parameters":[{"name":"on","value":"date","type":"Literal","bound_global_parameter":null},{"name":"how","value":"left","type":"Literal","bound_global_parameter":null},{"name":"sort","value":"False","type":"Literal","bound_global_parameter":null}],"input_ports":[{"name":"input_1","node_id":"-2883"},{"name":"input_2","node_id":"-2883"}],"output_ports":[{"name":"data","node_id":"-2883"}],"cacheable":true,"seq_num":20,"comment":"","comment_collapsed":true},{"node_id":"-130","module_id":"BigQuantSpace.use_datasource.use_datasource-v2","parameters":[{"name":"datasource_id","value":"bar1d_index_CN_STOCK_A","type":"Literal","bound_global_parameter":null},{"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":"-130"},{"name":"features","node_id":"-130"}],"output_ports":[{"name":"data","node_id":"-130"}],"cacheable":true,"seq_num":15,"comment":"","comment_collapsed":true},{"node_id":"-138","module_id":"BigQuantSpace.use_datasource.use_datasource-v2","parameters":[{"name":"datasource_id","value":"bar1d_index_CN_STOCK_A","type":"Literal","bound_global_parameter":null},{"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":"-138"},{"name":"features","node_id":"-138"}],"output_ports":[{"name":"data","node_id":"-138"}],"cacheable":true,"seq_num":16,"comment":"","comment_collapsed":true}],"node_layout":"<node_postions><node_position Node='-51' Position='132,6,200,200'/><node_position Node='-59' Position='477,83,200,200'/><node_position Node='-353' Position='257,236,200,200'/><node_position Node='-360' Position='239,338,200,200'/><node_position Node='-370' Position='478,838,200,200'/><node_position Node='-390' Position='288,618,200,200'/><node_position Node='-531' Position='301,706,200,200'/><node_position Node='-865' Position='261,433,200,200'/><node_position Node='-93' Position='269,519,200,200'/><node_position Node='-226' Position='664,-179,200,200'/><node_position Node='-234' Position='1055,-181,200,200'/><node_position Node='-443' Position='806,119,200,200'/><node_position Node='-1372' Position='767,307,200,200'/><node_position Node='-2870' Position='1137,-23,200,200'/><node_position Node='-2878' Position='1528,-25,200,200'/><node_position Node='-2883' Position='1032,212,200,200'/><node_position Node='-130' Position='757,-33,200,200'/><node_position Node='-138' Position='1252,92,200,200'/></node_postions>"},"nodes_readonly":false,"studio_version":"v2"}
[2023-02-02 10:51:44.376715] INFO: moduleinvoker: instruments.v2 开始运行..
[2023-02-02 10:51:44.475716] INFO: moduleinvoker: instruments.v2 运行完成[0.098978s].
[2023-02-02 10:51:44.485543] INFO: moduleinvoker: input_features.v1 开始运行..
[2023-02-02 10:51:44.521671] INFO: moduleinvoker: input_features.v1 运行完成[0.036165s].
[2023-02-02 10:51:44.539564] INFO: moduleinvoker: general_feature_extractor.v7 开始运行..
[2023-02-02 10:51:45.611848] INFO: 基础特征抽取: 年份 2022, 特征行数=215335
[2023-02-02 10:51:45.975287] INFO: 基础特征抽取: 年份 2023, 特征行数=86083
[2023-02-02 10:51:46.041765] INFO: 基础特征抽取: 总行数: 301418
[2023-02-02 10:51:46.044534] INFO: moduleinvoker: general_feature_extractor.v7 运行完成[1.504979s].
[2023-02-02 10:51:46.050617] INFO: moduleinvoker: instruments.v2 开始运行..
[2023-02-02 10:51:46.072720] INFO: moduleinvoker: instruments.v2 运行完成[0.022088s].
[2023-02-02 10:51:46.080858] INFO: moduleinvoker: input_features.v1 开始运行..
[2023-02-02 10:51:46.092558] INFO: moduleinvoker: 命中缓存
[2023-02-02 10:51:46.095794] INFO: moduleinvoker: input_features.v1 运行完成[0.014934s].
[2023-02-02 10:51:46.107806] INFO: moduleinvoker: use_datasource.v2 开始运行..
[2023-02-02 10:51:46.359381] INFO: moduleinvoker: use_datasource.v2 运行完成[0.251541s].
[2023-02-02 10:51:46.378603] INFO: moduleinvoker: derived_feature_extractor.v3 开始运行..
[2023-02-02 10:51:46.431165] INFO: derived_feature_extractor: 提取完成 zs_return_0=close/shift(close,1), 0.004s
[2023-02-02 10:51:46.435938] INFO: derived_feature_extractor: 提取完成 zs_return_1=shift(zs_return_0,1), 0.003s
[2023-02-02 10:51:46.440979] INFO: derived_feature_extractor: 提取完成 zs_open=open/shift(close,1), 0.003s
[2023-02-02 10:51:46.494763] INFO: derived_feature_extractor: /data, 2025
[2023-02-02 10:51:46.549827] INFO: moduleinvoker: derived_feature_extractor.v3 运行完成[0.17123s].
[2023-02-02 10:51:46.556154] INFO: moduleinvoker: instruments.v2 开始运行..
[2023-02-02 10:51:46.580152] INFO: moduleinvoker: instruments.v2 运行完成[0.023984s].
[2023-02-02 10:51:46.593066] INFO: moduleinvoker: input_features.v1 开始运行..
[2023-02-02 10:51:46.605783] INFO: moduleinvoker: 命中缓存
[2023-02-02 10:51:46.608439] INFO: moduleinvoker: input_features.v1 运行完成[0.015399s].
[2023-02-02 10:51:46.615332] INFO: moduleinvoker: use_datasource.v2 开始运行..
[2023-02-02 10:51:46.805580] INFO: moduleinvoker: use_datasource.v2 运行完成[0.190234s].
[2023-02-02 10:51:48.726117] INFO: moduleinvoker: data_join.v3 开始运行..
[2023-02-02 10:51:49.020620] INFO: moduleinvoker: data_join.v3 运行完成[0.294538s].
[2023-02-02 10:51:49.031000] INFO: moduleinvoker: data_join.v3 开始运行..
[2023-02-02 10:51:50.219801] INFO: moduleinvoker: data_join.v3 运行完成[1.188793s].
[2023-02-02 10:51:50.231467] INFO: moduleinvoker: derived_feature_extractor.v3 开始运行..
[2023-02-02 10:52:29.332060] INFO: derived_feature_extractor: 提取完成 my=where((sum(ta_macd_macdhist_12_26_9_0>0,5)==5)&(sum(ta_macd_macd_12_26_9_0>0,5)==5)&(ta_macd(close_0,'golden_cross', 12, 26, 9))&(sum(ta_macd(close_0,'death_cross', 12, 26, 9),5)==1),1,0), 37.577s
[2023-02-02 10:52:29.338281] INFO: derived_feature_extractor: 提取完成 buy_condition=where(my==1,1,0), 0.004s
[2023-02-02 10:52:47.776684] INFO: derived_feature_extractor: 提取完成 sell_condition=where(max(close_0/max(high_1,high_2)<=0.95, ta_macd(close_0,'death_cross', 12, 26, 9)),1,0), 18.436s
[2023-02-02 10:52:49.681164] INFO: derived_feature_extractor: /data, 301418
[2023-02-02 10:52:49.857862] INFO: moduleinvoker: derived_feature_extractor.v3 运行完成[59.626381s].
[2023-02-02 10:52:49.885473] INFO: moduleinvoker: chinaa_stock_filter.v1 开始运行..
[2023-02-02 10:52:52.221728] INFO: A股股票过滤: 过滤 /data, 183199/0/301418
[2023-02-02 10:52:52.225843] INFO: A股股票过滤: 过滤完成, 183199 + 0
[2023-02-02 10:52:52.262149] INFO: moduleinvoker: chinaa_stock_filter.v1 运行完成[2.376656s].
[2023-02-02 10:52:52.311754] INFO: moduleinvoker: dropnan.v2 开始运行..
[2023-02-02 10:52:52.839851] INFO: dropnan: /data, 182928/183199
[2023-02-02 10:52:52.905946] INFO: dropnan: 行数: 182928/183199
[2023-02-02 10:52:52.919053] INFO: moduleinvoker: dropnan.v2 运行完成[0.607291s].
[2023-02-02 10:52:52.933319] INFO: moduleinvoker: sort.v4 开始运行..
[2023-02-02 10:52:53.702902] INFO: moduleinvoker: sort.v4 运行完成[0.769575s].
[2023-02-02 10:52:53.730550] INFO: moduleinvoker: filter.v3 开始运行..
[2023-02-02 10:52:53.752301] INFO: filter: 使用表达式 my==1 过滤
[2023-02-02 10:52:54.148547] INFO: filter: 过滤 /data, 45/0/182928
[2023-02-02 10:52:54.185631] INFO: moduleinvoker: filter.v3 运行完成[0.455093s].
[2023-02-02 10:52:56.739964] INFO: moduleinvoker: backtest.v8 开始运行..
[2023-02-02 10:52:56.749621] INFO: backtest: biglearning backtest:V8.6.3
[2023-02-02 10:52:56.821709] INFO: backtest: product_type:stock by specified
[2023-02-02 10:52:58.724480] ERROR: moduleinvoker: module name: backtest, module version: v8, trackeback: IndexError: index 4435 is out of bounds for axis 0 with size 4435
[2023-02-02 10:52:58.737740] ERROR: moduleinvoker: module name: trade, module version: v4, trackeback: IndexError: index 4435 is out of bounds for axis 0 with size 4435
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-1-11775cc02167> in <module>
248 )
249
--> 250 m8 = M.trade.v4(
251 instruments=m1.data,
252 options_data=m3.data,
IndexError: index 4435 is out of bounds for axis 0 with size 4435