{"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":"-443:input_data","from_node_id":"-220:data"},{"to_node_id":"-220:instruments","from_node_id":"-226:data"},{"to_node_id":"-220:features","from_node_id":"-234:data"},{"to_node_id":"-443: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":"-2883:input_2","from_node_id":"-2864:data"},{"to_node_id":"-2864:instruments","from_node_id":"-2870:data"},{"to_node_id":"-2864:features","from_node_id":"-2878:data"},{"to_node_id":"-1372:input_2","from_node_id":"-2883:data"}],"nodes":[{"node_id":"-51","module_id":"BigQuantSpace.instruments.instruments-v2","parameters":[{"name":"start_date","value":"2018-01-01","type":"Literal","bound_global_parameter":null},{"name":"end_date","value":"2022-04-24","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":"#30天内的相对位置\npriceLowBl30=close_0/ts_min(close_0,30)\n#是否涨停\nisZhangtToday=where((return_0>1.09)&(close_0==high_0),1,0)\n#开盘点位\nkp=(open_0-close_1)/close_1\n#开盘后最大上涨幅度\nkp_sz=(high_0-close_1)/close_1-kp\n#涨幅\nzhangf=(close_0-open_0)/close_1\n#当前价与5日均线比对\nmean5_jl=close_0/mean(close_0,5)\n#上证指数当天收益\nzs0=zs_return_0\n#成交量涨幅\namount_zf=amount_0/amount_1\n\nmy=where((shift(priceLowBl30,2)==1)&(shift(isZhangtToday,1)==1)&(abs(kp-0.02)<0.01)&(kp_sz<0.01)&(zhangf<0)&(mean5_jl>1)&(zs_return_0<0.985),1,0)\n\n#第二天开盘点位\nkp_1=shift(kp,-1)\n#第二天指数开盘点位\nzs_kp_1=shift(zs_kp,-1)\n#第二天的最低点位\nzdz_1=shift((low_0-close_1)/close_1,-1)\n#第三天的最高点位\nzgz_2=shift((high_0-close_1)/close_1,-2)\n#第二天上证指数\nzs_1=shift(zs0,-1)\n#第三天上证指数\nzs_2=shift(zs0,-2)\n#第二天入手后收益\nshouyi_1=shift(close_0,-1)/shift(open_0,-1)\n#持仓2天收益\nshouyi=shift(close_0,-2)/shift(open_0,-1)\n#持仓2天胜率\nshenli=where(shouyi>1,1,0)\n\nbuy_condition=where(my==1,1,0)\nsell_condition=where(my==3,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":"120","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 = 1\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 = 1\n context.options['hold_days'] = 0\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 #if(instrument=='002735.SZA'):\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":"my","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":"-220","module_id":"BigQuantSpace.use_datasource.use_datasource-v1","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}],"input_ports":[{"name":"instruments","node_id":"-220"},{"name":"features","node_id":"-220"}],"output_ports":[{"name":"data","node_id":"-220"}],"cacheable":true,"seq_num":4,"comment":"","comment_collapsed":true},{"node_id":"-226","module_id":"BigQuantSpace.instruments.instruments-v2","parameters":[{"name":"start_date","value":"2010-01-01","type":"Literal","bound_global_parameter":null},{"name":"end_date","value":"2050-12-30","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":"\n# #号开始的表示注释,注释需单独一行\n# 多个特征,每行一个,可以包含基础特征和衍生特征,特征须为本平台特征\nzs_zhangf=(close-open)/open\nzs_huiluo=(high-close)/close\nzs_huishen=(close-low)/low\nzs_zhenf=(high-low)/shift(close,1)\nzs_volume_zf=volume/shift(volume,1)\nzs_return_0=close/shift(close,1)\nzs_return_1=shift(zs_return_0,1)\nzs_return_2=shift(zs_return_0,2)\nzs_open=open/shift(close,1)\nzs_max10=ts_max(close,10)\n#zs_max10d=ts_argmax(close,10)\nzs_max30=ts_max(close,30)\n#zs_max30d=ts_argmax(close,30)\nzs_min10=ts_min(close,10)\n#zs_min10d=ts_argmin(close,10)\nzs_min30=ts_min(close,30)\n#zs_min30d=ts_argmin(close,30)\nzs_priceHighBl10=close/zs_max10\nzs_priceLowBl10=close/zs_min10\nzs_priceHighBl30=close/zs_max30\nzs_priceLowBl30=close/zs_min30\nzs_kp=(open-shift(close,1))/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":"True","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":"-2864","module_id":"BigQuantSpace.use_datasource.use_datasource-v1","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}],"input_ports":[{"name":"instruments","node_id":"-2864"},{"name":"features","node_id":"-2864"}],"output_ports":[{"name":"data","node_id":"-2864"}],"cacheable":true,"seq_num":17,"comment":"","comment_collapsed":true},{"node_id":"-2870","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-30","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\n","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_layout":"<node_postions><node_position Node='-51' Position='107,-18,200,200'/><node_position Node='-59' Position='471.33428955078125,33.50146484375,200,200'/><node_position Node='-353' Position='170,140,200,200'/><node_position Node='-360' Position='252,287,200,200'/><node_position Node='-370' Position='475,840,200,200'/><node_position Node='-390' Position='288,618,200,200'/><node_position Node='-531' Position='286,712,200,200'/><node_position Node='-865' Position='336,391,200,200'/><node_position Node='-93' Position='269,519,200,200'/><node_position Node='-220' Position='801,-35,200,200'/><node_position Node='-226' Position='664,-179,200,200'/><node_position Node='-234' Position='1057,-184,200,200'/><node_position Node='-443' Position='806,119,200,200'/><node_position Node='-1372' Position='767,307,200,200'/><node_position Node='-2864' Position='1274,117,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_postions>"},"nodes_readonly":false,"studio_version":"v2"}
[2022-05-31 16:31:17.331678] INFO: moduleinvoker: instruments.v2 开始运行..
[2022-05-31 16:31:17.449890] INFO: moduleinvoker: instruments.v2 运行完成[0.118209s].
[2022-05-31 16:31:17.463546] INFO: moduleinvoker: input_features.v1 开始运行..
[2022-05-31 16:31:17.495752] INFO: moduleinvoker: input_features.v1 运行完成[0.032224s].
[2022-05-31 16:31:17.522981] INFO: moduleinvoker: general_feature_extractor.v7 开始运行..
[2022-05-31 16:31:17.575121] WARNING: bigdatasource: cannot find filed [zs_return_0] table in field_table_map!
[2022-05-31 16:31:17.577584] WARNING: bigdatasource: cannot find filed [zs_kp] table in field_table_map!
[2022-05-31 16:31:18.981739] WARNING: bigdatasource: unknown fields: ['zs_return_0', 'zs_kp']
[2022-05-31 16:31:19.311426] INFO: 基础特征抽取: 年份 2017, 特征行数=256263
[2022-05-31 16:31:19.318186] WARNING: bigdatasource: cannot find filed [zs_return_0] table in field_table_map!
[2022-05-31 16:31:19.319818] WARNING: bigdatasource: cannot find filed [zs_kp] table in field_table_map!
[2022-05-31 16:31:21.617149] WARNING: bigdatasource: unknown fields: ['zs_return_0', 'zs_kp']
[2022-05-31 16:31:23.103175] INFO: 基础特征抽取: 年份 2018, 特征行数=816987
[2022-05-31 16:31:23.109116] WARNING: bigdatasource: cannot find filed [zs_return_0] table in field_table_map!
[2022-05-31 16:31:23.110787] WARNING: bigdatasource: cannot find filed [zs_kp] table in field_table_map!
[2022-05-31 16:31:25.424843] WARNING: bigdatasource: unknown fields: ['zs_return_0', 'zs_kp']
[2022-05-31 16:31:27.024038] INFO: 基础特征抽取: 年份 2019, 特征行数=884867
[2022-05-31 16:31:27.033806] WARNING: bigdatasource: cannot find filed [zs_return_0] table in field_table_map!
[2022-05-31 16:31:27.035681] WARNING: bigdatasource: cannot find filed [zs_kp] table in field_table_map!
[2022-05-31 16:31:33.028661] WARNING: bigdatasource: unknown fields: ['zs_return_0', 'zs_kp']
[2022-05-31 16:31:34.761343] INFO: 基础特征抽取: 年份 2020, 特征行数=945961
[2022-05-31 16:31:34.776003] WARNING: bigdatasource: cannot find filed [zs_return_0] table in field_table_map!
[2022-05-31 16:31:34.778476] WARNING: bigdatasource: cannot find filed [zs_kp] table in field_table_map!
[2022-05-31 16:31:44.515658] WARNING: bigdatasource: unknown fields: ['zs_return_0', 'zs_kp']
[2022-05-31 16:31:46.294526] INFO: 基础特征抽取: 年份 2021, 特征行数=1061527
[2022-05-31 16:31:46.301215] WARNING: bigdatasource: cannot find filed [zs_return_0] table in field_table_map!
[2022-05-31 16:31:46.303104] WARNING: bigdatasource: cannot find filed [zs_kp] table in field_table_map!
[2022-05-31 16:31:50.692325] WARNING: bigdatasource: unknown fields: ['zs_return_0', 'zs_kp']
[2022-05-31 16:31:51.711747] INFO: 基础特征抽取: 年份 2022, 特征行数=340116
[2022-05-31 16:31:51.764810] INFO: 基础特征抽取: 总行数: 4305721
[2022-05-31 16:31:51.769038] INFO: moduleinvoker: general_feature_extractor.v7 运行完成[34.246073s].
[2022-05-31 16:31:51.798599] INFO: moduleinvoker: instruments.v2 开始运行..
[2022-05-31 16:31:51.837731] INFO: moduleinvoker: instruments.v2 运行完成[0.039141s].
[2022-05-31 16:31:51.858690] INFO: moduleinvoker: input_features.v1 开始运行..
[2022-05-31 16:31:51.896821] INFO: moduleinvoker: input_features.v1 运行完成[0.03814s].
[2022-05-31 16:31:51.908809] INFO: moduleinvoker: use_datasource.v1 开始运行..
[2022-05-31 16:31:52.409022] INFO: moduleinvoker: use_datasource.v1 运行完成[0.50021s].
[2022-05-31 16:31:52.425844] INFO: moduleinvoker: derived_feature_extractor.v3 开始运行..
[2022-05-31 16:31:52.538675] INFO: derived_feature_extractor: 提取完成 zs_zhangf=(close-open)/open, 0.002s
[2022-05-31 16:31:52.543313] INFO: derived_feature_extractor: 提取完成 zs_huiluo=(high-close)/close, 0.003s
[2022-05-31 16:31:52.549875] INFO: derived_feature_extractor: 提取完成 zs_huishen=(close-low)/low, 0.005s
[2022-05-31 16:31:52.559211] INFO: derived_feature_extractor: 提取完成 zs_zhenf=(high-low)/shift(close,1), 0.007s
[2022-05-31 16:31:52.568249] INFO: derived_feature_extractor: 提取完成 zs_volume_zf=volume/shift(volume,1), 0.007s
[2022-05-31 16:31:52.588013] INFO: derived_feature_extractor: 提取完成 zs_return_0=close/shift(close,1), 0.018s
[2022-05-31 16:31:52.595801] INFO: derived_feature_extractor: 提取完成 zs_return_1=shift(zs_return_0,1), 0.005s
[2022-05-31 16:31:52.602542] INFO: derived_feature_extractor: 提取完成 zs_return_2=shift(zs_return_0,2), 0.005s
[2022-05-31 16:31:52.611002] INFO: derived_feature_extractor: 提取完成 zs_open=open/shift(close,1), 0.006s
[2022-05-31 16:31:52.619846] INFO: derived_feature_extractor: 提取完成 zs_max10=ts_max(close,10), 0.006s
[2022-05-31 16:31:52.627549] INFO: derived_feature_extractor: 提取完成 zs_max30=ts_max(close,30), 0.006s
[2022-05-31 16:31:52.635320] INFO: derived_feature_extractor: 提取完成 zs_min10=ts_min(close,10), 0.006s
[2022-05-31 16:31:52.642610] INFO: derived_feature_extractor: 提取完成 zs_min30=ts_min(close,30), 0.006s
[2022-05-31 16:31:52.647382] INFO: derived_feature_extractor: 提取完成 zs_priceHighBl10=close/zs_max10, 0.003s
[2022-05-31 16:31:52.650808] INFO: derived_feature_extractor: 提取完成 zs_priceLowBl10=close/zs_min10, 0.002s
[2022-05-31 16:31:52.655800] INFO: derived_feature_extractor: 提取完成 zs_priceHighBl30=close/zs_max30, 0.003s
[2022-05-31 16:31:52.660991] INFO: derived_feature_extractor: 提取完成 zs_priceLowBl30=close/zs_min30, 0.003s
[2022-05-31 16:31:52.673078] INFO: derived_feature_extractor: 提取完成 zs_kp=(open-shift(close,1))/shift(close,1), 0.010s
[2022-05-31 16:31:52.738015] INFO: derived_feature_extractor: /data, 3012
[2022-05-31 16:31:52.826491] INFO: moduleinvoker: derived_feature_extractor.v3 运行完成[0.400651s].
[2022-05-31 16:31:52.833485] INFO: moduleinvoker: instruments.v2 开始运行..
[2022-05-31 16:31:52.851707] INFO: moduleinvoker: 命中缓存
[2022-05-31 16:31:52.854489] INFO: moduleinvoker: instruments.v2 运行完成[0.021001s].
[2022-05-31 16:31:52.865219] INFO: moduleinvoker: input_features.v1 开始运行..
[2022-05-31 16:31:52.884571] INFO: moduleinvoker: 命中缓存
[2022-05-31 16:31:52.886716] INFO: moduleinvoker: input_features.v1 运行完成[0.021499s].
[2022-05-31 16:31:52.900776] INFO: moduleinvoker: use_datasource.v1 开始运行..
[2022-05-31 16:31:52.923417] INFO: moduleinvoker: 命中缓存
[2022-05-31 16:31:52.926066] INFO: moduleinvoker: use_datasource.v1 运行完成[0.0253s].
[2022-05-31 16:31:53.079132] INFO: moduleinvoker: data_join.v3 开始运行..
[2022-05-31 16:31:53.406701] INFO: moduleinvoker: data_join.v3 运行完成[0.327582s].
[2022-05-31 16:31:53.421626] INFO: moduleinvoker: data_join.v3 开始运行..
[2022-05-31 16:32:31.894344] INFO: moduleinvoker: data_join.v3 运行完成[38.472684s].
[2022-05-31 16:32:31.924489] INFO: moduleinvoker: derived_feature_extractor.v3 开始运行..
[2022-05-31 16:33:33.303415] INFO: derived_feature_extractor: 提取完成 priceLowBl30=close_0/ts_min(close_0,30), 6.048s
[2022-05-31 16:33:33.334482] INFO: derived_feature_extractor: 提取完成 isZhangtToday=where((return_0>1.09)&(close_0==high_0),1,0), 0.029s
[2022-05-31 16:33:33.370681] INFO: derived_feature_extractor: 提取完成 kp=(open_0-close_1)/close_1, 0.034s
[2022-05-31 16:33:33.390865] INFO: derived_feature_extractor: 提取完成 kp_sz=(high_0-close_1)/close_1-kp, 0.018s
[2022-05-31 16:33:33.406662] INFO: derived_feature_extractor: 提取完成 zhangf=(close_0-open_0)/close_1, 0.014s
[2022-05-31 16:33:39.201888] INFO: derived_feature_extractor: 提取完成 mean5_jl=close_0/mean(close_0,5), 5.794s
[2022-05-31 16:33:39.213457] INFO: derived_feature_extractor: 提取完成 zs0=zs_return_0, 0.009s
[2022-05-31 16:33:39.249794] INFO: derived_feature_extractor: 提取完成 amount_zf=amount_0/amount_1, 0.034s
[2022-05-31 16:33:41.039274] INFO: derived_feature_extractor: 提取完成 my=where((shift(priceLowBl30,2)==1)&(shift(isZhangtToday,1)==1)&(abs(kp-0.02)<0.01)&(kp_sz<0.01)&(zhangf<0)&(mean5_jl>1)&(zs_return_0<0.985),1,0), 1.787s
[2022-05-31 16:33:41.931966] INFO: derived_feature_extractor: 提取完成 kp_1=shift(kp,-1), 0.890s
[2022-05-31 16:33:42.818439] INFO: derived_feature_extractor: 提取完成 zs_kp_1=shift(zs_kp,-1), 0.885s
[2022-05-31 16:33:43.687214] INFO: derived_feature_extractor: 提取完成 zdz_1=shift((low_0-close_1)/close_1,-1), 0.867s
[2022-05-31 16:33:44.488492] INFO: derived_feature_extractor: 提取完成 zgz_2=shift((high_0-close_1)/close_1,-2), 0.799s
[2022-05-31 16:33:45.330044] INFO: derived_feature_extractor: 提取完成 zs_1=shift(zs0,-1), 0.839s
[2022-05-31 16:33:46.202847] INFO: derived_feature_extractor: 提取完成 zs_2=shift(zs0,-2), 0.871s
[2022-05-31 16:33:47.788326] INFO: derived_feature_extractor: 提取完成 shouyi_1=shift(close_0,-1)/shift(open_0,-1), 1.584s
[2022-05-31 16:33:49.406150] INFO: derived_feature_extractor: 提取完成 shouyi=shift(close_0,-2)/shift(open_0,-1), 1.616s
[2022-05-31 16:33:49.422570] INFO: derived_feature_extractor: 提取完成 shenli=where(shouyi>1,1,0), 0.015s
[2022-05-31 16:33:49.437837] INFO: derived_feature_extractor: 提取完成 buy_condition=where(my==1,1,0), 0.014s
[2022-05-31 16:33:49.464051] INFO: derived_feature_extractor: 提取完成 sell_condition=where(my==3,1,0), 0.025s
[2022-05-31 16:34:47.259002] INFO: derived_feature_extractor: /data, 4305721
[2022-05-31 16:34:59.080411] INFO: moduleinvoker: derived_feature_extractor.v3 运行完成[147.155874s].
[2022-05-31 16:34:59.221788] INFO: moduleinvoker: chinaa_stock_filter.v1 开始运行..
[2022-05-31 16:35:20.989891] INFO: A股股票过滤: 过滤 /data, 3088658/0/4305721
[2022-05-31 16:35:20.994663] INFO: A股股票过滤: 过滤完成, 3088658 + 0
[2022-05-31 16:35:21.034772] INFO: moduleinvoker: chinaa_stock_filter.v1 运行完成[21.812972s].
[2022-05-31 16:35:21.137191] INFO: moduleinvoker: dropnan.v2 开始运行..
[2022-05-31 16:35:25.447036] INFO: dropnan: /data, 2992031/3088658
[2022-05-31 16:35:25.597874] INFO: dropnan: 行数: 2992031/3088658
[2022-05-31 16:35:25.622889] INFO: moduleinvoker: dropnan.v2 运行完成[4.485691s].
[2022-05-31 16:35:25.694915] INFO: moduleinvoker: sort.v4 开始运行..
[2022-05-31 16:35:36.088333] INFO: moduleinvoker: sort.v4 运行完成[10.393411s].
[2022-05-31 16:35:36.178871] INFO: moduleinvoker: filter.v3 开始运行..
[2022-05-31 16:35:36.195518] INFO: filter: 使用表达式 my==1 过滤
[2022-05-31 16:35:38.168574] INFO: filter: 过滤 /data, 5/0/2992031
[2022-05-31 16:35:38.228276] INFO: moduleinvoker: filter.v3 运行完成[2.049397s].