求助! 为什么模拟盘中的个股不是自己想要交易的?

策略分享
标签: #<Tag:0x00007f5b9f0d6a68>

(LIHAO117) #1
克隆策略

    {"Description":"实验创建于2017/8/26","Summary":"","Graph":{"EdgesInternal":[{"DestinationInputPortId":"287d2cb0-f53c-4101-bdf8-104b137c8601-15:instruments","SourceOutputPortId":"287d2cb0-f53c-4101-bdf8-104b137c8601-8:data"},{"DestinationInputPortId":"-375:instruments","SourceOutputPortId":"287d2cb0-f53c-4101-bdf8-104b137c8601-8:data"},{"DestinationInputPortId":"287d2cb0-f53c-4101-bdf8-104b137c8601-53:data1","SourceOutputPortId":"287d2cb0-f53c-4101-bdf8-104b137c8601-15:data"},{"DestinationInputPortId":"287d2cb0-f53c-4101-bdf8-104b137c8601-43:features","SourceOutputPortId":"287d2cb0-f53c-4101-bdf8-104b137c8601-24:data"},{"DestinationInputPortId":"-375:features","SourceOutputPortId":"287d2cb0-f53c-4101-bdf8-104b137c8601-24:data"},{"DestinationInputPortId":"-382:features","SourceOutputPortId":"287d2cb0-f53c-4101-bdf8-104b137c8601-24:data"},{"DestinationInputPortId":"-391:features","SourceOutputPortId":"287d2cb0-f53c-4101-bdf8-104b137c8601-24:data"},{"DestinationInputPortId":"-398:features","SourceOutputPortId":"287d2cb0-f53c-4101-bdf8-104b137c8601-24:data"},{"DestinationInputPortId":"287d2cb0-f53c-4101-bdf8-104b137c8601-60:model","SourceOutputPortId":"287d2cb0-f53c-4101-bdf8-104b137c8601-43:model"},{"DestinationInputPortId":"287d2cb0-f53c-4101-bdf8-104b137c8601-84:input_data","SourceOutputPortId":"287d2cb0-f53c-4101-bdf8-104b137c8601-53:data"},{"DestinationInputPortId":"-410:options_data","SourceOutputPortId":"287d2cb0-f53c-4101-bdf8-104b137c8601-60:predictions"},{"DestinationInputPortId":"-391:instruments","SourceOutputPortId":"287d2cb0-f53c-4101-bdf8-104b137c8601-62:data"},{"DestinationInputPortId":"-410:instruments","SourceOutputPortId":"287d2cb0-f53c-4101-bdf8-104b137c8601-62:data"},{"DestinationInputPortId":"287d2cb0-f53c-4101-bdf8-104b137c8601-43:training_ds","SourceOutputPortId":"287d2cb0-f53c-4101-bdf8-104b137c8601-84:data"},{"DestinationInputPortId":"287d2cb0-f53c-4101-bdf8-104b137c8601-60:data","SourceOutputPortId":"-86:data"},{"DestinationInputPortId":"-382:input_data","SourceOutputPortId":"-375:data"},{"DestinationInputPortId":"287d2cb0-f53c-4101-bdf8-104b137c8601-53:data2","SourceOutputPortId":"-382:data"},{"DestinationInputPortId":"-398:input_data","SourceOutputPortId":"-391:data"},{"DestinationInputPortId":"-86:input_data","SourceOutputPortId":"-398:data"}],"ModuleNodes":[{"Id":"287d2cb0-f53c-4101-bdf8-104b137c8601-8","ModuleId":"BigQuantSpace.instruments.instruments-v2","ModuleParameters":[{"Name":"start_date","Value":"2012-01-01","ValueType":"Literal","LinkedGlobalParameter":null},{"Name":"end_date","Value":"2017-12-31","ValueType":"Literal","LinkedGlobalParameter":null},{"Name":"market","Value":"CN_STOCK_A","ValueType":"Literal","LinkedGlobalParameter":null},{"Name":"instrument_list","Value":"603993.SHA\n603986.SHA\n603885.SHA\n603833.SHA\n603816.SHA\n603636.SHA\n603588.SHA\n603583.SHA\n603444.SHA\n603369.SHA\n603363.SHA\n603288.SHA\n603260.SHA\n603259.SHA\n603128.SHA\n603026.SHA\n603019.SHA\n601989.SHA\n601988.SHA\n601985.SHA\n601939.SHA\n601933.SHA\n601888.SHA\n601881.SHA\n601877.SHA\n601869.SHA\n601857.SHA\n601766.SHA\n601699.SHA\n601688.SHA\n601678.SHA\n601668.SHA\n601633.SHA\n601601.SHA\n601600.SHA\n601398.SHA\n601377.SHA\n601336.SHA\n601319.SHA\n601318.SHA\n601288.SHA\n601238.SHA\n601233.SHA\n601225.SHA\n601211.SHA\n601186.SHA\n601166.SHA\n601155.SHA\n601138.SHA\n601111.SHA\n601088.SHA\n601066.SHA\n601021.SHA\n601012.SHA\n600999.SHA\n600977.SHA\n600975.SHA\n600967.SHA\n600900.SHA\n600887.SHA\n600886.SHA\n600875.SHA\n600872.SHA\n600867.SHA\n600845.SHA\n600837.SHA\n600820.SHA\n600810.SHA\n600809.SHA\n600801.SHA\n600789.SHA\n600779.SHA\n600763.SHA\n600745.SHA\n600741.SHA\n600740.SHA\n600728.SHA\n600702.SHA\n600699.SHA\n600690.SHA\n600660.SHA\n600606.SHA\n600596.SHA\n600588.SHA\n600585.SHA\n600570.SHA\n600547.SHA\n600522.SHA\n600519.SHA\n600516.SHA\n600507.SHA\n600498.SHA\n600487.SHA\n600486.SHA\n600460.SHA\n600456.SHA\n600438.SHA\n600436.SHA\n600426.SHA\n600406.SHA\n600383.SHA\n600373.SHA\n600366.SHA\n600362.SHA\n600352.SHA\n600340.SHA\n600312.SHA\n600309.SHA\n600305.SHA\n600298.SHA\n600276.SHA\n600258.SHA\n600256.SHA\n600196.SHA\n600188.SHA\n600183.SHA\n600176.SHA\n600161.SHA\n600141.SHA\n600115.SHA\n600104.SHA\n600068.SHA\n600066.SHA\n600050.SHA\n600048.SHA\n600036.SHA\n600031.SHA\n600030.SHA\n600029.SHA\n600028.SHA\n600027.SHA\n600019.SHA\n600011.SHA\n600009.SHA\n600004.SHA\n000596.SZA\n000547.SZA\n000538.SZA\n000513.SZA\n000425.SZA\n000401.SZA\n000400.SZA\n000338.SZA\n000333.SZA\n300760.SZA\n300750.SZA\n300747.SZA\n300735.SZA\n300725.SZA\n300724.SZA\n300558.SZA\n300498.SZA\n300496.SZA\n300456.SZA\n300450.SZA\n300408.SZA\n300383.SZA\n300373.SZA\n300347.SZA\n300316.SZA\n300308.SZA\n300274.SZA\n300271.SZA\n300253.SZA\n300252.SZA\n300226.SZA\n300212.SZA\n300188.SZA\n300170.SZA\n300166.SZA\n300146.SZA\n300136.SZA\n300124.SZA\n300122.SZA\n300073.SZA\n300068.SZA\n300059.SZA\n300037.SZA\n300033.SZA\n300017.SZA\n300015.SZA\n300014.SZA\n300012.SZA\n300010.SZA\n300003.SZA\n300001.SZA\n002925.SZA\n002916.SZA\n002913.SZA\n002792.SZA\n002714.SZA\n002709.SZA\n002648.SZA\n002624.SZA\n002607.SZA\n002594.SZA\n002572.SZA\n002557.SZA\n002508.SZA\n002507.SZA\n002493.SZA\n002475.SZA\n002468.SZA\n002466.SZA\n002465.SZA\n002463.SZA\n002458.SZA\n002456.SZA\n002440.SZA\n002422.SZA\n002415.SZA\n002414.SZA\n002410.SZA\n002405.SZA\n002396.SZA\n002384.SZA\n002372.SZA\n002371.SZA\n002367.SZA\n002353.SZA\n002352.SZA\n002341.SZA\n002299.SZA\n002294.SZA\n002281.SZA\n002271.SZA\n002262.SZA\n002241.SZA\n002236.SZA\n002233.SZA\n002230.SZA\n002223.SZA\n002217.SZA\n002202.SZA\n002185.SZA\n002174.SZA\n002157.SZA\n002153.SZA\n002146.SZA\n002142.SZA\n002129.SZA\n002127.SZA\n002124.SZA\n002110.SZA\n002089.SZA\n002078.SZA\n002074.SZA\n002044.SZA\n002035.SZA\n002032.SZA\n002027.SZA\n002024.SZA\n002008.SZA\n002007.SZA\n002001.SZA\n001979.SZA\n000998.SZA\n000977.SZA\n000963.SZA\n000960.SZA\n000933.SZA\n000932.SZA\n000895.SZA\n000878.SZA\n000876.SZA\n000860.SZA\n000858.SZA\n000830.SZA\n000799.SZA\n000789.SZA\n000786.SZA\n000776.SZA\n000729.SZA\n000725.SZA\n000717.SZA\n000703.SZA\n000661.SZA\n000651.SZA\n000650.SZA\n000629.SZA\n000581.SZA\n000426.SZA\n000418.SZA\n000166.SZA\n000100.SZA\n000069.SZA\n000066.SZA\n000063.SZA\n000002.SZA\n000001.SZA","ValueType":"Literal","LinkedGlobalParameter":null},{"Name":"max_count","Value":"0","ValueType":"Literal","LinkedGlobalParameter":null}],"InputPortsInternal":[{"DataSourceId":null,"TrainedModelId":null,"TransformModuleId":null,"Name":"rolling_conf","NodeId":"287d2cb0-f53c-4101-bdf8-104b137c8601-8"}],"OutputPortsInternal":[{"Name":"data","NodeId":"287d2cb0-f53c-4101-bdf8-104b137c8601-8","OutputType":null}],"UsePreviousResults":true,"moduleIdForCode":1,"IsPartOfPartialRun":null,"Comment":"","CommentCollapsed":true},{"Id":"287d2cb0-f53c-4101-bdf8-104b137c8601-15","ModuleId":"BigQuantSpace.advanced_auto_labeler.advanced_auto_labeler-v2","ModuleParameters":[{"Name":"label_expr","Value":"# #号开始的表示注释\n# 0. 每行一个,顺序执行,从第二个开始,可以使用label字段\n# 1. 可用数据字段见 {{web_host_url}}docs/data_history_data.html\n# 添加benchmark_前缀,可使用对应的benchmark数据\n# 2. 可用操作符和函数见 `表达式引擎 <{{web_host_url}}docs/big_expr.html>`_\n\n# 计算收益:5日收盘价(作为卖出价格)除以明日开盘价(作为买入价格)\nshift(close, -5) / shift(open, -1)\n\n# 极值处理:用1%和99%分位的值做clip\nclip(label, all_quantile(label, 0.01), all_quantile(label, 0.99))\n\n# 将分数映射到分类,这里使用20个分类\nall_wbins(label, 20)\n\n# 过滤掉一字涨停的情况 (设置label为NaN,在后续处理和训练中会忽略NaN的label)\nwhere(shift(high, -1) == shift(low, -1), NaN, label)\n","ValueType":"Literal","LinkedGlobalParameter":null},{"Name":"start_date","Value":"","ValueType":"Literal","LinkedGlobalParameter":null},{"Name":"end_date","Value":"","ValueType":"Literal","LinkedGlobalParameter":null},{"Name":"benchmark","Value":"000300.SHA","ValueType":"Literal","LinkedGlobalParameter":null},{"Name":"drop_na_label","Value":"True","ValueType":"Literal","LinkedGlobalParameter":null},{"Name":"cast_label_int","Value":"True","ValueType":"Literal","LinkedGlobalParameter":null},{"Name":"user_functions","Value":"","ValueType":"Literal","LinkedGlobalParameter":null}],"InputPortsInternal":[{"DataSourceId":null,"TrainedModelId":null,"TransformModuleId":null,"Name":"instruments","NodeId":"287d2cb0-f53c-4101-bdf8-104b137c8601-15"}],"OutputPortsInternal":[{"Name":"data","NodeId":"287d2cb0-f53c-4101-bdf8-104b137c8601-15","OutputType":null}],"UsePreviousResults":true,"moduleIdForCode":2,"IsPartOfPartialRun":null,"Comment":"","CommentCollapsed":true},{"Id":"287d2cb0-f53c-4101-bdf8-104b137c8601-24","ModuleId":"BigQuantSpace.input_features.input_features-v1","ModuleParameters":[{"Name":"features","Value":"# #号开始的表示注释\n# 多个特征,每行一个,可以包含基础特征和衍生特征\n\n\n-1*correlation(rank(open_0),rank(volume_0),10)\n-1*rank(covariance(rank(close_0),rank(volume_0),5))\n-1*sum(rank(correlation(rank(high_0),rank(volume_0),3)),3)\n-1*rank(covariance(rank(high_0),rank(volume_0),5))\n(-1*correlation(high_0,rank(volume_0),5))\n(-1*ts_max(rank(correlation(rank(volume_0),rank(amount_0/volume_0*adjust_factor_0),5)),5))\n-1*correlation(rank(((close_0-ts_min(low_0,12))/(ts_max(high_0,12)-ts_min(low_0,12)))),rank(volume_0),6)\n\nmarket_cap_0\t\nreturn_20\navg_turn_20\nvolatility_30_0\n","ValueType":"Literal","LinkedGlobalParameter":null}],"InputPortsInternal":[{"DataSourceId":null,"TrainedModelId":null,"TransformModuleId":null,"Name":"features_ds","NodeId":"287d2cb0-f53c-4101-bdf8-104b137c8601-24"}],"OutputPortsInternal":[{"Name":"data","NodeId":"287d2cb0-f53c-4101-bdf8-104b137c8601-24","OutputType":null}],"UsePreviousResults":true,"moduleIdForCode":3,"IsPartOfPartialRun":null,"Comment":"","CommentCollapsed":true},{"Id":"287d2cb0-f53c-4101-bdf8-104b137c8601-43","ModuleId":"BigQuantSpace.stock_ranker_train.stock_ranker_train-v5","ModuleParameters":[{"Name":"learning_algorithm","Value":"排序","ValueType":"Literal","LinkedGlobalParameter":null},{"Name":"number_of_leaves","Value":30,"ValueType":"Literal","LinkedGlobalParameter":null},{"Name":"minimum_docs_per_leaf","Value":1000,"ValueType":"Literal","LinkedGlobalParameter":null},{"Name":"number_of_trees","Value":20,"ValueType":"Literal","LinkedGlobalParameter":null},{"Name":"learning_rate","Value":0.1,"ValueType":"Literal","LinkedGlobalParameter":null},{"Name":"max_bins","Value":1023,"ValueType":"Literal","LinkedGlobalParameter":null},{"Name":"feature_fraction","Value":1,"ValueType":"Literal","LinkedGlobalParameter":null},{"Name":"m_lazy_run","Value":"False","ValueType":"Literal","LinkedGlobalParameter":null}],"InputPortsInternal":[{"DataSourceId":null,"TrainedModelId":null,"TransformModuleId":null,"Name":"training_ds","NodeId":"287d2cb0-f53c-4101-bdf8-104b137c8601-43"},{"DataSourceId":null,"TrainedModelId":null,"TransformModuleId":null,"Name":"features","NodeId":"287d2cb0-f53c-4101-bdf8-104b137c8601-43"},{"DataSourceId":null,"TrainedModelId":null,"TransformModuleId":null,"Name":"test_ds","NodeId":"287d2cb0-f53c-4101-bdf8-104b137c8601-43"},{"DataSourceId":null,"TrainedModelId":null,"TransformModuleId":null,"Name":"base_model","NodeId":"287d2cb0-f53c-4101-bdf8-104b137c8601-43"}],"OutputPortsInternal":[{"Name":"model","NodeId":"287d2cb0-f53c-4101-bdf8-104b137c8601-43","OutputType":null},{"Name":"feature_gains","NodeId":"287d2cb0-f53c-4101-bdf8-104b137c8601-43","OutputType":null},{"Name":"m_lazy_run","NodeId":"287d2cb0-f53c-4101-bdf8-104b137c8601-43","OutputType":null}],"UsePreviousResults":true,"moduleIdForCode":6,"IsPartOfPartialRun":null,"Comment":"","CommentCollapsed":true},{"Id":"287d2cb0-f53c-4101-bdf8-104b137c8601-53","ModuleId":"BigQuantSpace.join.join-v3","ModuleParameters":[{"Name":"on","Value":"date,instrument","ValueType":"Literal","LinkedGlobalParameter":null},{"Name":"how","Value":"inner","ValueType":"Literal","LinkedGlobalParameter":null},{"Name":"sort","Value":"False","ValueType":"Literal","LinkedGlobalParameter":null}],"InputPortsInternal":[{"DataSourceId":null,"TrainedModelId":null,"TransformModuleId":null,"Name":"data1","NodeId":"287d2cb0-f53c-4101-bdf8-104b137c8601-53"},{"DataSourceId":null,"TrainedModelId":null,"TransformModuleId":null,"Name":"data2","NodeId":"287d2cb0-f53c-4101-bdf8-104b137c8601-53"}],"OutputPortsInternal":[{"Name":"data","NodeId":"287d2cb0-f53c-4101-bdf8-104b137c8601-53","OutputType":null}],"UsePreviousResults":true,"moduleIdForCode":7,"IsPartOfPartialRun":null,"Comment":"","CommentCollapsed":true},{"Id":"287d2cb0-f53c-4101-bdf8-104b137c8601-60","ModuleId":"BigQuantSpace.stock_ranker_predict.stock_ranker_predict-v5","ModuleParameters":[{"Name":"m_lazy_run","Value":"False","ValueType":"Literal","LinkedGlobalParameter":null}],"InputPortsInternal":[{"DataSourceId":null,"TrainedModelId":null,"TransformModuleId":null,"Name":"model","NodeId":"287d2cb0-f53c-4101-bdf8-104b137c8601-60"},{"DataSourceId":null,"TrainedModelId":null,"TransformModuleId":null,"Name":"data","NodeId":"287d2cb0-f53c-4101-bdf8-104b137c8601-60"}],"OutputPortsInternal":[{"Name":"predictions","NodeId":"287d2cb0-f53c-4101-bdf8-104b137c8601-60","OutputType":null},{"Name":"m_lazy_run","NodeId":"287d2cb0-f53c-4101-bdf8-104b137c8601-60","OutputType":null}],"UsePreviousResults":true,"moduleIdForCode":8,"IsPartOfPartialRun":null,"Comment":"","CommentCollapsed":true},{"Id":"287d2cb0-f53c-4101-bdf8-104b137c8601-62","ModuleId":"BigQuantSpace.instruments.instruments-v2","ModuleParameters":[{"Name":"start_date","Value":"2019-05-01","ValueType":"Literal","LinkedGlobalParameter":"交易日期"},{"Name":"end_date","Value":"2019-08-21","ValueType":"Literal","LinkedGlobalParameter":"交易日期"},{"Name":"market","Value":"CN_STOCK_A","ValueType":"Literal","LinkedGlobalParameter":null},{"Name":"instrument_list","Value":"603993.SHA\n603986.SHA\n603885.SHA\n603833.SHA\n603816.SHA\n603636.SHA\n603588.SHA\n603583.SHA\n603444.SHA\n603369.SHA\n603363.SHA\n603288.SHA\n603260.SHA\n603259.SHA\n603128.SHA\n603026.SHA\n603019.SHA\n601989.SHA\n601988.SHA\n601985.SHA\n601939.SHA\n601933.SHA\n601888.SHA\n601881.SHA\n601877.SHA\n601869.SHA\n601857.SHA\n601766.SHA\n601699.SHA\n601688.SHA\n601678.SHA\n601668.SHA\n601633.SHA\n601601.SHA\n601600.SHA\n601398.SHA\n601377.SHA\n601336.SHA\n601319.SHA\n601318.SHA\n601288.SHA\n601238.SHA\n601233.SHA\n601225.SHA\n601211.SHA\n601186.SHA\n601166.SHA\n601155.SHA\n601138.SHA\n601111.SHA\n601088.SHA\n601066.SHA\n601021.SHA\n601012.SHA\n600999.SHA\n600977.SHA\n600975.SHA\n600967.SHA\n600900.SHA\n600887.SHA\n600886.SHA\n600875.SHA\n600872.SHA\n600867.SHA\n600845.SHA\n600837.SHA\n600820.SHA\n600810.SHA\n600809.SHA\n600801.SHA\n600789.SHA\n600779.SHA\n600763.SHA\n600745.SHA\n600741.SHA\n600740.SHA\n600728.SHA\n600702.SHA\n600699.SHA\n600690.SHA\n600660.SHA\n600606.SHA\n600596.SHA\n600588.SHA\n600585.SHA\n600570.SHA\n600547.SHA\n600522.SHA\n600519.SHA\n600516.SHA\n600507.SHA\n600498.SHA\n600487.SHA\n600486.SHA\n600460.SHA\n600456.SHA\n600438.SHA\n600436.SHA\n600426.SHA\n600406.SHA\n600383.SHA\n600373.SHA\n600366.SHA\n600362.SHA\n600352.SHA\n600340.SHA\n600312.SHA\n600309.SHA\n600305.SHA\n600298.SHA\n600276.SHA\n600258.SHA\n600256.SHA\n600196.SHA\n600188.SHA\n600183.SHA\n600176.SHA\n600161.SHA\n600141.SHA\n600115.SHA\n600104.SHA\n600068.SHA\n600066.SHA\n600050.SHA\n600048.SHA\n600036.SHA\n600031.SHA\n600030.SHA\n600029.SHA\n600028.SHA\n600027.SHA\n600019.SHA\n600011.SHA\n600009.SHA\n600004.SHA\n000596.SZA\n000547.SZA\n000538.SZA\n000513.SZA\n000425.SZA\n000401.SZA\n000400.SZA\n000338.SZA\n000333.SZA\n300760.SZA\n300750.SZA\n300747.SZA\n300735.SZA\n300725.SZA\n300724.SZA\n300558.SZA\n300498.SZA\n300496.SZA\n300456.SZA\n300450.SZA\n300408.SZA\n300383.SZA\n300373.SZA\n300347.SZA\n300316.SZA\n300308.SZA\n300274.SZA\n300271.SZA\n300253.SZA\n300252.SZA\n300226.SZA\n300212.SZA\n300188.SZA\n300170.SZA\n300166.SZA\n300146.SZA\n300136.SZA\n300124.SZA\n300122.SZA\n300073.SZA\n300068.SZA\n300059.SZA\n300037.SZA\n300033.SZA\n300017.SZA\n300015.SZA\n300014.SZA\n300012.SZA\n300010.SZA\n300003.SZA\n300001.SZA\n002925.SZA\n002916.SZA\n002913.SZA\n002792.SZA\n002714.SZA\n002709.SZA\n002648.SZA\n002624.SZA\n002607.SZA\n002594.SZA\n002572.SZA\n002557.SZA\n002508.SZA\n002507.SZA\n002493.SZA\n002475.SZA\n002468.SZA\n002466.SZA\n002465.SZA\n002463.SZA\n002458.SZA\n002456.SZA\n002440.SZA\n002422.SZA\n002415.SZA\n002414.SZA\n002410.SZA\n002405.SZA\n002396.SZA\n002384.SZA\n002372.SZA\n002371.SZA\n002367.SZA\n002353.SZA\n002352.SZA\n002341.SZA\n002299.SZA\n002294.SZA\n002281.SZA\n002271.SZA\n002262.SZA\n002241.SZA\n002236.SZA\n002233.SZA\n002230.SZA\n002223.SZA\n002217.SZA\n002202.SZA\n002185.SZA\n002174.SZA\n002157.SZA\n002153.SZA\n002146.SZA\n002142.SZA\n002129.SZA\n002127.SZA\n002124.SZA\n002110.SZA\n002089.SZA\n002078.SZA\n002074.SZA\n002044.SZA\n002035.SZA\n002032.SZA\n002027.SZA\n002024.SZA\n002008.SZA\n002007.SZA\n002001.SZA\n001979.SZA\n000998.SZA\n000977.SZA\n000963.SZA\n000960.SZA\n000933.SZA\n000932.SZA\n000895.SZA\n000878.SZA\n000876.SZA\n000860.SZA\n000858.SZA\n000830.SZA\n000799.SZA\n000789.SZA\n000786.SZA\n000776.SZA\n000729.SZA\n000725.SZA\n000717.SZA\n000703.SZA\n000661.SZA\n000651.SZA\n000650.SZA\n000629.SZA\n000581.SZA\n000426.SZA\n000418.SZA\n000166.SZA\n000100.SZA\n000069.SZA\n000066.SZA\n000063.SZA\n000002.SZA\n000001.SZA","ValueType":"Literal","LinkedGlobalParameter":null},{"Name":"max_count","Value":"0","ValueType":"Literal","LinkedGlobalParameter":null}],"InputPortsInternal":[{"DataSourceId":null,"TrainedModelId":null,"TransformModuleId":null,"Name":"rolling_conf","NodeId":"287d2cb0-f53c-4101-bdf8-104b137c8601-62"}],"OutputPortsInternal":[{"Name":"data","NodeId":"287d2cb0-f53c-4101-bdf8-104b137c8601-62","OutputType":null}],"UsePreviousResults":true,"moduleIdForCode":9,"IsPartOfPartialRun":null,"Comment":"预测数据,用于回测和模拟","CommentCollapsed":false},{"Id":"287d2cb0-f53c-4101-bdf8-104b137c8601-84","ModuleId":"BigQuantSpace.dropnan.dropnan-v1","ModuleParameters":[],"InputPortsInternal":[{"DataSourceId":null,"TrainedModelId":null,"TransformModuleId":null,"Name":"input_data","NodeId":"287d2cb0-f53c-4101-bdf8-104b137c8601-84"}],"OutputPortsInternal":[{"Name":"data","NodeId":"287d2cb0-f53c-4101-bdf8-104b137c8601-84","OutputType":null}],"UsePreviousResults":true,"moduleIdForCode":13,"IsPartOfPartialRun":null,"Comment":"","CommentCollapsed":true},{"Id":"-86","ModuleId":"BigQuantSpace.dropnan.dropnan-v1","ModuleParameters":[],"InputPortsInternal":[{"DataSourceId":null,"TrainedModelId":null,"TransformModuleId":null,"Name":"input_data","NodeId":"-86"}],"OutputPortsInternal":[{"Name":"data","NodeId":"-86","OutputType":null}],"UsePreviousResults":true,"moduleIdForCode":14,"IsPartOfPartialRun":null,"Comment":"","CommentCollapsed":true},{"Id":"-375","ModuleId":"BigQuantSpace.general_feature_extractor.general_feature_extractor-v7","ModuleParameters":[{"Name":"start_date","Value":"","ValueType":"Literal","LinkedGlobalParameter":null},{"Name":"end_date","Value":"","ValueType":"Literal","LinkedGlobalParameter":null},{"Name":"before_start_days","Value":"60","ValueType":"Literal","LinkedGlobalParameter":null}],"InputPortsInternal":[{"DataSourceId":null,"TrainedModelId":null,"TransformModuleId":null,"Name":"instruments","NodeId":"-375"},{"DataSourceId":null,"TrainedModelId":null,"TransformModuleId":null,"Name":"features","NodeId":"-375"}],"OutputPortsInternal":[{"Name":"data","NodeId":"-375","OutputType":null}],"UsePreviousResults":true,"moduleIdForCode":15,"IsPartOfPartialRun":null,"Comment":"","CommentCollapsed":true},{"Id":"-382","ModuleId":"BigQuantSpace.derived_feature_extractor.derived_feature_extractor-v3","ModuleParameters":[{"Name":"date_col","Value":"date","ValueType":"Literal","LinkedGlobalParameter":null},{"Name":"instrument_col","Value":"instrument","ValueType":"Literal","LinkedGlobalParameter":null},{"Name":"drop_na","Value":"False","ValueType":"Literal","LinkedGlobalParameter":null},{"Name":"remove_extra_columns","Value":"False","ValueType":"Literal","LinkedGlobalParameter":null},{"Name":"user_functions","Value":"","ValueType":"Literal","LinkedGlobalParameter":null}],"InputPortsInternal":[{"DataSourceId":null,"TrainedModelId":null,"TransformModuleId":null,"Name":"input_data","NodeId":"-382"},{"DataSourceId":null,"TrainedModelId":null,"TransformModuleId":null,"Name":"features","NodeId":"-382"}],"OutputPortsInternal":[{"Name":"data","NodeId":"-382","OutputType":null}],"UsePreviousResults":true,"moduleIdForCode":16,"IsPartOfPartialRun":null,"Comment":"","CommentCollapsed":true},{"Id":"-391","ModuleId":"BigQuantSpace.general_feature_extractor.general_feature_extractor-v7","ModuleParameters":[{"Name":"start_date","Value":"","ValueType":"Literal","LinkedGlobalParameter":null},{"Name":"end_date","Value":"","ValueType":"Literal","LinkedGlobalParameter":null},{"Name":"before_start_days","Value":"30","ValueType":"Literal","LinkedGlobalParameter":null}],"InputPortsInternal":[{"DataSourceId":null,"TrainedModelId":null,"TransformModuleId":null,"Name":"instruments","NodeId":"-391"},{"DataSourceId":null,"TrainedModelId":null,"TransformModuleId":null,"Name":"features","NodeId":"-391"}],"OutputPortsInternal":[{"Name":"data","NodeId":"-391","OutputType":null}],"UsePreviousResults":true,"moduleIdForCode":17,"IsPartOfPartialRun":null,"Comment":"","CommentCollapsed":true},{"Id":"-398","ModuleId":"BigQuantSpace.derived_feature_extractor.derived_feature_extractor-v3","ModuleParameters":[{"Name":"date_col","Value":"date","ValueType":"Literal","LinkedGlobalParameter":null},{"Name":"instrument_col","Value":"instrument","ValueType":"Literal","LinkedGlobalParameter":null},{"Name":"drop_na","Value":"False","ValueType":"Literal","LinkedGlobalParameter":null},{"Name":"remove_extra_columns","Value":"False","ValueType":"Literal","LinkedGlobalParameter":null},{"Name":"user_functions","Value":"","ValueType":"Literal","LinkedGlobalParameter":null}],"InputPortsInternal":[{"DataSourceId":null,"TrainedModelId":null,"TransformModuleId":null,"Name":"input_data","NodeId":"-398"},{"DataSourceId":null,"TrainedModelId":null,"TransformModuleId":null,"Name":"features","NodeId":"-398"}],"OutputPortsInternal":[{"Name":"data","NodeId":"-398","OutputType":null}],"UsePreviousResults":true,"moduleIdForCode":18,"IsPartOfPartialRun":null,"Comment":"","CommentCollapsed":true},{"Id":"-410","ModuleId":"BigQuantSpace.trade.trade-v4","ModuleParameters":[{"Name":"start_date","Value":"","ValueType":"Literal","LinkedGlobalParameter":null},{"Name":"end_date","Value":"","ValueType":"Literal","LinkedGlobalParameter":null},{"Name":"initialize","Value":"# 回测引擎:初始化函数,只执行一次\ndef bigquant_run(context):\n # 加载预测数据\n context.ranker_prediction = context.options['data'].read_df()\n\n # 系统已经设置了默认的交易手续费和滑点,要修改手续费可使用如下函数\n context.set_commission(PerOrder(buy_cost=0.0003, sell_cost=0.0013, min_cost=5))\n # 预测数据,通过options传入进来,使用 read_df 函数,加载到内存 (DataFrame)\n # 设置买入的股票数量,这里买入预测股票列表排名靠前的5只\n stock_count = 5\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.max_cash_per_instrument = 0.2\n context.options['hold_days'] = 5\n","ValueType":"Literal","LinkedGlobalParameter":null},{"Name":"handle_data","Value":"# 回测引擎:每日数据处理函数,每天执行一次\ndef bigquant_run(context, data):\n # 按日期过滤得到今日的预测数据\n ranker_prediction = context.ranker_prediction[\n context.ranker_prediction.date == data.current_dt.strftime('%Y-%m-%d')]\n\n # 1. 资金分配\n # 平均持仓时间是hold_days,每日都将买入股票,每日预期使用 1/hold_days 的资金\n # 实际操作中,会存在一定的买入误差,所以在前hold_days天,等量使用资金;之后,尽量使用剩余资金(这里设置最多用等量的1.5倍)\n is_staging = context.trading_day_index < context.options['hold_days'] # 是否在建仓期间(前 hold_days 天)\n cash_avg = context.portfolio.portfolio_value / context.options['hold_days']\n cash_for_buy = min(context.portfolio.cash, (1 if is_staging else 1.5) * cash_avg)\n cash_for_sell = cash_avg - (context.portfolio.cash - cash_for_buy)\n positions = {e.symbol: p.amount * p.last_sale_price\n for e, p in context.perf_tracker.position_tracker.positions.items()}\n\n # 2. 生成卖出订单:hold_days天之后才开始卖出;对持仓的股票,按机器学习算法预测的排序末位淘汰\n if not is_staging and cash_for_sell > 0:\n equities = {e.symbol: e for e, p in context.perf_tracker.position_tracker.positions.items()}\n instruments = list(reversed(list(ranker_prediction.instrument[ranker_prediction.instrument.apply(\n lambda x: x in equities and not context.has_unfinished_sell_order(equities[x]))])))\n # print('rank order for sell %s' % instruments)\n for instrument in instruments:\n context.order_target(context.symbol(instrument), 0)\n cash_for_sell -= positions[instrument]\n if cash_for_sell <= 0:\n break\n\n # 3. 生成买入订单:按机器学习算法预测的排序,买入前面的stock_count只股票\n buy_cash_weights = context.stock_weights\n buy_instruments = list(ranker_prediction.instrument[:len(buy_cash_weights)])\n max_cash_per_instrument = context.portfolio.portfolio_value * context.max_cash_per_instrument\n for i, instrument in enumerate(buy_instruments):\n cash = cash_for_buy * buy_cash_weights[i]\n if cash > max_cash_per_instrument - positions.get(instrument, 0):\n # 确保股票持仓量不会超过每次股票最大的占用资金量\n cash = max_cash_per_instrument - positions.get(instrument, 0)\n if cash > 0:\n context.order_value(context.symbol(instrument), cash)\n","ValueType":"Literal","LinkedGlobalParameter":null},{"Name":"prepare","Value":"# 回测引擎:准备数据,只执行一次\ndef bigquant_run(context):\n pass\n","ValueType":"Literal","LinkedGlobalParameter":null},{"Name":"before_trading_start","Value":"","ValueType":"Literal","LinkedGlobalParameter":null},{"Name":"volume_limit","Value":0.025,"ValueType":"Literal","LinkedGlobalParameter":null},{"Name":"order_price_field_buy","Value":"open","ValueType":"Literal","LinkedGlobalParameter":null},{"Name":"order_price_field_sell","Value":"close","ValueType":"Literal","LinkedGlobalParameter":null},{"Name":"capital_base","Value":1000000,"ValueType":"Literal","LinkedGlobalParameter":null},{"Name":"auto_cancel_non_tradable_orders","Value":"True","ValueType":"Literal","LinkedGlobalParameter":null},{"Name":"data_frequency","Value":"daily","ValueType":"Literal","LinkedGlobalParameter":null},{"Name":"price_type","Value":"后复权","ValueType":"Literal","LinkedGlobalParameter":null},{"Name":"product_type","Value":"股票","ValueType":"Literal","LinkedGlobalParameter":null},{"Name":"plot_charts","Value":"True","ValueType":"Literal","LinkedGlobalParameter":null},{"Name":"backtest_only","Value":"False","ValueType":"Literal","LinkedGlobalParameter":null},{"Name":"benchmark","Value":"000300.SHA","ValueType":"Literal","LinkedGlobalParameter":null}],"InputPortsInternal":[{"DataSourceId":null,"TrainedModelId":null,"TransformModuleId":null,"Name":"instruments","NodeId":"-410"},{"DataSourceId":null,"TrainedModelId":null,"TransformModuleId":null,"Name":"options_data","NodeId":"-410"},{"DataSourceId":null,"TrainedModelId":null,"TransformModuleId":null,"Name":"history_ds","NodeId":"-410"},{"DataSourceId":null,"TrainedModelId":null,"TransformModuleId":null,"Name":"benchmark_ds","NodeId":"-410"},{"DataSourceId":null,"TrainedModelId":null,"TransformModuleId":null,"Name":"trading_calendar","NodeId":"-410"}],"OutputPortsInternal":[{"Name":"raw_perf","NodeId":"-410","OutputType":null}],"UsePreviousResults":false,"moduleIdForCode":19,"IsPartOfPartialRun":null,"Comment":"","CommentCollapsed":true}],"SerializedClientData":"<?xml version='1.0' encoding='utf-16'?><DataV1 xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'><Meta /><NodePositions><NodePosition Node='287d2cb0-f53c-4101-bdf8-104b137c8601-8' Position='211,64,200,200'/><NodePosition Node='287d2cb0-f53c-4101-bdf8-104b137c8601-15' Position='70,183,200,200'/><NodePosition Node='287d2cb0-f53c-4101-bdf8-104b137c8601-24' Position='674,31,200,200'/><NodePosition Node='287d2cb0-f53c-4101-bdf8-104b137c8601-43' Position='531,682,200,200'/><NodePosition Node='287d2cb0-f53c-4101-bdf8-104b137c8601-53' Position='240,475,200,200'/><NodePosition Node='287d2cb0-f53c-4101-bdf8-104b137c8601-60' Position='636,792,200,200'/><NodePosition Node='287d2cb0-f53c-4101-bdf8-104b137c8601-62' Position='1073,125,200,200'/><NodePosition Node='287d2cb0-f53c-4101-bdf8-104b137c8601-84' Position='241,583,200,200'/><NodePosition Node='-86' Position='1066,528,200,200'/><NodePosition Node='-375' Position='379,188,200,200'/><NodePosition Node='-382' Position='363,357,200,200'/><NodePosition Node='-391' Position='1080,230,200,200'/><NodePosition Node='-398' Position='1078,429,200,200'/><NodePosition Node='-410' Position='514.740234375,936.48046875,200,200'/></NodePositions><NodeGroups /></DataV1>"},"IsDraft":true,"ParentExperimentId":null,"WebService":{"IsWebServiceExperiment":false,"Inputs":[],"Outputs":[],"Parameters":[{"Name":"交易日期","Value":"","ParameterDefinition":{"Name":"交易日期","FriendlyName":"交易日期","DefaultValue":"","ParameterType":"String","HasDefaultValue":true,"IsOptional":true,"ParameterRules":[],"HasRules":false,"MarkupType":0,"CredentialDescriptor":null}}],"WebServiceGroupId":null,"SerializedClientData":"<?xml version='1.0' encoding='utf-16'?><DataV1 xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'><Meta /><NodePositions></NodePositions><NodeGroups /></DataV1>"},"DisableNodesUpdate":false,"Category":"user","Tags":[],"IsPartialRun":false}
    In [4]:
    # 本代码由可视化策略环境自动生成 2019年9月10日 17:45
    # 本代码单元只能在可视化模式下编辑。您也可以拷贝代码,粘贴到新建的代码单元或者策略,然后修改。
    
    
    # 回测引擎:初始化函数,只执行一次
    def m19_initialize_bigquant_run(context):
        # 加载预测数据
        context.ranker_prediction = context.options['data'].read_df()
    
        # 系统已经设置了默认的交易手续费和滑点,要修改手续费可使用如下函数
        context.set_commission(PerOrder(buy_cost=0.0003, sell_cost=0.0013, min_cost=5))
        # 预测数据,通过options传入进来,使用 read_df 函数,加载到内存 (DataFrame)
        # 设置买入的股票数量,这里买入预测股票列表排名靠前的5只
        stock_count = 5
        # 每只的股票的权重,如下的权重分配会使得靠前的股票分配多一点的资金,[0.339160, 0.213986, 0.169580, ..]
        context.stock_weights = T.norm([1 / math.log(i + 2) for i in range(0, stock_count)])
        # 设置每只股票占用的最大资金比例
        context.max_cash_per_instrument = 0.2
        context.options['hold_days'] = 5
    
    # 回测引擎:每日数据处理函数,每天执行一次
    def m19_handle_data_bigquant_run(context, data):
        # 按日期过滤得到今日的预测数据
        ranker_prediction = context.ranker_prediction[
            context.ranker_prediction.date == data.current_dt.strftime('%Y-%m-%d')]
    
        # 1. 资金分配
        # 平均持仓时间是hold_days,每日都将买入股票,每日预期使用 1/hold_days 的资金
        # 实际操作中,会存在一定的买入误差,所以在前hold_days天,等量使用资金;之后,尽量使用剩余资金(这里设置最多用等量的1.5倍)
        is_staging = context.trading_day_index < context.options['hold_days'] # 是否在建仓期间(前 hold_days 天)
        cash_avg = context.portfolio.portfolio_value / context.options['hold_days']
        cash_for_buy = min(context.portfolio.cash, (1 if is_staging else 1.5) * cash_avg)
        cash_for_sell = cash_avg - (context.portfolio.cash - cash_for_buy)
        positions = {e.symbol: p.amount * p.last_sale_price
                     for e, p in context.perf_tracker.position_tracker.positions.items()}
    
        # 2. 生成卖出订单:hold_days天之后才开始卖出;对持仓的股票,按机器学习算法预测的排序末位淘汰
        if not is_staging and cash_for_sell > 0:
            equities = {e.symbol: e for e, p in context.perf_tracker.position_tracker.positions.items()}
            instruments = list(reversed(list(ranker_prediction.instrument[ranker_prediction.instrument.apply(
                    lambda x: x in equities and not context.has_unfinished_sell_order(equities[x]))])))
            # print('rank order for sell %s' % instruments)
            for instrument in instruments:
                context.order_target(context.symbol(instrument), 0)
                cash_for_sell -= positions[instrument]
                if cash_for_sell <= 0:
                    break
    
        # 3. 生成买入订单:按机器学习算法预测的排序,买入前面的stock_count只股票
        buy_cash_weights = context.stock_weights
        buy_instruments = list(ranker_prediction.instrument[:len(buy_cash_weights)])
        max_cash_per_instrument = context.portfolio.portfolio_value * context.max_cash_per_instrument
        for i, instrument in enumerate(buy_instruments):
            cash = cash_for_buy * buy_cash_weights[i]
            if cash > max_cash_per_instrument - positions.get(instrument, 0):
                # 确保股票持仓量不会超过每次股票最大的占用资金量
                cash = max_cash_per_instrument - positions.get(instrument, 0)
            if cash > 0:
                context.order_value(context.symbol(instrument), cash)
    
    # 回测引擎:准备数据,只执行一次
    def m19_prepare_bigquant_run(context):
        pass
    
    
    m1 = M.instruments.v2(
        start_date='2012-01-01',
        end_date='2017-12-31',
        market='CN_STOCK_A',
        instrument_list="""603993.SHA
    603986.SHA
    603885.SHA
    603833.SHA
    603816.SHA
    603636.SHA
    603588.SHA
    603583.SHA
    603444.SHA
    603369.SHA
    603363.SHA
    603288.SHA
    603260.SHA
    603259.SHA
    603128.SHA
    603026.SHA
    603019.SHA
    601989.SHA
    601988.SHA
    601985.SHA
    601939.SHA
    601933.SHA
    601888.SHA
    601881.SHA
    601877.SHA
    601869.SHA
    601857.SHA
    601766.SHA
    601699.SHA
    601688.SHA
    601678.SHA
    601668.SHA
    601633.SHA
    601601.SHA
    601600.SHA
    601398.SHA
    601377.SHA
    601336.SHA
    601319.SHA
    601318.SHA
    601288.SHA
    601238.SHA
    601233.SHA
    601225.SHA
    601211.SHA
    601186.SHA
    601166.SHA
    601155.SHA
    601138.SHA
    601111.SHA
    601088.SHA
    601066.SHA
    601021.SHA
    601012.SHA
    600999.SHA
    600977.SHA
    600975.SHA
    600967.SHA
    600900.SHA
    600887.SHA
    600886.SHA
    600875.SHA
    600872.SHA
    600867.SHA
    600845.SHA
    600837.SHA
    600820.SHA
    600810.SHA
    600809.SHA
    600801.SHA
    600789.SHA
    600779.SHA
    600763.SHA
    600745.SHA
    600741.SHA
    600740.SHA
    600728.SHA
    600702.SHA
    600699.SHA
    600690.SHA
    600660.SHA
    600606.SHA
    600596.SHA
    600588.SHA
    600585.SHA
    600570.SHA
    600547.SHA
    600522.SHA
    600519.SHA
    600516.SHA
    600507.SHA
    600498.SHA
    600487.SHA
    600486.SHA
    600460.SHA
    600456.SHA
    600438.SHA
    600436.SHA
    600426.SHA
    600406.SHA
    600383.SHA
    600373.SHA
    600366.SHA
    600362.SHA
    600352.SHA
    600340.SHA
    600312.SHA
    600309.SHA
    600305.SHA
    600298.SHA
    600276.SHA
    600258.SHA
    600256.SHA
    600196.SHA
    600188.SHA
    600183.SHA
    600176.SHA
    600161.SHA
    600141.SHA
    600115.SHA
    600104.SHA
    600068.SHA
    600066.SHA
    600050.SHA
    600048.SHA
    600036.SHA
    600031.SHA
    600030.SHA
    600029.SHA
    600028.SHA
    600027.SHA
    600019.SHA
    600011.SHA
    600009.SHA
    600004.SHA
    000596.SZA
    000547.SZA
    000538.SZA
    000513.SZA
    000425.SZA
    000401.SZA
    000400.SZA
    000338.SZA
    000333.SZA
    300760.SZA
    300750.SZA
    300747.SZA
    300735.SZA
    300725.SZA
    300724.SZA
    300558.SZA
    300498.SZA
    300496.SZA
    300456.SZA
    300450.SZA
    300408.SZA
    300383.SZA
    300373.SZA
    300347.SZA
    300316.SZA
    300308.SZA
    300274.SZA
    300271.SZA
    300253.SZA
    300252.SZA
    300226.SZA
    300212.SZA
    300188.SZA
    300170.SZA
    300166.SZA
    300146.SZA
    300136.SZA
    300124.SZA
    300122.SZA
    300073.SZA
    300068.SZA
    300059.SZA
    300037.SZA
    300033.SZA
    300017.SZA
    300015.SZA
    300014.SZA
    300012.SZA
    300010.SZA
    300003.SZA
    300001.SZA
    002925.SZA
    002916.SZA
    002913.SZA
    002792.SZA
    002714.SZA
    002709.SZA
    002648.SZA
    002624.SZA
    002607.SZA
    002594.SZA
    002572.SZA
    002557.SZA
    002508.SZA
    002507.SZA
    002493.SZA
    002475.SZA
    002468.SZA
    002466.SZA
    002465.SZA
    002463.SZA
    002458.SZA
    002456.SZA
    002440.SZA
    002422.SZA
    002415.SZA
    002414.SZA
    002410.SZA
    002405.SZA
    002396.SZA
    002384.SZA
    002372.SZA
    002371.SZA
    002367.SZA
    002353.SZA
    002352.SZA
    002341.SZA
    002299.SZA
    002294.SZA
    002281.SZA
    002271.SZA
    002262.SZA
    002241.SZA
    002236.SZA
    002233.SZA
    002230.SZA
    002223.SZA
    002217.SZA
    002202.SZA
    002185.SZA
    002174.SZA
    002157.SZA
    002153.SZA
    002146.SZA
    002142.SZA
    002129.SZA
    002127.SZA
    002124.SZA
    002110.SZA
    002089.SZA
    002078.SZA
    002074.SZA
    002044.SZA
    002035.SZA
    002032.SZA
    002027.SZA
    002024.SZA
    002008.SZA
    002007.SZA
    002001.SZA
    001979.SZA
    000998.SZA
    000977.SZA
    000963.SZA
    000960.SZA
    000933.SZA
    000932.SZA
    000895.SZA
    000878.SZA
    000876.SZA
    000860.SZA
    000858.SZA
    000830.SZA
    000799.SZA
    000789.SZA
    000786.SZA
    000776.SZA
    000729.SZA
    000725.SZA
    000717.SZA
    000703.SZA
    000661.SZA
    000651.SZA
    000650.SZA
    000629.SZA
    000581.SZA
    000426.SZA
    000418.SZA
    000166.SZA
    000100.SZA
    000069.SZA
    000066.SZA
    000063.SZA
    000002.SZA
    000001.SZA""",
        max_count=0
    )
    
    m2 = M.advanced_auto_labeler.v2(
        instruments=m1.data,
        label_expr="""# #号开始的表示注释
    # 0. 每行一个,顺序执行,从第二个开始,可以使用label字段
    # 1. 可用数据字段见 {{web_host_url}}docs/data_history_data.html
    #   添加benchmark_前缀,可使用对应的benchmark数据
    # 2. 可用操作符和函数见 `表达式引擎 <{{web_host_url}}docs/big_expr.html>`_
    
    # 计算收益:5日收盘价(作为卖出价格)除以明日开盘价(作为买入价格)
    shift(close, -5) / shift(open, -1)
    
    # 极值处理:用1%和99%分位的值做clip
    clip(label, all_quantile(label, 0.01), all_quantile(label, 0.99))
    
    # 将分数映射到分类,这里使用20个分类
    all_wbins(label, 20)
    
    # 过滤掉一字涨停的情况 (设置label为NaN,在后续处理和训练中会忽略NaN的label)
    where(shift(high, -1) == shift(low, -1), NaN, label)
    """,
        start_date='',
        end_date='',
        benchmark='000300.SHA',
        drop_na_label=True,
        cast_label_int=True
    )
    
    m3 = M.input_features.v1(
        features="""# #号开始的表示注释
    # 多个特征,每行一个,可以包含基础特征和衍生特征
    
    
    -1*correlation(rank(open_0),rank(volume_0),10)
    -1*rank(covariance(rank(close_0),rank(volume_0),5))
    -1*sum(rank(correlation(rank(high_0),rank(volume_0),3)),3)
    -1*rank(covariance(rank(high_0),rank(volume_0),5))
    (-1*correlation(high_0,rank(volume_0),5))
    (-1*ts_max(rank(correlation(rank(volume_0),rank(amount_0/volume_0*adjust_factor_0),5)),5))
    -1*correlation(rank(((close_0-ts_min(low_0,12))/(ts_max(high_0,12)-ts_min(low_0,12)))),rank(volume_0),6)
    
    market_cap_0	
    return_20
    avg_turn_20
    volatility_30_0
    """
    )
    
    m15 = M.general_feature_extractor.v7(
        instruments=m1.data,
        features=m3.data,
        start_date='',
        end_date='',
        before_start_days=60
    )
    
    m16 = M.derived_feature_extractor.v3(
        input_data=m15.data,
        features=m3.data,
        date_col='date',
        instrument_col='instrument',
        drop_na=False,
        remove_extra_columns=False
    )
    
    m7 = M.join.v3(
        data1=m2.data,
        data2=m16.data,
        on='date,instrument',
        how='inner',
        sort=False
    )
    
    m13 = M.dropnan.v1(
        input_data=m7.data
    )
    
    m6 = M.stock_ranker_train.v5(
        training_ds=m13.data,
        features=m3.data,
        learning_algorithm='排序',
        number_of_leaves=30,
        minimum_docs_per_leaf=1000,
        number_of_trees=20,
        learning_rate=0.1,
        max_bins=1023,
        feature_fraction=1,
        m_lazy_run=False
    )
    
    m9 = M.instruments.v2(
        start_date=T.live_run_param('trading_date', '2019-05-01'),
        end_date=T.live_run_param('trading_date', '2019-08-21'),
        market='CN_STOCK_A',
        instrument_list="""603993.SHA
    603986.SHA
    603885.SHA
    603833.SHA
    603816.SHA
    603636.SHA
    603588.SHA
    603583.SHA
    603444.SHA
    603369.SHA
    603363.SHA
    603288.SHA
    603260.SHA
    603259.SHA
    603128.SHA
    603026.SHA
    603019.SHA
    601989.SHA
    601988.SHA
    601985.SHA
    601939.SHA
    601933.SHA
    601888.SHA
    601881.SHA
    601877.SHA
    601869.SHA
    601857.SHA
    601766.SHA
    601699.SHA
    601688.SHA
    601678.SHA
    601668.SHA
    601633.SHA
    601601.SHA
    601600.SHA
    601398.SHA
    601377.SHA
    601336.SHA
    601319.SHA
    601318.SHA
    601288.SHA
    601238.SHA
    601233.SHA
    601225.SHA
    601211.SHA
    601186.SHA
    601166.SHA
    601155.SHA
    601138.SHA
    601111.SHA
    601088.SHA
    601066.SHA
    601021.SHA
    601012.SHA
    600999.SHA
    600977.SHA
    600975.SHA
    600967.SHA
    600900.SHA
    600887.SHA
    600886.SHA
    600875.SHA
    600872.SHA
    600867.SHA
    600845.SHA
    600837.SHA
    600820.SHA
    600810.SHA
    600809.SHA
    600801.SHA
    600789.SHA
    600779.SHA
    600763.SHA
    600745.SHA
    600741.SHA
    600740.SHA
    600728.SHA
    600702.SHA
    600699.SHA
    600690.SHA
    600660.SHA
    600606.SHA
    600596.SHA
    600588.SHA
    600585.SHA
    600570.SHA
    600547.SHA
    600522.SHA
    600519.SHA
    600516.SHA
    600507.SHA
    600498.SHA
    600487.SHA
    600486.SHA
    600460.SHA
    600456.SHA
    600438.SHA
    600436.SHA
    600426.SHA
    600406.SHA
    600383.SHA
    600373.SHA
    600366.SHA
    600362.SHA
    600352.SHA
    600340.SHA
    600312.SHA
    600309.SHA
    600305.SHA
    600298.SHA
    600276.SHA
    600258.SHA
    600256.SHA
    600196.SHA
    600188.SHA
    600183.SHA
    600176.SHA
    600161.SHA
    600141.SHA
    600115.SHA
    600104.SHA
    600068.SHA
    600066.SHA
    600050.SHA
    600048.SHA
    600036.SHA
    600031.SHA
    600030.SHA
    600029.SHA
    600028.SHA
    600027.SHA
    600019.SHA
    600011.SHA
    600009.SHA
    600004.SHA
    000596.SZA
    000547.SZA
    000538.SZA
    000513.SZA
    000425.SZA
    000401.SZA
    000400.SZA
    000338.SZA
    000333.SZA
    300760.SZA
    300750.SZA
    300747.SZA
    300735.SZA
    300725.SZA
    300724.SZA
    300558.SZA
    300498.SZA
    300496.SZA
    300456.SZA
    300450.SZA
    300408.SZA
    300383.SZA
    300373.SZA
    300347.SZA
    300316.SZA
    300308.SZA
    300274.SZA
    300271.SZA
    300253.SZA
    300252.SZA
    300226.SZA
    300212.SZA
    300188.SZA
    300170.SZA
    300166.SZA
    300146.SZA
    300136.SZA
    300124.SZA
    300122.SZA
    300073.SZA
    300068.SZA
    300059.SZA
    300037.SZA
    300033.SZA
    300017.SZA
    300015.SZA
    300014.SZA
    300012.SZA
    300010.SZA
    300003.SZA
    300001.SZA
    002925.SZA
    002916.SZA
    002913.SZA
    002792.SZA
    002714.SZA
    002709.SZA
    002648.SZA
    002624.SZA
    002607.SZA
    002594.SZA
    002572.SZA
    002557.SZA
    002508.SZA
    002507.SZA
    002493.SZA
    002475.SZA
    002468.SZA
    002466.SZA
    002465.SZA
    002463.SZA
    002458.SZA
    002456.SZA
    002440.SZA
    002422.SZA
    002415.SZA
    002414.SZA
    002410.SZA
    002405.SZA
    002396.SZA
    002384.SZA
    002372.SZA
    002371.SZA
    002367.SZA
    002353.SZA
    002352.SZA
    002341.SZA
    002299.SZA
    002294.SZA
    002281.SZA
    002271.SZA
    002262.SZA
    002241.SZA
    002236.SZA
    002233.SZA
    002230.SZA
    002223.SZA
    002217.SZA
    002202.SZA
    002185.SZA
    002174.SZA
    002157.SZA
    002153.SZA
    002146.SZA
    002142.SZA
    002129.SZA
    002127.SZA
    002124.SZA
    002110.SZA
    002089.SZA
    002078.SZA
    002074.SZA
    002044.SZA
    002035.SZA
    002032.SZA
    002027.SZA
    002024.SZA
    002008.SZA
    002007.SZA
    002001.SZA
    001979.SZA
    000998.SZA
    000977.SZA
    000963.SZA
    000960.SZA
    000933.SZA
    000932.SZA
    000895.SZA
    000878.SZA
    000876.SZA
    000860.SZA
    000858.SZA
    000830.SZA
    000799.SZA
    000789.SZA
    000786.SZA
    000776.SZA
    000729.SZA
    000725.SZA
    000717.SZA
    000703.SZA
    000661.SZA
    000651.SZA
    000650.SZA
    000629.SZA
    000581.SZA
    000426.SZA
    000418.SZA
    000166.SZA
    000100.SZA
    000069.SZA
    000066.SZA
    000063.SZA
    000002.SZA
    000001.SZA""",
        max_count=0
    )
    
    m17 = M.general_feature_extractor.v7(
        instruments=m9.data,
        features=m3.data,
        start_date='',
        end_date='',
        before_start_days=30
    )
    
    m18 = M.derived_feature_extractor.v3(
        input_data=m17.data,
        features=m3.data,
        date_col='date',
        instrument_col='instrument',
        drop_na=False,
        remove_extra_columns=False
    )
    
    m14 = M.dropnan.v1(
        input_data=m18.data
    )
    
    m8 = M.stock_ranker_predict.v5(
        model=m6.model,
        data=m14.data,
        m_lazy_run=False
    )
    
    m19 = M.trade.v4(
        instruments=m9.data,
        options_data=m8.predictions,
        start_date='',
        end_date='',
        initialize=m19_initialize_bigquant_run,
        handle_data=m19_handle_data_bigquant_run,
        prepare=m19_prepare_bigquant_run,
        volume_limit=0.025,
        order_price_field_buy='open',
        order_price_field_sell='close',
        capital_base=1000000,
        auto_cancel_non_tradable_orders=True,
        data_frequency='daily',
        price_type='后复权',
        product_type='股票',
        plot_charts=True,
        backtest_only=False,
        benchmark='000300.SHA'
    )
    
    设置测试数据集,查看训练迭代过程的NDCG
    bigcharts-data-start/{"__id":"bigchart-8053bd3409b743478e0c26c7621f9cfb","__type":"tabs"}/bigcharts-data-end
    • 收益率8.02%
    • 年化收益率28.71%
    • 基准收益率-3.36%
    • 阿尔法0.34
    • 贝塔0.69
    • 夏普比率1.01
    • 胜率0.5
    • 盈亏比1.38
    • 收益波动率25.28%
    • 信息比率0.11
    • 最大回撤10.84%
    bigcharts-data-start/{"__id":"bigchart-b6f1e59461ea4bc091a46389bbdf181f","__type":"tabs"}/bigcharts-data-end

    求助, 测试集和训练集使用了固定的股票池来做回测, 为什么模拟中会出现非股票池中的个股??


    (iQuant) #2

    收到,我们来帮您看一下。


    (xgl891) #3

    您好,我这边运行没有发现您说的情况,请问您那边具体是哪些股票出现了这样的问题?我们好再具体定位一下