From aff5e32bb4df375ae245bee387eccb89f0f46bf5 Mon Sep 17 00:00:00 2001 From: liaozhaorun Date: Sun, 4 May 2025 22:00:05 +0800 Subject: [PATCH] =?UTF-8?q?classify2=E8=B5=9A=E9=92=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main/data/daily_basic.ipynb | 605 +- main/data/daily_data.py | 11 - main/data/finance.ipynb | 11717 ++++++++++++++++ .../factor/__pycache__/factor.cpython-311.pyc | Bin 117279 -> 137608 bytes main/factor/factor.csv | 63 + main/factor/factor.py | 1991 ++- main/factor/factor.txt | 63 + main/train/Classify2.ipynb | 1903 +++ main/train/LinearRegression.ipynb | 1929 +++ main/train/RollingRankCopy.ipynb | 1903 ++- .../catboost_info/catboost_training.json | 5054 +------ .../catboost_info/learn/events.out.tfevents | Bin 274870 -> 6340 bytes main/train/catboost_info/learn_error.tsv | 5054 +------ .../catboost_info/test/events.out.tfevents | Bin 274870 -> 6340 bytes main/train/catboost_info/test_error.tsv | 5054 +------ main/train/catboost_info/time_left.tsv | 5052 +------ main/train/predictions_test.tsv | 1110 +- main/train/test.ipynb | 200 + main/train/test.py | 9 +- 19 files changed, 19755 insertions(+), 21963 deletions(-) delete mode 100644 main/data/daily_data.py create mode 100644 main/data/finance.ipynb create mode 100644 main/factor/factor.csv create mode 100644 main/factor/factor.txt create mode 100644 main/train/Classify2.ipynb create mode 100644 main/train/LinearRegression.ipynb create mode 100644 main/train/test.ipynb diff --git a/main/data/daily_basic.ipynb b/main/data/daily_basic.ipynb index a9db707..6ee2828 100644 --- a/main/data/daily_basic.ipynb +++ b/main/data/daily_basic.ipynb @@ -2,6 +2,7 @@ "cells": [ { "cell_type": "code", + "execution_count": 1, "id": "18d1d622-b083-4cc4-a6f8-7c1ed2d0edd2", "metadata": { "ExecuteTime": { @@ -9,23 +10,25 @@ "start_time": "2025-03-02T09:47:07.512525Z" } }, + "outputs": [], "source": [ "import tushare as ts\n", "\n", "ts.set_token('3a0741c702ee7e5e5f2bf1f0846bafaafe4e320833240b2a7e4a685f')\n", "pro = ts.pro_api()" - ], - "outputs": [], - "execution_count": 2 + ] }, { + "cell_type": "code", + "execution_count": 2, + "id": "bc8f03e027027004", "metadata": { "ExecuteTime": { "end_time": "2025-03-02T09:47:10.242731Z", "start_time": "2025-03-02T09:47:08.470810Z" } }, - "cell_type": "code", + "outputs": [], "source": [ "from datetime import datetime\n", "import pandas as pd\n", @@ -70,89 +73,50 @@ "name_change_dict = {}\n", "for ts_code, group in name_change_df.groupby('ts_code'):\n", " # 只保留 'ST' 和 '*ST' 的记录\n", - " st_data = group[(group['change_reason'] == 'ST') | (group['change_reason'] == '*ST')]\n", + " # st_data = group[(group['change_reason'] == 'ST') | (group['change_reason'] == '*ST')]\n", + " st_data = group[group['name'].str.contains('ST')]\n", " if not st_data.empty:\n", " name_change_dict[ts_code] = filter_rows(st_data)" - ], - "id": "bc8f03e027027004", - "outputs": [], - "execution_count": 3 + ] }, { "cell_type": "code", + "execution_count": 3, "id": "553cfb36-f560-4cc4-b2bc-68323ccc5072", "metadata": { - "scrolled": true, "ExecuteTime": { "end_time": "2025-03-02T08:33:15.997350Z", "start_time": "2025-03-02T08:17:08.727232Z" - } + }, + "scrolled": true }, - "source": [ - "import tushare as ts\n", - "import pandas as pd\n", - "import time\n", - "from concurrent.futures import ThreadPoolExecutor, as_completed\n", - "\n", - "# 获取交易日历\n", - "trade_cal = pro.trade_cal(exchange='', start_date='20170101', end_date='20250301')\n", - "trade_cal = trade_cal[trade_cal['is_open'] == 1] # 只保留交易日\n", - "trade_dates = trade_cal['cal_date'].tolist() # 获取所有交易日期列表\n", - "\n", - "# 使用 HDFStore 存储数据\n", - "all_daily_data = []\n", - "\n", - "# API 调用计数和时间控制变量\n", - "api_call_count = 0\n", - "batch_start_time = time.time()\n", - "\n", - "\n", - "def get_data(trade_date):\n", - " daily_basic_data = pro.daily_basic(ts_code='', trade_date=trade_date)\n", - " if daily_basic_data is not None and not daily_basic_data.empty:\n", - " # 添加交易日期列标识\n", - " daily_basic_data['trade_date'] = trade_date\n", - " daily_basic_data['is_st'] = daily_basic_data.apply(\n", - " lambda row: is_st(name_change_dict, row['ts_code'], row['trade_date']), axis=1\n", - " )\n", - " time.sleep(0.2)\n", - " # print(f\"成功获取并保存 {trade_date} 的每日基础数据\")\n", - " return daily_basic_data\n", - "\n", - "\n", - "# 遍历每个交易日期并获取数据\n", - "with ThreadPoolExecutor(max_workers=2) as executor:\n", - " future_to_date = {executor.submit(get_data, td): td for td in trade_dates}\n", - "\n", - " for future in as_completed(future_to_date):\n", - " trade_date = future_to_date[future] # 获取对应的交易日期\n", - " try:\n", - " result = future.result() # 获取任务执行的结果\n", - " all_daily_data.append(result)\n", - " print(f\"任务 {trade_date} 完成\")\n", - " except Exception as e:\n", - " print(f\"获取 {trade_date} 数据时出错: {e}\")\n", - " # 计数一次 API 调用\n", - " api_call_count += 1\n", - "\n", - " # 每调用 300 次,检查时间是否少于 1 分钟,如果少于则等待剩余时间\n", - " if api_call_count % 150 == 0:\n", - " elapsed = time.time() - batch_start_time\n", - " if elapsed < 60:\n", - " sleep_time = 60 - elapsed\n", - " print(f\"已调用 150 次 API,等待 {sleep_time:.2f} 秒以满足速率限制...\")\n", - " time.sleep(sleep_time)\n", - " # 重置批次起始时间\n", - " batch_start_time = time.time()\n", - "\n" - ], "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "任务 20250331 完成\n", + "任务 20250430 完成\n", + "任务 20250429 完成\n", + "任务 20250428 完成\n", + "任务 20250425 完成\n", + "任务 20250424 完成\n", + "任务 20250423 完成\n", + "任务 20250422 完成\n", + "任务 20250421 完成\n", + "任务 20250418 完成\n", + "任务 20250417 完成\n", + "任务 20250416 完成\n", + "任务 20250415 完成\n", + "任务 20250414 完成\n", + "任务 20250411 完成\n", + "任务 20250410 完成\n", + "任务 20250409 完成\n", + "任务 20250408 完成\n", + "任务 20250407 完成\n", + "任务 20250403 完成\n", + "任务 20250402 完成\n", "任务 20250401 完成\n", + "任务 20250331 完成\n", "任务 20250328 完成\n", "任务 20250327 完成\n", "任务 20250326 完成\n", @@ -165,14 +129,14 @@ "任务 20250317 完成\n", "任务 20250314 完成\n", "任务 20250313 完成\n", - "任务 20250311 完成\n", "任务 20250312 完成\n", + "任务 20250311 完成\n", "任务 20250310 完成\n", "任务 20250307 完成\n", "任务 20250306 完成\n", "任务 20250305 完成\n", - "任务 20250303 完成\n", "任务 20250304 完成\n", + "任务 20250303 完成\n", "任务 20250227 完成\n", "任务 20250228 完成\n", "任务 20250226 完成\n", @@ -194,14 +158,14 @@ "任务 20250127 完成\n", "任务 20250124 完成\n", "任务 20250123 完成\n", - "任务 20250122 完成\n", "任务 20250121 完成\n", + "任务 20250122 完成\n", "任务 20250120 完成\n", "任务 20250117 完成\n", "任务 20250116 完成\n", "任务 20250115 完成\n", - "任务 20250114 完成\n", "任务 20250113 完成\n", + "任务 20250114 完成\n", "任务 20250110 完成\n", "任务 20250109 完成\n", "任务 20250108 完成\n", @@ -211,27 +175,27 @@ "任务 20250102 完成\n", "任务 20241231 完成\n", "任务 20241230 完成\n", - "任务 20241227 完成\n", - "任务 20241225 完成\n", "任务 20241226 完成\n", + "任务 20241227 完成\n", "任务 20241224 完成\n", + "任务 20241225 完成\n", "任务 20241223 完成\n", "任务 20241220 完成\n", - "任务 20241219 完成\n", "任务 20241218 完成\n", - "任务 20241217 完成\n", + "任务 20241219 完成\n", "任务 20241216 完成\n", + "任务 20241217 完成\n", "任务 20241213 完成\n", "任务 20241212 完成\n", "任务 20241211 完成\n", "任务 20241210 完成\n", "任务 20241209 完成\n", - "任务 20241205 完成\n", "任务 20241206 完成\n", - "任务 20241204 完成\n", + "任务 20241205 完成\n", "任务 20241203 完成\n", - "任务 20241202 完成\n", + "任务 20241204 完成\n", "任务 20241129 完成\n", + "任务 20241202 完成\n", "任务 20241128 完成\n", "任务 20241127 完成\n", "任务 20241126 完成\n", @@ -241,8 +205,8 @@ "任务 20241120 完成\n", "任务 20241119 完成\n", "任务 20241118 完成\n", - "任务 20241115 完成\n", "任务 20241114 完成\n", + "任务 20241115 完成\n", "任务 20241113 完成\n", "任务 20241112 完成\n", "任务 20241111 完成\n", @@ -276,8 +240,8 @@ "任务 20240925 完成\n", "任务 20240924 完成\n", "任务 20240923 完成\n", - "任务 20240920 完成\n", "任务 20240919 完成\n", + "任务 20240920 完成\n", "任务 20240918 完成\n", "任务 20240913 完成\n", "任务 20240912 完成\n", @@ -285,16 +249,16 @@ "任务 20240910 完成\n", "任务 20240909 完成\n", "任务 20240906 完成\n", - "任务 20240905 完成\n", "任务 20240904 完成\n", + "任务 20240905 完成\n", "任务 20240903 完成\n", "任务 20240902 完成\n", "任务 20240830 完成\n", "任务 20240829 完成\n", "任务 20240828 完成\n", "任务 20240827 完成\n", - "任务 20240826 完成\n", "任务 20240823 完成\n", + "任务 20240826 完成\n", "任务 20240822 完成\n", "任务 20240821 完成\n", "任务 20240820 完成\n", @@ -303,36 +267,36 @@ "任务 20240815 完成\n", "任务 20240814 完成\n", "任务 20240813 完成\n", - "任务 20240812 完成\n", "任务 20240809 完成\n", + "任务 20240812 完成\n", "任务 20240808 完成\n", "任务 20240807 完成\n", "任务 20240806 完成\n", "任务 20240805 完成\n", "任务 20240802 完成\n", - "任务 20240801 完成\n", "任务 20240731 完成\n", - "任务 20240729 完成\n", + "任务 20240801 完成\n", "任务 20240730 完成\n", + "任务 20240729 完成\n", "任务 20240726 完成\n", "任务 20240725 完成\n", "任务 20240724 完成\n", - "任务 20240723 完成\n", "任务 20240722 完成\n", - "任务 20240719 完成\n", + "任务 20240723 完成\n", "任务 20240718 完成\n", + "任务 20240719 完成\n", "任务 20240717 完成\n", "任务 20240716 完成\n", - "任务 20240715 完成\n", "任务 20240712 完成\n", + "任务 20240715 完成\n", "任务 20240711 完成\n", "任务 20240710 完成\n", "任务 20240709 完成\n", "任务 20240708 完成\n", "任务 20240705 完成\n", "任务 20240704 完成\n", - "任务 20240703 完成\n", "任务 20240702 完成\n", + "任务 20240703 完成\n", "任务 20240701 完成\n", "任务 20240628 完成\n", "任务 20240627 完成\n", @@ -352,41 +316,41 @@ "任务 20240606 完成\n", "任务 20240605 完成\n", "任务 20240604 完成\n", - "任务 20240603 完成\n", "任务 20240531 完成\n", + "任务 20240603 完成\n", "任务 20240530 完成\n", "任务 20240529 完成\n", "任务 20240528 完成\n", "任务 20240527 完成\n", "任务 20240524 完成\n", - "任务 20240523 完成\n", "任务 20240522 完成\n", + "任务 20240523 完成\n", "任务 20240521 完成\n", "任务 20240520 完成\n", "任务 20240517 完成\n", - "任务 20240515 完成\n", "任务 20240516 完成\n", + "任务 20240515 完成\n", "任务 20240514 完成\n", "任务 20240513 完成\n", "任务 20240510 完成\n", "任务 20240509 完成\n", "任务 20240508 完成\n", - "任务 20240507 完成\n", "任务 20240506 完成\n", - "任务 20240430 完成\n", + "任务 20240507 完成\n", "任务 20240429 完成\n", + "任务 20240430 完成\n", "任务 20240426 完成\n", "任务 20240425 完成\n", - "任务 20240423 完成\n", "任务 20240424 完成\n", + "任务 20240423 完成\n", "任务 20240422 完成\n", "任务 20240419 完成\n", - "任务 20240417 完成\n", "任务 20240418 完成\n", + "任务 20240417 完成\n", "任务 20240416 完成\n", "任务 20240415 完成\n", - "任务 20240412 完成\n", "任务 20240411 完成\n", + "任务 20240412 完成\n", "任务 20240410 完成\n", "任务 20240409 完成\n", "任务 20240408 完成\n", @@ -395,8 +359,8 @@ "任务 20240401 完成\n", "任务 20240329 完成\n", "任务 20240328 完成\n", - "任务 20240327 完成\n", "任务 20240326 完成\n", + "任务 20240327 完成\n", "任务 20240325 完成\n", "任务 20240322 完成\n", "任务 20240321 完成\n", @@ -454,8 +418,8 @@ "任务 20231229 完成\n", "任务 20231228 完成\n", "任务 20231227 完成\n", - "任务 20231226 完成\n", "任务 20231225 完成\n", + "任务 20231226 完成\n", "任务 20231222 完成\n", "任务 20231221 完成\n", "任务 20231220 完成\n", @@ -470,14 +434,14 @@ "任务 20231207 完成\n", "任务 20231206 完成\n", "任务 20231205 完成\n", - "任务 20231204 完成\n", "任务 20231201 完成\n", + "任务 20231204 完成\n", "任务 20231130 完成\n", "任务 20231129 完成\n", "任务 20231128 完成\n", "任务 20231127 完成\n", - "任务 20231123 完成\n", "任务 20231124 完成\n", + "任务 20231123 完成\n", "任务 20231122 完成\n", "任务 20231121 完成\n", "任务 20231120 完成\n", @@ -492,43 +456,43 @@ "任务 20231107 完成\n", "任务 20231106 完成\n", "任务 20231103 完成\n", + "任务 20231101 完成\n", "任务 20231102 完成\n", "任务 20231031 完成\n", - "任务 20231101 完成\n", "任务 20231030 完成\n", "任务 20231027 完成\n", "任务 20231026 完成\n", "任务 20231025 完成\n", "任务 20231024 完成\n", "任务 20231023 完成\n", - "任务 20231019 完成\n", "任务 20231020 完成\n", - "任务 20231017 完成\n", + "任务 20231019 完成\n", "任务 20231018 完成\n", + "任务 20231017 完成\n", "任务 20231016 完成\n", - "任务 20231013 完成\n", "任务 20231012 完成\n", + "任务 20231013 完成\n", "任务 20231011 完成\n", "任务 20231010 完成\n", "任务 20231009 完成\n", "任务 20230928 完成\n", "任务 20230927 完成\n", - "任务 20230926 完成\n", "任务 20230925 完成\n", + "任务 20230926 完成\n", "任务 20230922 完成\n", "任务 20230921 完成\n", "任务 20230920 完成\n", "任务 20230919 完成\n", "任务 20230918 完成\n", "任务 20230915 完成\n", - "任务 20230914 完成\n", "任务 20230913 完成\n", + "任务 20230914 完成\n", "任务 20230912 完成\n", "任务 20230911 完成\n", "任务 20230908 完成\n", "任务 20230907 完成\n", - "任务 20230906 完成\n", "任务 20230905 完成\n", + "任务 20230906 完成\n", "任务 20230904 完成\n", "任务 20230901 完成\n", "任务 20230831 完成\n", @@ -545,11 +509,11 @@ "任务 20230816 完成\n", "任务 20230815 完成\n", "任务 20230814 完成\n", - "任务 20230810 完成\n", "任务 20230811 完成\n", + "任务 20230810 完成\n", "任务 20230809 完成\n", - "任务 20230808 完成\n", "任务 20230807 完成\n", + "任务 20230808 完成\n", "任务 20230804 完成\n", "任务 20230803 完成\n", "任务 20230802 完成\n", @@ -562,11 +526,11 @@ "任务 20230724 完成\n", "任务 20230721 完成\n", "任务 20230720 完成\n", - "任务 20230719 完成\n", "任务 20230718 完成\n", + "任务 20230719 完成\n", "任务 20230717 完成\n", - "任务 20230714 完成\n", "任务 20230713 完成\n", + "任务 20230714 完成\n", "任务 20230712 完成\n", "任务 20230711 完成\n", "任务 20230710 完成\n", @@ -592,15 +556,15 @@ "任务 20230608 完成\n", "任务 20230607 完成\n", "任务 20230606 完成\n", - "任务 20230602 完成\n", "任务 20230605 完成\n", + "任务 20230602 完成\n", "任务 20230601 完成\n", "任务 20230531 完成\n", "任务 20230530 完成\n", - "任务 20230529 完成\n", "任务 20230526 完成\n", - "任务 20230525 完成\n", + "任务 20230529 完成\n", "任务 20230524 完成\n", + "任务 20230525 完成\n", "任务 20230523 完成\n", "任务 20230522 完成\n", "任务 20230519 完成\n", @@ -609,16 +573,16 @@ "任务 20230516 完成\n", "任务 20230515 完成\n", "任务 20230512 完成\n", - "任务 20230511 完成\n", "任务 20230510 完成\n", + "任务 20230511 完成\n", "任务 20230509 完成\n", "任务 20230508 完成\n", "任务 20230505 完成\n", "任务 20230504 完成\n", "任务 20230428 完成\n", + "任务 20230426 完成\n", "任务 20230427 完成\n", "任务 20230425 完成\n", - "任务 20230426 完成\n", "任务 20230424 完成\n", "任务 20230421 完成\n", "任务 20230420 完成\n", @@ -631,14 +595,14 @@ "任务 20230411 完成\n", "任务 20230410 完成\n", "任务 20230407 完成\n", - "任务 20230404 完成\n", "任务 20230406 完成\n", + "任务 20230404 完成\n", "任务 20230403 完成\n", "任务 20230331 完成\n", - "任务 20230330 完成\n", "任务 20230329 完成\n", "任务 20230328 完成\n", "任务 20230327 完成\n", + "任务 20230330 完成\n", "任务 20230324 完成\n", "任务 20230323 完成\n", "任务 20230322 完成\n", @@ -648,10 +612,10 @@ "任务 20230316 完成\n", "任务 20230315 完成\n", "任务 20230314 完成\n", - "任务 20230313 完成\n", "任务 20230310 完成\n", - "任务 20230309 完成\n", + "任务 20230313 完成\n", "任务 20230308 完成\n", + "任务 20230309 完成\n", "任务 20230307 完成\n", "任务 20230306 完成\n", "任务 20230303 完成\n", @@ -661,24 +625,24 @@ "任务 20230227 完成\n", "任务 20230224 完成\n", "任务 20230223 完成\n", - "任务 20230222 完成\n", "任务 20230221 完成\n", + "任务 20230222 完成\n", "任务 20230220 完成\n", "任务 20230217 完成\n", - "任务 20230216 完成\n", "任务 20230215 完成\n", + "任务 20230216 完成\n", "任务 20230214 完成\n", "任务 20230213 完成\n", "任务 20230210 完成\n", "任务 20230209 完成\n", "任务 20230208 完成\n", "任务 20230207 完成\n", - "任务 20230203 完成\n", "任务 20230206 完成\n", + "任务 20230203 完成\n", "任务 20230202 完成\n", "任务 20230201 完成\n", - "任务 20230131 完成\n", "任务 20230130 完成\n", + "任务 20230131 完成\n", "任务 20230120 完成\n", "任务 20230119 完成\n", "任务 20230118 完成\n", @@ -717,8 +681,8 @@ "任务 20221201 完成\n", "任务 20221130 完成\n", "任务 20221129 完成\n", - "任务 20221128 完成\n", "任务 20221125 完成\n", + "任务 20221128 完成\n", "任务 20221124 完成\n", "任务 20221123 完成\n", "任务 20221122 完成\n", @@ -728,8 +692,8 @@ "任务 20221116 完成\n", "任务 20221115 完成\n", "任务 20221114 完成\n", - "任务 20221111 完成\n", "任务 20221110 完成\n", + "任务 20221111 完成\n", "任务 20221109 完成\n", "任务 20221108 完成\n", "任务 20221107 完成\n", @@ -742,10 +706,10 @@ "任务 20221027 完成\n", "任务 20221026 完成\n", "任务 20221025 完成\n", - "任务 20221024 完成\n", "任务 20221021 完成\n", - "任务 20221020 完成\n", + "任务 20221024 完成\n", "任务 20221019 完成\n", + "任务 20221020 完成\n", "任务 20221018 完成\n", "任务 20221017 完成\n", "任务 20221014 完成\n", @@ -757,8 +721,8 @@ "任务 20220929 完成\n", "任务 20220928 完成\n", "任务 20220927 完成\n", - "任务 20220926 完成\n", "任务 20220923 完成\n", + "任务 20220926 完成\n", "任务 20220922 完成\n", "任务 20220921 完成\n", "任务 20220920 完成\n", @@ -768,8 +732,8 @@ "任务 20220914 完成\n", "任务 20220913 完成\n", "任务 20220909 完成\n", - "任务 20220908 完成\n", "任务 20220907 完成\n", + "任务 20220908 完成\n", "任务 20220906 完成\n", "任务 20220905 完成\n", "任务 20220902 完成\n", @@ -790,24 +754,24 @@ "任务 20220812 完成\n", "任务 20220811 完成\n", "任务 20220810 完成\n", - "任务 20220809 完成\n", "任务 20220808 完成\n", + "任务 20220809 完成\n", "任务 20220805 完成\n", "任务 20220804 完成\n", "任务 20220803 完成\n", "任务 20220802 完成\n", - "任务 20220801 完成\n", "任务 20220729 完成\n", + "任务 20220801 完成\n", "任务 20220728 完成\n", "任务 20220727 完成\n", - "任务 20220726 完成\n", "任务 20220725 完成\n", + "任务 20220726 完成\n", "任务 20220722 完成\n", "任务 20220721 完成\n", "任务 20220720 完成\n", "任务 20220719 完成\n", - "任务 20220718 完成\n", "任务 20220715 完成\n", + "任务 20220718 完成\n", "任务 20220714 完成\n", "任务 20220713 完成\n", "任务 20220712 完成\n", @@ -820,8 +784,8 @@ "任务 20220701 完成\n", "任务 20220630 完成\n", "任务 20220629 完成\n", - "任务 20220628 完成\n", "任务 20220627 完成\n", + "任务 20220628 完成\n", "任务 20220624 完成\n", "任务 20220623 完成\n", "任务 20220622 完成\n", @@ -843,20 +807,20 @@ "任务 20220530 完成\n", "任务 20220527 完成\n", "任务 20220526 完成\n", - "任务 20220525 完成\n", "任务 20220524 完成\n", - "任务 20220523 完成\n", + "任务 20220525 完成\n", "任务 20220520 完成\n", + "任务 20220523 完成\n", "任务 20220519 完成\n", "任务 20220518 完成\n", "任务 20220517 完成\n", "任务 20220516 完成\n", - "任务 20220513 完成\n", "任务 20220512 完成\n", - "任务 20220511 完成\n", + "任务 20220513 完成\n", "任务 20220510 完成\n", - "任务 20220509 完成\n", + "任务 20220511 完成\n", "任务 20220506 完成\n", + "任务 20220509 完成\n", "任务 20220505 完成\n", "任务 20220429 完成\n", "任务 20220428 完成\n", @@ -898,8 +862,8 @@ "任务 20220307 完成\n", "任务 20220304 完成\n", "任务 20220303 完成\n", - "任务 20220302 完成\n", "任务 20220301 完成\n", + "任务 20220302 完成\n", "任务 20220228 完成\n", "任务 20220225 完成\n", "任务 20220224 完成\n", @@ -925,16 +889,16 @@ "任务 20220120 完成\n", "任务 20220119 完成\n", "任务 20220118 完成\n", - "任务 20220117 完成\n", "任务 20220114 完成\n", - "任务 20220113 完成\n", + "任务 20220117 完成\n", "任务 20220112 完成\n", + "任务 20220113 完成\n", "任务 20220111 完成\n", "任务 20220110 完成\n", "任务 20220107 完成\n", "任务 20220106 完成\n", - "任务 20220105 完成\n", "任务 20220104 完成\n", + "任务 20220105 完成\n", "任务 20211231 完成\n", "任务 20211230 完成\n", "任务 20211229 完成\n", @@ -957,8 +921,8 @@ "任务 20211206 完成\n", "任务 20211203 完成\n", "任务 20211202 完成\n", - "任务 20211201 完成\n", "任务 20211130 完成\n", + "任务 20211201 完成\n", "任务 20211129 完成\n", "任务 20211126 完成\n", "任务 20211125 完成\n", @@ -971,12 +935,12 @@ "任务 20211116 完成\n", "任务 20211115 完成\n", "任务 20211112 完成\n", - "任务 20211111 完成\n", "任务 20211110 完成\n", + "任务 20211111 完成\n", "任务 20211109 完成\n", "任务 20211108 完成\n", - "任务 20211105 完成\n", "任务 20211104 完成\n", + "任务 20211105 完成\n", "任务 20211103 完成\n", "任务 20211102 完成\n", "任务 20211101 完成\n", @@ -995,18 +959,18 @@ "任务 20211013 完成\n", "任务 20211012 完成\n", "任务 20211011 完成\n", - "任务 20211008 完成\n", "任务 20210930 完成\n", + "任务 20211008 完成\n", "任务 20210929 完成\n", "任务 20210928 完成\n", "任务 20210927 完成\n", "任务 20210924 完成\n", "任务 20210923 完成\n", "任务 20210922 完成\n", - "任务 20210917 完成\n", "任务 20210916 完成\n", - "任务 20210915 完成\n", + "任务 20210917 完成\n", "任务 20210914 完成\n", + "任务 20210915 完成\n", "任务 20210913 完成\n", "任务 20210910 完成\n", "任务 20210909 完成\n", @@ -1045,8 +1009,8 @@ "任务 20210726 完成\n", "任务 20210723 完成\n", "任务 20210722 完成\n", - "任务 20210721 完成\n", "任务 20210720 完成\n", + "任务 20210721 完成\n", "任务 20210719 完成\n", "任务 20210716 完成\n", "任务 20210715 完成\n", @@ -1077,12 +1041,12 @@ "任务 20210609 完成\n", "任务 20210608 完成\n", "任务 20210607 完成\n", - "任务 20210604 完成\n", "任务 20210603 完成\n", + "任务 20210604 完成\n", "任务 20210602 完成\n", "任务 20210601 完成\n", - "任务 20210531 完成\n", "任务 20210528 完成\n", + "任务 20210531 完成\n", "任务 20210526 完成\n", "任务 20210527 完成\n", "任务 20210525 完成\n", @@ -1095,8 +1059,8 @@ "任务 20210514 完成\n", "任务 20210513 完成\n", "任务 20210512 完成\n", - "任务 20210511 完成\n", "任务 20210510 完成\n", + "任务 20210511 完成\n", "任务 20210507 完成\n", "任务 20210506 完成\n", "任务 20210430 完成\n", @@ -1105,10 +1069,10 @@ "任务 20210427 完成\n", "任务 20210426 完成\n", "任务 20210423 完成\n", - "任务 20210422 完成\n", "任务 20210421 完成\n", - "任务 20210420 完成\n", + "任务 20210422 完成\n", "任务 20210419 完成\n", + "任务 20210420 完成\n", "任务 20210416 完成\n", "任务 20210415 完成\n", "任务 20210414 完成\n", @@ -1134,8 +1098,8 @@ "任务 20210316 完成\n", "任务 20210315 完成\n", "任务 20210312 完成\n", - "任务 20210311 完成\n", "任务 20210310 完成\n", + "任务 20210311 完成\n", "任务 20210309 完成\n", "任务 20210308 完成\n", "任务 20210305 完成\n", @@ -1159,8 +1123,8 @@ "任务 20210202 完成\n", "任务 20210201 完成\n", "任务 20210129 完成\n", - "任务 20210128 完成\n", "任务 20210127 完成\n", + "任务 20210128 完成\n", "任务 20210126 完成\n", "任务 20210125 完成\n", "任务 20210122 完成\n", @@ -1168,8 +1132,8 @@ "任务 20210120 完成\n", "任务 20210119 完成\n", "任务 20210118 完成\n", - "任务 20210115 完成\n", "任务 20210114 完成\n", + "任务 20210115 完成\n", "任务 20210113 完成\n", "任务 20210112 完成\n", "任务 20210111 完成\n", @@ -1202,14 +1166,14 @@ "任务 20201202 完成\n", "任务 20201201 完成\n", "任务 20201130 完成\n", - "任务 20201127 完成\n", "任务 20201126 完成\n", + "任务 20201127 完成\n", "任务 20201125 完成\n", "任务 20201124 完成\n", - "任务 20201123 完成\n", "任务 20201120 完成\n", - "任务 20201119 完成\n", + "任务 20201123 完成\n", "任务 20201118 完成\n", + "任务 20201119 完成\n", "任务 20201117 完成\n", "任务 20201116 完成\n", "任务 20201113 完成\n", @@ -1227,8 +1191,8 @@ "任务 20201028 完成\n", "任务 20201027 完成\n", "任务 20201026 完成\n", - "任务 20201023 完成\n", "任务 20201022 完成\n", + "任务 20201023 完成\n", "任务 20201021 完成\n", "任务 20201020 完成\n", "任务 20201019 完成\n", @@ -1244,16 +1208,16 @@ "任务 20200925 完成\n", "任务 20200924 完成\n", "任务 20200923 完成\n", - "任务 20200922 完成\n", "任务 20200921 完成\n", + "任务 20200922 完成\n", "任务 20200918 完成\n", "任务 20200917 完成\n", "任务 20200916 完成\n", "任务 20200915 完成\n", "任务 20200914 完成\n", "任务 20200911 完成\n", - "任务 20200910 完成\n", "任务 20200909 完成\n", + "任务 20200910 完成\n", "任务 20200908 完成\n", "任务 20200907 完成\n", "任务 20200904 完成\n", @@ -1264,22 +1228,22 @@ "任务 20200828 完成\n", "任务 20200827 完成\n", "任务 20200826 完成\n", - "任务 20200825 完成\n", "任务 20200824 完成\n", - "任务 20200821 完成\n", + "任务 20200825 完成\n", "任务 20200820 完成\n", + "任务 20200821 完成\n", "任务 20200819 完成\n", "任务 20200818 完成\n", "任务 20200817 完成\n", "任务 20200814 完成\n", - "任务 20200813 完成\n", "任务 20200812 完成\n", - "任务 20200811 完成\n", + "任务 20200813 完成\n", "任务 20200810 完成\n", + "任务 20200811 完成\n", "任务 20200807 完成\n", "任务 20200806 完成\n", - "任务 20200805 完成\n", "任务 20200804 完成\n", + "任务 20200805 完成\n", "任务 20200803 完成\n", "任务 20200731 完成\n", "任务 20200730 完成\n", @@ -1306,20 +1270,20 @@ "任务 20200701 完成\n", "任务 20200630 完成\n", "任务 20200629 完成\n", - "任务 20200624 完成\n", "任务 20200623 完成\n", + "任务 20200624 完成\n", "任务 20200622 完成\n", "任务 20200619 完成\n", "任务 20200618 完成\n", "任务 20200617 完成\n", "任务 20200616 完成\n", "任务 20200615 完成\n", - "任务 20200612 完成\n", "任务 20200611 完成\n", + "任务 20200612 完成\n", "任务 20200610 完成\n", "任务 20200609 完成\n", - "任务 20200608 完成\n", "任务 20200605 完成\n", + "任务 20200608 完成\n", "任务 20200604 完成\n", "任务 20200603 完成\n", "任务 20200602 完成\n", @@ -1359,8 +1323,8 @@ "任务 20200410 完成\n", "任务 20200409 完成\n", "任务 20200408 完成\n", - "任务 20200407 完成\n", "任务 20200403 完成\n", + "任务 20200407 完成\n", "任务 20200402 完成\n", "任务 20200401 完成\n", "任务 20200331 完成\n", @@ -1373,8 +1337,8 @@ "任务 20200320 完成\n", "任务 20200319 完成\n", "任务 20200318 完成\n", - "任务 20200317 完成\n", "任务 20200316 完成\n", + "任务 20200317 完成\n", "任务 20200313 完成\n", "任务 20200312 完成\n", "任务 20200311 完成\n", @@ -1387,10 +1351,10 @@ "任务 20200302 完成\n", "任务 20200228 完成\n", "任务 20200227 完成\n", - "任务 20200226 完成\n", "任务 20200225 完成\n", - "任务 20200224 完成\n", + "任务 20200226 完成\n", "任务 20200221 完成\n", + "任务 20200224 完成\n", "任务 20200220 完成\n", "任务 20200219 完成\n", "任务 20200218 完成\n", @@ -1399,24 +1363,24 @@ "任务 20200213 完成\n", "任务 20200212 完成\n", "任务 20200211 完成\n", - "任务 20200210 完成\n", "任务 20200207 完成\n", + "任务 20200210 完成\n", "任务 20200206 完成\n", "任务 20200205 完成\n", - "任务 20200204 完成\n", "任务 20200203 完成\n", + "任务 20200204 完成\n", "任务 20200123 完成\n", "任务 20200122 完成\n", "任务 20200121 完成\n", "任务 20200120 完成\n", - "任务 20200117 完成\n", "任务 20200116 完成\n", + "任务 20200117 完成\n", "任务 20200115 完成\n", "任务 20200114 完成\n", "任务 20200113 完成\n", "任务 20200110 完成\n", - "任务 20200109 完成\n", "任务 20200108 完成\n", + "任务 20200109 完成\n", "任务 20200107 完成\n", "任务 20200106 完成\n", "任务 20200103 完成\n", @@ -1430,8 +1394,8 @@ "任务 20191223 完成\n", "任务 20191220 完成\n", "任务 20191219 完成\n", - "任务 20191218 完成\n", "任务 20191217 完成\n", + "任务 20191218 完成\n", "任务 20191216 完成\n", "任务 20191213 完成\n", "任务 20191212 完成\n", @@ -1466,8 +1430,8 @@ "任务 20191101 完成\n", "任务 20191031 完成\n", "任务 20191030 完成\n", - "任务 20191029 完成\n", "任务 20191028 完成\n", + "任务 20191029 完成\n", "任务 20191025 完成\n", "任务 20191024 完成\n", "任务 20191023 完成\n", @@ -1476,18 +1440,18 @@ "任务 20191018 完成\n", "任务 20191017 完成\n", "任务 20191016 完成\n", - "任务 20191015 完成\n", "任务 20191014 完成\n", + "任务 20191015 完成\n", "任务 20191011 完成\n", "任务 20191010 完成\n", "任务 20191009 完成\n", "任务 20191008 完成\n", "任务 20190930 完成\n", "任务 20190927 完成\n", - "任务 20190926 完成\n", "任务 20190925 完成\n", - "任务 20190924 完成\n", + "任务 20190926 完成\n", "任务 20190923 完成\n", + "任务 20190924 完成\n", "任务 20190920 完成\n", "任务 20190919 完成\n", "任务 20190918 完成\n", @@ -1504,8 +1468,8 @@ "任务 20190902 完成\n", "任务 20190830 完成\n", "任务 20190829 完成\n", - "任务 20190828 完成\n", "任务 20190827 完成\n", + "任务 20190828 完成\n", "任务 20190826 完成\n", "任务 20190823 完成\n", "任务 20190822 完成\n", @@ -1530,14 +1494,14 @@ "任务 20190726 完成\n", "任务 20190725 完成\n", "任务 20190724 完成\n", - "任务 20190723 完成\n", "任务 20190722 完成\n", - "任务 20190719 完成\n", + "任务 20190723 完成\n", "任务 20190718 完成\n", + "任务 20190719 完成\n", "任务 20190717 完成\n", "任务 20190716 完成\n", - "任务 20190715 完成\n", "任务 20190712 完成\n", + "任务 20190715 完成\n", "任务 20190711 完成\n", "任务 20190710 完成\n", "任务 20190709 完成\n", @@ -1561,8 +1525,8 @@ "任务 20190613 完成\n", "任务 20190612 完成\n", "任务 20190611 完成\n", - "任务 20190610 完成\n", "任务 20190606 完成\n", + "任务 20190610 完成\n", "任务 20190605 完成\n", "任务 20190604 完成\n", "任务 20190603 完成\n", @@ -1589,8 +1553,8 @@ "任务 20190430 完成\n", "任务 20190429 完成\n", "任务 20190426 完成\n", - "任务 20190425 完成\n", "任务 20190424 完成\n", + "任务 20190425 完成\n", "任务 20190423 完成\n", "任务 20190422 完成\n", "任务 20190419 完成\n", @@ -1637,16 +1601,16 @@ "任务 20190220 完成\n", "任务 20190219 完成\n", "任务 20190218 完成\n", - "任务 20190215 完成\n", "任务 20190214 完成\n", + "任务 20190215 完成\n", "任务 20190213 完成\n", "任务 20190212 完成\n", "任务 20190211 完成\n", "任务 20190201 完成\n", "任务 20190131 完成\n", "任务 20190130 完成\n", - "任务 20190129 完成\n", "任务 20190128 完成\n", + "任务 20190129 完成\n", "任务 20190125 完成\n", "任务 20190124 完成\n", "任务 20190123 完成\n", @@ -1655,14 +1619,14 @@ "任务 20190118 完成\n", "任务 20190117 完成\n", "任务 20190116 完成\n", - "任务 20190115 完成\n", "任务 20190114 完成\n", + "任务 20190115 完成\n", "任务 20190111 完成\n", "任务 20190110 完成\n", "任务 20190109 完成\n", "任务 20190108 完成\n", - "任务 20190107 完成\n", "任务 20190104 完成\n", + "任务 20190107 完成\n", "任务 20190103 完成\n", "任务 20190102 完成\n", "任务 20181228 完成\n", @@ -1678,8 +1642,8 @@ "任务 20181214 完成\n", "任务 20181213 完成\n", "任务 20181212 完成\n", - "任务 20181211 完成\n", "任务 20181210 完成\n", + "任务 20181211 完成\n", "任务 20181207 完成\n", "任务 20181206 完成\n", "任务 20181205 完成\n", @@ -1696,14 +1660,14 @@ "任务 20181120 完成\n", "任务 20181119 完成\n", "任务 20181116 完成\n", - "任务 20181115 完成\n", "任务 20181114 完成\n", + "任务 20181115 完成\n", "任务 20181113 完成\n", "任务 20181112 完成\n", - "任务 20181109 完成\n", "任务 20181108 完成\n", - "任务 20181106 完成\n", + "任务 20181109 完成\n", "任务 20181107 完成\n", + "任务 20181106 完成\n", "任务 20181105 完成\n", "任务 20181102 完成\n", "任务 20181101 完成\n", @@ -1717,8 +1681,8 @@ "任务 20181022 完成\n", "任务 20181019 完成\n", "任务 20181018 完成\n", - "任务 20181017 完成\n", "任务 20181016 完成\n", + "任务 20181017 完成\n", "任务 20181015 完成\n", "任务 20181012 完成\n", "任务 20181011 完成\n", @@ -1757,16 +1721,16 @@ "任务 20180817 完成\n", "任务 20180816 完成\n", "任务 20180815 完成\n", - "任务 20180814 完成\n", "任务 20180813 完成\n", + "任务 20180814 完成\n", "任务 20180810 完成\n", "任务 20180809 完成\n", "任务 20180808 完成\n", "任务 20180807 完成\n", "任务 20180806 完成\n", "任务 20180803 完成\n", - "任务 20180802 完成\n", "任务 20180801 完成\n", + "任务 20180802 完成\n", "任务 20180731 完成\n", "任务 20180730 完成\n", "任务 20180727 完成\n", @@ -1807,8 +1771,8 @@ "任务 20180607 完成\n", "任务 20180606 完成\n", "任务 20180605 完成\n", - "任务 20180604 完成\n", "任务 20180601 完成\n", + "任务 20180604 完成\n", "任务 20180531 完成\n", "任务 20180530 完成\n", "任务 20180529 完成\n", @@ -1836,8 +1800,8 @@ "任务 20180425 完成\n", "任务 20180424 完成\n", "任务 20180423 完成\n", - "任务 20180420 完成\n", "任务 20180419 完成\n", + "任务 20180420 完成\n", "任务 20180418 完成\n", "任务 20180417 完成\n", "任务 20180416 完成\n", @@ -1847,12 +1811,12 @@ "任务 20180410 完成\n", "任务 20180409 完成\n", "任务 20180404 完成\n", - "任务 20180403 完成\n", "任务 20180402 完成\n", + "任务 20180403 完成\n", "任务 20180330 完成\n", "任务 20180329 完成\n", - "任务 20180328 完成\n", "任务 20180327 完成\n", + "任务 20180328 完成\n", "任务 20180326 完成\n", "任务 20180323 完成\n", "任务 20180322 完成\n", @@ -1873,17 +1837,17 @@ "任务 20180301 完成\n", "任务 20180228 完成\n", "任务 20180227 完成\n", - "任务 20180226 完成\n", "任务 20180223 完成\n", + "任务 20180226 完成\n", "任务 20180222 完成\n", "任务 20180214 完成\n", "任务 20180213 完成\n", "任务 20180212 完成\n", "任务 20180209 完成\n", - "任务 20180207 完成\n", "任务 20180208 完成\n", - "任务 20180205 完成\n", + "任务 20180207 完成\n", "任务 20180206 完成\n", + "任务 20180205 完成\n", "任务 20180202 完成\n", "任务 20180201 完成\n", "任务 20180131 完成\n", @@ -1902,8 +1866,8 @@ "任务 20180112 完成\n", "任务 20180111 完成\n", "任务 20180110 完成\n", - "任务 20180109 完成\n", "任务 20180108 完成\n", + "任务 20180109 完成\n", "任务 20180105 完成\n", "任务 20180104 完成\n", "任务 20180103 完成\n", @@ -1942,8 +1906,8 @@ "任务 20171116 完成\n", "任务 20171115 完成\n", "任务 20171114 完成\n", - "任务 20171110 完成\n", "任务 20171113 完成\n", + "任务 20171110 完成\n", "任务 20171109 完成\n", "任务 20171108 完成\n", "任务 20171107 完成\n", @@ -1972,8 +1936,8 @@ "任务 20170928 完成\n", "任务 20170927 完成\n", "任务 20170926 完成\n", - "任务 20170922 完成\n", "任务 20170925 完成\n", + "任务 20170922 完成\n", "任务 20170921 完成\n", "任务 20170920 完成\n", "任务 20170919 完成\n", @@ -1986,18 +1950,18 @@ "任务 20170908 完成\n", "任务 20170907 完成\n", "任务 20170906 完成\n", - "任务 20170905 完成\n", "任务 20170904 完成\n", - "任务 20170901 完成\n", + "任务 20170905 完成\n", "任务 20170831 完成\n", + "任务 20170901 完成\n", "任务 20170830 完成\n", "任务 20170829 完成\n", "任务 20170828 完成\n", "任务 20170825 完成\n", - "任务 20170823 完成\n", "任务 20170824 完成\n", - "任务 20170821 完成\n", + "任务 20170823 完成\n", "任务 20170822 完成\n", + "任务 20170821 完成\n", "任务 20170818 完成\n", "任务 20170817 完成\n", "任务 20170816 完成\n", @@ -2036,12 +2000,12 @@ "任务 20170630 完成\n", "任务 20170629 完成\n", "任务 20170628 完成\n", - "任务 20170626 完成\n", "任务 20170627 完成\n", + "任务 20170626 完成\n", "任务 20170623 完成\n", "任务 20170622 完成\n", - "任务 20170621 完成\n", "任务 20170620 完成\n", + "任务 20170621 完成\n", "任务 20170619 完成\n", "任务 20170616 完成\n", "任务 20170615 完成\n", @@ -2084,14 +2048,14 @@ "任务 20170420 完成\n", "任务 20170419 完成\n", "任务 20170418 完成\n", - "任务 20170417 完成\n", "任务 20170414 完成\n", - "任务 20170413 完成\n", + "任务 20170417 完成\n", "任务 20170412 完成\n", + "任务 20170413 完成\n", "任务 20170411 完成\n", "任务 20170410 完成\n", - "任务 20170407 完成\n", "任务 20170406 完成\n", + "任务 20170407 完成\n", "任务 20170405 完成\n", "任务 20170331 完成\n", "任务 20170330 完成\n", @@ -2106,10 +2070,10 @@ "任务 20170317 完成\n", "任务 20170316 完成\n", "任务 20170315 完成\n", - "任务 20170314 完成\n", "任务 20170313 完成\n", - "任务 20170309 完成\n", + "任务 20170314 完成\n", "任务 20170310 完成\n", + "任务 20170309 完成\n", "任务 20170308 完成\n", "任务 20170307 完成\n", "任务 20170306 完成\n", @@ -2130,12 +2094,12 @@ "任务 20170213 完成\n", "任务 20170210 完成\n", "任务 20170209 完成\n", - "任务 20170208 完成\n", "任务 20170207 完成\n", + "任务 20170208 完成\n", "任务 20170206 完成\n", "任务 20170203 完成\n", - "任务 20170126 完成\n", "任务 20170125 完成\n", + "任务 20170126 完成\n", "任务 20170124 完成\n", "任务 20170123 完成\n", "任务 20170120 完成\n", @@ -2155,10 +2119,68 @@ ] } ], - "execution_count": 3 + "source": [ + "import tushare as ts\n", + "import pandas as pd\n", + "import time\n", + "from concurrent.futures import ThreadPoolExecutor, as_completed\n", + "\n", + "# 获取交易日历\n", + "trade_cal = pro.trade_cal(exchange='', start_date='20170101', end_date='20250501')\n", + "trade_cal = trade_cal[trade_cal['is_open'] == 1] # 只保留交易日\n", + "trade_dates = trade_cal['cal_date'].tolist() # 获取所有交易日期列表\n", + "\n", + "# 使用 HDFStore 存储数据\n", + "all_daily_data = []\n", + "\n", + "# API 调用计数和时间控制变量\n", + "api_call_count = 0\n", + "batch_start_time = time.time()\n", + "\n", + "\n", + "def get_data(trade_date):\n", + " daily_basic_data = pro.daily_basic(ts_code='', trade_date=trade_date)\n", + " if daily_basic_data is not None and not daily_basic_data.empty:\n", + " # 添加交易日期列标识\n", + " daily_basic_data['trade_date'] = trade_date\n", + " daily_basic_data['is_st'] = daily_basic_data.apply(\n", + " lambda row: is_st(name_change_dict, row['ts_code'], row['trade_date']), axis=1\n", + " )\n", + " time.sleep(0.2)\n", + " # print(f\"成功获取并保存 {trade_date} 的每日基础数据\")\n", + " return daily_basic_data\n", + "\n", + "\n", + "# 遍历每个交易日期并获取数据\n", + "with ThreadPoolExecutor(max_workers=2) as executor:\n", + " future_to_date = {executor.submit(get_data, td): td for td in trade_dates}\n", + "\n", + " for future in as_completed(future_to_date):\n", + " trade_date = future_to_date[future] # 获取对应的交易日期\n", + " try:\n", + " result = future.result() # 获取任务执行的结果\n", + " all_daily_data.append(result)\n", + " print(f\"任务 {trade_date} 完成\")\n", + " except Exception as e:\n", + " print(f\"获取 {trade_date} 数据时出错: {e}\")\n", + " # 计数一次 API 调用\n", + " api_call_count += 1\n", + "\n", + " # 每调用 300 次,检查时间是否少于 1 分钟,如果少于则等待剩余时间\n", + " if api_call_count % 150 == 0:\n", + " elapsed = time.time() - batch_start_time\n", + " if elapsed < 60:\n", + " sleep_time = 60 - elapsed\n", + " print(f\"已调用 150 次 API,等待 {sleep_time:.2f} 秒以满足速率限制...\")\n", + " time.sleep(sleep_time)\n", + " # 重置批次起始时间\n", + " batch_start_time = time.time()\n", + "\n" + ] }, { "cell_type": "code", + "execution_count": 4, "id": "97fdf8be-a86c-4404-bf0c-701f002cd81c", "metadata": { "ExecuteTime": { @@ -2166,75 +2188,75 @@ "start_time": "2025-03-02T08:33:16.033912Z" } }, - "source": [ - "all_daily_data_df = pd.concat(all_daily_data, ignore_index=True)\n", - "print(all_daily_data_df)" - ], "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " ts_code trade_date close turnover_rate turnover_rate_f \\\n", - "0 002977.SZ 20250227 27.20 2.2311 3.0411 \n", - "1 688065.SH 20250227 48.17 0.7081 1.4224 \n", - "2 002563.SZ 20250227 6.30 0.7054 2.2058 \n", - "3 300044.SZ 20250227 7.29 11.8529 13.2447 \n", - "4 603219.SH 20250227 17.96 5.9145 28.1559 \n", + "0 603848.SH 20250430 14.36 0.5401 4.6897 \n", + "1 300290.SZ 20250430 16.30 2.8540 3.5686 \n", + "2 603877.SH 20250430 15.90 0.3794 1.2707 \n", + "3 834639.BJ 20250430 8.37 6.1158 7.8866 \n", + "4 000909.SZ 20250430 5.72 0.6104 1.0424 \n", "... ... ... ... ... ... \n", - "8372851 600708.SH 20170103 9.03 0.7694 1.0169 \n", - "8372852 600712.SH 20170103 10.29 0.5859 0.8028 \n", - "8372853 001872.SZ 20170103 19.33 1.0970 5.4258 \n", - "8372854 001914.SZ 20170103 12.37 3.2627 6.6991 \n", - "8372855 302132.SZ 20170103 23.28 0.4912 1.5149 \n", + "8594006 600708.SH 20170103 9.03 0.7694 1.0169 \n", + "8594007 600712.SH 20170103 10.29 0.5859 0.8028 \n", + "8594008 001872.SZ 20170103 19.33 1.0970 5.4258 \n", + "8594009 001914.SZ 20170103 12.37 3.2627 6.6991 \n", + "8594010 302132.SZ 20170103 23.28 0.4912 1.5149 \n", "\n", - " volume_ratio pe pe_ttm pb ps ps_ttm dv_ratio \\\n", - "0 0.98 65.2824 275.8084 3.0077 19.5374 20.5874 0.6618 \n", - "1 0.79 76.6697 70.6389 2.4679 13.2919 10.1678 NaN \n", - "2 1.53 15.1340 16.2489 1.4830 1.2425 1.1986 4.7619 \n", - "3 0.79 NaN NaN 9.0179 12.4251 19.5540 0.0000 \n", - "4 1.76 38.6030 47.7249 6.4916 3.7441 3.8039 1.6629 \n", - "... ... ... ... ... ... ... ... \n", - "8372851 0.85 23.3367 22.2458 1.4847 0.9613 0.9248 1.1074 \n", - "8372852 0.67 202.4855 287.1454 5.1852 2.3682 2.5386 0.1555 \n", - "8372853 0.77 23.6158 23.1883 2.7052 6.6556 6.5584 2.1211 \n", - "8372854 1.02 20.5631 15.1595 2.1186 1.4950 1.2600 0.4042 \n", - "8372855 0.74 91.3908 84.6980 6.9391 8.9531 8.8570 0.2291 \n", + " volume_ratio pe pe_ttm pb ps ps_ttm \\\n", + "0 1.31 23.3421 25.6176 2.3433 3.7254 3.8065 \n", + "1 1.00 NaN NaN 13.1076 13.5867 13.5756 \n", + "2 0.98 29.1494 33.6975 1.6522 1.1075 1.1304 \n", + "3 0.87 70.0984 215.1863 2.0171 0.8405 0.8329 \n", + "4 0.55 NaN NaN 2.3539 7.7727 8.2925 \n", + "... ... ... ... ... ... ... \n", + "8594006 0.85 23.3367 22.2458 1.4847 0.9613 0.9248 \n", + "8594007 0.67 202.4855 287.1454 5.1852 2.3682 2.5386 \n", + "8594008 0.77 23.6158 23.1883 2.7052 6.6556 6.5584 \n", + "8594009 1.02 20.5631 15.1595 2.1186 1.4950 1.2600 \n", + "8594010 0.74 91.3908 84.6980 6.9391 8.9531 8.8570 \n", "\n", - " dv_ttm total_share float_share free_share total_mv \\\n", - "0 0.6618 12012.0000 6662.0170 4887.5170 3.267264e+05 \n", - "1 NaN 58337.8039 58337.8039 29040.9774 2.810132e+06 \n", - "2 4.7619 269409.0160 220844.2340 70621.6215 1.697277e+06 \n", - "3 NaN 76386.9228 76377.3438 68351.0115 5.568607e+05 \n", - "4 1.6629 56140.0000 56140.0000 11792.9916 1.008274e+06 \n", - "... ... ... ... ... ... \n", - "8372851 1.1074 131871.9966 75088.9215 56812.2811 1.190804e+06 \n", - "8372852 0.1555 54465.5360 53795.9475 39266.3119 5.604504e+05 \n", - "8372853 2.1211 64476.3730 46486.6050 9398.8050 1.246328e+06 \n", - "8372854 0.4042 66696.1416 66678.0666 32475.1786 8.250313e+05 \n", - "8372855 0.2291 39384.0333 30419.3588 9862.3809 9.168603e+05 \n", + " dv_ratio dv_ttm total_share float_share free_share total_mv \\\n", + "0 2.0904 2.0904 40391.1511 40240.6511 4634.6511 5.800169e+05 \n", + "1 0.0000 NaN 63973.2569 63922.1969 51122.1969 1.042764e+06 \n", + "2 3.7471 3.7471 47382.5333 46932.3226 14014.3219 7.533823e+05 \n", + "3 NaN NaN 20160.0000 11721.5883 9089.7537 1.687392e+05 \n", + "4 0.0000 NaN 43771.4245 43771.0570 25634.2299 2.503725e+05 \n", + "... ... ... ... ... ... ... \n", + "8594006 1.1074 1.1074 131871.9966 75088.9215 56812.2811 1.190804e+06 \n", + "8594007 0.1555 0.1555 54465.5360 53795.9475 39266.3119 5.604504e+05 \n", + "8594008 2.1211 2.1211 64476.3730 46486.6050 9398.8050 1.246328e+06 \n", + "8594009 0.4042 0.4042 66696.1416 66678.0666 32475.1786 8.250313e+05 \n", + "8594010 0.2291 0.2291 39384.0333 30419.3588 9862.3809 9.168603e+05 \n", "\n", " circ_mv is_st \n", - "0 1.812069e+05 False \n", - "1 2.810132e+06 False \n", - "2 1.391319e+06 False \n", - "3 5.567908e+05 False \n", - "4 1.008274e+06 False \n", + "0 5.778557e+05 False \n", + "1 1.041932e+06 False \n", + "2 7.462239e+05 False \n", + "3 9.810969e+04 False \n", + "4 2.503704e+05 True \n", "... ... ... \n", - "8372851 6.780530e+05 False \n", - "8372852 5.535603e+05 False \n", - "8372853 8.985861e+05 False \n", - "8372854 8.248077e+05 False \n", - "8372855 7.081627e+05 False \n", + "8594006 6.780530e+05 False \n", + "8594007 5.535603e+05 False \n", + "8594008 8.985861e+05 False \n", + "8594009 8.248077e+05 False \n", + "8594010 7.081627e+05 False \n", "\n", - "[8372856 rows x 19 columns]\n" + "[8594011 rows x 19 columns]\n" ] } ], - "execution_count": 4 + "source": [ + "all_daily_data_df = pd.concat(all_daily_data, ignore_index=True)\n", + "print(all_daily_data_df)" + ] }, { "cell_type": "code", + "execution_count": 5, "id": "2b58a8bf-ffc5-4482-8e4d-bf24da9277de", "metadata": { "ExecuteTime": { @@ -2242,12 +2264,6 @@ "start_time": "2025-03-02T08:33:16.498221Z" } }, - "source": [ - "# 将数据保存为 HDF5 文件(table 格式)\n", - "all_daily_data_df.to_hdf('../../data/daily_basic.h5', key='daily_basic', mode='w', format='table', data_columns=True)\n", - "\n", - "print(\"所有每日基础数据获取并保存完毕!\")" - ], "outputs": [ { "name": "stdout", @@ -2257,10 +2273,16 @@ ] } ], - "execution_count": 5 + "source": [ + "# 将数据保存为 HDF5 文件(table 格式)\n", + "all_daily_data_df.to_hdf('../../data/daily_basic.h5', key='daily_basic', mode='w', format='table', data_columns=True)\n", + "\n", + "print(\"所有每日基础数据获取并保存完毕!\")" + ] }, { "cell_type": "code", + "execution_count": null, "id": "57ac1d86-5ce8-4bc9-812f-b45dcc2a3b4c", "metadata": { "ExecuteTime": { @@ -2268,14 +2290,13 @@ "start_time": "2025-03-02T08:34:49.775512Z" } }, - "source": [], "outputs": [], - "execution_count": null + "source": [] } ], "metadata": { "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": "new_trader", "language": "python", "name": "python3" }, @@ -2289,7 +2310,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.19" + "version": "3.11.11" } }, "nbformat": 4, diff --git a/main/data/daily_data.py b/main/data/daily_data.py deleted file mode 100644 index 9545597..0000000 --- a/main/data/daily_data.py +++ /dev/null @@ -1,11 +0,0 @@ -import tushare as ts -ts.set_token('3a0741c702ee7e5e5f2bf1f0846bafaafe4e320833240b2a7e4a685f') -pro = ts.pro_api() - -import pandas as pd -import time - -# 读取本地保存的股票列表 CSV 文件(假设文件名为 stocks_data.csv) -df = ts.pro_bar(ts_code='000001.SZ', adj='hfq', start_date='20180101') -print(df) - diff --git a/main/data/finance.ipynb b/main/data/finance.ipynb new file mode 100644 index 0000000..9f7c404 --- /dev/null +++ b/main/data/finance.ipynb @@ -0,0 +1,11717 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "initial_id", + "metadata": { + "ExecuteTime": { + "end_time": "2025-02-10T15:46:10.320268Z", + "start_time": "2025-02-10T15:46:10.310270Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "hello world\n" + ] + } + ], + "source": [ + "print('hello world')" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "f294ba92-512a-48e6-bbaa-e19401c691ba", + "metadata": { + "ExecuteTime": { + "end_time": "2025-02-10T15:46:11.019636Z", + "start_time": "2025-02-10T15:46:10.330271Z" + } + }, + "outputs": [], + "source": [ + "import tushare as ts\n", + "import pandas as pd\n", + "import time\n", + "\n", + "ts.set_token('3a0741c702ee7e5e5f2bf1f0846bafaafe4e320833240b2a7e4a685f')\n", + "pro = ts.pro_api()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f403cc963e1d39b", + "metadata": { + "ExecuteTime": { + "end_time": "2025-02-10T15:47:42.715615Z", + "start_time": "2025-02-10T15:46:11.085042Z" + }, + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "成功获取 000001.SZ 的数据\n", + "成功获取 000002.SZ 的数据\n", + "成功获取 000004.SZ 的数据\n", + "成功获取 000006.SZ 的数据\n", + "成功获取 000007.SZ 的数据\n", + "成功获取 000008.SZ 的数据\n", + "成功获取 000009.SZ 的数据\n", + "成功获取 000010.SZ 的数据\n", + "成功获取 000011.SZ 的数据\n", + "成功获取 000012.SZ 的数据\n", + "成功获取 000014.SZ 的数据\n", + "成功获取 000016.SZ 的数据\n", + "成功获取 000017.SZ 的数据\n", + "成功获取 000019.SZ 的数据\n", + "成功获取 000020.SZ 的数据\n", + "成功获取 000021.SZ 的数据\n", + "成功获取 000025.SZ 的数据\n", + "成功获取 000026.SZ 的数据\n", + "成功获取 000027.SZ 的数据\n", + "成功获取 000028.SZ 的数据\n", + "成功获取 000029.SZ 的数据\n", + "成功获取 000030.SZ 的数据\n", + "成功获取 000031.SZ 的数据\n", + "成功获取 000032.SZ 的数据\n", + "成功获取 000034.SZ 的数据\n", + "成功获取 000035.SZ 的数据\n", + "成功获取 000036.SZ 的数据\n", + "成功获取 000037.SZ 的数据\n", + "成功获取 000039.SZ 的数据\n", + "成功获取 000040.SZ 的数据\n", + "成功获取 000042.SZ 的数据\n", + "成功获取 000045.SZ 的数据\n", + "成功获取 000048.SZ 的数据\n", + "成功获取 000049.SZ 的数据\n", + "成功获取 000050.SZ 的数据\n", + "成功获取 000055.SZ 的数据\n", + "成功获取 000056.SZ 的数据\n", + "成功获取 000058.SZ 的数据\n", + "成功获取 000059.SZ 的数据\n", + "成功获取 000060.SZ 的数据\n", + "成功获取 000061.SZ 的数据\n", + "成功获取 000062.SZ 的数据\n", + "成功获取 000063.SZ 的数据\n", + "成功获取 000065.SZ 的数据\n", + "成功获取 000066.SZ 的数据\n", + "成功获取 000068.SZ 的数据\n", + "成功获取 000069.SZ 的数据\n", + "成功获取 000070.SZ 的数据\n", + "成功获取 000078.SZ 的数据\n", + "成功获取 000088.SZ 的数据\n", + "成功获取 000089.SZ 的数据\n", + "成功获取 000090.SZ 的数据\n", + "成功获取 000096.SZ 的数据\n", + "成功获取 000099.SZ 的数据\n", + "成功获取 000100.SZ 的数据\n", + "成功获取 000151.SZ 的数据\n", + "成功获取 000153.SZ 的数据\n", + "成功获取 000155.SZ 的数据\n", + "成功获取 000156.SZ 的数据\n", + "成功获取 000157.SZ 的数据\n", + "成功获取 000158.SZ 的数据\n", + "成功获取 000159.SZ 的数据\n", + "成功获取 000166.SZ 的数据\n", + "成功获取 000301.SZ 的数据\n", + "成功获取 000333.SZ 的数据\n", + "成功获取 000338.SZ 的数据\n", + "成功获取 000400.SZ 的数据\n", + "成功获取 000401.SZ 的数据\n", + "成功获取 000402.SZ 的数据\n", + "成功获取 000403.SZ 的数据\n", + "成功获取 000404.SZ 的数据\n", + "成功获取 000407.SZ 的数据\n", + "成功获取 000408.SZ 的数据\n", + "成功获取 000409.SZ 的数据\n", + "成功获取 000410.SZ 的数据\n", + "成功获取 000411.SZ 的数据\n", + "成功获取 000415.SZ 的数据\n", + "成功获取 000417.SZ 的数据\n", + "成功获取 000419.SZ 的数据\n", + "成功获取 000420.SZ 的数据\n", + "成功获取 000421.SZ 的数据\n", + "成功获取 000422.SZ 的数据\n", + "成功获取 000423.SZ 的数据\n", + "成功获取 000425.SZ 的数据\n", + "成功获取 000426.SZ 的数据\n", + "成功获取 000428.SZ 的数据\n", + "成功获取 000429.SZ 的数据\n", + "成功获取 000430.SZ 的数据\n", + "成功获取 000488.SZ 的数据\n", + "成功获取 000498.SZ 的数据\n", + "成功获取 000501.SZ 的数据\n", + "成功获取 000503.SZ 的数据\n", + "成功获取 000504.SZ 的数据\n", + "成功获取 000505.SZ 的数据\n", + "成功获取 000506.SZ 的数据\n", + "成功获取 000507.SZ 的数据\n", + "成功获取 000509.SZ 的数据\n", + "成功获取 000510.SZ 的数据\n", + "成功获取 000513.SZ 的数据\n", + "成功获取 000514.SZ 的数据\n", + "成功获取 000516.SZ 的数据\n", + "成功获取 000517.SZ 的数据\n", + "成功获取 000518.SZ 的数据\n", + "成功获取 000519.SZ 的数据\n", + "成功获取 000520.SZ 的数据\n", + "成功获取 000521.SZ 的数据\n", + "成功获取 000523.SZ 的数据\n", + "成功获取 000524.SZ 的数据\n", + "成功获取 000525.SZ 的数据\n", + "成功获取 000526.SZ 的数据\n", + "成功获取 000528.SZ 的数据\n", + "成功获取 000529.SZ 的数据\n", + "成功获取 000530.SZ 的数据\n", + "成功获取 000531.SZ 的数据\n", + "成功获取 000532.SZ 的数据\n", + "成功获取 000533.SZ 的数据\n", + "成功获取 000534.SZ 的数据\n", + "成功获取 000536.SZ 的数据\n", + "成功获取 000537.SZ 的数据\n", + "成功获取 000538.SZ 的数据\n", + "成功获取 000539.SZ 的数据\n", + "成功获取 000541.SZ 的数据\n", + "成功获取 000543.SZ 的数据\n", + "成功获取 000544.SZ 的数据\n", + "成功获取 000545.SZ 的数据\n", + "成功获取 000546.SZ 的数据\n", + "成功获取 000547.SZ 的数据\n", + "成功获取 000548.SZ 的数据\n", + "成功获取 000550.SZ 的数据\n", + "成功获取 000551.SZ 的数据\n", + "成功获取 000552.SZ 的数据\n", + "成功获取 000553.SZ 的数据\n", + "成功获取 000554.SZ 的数据\n", + "成功获取 000555.SZ 的数据\n", + "成功获取 000557.SZ 的数据\n", + "成功获取 000558.SZ 的数据\n", + "成功获取 000559.SZ 的数据\n", + "成功获取 000560.SZ 的数据\n", + "成功获取 000561.SZ 的数据\n", + "成功获取 000563.SZ 的数据\n", + "成功获取 000564.SZ 的数据\n", + "成功获取 000565.SZ 的数据\n", + "成功获取 000566.SZ 的数据\n", + "成功获取 000567.SZ 的数据\n", + "成功获取 000568.SZ 的数据\n", + "成功获取 000570.SZ 的数据\n", + "成功获取 000571.SZ 的数据\n", + "成功获取 000572.SZ 的数据\n", + "成功获取 000573.SZ 的数据\n", + "成功获取 000576.SZ 的数据\n", + "成功获取 000581.SZ 的数据\n", + "成功获取 000582.SZ 的数据\n", + "成功获取 000584.SZ 的数据\n", + "成功获取 000586.SZ 的数据\n", + "成功获取 000589.SZ 的数据\n", + "成功获取 000590.SZ 的数据\n", + "成功获取 000591.SZ 的数据\n", + "成功获取 000592.SZ 的数据\n", + "成功获取 000593.SZ 的数据\n", + "成功获取 000595.SZ 的数据\n", + "成功获取 000596.SZ 的数据\n", + "成功获取 000597.SZ 的数据\n", + "成功获取 000598.SZ 的数据\n", + "成功获取 000599.SZ 的数据\n", + "成功获取 000600.SZ 的数据\n", + "成功获取 000601.SZ 的数据\n", + "成功获取 000603.SZ 的数据\n", + "成功获取 000605.SZ 的数据\n", + "成功获取 000607.SZ 的数据\n", + "成功获取 000608.SZ 的数据\n", + "成功获取 000609.SZ 的数据\n", + "成功获取 000610.SZ 的数据\n", + "成功获取 000612.SZ 的数据\n", + "成功获取 000615.SZ 的数据\n", + "成功获取 000617.SZ 的数据\n", + "成功获取 000619.SZ 的数据\n", + "成功获取 000620.SZ 的数据\n", + "成功获取 000622.SZ 的数据\n", + "成功获取 000623.SZ 的数据\n", + "成功获取 000625.SZ 的数据\n", + "成功获取 000626.SZ 的数据\n", + "成功获取 000627.SZ 的数据\n", + "成功获取 000628.SZ 的数据\n", + "成功获取 000629.SZ 的数据\n", + "成功获取 000630.SZ 的数据\n", + "成功获取 000631.SZ 的数据\n", + "成功获取 000632.SZ 的数据\n", + "成功获取 000633.SZ 的数据\n", + "成功获取 000635.SZ 的数据\n", + "成功获取 000636.SZ 的数据\n", + "成功获取 000637.SZ 的数据\n", + "成功获取 000638.SZ 的数据\n", + "成功获取 000639.SZ 的数据\n", + "成功获取 000650.SZ 的数据\n", + "成功获取 000651.SZ 的数据\n", + "成功获取 000652.SZ 的数据\n", + "成功获取 000655.SZ 的数据\n", + "成功获取 000656.SZ 的数据\n", + "成功获取 000657.SZ 的数据\n", + "成功获取 000659.SZ 的数据\n", + "成功获取 000661.SZ 的数据\n", + "成功获取 000663.SZ 的数据\n", + "成功获取 000665.SZ 的数据\n", + "成功获取 000668.SZ 的数据\n", + "成功获取 000669.SZ 的数据\n", + "成功获取 000670.SZ 的数据\n", + "成功获取 000672.SZ 的数据\n", + "成功获取 000676.SZ 的数据\n", + "成功获取 000677.SZ 的数据\n", + "成功获取 000678.SZ 的数据\n", + "成功获取 000679.SZ 的数据\n", + "成功获取 000680.SZ 的数据\n", + "成功获取 000681.SZ 的数据\n", + "成功获取 000682.SZ 的数据\n", + "成功获取 000683.SZ 的数据\n", + "成功获取 000685.SZ 的数据\n", + "成功获取 000686.SZ 的数据\n", + "成功获取 000688.SZ 的数据\n", + "成功获取 000690.SZ 的数据\n", + "成功获取 000691.SZ 的数据\n", + "成功获取 000692.SZ 的数据\n", + "成功获取 000695.SZ 的数据\n", + "成功获取 000697.SZ 的数据\n", + "成功获取 000698.SZ 的数据\n", + "成功获取 000700.SZ 的数据\n", + "成功获取 000701.SZ 的数据\n", + "成功获取 000702.SZ 的数据\n", + "成功获取 000703.SZ 的数据\n", + "成功获取 000705.SZ 的数据\n", + "成功获取 000707.SZ 的数据\n", + "成功获取 000708.SZ 的数据\n", + "成功获取 000709.SZ 的数据\n", + "成功获取 000710.SZ 的数据\n", + "成功获取 000711.SZ 的数据\n", + "成功获取 000712.SZ 的数据\n", + "成功获取 000713.SZ 的数据\n", + "成功获取 000715.SZ 的数据\n", + "成功获取 000716.SZ 的数据\n", + "成功获取 000717.SZ 的数据\n", + "成功获取 000718.SZ 的数据\n", + "成功获取 000719.SZ 的数据\n", + "成功获取 000720.SZ 的数据\n", + "成功获取 000721.SZ 的数据\n", + "成功获取 000722.SZ 的数据\n", + "成功获取 000723.SZ 的数据\n", + "成功获取 000725.SZ 的数据\n", + "成功获取 000726.SZ 的数据\n", + "成功获取 000727.SZ 的数据\n", + "成功获取 000728.SZ 的数据\n", + "成功获取 000729.SZ 的数据\n", + "成功获取 000731.SZ 的数据\n", + "成功获取 000733.SZ 的数据\n", + "成功获取 000735.SZ 的数据\n", + "成功获取 000736.SZ 的数据\n", + "成功获取 000737.SZ 的数据\n", + "成功获取 000738.SZ 的数据\n", + "成功获取 000739.SZ 的数据\n", + "成功获取 000750.SZ 的数据\n", + "成功获取 000751.SZ 的数据\n", + "成功获取 000752.SZ 的数据\n", + "成功获取 000753.SZ 的数据\n", + "成功获取 000755.SZ 的数据\n", + "成功获取 000756.SZ 的数据\n", + "成功获取 000757.SZ 的数据\n", + "成功获取 000758.SZ 的数据\n", + "成功获取 000759.SZ 的数据\n", + "成功获取 000761.SZ 的数据\n", + "成功获取 000762.SZ 的数据\n", + "成功获取 000766.SZ 的数据\n", + "成功获取 000767.SZ 的数据\n", + "成功获取 000768.SZ 的数据\n", + "成功获取 000776.SZ 的数据\n", + "成功获取 000777.SZ 的数据\n", + "成功获取 000778.SZ 的数据\n", + "成功获取 000779.SZ 的数据\n", + "成功获取 000782.SZ 的数据\n", + "成功获取 000783.SZ 的数据\n", + "成功获取 000785.SZ 的数据\n", + "成功获取 000786.SZ 的数据\n", + "成功获取 000788.SZ 的数据\n", + "成功获取 000789.SZ 的数据\n", + "成功获取 000790.SZ 的数据\n", + "成功获取 000791.SZ 的数据\n", + "成功获取 000792.SZ 的数据\n", + "成功获取 000793.SZ 的数据\n", + "成功获取 000795.SZ 的数据\n", + "成功获取 000796.SZ 的数据\n", + "成功获取 000797.SZ 的数据\n", + "成功获取 000798.SZ 的数据\n", + "成功获取 000799.SZ 的数据\n", + "成功获取 000800.SZ 的数据\n", + "成功获取 000801.SZ 的数据\n", + "成功获取 000802.SZ 的数据\n", + "成功获取 000803.SZ 的数据\n", + "成功获取 000807.SZ 的数据\n", + "成功获取 000809.SZ 的数据\n", + "成功获取 000810.SZ 的数据\n", + "成功获取 000811.SZ 的数据\n", + "成功获取 000812.SZ 的数据\n", + "成功获取 000813.SZ 的数据\n", + "成功获取 000815.SZ 的数据\n", + "成功获取 000816.SZ 的数据\n", + "成功获取 000818.SZ 的数据\n", + "成功获取 000819.SZ 的数据\n", + "成功获取 000820.SZ 的数据\n", + "成功获取 000821.SZ 的数据\n", + "成功获取 000822.SZ 的数据\n", + "成功获取 000823.SZ 的数据\n", + "成功获取 000825.SZ 的数据\n", + "成功获取 000826.SZ 的数据\n", + "成功获取 000828.SZ 的数据\n", + "成功获取 000829.SZ 的数据\n", + "成功获取 000830.SZ 的数据\n", + "成功获取 000831.SZ 的数据\n", + "成功获取 000833.SZ 的数据\n", + "成功获取 000837.SZ 的数据\n", + "成功获取 000838.SZ 的数据\n", + "成功获取 000839.SZ 的数据\n", + "成功获取 000848.SZ 的数据\n", + "成功获取 000850.SZ 的数据\n", + "成功获取 000851.SZ 的数据\n", + "成功获取 000852.SZ 的数据\n", + "成功获取 000856.SZ 的数据\n", + "成功获取 000858.SZ 的数据\n", + "成功获取 000859.SZ 的数据\n", + "成功获取 000860.SZ 的数据\n", + "成功获取 000862.SZ 的数据\n", + "成功获取 000863.SZ 的数据\n", + "成功获取 000868.SZ 的数据\n", + "成功获取 000869.SZ 的数据\n", + "成功获取 000875.SZ 的数据\n", + "成功获取 000876.SZ 的数据\n", + "成功获取 000877.SZ 的数据\n", + "成功获取 000878.SZ 的数据\n", + "成功获取 000880.SZ 的数据\n", + "成功获取 000881.SZ 的数据\n", + "成功获取 000882.SZ 的数据\n", + "成功获取 000883.SZ 的数据\n", + "成功获取 000885.SZ 的数据\n", + "成功获取 000886.SZ 的数据\n", + "成功获取 000887.SZ 的数据\n", + "成功获取 000888.SZ 的数据\n", + "成功获取 000889.SZ 的数据\n", + "成功获取 000890.SZ 的数据\n", + "成功获取 000892.SZ 的数据\n", + "成功获取 000893.SZ 的数据\n", + "成功获取 000895.SZ 的数据\n", + "成功获取 000897.SZ 的数据\n", + "成功获取 000898.SZ 的数据\n", + "成功获取 000899.SZ 的数据\n", + "成功获取 000900.SZ 的数据\n", + "成功获取 000901.SZ 的数据\n", + "成功获取 000902.SZ 的数据\n", + "成功获取 000903.SZ 的数据\n", + "成功获取 000905.SZ 的数据\n", + "成功获取 000906.SZ 的数据\n", + "成功获取 000908.SZ 的数据\n", + "成功获取 000909.SZ 的数据\n", + "成功获取 000910.SZ 的数据\n", + "成功获取 000911.SZ 的数据\n", + "成功获取 000912.SZ 的数据\n", + "成功获取 000913.SZ 的数据\n", + "成功获取 000915.SZ 的数据\n", + "成功获取 000917.SZ 的数据\n", + "成功获取 000919.SZ 的数据\n", + "成功获取 000920.SZ 的数据\n", + "成功获取 000921.SZ 的数据\n", + "成功获取 000922.SZ 的数据\n", + "成功获取 000923.SZ 的数据\n", + "成功获取 000925.SZ 的数据\n", + "成功获取 000926.SZ 的数据\n", + "成功获取 000927.SZ 的数据\n", + "成功获取 000928.SZ 的数据\n", + "成功获取 000929.SZ 的数据\n", + "成功获取 000930.SZ 的数据\n", + "成功获取 000931.SZ 的数据\n", + "成功获取 000932.SZ 的数据\n", + "成功获取 000933.SZ 的数据\n", + "成功获取 000935.SZ 的数据\n", + "成功获取 000936.SZ 的数据\n", + "成功获取 000937.SZ 的数据\n", + "成功获取 000938.SZ 的数据\n", + "成功获取 000948.SZ 的数据\n", + "成功获取 000949.SZ 的数据\n", + "成功获取 000950.SZ 的数据\n", + "成功获取 000951.SZ 的数据\n", + "成功获取 000952.SZ 的数据\n", + "成功获取 000953.SZ 的数据\n", + "成功获取 000955.SZ 的数据\n", + "成功获取 000957.SZ 的数据\n", + "成功获取 000958.SZ 的数据\n", + "成功获取 000959.SZ 的数据\n", + "成功获取 000960.SZ 的数据\n", + "成功获取 000962.SZ 的数据\n", + "成功获取 000963.SZ 的数据\n", + "成功获取 000965.SZ 的数据\n", + "成功获取 000966.SZ 的数据\n", + "成功获取 000967.SZ 的数据\n", + "成功获取 000968.SZ 的数据\n", + "成功获取 000969.SZ 的数据\n", + "成功获取 000970.SZ 的数据\n", + "成功获取 000972.SZ 的数据\n", + "成功获取 000973.SZ 的数据\n", + "成功获取 000975.SZ 的数据\n", + "成功获取 000977.SZ 的数据\n", + "成功获取 000978.SZ 的数据\n", + "成功获取 000980.SZ 的数据\n", + "成功获取 000981.SZ 的数据\n", + "成功获取 000983.SZ 的数据\n", + "成功获取 000985.SZ 的数据\n", + "成功获取 000987.SZ 的数据\n", + "成功获取 000988.SZ 的数据\n", + "成功获取 000989.SZ 的数据\n", + "成功获取 000990.SZ 的数据\n", + "成功获取 000993.SZ 的数据\n", + "成功获取 000995.SZ 的数据\n", + "成功获取 000997.SZ 的数据\n", + "成功获取 000998.SZ 的数据\n", + "成功获取 000999.SZ 的数据\n", + "成功获取 001201.SZ 的数据\n", + "成功获取 001202.SZ 的数据\n", + "成功获取 001203.SZ 的数据\n", + "成功获取 001205.SZ 的数据\n", + "成功获取 001206.SZ 的数据\n", + "成功获取 001207.SZ 的数据\n", + "成功获取 001208.SZ 的数据\n", + "成功获取 001209.SZ 的数据\n", + "成功获取 001210.SZ 的数据\n", + "成功获取 001211.SZ 的数据\n", + "成功获取 001212.SZ 的数据\n", + "成功获取 001213.SZ 的数据\n", + "成功获取 001215.SZ 的数据\n", + "成功获取 001216.SZ 的数据\n", + "成功获取 001217.SZ 的数据\n", + "成功获取 001218.SZ 的数据\n", + "成功获取 001219.SZ 的数据\n", + "成功获取 001222.SZ 的数据\n", + "成功获取 001223.SZ 的数据\n", + "成功获取 001225.SZ 的数据\n", + "成功获取 001226.SZ 的数据\n", + "成功获取 001227.SZ 的数据\n", + "成功获取 001228.SZ 的数据\n", + "成功获取 001229.SZ 的数据\n", + "成功获取 001230.SZ 的数据\n", + "成功获取 001231.SZ 的数据\n", + "成功获取 001234.SZ 的数据\n", + "成功获取 001236.SZ 的数据\n", + "成功获取 001238.SZ 的数据\n", + "成功获取 001239.SZ 的数据\n", + "成功获取 001255.SZ 的数据\n", + "成功获取 001256.SZ 的数据\n", + "成功获取 001258.SZ 的数据\n", + "成功获取 001259.SZ 的数据\n", + "成功获取 001260.SZ 的数据\n", + "成功获取 001266.SZ 的数据\n", + "成功获取 001267.SZ 的数据\n", + "成功获取 001268.SZ 的数据\n", + "成功获取 001269.SZ 的数据\n", + "成功获取 001270.SZ 的数据\n", + "成功获取 001277.SZ 的数据\n", + "成功获取 001278.SZ 的数据\n", + "成功获取 001279.SZ 的数据\n", + "成功获取 001282.SZ 的数据\n", + "成功获取 001283.SZ 的数据\n", + "成功获取 001286.SZ 的数据\n", + "成功获取 001287.SZ 的数据\n", + "成功获取 001288.SZ 的数据\n", + "成功获取 001289.SZ 的数据\n", + "成功获取 001296.SZ 的数据\n", + "成功获取 001298.SZ 的数据\n", + "成功获取 001299.SZ 的数据\n", + "成功获取 001300.SZ 的数据\n", + "成功获取 001301.SZ 的数据\n", + "成功获取 001306.SZ 的数据\n", + "成功获取 001308.SZ 的数据\n", + "成功获取 001309.SZ 的数据\n", + "成功获取 001311.SZ 的数据\n", + "成功获取 001313.SZ 的数据\n", + "成功获取 001314.SZ 的数据\n", + "成功获取 001316.SZ 的数据\n", + "成功获取 001317.SZ 的数据\n", + "成功获取 001318.SZ 的数据\n", + "成功获取 001319.SZ 的数据\n", + "成功获取 001322.SZ 的数据\n", + "成功获取 001323.SZ 的数据\n", + "成功获取 001324.SZ 的数据\n", + "成功获取 001326.SZ 的数据\n", + "成功获取 001328.SZ 的数据\n", + "成功获取 001330.SZ 的数据\n", + "成功获取 001331.SZ 的数据\n", + "成功获取 001332.SZ 的数据\n", + "成功获取 001333.SZ 的数据\n", + "成功获取 001336.SZ 的数据\n", + "成功获取 001337.SZ 的数据\n", + "成功获取 001338.SZ 的数据\n", + "成功获取 001339.SZ 的数据\n", + "成功获取 001356.SZ 的数据\n", + "成功获取 001358.SZ 的数据\n", + "成功获取 001359.SZ 的数据\n", + "成功获取 001360.SZ 的数据\n", + "成功获取 001366.SZ 的数据\n", + "成功获取 001367.SZ 的数据\n", + "成功获取 001368.SZ 的数据\n", + "成功获取 001373.SZ 的数据\n", + "成功获取 001376.SZ 的数据\n", + "成功获取 001378.SZ 的数据\n", + "成功获取 001379.SZ 的数据\n", + "成功获取 001380.SZ 的数据\n", + "成功获取 001387.SZ 的数据\n", + "成功获取 001389.SZ 的数据\n", + "成功获取 001391.SZ 的数据\n", + "成功获取 001395.SZ 的数据\n", + "成功获取 001696.SZ 的数据\n", + "成功获取 001872.SZ 的数据\n", + "成功获取 001896.SZ 的数据\n", + "成功获取 001914.SZ 的数据\n", + "成功获取 001965.SZ 的数据\n", + "成功获取 001979.SZ 的数据\n", + "成功获取 002001.SZ 的数据\n", + "成功获取 002003.SZ 的数据\n", + "成功获取 002004.SZ 的数据\n", + "成功获取 002005.SZ 的数据\n", + "成功获取 002006.SZ 的数据\n", + "成功获取 002007.SZ 的数据\n", + "成功获取 002008.SZ 的数据\n", + "成功获取 002009.SZ 的数据\n", + "成功获取 002010.SZ 的数据\n", + "成功获取 002011.SZ 的数据\n", + "成功获取 002012.SZ 的数据\n", + "成功获取 002014.SZ 的数据\n", + "成功获取 002015.SZ 的数据\n", + "成功获取 002016.SZ 的数据\n", + "成功获取 002017.SZ 的数据\n", + "成功获取 002019.SZ 的数据\n", + "成功获取 002020.SZ 的数据\n", + "成功获取 002021.SZ 的数据\n", + "成功获取 002022.SZ 的数据\n", + "成功获取 002023.SZ 的数据\n", + "成功获取 002024.SZ 的数据\n", + "成功获取 002025.SZ 的数据\n", + "成功获取 002026.SZ 的数据\n", + "成功获取 002027.SZ 的数据\n", + "成功获取 002028.SZ 的数据\n", + "成功获取 002029.SZ 的数据\n", + "成功获取 002030.SZ 的数据\n", + "成功获取 002031.SZ 的数据\n", + "成功获取 002032.SZ 的数据\n", + "成功获取 002033.SZ 的数据\n", + "成功获取 002034.SZ 的数据\n", + "成功获取 002035.SZ 的数据\n", + "成功获取 002036.SZ 的数据\n", + "成功获取 002037.SZ 的数据\n", + "成功获取 002038.SZ 的数据\n", + "成功获取 002039.SZ 的数据\n", + "成功获取 002040.SZ 的数据\n", + "成功获取 002041.SZ 的数据\n", + "成功获取 002042.SZ 的数据\n", + "成功获取 002043.SZ 的数据\n", + "成功获取 002044.SZ 的数据\n", + "成功获取 002045.SZ 的数据\n", + "成功获取 002046.SZ 的数据\n", + "成功获取 002047.SZ 的数据\n", + "成功获取 002048.SZ 的数据\n", + "成功获取 002049.SZ 的数据\n", + "成功获取 002050.SZ 的数据\n", + "成功获取 002051.SZ 的数据\n", + "成功获取 002052.SZ 的数据\n", + "成功获取 002053.SZ 的数据\n", + "成功获取 002054.SZ 的数据\n", + "成功获取 002055.SZ 的数据\n", + "成功获取 002056.SZ 的数据\n", + "成功获取 002057.SZ 的数据\n", + "成功获取 002058.SZ 的数据\n", + "成功获取 002059.SZ 的数据\n", + "成功获取 002060.SZ 的数据\n", + "成功获取 002061.SZ 的数据\n", + "成功获取 002062.SZ 的数据\n", + "成功获取 002063.SZ 的数据\n", + "成功获取 002064.SZ 的数据\n", + "成功获取 002065.SZ 的数据\n", + "成功获取 002066.SZ 的数据\n", + "成功获取 002067.SZ 的数据\n", + "成功获取 002068.SZ 的数据\n", + "成功获取 002069.SZ 的数据\n", + "成功获取 002072.SZ 的数据\n", + "成功获取 002073.SZ 的数据\n", + "成功获取 002074.SZ 的数据\n", + "成功获取 002075.SZ 的数据\n", + "成功获取 002076.SZ 的数据\n", + "成功获取 002077.SZ 的数据\n", + "成功获取 002078.SZ 的数据\n", + "成功获取 002079.SZ 的数据\n", + "成功获取 002080.SZ 的数据\n", + "成功获取 002081.SZ 的数据\n", + "成功获取 002082.SZ 的数据\n", + "成功获取 002083.SZ 的数据\n", + "成功获取 002084.SZ 的数据\n", + "成功获取 002085.SZ 的数据\n", + "成功获取 002086.SZ 的数据\n", + "成功获取 002088.SZ 的数据\n", + "成功获取 002090.SZ 的数据\n", + "成功获取 002091.SZ 的数据\n", + "成功获取 002092.SZ 的数据\n", + "成功获取 002093.SZ 的数据\n", + "成功获取 002094.SZ 的数据\n", + "成功获取 002095.SZ 的数据\n", + "成功获取 002096.SZ 的数据\n", + "成功获取 002097.SZ 的数据\n", + "成功获取 002098.SZ 的数据\n", + "成功获取 002099.SZ 的数据\n", + "成功获取 002100.SZ 的数据\n", + "成功获取 002101.SZ 的数据\n", + "成功获取 002102.SZ 的数据\n", + "成功获取 002103.SZ 的数据\n", + "成功获取 002104.SZ 的数据\n", + "成功获取 002105.SZ 的数据\n", + "成功获取 002106.SZ 的数据\n", + "成功获取 002107.SZ 的数据\n", + "成功获取 002108.SZ 的数据\n", + "成功获取 002109.SZ 的数据\n", + "成功获取 002110.SZ 的数据\n", + "成功获取 002111.SZ 的数据\n", + "成功获取 002112.SZ 的数据\n", + "成功获取 002114.SZ 的数据\n", + "成功获取 002115.SZ 的数据\n", + "成功获取 002116.SZ 的数据\n", + "成功获取 002117.SZ 的数据\n", + "成功获取 002119.SZ 的数据\n", + "成功获取 002120.SZ 的数据\n", + "成功获取 002121.SZ 的数据\n", + "成功获取 002122.SZ 的数据\n", + "成功获取 002123.SZ 的数据\n", + "成功获取 002124.SZ 的数据\n", + "成功获取 002125.SZ 的数据\n", + "成功获取 002126.SZ 的数据\n", + "成功获取 002127.SZ 的数据\n", + "成功获取 002128.SZ 的数据\n", + "成功获取 002129.SZ 的数据\n", + "成功获取 002130.SZ 的数据\n", + "成功获取 002131.SZ 的数据\n", + "成功获取 002132.SZ 的数据\n", + "成功获取 002133.SZ 的数据\n", + "成功获取 002134.SZ 的数据\n", + "成功获取 002135.SZ 的数据\n", + "成功获取 002136.SZ 的数据\n", + "成功获取 002137.SZ 的数据\n", + "成功获取 002138.SZ 的数据\n", + "成功获取 002139.SZ 的数据\n", + "成功获取 002140.SZ 的数据\n", + "成功获取 002141.SZ 的数据\n", + "成功获取 002142.SZ 的数据\n", + "成功获取 002144.SZ 的数据\n", + "成功获取 002145.SZ 的数据\n", + "成功获取 002146.SZ 的数据\n", + "成功获取 002148.SZ 的数据\n", + "成功获取 002149.SZ 的数据\n", + "成功获取 002150.SZ 的数据\n", + "成功获取 002151.SZ 的数据\n", + "成功获取 002152.SZ 的数据\n", + "成功获取 002153.SZ 的数据\n", + "成功获取 002154.SZ 的数据\n", + "成功获取 002155.SZ 的数据\n", + "成功获取 002156.SZ 的数据\n", + "成功获取 002157.SZ 的数据\n", + "成功获取 002158.SZ 的数据\n", + "成功获取 002159.SZ 的数据\n", + "成功获取 002160.SZ 的数据\n", + "成功获取 002161.SZ 的数据\n", + "成功获取 002162.SZ 的数据\n", + "成功获取 002163.SZ 的数据\n", + "成功获取 002164.SZ 的数据\n", + "成功获取 002165.SZ 的数据\n", + "成功获取 002166.SZ 的数据\n", + "成功获取 002167.SZ 的数据\n", + "成功获取 002168.SZ 的数据\n", + "成功获取 002169.SZ 的数据\n", + "成功获取 002170.SZ 的数据\n", + "成功获取 002171.SZ 的数据\n", + "成功获取 002172.SZ 的数据\n", + "成功获取 002173.SZ 的数据\n", + "成功获取 002174.SZ 的数据\n", + "成功获取 002175.SZ 的数据\n", + "成功获取 002176.SZ 的数据\n", + "成功获取 002177.SZ 的数据\n", + "成功获取 002178.SZ 的数据\n", + "成功获取 002179.SZ 的数据\n", + "成功获取 002180.SZ 的数据\n", + "成功获取 002181.SZ 的数据\n", + "成功获取 002182.SZ 的数据\n", + "成功获取 002183.SZ 的数据\n", + "成功获取 002184.SZ 的数据\n", + "成功获取 002185.SZ 的数据\n", + "成功获取 002186.SZ 的数据\n", + "成功获取 002187.SZ 的数据\n", + "成功获取 002188.SZ 的数据\n", + "成功获取 002189.SZ 的数据\n", + "成功获取 002190.SZ 的数据\n", + "成功获取 002191.SZ 的数据\n", + "成功获取 002192.SZ 的数据\n", + "成功获取 002193.SZ 的数据\n", + "成功获取 002194.SZ 的数据\n", + "成功获取 002195.SZ 的数据\n", + "成功获取 002196.SZ 的数据\n", + "成功获取 002197.SZ 的数据\n", + "成功获取 002198.SZ 的数据\n", + "成功获取 002199.SZ 的数据\n", + "成功获取 002200.SZ 的数据\n", + "成功获取 002201.SZ 的数据\n", + "成功获取 002202.SZ 的数据\n", + "成功获取 002203.SZ 的数据\n", + "成功获取 002204.SZ 的数据\n", + "成功获取 002205.SZ 的数据\n", + "成功获取 002206.SZ 的数据\n", + "成功获取 002207.SZ 的数据\n", + "成功获取 002208.SZ 的数据\n", + "成功获取 002209.SZ 的数据\n", + "成功获取 002210.SZ 的数据\n", + "成功获取 002211.SZ 的数据\n", + "成功获取 002212.SZ 的数据\n", + "成功获取 002213.SZ 的数据\n", + "成功获取 002214.SZ 的数据\n", + "成功获取 002215.SZ 的数据\n", + "成功获取 002216.SZ 的数据\n", + "成功获取 002217.SZ 的数据\n", + "成功获取 002218.SZ 的数据\n", + "成功获取 002219.SZ 的数据\n", + "成功获取 002221.SZ 的数据\n", + "成功获取 002222.SZ 的数据\n", + "成功获取 002223.SZ 的数据\n", + "成功获取 002224.SZ 的数据\n", + "成功获取 002225.SZ 的数据\n", + "成功获取 002226.SZ 的数据\n", + "成功获取 002227.SZ 的数据\n", + "成功获取 002228.SZ 的数据\n", + "成功获取 002229.SZ 的数据\n", + "成功获取 002230.SZ 的数据\n", + "成功获取 002231.SZ 的数据\n", + "成功获取 002232.SZ 的数据\n", + "成功获取 002233.SZ 的数据\n", + "成功获取 002234.SZ 的数据\n", + "成功获取 002235.SZ 的数据\n", + "成功获取 002236.SZ 的数据\n", + "成功获取 002237.SZ 的数据\n", + "成功获取 002238.SZ 的数据\n", + "成功获取 002239.SZ 的数据\n", + "成功获取 002240.SZ 的数据\n", + "成功获取 002241.SZ 的数据\n", + "成功获取 002242.SZ 的数据\n", + "成功获取 002243.SZ 的数据\n", + "成功获取 002244.SZ 的数据\n", + "成功获取 002245.SZ 的数据\n", + "成功获取 002246.SZ 的数据\n", + "成功获取 002247.SZ 的数据\n", + "成功获取 002248.SZ 的数据\n", + "成功获取 002249.SZ 的数据\n", + "成功获取 002250.SZ 的数据\n", + "成功获取 002251.SZ 的数据\n", + "成功获取 002252.SZ 的数据\n", + "成功获取 002253.SZ 的数据\n", + "成功获取 002254.SZ 的数据\n", + "成功获取 002255.SZ 的数据\n", + "成功获取 002256.SZ 的数据\n", + "成功获取 002258.SZ 的数据\n", + "成功获取 002259.SZ 的数据\n", + "成功获取 002261.SZ 的数据\n", + "成功获取 002262.SZ 的数据\n", + "成功获取 002263.SZ 的数据\n", + "成功获取 002264.SZ 的数据\n", + "成功获取 002265.SZ 的数据\n", + "成功获取 002266.SZ 的数据\n", + "成功获取 002267.SZ 的数据\n", + "成功获取 002268.SZ 的数据\n", + "成功获取 002269.SZ 的数据\n", + "成功获取 002270.SZ 的数据\n", + "成功获取 002271.SZ 的数据\n", + "成功获取 002272.SZ 的数据\n", + "成功获取 002273.SZ 的数据\n", + "成功获取 002274.SZ 的数据\n", + "成功获取 002275.SZ 的数据\n", + "成功获取 002276.SZ 的数据\n", + "成功获取 002277.SZ 的数据\n", + "成功获取 002278.SZ 的数据\n", + "成功获取 002279.SZ 的数据\n", + "成功获取 002281.SZ 的数据\n", + "成功获取 002282.SZ 的数据\n", + "成功获取 002283.SZ 的数据\n", + "成功获取 002284.SZ 的数据\n", + "成功获取 002285.SZ 的数据\n", + "成功获取 002286.SZ 的数据\n", + "成功获取 002287.SZ 的数据\n", + "成功获取 002289.SZ 的数据\n", + "成功获取 002290.SZ 的数据\n", + "成功获取 002291.SZ 的数据\n", + "成功获取 002292.SZ 的数据\n", + "成功获取 002293.SZ 的数据\n", + "成功获取 002294.SZ 的数据\n", + "成功获取 002295.SZ 的数据\n", + "成功获取 002296.SZ 的数据\n", + "成功获取 002297.SZ 的数据\n", + "成功获取 002298.SZ 的数据\n", + "成功获取 002299.SZ 的数据\n", + "成功获取 002300.SZ 的数据\n", + "成功获取 002301.SZ 的数据\n", + "成功获取 002302.SZ 的数据\n", + "成功获取 002303.SZ 的数据\n", + "成功获取 002304.SZ 的数据\n", + "成功获取 002305.SZ 的数据\n", + "成功获取 002306.SZ 的数据\n", + "成功获取 002307.SZ 的数据\n", + "成功获取 002309.SZ 的数据\n", + "成功获取 002310.SZ 的数据\n", + "成功获取 002311.SZ 的数据\n", + "成功获取 002312.SZ 的数据\n", + "成功获取 002313.SZ 的数据\n", + "成功获取 002314.SZ 的数据\n", + "成功获取 002315.SZ 的数据\n", + "成功获取 002316.SZ 的数据\n", + "成功获取 002317.SZ 的数据\n", + "成功获取 002318.SZ 的数据\n", + "成功获取 002319.SZ 的数据\n", + "成功获取 002320.SZ 的数据\n", + "成功获取 002321.SZ 的数据\n", + "成功获取 002322.SZ 的数据\n", + "成功获取 002323.SZ 的数据\n", + "成功获取 002324.SZ 的数据\n", + "成功获取 002326.SZ 的数据\n", + "成功获取 002327.SZ 的数据\n", + "成功获取 002328.SZ 的数据\n", + "成功获取 002329.SZ 的数据\n", + "成功获取 002330.SZ 的数据\n", + "成功获取 002331.SZ 的数据\n", + "成功获取 002332.SZ 的数据\n", + "成功获取 002333.SZ 的数据\n", + "成功获取 002334.SZ 的数据\n", + "成功获取 002335.SZ 的数据\n", + "成功获取 002336.SZ 的数据\n", + "成功获取 002337.SZ 的数据\n", + "成功获取 002338.SZ 的数据\n", + "成功获取 002339.SZ 的数据\n", + "成功获取 002340.SZ 的数据\n", + "成功获取 002342.SZ 的数据\n", + "成功获取 002343.SZ 的数据\n", + "成功获取 002344.SZ 的数据\n", + "成功获取 002345.SZ 的数据\n", + "成功获取 002346.SZ 的数据\n", + "成功获取 002347.SZ 的数据\n", + "成功获取 002348.SZ 的数据\n", + "成功获取 002349.SZ 的数据\n", + "成功获取 002350.SZ 的数据\n", + "成功获取 002351.SZ 的数据\n", + "成功获取 002352.SZ 的数据\n", + "成功获取 002353.SZ 的数据\n", + "成功获取 002354.SZ 的数据\n", + "成功获取 002355.SZ 的数据\n", + "成功获取 002356.SZ 的数据\n", + "成功获取 002357.SZ 的数据\n", + "成功获取 002358.SZ 的数据\n", + "成功获取 002360.SZ 的数据\n", + "成功获取 002361.SZ 的数据\n", + "成功获取 002362.SZ 的数据\n", + "成功获取 002363.SZ 的数据\n", + "成功获取 002364.SZ 的数据\n", + "成功获取 002365.SZ 的数据\n", + "成功获取 002366.SZ 的数据\n", + "成功获取 002367.SZ 的数据\n", + "成功获取 002368.SZ 的数据\n", + "成功获取 002369.SZ 的数据\n", + "成功获取 002370.SZ 的数据\n", + "成功获取 002371.SZ 的数据\n", + "成功获取 002372.SZ 的数据\n", + "成功获取 002373.SZ 的数据\n", + "成功获取 002374.SZ 的数据\n", + "成功获取 002375.SZ 的数据\n", + "成功获取 002376.SZ 的数据\n", + "成功获取 002377.SZ 的数据\n", + "成功获取 002378.SZ 的数据\n", + "成功获取 002379.SZ 的数据\n", + "成功获取 002380.SZ 的数据\n", + "成功获取 002381.SZ 的数据\n", + "成功获取 002382.SZ 的数据\n", + "成功获取 002383.SZ 的数据\n", + "成功获取 002384.SZ 的数据\n", + "成功获取 002385.SZ 的数据\n", + "成功获取 002386.SZ 的数据\n", + "成功获取 002387.SZ 的数据\n", + "成功获取 002388.SZ 的数据\n", + "成功获取 002389.SZ 的数据\n", + "成功获取 002390.SZ 的数据\n", + "成功获取 002391.SZ 的数据\n", + "成功获取 002392.SZ 的数据\n", + "成功获取 002393.SZ 的数据\n", + "成功获取 002394.SZ 的数据\n", + "成功获取 002395.SZ 的数据\n", + "成功获取 002396.SZ 的数据\n", + "成功获取 002397.SZ 的数据\n", + "成功获取 002398.SZ 的数据\n", + "成功获取 002399.SZ 的数据\n", + "成功获取 002400.SZ 的数据\n", + "成功获取 002401.SZ 的数据\n", + "成功获取 002402.SZ 的数据\n", + "成功获取 002403.SZ 的数据\n", + "成功获取 002404.SZ 的数据\n", + "成功获取 002405.SZ 的数据\n", + "成功获取 002406.SZ 的数据\n", + "成功获取 002407.SZ 的数据\n", + "成功获取 002408.SZ 的数据\n", + "成功获取 002409.SZ 的数据\n", + "成功获取 002410.SZ 的数据\n", + "成功获取 002412.SZ 的数据\n", + "成功获取 002413.SZ 的数据\n", + "成功获取 002414.SZ 的数据\n", + "成功获取 002415.SZ 的数据\n", + "成功获取 002416.SZ 的数据\n", + "成功获取 002418.SZ 的数据\n", + "成功获取 002419.SZ 的数据\n", + "成功获取 002420.SZ 的数据\n", + "成功获取 002421.SZ 的数据\n", + "成功获取 002422.SZ 的数据\n", + "成功获取 002423.SZ 的数据\n", + "成功获取 002424.SZ 的数据\n", + "成功获取 002425.SZ 的数据\n", + "成功获取 002426.SZ 的数据\n", + "成功获取 002427.SZ 的数据\n", + "成功获取 002428.SZ 的数据\n", + "成功获取 002429.SZ 的数据\n", + "成功获取 002430.SZ 的数据\n", + "成功获取 002431.SZ 的数据\n", + "成功获取 002432.SZ 的数据\n", + "成功获取 002434.SZ 的数据\n", + "成功获取 002436.SZ 的数据\n", + "成功获取 002437.SZ 的数据\n", + "成功获取 002438.SZ 的数据\n", + "成功获取 002439.SZ 的数据\n", + "成功获取 002440.SZ 的数据\n", + "成功获取 002441.SZ 的数据\n", + "成功获取 002442.SZ 的数据\n", + "成功获取 002443.SZ 的数据\n", + "成功获取 002444.SZ 的数据\n", + "成功获取 002445.SZ 的数据\n", + "成功获取 002446.SZ 的数据\n", + "成功获取 002448.SZ 的数据\n", + "成功获取 002449.SZ 的数据\n", + "成功获取 002451.SZ 的数据\n", + "成功获取 002452.SZ 的数据\n", + "成功获取 002453.SZ 的数据\n", + "成功获取 002454.SZ 的数据\n", + "成功获取 002455.SZ 的数据\n", + "成功获取 002456.SZ 的数据\n", + "成功获取 002457.SZ 的数据\n", + "成功获取 002458.SZ 的数据\n", + "成功获取 002459.SZ 的数据\n", + "成功获取 002460.SZ 的数据\n", + "成功获取 002461.SZ 的数据\n", + "成功获取 002462.SZ 的数据\n", + "成功获取 002463.SZ 的数据\n", + "成功获取 002465.SZ 的数据\n", + "成功获取 002466.SZ 的数据\n", + "成功获取 002467.SZ 的数据\n", + "成功获取 002468.SZ 的数据\n", + "成功获取 002469.SZ 的数据\n", + "成功获取 002470.SZ 的数据\n", + "成功获取 002471.SZ 的数据\n", + "成功获取 002472.SZ 的数据\n", + "成功获取 002474.SZ 的数据\n", + "成功获取 002475.SZ 的数据\n", + "成功获取 002476.SZ 的数据\n", + "成功获取 002478.SZ 的数据\n", + "成功获取 002479.SZ 的数据\n", + "成功获取 002480.SZ 的数据\n", + "成功获取 002481.SZ 的数据\n", + "成功获取 002482.SZ 的数据\n", + "成功获取 002483.SZ 的数据\n", + "成功获取 002484.SZ 的数据\n", + "成功获取 002485.SZ 的数据\n", + "成功获取 002486.SZ 的数据\n", + "成功获取 002487.SZ 的数据\n", + "成功获取 002488.SZ 的数据\n", + "成功获取 002489.SZ 的数据\n", + "成功获取 002490.SZ 的数据\n", + "成功获取 002491.SZ 的数据\n", + "成功获取 002492.SZ 的数据\n", + "成功获取 002493.SZ 的数据\n", + "成功获取 002494.SZ 的数据\n", + "成功获取 002495.SZ 的数据\n", + "成功获取 002496.SZ 的数据\n", + "成功获取 002497.SZ 的数据\n", + "成功获取 002498.SZ 的数据\n", + "成功获取 002500.SZ 的数据\n", + "成功获取 002501.SZ 的数据\n", + "成功获取 002506.SZ 的数据\n", + "成功获取 002507.SZ 的数据\n", + "成功获取 002508.SZ 的数据\n", + "成功获取 002510.SZ 的数据\n", + "成功获取 002511.SZ 的数据\n", + "成功获取 002512.SZ 的数据\n", + "成功获取 002513.SZ 的数据\n", + "成功获取 002514.SZ 的数据\n", + "成功获取 002515.SZ 的数据\n", + "成功获取 002516.SZ 的数据\n", + "成功获取 002517.SZ 的数据\n", + "成功获取 002518.SZ 的数据\n", + "成功获取 002519.SZ 的数据\n", + "成功获取 002520.SZ 的数据\n", + "成功获取 002521.SZ 的数据\n", + "成功获取 002522.SZ 的数据\n", + "成功获取 002523.SZ 的数据\n", + "成功获取 002524.SZ 的数据\n", + "成功获取 002526.SZ 的数据\n", + "成功获取 002527.SZ 的数据\n", + "成功获取 002528.SZ 的数据\n", + "成功获取 002529.SZ 的数据\n", + "成功获取 002530.SZ 的数据\n", + "成功获取 002531.SZ 的数据\n", + "成功获取 002532.SZ 的数据\n", + "成功获取 002533.SZ 的数据\n", + "成功获取 002534.SZ 的数据\n", + "成功获取 002535.SZ 的数据\n", + "成功获取 002536.SZ 的数据\n", + "成功获取 002537.SZ 的数据\n", + "成功获取 002538.SZ 的数据\n", + "成功获取 002539.SZ 的数据\n", + "成功获取 002540.SZ 的数据\n", + "成功获取 002541.SZ 的数据\n", + "成功获取 002542.SZ 的数据\n", + "成功获取 002543.SZ 的数据\n", + "成功获取 002544.SZ 的数据\n", + "成功获取 002545.SZ 的数据\n", + "成功获取 002546.SZ 的数据\n", + "成功获取 002547.SZ 的数据\n", + "成功获取 002548.SZ 的数据\n", + "成功获取 002549.SZ 的数据\n", + "成功获取 002550.SZ 的数据\n", + "成功获取 002551.SZ 的数据\n", + "成功获取 002552.SZ 的数据\n", + "成功获取 002553.SZ 的数据\n", + "成功获取 002554.SZ 的数据\n", + "成功获取 002555.SZ 的数据\n", + "成功获取 002556.SZ 的数据\n", + "成功获取 002557.SZ 的数据\n", + "成功获取 002558.SZ 的数据\n", + "成功获取 002559.SZ 的数据\n", + "成功获取 002560.SZ 的数据\n", + "成功获取 002561.SZ 的数据\n", + "成功获取 002562.SZ 的数据\n", + "成功获取 002563.SZ 的数据\n", + "成功获取 002564.SZ 的数据\n", + "成功获取 002565.SZ 的数据\n", + "成功获取 002566.SZ 的数据\n", + "成功获取 002567.SZ 的数据\n", + "成功获取 002568.SZ 的数据\n", + "成功获取 002569.SZ 的数据\n", + "成功获取 002570.SZ 的数据\n", + "成功获取 002571.SZ 的数据\n", + "成功获取 002572.SZ 的数据\n", + "成功获取 002573.SZ 的数据\n", + "成功获取 002574.SZ 的数据\n", + "成功获取 002575.SZ 的数据\n", + "成功获取 002576.SZ 的数据\n", + "成功获取 002577.SZ 的数据\n", + "成功获取 002578.SZ 的数据\n", + "成功获取 002579.SZ 的数据\n", + "成功获取 002580.SZ 的数据\n", + "成功获取 002581.SZ 的数据\n", + "成功获取 002582.SZ 的数据\n", + "成功获取 002583.SZ 的数据\n", + "成功获取 002584.SZ 的数据\n", + "成功获取 002585.SZ 的数据\n", + "成功获取 002586.SZ 的数据\n", + "成功获取 002587.SZ 的数据\n", + "成功获取 002588.SZ 的数据\n", + "成功获取 002589.SZ 的数据\n", + "成功获取 002590.SZ 的数据\n", + "成功获取 002591.SZ 的数据\n", + "成功获取 002592.SZ 的数据\n", + "成功获取 002593.SZ 的数据\n", + "成功获取 002594.SZ 的数据\n", + "成功获取 002595.SZ 的数据\n", + "成功获取 002596.SZ 的数据\n", + "成功获取 002597.SZ 的数据\n", + "成功获取 002598.SZ 的数据\n", + "成功获取 002599.SZ 的数据\n", + "成功获取 002600.SZ 的数据\n", + "成功获取 002601.SZ 的数据\n", + "成功获取 002602.SZ 的数据\n", + "成功获取 002603.SZ 的数据\n", + "成功获取 002605.SZ 的数据\n", + "成功获取 002606.SZ 的数据\n", + "成功获取 002607.SZ 的数据\n", + "成功获取 002608.SZ 的数据\n", + "成功获取 002609.SZ 的数据\n", + "成功获取 002611.SZ 的数据\n", + "成功获取 002612.SZ 的数据\n", + "成功获取 002613.SZ 的数据\n", + "成功获取 002614.SZ 的数据\n", + "成功获取 002615.SZ 的数据\n", + "成功获取 002616.SZ 的数据\n", + "成功获取 002617.SZ 的数据\n", + "成功获取 002620.SZ 的数据\n", + "成功获取 002622.SZ 的数据\n", + "成功获取 002623.SZ 的数据\n", + "成功获取 002624.SZ 的数据\n", + "成功获取 002625.SZ 的数据\n", + "成功获取 002626.SZ 的数据\n", + "成功获取 002627.SZ 的数据\n", + "成功获取 002628.SZ 的数据\n", + "成功获取 002629.SZ 的数据\n", + "成功获取 002630.SZ 的数据\n", + "成功获取 002631.SZ 的数据\n", + "成功获取 002632.SZ 的数据\n", + "成功获取 002633.SZ 的数据\n", + "成功获取 002634.SZ 的数据\n", + "成功获取 002635.SZ 的数据\n", + "成功获取 002636.SZ 的数据\n", + "成功获取 002637.SZ 的数据\n", + "成功获取 002638.SZ 的数据\n", + "成功获取 002639.SZ 的数据\n", + "成功获取 002640.SZ 的数据\n", + "成功获取 002641.SZ 的数据\n", + "成功获取 002642.SZ 的数据\n", + "成功获取 002643.SZ 的数据\n", + "成功获取 002644.SZ 的数据\n", + "成功获取 002645.SZ 的数据\n", + "成功获取 002646.SZ 的数据\n", + "成功获取 002647.SZ 的数据\n", + "成功获取 002648.SZ 的数据\n", + "成功获取 002649.SZ 的数据\n", + "成功获取 002650.SZ 的数据\n", + "成功获取 002651.SZ 的数据\n", + "成功获取 002652.SZ 的数据\n", + "成功获取 002653.SZ 的数据\n", + "成功获取 002654.SZ 的数据\n", + "成功获取 002655.SZ 的数据\n", + "成功获取 002656.SZ 的数据\n", + "成功获取 002657.SZ 的数据\n", + "成功获取 002658.SZ 的数据\n", + "成功获取 002659.SZ 的数据\n", + "成功获取 002660.SZ 的数据\n", + "成功获取 002661.SZ 的数据\n", + "成功获取 002662.SZ 的数据\n", + "成功获取 002663.SZ 的数据\n", + "成功获取 002664.SZ 的数据\n", + "成功获取 002666.SZ 的数据\n", + "成功获取 002667.SZ 的数据\n", + "成功获取 002668.SZ 的数据\n", + "成功获取 002669.SZ 的数据\n", + "成功获取 002670.SZ 的数据\n", + "成功获取 002671.SZ 的数据\n", + "成功获取 002672.SZ 的数据\n", + "成功获取 002673.SZ 的数据\n", + "成功获取 002674.SZ 的数据\n", + "成功获取 002675.SZ 的数据\n", + "成功获取 002676.SZ 的数据\n", + "成功获取 002677.SZ 的数据\n", + "成功获取 002678.SZ 的数据\n", + "成功获取 002679.SZ 的数据\n", + "成功获取 002681.SZ 的数据\n", + "成功获取 002682.SZ 的数据\n", + "成功获取 002683.SZ 的数据\n", + "成功获取 002685.SZ 的数据\n", + "成功获取 002686.SZ 的数据\n", + "成功获取 002687.SZ 的数据\n", + "成功获取 002688.SZ 的数据\n", + "成功获取 002689.SZ 的数据\n", + "成功获取 002690.SZ 的数据\n", + "成功获取 002691.SZ 的数据\n", + "成功获取 002692.SZ 的数据\n", + "成功获取 002693.SZ 的数据\n", + "成功获取 002694.SZ 的数据\n", + "成功获取 002695.SZ 的数据\n", + "成功获取 002696.SZ 的数据\n", + "成功获取 002697.SZ 的数据\n", + "成功获取 002698.SZ 的数据\n", + "成功获取 002700.SZ 的数据\n", + "成功获取 002701.SZ 的数据\n", + "成功获取 002702.SZ 的数据\n", + "成功获取 002703.SZ 的数据\n", + "成功获取 002705.SZ 的数据\n", + "成功获取 002706.SZ 的数据\n", + "成功获取 002707.SZ 的数据\n", + "成功获取 002708.SZ 的数据\n", + "成功获取 002709.SZ 的数据\n", + "成功获取 002712.SZ 的数据\n", + "成功获取 002713.SZ 的数据\n", + "成功获取 002714.SZ 的数据\n", + "成功获取 002715.SZ 的数据\n", + "成功获取 002716.SZ 的数据\n", + "成功获取 002717.SZ 的数据\n", + "成功获取 002718.SZ 的数据\n", + "成功获取 002719.SZ 的数据\n", + "成功获取 002721.SZ 的数据\n", + "成功获取 002722.SZ 的数据\n", + "成功获取 002723.SZ 的数据\n", + "成功获取 002724.SZ 的数据\n", + "成功获取 002725.SZ 的数据\n", + "成功获取 002726.SZ 的数据\n", + "成功获取 002727.SZ 的数据\n", + "成功获取 002728.SZ 的数据\n", + "成功获取 002729.SZ 的数据\n", + "成功获取 002730.SZ 的数据\n", + "成功获取 002731.SZ 的数据\n", + "成功获取 002732.SZ 的数据\n", + "成功获取 002733.SZ 的数据\n", + "成功获取 002734.SZ 的数据\n", + "成功获取 002735.SZ 的数据\n", + "成功获取 002736.SZ 的数据\n", + "成功获取 002737.SZ 的数据\n", + "成功获取 002738.SZ 的数据\n", + "成功获取 002739.SZ 的数据\n", + "成功获取 002741.SZ 的数据\n", + "成功获取 002742.SZ 的数据\n", + "成功获取 002743.SZ 的数据\n", + "成功获取 002745.SZ 的数据\n", + "成功获取 002746.SZ 的数据\n", + "成功获取 002747.SZ 的数据\n", + "成功获取 002748.SZ 的数据\n", + "成功获取 002749.SZ 的数据\n", + "成功获取 002750.SZ 的数据\n", + "成功获取 002752.SZ 的数据\n", + "成功获取 002753.SZ 的数据\n", + "成功获取 002755.SZ 的数据\n", + "成功获取 002756.SZ 的数据\n", + "成功获取 002757.SZ 的数据\n", + "成功获取 002758.SZ 的数据\n", + "成功获取 002759.SZ 的数据\n", + "成功获取 002760.SZ 的数据\n", + "成功获取 002761.SZ 的数据\n", + "成功获取 002762.SZ 的数据\n", + "成功获取 002763.SZ 的数据\n", + "成功获取 002765.SZ 的数据\n", + "成功获取 002766.SZ 的数据\n", + "成功获取 002767.SZ 的数据\n", + "成功获取 002768.SZ 的数据\n", + "成功获取 002769.SZ 的数据\n", + "成功获取 002771.SZ 的数据\n", + "成功获取 002772.SZ 的数据\n", + "成功获取 002773.SZ 的数据\n", + "成功获取 002774.SZ 的数据\n", + "成功获取 002775.SZ 的数据\n", + "成功获取 002777.SZ 的数据\n", + "成功获取 002778.SZ 的数据\n", + "成功获取 002779.SZ 的数据\n", + "成功获取 002780.SZ 的数据\n", + "成功获取 002782.SZ 的数据\n", + "成功获取 002783.SZ 的数据\n", + "成功获取 002785.SZ 的数据\n", + "成功获取 002786.SZ 的数据\n", + "成功获取 002787.SZ 的数据\n", + "成功获取 002788.SZ 的数据\n", + "成功获取 002789.SZ 的数据\n", + "成功获取 002790.SZ 的数据\n", + "成功获取 002791.SZ 的数据\n", + "成功获取 002792.SZ 的数据\n", + "成功获取 002793.SZ 的数据\n", + "成功获取 002795.SZ 的数据\n", + "成功获取 002796.SZ 的数据\n", + "成功获取 002797.SZ 的数据\n", + "成功获取 002798.SZ 的数据\n", + "成功获取 002799.SZ 的数据\n", + "成功获取 002800.SZ 的数据\n", + "成功获取 002801.SZ 的数据\n", + "成功获取 002802.SZ 的数据\n", + "成功获取 002803.SZ 的数据\n", + "成功获取 002805.SZ 的数据\n", + "成功获取 002806.SZ 的数据\n", + "成功获取 002807.SZ 的数据\n", + "成功获取 002808.SZ 的数据\n", + "成功获取 002809.SZ 的数据\n", + "成功获取 002810.SZ 的数据\n", + "成功获取 002811.SZ 的数据\n", + "成功获取 002812.SZ 的数据\n", + "成功获取 002813.SZ 的数据\n", + "成功获取 002815.SZ 的数据\n", + "成功获取 002816.SZ 的数据\n", + "成功获取 002817.SZ 的数据\n", + "成功获取 002818.SZ 的数据\n", + "成功获取 002819.SZ 的数据\n", + "成功获取 002820.SZ 的数据\n", + "成功获取 002821.SZ 的数据\n", + "成功获取 002822.SZ 的数据\n", + "成功获取 002823.SZ 的数据\n", + "成功获取 002824.SZ 的数据\n", + "成功获取 002825.SZ 的数据\n", + "成功获取 002826.SZ 的数据\n", + "成功获取 002827.SZ 的数据\n", + "成功获取 002828.SZ 的数据\n", + "成功获取 002829.SZ 的数据\n", + "成功获取 002830.SZ 的数据\n", + "成功获取 002831.SZ 的数据\n", + "成功获取 002832.SZ 的数据\n", + "成功获取 002833.SZ 的数据\n", + "成功获取 002835.SZ 的数据\n", + "成功获取 002836.SZ 的数据\n", + "成功获取 002837.SZ 的数据\n", + "成功获取 002838.SZ 的数据\n", + "成功获取 002839.SZ 的数据\n", + "成功获取 002840.SZ 的数据\n", + "成功获取 002841.SZ 的数据\n", + "成功获取 002842.SZ 的数据\n", + "成功获取 002843.SZ 的数据\n", + "成功获取 002845.SZ 的数据\n", + "成功获取 002846.SZ 的数据\n", + "成功获取 002847.SZ 的数据\n", + "成功获取 002848.SZ 的数据\n", + "成功获取 002849.SZ 的数据\n", + "成功获取 002850.SZ 的数据\n", + "成功获取 002851.SZ 的数据\n", + "成功获取 002852.SZ 的数据\n", + "成功获取 002853.SZ 的数据\n", + "成功获取 002855.SZ 的数据\n", + "成功获取 002856.SZ 的数据\n", + "成功获取 002857.SZ 的数据\n", + "成功获取 002858.SZ 的数据\n", + "成功获取 002859.SZ 的数据\n", + "成功获取 002860.SZ 的数据\n", + "成功获取 002861.SZ 的数据\n", + "成功获取 002862.SZ 的数据\n", + "成功获取 002863.SZ 的数据\n", + "成功获取 002864.SZ 的数据\n", + "成功获取 002865.SZ 的数据\n", + "成功获取 002866.SZ 的数据\n", + "成功获取 002867.SZ 的数据\n", + "成功获取 002868.SZ 的数据\n", + "成功获取 002869.SZ 的数据\n", + "成功获取 002870.SZ 的数据\n", + "成功获取 002871.SZ 的数据\n", + "成功获取 002872.SZ 的数据\n", + "成功获取 002873.SZ 的数据\n", + "成功获取 002875.SZ 的数据\n", + "成功获取 002876.SZ 的数据\n", + "成功获取 002877.SZ 的数据\n", + "成功获取 002878.SZ 的数据\n", + "成功获取 002879.SZ 的数据\n", + "成功获取 002880.SZ 的数据\n", + "成功获取 002881.SZ 的数据\n", + "成功获取 002882.SZ 的数据\n", + "成功获取 002883.SZ 的数据\n", + "成功获取 002884.SZ 的数据\n", + "成功获取 002885.SZ 的数据\n", + "成功获取 002886.SZ 的数据\n", + "成功获取 002887.SZ 的数据\n", + "成功获取 002888.SZ 的数据\n", + "成功获取 002889.SZ 的数据\n", + "成功获取 002890.SZ 的数据\n", + "成功获取 002891.SZ 的数据\n", + "成功获取 002892.SZ 的数据\n", + "成功获取 002893.SZ 的数据\n", + "成功获取 002895.SZ 的数据\n", + "成功获取 002896.SZ 的数据\n", + "成功获取 002897.SZ 的数据\n", + "成功获取 002898.SZ 的数据\n", + "成功获取 002899.SZ 的数据\n", + "成功获取 002900.SZ 的数据\n", + "成功获取 002901.SZ 的数据\n", + "成功获取 002902.SZ 的数据\n", + "成功获取 002903.SZ 的数据\n", + "成功获取 002905.SZ 的数据\n", + "成功获取 002906.SZ 的数据\n", + "成功获取 002907.SZ 的数据\n", + "成功获取 002908.SZ 的数据\n", + "成功获取 002909.SZ 的数据\n", + "成功获取 002910.SZ 的数据\n", + "成功获取 002911.SZ 的数据\n", + "成功获取 002912.SZ 的数据\n", + "成功获取 002913.SZ 的数据\n", + "成功获取 002915.SZ 的数据\n", + "成功获取 002916.SZ 的数据\n", + "成功获取 002917.SZ 的数据\n", + "成功获取 002918.SZ 的数据\n", + "成功获取 002919.SZ 的数据\n", + "成功获取 002920.SZ 的数据\n", + "成功获取 002921.SZ 的数据\n", + "成功获取 002922.SZ 的数据\n", + "成功获取 002923.SZ 的数据\n", + "成功获取 002925.SZ 的数据\n", + "成功获取 002926.SZ 的数据\n", + "成功获取 002927.SZ 的数据\n", + "成功获取 002928.SZ 的数据\n", + "成功获取 002929.SZ 的数据\n", + "成功获取 002930.SZ 的数据\n", + "成功获取 002931.SZ 的数据\n", + "成功获取 002932.SZ 的数据\n", + "成功获取 002933.SZ 的数据\n", + "成功获取 002935.SZ 的数据\n", + "成功获取 002936.SZ 的数据\n", + "成功获取 002937.SZ 的数据\n", + "成功获取 002938.SZ 的数据\n", + "成功获取 002939.SZ 的数据\n", + "成功获取 002940.SZ 的数据\n", + "成功获取 002941.SZ 的数据\n", + "成功获取 002942.SZ 的数据\n", + "成功获取 002943.SZ 的数据\n", + "成功获取 002945.SZ 的数据\n", + "成功获取 002946.SZ 的数据\n", + "成功获取 002947.SZ 的数据\n", + "成功获取 002948.SZ 的数据\n", + "成功获取 002949.SZ 的数据\n", + "成功获取 002950.SZ 的数据\n", + "成功获取 002951.SZ 的数据\n", + "成功获取 002952.SZ 的数据\n", + "成功获取 002953.SZ 的数据\n", + "成功获取 002955.SZ 的数据\n", + "成功获取 002956.SZ 的数据\n", + "成功获取 002957.SZ 的数据\n", + "成功获取 002958.SZ 的数据\n", + "成功获取 002959.SZ 的数据\n", + "成功获取 002960.SZ 的数据\n", + "成功获取 002961.SZ 的数据\n", + "成功获取 002962.SZ 的数据\n", + "成功获取 002963.SZ 的数据\n", + "成功获取 002965.SZ 的数据\n", + "成功获取 002966.SZ 的数据\n", + "成功获取 002967.SZ 的数据\n", + "成功获取 002968.SZ 的数据\n", + "成功获取 002969.SZ 的数据\n", + "成功获取 002970.SZ 的数据\n", + "成功获取 002971.SZ 的数据\n", + "成功获取 002972.SZ 的数据\n", + "成功获取 002973.SZ 的数据\n", + "成功获取 002975.SZ 的数据\n", + "成功获取 002976.SZ 的数据\n", + "成功获取 002977.SZ 的数据\n", + "成功获取 002978.SZ 的数据\n", + "成功获取 002979.SZ 的数据\n", + "成功获取 002980.SZ 的数据\n", + "成功获取 002981.SZ 的数据\n", + "成功获取 002982.SZ 的数据\n", + "成功获取 002983.SZ 的数据\n", + "成功获取 002984.SZ 的数据\n", + "成功获取 002985.SZ 的数据\n", + "成功获取 002986.SZ 的数据\n", + "成功获取 002987.SZ 的数据\n", + "成功获取 002988.SZ 的数据\n", + "成功获取 002989.SZ 的数据\n", + "成功获取 002990.SZ 的数据\n", + "成功获取 002991.SZ 的数据\n", + "成功获取 002992.SZ 的数据\n", + "成功获取 002993.SZ 的数据\n", + "成功获取 002995.SZ 的数据\n", + "成功获取 002996.SZ 的数据\n", + "成功获取 002997.SZ 的数据\n", + "成功获取 002998.SZ 的数据\n", + "成功获取 002999.SZ 的数据\n", + "成功获取 003000.SZ 的数据\n", + "成功获取 003001.SZ 的数据\n", + "成功获取 003002.SZ 的数据\n", + "成功获取 003003.SZ 的数据\n", + "成功获取 003004.SZ 的数据\n", + "成功获取 003005.SZ 的数据\n", + "成功获取 003006.SZ 的数据\n", + "成功获取 003007.SZ 的数据\n", + "成功获取 003008.SZ 的数据\n", + "成功获取 003009.SZ 的数据\n", + "成功获取 003010.SZ 的数据\n", + "成功获取 003011.SZ 的数据\n", + "成功获取 003012.SZ 的数据\n", + "成功获取 003013.SZ 的数据\n", + "成功获取 003015.SZ 的数据\n", + "成功获取 003016.SZ 的数据\n", + "成功获取 003017.SZ 的数据\n", + "成功获取 003018.SZ 的数据\n", + "成功获取 003019.SZ 的数据\n", + "成功获取 003020.SZ 的数据\n", + "成功获取 003021.SZ 的数据\n", + "成功获取 003022.SZ 的数据\n", + "成功获取 003023.SZ 的数据\n", + "成功获取 003025.SZ 的数据\n", + "成功获取 003026.SZ 的数据\n", + "成功获取 003027.SZ 的数据\n", + "成功获取 003028.SZ 的数据\n", + "成功获取 003029.SZ 的数据\n", + "成功获取 003030.SZ 的数据\n", + "成功获取 003031.SZ 的数据\n", + "成功获取 003032.SZ 的数据\n", + "成功获取 003033.SZ 的数据\n", + "成功获取 003035.SZ 的数据\n", + "成功获取 003036.SZ 的数据\n", + "成功获取 003037.SZ 的数据\n", + "成功获取 003038.SZ 的数据\n", + "成功获取 003039.SZ 的数据\n", + "成功获取 003040.SZ 的数据\n", + "成功获取 003041.SZ 的数据\n", + "成功获取 003042.SZ 的数据\n", + "成功获取 003043.SZ 的数据\n", + "成功获取 003816.SZ 的数据\n", + "成功获取 300001.SZ 的数据\n", + "成功获取 300002.SZ 的数据\n", + "成功获取 300003.SZ 的数据\n", + "成功获取 300004.SZ 的数据\n", + "成功获取 300005.SZ 的数据\n", + "成功获取 300006.SZ 的数据\n", + "成功获取 300007.SZ 的数据\n", + "成功获取 300008.SZ 的数据\n", + "成功获取 300009.SZ 的数据\n", + "成功获取 300010.SZ 的数据\n", + "成功获取 300011.SZ 的数据\n", + "成功获取 300012.SZ 的数据\n", + "成功获取 300013.SZ 的数据\n", + "成功获取 300014.SZ 的数据\n", + "成功获取 300015.SZ 的数据\n", + "成功获取 300016.SZ 的数据\n", + "已调用300次API,等待 1.88 秒以满足速率限制...\n", + "成功获取 300017.SZ 的数据\n", + "成功获取 300018.SZ 的数据\n", + "成功获取 300019.SZ 的数据\n", + "成功获取 300020.SZ 的数据\n", + "成功获取 300021.SZ 的数据\n", + "成功获取 300022.SZ 的数据\n", + "成功获取 300024.SZ 的数据\n", + "成功获取 300025.SZ 的数据\n", + "成功获取 300026.SZ 的数据\n", + "成功获取 300027.SZ 的数据\n", + "成功获取 300029.SZ 的数据\n", + "成功获取 300030.SZ 的数据\n", + "成功获取 300031.SZ 的数据\n", + "成功获取 300032.SZ 的数据\n", + "成功获取 300033.SZ 的数据\n", + "成功获取 300034.SZ 的数据\n", + "成功获取 300035.SZ 的数据\n", + "成功获取 300036.SZ 的数据\n", + "成功获取 300037.SZ 的数据\n", + "成功获取 300039.SZ 的数据\n", + "成功获取 300040.SZ 的数据\n", + "成功获取 300041.SZ 的数据\n", + "成功获取 300042.SZ 的数据\n", + "成功获取 300043.SZ 的数据\n", + "成功获取 300044.SZ 的数据\n", + "成功获取 300045.SZ 的数据\n", + "成功获取 300046.SZ 的数据\n", + "成功获取 300047.SZ 的数据\n", + "成功获取 300048.SZ 的数据\n", + "成功获取 300049.SZ 的数据\n", + "成功获取 300050.SZ 的数据\n", + "成功获取 300051.SZ 的数据\n", + "成功获取 300052.SZ 的数据\n", + "成功获取 300053.SZ 的数据\n", + "成功获取 300054.SZ 的数据\n", + "成功获取 300055.SZ 的数据\n", + "成功获取 300056.SZ 的数据\n", + "成功获取 300057.SZ 的数据\n", + "成功获取 300058.SZ 的数据\n", + "成功获取 300059.SZ 的数据\n", + "成功获取 300061.SZ 的数据\n", + "成功获取 300062.SZ 的数据\n", + "成功获取 300063.SZ 的数据\n", + "成功获取 300065.SZ 的数据\n", + "成功获取 300066.SZ 的数据\n", + "成功获取 300067.SZ 的数据\n", + "成功获取 300068.SZ 的数据\n", + "成功获取 300069.SZ 的数据\n", + "成功获取 300070.SZ 的数据\n", + "成功获取 300071.SZ 的数据\n", + "成功获取 300072.SZ 的数据\n", + "成功获取 300073.SZ 的数据\n", + "成功获取 300074.SZ 的数据\n", + "成功获取 300075.SZ 的数据\n", + "成功获取 300076.SZ 的数据\n", + "成功获取 300077.SZ 的数据\n", + "成功获取 300078.SZ 的数据\n", + "成功获取 300079.SZ 的数据\n", + "成功获取 300080.SZ 的数据\n", + "成功获取 300081.SZ 的数据\n", + "成功获取 300082.SZ 的数据\n", + "成功获取 300083.SZ 的数据\n", + "成功获取 300084.SZ 的数据\n", + "成功获取 300085.SZ 的数据\n", + "成功获取 300086.SZ 的数据\n", + "成功获取 300087.SZ 的数据\n", + "成功获取 300088.SZ 的数据\n", + "成功获取 300091.SZ 的数据\n", + "成功获取 300092.SZ 的数据\n", + "成功获取 300093.SZ 的数据\n", + "成功获取 300094.SZ 的数据\n", + "成功获取 300095.SZ 的数据\n", + "成功获取 300096.SZ 的数据\n", + "成功获取 300097.SZ 的数据\n", + "成功获取 300098.SZ 的数据\n", + "成功获取 300099.SZ 的数据\n", + "成功获取 300100.SZ 的数据\n", + "成功获取 300101.SZ 的数据\n", + "成功获取 300102.SZ 的数据\n", + "成功获取 300103.SZ 的数据\n", + "成功获取 300105.SZ 的数据\n", + "成功获取 300106.SZ 的数据\n", + "成功获取 300107.SZ 的数据\n", + "成功获取 300108.SZ 的数据\n", + "成功获取 300109.SZ 的数据\n", + "成功获取 300110.SZ 的数据\n", + "成功获取 300111.SZ 的数据\n", + "成功获取 300112.SZ 的数据\n", + "成功获取 300113.SZ 的数据\n", + "成功获取 300114.SZ 的数据\n", + "成功获取 300115.SZ 的数据\n", + "成功获取 300117.SZ 的数据\n", + "成功获取 300118.SZ 的数据\n", + "成功获取 300119.SZ 的数据\n", + "成功获取 300120.SZ 的数据\n", + "成功获取 300121.SZ 的数据\n", + "成功获取 300122.SZ 的数据\n", + "成功获取 300123.SZ 的数据\n", + "成功获取 300124.SZ 的数据\n", + "成功获取 300125.SZ 的数据\n", + "成功获取 300126.SZ 的数据\n", + "成功获取 300127.SZ 的数据\n", + "成功获取 300128.SZ 的数据\n", + "成功获取 300129.SZ 的数据\n", + "成功获取 300130.SZ 的数据\n", + "成功获取 300131.SZ 的数据\n", + "成功获取 300132.SZ 的数据\n", + "成功获取 300133.SZ 的数据\n", + "成功获取 300134.SZ 的数据\n", + "成功获取 300135.SZ 的数据\n", + "成功获取 300136.SZ 的数据\n", + "成功获取 300137.SZ 的数据\n", + "成功获取 300138.SZ 的数据\n", + "成功获取 300139.SZ 的数据\n", + "成功获取 300140.SZ 的数据\n", + "成功获取 300141.SZ 的数据\n", + "成功获取 300142.SZ 的数据\n", + "成功获取 300143.SZ 的数据\n", + "成功获取 300144.SZ 的数据\n", + "成功获取 300145.SZ 的数据\n", + "成功获取 300146.SZ 的数据\n", + "成功获取 300147.SZ 的数据\n", + "成功获取 300148.SZ 的数据\n", + "成功获取 300149.SZ 的数据\n", + "成功获取 300150.SZ 的数据\n", + "成功获取 300151.SZ 的数据\n", + "成功获取 300152.SZ 的数据\n", + "成功获取 300153.SZ 的数据\n", + "成功获取 300154.SZ 的数据\n", + "成功获取 300155.SZ 的数据\n", + "成功获取 300157.SZ 的数据\n", + "成功获取 300158.SZ 的数据\n", + "成功获取 300159.SZ 的数据\n", + "成功获取 300160.SZ 的数据\n", + "成功获取 300161.SZ 的数据\n", + "成功获取 300162.SZ 的数据\n", + "成功获取 300163.SZ 的数据\n", + "成功获取 300164.SZ 的数据\n", + "成功获取 300165.SZ 的数据\n", + "成功获取 300166.SZ 的数据\n", + "成功获取 300167.SZ 的数据\n", + "成功获取 300168.SZ 的数据\n", + "成功获取 300169.SZ 的数据\n", + "成功获取 300170.SZ 的数据\n", + "成功获取 300171.SZ 的数据\n", + "成功获取 300172.SZ 的数据\n", + "成功获取 300173.SZ 的数据\n", + "成功获取 300174.SZ 的数据\n", + "成功获取 300175.SZ 的数据\n", + "成功获取 300176.SZ 的数据\n", + "成功获取 300177.SZ 的数据\n", + "成功获取 300179.SZ 的数据\n", + "成功获取 300180.SZ 的数据\n", + "成功获取 300181.SZ 的数据\n", + "成功获取 300182.SZ 的数据\n", + "成功获取 300183.SZ 的数据\n", + "成功获取 300184.SZ 的数据\n", + "成功获取 300185.SZ 的数据\n", + "成功获取 300187.SZ 的数据\n", + "成功获取 300188.SZ 的数据\n", + "成功获取 300189.SZ 的数据\n", + "成功获取 300190.SZ 的数据\n", + "成功获取 300191.SZ 的数据\n", + "成功获取 300192.SZ 的数据\n", + "成功获取 300193.SZ 的数据\n", + "成功获取 300194.SZ 的数据\n", + "成功获取 300195.SZ 的数据\n", + "成功获取 300196.SZ 的数据\n", + "成功获取 300197.SZ 的数据\n", + "成功获取 300198.SZ 的数据\n", + "成功获取 300199.SZ 的数据\n", + "成功获取 300200.SZ 的数据\n", + "成功获取 300201.SZ 的数据\n", + "成功获取 300203.SZ 的数据\n", + "成功获取 300204.SZ 的数据\n", + "成功获取 300205.SZ 的数据\n", + "成功获取 300206.SZ 的数据\n", + "成功获取 300207.SZ 的数据\n", + "成功获取 300208.SZ 的数据\n", + "成功获取 300209.SZ 的数据\n", + "成功获取 300210.SZ 的数据\n", + "成功获取 300211.SZ 的数据\n", + "成功获取 300212.SZ 的数据\n", + "成功获取 300213.SZ 的数据\n", + "成功获取 300214.SZ 的数据\n", + "成功获取 300215.SZ 的数据\n", + "成功获取 300217.SZ 的数据\n", + "成功获取 300218.SZ 的数据\n", + "成功获取 300219.SZ 的数据\n", + "成功获取 300220.SZ 的数据\n", + "成功获取 300221.SZ 的数据\n", + "成功获取 300222.SZ 的数据\n", + "成功获取 300223.SZ 的数据\n", + "成功获取 300224.SZ 的数据\n", + "成功获取 300225.SZ 的数据\n", + "成功获取 300226.SZ 的数据\n", + "成功获取 300227.SZ 的数据\n", + "成功获取 300228.SZ 的数据\n", + "成功获取 300229.SZ 的数据\n", + "成功获取 300230.SZ 的数据\n", + "成功获取 300231.SZ 的数据\n", + "成功获取 300232.SZ 的数据\n", + "成功获取 300233.SZ 的数据\n", + "成功获取 300234.SZ 的数据\n", + "成功获取 300235.SZ 的数据\n", + "成功获取 300236.SZ 的数据\n", + "成功获取 300237.SZ 的数据\n", + "成功获取 300238.SZ 的数据\n", + "成功获取 300239.SZ 的数据\n", + "成功获取 300240.SZ 的数据\n", + "成功获取 300241.SZ 的数据\n", + "成功获取 300242.SZ 的数据\n", + "成功获取 300243.SZ 的数据\n", + "成功获取 300244.SZ 的数据\n", + "成功获取 300245.SZ 的数据\n", + "成功获取 300246.SZ 的数据\n", + "成功获取 300247.SZ 的数据\n", + "成功获取 300248.SZ 的数据\n", + "成功获取 300249.SZ 的数据\n", + "成功获取 300250.SZ 的数据\n", + "成功获取 300251.SZ 的数据\n", + "成功获取 300252.SZ 的数据\n", + "成功获取 300253.SZ 的数据\n", + "成功获取 300254.SZ 的数据\n", + "成功获取 300255.SZ 的数据\n", + "成功获取 300256.SZ 的数据\n", + "成功获取 300257.SZ 的数据\n", + "成功获取 300258.SZ 的数据\n", + "成功获取 300259.SZ 的数据\n", + "成功获取 300260.SZ 的数据\n", + "成功获取 300261.SZ 的数据\n", + "成功获取 300263.SZ 的数据\n", + "成功获取 300264.SZ 的数据\n", + "成功获取 300265.SZ 的数据\n", + "成功获取 300266.SZ 的数据\n", + "成功获取 300267.SZ 的数据\n", + "成功获取 300268.SZ 的数据\n", + "成功获取 300269.SZ 的数据\n", + "成功获取 300270.SZ 的数据\n", + "成功获取 300271.SZ 的数据\n", + "成功获取 300272.SZ 的数据\n", + "成功获取 300274.SZ 的数据\n", + "成功获取 300275.SZ 的数据\n", + "成功获取 300276.SZ 的数据\n", + "成功获取 300277.SZ 的数据\n", + "成功获取 300278.SZ 的数据\n", + "成功获取 300279.SZ 的数据\n", + "成功获取 300280.SZ 的数据\n", + "成功获取 300281.SZ 的数据\n", + "成功获取 300283.SZ 的数据\n", + "成功获取 300284.SZ 的数据\n", + "成功获取 300285.SZ 的数据\n", + "成功获取 300286.SZ 的数据\n", + "成功获取 300287.SZ 的数据\n", + "成功获取 300288.SZ 的数据\n", + "成功获取 300289.SZ 的数据\n", + "成功获取 300290.SZ 的数据\n", + "成功获取 300291.SZ 的数据\n", + "成功获取 300292.SZ 的数据\n", + "成功获取 300293.SZ 的数据\n", + "成功获取 300294.SZ 的数据\n", + "成功获取 300295.SZ 的数据\n", + "成功获取 300296.SZ 的数据\n", + "成功获取 300298.SZ 的数据\n", + "成功获取 300299.SZ 的数据\n", + "成功获取 300300.SZ 的数据\n", + "成功获取 300301.SZ 的数据\n", + "成功获取 300302.SZ 的数据\n", + "成功获取 300303.SZ 的数据\n", + "成功获取 300304.SZ 的数据\n", + "成功获取 300305.SZ 的数据\n", + "成功获取 300306.SZ 的数据\n", + "成功获取 300307.SZ 的数据\n", + "成功获取 300308.SZ 的数据\n", + "成功获取 300310.SZ 的数据\n", + "成功获取 300311.SZ 的数据\n", + "成功获取 300313.SZ 的数据\n", + "成功获取 300314.SZ 的数据\n", + "成功获取 300315.SZ 的数据\n", + "成功获取 300316.SZ 的数据\n", + "成功获取 300317.SZ 的数据\n", + "成功获取 300318.SZ 的数据\n", + "成功获取 300319.SZ 的数据\n", + "成功获取 300320.SZ 的数据\n", + "成功获取 300321.SZ 的数据\n", + "成功获取 300322.SZ 的数据\n", + "成功获取 300323.SZ 的数据\n", + "成功获取 300324.SZ 的数据\n", + "成功获取 300326.SZ 的数据\n", + "成功获取 300327.SZ 的数据\n", + "成功获取 300328.SZ 的数据\n", + "成功获取 300329.SZ 的数据\n", + "成功获取 300331.SZ 的数据\n", + "成功获取 300332.SZ 的数据\n", + "成功获取 300333.SZ 的数据\n", + "成功获取 300334.SZ 的数据\n", + "成功获取 300335.SZ 的数据\n", + "成功获取 300337.SZ 的数据\n", + "成功获取 300338.SZ 的数据\n", + "成功获取 300339.SZ 的数据\n", + "成功获取 300340.SZ 的数据\n", + "成功获取 300341.SZ 的数据\n", + "成功获取 300342.SZ 的数据\n", + "成功获取 300343.SZ 的数据\n", + "成功获取 300344.SZ 的数据\n", + "成功获取 300345.SZ 的数据\n", + "成功获取 300346.SZ 的数据\n", + "成功获取 300347.SZ 的数据\n", + "成功获取 300348.SZ 的数据\n", + "成功获取 300349.SZ 的数据\n", + "成功获取 300350.SZ 的数据\n", + "成功获取 300351.SZ 的数据\n", + "成功获取 300352.SZ 的数据\n", + "成功获取 300353.SZ 的数据\n", + "成功获取 300354.SZ 的数据\n", + "成功获取 300355.SZ 的数据\n", + "成功获取 300357.SZ 的数据\n", + "成功获取 300358.SZ 的数据\n", + "成功获取 300359.SZ 的数据\n", + "成功获取 300360.SZ 的数据\n", + "成功获取 300363.SZ 的数据\n", + "成功获取 300364.SZ 的数据\n", + "成功获取 300365.SZ 的数据\n", + "成功获取 300366.SZ 的数据\n", + "成功获取 300368.SZ 的数据\n", + "成功获取 300369.SZ 的数据\n", + "成功获取 300370.SZ 的数据\n", + "成功获取 300371.SZ 的数据\n", + "成功获取 300373.SZ 的数据\n", + "成功获取 300374.SZ 的数据\n", + "成功获取 300375.SZ 的数据\n", + "成功获取 300376.SZ 的数据\n", + "成功获取 300377.SZ 的数据\n", + "成功获取 300378.SZ 的数据\n", + "成功获取 300379.SZ 的数据\n", + "成功获取 300380.SZ 的数据\n", + "成功获取 300381.SZ 的数据\n", + "成功获取 300382.SZ 的数据\n", + "成功获取 300383.SZ 的数据\n", + "成功获取 300384.SZ 的数据\n", + "成功获取 300385.SZ 的数据\n", + "成功获取 300386.SZ 的数据\n", + "成功获取 300387.SZ 的数据\n", + "成功获取 300388.SZ 的数据\n", + "成功获取 300389.SZ 的数据\n", + "成功获取 300390.SZ 的数据\n", + "成功获取 300391.SZ 的数据\n", + "成功获取 300393.SZ 的数据\n", + "成功获取 300394.SZ 的数据\n", + "成功获取 300395.SZ 的数据\n", + "成功获取 300396.SZ 的数据\n", + "成功获取 300397.SZ 的数据\n", + "成功获取 300398.SZ 的数据\n", + "成功获取 300399.SZ 的数据\n", + "成功获取 300400.SZ 的数据\n", + "成功获取 300401.SZ 的数据\n", + "成功获取 300402.SZ 的数据\n", + "成功获取 300403.SZ 的数据\n", + "成功获取 300404.SZ 的数据\n", + "成功获取 300405.SZ 的数据\n", + "成功获取 300406.SZ 的数据\n", + "成功获取 300407.SZ 的数据\n", + "成功获取 300408.SZ 的数据\n", + "成功获取 300409.SZ 的数据\n", + "成功获取 300410.SZ 的数据\n", + "成功获取 300411.SZ 的数据\n", + "成功获取 300412.SZ 的数据\n", + "成功获取 300413.SZ 的数据\n", + "成功获取 300414.SZ 的数据\n", + "成功获取 300415.SZ 的数据\n", + "成功获取 300416.SZ 的数据\n", + "成功获取 300417.SZ 的数据\n", + "成功获取 300418.SZ 的数据\n", + "成功获取 300419.SZ 的数据\n", + "成功获取 300420.SZ 的数据\n", + "成功获取 300421.SZ 的数据\n", + "成功获取 300422.SZ 的数据\n", + "成功获取 300423.SZ 的数据\n", + "成功获取 300424.SZ 的数据\n", + "成功获取 300425.SZ 的数据\n", + "成功获取 300426.SZ 的数据\n", + "成功获取 300427.SZ 的数据\n", + "成功获取 300428.SZ 的数据\n", + "成功获取 300429.SZ 的数据\n", + "成功获取 300430.SZ 的数据\n", + "成功获取 300432.SZ 的数据\n", + "成功获取 300433.SZ 的数据\n", + "成功获取 300434.SZ 的数据\n", + "成功获取 300435.SZ 的数据\n", + "成功获取 300436.SZ 的数据\n", + "成功获取 300437.SZ 的数据\n", + "成功获取 300438.SZ 的数据\n", + "成功获取 300439.SZ 的数据\n", + "成功获取 300440.SZ 的数据\n", + "成功获取 300441.SZ 的数据\n", + "成功获取 300442.SZ 的数据\n", + "成功获取 300443.SZ 的数据\n", + "成功获取 300444.SZ 的数据\n", + "成功获取 300445.SZ 的数据\n", + "成功获取 300446.SZ 的数据\n", + "成功获取 300447.SZ 的数据\n", + "成功获取 300448.SZ 的数据\n", + "成功获取 300449.SZ 的数据\n", + "成功获取 300450.SZ 的数据\n", + "成功获取 300451.SZ 的数据\n", + "成功获取 300452.SZ 的数据\n", + "成功获取 300453.SZ 的数据\n", + "成功获取 300454.SZ 的数据\n", + "成功获取 300455.SZ 的数据\n", + "成功获取 300456.SZ 的数据\n", + "成功获取 300457.SZ 的数据\n", + "成功获取 300458.SZ 的数据\n", + "成功获取 300459.SZ 的数据\n", + "成功获取 300460.SZ 的数据\n", + "成功获取 300461.SZ 的数据\n", + "成功获取 300462.SZ 的数据\n", + "成功获取 300463.SZ 的数据\n", + "成功获取 300464.SZ 的数据\n", + "成功获取 300465.SZ 的数据\n", + "成功获取 300466.SZ 的数据\n", + "成功获取 300467.SZ 的数据\n", + "成功获取 300468.SZ 的数据\n", + "成功获取 300469.SZ 的数据\n", + "成功获取 300470.SZ 的数据\n", + "成功获取 300471.SZ 的数据\n", + "成功获取 300472.SZ 的数据\n", + "成功获取 300473.SZ 的数据\n", + "成功获取 300474.SZ 的数据\n", + "成功获取 300475.SZ 的数据\n", + "成功获取 300476.SZ 的数据\n", + "成功获取 300477.SZ 的数据\n", + "成功获取 300478.SZ 的数据\n", + "成功获取 300479.SZ 的数据\n", + "成功获取 300480.SZ 的数据\n", + "成功获取 300481.SZ 的数据\n", + "成功获取 300482.SZ 的数据\n", + "成功获取 300483.SZ 的数据\n", + "成功获取 300484.SZ 的数据\n", + "成功获取 300485.SZ 的数据\n", + "成功获取 300486.SZ 的数据\n", + "成功获取 300487.SZ 的数据\n", + "成功获取 300488.SZ 的数据\n", + "成功获取 300489.SZ 的数据\n", + "成功获取 300490.SZ 的数据\n", + "成功获取 300491.SZ 的数据\n", + "成功获取 300492.SZ 的数据\n", + "成功获取 300493.SZ 的数据\n", + "成功获取 300494.SZ 的数据\n", + "成功获取 300496.SZ 的数据\n", + "成功获取 300497.SZ 的数据\n", + "成功获取 300498.SZ 的数据\n", + "成功获取 300499.SZ 的数据\n", + "成功获取 300500.SZ 的数据\n", + "成功获取 300501.SZ 的数据\n", + "成功获取 300502.SZ 的数据\n", + "成功获取 300503.SZ 的数据\n", + "成功获取 300504.SZ 的数据\n", + "成功获取 300505.SZ 的数据\n", + "成功获取 300506.SZ 的数据\n", + "成功获取 300507.SZ 的数据\n", + "成功获取 300508.SZ 的数据\n", + "成功获取 300509.SZ 的数据\n", + "成功获取 300510.SZ 的数据\n", + "成功获取 300511.SZ 的数据\n", + "成功获取 300512.SZ 的数据\n", + "成功获取 300513.SZ 的数据\n", + "成功获取 300514.SZ 的数据\n", + "成功获取 300515.SZ 的数据\n", + "成功获取 300516.SZ 的数据\n", + "成功获取 300517.SZ 的数据\n", + "成功获取 300518.SZ 的数据\n", + "成功获取 300519.SZ 的数据\n", + "成功获取 300520.SZ 的数据\n", + "成功获取 300521.SZ 的数据\n", + "成功获取 300522.SZ 的数据\n", + "成功获取 300523.SZ 的数据\n", + "成功获取 300525.SZ 的数据\n", + "成功获取 300527.SZ 的数据\n", + "成功获取 300528.SZ 的数据\n", + "成功获取 300529.SZ 的数据\n", + "成功获取 300530.SZ 的数据\n", + "成功获取 300531.SZ 的数据\n", + "成功获取 300532.SZ 的数据\n", + "成功获取 300533.SZ 的数据\n", + "成功获取 300534.SZ 的数据\n", + "成功获取 300535.SZ 的数据\n", + "成功获取 300536.SZ 的数据\n", + "成功获取 300537.SZ 的数据\n", + "成功获取 300538.SZ 的数据\n", + "成功获取 300539.SZ 的数据\n", + "成功获取 300540.SZ 的数据\n", + "成功获取 300541.SZ 的数据\n", + "成功获取 300542.SZ 的数据\n", + "成功获取 300543.SZ 的数据\n", + "成功获取 300545.SZ 的数据\n", + "成功获取 300546.SZ 的数据\n", + "成功获取 300547.SZ 的数据\n", + "成功获取 300548.SZ 的数据\n", + "成功获取 300549.SZ 的数据\n", + "成功获取 300550.SZ 的数据\n", + "成功获取 300551.SZ 的数据\n", + "成功获取 300552.SZ 的数据\n", + "成功获取 300553.SZ 的数据\n", + "成功获取 300554.SZ 的数据\n", + "成功获取 300555.SZ 的数据\n", + "成功获取 300556.SZ 的数据\n", + "成功获取 300557.SZ 的数据\n", + "成功获取 300558.SZ 的数据\n", + "成功获取 300559.SZ 的数据\n", + "成功获取 300560.SZ 的数据\n", + "成功获取 300561.SZ 的数据\n", + "成功获取 300562.SZ 的数据\n", + "成功获取 300563.SZ 的数据\n", + "成功获取 300564.SZ 的数据\n", + "成功获取 300565.SZ 的数据\n", + "成功获取 300566.SZ 的数据\n", + "成功获取 300567.SZ 的数据\n", + "成功获取 300568.SZ 的数据\n", + "成功获取 300569.SZ 的数据\n", + "成功获取 300570.SZ 的数据\n", + "成功获取 300571.SZ 的数据\n", + "成功获取 300572.SZ 的数据\n", + "成功获取 300573.SZ 的数据\n", + "成功获取 300575.SZ 的数据\n", + "成功获取 300576.SZ 的数据\n", + "成功获取 300577.SZ 的数据\n", + "成功获取 300578.SZ 的数据\n", + "成功获取 300579.SZ 的数据\n", + "成功获取 300580.SZ 的数据\n", + "成功获取 300581.SZ 的数据\n", + "成功获取 300582.SZ 的数据\n", + "成功获取 300583.SZ 的数据\n", + "成功获取 300584.SZ 的数据\n", + "成功获取 300585.SZ 的数据\n", + "成功获取 300586.SZ 的数据\n", + "成功获取 300587.SZ 的数据\n", + "成功获取 300588.SZ 的数据\n", + "成功获取 300589.SZ 的数据\n", + "成功获取 300590.SZ 的数据\n", + "成功获取 300591.SZ 的数据\n", + "成功获取 300592.SZ 的数据\n", + "成功获取 300593.SZ 的数据\n", + "成功获取 300594.SZ 的数据\n", + "成功获取 300595.SZ 的数据\n", + "成功获取 300596.SZ 的数据\n", + "成功获取 300597.SZ 的数据\n", + "成功获取 300598.SZ 的数据\n", + "成功获取 300599.SZ 的数据\n", + "成功获取 300600.SZ 的数据\n", + "成功获取 300601.SZ 的数据\n", + "成功获取 300602.SZ 的数据\n", + "成功获取 300603.SZ 的数据\n", + "成功获取 300604.SZ 的数据\n", + "成功获取 300605.SZ 的数据\n", + "成功获取 300606.SZ 的数据\n", + "成功获取 300607.SZ 的数据\n", + "成功获取 300608.SZ 的数据\n", + "成功获取 300609.SZ 的数据\n", + "成功获取 300610.SZ 的数据\n", + "成功获取 300611.SZ 的数据\n", + "成功获取 300612.SZ 的数据\n", + "成功获取 300613.SZ 的数据\n", + "成功获取 300614.SZ 的数据\n", + "成功获取 300615.SZ 的数据\n", + "成功获取 300616.SZ 的数据\n", + "成功获取 300617.SZ 的数据\n", + "成功获取 300618.SZ 的数据\n", + "成功获取 300619.SZ 的数据\n", + "成功获取 300620.SZ 的数据\n", + "成功获取 300621.SZ 的数据\n", + "成功获取 300622.SZ 的数据\n", + "成功获取 300623.SZ 的数据\n", + "成功获取 300624.SZ 的数据\n", + "成功获取 300625.SZ 的数据\n", + "成功获取 300626.SZ 的数据\n", + "成功获取 300627.SZ 的数据\n", + "成功获取 300628.SZ 的数据\n", + "成功获取 300629.SZ 的数据\n", + "成功获取 300630.SZ 的数据\n", + "成功获取 300631.SZ 的数据\n", + "成功获取 300632.SZ 的数据\n", + "成功获取 300633.SZ 的数据\n", + "成功获取 300634.SZ 的数据\n", + "成功获取 300635.SZ 的数据\n", + "成功获取 300636.SZ 的数据\n", + "成功获取 300637.SZ 的数据\n", + "成功获取 300638.SZ 的数据\n", + "成功获取 300639.SZ 的数据\n", + "成功获取 300640.SZ 的数据\n", + "成功获取 300641.SZ 的数据\n", + "成功获取 300642.SZ 的数据\n", + "成功获取 300643.SZ 的数据\n", + "成功获取 300644.SZ 的数据\n", + "成功获取 300645.SZ 的数据\n", + "成功获取 300647.SZ 的数据\n", + "成功获取 300648.SZ 的数据\n", + "成功获取 300649.SZ 的数据\n", + "成功获取 300650.SZ 的数据\n", + "成功获取 300651.SZ 的数据\n", + "成功获取 300652.SZ 的数据\n", + "已调用300次API,等待 0.89 秒以满足速率限制...\n", + "成功获取 300653.SZ 的数据\n", + "成功获取 300654.SZ 的数据\n", + "成功获取 300655.SZ 的数据\n", + "成功获取 300656.SZ 的数据\n", + "成功获取 300657.SZ 的数据\n", + "成功获取 300658.SZ 的数据\n", + "成功获取 300659.SZ 的数据\n", + "成功获取 300660.SZ 的数据\n", + "成功获取 300661.SZ 的数据\n", + "成功获取 300662.SZ 的数据\n", + "成功获取 300663.SZ 的数据\n", + "成功获取 300664.SZ 的数据\n", + "成功获取 300665.SZ 的数据\n", + "成功获取 300666.SZ 的数据\n", + "成功获取 300667.SZ 的数据\n", + "成功获取 300668.SZ 的数据\n", + "成功获取 300669.SZ 的数据\n", + "成功获取 300670.SZ 的数据\n", + "成功获取 300671.SZ 的数据\n", + "成功获取 300672.SZ 的数据\n", + "成功获取 300673.SZ 的数据\n", + "成功获取 300674.SZ 的数据\n", + "成功获取 300675.SZ 的数据\n", + "成功获取 300676.SZ 的数据\n", + "成功获取 300677.SZ 的数据\n", + "成功获取 300678.SZ 的数据\n", + "成功获取 300679.SZ 的数据\n", + "成功获取 300680.SZ 的数据\n", + "成功获取 300681.SZ 的数据\n", + "成功获取 300682.SZ 的数据\n", + "成功获取 300683.SZ 的数据\n", + "成功获取 300684.SZ 的数据\n", + "成功获取 300685.SZ 的数据\n", + "成功获取 300686.SZ 的数据\n", + "成功获取 300687.SZ 的数据\n", + "成功获取 300688.SZ 的数据\n", + "成功获取 300689.SZ 的数据\n", + "成功获取 300690.SZ 的数据\n", + "成功获取 300691.SZ 的数据\n", + "成功获取 300692.SZ 的数据\n", + "成功获取 300693.SZ 的数据\n", + "成功获取 300694.SZ 的数据\n", + "成功获取 300695.SZ 的数据\n", + "成功获取 300696.SZ 的数据\n", + "成功获取 300697.SZ 的数据\n", + "成功获取 300698.SZ 的数据\n", + "成功获取 300699.SZ 的数据\n", + "成功获取 300700.SZ 的数据\n", + "成功获取 300701.SZ 的数据\n", + "成功获取 300702.SZ 的数据\n", + "成功获取 300703.SZ 的数据\n", + "成功获取 300705.SZ 的数据\n", + "成功获取 300706.SZ 的数据\n", + "成功获取 300707.SZ 的数据\n", + "成功获取 300708.SZ 的数据\n", + "成功获取 300709.SZ 的数据\n", + "成功获取 300710.SZ 的数据\n", + "成功获取 300711.SZ 的数据\n", + "成功获取 300712.SZ 的数据\n", + "成功获取 300713.SZ 的数据\n", + "成功获取 300715.SZ 的数据\n", + "成功获取 300716.SZ 的数据\n", + "成功获取 300717.SZ 的数据\n", + "成功获取 300718.SZ 的数据\n", + "成功获取 300719.SZ 的数据\n", + "成功获取 300720.SZ 的数据\n", + "成功获取 300721.SZ 的数据\n", + "成功获取 300722.SZ 的数据\n", + "成功获取 300723.SZ 的数据\n", + "成功获取 300724.SZ 的数据\n", + "成功获取 300725.SZ 的数据\n", + "成功获取 300726.SZ 的数据\n", + "成功获取 300727.SZ 的数据\n", + "成功获取 300729.SZ 的数据\n", + "成功获取 300730.SZ 的数据\n", + "成功获取 300731.SZ 的数据\n", + "成功获取 300732.SZ 的数据\n", + "成功获取 300733.SZ 的数据\n", + "成功获取 300735.SZ 的数据\n", + "成功获取 300736.SZ 的数据\n", + "成功获取 300737.SZ 的数据\n", + "成功获取 300738.SZ 的数据\n", + "成功获取 300739.SZ 的数据\n", + "成功获取 300740.SZ 的数据\n", + "成功获取 300741.SZ 的数据\n", + "成功获取 300743.SZ 的数据\n", + "成功获取 300745.SZ 的数据\n", + "成功获取 300746.SZ 的数据\n", + "成功获取 300747.SZ 的数据\n", + "成功获取 300748.SZ 的数据\n", + "成功获取 300749.SZ 的数据\n", + "成功获取 300750.SZ 的数据\n", + "成功获取 300751.SZ 的数据\n", + "成功获取 300752.SZ 的数据\n", + "成功获取 300753.SZ 的数据\n", + "成功获取 300755.SZ 的数据\n", + "成功获取 300756.SZ 的数据\n", + "成功获取 300757.SZ 的数据\n", + "成功获取 300758.SZ 的数据\n", + "成功获取 300759.SZ 的数据\n", + "成功获取 300760.SZ 的数据\n", + "成功获取 300761.SZ 的数据\n", + "成功获取 300762.SZ 的数据\n", + "成功获取 300763.SZ 的数据\n", + "成功获取 300765.SZ 的数据\n", + "成功获取 300766.SZ 的数据\n", + "成功获取 300767.SZ 的数据\n", + "成功获取 300768.SZ 的数据\n", + "成功获取 300769.SZ 的数据\n", + "成功获取 300770.SZ 的数据\n", + "成功获取 300771.SZ 的数据\n", + "成功获取 300772.SZ 的数据\n", + "成功获取 300773.SZ 的数据\n", + "成功获取 300774.SZ 的数据\n", + "成功获取 300775.SZ 的数据\n", + "成功获取 300776.SZ 的数据\n", + "成功获取 300777.SZ 的数据\n", + "成功获取 300778.SZ 的数据\n", + "成功获取 300779.SZ 的数据\n", + "成功获取 300780.SZ 的数据\n", + "成功获取 300781.SZ 的数据\n", + "成功获取 300782.SZ 的数据\n", + "成功获取 300783.SZ 的数据\n", + "成功获取 300784.SZ 的数据\n", + "成功获取 300785.SZ 的数据\n", + "成功获取 300786.SZ 的数据\n", + "成功获取 300787.SZ 的数据\n", + "成功获取 300788.SZ 的数据\n", + "成功获取 300789.SZ 的数据\n", + "成功获取 300790.SZ 的数据\n", + "成功获取 300791.SZ 的数据\n", + "成功获取 300792.SZ 的数据\n", + "成功获取 300793.SZ 的数据\n", + "成功获取 300795.SZ 的数据\n", + "成功获取 300796.SZ 的数据\n", + "成功获取 300797.SZ 的数据\n", + "成功获取 300798.SZ 的数据\n", + "成功获取 300800.SZ 的数据\n", + "成功获取 300801.SZ 的数据\n", + "成功获取 300802.SZ 的数据\n", + "成功获取 300803.SZ 的数据\n", + "成功获取 300804.SZ 的数据\n", + "成功获取 300805.SZ 的数据\n", + "成功获取 300806.SZ 的数据\n", + "成功获取 300807.SZ 的数据\n", + "成功获取 300808.SZ 的数据\n", + "成功获取 300809.SZ 的数据\n", + "成功获取 300810.SZ 的数据\n", + "成功获取 300811.SZ 的数据\n", + "成功获取 300812.SZ 的数据\n", + "成功获取 300813.SZ 的数据\n", + "成功获取 300814.SZ 的数据\n", + "成功获取 300815.SZ 的数据\n", + "成功获取 300816.SZ 的数据\n", + "成功获取 300817.SZ 的数据\n", + "成功获取 300818.SZ 的数据\n", + "成功获取 300819.SZ 的数据\n", + "成功获取 300820.SZ 的数据\n", + "成功获取 300821.SZ 的数据\n", + "成功获取 300822.SZ 的数据\n", + "成功获取 300823.SZ 的数据\n", + "成功获取 300824.SZ 的数据\n", + "成功获取 300825.SZ 的数据\n", + "成功获取 300826.SZ 的数据\n", + "成功获取 300827.SZ 的数据\n", + "成功获取 300828.SZ 的数据\n", + "成功获取 300829.SZ 的数据\n", + "成功获取 300830.SZ 的数据\n", + "成功获取 300831.SZ 的数据\n", + "成功获取 300832.SZ 的数据\n", + "成功获取 300833.SZ 的数据\n", + "成功获取 300834.SZ 的数据\n", + "成功获取 300835.SZ 的数据\n", + "成功获取 300836.SZ 的数据\n", + "成功获取 300837.SZ 的数据\n", + "成功获取 300838.SZ 的数据\n", + "成功获取 300839.SZ 的数据\n", + "成功获取 300840.SZ 的数据\n", + "成功获取 300841.SZ 的数据\n", + "成功获取 300842.SZ 的数据\n", + "成功获取 300843.SZ 的数据\n", + "成功获取 300844.SZ 的数据\n", + "成功获取 300845.SZ 的数据\n", + "成功获取 300846.SZ 的数据\n", + "成功获取 300847.SZ 的数据\n", + "成功获取 300848.SZ 的数据\n", + "成功获取 300849.SZ 的数据\n", + "成功获取 300850.SZ 的数据\n", + "成功获取 300851.SZ 的数据\n", + "成功获取 300852.SZ 的数据\n", + "成功获取 300853.SZ 的数据\n", + "成功获取 300854.SZ 的数据\n", + "成功获取 300855.SZ 的数据\n", + "成功获取 300856.SZ 的数据\n", + "成功获取 300857.SZ 的数据\n", + "成功获取 300858.SZ 的数据\n", + "成功获取 300859.SZ 的数据\n", + "成功获取 300860.SZ 的数据\n", + "成功获取 300861.SZ 的数据\n", + "成功获取 300862.SZ 的数据\n", + "成功获取 300863.SZ 的数据\n", + "成功获取 300864.SZ 的数据\n", + "成功获取 300865.SZ 的数据\n", + "成功获取 300866.SZ 的数据\n", + "成功获取 300867.SZ 的数据\n", + "成功获取 300868.SZ 的数据\n", + "成功获取 300869.SZ 的数据\n", + "成功获取 300870.SZ 的数据\n", + "成功获取 300871.SZ 的数据\n", + "成功获取 300872.SZ 的数据\n", + "成功获取 300873.SZ 的数据\n", + "成功获取 300875.SZ 的数据\n", + "成功获取 300876.SZ 的数据\n", + "成功获取 300877.SZ 的数据\n", + "成功获取 300878.SZ 的数据\n", + "成功获取 300879.SZ 的数据\n", + "成功获取 300880.SZ 的数据\n", + "成功获取 300881.SZ 的数据\n", + "成功获取 300882.SZ 的数据\n", + "成功获取 300883.SZ 的数据\n", + "成功获取 300884.SZ 的数据\n", + "成功获取 300885.SZ 的数据\n", + "成功获取 300886.SZ 的数据\n", + "成功获取 300887.SZ 的数据\n", + "成功获取 300888.SZ 的数据\n", + "成功获取 300889.SZ 的数据\n", + "成功获取 300890.SZ 的数据\n", + "成功获取 300891.SZ 的数据\n", + "成功获取 300892.SZ 的数据\n", + "成功获取 300893.SZ 的数据\n", + "成功获取 300894.SZ 的数据\n", + "成功获取 300895.SZ 的数据\n", + "成功获取 300896.SZ 的数据\n", + "成功获取 300897.SZ 的数据\n", + "成功获取 300898.SZ 的数据\n", + "成功获取 300899.SZ 的数据\n", + "成功获取 300900.SZ 的数据\n", + "成功获取 300901.SZ 的数据\n", + "成功获取 300902.SZ 的数据\n", + "成功获取 300903.SZ 的数据\n", + "成功获取 300904.SZ 的数据\n", + "成功获取 300905.SZ 的数据\n", + "成功获取 300906.SZ 的数据\n", + "成功获取 300907.SZ 的数据\n", + "成功获取 300908.SZ 的数据\n", + "成功获取 300909.SZ 的数据\n", + "成功获取 300910.SZ 的数据\n", + "成功获取 300911.SZ 的数据\n", + "成功获取 300912.SZ 的数据\n", + "成功获取 300913.SZ 的数据\n", + "成功获取 300915.SZ 的数据\n", + "成功获取 300916.SZ 的数据\n", + "成功获取 300917.SZ 的数据\n", + "成功获取 300918.SZ 的数据\n", + "成功获取 300919.SZ 的数据\n", + "成功获取 300920.SZ 的数据\n", + "成功获取 300921.SZ 的数据\n", + "成功获取 300922.SZ 的数据\n", + "成功获取 300923.SZ 的数据\n", + "成功获取 300925.SZ 的数据\n", + "成功获取 300926.SZ 的数据\n", + "成功获取 300927.SZ 的数据\n", + "成功获取 300928.SZ 的数据\n", + "成功获取 300929.SZ 的数据\n", + "成功获取 300930.SZ 的数据\n", + "成功获取 300931.SZ 的数据\n", + "成功获取 300932.SZ 的数据\n", + "成功获取 300933.SZ 的数据\n", + "成功获取 300935.SZ 的数据\n", + "成功获取 300936.SZ 的数据\n", + "成功获取 300937.SZ 的数据\n", + "成功获取 300938.SZ 的数据\n", + "成功获取 300939.SZ 的数据\n", + "成功获取 300940.SZ 的数据\n", + "成功获取 300941.SZ 的数据\n", + "成功获取 300942.SZ 的数据\n", + "成功获取 300943.SZ 的数据\n", + "成功获取 300945.SZ 的数据\n", + "成功获取 300946.SZ 的数据\n", + "成功获取 300947.SZ 的数据\n", + "成功获取 300948.SZ 的数据\n", + "成功获取 300949.SZ 的数据\n", + "成功获取 300950.SZ 的数据\n", + "成功获取 300951.SZ 的数据\n", + "成功获取 300952.SZ 的数据\n", + "成功获取 300953.SZ 的数据\n", + "成功获取 300955.SZ 的数据\n", + "成功获取 300956.SZ 的数据\n", + "成功获取 300957.SZ 的数据\n", + "成功获取 300958.SZ 的数据\n", + "成功获取 300959.SZ 的数据\n", + "成功获取 300960.SZ 的数据\n", + "成功获取 300961.SZ 的数据\n", + "成功获取 300962.SZ 的数据\n", + "成功获取 300963.SZ 的数据\n", + "成功获取 300964.SZ 的数据\n", + "成功获取 300965.SZ 的数据\n", + "成功获取 300966.SZ 的数据\n", + "成功获取 300967.SZ 的数据\n", + "成功获取 300968.SZ 的数据\n", + "已调用300次API,等待 2.56 秒以满足速率限制...\n", + "成功获取 300969.SZ 的数据\n", + "成功获取 300970.SZ 的数据\n", + "成功获取 300971.SZ 的数据\n", + "成功获取 300972.SZ 的数据\n", + "成功获取 300973.SZ 的数据\n", + "成功获取 300975.SZ 的数据\n", + "成功获取 300976.SZ 的数据\n", + "成功获取 300977.SZ 的数据\n", + "成功获取 300978.SZ 的数据\n", + "成功获取 300979.SZ 的数据\n", + "成功获取 300980.SZ 的数据\n", + "成功获取 300981.SZ 的数据\n", + "成功获取 300982.SZ 的数据\n", + "成功获取 300983.SZ 的数据\n", + "成功获取 300984.SZ 的数据\n", + "成功获取 300985.SZ 的数据\n", + "成功获取 300986.SZ 的数据\n", + "成功获取 300987.SZ 的数据\n", + "成功获取 300988.SZ 的数据\n", + "成功获取 300989.SZ 的数据\n", + "成功获取 300990.SZ 的数据\n", + "成功获取 300991.SZ 的数据\n", + "成功获取 300992.SZ 的数据\n", + "成功获取 300993.SZ 的数据\n", + "成功获取 300994.SZ 的数据\n", + "成功获取 300995.SZ 的数据\n", + "成功获取 300996.SZ 的数据\n", + "成功获取 300997.SZ 的数据\n", + "成功获取 300998.SZ 的数据\n", + "成功获取 300999.SZ 的数据\n", + "成功获取 301000.SZ 的数据\n", + "成功获取 301001.SZ 的数据\n", + "成功获取 301002.SZ 的数据\n", + "成功获取 301003.SZ 的数据\n", + "成功获取 301004.SZ 的数据\n", + "成功获取 301005.SZ 的数据\n", + "成功获取 301006.SZ 的数据\n", + "成功获取 301007.SZ 的数据\n", + "成功获取 301008.SZ 的数据\n", + "成功获取 301009.SZ 的数据\n", + "成功获取 301010.SZ 的数据\n", + "成功获取 301011.SZ 的数据\n", + "成功获取 301012.SZ 的数据\n", + "成功获取 301013.SZ 的数据\n", + "成功获取 301015.SZ 的数据\n", + "成功获取 301016.SZ 的数据\n", + "成功获取 301017.SZ 的数据\n", + "成功获取 301018.SZ 的数据\n", + "成功获取 301019.SZ 的数据\n", + "成功获取 301020.SZ 的数据\n", + "成功获取 301021.SZ 的数据\n", + "成功获取 301022.SZ 的数据\n", + "成功获取 301023.SZ 的数据\n", + "成功获取 301024.SZ 的数据\n", + "成功获取 301025.SZ 的数据\n", + "成功获取 301026.SZ 的数据\n", + "成功获取 301027.SZ 的数据\n", + "成功获取 301028.SZ 的数据\n", + "成功获取 301029.SZ 的数据\n", + "成功获取 301030.SZ 的数据\n", + "成功获取 301031.SZ 的数据\n", + "成功获取 301032.SZ 的数据\n", + "成功获取 301033.SZ 的数据\n", + "成功获取 301035.SZ 的数据\n", + "成功获取 301036.SZ 的数据\n", + "成功获取 301037.SZ 的数据\n", + "成功获取 301038.SZ 的数据\n", + "成功获取 301039.SZ 的数据\n", + "成功获取 301040.SZ 的数据\n", + "成功获取 301041.SZ 的数据\n", + "成功获取 301042.SZ 的数据\n", + "成功获取 301043.SZ 的数据\n", + "成功获取 301045.SZ 的数据\n", + "成功获取 301046.SZ 的数据\n", + "成功获取 301047.SZ 的数据\n", + "成功获取 301048.SZ 的数据\n", + "成功获取 301049.SZ 的数据\n", + "成功获取 301050.SZ 的数据\n", + "成功获取 301051.SZ 的数据\n", + "成功获取 301052.SZ 的数据\n", + "成功获取 301053.SZ 的数据\n", + "成功获取 301055.SZ 的数据\n", + "成功获取 301056.SZ 的数据\n", + "成功获取 301057.SZ 的数据\n", + "成功获取 301058.SZ 的数据\n", + "成功获取 301059.SZ 的数据\n", + "成功获取 301060.SZ 的数据\n", + "成功获取 301061.SZ 的数据\n", + "成功获取 301062.SZ 的数据\n", + "成功获取 301063.SZ 的数据\n", + "成功获取 301065.SZ 的数据\n", + "成功获取 301066.SZ 的数据\n", + "成功获取 301067.SZ 的数据\n", + "成功获取 301068.SZ 的数据\n", + "成功获取 301069.SZ 的数据\n", + "成功获取 301070.SZ 的数据\n", + "成功获取 301071.SZ 的数据\n", + "成功获取 301072.SZ 的数据\n", + "成功获取 301073.SZ 的数据\n", + "成功获取 301075.SZ 的数据\n", + "成功获取 301076.SZ 的数据\n", + "成功获取 301077.SZ 的数据\n", + "成功获取 301078.SZ 的数据\n", + "成功获取 301079.SZ 的数据\n", + "成功获取 301080.SZ 的数据\n", + "成功获取 301081.SZ 的数据\n", + "成功获取 301082.SZ 的数据\n", + "成功获取 301083.SZ 的数据\n", + "成功获取 301085.SZ 的数据\n", + "成功获取 301086.SZ 的数据\n", + "成功获取 301087.SZ 的数据\n", + "成功获取 301088.SZ 的数据\n", + "成功获取 301089.SZ 的数据\n", + "成功获取 301090.SZ 的数据\n", + "成功获取 301091.SZ 的数据\n", + "成功获取 301092.SZ 的数据\n", + "成功获取 301093.SZ 的数据\n", + "成功获取 301095.SZ 的数据\n", + "成功获取 301096.SZ 的数据\n", + "成功获取 301097.SZ 的数据\n", + "成功获取 301098.SZ 的数据\n", + "成功获取 301099.SZ 的数据\n", + "成功获取 301100.SZ 的数据\n", + "成功获取 301101.SZ 的数据\n", + "成功获取 301102.SZ 的数据\n", + "成功获取 301103.SZ 的数据\n", + "成功获取 301105.SZ 的数据\n", + "成功获取 301106.SZ 的数据\n", + "成功获取 301107.SZ 的数据\n", + "成功获取 301108.SZ 的数据\n", + "成功获取 301109.SZ 的数据\n", + "成功获取 301110.SZ 的数据\n", + "成功获取 301111.SZ 的数据\n", + "成功获取 301112.SZ 的数据\n", + "成功获取 301113.SZ 的数据\n", + "成功获取 301115.SZ 的数据\n", + "成功获取 301116.SZ 的数据\n", + "成功获取 301117.SZ 的数据\n", + "成功获取 301118.SZ 的数据\n", + "成功获取 301119.SZ 的数据\n", + "成功获取 301120.SZ 的数据\n", + "成功获取 301121.SZ 的数据\n", + "成功获取 301122.SZ 的数据\n", + "成功获取 301123.SZ 的数据\n", + "成功获取 301125.SZ 的数据\n", + "成功获取 301126.SZ 的数据\n", + "成功获取 301127.SZ 的数据\n", + "成功获取 301128.SZ 的数据\n", + "成功获取 301129.SZ 的数据\n", + "成功获取 301130.SZ 的数据\n", + "成功获取 301131.SZ 的数据\n", + "成功获取 301132.SZ 的数据\n", + "成功获取 301133.SZ 的数据\n", + "成功获取 301135.SZ 的数据\n", + "成功获取 301136.SZ 的数据\n", + "成功获取 301137.SZ 的数据\n", + "成功获取 301138.SZ 的数据\n", + "成功获取 301139.SZ 的数据\n", + "成功获取 301141.SZ 的数据\n", + "成功获取 301148.SZ 的数据\n", + "成功获取 301149.SZ 的数据\n", + "成功获取 301150.SZ 的数据\n", + "成功获取 301151.SZ 的数据\n", + "成功获取 301152.SZ 的数据\n", + "成功获取 301153.SZ 的数据\n", + "成功获取 301155.SZ 的数据\n", + "成功获取 301156.SZ 的数据\n", + "成功获取 301157.SZ 的数据\n", + "成功获取 301158.SZ 的数据\n", + "成功获取 301159.SZ 的数据\n", + "成功获取 301160.SZ 的数据\n", + "成功获取 301161.SZ 的数据\n", + "成功获取 301162.SZ 的数据\n", + "成功获取 301163.SZ 的数据\n", + "成功获取 301165.SZ 的数据\n", + "成功获取 301166.SZ 的数据\n", + "成功获取 301167.SZ 的数据\n", + "成功获取 301168.SZ 的数据\n", + "成功获取 301169.SZ 的数据\n", + "成功获取 301170.SZ 的数据\n", + "成功获取 301171.SZ 的数据\n", + "成功获取 301172.SZ 的数据\n", + "成功获取 301175.SZ 的数据\n", + "成功获取 301176.SZ 的数据\n", + "成功获取 301177.SZ 的数据\n", + "成功获取 301178.SZ 的数据\n", + "成功获取 301179.SZ 的数据\n", + "成功获取 301180.SZ 的数据\n", + "成功获取 301181.SZ 的数据\n", + "成功获取 301182.SZ 的数据\n", + "成功获取 301183.SZ 的数据\n", + "成功获取 301185.SZ 的数据\n", + "成功获取 301186.SZ 的数据\n", + "成功获取 301187.SZ 的数据\n", + "成功获取 301188.SZ 的数据\n", + "成功获取 301189.SZ 的数据\n", + "成功获取 301190.SZ 的数据\n", + "成功获取 301191.SZ 的数据\n", + "成功获取 301192.SZ 的数据\n", + "成功获取 301193.SZ 的数据\n", + "成功获取 301195.SZ 的数据\n", + "成功获取 301196.SZ 的数据\n", + "成功获取 301197.SZ 的数据\n", + "成功获取 301198.SZ 的数据\n", + "成功获取 301199.SZ 的数据\n", + "成功获取 301200.SZ 的数据\n", + "成功获取 301201.SZ 的数据\n", + "成功获取 301202.SZ 的数据\n", + "成功获取 301203.SZ 的数据\n", + "成功获取 301205.SZ 的数据\n", + "成功获取 301206.SZ 的数据\n", + "成功获取 301207.SZ 的数据\n", + "成功获取 301208.SZ 的数据\n", + "成功获取 301209.SZ 的数据\n", + "成功获取 301210.SZ 的数据\n", + "成功获取 301211.SZ 的数据\n", + "成功获取 301212.SZ 的数据\n", + "成功获取 301213.SZ 的数据\n", + "成功获取 301215.SZ 的数据\n", + "成功获取 301216.SZ 的数据\n", + "成功获取 301217.SZ 的数据\n", + "成功获取 301218.SZ 的数据\n", + "成功获取 301219.SZ 的数据\n", + "成功获取 301220.SZ 的数据\n", + "成功获取 301221.SZ 的数据\n", + "成功获取 301222.SZ 的数据\n", + "成功获取 301223.SZ 的数据\n", + "成功获取 301225.SZ 的数据\n", + "成功获取 301226.SZ 的数据\n", + "成功获取 301227.SZ 的数据\n", + "成功获取 301228.SZ 的数据\n", + "成功获取 301229.SZ 的数据\n", + "成功获取 301230.SZ 的数据\n", + "成功获取 301231.SZ 的数据\n", + "成功获取 301232.SZ 的数据\n", + "成功获取 301233.SZ 的数据\n", + "成功获取 301234.SZ 的数据\n", + "成功获取 301235.SZ 的数据\n", + "成功获取 301236.SZ 的数据\n", + "成功获取 301237.SZ 的数据\n", + "成功获取 301238.SZ 的数据\n", + "成功获取 301239.SZ 的数据\n", + "成功获取 301246.SZ 的数据\n", + "成功获取 301248.SZ 的数据\n", + "成功获取 301251.SZ 的数据\n", + "成功获取 301252.SZ 的数据\n", + "成功获取 301255.SZ 的数据\n", + "成功获取 301256.SZ 的数据\n", + "成功获取 301257.SZ 的数据\n", + "成功获取 301258.SZ 的数据\n", + "成功获取 301259.SZ 的数据\n", + "成功获取 301260.SZ 的数据\n", + "成功获取 301261.SZ 的数据\n", + "成功获取 301262.SZ 的数据\n", + "成功获取 301263.SZ 的数据\n", + "成功获取 301265.SZ 的数据\n", + "成功获取 301266.SZ 的数据\n", + "成功获取 301267.SZ 的数据\n", + "成功获取 301268.SZ 的数据\n", + "成功获取 301269.SZ 的数据\n", + "成功获取 301270.SZ 的数据\n", + "成功获取 301272.SZ 的数据\n", + "成功获取 301273.SZ 的数据\n", + "成功获取 301276.SZ 的数据\n", + "成功获取 301277.SZ 的数据\n", + "成功获取 301278.SZ 的数据\n", + "成功获取 301279.SZ 的数据\n", + "成功获取 301280.SZ 的数据\n", + "成功获取 301281.SZ 的数据\n", + "成功获取 301282.SZ 的数据\n", + "成功获取 301283.SZ 的数据\n", + "成功获取 301285.SZ 的数据\n", + "成功获取 301286.SZ 的数据\n", + "成功获取 301287.SZ 的数据\n", + "成功获取 301288.SZ 的数据\n", + "成功获取 301289.SZ 的数据\n", + "成功获取 301290.SZ 的数据\n", + "成功获取 301291.SZ 的数据\n", + "成功获取 301292.SZ 的数据\n", + "成功获取 301293.SZ 的数据\n", + "成功获取 301295.SZ 的数据\n", + "成功获取 301296.SZ 的数据\n", + "成功获取 301297.SZ 的数据\n", + "成功获取 301298.SZ 的数据\n", + "成功获取 301299.SZ 的数据\n", + "成功获取 301300.SZ 的数据\n", + "成功获取 301301.SZ 的数据\n", + "成功获取 301302.SZ 的数据\n", + "成功获取 301303.SZ 的数据\n", + "成功获取 301305.SZ 的数据\n", + "成功获取 301306.SZ 的数据\n", + "成功获取 301307.SZ 的数据\n", + "成功获取 301308.SZ 的数据\n", + "成功获取 301309.SZ 的数据\n", + "成功获取 301310.SZ 的数据\n", + "成功获取 301311.SZ 的数据\n", + "成功获取 301312.SZ 的数据\n", + "成功获取 301313.SZ 的数据\n", + "成功获取 301314.SZ 的数据\n", + "成功获取 301315.SZ 的数据\n", + "已调用300次API,等待 3.25 秒以满足速率限制...\n", + "成功获取 301316.SZ 的数据\n", + "成功获取 301317.SZ 的数据\n", + "成功获取 301318.SZ 的数据\n", + "成功获取 301319.SZ 的数据\n", + "成功获取 301320.SZ 的数据\n", + "成功获取 301321.SZ 的数据\n", + "成功获取 301322.SZ 的数据\n", + "成功获取 301323.SZ 的数据\n", + "成功获取 301325.SZ 的数据\n", + "成功获取 301326.SZ 的数据\n", + "成功获取 301327.SZ 的数据\n", + "成功获取 301328.SZ 的数据\n", + "成功获取 301329.SZ 的数据\n", + "成功获取 301330.SZ 的数据\n", + "成功获取 301331.SZ 的数据\n", + "成功获取 301332.SZ 的数据\n", + "成功获取 301333.SZ 的数据\n", + "成功获取 301335.SZ 的数据\n", + "成功获取 301336.SZ 的数据\n", + "成功获取 301337.SZ 的数据\n", + "成功获取 301338.SZ 的数据\n", + "成功获取 301339.SZ 的数据\n", + "成功获取 301345.SZ 的数据\n", + "成功获取 301348.SZ 的数据\n", + "成功获取 301349.SZ 的数据\n", + "成功获取 301353.SZ 的数据\n", + "成功获取 301355.SZ 的数据\n", + "成功获取 301356.SZ 的数据\n", + "成功获取 301357.SZ 的数据\n", + "成功获取 301358.SZ 的数据\n", + "成功获取 301359.SZ 的数据\n", + "成功获取 301360.SZ 的数据\n", + "成功获取 301361.SZ 的数据\n", + "成功获取 301362.SZ 的数据\n", + "成功获取 301363.SZ 的数据\n", + "成功获取 301365.SZ 的数据\n", + "成功获取 301366.SZ 的数据\n", + "成功获取 301367.SZ 的数据\n", + "成功获取 301368.SZ 的数据\n", + "成功获取 301369.SZ 的数据\n", + "成功获取 301370.SZ 的数据\n", + "成功获取 301371.SZ 的数据\n", + "成功获取 301372.SZ 的数据\n", + "成功获取 301373.SZ 的数据\n", + "成功获取 301376.SZ 的数据\n", + "成功获取 301377.SZ 的数据\n", + "成功获取 301378.SZ 的数据\n", + "成功获取 301379.SZ 的数据\n", + "成功获取 301380.SZ 的数据\n", + "成功获取 301381.SZ 的数据\n", + "成功获取 301382.SZ 的数据\n", + "成功获取 301383.SZ 的数据\n", + "成功获取 301386.SZ 的数据\n", + "成功获取 301387.SZ 的数据\n", + "成功获取 301388.SZ 的数据\n", + "成功获取 301389.SZ 的数据\n", + "成功获取 301390.SZ 的数据\n", + "成功获取 301391.SZ 的数据\n", + "成功获取 301392.SZ 的数据\n", + "成功获取 301393.SZ 的数据\n", + "成功获取 301395.SZ 的数据\n", + "成功获取 301396.SZ 的数据\n", + "成功获取 301397.SZ 的数据\n", + "成功获取 301398.SZ 的数据\n", + "成功获取 301399.SZ 的数据\n", + "成功获取 301408.SZ 的数据\n", + "成功获取 301413.SZ 的数据\n", + "成功获取 301418.SZ 的数据\n", + "成功获取 301419.SZ 的数据\n", + "成功获取 301421.SZ 的数据\n", + "成功获取 301428.SZ 的数据\n", + "成功获取 301429.SZ 的数据\n", + "成功获取 301439.SZ 的数据\n", + "成功获取 301446.SZ 的数据\n", + "成功获取 301448.SZ 的数据\n", + "成功获取 301456.SZ 的数据\n", + "成功获取 301458.SZ 的数据\n", + "成功获取 301459.SZ 的数据\n", + "成功获取 301468.SZ 的数据\n", + "成功获取 301469.SZ 的数据\n", + "成功获取 301486.SZ 的数据\n", + "成功获取 301487.SZ 的数据\n", + "成功获取 301488.SZ 的数据\n", + "成功获取 301489.SZ 的数据\n", + "成功获取 301498.SZ 的数据\n", + "成功获取 301499.SZ 的数据\n", + "成功获取 301500.SZ 的数据\n", + "成功获取 301502.SZ 的数据\n", + "成功获取 301503.SZ 的数据\n", + "成功获取 301505.SZ 的数据\n", + "成功获取 301507.SZ 的数据\n", + "成功获取 301508.SZ 的数据\n", + "成功获取 301509.SZ 的数据\n", + "成功获取 301510.SZ 的数据\n", + "成功获取 301511.SZ 的数据\n", + "成功获取 301512.SZ 的数据\n", + "成功获取 301515.SZ 的数据\n", + "成功获取 301516.SZ 的数据\n", + "成功获取 301517.SZ 的数据\n", + "成功获取 301518.SZ 的数据\n", + "成功获取 301519.SZ 的数据\n", + "成功获取 301520.SZ 的数据\n", + "成功获取 301522.SZ 的数据\n", + "成功获取 301525.SZ 的数据\n", + "成功获取 301526.SZ 的数据\n", + "成功获取 301528.SZ 的数据\n", + "成功获取 301529.SZ 的数据\n", + "成功获取 301533.SZ 的数据\n", + "成功获取 301536.SZ 的数据\n", + "成功获取 301538.SZ 的数据\n", + "成功获取 301539.SZ 的数据\n", + "成功获取 301548.SZ 的数据\n", + "成功获取 301550.SZ 的数据\n", + "成功获取 301551.SZ 的数据\n", + "成功获取 301552.SZ 的数据\n", + "成功获取 301555.SZ 的数据\n", + "成功获取 301556.SZ 的数据\n", + "成功获取 301558.SZ 的数据\n", + "成功获取 301559.SZ 的数据\n", + "成功获取 301565.SZ 的数据\n", + "成功获取 301566.SZ 的数据\n", + "成功获取 301567.SZ 的数据\n", + "成功获取 301568.SZ 的数据\n", + "成功获取 301571.SZ 的数据\n", + "成功获取 301577.SZ 的数据\n", + "成功获取 301578.SZ 的数据\n", + "成功获取 301580.SZ 的数据\n", + "成功获取 301581.SZ 的数据\n", + "成功获取 301585.SZ 的数据\n", + "成功获取 301586.SZ 的数据\n", + "成功获取 301587.SZ 的数据\n", + "成功获取 301588.SZ 的数据\n", + "成功获取 301589.SZ 的数据\n", + "成功获取 301591.SZ 的数据\n", + "成功获取 301592.SZ 的数据\n", + "成功获取 301596.SZ 的数据\n", + "成功获取 301598.SZ 的数据\n", + "成功获取 301600.SZ 的数据\n", + "成功获取 301601.SZ 的数据\n", + "成功获取 301602.SZ 的数据\n", + "成功获取 301603.SZ 的数据\n", + "成功获取 301606.SZ 的数据\n", + "成功获取 301607.SZ 的数据\n", + "成功获取 301608.SZ 的数据\n", + "成功获取 301611.SZ 的数据\n", + "成功获取 301613.SZ 的数据\n", + "成功获取 301617.SZ 的数据\n", + "成功获取 301618.SZ 的数据\n", + "成功获取 301622.SZ 的数据\n", + "成功获取 301626.SZ 的数据\n", + "成功获取 301628.SZ 的数据\n", + "成功获取 301631.SZ 的数据\n", + "成功获取 301633.SZ 的数据\n", + "成功获取 430017.BJ 的数据\n", + "成功获取 430047.BJ 的数据\n", + "成功获取 430090.BJ 的数据\n", + "成功获取 430139.BJ 的数据\n", + "成功获取 430198.BJ 的数据\n", + "成功获取 430300.BJ 的数据\n", + "成功获取 430418.BJ 的数据\n", + "成功获取 430425.BJ 的数据\n", + "成功获取 430476.BJ 的数据\n", + "成功获取 430478.BJ 的数据\n", + "成功获取 430489.BJ 的数据\n", + "成功获取 430510.BJ 的数据\n", + "成功获取 430556.BJ 的数据\n", + "成功获取 430564.BJ 的数据\n", + "成功获取 430685.BJ 的数据\n", + "成功获取 430718.BJ 的数据\n", + "成功获取 600000.SH 的数据\n", + "成功获取 600004.SH 的数据\n", + "成功获取 600006.SH 的数据\n", + "成功获取 600007.SH 的数据\n", + "成功获取 600008.SH 的数据\n", + "成功获取 600009.SH 的数据\n", + "成功获取 600010.SH 的数据\n", + "成功获取 600011.SH 的数据\n", + "成功获取 600012.SH 的数据\n", + "成功获取 600015.SH 的数据\n", + "成功获取 600016.SH 的数据\n", + "成功获取 600017.SH 的数据\n", + "成功获取 600018.SH 的数据\n", + "成功获取 600019.SH 的数据\n", + "成功获取 600020.SH 的数据\n", + "成功获取 600021.SH 的数据\n", + "成功获取 600022.SH 的数据\n", + "成功获取 600023.SH 的数据\n", + "成功获取 600025.SH 的数据\n", + "成功获取 600026.SH 的数据\n", + "成功获取 600027.SH 的数据\n", + "成功获取 600028.SH 的数据\n", + "成功获取 600029.SH 的数据\n", + "成功获取 600030.SH 的数据\n", + "成功获取 600031.SH 的数据\n", + "成功获取 600032.SH 的数据\n", + "成功获取 600033.SH 的数据\n", + "成功获取 600035.SH 的数据\n", + "成功获取 600036.SH 的数据\n", + "成功获取 600037.SH 的数据\n", + "成功获取 600038.SH 的数据\n", + "成功获取 600039.SH 的数据\n", + "成功获取 600048.SH 的数据\n", + "成功获取 600050.SH 的数据\n", + "成功获取 600051.SH 的数据\n", + "成功获取 600052.SH 的数据\n", + "成功获取 600053.SH 的数据\n", + "成功获取 600054.SH 的数据\n", + "成功获取 600055.SH 的数据\n", + "成功获取 600056.SH 的数据\n", + "成功获取 600057.SH 的数据\n", + "成功获取 600058.SH 的数据\n", + "成功获取 600059.SH 的数据\n", + "成功获取 600060.SH 的数据\n", + "成功获取 600061.SH 的数据\n", + "成功获取 600062.SH 的数据\n", + "成功获取 600063.SH 的数据\n", + "成功获取 600064.SH 的数据\n", + "成功获取 600066.SH 的数据\n", + "成功获取 600067.SH 的数据\n", + "成功获取 600070.SH 的数据\n", + "成功获取 600071.SH 的数据\n", + "成功获取 600072.SH 的数据\n", + "成功获取 600073.SH 的数据\n", + "成功获取 600075.SH 的数据\n", + "成功获取 600076.SH 的数据\n", + "成功获取 600078.SH 的数据\n", + "成功获取 600079.SH 的数据\n", + "成功获取 600080.SH 的数据\n", + "成功获取 600081.SH 的数据\n", + "成功获取 600082.SH 的数据\n", + "成功获取 600083.SH 的数据\n", + "成功获取 600084.SH 的数据\n", + "成功获取 600085.SH 的数据\n", + "成功获取 600088.SH 的数据\n", + "成功获取 600089.SH 的数据\n", + "成功获取 600094.SH 的数据\n", + "成功获取 600095.SH 的数据\n", + "成功获取 600096.SH 的数据\n", + "成功获取 600097.SH 的数据\n", + "成功获取 600098.SH 的数据\n", + "成功获取 600099.SH 的数据\n", + "成功获取 600100.SH 的数据\n", + "成功获取 600101.SH 的数据\n", + "成功获取 600103.SH 的数据\n", + "成功获取 600104.SH 的数据\n", + "成功获取 600105.SH 的数据\n", + "成功获取 600106.SH 的数据\n", + "成功获取 600107.SH 的数据\n", + "成功获取 600108.SH 的数据\n", + "成功获取 600109.SH 的数据\n", + "成功获取 600110.SH 的数据\n", + "成功获取 600111.SH 的数据\n", + "成功获取 600113.SH 的数据\n", + "成功获取 600114.SH 的数据\n", + "成功获取 600115.SH 的数据\n", + "成功获取 600116.SH 的数据\n", + "成功获取 600117.SH 的数据\n", + "成功获取 600118.SH 的数据\n", + "成功获取 600119.SH 的数据\n", + "成功获取 600120.SH 的数据\n", + "成功获取 600121.SH 的数据\n", + "成功获取 600123.SH 的数据\n", + "成功获取 600125.SH 的数据\n", + "成功获取 600126.SH 的数据\n", + "成功获取 600127.SH 的数据\n", + "成功获取 600128.SH 的数据\n", + "成功获取 600129.SH 的数据\n", + "成功获取 600130.SH 的数据\n", + "成功获取 600131.SH 的数据\n", + "成功获取 600132.SH 的数据\n", + "成功获取 600133.SH 的数据\n", + "成功获取 600135.SH 的数据\n", + "成功获取 600136.SH 的数据\n", + "成功获取 600137.SH 的数据\n", + "成功获取 600138.SH 的数据\n", + "成功获取 600141.SH 的数据\n", + "成功获取 600143.SH 的数据\n", + "成功获取 600148.SH 的数据\n", + "成功获取 600149.SH 的数据\n", + "成功获取 600150.SH 的数据\n", + "成功获取 600151.SH 的数据\n", + "成功获取 600152.SH 的数据\n", + "成功获取 600153.SH 的数据\n", + "成功获取 600155.SH 的数据\n", + "成功获取 600156.SH 的数据\n", + "成功获取 600157.SH 的数据\n", + "成功获取 600158.SH 的数据\n", + "成功获取 600159.SH 的数据\n", + "成功获取 600160.SH 的数据\n", + "成功获取 600161.SH 的数据\n", + "成功获取 600162.SH 的数据\n", + "成功获取 600163.SH 的数据\n", + "成功获取 600165.SH 的数据\n", + "成功获取 600166.SH 的数据\n", + "成功获取 600167.SH 的数据\n", + "成功获取 600168.SH 的数据\n", + "成功获取 600169.SH 的数据\n", + "成功获取 600170.SH 的数据\n", + "成功获取 600171.SH 的数据\n", + "成功获取 600172.SH 的数据\n", + "成功获取 600173.SH 的数据\n", + "成功获取 600176.SH 的数据\n", + "成功获取 600177.SH 的数据\n", + "成功获取 600178.SH 的数据\n", + "成功获取 600179.SH 的数据\n", + "成功获取 600180.SH 的数据\n", + "成功获取 600182.SH 的数据\n", + "成功获取 600183.SH 的数据\n", + "成功获取 600184.SH 的数据\n", + "成功获取 600185.SH 的数据\n", + "成功获取 600186.SH 的数据\n", + "成功获取 600187.SH 的数据\n", + "成功获取 600188.SH 的数据\n", + "成功获取 600189.SH 的数据\n", + "成功获取 600190.SH 的数据\n", + "成功获取 600191.SH 的数据\n", + "成功获取 600192.SH 的数据\n", + "成功获取 600193.SH 的数据\n", + "成功获取 600195.SH 的数据\n", + "成功获取 600196.SH 的数据\n", + "成功获取 600197.SH 的数据\n", + "成功获取 600198.SH 的数据\n", + "成功获取 600199.SH 的数据\n", + "成功获取 600200.SH 的数据\n", + "成功获取 600201.SH 的数据\n", + "成功获取 600202.SH 的数据\n", + "成功获取 600203.SH 的数据\n", + "成功获取 600206.SH 的数据\n", + "成功获取 600207.SH 的数据\n", + "成功获取 600208.SH 的数据\n", + "成功获取 600210.SH 的数据\n", + "成功获取 600211.SH 的数据\n", + "成功获取 600212.SH 的数据\n", + "成功获取 600215.SH 的数据\n", + "成功获取 600216.SH 的数据\n", + "成功获取 600217.SH 的数据\n", + "成功获取 600218.SH 的数据\n", + "成功获取 600219.SH 的数据\n", + "成功获取 600221.SH 的数据\n", + "成功获取 600222.SH 的数据\n", + "成功获取 600223.SH 的数据\n", + "成功获取 600225.SH 的数据\n", + "成功获取 600226.SH 的数据\n", + "成功获取 600227.SH 的数据\n", + "成功获取 600228.SH 的数据\n", + "成功获取 600229.SH 的数据\n", + "成功获取 600230.SH 的数据\n", + "成功获取 600231.SH 的数据\n", + "成功获取 600232.SH 的数据\n", + "成功获取 600233.SH 的数据\n", + "成功获取 600234.SH 的数据\n", + "成功获取 600235.SH 的数据\n", + "成功获取 600236.SH 的数据\n", + "成功获取 600237.SH 的数据\n", + "成功获取 600238.SH 的数据\n", + "成功获取 600239.SH 的数据\n", + "成功获取 600241.SH 的数据\n", + "成功获取 600243.SH 的数据\n", + "成功获取 600246.SH 的数据\n", + "成功获取 600248.SH 的数据\n", + "成功获取 600249.SH 的数据\n", + "成功获取 600250.SH 的数据\n", + "成功获取 600251.SH 的数据\n", + "成功获取 600252.SH 的数据\n", + "成功获取 600255.SH 的数据\n", + "成功获取 600256.SH 的数据\n", + "成功获取 600257.SH 的数据\n", + "成功获取 600258.SH 的数据\n", + "成功获取 600259.SH 的数据\n", + "成功获取 600261.SH 的数据\n", + "成功获取 600262.SH 的数据\n", + "成功获取 600265.SH 的数据\n", + "成功获取 600266.SH 的数据\n", + "成功获取 600267.SH 的数据\n", + "成功获取 600268.SH 的数据\n", + "成功获取 600269.SH 的数据\n", + "成功获取 600271.SH 的数据\n", + "成功获取 600272.SH 的数据\n", + "成功获取 600273.SH 的数据\n", + "成功获取 600276.SH 的数据\n", + "成功获取 600278.SH 的数据\n", + "成功获取 600279.SH 的数据\n", + "成功获取 600280.SH 的数据\n", + "成功获取 600281.SH 的数据\n", + "成功获取 600282.SH 的数据\n", + "成功获取 600283.SH 的数据\n", + "成功获取 600284.SH 的数据\n", + "成功获取 600285.SH 的数据\n", + "成功获取 600287.SH 的数据\n", + "成功获取 600288.SH 的数据\n", + "成功获取 600289.SH 的数据\n", + "成功获取 600292.SH 的数据\n", + "成功获取 600293.SH 的数据\n", + "成功获取 600295.SH 的数据\n", + "成功获取 600298.SH 的数据\n", + "成功获取 600299.SH 的数据\n", + "成功获取 600300.SH 的数据\n", + "成功获取 600301.SH 的数据\n", + "成功获取 600302.SH 的数据\n", + "成功获取 600303.SH 的数据\n", + "成功获取 600305.SH 的数据\n", + "成功获取 600307.SH 的数据\n", + "成功获取 600308.SH 的数据\n", + "成功获取 600309.SH 的数据\n", + "成功获取 600310.SH 的数据\n", + "成功获取 600312.SH 的数据\n", + "成功获取 600313.SH 的数据\n", + "成功获取 600315.SH 的数据\n", + "成功获取 600316.SH 的数据\n", + "成功获取 600318.SH 的数据\n", + "成功获取 600319.SH 的数据\n", + "成功获取 600320.SH 的数据\n", + "成功获取 600322.SH 的数据\n", + "成功获取 600323.SH 的数据\n", + "成功获取 600325.SH 的数据\n", + "成功获取 600326.SH 的数据\n", + "成功获取 600327.SH 的数据\n", + "成功获取 600328.SH 的数据\n", + "成功获取 600329.SH 的数据\n", + "成功获取 600330.SH 的数据\n", + "成功获取 600331.SH 的数据\n", + "成功获取 600332.SH 的数据\n", + "成功获取 600333.SH 的数据\n", + "成功获取 600335.SH 的数据\n", + "成功获取 600336.SH 的数据\n", + "成功获取 600337.SH 的数据\n", + "成功获取 600338.SH 的数据\n", + "成功获取 600339.SH 的数据\n", + "成功获取 600340.SH 的数据\n", + "成功获取 600343.SH 的数据\n", + "成功获取 600345.SH 的数据\n", + "成功获取 600346.SH 的数据\n", + "成功获取 600348.SH 的数据\n", + "成功获取 600350.SH 的数据\n", + "成功获取 600351.SH 的数据\n", + "成功获取 600352.SH 的数据\n", + "成功获取 600353.SH 的数据\n", + "成功获取 600354.SH 的数据\n", + "成功获取 600355.SH 的数据\n", + "成功获取 600356.SH 的数据\n", + "成功获取 600358.SH 的数据\n", + "成功获取 600359.SH 的数据\n", + "成功获取 600360.SH 的数据\n", + "成功获取 600361.SH 的数据\n", + "成功获取 600362.SH 的数据\n", + "成功获取 600363.SH 的数据\n", + "成功获取 600365.SH 的数据\n", + "成功获取 600366.SH 的数据\n", + "成功获取 600367.SH 的数据\n", + "成功获取 600368.SH 的数据\n", + "成功获取 600369.SH 的数据\n", + "成功获取 600370.SH 的数据\n", + "成功获取 600371.SH 的数据\n", + "成功获取 600372.SH 的数据\n", + "成功获取 600373.SH 的数据\n", + "成功获取 600375.SH 的数据\n", + "成功获取 600376.SH 的数据\n", + "成功获取 600377.SH 的数据\n", + "成功获取 600378.SH 的数据\n", + "成功获取 600379.SH 的数据\n", + "成功获取 600380.SH 的数据\n", + "成功获取 600381.SH 的数据\n", + "成功获取 600382.SH 的数据\n", + "成功获取 600383.SH 的数据\n", + "成功获取 600386.SH 的数据\n", + "成功获取 600387.SH 的数据\n", + "成功获取 600388.SH 的数据\n", + "成功获取 600389.SH 的数据\n", + "成功获取 600390.SH 的数据\n", + "成功获取 600391.SH 的数据\n", + "成功获取 600392.SH 的数据\n", + "成功获取 600395.SH 的数据\n", + "成功获取 600396.SH 的数据\n", + "成功获取 600397.SH 的数据\n", + "成功获取 600398.SH 的数据\n", + "成功获取 600399.SH 的数据\n", + "成功获取 600400.SH 的数据\n", + "成功获取 600403.SH 的数据\n", + "成功获取 600405.SH 的数据\n", + "成功获取 600406.SH 的数据\n", + "成功获取 600408.SH 的数据\n", + "成功获取 600409.SH 的数据\n", + "成功获取 600410.SH 的数据\n", + "成功获取 600415.SH 的数据\n", + "成功获取 600416.SH 的数据\n", + "成功获取 600418.SH 的数据\n", + "成功获取 600419.SH 的数据\n", + "成功获取 600420.SH 的数据\n", + "成功获取 600421.SH 的数据\n", + "成功获取 600422.SH 的数据\n", + "成功获取 600423.SH 的数据\n", + "成功获取 600425.SH 的数据\n", + "成功获取 600426.SH 的数据\n", + "成功获取 600428.SH 的数据\n", + "成功获取 600429.SH 的数据\n", + "成功获取 600433.SH 的数据\n", + "成功获取 600435.SH 的数据\n", + "成功获取 600436.SH 的数据\n", + "成功获取 600438.SH 的数据\n", + "成功获取 600439.SH 的数据\n", + "成功获取 600444.SH 的数据\n", + "成功获取 600446.SH 的数据\n", + "成功获取 600448.SH 的数据\n", + "成功获取 600449.SH 的数据\n", + "成功获取 600452.SH 的数据\n", + "成功获取 600455.SH 的数据\n", + "成功获取 600456.SH 的数据\n", + "成功获取 600458.SH 的数据\n", + "成功获取 600459.SH 的数据\n", + "成功获取 600460.SH 的数据\n", + "成功获取 600461.SH 的数据\n", + "成功获取 600462.SH 的数据\n", + "成功获取 600463.SH 的数据\n", + "成功获取 600467.SH 的数据\n", + "成功获取 600468.SH 的数据\n", + "成功获取 600469.SH 的数据\n", + "成功获取 600470.SH 的数据\n", + "成功获取 600475.SH 的数据\n", + "成功获取 600476.SH 的数据\n", + "成功获取 600477.SH 的数据\n", + "成功获取 600478.SH 的数据\n", + "成功获取 600479.SH 的数据\n", + "成功获取 600480.SH 的数据\n", + "成功获取 600481.SH 的数据\n", + "成功获取 600482.SH 的数据\n", + "成功获取 600483.SH 的数据\n", + "成功获取 600486.SH 的数据\n", + "成功获取 600487.SH 的数据\n", + "成功获取 600488.SH 的数据\n", + "成功获取 600489.SH 的数据\n", + "成功获取 600490.SH 的数据\n", + "成功获取 600491.SH 的数据\n", + "成功获取 600493.SH 的数据\n", + "成功获取 600495.SH 的数据\n", + "成功获取 600496.SH 的数据\n", + "成功获取 600497.SH 的数据\n", + "成功获取 600498.SH 的数据\n", + "成功获取 600499.SH 的数据\n", + "成功获取 600500.SH 的数据\n", + "成功获取 600501.SH 的数据\n", + "成功获取 600502.SH 的数据\n", + "成功获取 600503.SH 的数据\n", + "成功获取 600505.SH 的数据\n", + "成功获取 600506.SH 的数据\n", + "成功获取 600507.SH 的数据\n", + "成功获取 600508.SH 的数据\n", + "成功获取 600509.SH 的数据\n", + "成功获取 600510.SH 的数据\n", + "成功获取 600511.SH 的数据\n", + "成功获取 600512.SH 的数据\n", + "成功获取 600513.SH 的数据\n", + "成功获取 600515.SH 的数据\n", + "成功获取 600516.SH 的数据\n", + "成功获取 600517.SH 的数据\n", + "成功获取 600518.SH 的数据\n", + "成功获取 600519.SH 的数据\n", + "成功获取 600520.SH 的数据\n", + "成功获取 600521.SH 的数据\n", + "成功获取 600522.SH 的数据\n", + "成功获取 600523.SH 的数据\n", + "成功获取 600525.SH 的数据\n", + "成功获取 600526.SH 的数据\n", + "成功获取 600527.SH 的数据\n", + "成功获取 600528.SH 的数据\n", + "成功获取 600529.SH 的数据\n", + "成功获取 600530.SH 的数据\n", + "成功获取 600531.SH 的数据\n", + "成功获取 600533.SH 的数据\n", + "成功获取 600535.SH 的数据\n", + "成功获取 600536.SH 的数据\n", + "成功获取 600537.SH 的数据\n", + "成功获取 600538.SH 的数据\n", + "成功获取 600539.SH 的数据\n", + "成功获取 600540.SH 的数据\n", + "成功获取 600543.SH 的数据\n", + "成功获取 600545.SH 的数据\n", + "成功获取 600546.SH 的数据\n", + "成功获取 600547.SH 的数据\n", + "成功获取 600548.SH 的数据\n", + "成功获取 600549.SH 的数据\n", + "成功获取 600550.SH 的数据\n", + "成功获取 600551.SH 的数据\n", + "成功获取 600552.SH 的数据\n", + "成功获取 600556.SH 的数据\n", + "成功获取 600557.SH 的数据\n", + "成功获取 600558.SH 的数据\n", + "成功获取 600559.SH 的数据\n", + "成功获取 600560.SH 的数据\n", + "成功获取 600561.SH 的数据\n", + "成功获取 600562.SH 的数据\n", + "成功获取 600563.SH 的数据\n", + "成功获取 600566.SH 的数据\n", + "成功获取 600567.SH 的数据\n", + "成功获取 600568.SH 的数据\n", + "成功获取 600569.SH 的数据\n", + "成功获取 600570.SH 的数据\n", + "成功获取 600571.SH 的数据\n", + "成功获取 600572.SH 的数据\n", + "成功获取 600573.SH 的数据\n", + "成功获取 600575.SH 的数据\n", + "成功获取 600576.SH 的数据\n", + "成功获取 600577.SH 的数据\n", + "成功获取 600578.SH 的数据\n", + "成功获取 600579.SH 的数据\n", + "成功获取 600580.SH 的数据\n", + "成功获取 600581.SH 的数据\n", + "成功获取 600582.SH 的数据\n", + "成功获取 600583.SH 的数据\n", + "成功获取 600584.SH 的数据\n", + "成功获取 600585.SH 的数据\n", + "成功获取 600586.SH 的数据\n", + "成功获取 600587.SH 的数据\n", + "成功获取 600588.SH 的数据\n", + "成功获取 600589.SH 的数据\n", + "成功获取 600590.SH 的数据\n", + "成功获取 600592.SH 的数据\n", + "成功获取 600593.SH 的数据\n", + "成功获取 600594.SH 的数据\n", + "成功获取 600595.SH 的数据\n", + "成功获取 600596.SH 的数据\n", + "成功获取 600597.SH 的数据\n", + "成功获取 600598.SH 的数据\n", + "成功获取 600599.SH 的数据\n", + "成功获取 600600.SH 的数据\n", + "成功获取 600601.SH 的数据\n", + "成功获取 600602.SH 的数据\n", + "成功获取 600603.SH 的数据\n", + "成功获取 600604.SH 的数据\n", + "成功获取 600605.SH 的数据\n", + "成功获取 600606.SH 的数据\n", + "成功获取 600608.SH 的数据\n", + "成功获取 600609.SH 的数据\n", + "成功获取 600610.SH 的数据\n", + "成功获取 600611.SH 的数据\n", + "成功获取 600612.SH 的数据\n", + "成功获取 600613.SH 的数据\n", + "成功获取 600615.SH 的数据\n", + "成功获取 600616.SH 的数据\n", + "成功获取 600617.SH 的数据\n", + "成功获取 600618.SH 的数据\n", + "成功获取 600619.SH 的数据\n", + "成功获取 600620.SH 的数据\n", + "成功获取 600621.SH 的数据\n", + "成功获取 600622.SH 的数据\n", + "成功获取 600623.SH 的数据\n", + "成功获取 600624.SH 的数据\n", + "成功获取 600626.SH 的数据\n", + "成功获取 600628.SH 的数据\n", + "成功获取 600629.SH 的数据\n", + "成功获取 600630.SH 的数据\n", + "成功获取 600633.SH 的数据\n", + "成功获取 600635.SH 的数据\n", + "成功获取 600636.SH 的数据\n", + "成功获取 600637.SH 的数据\n", + "成功获取 600638.SH 的数据\n", + "成功获取 600639.SH 的数据\n", + "成功获取 600640.SH 的数据\n", + "成功获取 600641.SH 的数据\n", + "成功获取 600642.SH 的数据\n", + "成功获取 600643.SH 的数据\n", + "成功获取 600644.SH 的数据\n", + "成功获取 600645.SH 的数据\n", + "成功获取 600648.SH 的数据\n", + "成功获取 600649.SH 的数据\n", + "成功获取 600650.SH 的数据\n", + "成功获取 600651.SH 的数据\n", + "成功获取 600653.SH 的数据\n", + "成功获取 600654.SH 的数据\n", + "成功获取 600655.SH 的数据\n", + "成功获取 600657.SH 的数据\n", + "成功获取 600658.SH 的数据\n", + "成功获取 600660.SH 的数据\n", + "成功获取 600661.SH 的数据\n", + "成功获取 600662.SH 的数据\n", + "成功获取 600663.SH 的数据\n", + "成功获取 600664.SH 的数据\n", + "成功获取 600665.SH 的数据\n", + "成功获取 600666.SH 的数据\n", + "成功获取 600667.SH 的数据\n", + "成功获取 600668.SH 的数据\n", + "成功获取 600671.SH 的数据\n", + "成功获取 600673.SH 的数据\n", + "成功获取 600674.SH 的数据\n", + "成功获取 600675.SH 的数据\n", + "成功获取 600676.SH 的数据\n", + "成功获取 600678.SH 的数据\n", + "成功获取 600679.SH 的数据\n", + "成功获取 600681.SH 的数据\n", + "成功获取 600682.SH 的数据\n", + "成功获取 600683.SH 的数据\n", + "成功获取 600684.SH 的数据\n", + "成功获取 600685.SH 的数据\n", + "成功获取 600686.SH 的数据\n", + "成功获取 600688.SH 的数据\n", + "成功获取 600689.SH 的数据\n", + "成功获取 600690.SH 的数据\n", + "成功获取 600691.SH 的数据\n", + "成功获取 600692.SH 的数据\n", + "成功获取 600693.SH 的数据\n", + "成功获取 600694.SH 的数据\n", + "成功获取 600696.SH 的数据\n", + "成功获取 600697.SH 的数据\n", + "成功获取 600698.SH 的数据\n", + "成功获取 600699.SH 的数据\n", + "成功获取 600702.SH 的数据\n", + "成功获取 600703.SH 的数据\n", + "成功获取 600704.SH 的数据\n", + "成功获取 600705.SH 的数据\n", + "成功获取 600706.SH 的数据\n", + "成功获取 600707.SH 的数据\n", + "成功获取 600708.SH 的数据\n", + "成功获取 600710.SH 的数据\n", + "成功获取 600711.SH 的数据\n", + "成功获取 600712.SH 的数据\n", + "成功获取 600713.SH 的数据\n", + "成功获取 600714.SH 的数据\n", + "成功获取 600715.SH 的数据\n", + "成功获取 600716.SH 的数据\n", + "成功获取 600717.SH 的数据\n", + "成功获取 600718.SH 的数据\n", + "成功获取 600719.SH 的数据\n", + "成功获取 600720.SH 的数据\n", + "成功获取 600721.SH 的数据\n", + "成功获取 600722.SH 的数据\n", + "成功获取 600724.SH 的数据\n", + "成功获取 600725.SH 的数据\n", + "成功获取 600726.SH 的数据\n", + "成功获取 600727.SH 的数据\n", + "成功获取 600728.SH 的数据\n", + "成功获取 600729.SH 的数据\n", + "成功获取 600730.SH 的数据\n", + "成功获取 600731.SH 的数据\n", + "成功获取 600732.SH 的数据\n", + "成功获取 600733.SH 的数据\n", + "成功获取 600734.SH 的数据\n", + "成功获取 600735.SH 的数据\n", + "成功获取 600736.SH 的数据\n", + "成功获取 600737.SH 的数据\n", + "成功获取 600738.SH 的数据\n", + "成功获取 600739.SH 的数据\n", + "成功获取 600740.SH 的数据\n", + "成功获取 600741.SH 的数据\n", + "成功获取 600742.SH 的数据\n", + "成功获取 600743.SH 的数据\n", + "成功获取 600744.SH 的数据\n", + "成功获取 600745.SH 的数据\n", + "成功获取 600746.SH 的数据\n", + "成功获取 600748.SH 的数据\n", + "成功获取 600749.SH 的数据\n", + "成功获取 600750.SH 的数据\n", + "成功获取 600751.SH 的数据\n", + "成功获取 600753.SH 的数据\n", + "成功获取 600754.SH 的数据\n", + "成功获取 600755.SH 的数据\n", + "成功获取 600756.SH 的数据\n", + "成功获取 600757.SH 的数据\n", + "成功获取 600758.SH 的数据\n", + "成功获取 600759.SH 的数据\n", + "成功获取 600760.SH 的数据\n", + "成功获取 600761.SH 的数据\n", + "成功获取 600763.SH 的数据\n", + "成功获取 600764.SH 的数据\n", + "成功获取 600765.SH 的数据\n", + "成功获取 600768.SH 的数据\n", + "成功获取 600769.SH 的数据\n", + "成功获取 600770.SH 的数据\n", + "成功获取 600771.SH 的数据\n", + "成功获取 600773.SH 的数据\n", + "成功获取 600774.SH 的数据\n", + "成功获取 600775.SH 的数据\n", + "成功获取 600776.SH 的数据\n", + "成功获取 600777.SH 的数据\n", + "成功获取 600778.SH 的数据\n", + "成功获取 600779.SH 的数据\n", + "成功获取 600780.SH 的数据\n", + "成功获取 600782.SH 的数据\n", + "成功获取 600783.SH 的数据\n", + "成功获取 600784.SH 的数据\n", + "成功获取 600785.SH 的数据\n", + "成功获取 600787.SH 的数据\n", + "成功获取 600789.SH 的数据\n", + "成功获取 600790.SH 的数据\n", + "成功获取 600791.SH 的数据\n", + "成功获取 600792.SH 的数据\n", + "成功获取 600793.SH 的数据\n", + "成功获取 600794.SH 的数据\n", + "成功获取 600795.SH 的数据\n", + "成功获取 600796.SH 的数据\n", + "成功获取 600797.SH 的数据\n", + "成功获取 600798.SH 的数据\n", + "成功获取 600800.SH 的数据\n", + "成功获取 600801.SH 的数据\n", + "成功获取 600802.SH 的数据\n", + "成功获取 600803.SH 的数据\n", + "成功获取 600804.SH 的数据\n", + "成功获取 600805.SH 的数据\n", + "成功获取 600807.SH 的数据\n", + "成功获取 600808.SH 的数据\n", + "成功获取 600809.SH 的数据\n", + "成功获取 600810.SH 的数据\n", + "成功获取 600811.SH 的数据\n", + "成功获取 600812.SH 的数据\n", + "成功获取 600814.SH 的数据\n", + "成功获取 600815.SH 的数据\n", + "成功获取 600816.SH 的数据\n", + "成功获取 600817.SH 的数据\n", + "成功获取 600818.SH 的数据\n", + "成功获取 600819.SH 的数据\n", + "成功获取 600820.SH 的数据\n", + "成功获取 600821.SH 的数据\n", + "成功获取 600822.SH 的数据\n", + "成功获取 600824.SH 的数据\n", + "成功获取 600825.SH 的数据\n", + "成功获取 600826.SH 的数据\n", + "成功获取 600827.SH 的数据\n", + "成功获取 600828.SH 的数据\n", + "成功获取 600829.SH 的数据\n", + "成功获取 600830.SH 的数据\n", + "成功获取 600831.SH 的数据\n", + "成功获取 600833.SH 的数据\n", + "成功获取 600834.SH 的数据\n", + "成功获取 600835.SH 的数据\n", + "成功获取 600837.SH 的数据\n", + "成功获取 600838.SH 的数据\n", + "成功获取 600839.SH 的数据\n", + "成功获取 600841.SH 的数据\n", + "成功获取 600843.SH 的数据\n", + "成功获取 600844.SH 的数据\n", + "成功获取 600845.SH 的数据\n", + "成功获取 600846.SH 的数据\n", + "成功获取 600847.SH 的数据\n", + "成功获取 600848.SH 的数据\n", + "成功获取 600850.SH 的数据\n", + "成功获取 600851.SH 的数据\n", + "成功获取 600853.SH 的数据\n", + "成功获取 600854.SH 的数据\n", + "成功获取 600855.SH 的数据\n", + "成功获取 600857.SH 的数据\n", + "成功获取 600858.SH 的数据\n", + "成功获取 600859.SH 的数据\n", + "成功获取 600860.SH 的数据\n", + "成功获取 600861.SH 的数据\n", + "成功获取 600862.SH 的数据\n", + "成功获取 600863.SH 的数据\n", + "成功获取 600864.SH 的数据\n", + "成功获取 600865.SH 的数据\n", + "成功获取 600866.SH 的数据\n", + "成功获取 600867.SH 的数据\n", + "成功获取 600868.SH 的数据\n", + "成功获取 600869.SH 的数据\n", + "成功获取 600871.SH 的数据\n", + "成功获取 600872.SH 的数据\n", + "成功获取 600873.SH 的数据\n", + "成功获取 600874.SH 的数据\n", + "成功获取 600875.SH 的数据\n", + "成功获取 600876.SH 的数据\n", + "成功获取 600877.SH 的数据\n", + "成功获取 600879.SH 的数据\n", + "成功获取 600880.SH 的数据\n", + "成功获取 600881.SH 的数据\n", + "成功获取 600882.SH 的数据\n", + "成功获取 600883.SH 的数据\n", + "成功获取 600884.SH 的数据\n", + "成功获取 600885.SH 的数据\n", + "成功获取 600886.SH 的数据\n", + "成功获取 600887.SH 的数据\n", + "成功获取 600888.SH 的数据\n", + "成功获取 600889.SH 的数据\n", + "成功获取 600892.SH 的数据\n", + "成功获取 600893.SH 的数据\n", + "成功获取 600894.SH 的数据\n", + "成功获取 600895.SH 的数据\n", + "成功获取 600897.SH 的数据\n", + "成功获取 600898.SH 的数据\n", + "成功获取 600900.SH 的数据\n", + "成功获取 600901.SH 的数据\n", + "成功获取 600903.SH 的数据\n", + "成功获取 600905.SH 的数据\n", + "成功获取 600906.SH 的数据\n", + "成功获取 600908.SH 的数据\n", + "成功获取 600909.SH 的数据\n", + "成功获取 600916.SH 的数据\n", + "成功获取 600917.SH 的数据\n", + "成功获取 600918.SH 的数据\n", + "成功获取 600919.SH 的数据\n", + "成功获取 600925.SH 的数据\n", + "成功获取 600926.SH 的数据\n", + "成功获取 600927.SH 的数据\n", + "成功获取 600928.SH 的数据\n", + "成功获取 600929.SH 的数据\n", + "成功获取 600933.SH 的数据\n", + "成功获取 600935.SH 的数据\n", + "成功获取 600936.SH 的数据\n", + "成功获取 600938.SH 的数据\n", + "成功获取 600939.SH 的数据\n", + "成功获取 600941.SH 的数据\n", + "成功获取 600955.SH 的数据\n", + "成功获取 600956.SH 的数据\n", + "成功获取 600958.SH 的数据\n", + "成功获取 600959.SH 的数据\n", + "成功获取 600960.SH 的数据\n", + "成功获取 600961.SH 的数据\n", + "成功获取 600962.SH 的数据\n", + "成功获取 600963.SH 的数据\n", + "成功获取 600965.SH 的数据\n", + "成功获取 600966.SH 的数据\n", + "成功获取 600967.SH 的数据\n", + "成功获取 600968.SH 的数据\n", + "成功获取 600969.SH 的数据\n", + "成功获取 600970.SH 的数据\n", + "成功获取 600971.SH 的数据\n", + "成功获取 600973.SH 的数据\n", + "成功获取 600975.SH 的数据\n", + "成功获取 600976.SH 的数据\n", + "成功获取 600977.SH 的数据\n", + "成功获取 600979.SH 的数据\n", + "成功获取 600980.SH 的数据\n", + "成功获取 600981.SH 的数据\n", + "成功获取 600982.SH 的数据\n", + "成功获取 600983.SH 的数据\n", + "成功获取 600984.SH 的数据\n", + "成功获取 600985.SH 的数据\n", + "成功获取 600986.SH 的数据\n", + "成功获取 600987.SH 的数据\n", + "成功获取 600988.SH 的数据\n", + "成功获取 600989.SH 的数据\n", + "成功获取 600990.SH 的数据\n", + "成功获取 600992.SH 的数据\n", + "成功获取 600993.SH 的数据\n", + "成功获取 600995.SH 的数据\n", + "成功获取 600996.SH 的数据\n", + "成功获取 600997.SH 的数据\n", + "成功获取 600998.SH 的数据\n", + "成功获取 600999.SH 的数据\n", + "成功获取 601000.SH 的数据\n", + "成功获取 601001.SH 的数据\n", + "成功获取 601002.SH 的数据\n", + "成功获取 601003.SH 的数据\n", + "成功获取 601005.SH 的数据\n", + "成功获取 601006.SH 的数据\n", + "成功获取 601007.SH 的数据\n", + "成功获取 601008.SH 的数据\n", + "成功获取 601009.SH 的数据\n", + "成功获取 601010.SH 的数据\n", + "成功获取 601011.SH 的数据\n", + "成功获取 601012.SH 的数据\n", + "成功获取 601015.SH 的数据\n", + "成功获取 601016.SH 的数据\n", + "成功获取 601018.SH 的数据\n", + "成功获取 601019.SH 的数据\n", + "成功获取 601020.SH 的数据\n", + "成功获取 601021.SH 的数据\n", + "成功获取 601022.SH 的数据\n", + "成功获取 601028.SH 的数据\n", + "成功获取 601033.SH 的数据\n", + "成功获取 601038.SH 的数据\n", + "成功获取 601058.SH 的数据\n", + "成功获取 601059.SH 的数据\n", + "成功获取 601061.SH 的数据\n", + "成功获取 601065.SH 的数据\n", + "成功获取 601066.SH 的数据\n", + "成功获取 601068.SH 的数据\n", + "成功获取 601069.SH 的数据\n", + "成功获取 601077.SH 的数据\n", + "成功获取 601083.SH 的数据\n", + "成功获取 601086.SH 的数据\n", + "成功获取 601088.SH 的数据\n", + "成功获取 601089.SH 的数据\n", + "成功获取 601096.SH 的数据\n", + "成功获取 601098.SH 的数据\n", + "成功获取 601099.SH 的数据\n", + "成功获取 601100.SH 的数据\n", + "成功获取 601101.SH 的数据\n", + "成功获取 601106.SH 的数据\n", + "成功获取 601107.SH 的数据\n", + "成功获取 601108.SH 的数据\n", + "成功获取 601111.SH 的数据\n", + "成功获取 601113.SH 的数据\n", + "成功获取 601116.SH 的数据\n", + "成功获取 601117.SH 的数据\n", + "成功获取 601118.SH 的数据\n", + "成功获取 601121.SH 的数据\n", + "成功获取 601126.SH 的数据\n", + "成功获取 601127.SH 的数据\n", + "成功获取 601128.SH 的数据\n", + "成功获取 601133.SH 的数据\n", + "成功获取 601136.SH 的数据\n", + "成功获取 601137.SH 的数据\n", + "成功获取 601138.SH 的数据\n", + "成功获取 601139.SH 的数据\n", + "成功获取 601155.SH 的数据\n", + "成功获取 601156.SH 的数据\n", + "成功获取 601158.SH 的数据\n", + "成功获取 601162.SH 的数据\n", + "成功获取 601163.SH 的数据\n", + "成功获取 601166.SH 的数据\n", + "成功获取 601168.SH 的数据\n", + "成功获取 601169.SH 的数据\n", + "成功获取 601177.SH 的数据\n", + "成功获取 601179.SH 的数据\n", + "成功获取 601186.SH 的数据\n", + "成功获取 601187.SH 的数据\n", + "成功获取 601188.SH 的数据\n", + "成功获取 601198.SH 的数据\n", + "成功获取 601199.SH 的数据\n", + "成功获取 601200.SH 的数据\n", + "成功获取 601208.SH 的数据\n", + "成功获取 601211.SH 的数据\n", + "成功获取 601212.SH 的数据\n", + "成功获取 601216.SH 的数据\n", + "成功获取 601218.SH 的数据\n", + "成功获取 601222.SH 的数据\n", + "成功获取 601225.SH 的数据\n", + "成功获取 601226.SH 的数据\n", + "成功获取 601228.SH 的数据\n", + "成功获取 601229.SH 的数据\n", + "成功获取 601231.SH 的数据\n", + "成功获取 601233.SH 的数据\n", + "成功获取 601236.SH 的数据\n", + "成功获取 601238.SH 的数据\n", + "成功获取 601279.SH 的数据\n", + "成功获取 601288.SH 的数据\n", + "成功获取 601298.SH 的数据\n", + "成功获取 601311.SH 的数据\n", + "成功获取 601318.SH 的数据\n", + "成功获取 601319.SH 的数据\n", + "成功获取 601326.SH 的数据\n", + "成功获取 601328.SH 的数据\n", + "成功获取 601330.SH 的数据\n", + "成功获取 601333.SH 的数据\n", + "成功获取 601336.SH 的数据\n", + "成功获取 601339.SH 的数据\n", + "成功获取 601360.SH 的数据\n", + "成功获取 601366.SH 的数据\n", + "成功获取 601368.SH 的数据\n", + "成功获取 601369.SH 的数据\n", + "成功获取 601375.SH 的数据\n", + "成功获取 601377.SH 的数据\n", + "成功获取 601388.SH 的数据\n", + "成功获取 601390.SH 的数据\n", + "成功获取 601398.SH 的数据\n", + "成功获取 601399.SH 的数据\n", + "成功获取 601456.SH 的数据\n", + "成功获取 601500.SH 的数据\n", + "成功获取 601512.SH 的数据\n", + "成功获取 601515.SH 的数据\n", + "成功获取 601518.SH 的数据\n", + "成功获取 601519.SH 的数据\n", + "成功获取 601528.SH 的数据\n", + "成功获取 601555.SH 的数据\n", + "成功获取 601566.SH 的数据\n", + "成功获取 601567.SH 的数据\n", + "成功获取 601568.SH 的数据\n", + "成功获取 601577.SH 的数据\n", + "成功获取 601579.SH 的数据\n", + "成功获取 601588.SH 的数据\n", + "成功获取 601595.SH 的数据\n", + "成功获取 601598.SH 的数据\n", + "成功获取 601599.SH 的数据\n", + "成功获取 601600.SH 的数据\n", + "成功获取 601601.SH 的数据\n", + "成功获取 601606.SH 的数据\n", + "成功获取 601607.SH 的数据\n", + "成功获取 601608.SH 的数据\n", + "成功获取 601609.SH 的数据\n", + "成功获取 601611.SH 的数据\n", + "成功获取 601615.SH 的数据\n", + "成功获取 601616.SH 的数据\n", + "成功获取 601618.SH 的数据\n", + "成功获取 601619.SH 的数据\n", + "成功获取 601628.SH 的数据\n", + "成功获取 601633.SH 的数据\n", + "成功获取 601636.SH 的数据\n", + "成功获取 601658.SH 的数据\n", + "成功获取 601665.SH 的数据\n", + "成功获取 601666.SH 的数据\n", + "成功获取 601668.SH 的数据\n", + "成功获取 601669.SH 的数据\n", + "成功获取 601677.SH 的数据\n", + "成功获取 601678.SH 的数据\n", + "成功获取 601686.SH 的数据\n", + "成功获取 601688.SH 的数据\n", + "成功获取 601689.SH 的数据\n", + "成功获取 601696.SH 的数据\n", + "成功获取 601698.SH 的数据\n", + "成功获取 601699.SH 的数据\n", + "成功获取 601700.SH 的数据\n", + "成功获取 601702.SH 的数据\n", + "成功获取 601717.SH 的数据\n", + "成功获取 601718.SH 的数据\n", + "成功获取 601727.SH 的数据\n", + "成功获取 601728.SH 的数据\n", + "成功获取 601766.SH 的数据\n", + "成功获取 601777.SH 的数据\n", + "成功获取 601778.SH 的数据\n", + "成功获取 601788.SH 的数据\n", + "成功获取 601789.SH 的数据\n", + "成功获取 601798.SH 的数据\n", + "成功获取 601799.SH 的数据\n", + "成功获取 601800.SH 的数据\n", + "成功获取 601801.SH 的数据\n", + "成功获取 601808.SH 的数据\n", + "成功获取 601811.SH 的数据\n", + "成功获取 601816.SH 的数据\n", + "成功获取 601818.SH 的数据\n", + "成功获取 601825.SH 的数据\n", + "成功获取 601827.SH 的数据\n", + "成功获取 601828.SH 的数据\n", + "成功获取 601838.SH 的数据\n", + "成功获取 601857.SH 的数据\n", + "成功获取 601858.SH 的数据\n", + "成功获取 601860.SH 的数据\n", + "成功获取 601865.SH 的数据\n", + "成功获取 601866.SH 的数据\n", + "成功获取 601868.SH 的数据\n", + "成功获取 601869.SH 的数据\n", + "成功获取 601872.SH 的数据\n", + "成功获取 601877.SH 的数据\n", + "成功获取 601878.SH 的数据\n", + "成功获取 601880.SH 的数据\n", + "成功获取 601881.SH 的数据\n", + "成功获取 601882.SH 的数据\n", + "成功获取 601886.SH 的数据\n", + "成功获取 601888.SH 的数据\n", + "成功获取 601890.SH 的数据\n", + "成功获取 601898.SH 的数据\n", + "成功获取 601899.SH 的数据\n", + "成功获取 601900.SH 的数据\n", + "成功获取 601901.SH 的数据\n", + "成功获取 601908.SH 的数据\n", + "成功获取 601916.SH 的数据\n", + "成功获取 601918.SH 的数据\n", + "成功获取 601919.SH 的数据\n", + "成功获取 601921.SH 的数据\n", + "成功获取 601928.SH 的数据\n", + "成功获取 601929.SH 的数据\n", + "成功获取 601933.SH 的数据\n", + "成功获取 601939.SH 的数据\n", + "成功获取 601949.SH 的数据\n", + "成功获取 601952.SH 的数据\n", + "成功获取 601956.SH 的数据\n", + "成功获取 601958.SH 的数据\n", + "成功获取 601963.SH 的数据\n", + "成功获取 601965.SH 的数据\n", + "成功获取 601966.SH 的数据\n", + "成功获取 601968.SH 的数据\n", + "成功获取 601969.SH 的数据\n", + "成功获取 601975.SH 的数据\n", + "成功获取 601985.SH 的数据\n", + "成功获取 601988.SH 的数据\n", + "成功获取 601989.SH 的数据\n", + "成功获取 601990.SH 的数据\n", + "成功获取 601991.SH 的数据\n", + "成功获取 601992.SH 的数据\n", + "成功获取 601995.SH 的数据\n", + "成功获取 601996.SH 的数据\n", + "成功获取 601997.SH 的数据\n", + "成功获取 601998.SH 的数据\n", + "成功获取 601999.SH 的数据\n", + "成功获取 603000.SH 的数据\n", + "成功获取 603001.SH 的数据\n", + "成功获取 603002.SH 的数据\n", + "成功获取 603003.SH 的数据\n", + "成功获取 603004.SH 的数据\n", + "成功获取 603005.SH 的数据\n", + "成功获取 603006.SH 的数据\n", + "成功获取 603007.SH 的数据\n", + "成功获取 603008.SH 的数据\n", + "成功获取 603009.SH 的数据\n", + "成功获取 603010.SH 的数据\n", + "成功获取 603011.SH 的数据\n", + "成功获取 603012.SH 的数据\n", + "成功获取 603013.SH 的数据\n", + "成功获取 603015.SH 的数据\n", + "成功获取 603016.SH 的数据\n", + "成功获取 603017.SH 的数据\n", + "成功获取 603018.SH 的数据\n", + "成功获取 603019.SH 的数据\n", + "成功获取 603020.SH 的数据\n", + "成功获取 603021.SH 的数据\n", + "成功获取 603022.SH 的数据\n", + "成功获取 603023.SH 的数据\n", + "成功获取 603025.SH 的数据\n", + "成功获取 603026.SH 的数据\n", + "成功获取 603027.SH 的数据\n", + "成功获取 603028.SH 的数据\n", + "成功获取 603029.SH 的数据\n", + "成功获取 603030.SH 的数据\n", + "成功获取 603031.SH 的数据\n", + "成功获取 603032.SH 的数据\n", + "成功获取 603033.SH 的数据\n", + "成功获取 603035.SH 的数据\n", + "成功获取 603036.SH 的数据\n", + "成功获取 603037.SH 的数据\n", + "成功获取 603038.SH 的数据\n", + "成功获取 603039.SH 的数据\n", + "成功获取 603040.SH 的数据\n", + "成功获取 603041.SH 的数据\n", + "成功获取 603042.SH 的数据\n", + "成功获取 603043.SH 的数据\n", + "成功获取 603045.SH 的数据\n", + "成功获取 603048.SH 的数据\n", + "成功获取 603050.SH 的数据\n", + "成功获取 603051.SH 的数据\n", + "成功获取 603052.SH 的数据\n", + "成功获取 603053.SH 的数据\n", + "成功获取 603055.SH 的数据\n", + "成功获取 603056.SH 的数据\n", + "成功获取 603057.SH 的数据\n", + "成功获取 603058.SH 的数据\n", + "成功获取 603059.SH 的数据\n", + "成功获取 603060.SH 的数据\n", + "成功获取 603061.SH 的数据\n", + "成功获取 603062.SH 的数据\n", + "成功获取 603063.SH 的数据\n", + "成功获取 603065.SH 的数据\n", + "成功获取 603066.SH 的数据\n", + "成功获取 603067.SH 的数据\n", + "成功获取 603068.SH 的数据\n", + "成功获取 603069.SH 的数据\n", + "成功获取 603070.SH 的数据\n", + "成功获取 603071.SH 的数据\n", + "成功获取 603072.SH 的数据\n", + "成功获取 603073.SH 的数据\n", + "成功获取 603075.SH 的数据\n", + "成功获取 603076.SH 的数据\n", + "成功获取 603077.SH 的数据\n", + "成功获取 603078.SH 的数据\n", + "成功获取 603079.SH 的数据\n", + "成功获取 603080.SH 的数据\n", + "成功获取 603081.SH 的数据\n", + "成功获取 603082.SH 的数据\n", + "成功获取 603083.SH 的数据\n", + "成功获取 603085.SH 的数据\n", + "成功获取 603086.SH 的数据\n", + "成功获取 603087.SH 的数据\n", + "成功获取 603088.SH 的数据\n", + "成功获取 603089.SH 的数据\n", + "成功获取 603090.SH 的数据\n", + "成功获取 603091.SH 的数据\n", + "成功获取 603093.SH 的数据\n", + "成功获取 603095.SH 的数据\n", + "成功获取 603096.SH 的数据\n", + "成功获取 603097.SH 的数据\n", + "成功获取 603098.SH 的数据\n", + "成功获取 603099.SH 的数据\n", + "成功获取 603100.SH 的数据\n", + "成功获取 603101.SH 的数据\n", + "成功获取 603102.SH 的数据\n", + "成功获取 603103.SH 的数据\n", + "成功获取 603105.SH 的数据\n", + "成功获取 603106.SH 的数据\n", + "成功获取 603107.SH 的数据\n", + "成功获取 603108.SH 的数据\n", + "成功获取 603109.SH 的数据\n", + "成功获取 603110.SH 的数据\n", + "成功获取 603111.SH 的数据\n", + "成功获取 603112.SH 的数据\n", + "成功获取 603113.SH 的数据\n", + "成功获取 603115.SH 的数据\n", + "成功获取 603116.SH 的数据\n", + "成功获取 603117.SH 的数据\n", + "成功获取 603118.SH 的数据\n", + "成功获取 603119.SH 的数据\n", + "成功获取 603121.SH 的数据\n", + "成功获取 603122.SH 的数据\n", + "成功获取 603123.SH 的数据\n", + "成功获取 603125.SH 的数据\n", + "成功获取 603126.SH 的数据\n", + "成功获取 603127.SH 的数据\n", + "成功获取 603128.SH 的数据\n", + "成功获取 603129.SH 的数据\n", + "成功获取 603130.SH 的数据\n", + "成功获取 603131.SH 的数据\n", + "成功获取 603132.SH 的数据\n", + "成功获取 603135.SH 的数据\n", + "成功获取 603136.SH 的数据\n", + "成功获取 603137.SH 的数据\n", + "成功获取 603138.SH 的数据\n", + "成功获取 603139.SH 的数据\n", + "成功获取 603150.SH 的数据\n", + "成功获取 603151.SH 的数据\n", + "成功获取 603153.SH 的数据\n", + "成功获取 603155.SH 的数据\n", + "成功获取 603156.SH 的数据\n", + "成功获取 603158.SH 的数据\n", + "成功获取 603159.SH 的数据\n", + "成功获取 603160.SH 的数据\n", + "成功获取 603161.SH 的数据\n", + "成功获取 603162.SH 的数据\n", + "成功获取 603163.SH 的数据\n", + "成功获取 603165.SH 的数据\n", + "成功获取 603166.SH 的数据\n", + "成功获取 603167.SH 的数据\n", + "成功获取 603168.SH 的数据\n", + "成功获取 603169.SH 的数据\n", + "成功获取 603170.SH 的数据\n", + "成功获取 603171.SH 的数据\n", + "成功获取 603172.SH 的数据\n", + "成功获取 603173.SH 的数据\n", + "成功获取 603176.SH 的数据\n", + "成功获取 603177.SH 的数据\n", + "成功获取 603178.SH 的数据\n", + "成功获取 603179.SH 的数据\n", + "成功获取 603180.SH 的数据\n", + "成功获取 603181.SH 的数据\n", + "成功获取 603182.SH 的数据\n", + "成功获取 603183.SH 的数据\n", + "成功获取 603185.SH 的数据\n", + "成功获取 603186.SH 的数据\n", + "成功获取 603187.SH 的数据\n", + "成功获取 603188.SH 的数据\n", + "成功获取 603189.SH 的数据\n", + "成功获取 603190.SH 的数据\n", + "成功获取 603191.SH 的数据\n", + "成功获取 603192.SH 的数据\n", + "成功获取 603193.SH 的数据\n", + "成功获取 603194.SH 的数据\n", + "成功获取 603195.SH 的数据\n", + "成功获取 603196.SH 的数据\n", + "成功获取 603197.SH 的数据\n", + "成功获取 603198.SH 的数据\n", + "成功获取 603199.SH 的数据\n", + "成功获取 603200.SH 的数据\n", + "成功获取 603201.SH 的数据\n", + "成功获取 603203.SH 的数据\n", + "成功获取 603205.SH 的数据\n", + "成功获取 603206.SH 的数据\n", + "成功获取 603207.SH 的数据\n", + "成功获取 603208.SH 的数据\n", + "成功获取 603209.SH 的数据\n", + "成功获取 603211.SH 的数据\n", + "成功获取 603212.SH 的数据\n", + "成功获取 603213.SH 的数据\n", + "成功获取 603214.SH 的数据\n", + "成功获取 603215.SH 的数据\n", + "成功获取 603216.SH 的数据\n", + "成功获取 603217.SH 的数据\n", + "成功获取 603218.SH 的数据\n", + "成功获取 603219.SH 的数据\n", + "成功获取 603220.SH 的数据\n", + "成功获取 603221.SH 的数据\n", + "成功获取 603222.SH 的数据\n", + "成功获取 603223.SH 的数据\n", + "成功获取 603225.SH 的数据\n", + "成功获取 603226.SH 的数据\n", + "成功获取 603227.SH 的数据\n", + "成功获取 603228.SH 的数据\n", + "成功获取 603229.SH 的数据\n", + "成功获取 603230.SH 的数据\n", + "成功获取 603231.SH 的数据\n", + "成功获取 603232.SH 的数据\n", + "成功获取 603233.SH 的数据\n", + "成功获取 603235.SH 的数据\n", + "成功获取 603236.SH 的数据\n", + "成功获取 603237.SH 的数据\n", + "成功获取 603238.SH 的数据\n", + "成功获取 603239.SH 的数据\n", + "成功获取 603255.SH 的数据\n", + "成功获取 603256.SH 的数据\n", + "成功获取 603258.SH 的数据\n", + "成功获取 603259.SH 的数据\n", + "成功获取 603260.SH 的数据\n", + "成功获取 603261.SH 的数据\n", + "成功获取 603266.SH 的数据\n", + "成功获取 603267.SH 的数据\n", + "成功获取 603268.SH 的数据\n", + "成功获取 603269.SH 的数据\n", + "成功获取 603270.SH 的数据\n", + "成功获取 603272.SH 的数据\n", + "成功获取 603273.SH 的数据\n", + "成功获取 603275.SH 的数据\n", + "成功获取 603276.SH 的数据\n", + "成功获取 603277.SH 的数据\n", + "成功获取 603278.SH 的数据\n", + "成功获取 603279.SH 的数据\n", + "成功获取 603280.SH 的数据\n", + "成功获取 603281.SH 的数据\n", + "成功获取 603282.SH 的数据\n", + "成功获取 603283.SH 的数据\n", + "成功获取 603285.SH 的数据\n", + "成功获取 603286.SH 的数据\n", + "成功获取 603288.SH 的数据\n", + "成功获取 603289.SH 的数据\n", + "成功获取 603290.SH 的数据\n", + "成功获取 603291.SH 的数据\n", + "成功获取 603296.SH 的数据\n", + "成功获取 603297.SH 的数据\n", + "成功获取 603298.SH 的数据\n", + "成功获取 603299.SH 的数据\n", + "成功获取 603300.SH 的数据\n", + "成功获取 603301.SH 的数据\n", + "成功获取 603303.SH 的数据\n", + "成功获取 603305.SH 的数据\n", + "成功获取 603306.SH 的数据\n", + "成功获取 603307.SH 的数据\n", + "成功获取 603308.SH 的数据\n", + "成功获取 603309.SH 的数据\n", + "成功获取 603310.SH 的数据\n", + "成功获取 603311.SH 的数据\n", + "成功获取 603312.SH 的数据\n", + "成功获取 603313.SH 的数据\n", + "成功获取 603315.SH 的数据\n", + "成功获取 603316.SH 的数据\n", + "成功获取 603317.SH 的数据\n", + "成功获取 603318.SH 的数据\n", + "成功获取 603319.SH 的数据\n", + "成功获取 603320.SH 的数据\n", + "成功获取 603321.SH 的数据\n", + "成功获取 603322.SH 的数据\n", + "成功获取 603323.SH 的数据\n", + "成功获取 603324.SH 的数据\n", + "成功获取 603325.SH 的数据\n", + "成功获取 603326.SH 的数据\n", + "成功获取 603327.SH 的数据\n", + "成功获取 603328.SH 的数据\n", + "成功获取 603329.SH 的数据\n", + "成功获取 603330.SH 的数据\n", + "成功获取 603331.SH 的数据\n", + "成功获取 603332.SH 的数据\n", + "成功获取 603333.SH 的数据\n", + "成功获取 603335.SH 的数据\n", + "成功获取 603336.SH 的数据\n", + "成功获取 603337.SH 的数据\n", + "成功获取 603338.SH 的数据\n", + "成功获取 603339.SH 的数据\n", + "成功获取 603341.SH 的数据\n", + "成功获取 603344.SH 的数据\n", + "成功获取 603345.SH 的数据\n", + "成功获取 603348.SH 的数据\n", + "成功获取 603350.SH 的数据\n", + "成功获取 603351.SH 的数据\n", + "成功获取 603353.SH 的数据\n", + "成功获取 603355.SH 的数据\n", + "成功获取 603356.SH 的数据\n", + "成功获取 603357.SH 的数据\n", + "成功获取 603358.SH 的数据\n", + "成功获取 603359.SH 的数据\n", + "成功获取 603360.SH 的数据\n", + "成功获取 603363.SH 的数据\n", + "成功获取 603365.SH 的数据\n", + "成功获取 603366.SH 的数据\n", + "成功获取 603367.SH 的数据\n", + "成功获取 603368.SH 的数据\n", + "成功获取 603369.SH 的数据\n", + "成功获取 603373.SH 的数据\n", + "成功获取 603375.SH 的数据\n", + "成功获取 603377.SH 的数据\n", + "成功获取 603378.SH 的数据\n", + "成功获取 603379.SH 的数据\n", + "成功获取 603380.SH 的数据\n", + "成功获取 603381.SH 的数据\n", + "成功获取 603383.SH 的数据\n", + "成功获取 603385.SH 的数据\n", + "成功获取 603386.SH 的数据\n", + "成功获取 603387.SH 的数据\n", + "成功获取 603388.SH 的数据\n", + "成功获取 603389.SH 的数据\n", + "成功获取 603390.SH 的数据\n", + "成功获取 603391.SH 的数据\n", + "成功获取 603392.SH 的数据\n", + "成功获取 603393.SH 的数据\n", + "成功获取 603395.SH 的数据\n", + "成功获取 603396.SH 的数据\n", + "成功获取 603398.SH 的数据\n", + "成功获取 603399.SH 的数据\n", + "成功获取 603408.SH 的数据\n", + "成功获取 603416.SH 的数据\n", + "成功获取 603421.SH 的数据\n", + "成功获取 603429.SH 的数据\n", + "成功获取 603439.SH 的数据\n", + "成功获取 603444.SH 的数据\n", + "成功获取 603456.SH 的数据\n", + "成功获取 603458.SH 的数据\n", + "成功获取 603466.SH 的数据\n", + "成功获取 603477.SH 的数据\n", + "成功获取 603486.SH 的数据\n", + "成功获取 603488.SH 的数据\n", + "成功获取 603489.SH 的数据\n", + "成功获取 603496.SH 的数据\n", + "成功获取 603499.SH 的数据\n", + "成功获取 603500.SH 的数据\n", + "成功获取 603501.SH 的数据\n", + "成功获取 603505.SH 的数据\n", + "成功获取 603506.SH 的数据\n", + "成功获取 603507.SH 的数据\n", + "成功获取 603508.SH 的数据\n", + "成功获取 603511.SH 的数据\n", + "成功获取 603515.SH 的数据\n", + "成功获取 603516.SH 的数据\n", + "成功获取 603517.SH 的数据\n", + "成功获取 603518.SH 的数据\n", + "成功获取 603519.SH 的数据\n", + "成功获取 603520.SH 的数据\n", + "成功获取 603527.SH 的数据\n", + "成功获取 603528.SH 的数据\n", + "成功获取 603529.SH 的数据\n", + "成功获取 603530.SH 的数据\n", + "成功获取 603533.SH 的数据\n", + "成功获取 603535.SH 的数据\n", + "已调用300次API,等待 3.10 秒以满足速率限制...\n", + "成功获取 603536.SH 的数据\n", + "成功获取 603538.SH 的数据\n", + "成功获取 603551.SH 的数据\n", + "成功获取 603556.SH 的数据\n", + "成功获取 603557.SH 的数据\n", + "成功获取 603558.SH 的数据\n", + "成功获取 603559.SH 的数据\n", + "成功获取 603565.SH 的数据\n", + "成功获取 603566.SH 的数据\n", + "成功获取 603567.SH 的数据\n", + "成功获取 603568.SH 的数据\n", + "成功获取 603569.SH 的数据\n", + "成功获取 603577.SH 的数据\n", + "成功获取 603578.SH 的数据\n", + "成功获取 603579.SH 的数据\n", + "成功获取 603580.SH 的数据\n", + "成功获取 603583.SH 的数据\n", + "成功获取 603585.SH 的数据\n", + "成功获取 603586.SH 的数据\n", + "成功获取 603587.SH 的数据\n", + "成功获取 603588.SH 的数据\n", + "成功获取 603589.SH 的数据\n", + "成功获取 603590.SH 的数据\n", + "成功获取 603595.SH 的数据\n", + "成功获取 603596.SH 的数据\n", + "成功获取 603598.SH 的数据\n", + "成功获取 603599.SH 的数据\n", + "成功获取 603600.SH 的数据\n", + "成功获取 603601.SH 的数据\n", + "成功获取 603602.SH 的数据\n", + "成功获取 603605.SH 的数据\n", + "成功获取 603606.SH 的数据\n", + "成功获取 603607.SH 的数据\n", + "成功获取 603608.SH 的数据\n", + "成功获取 603609.SH 的数据\n", + "成功获取 603610.SH 的数据\n", + "成功获取 603611.SH 的数据\n", + "成功获取 603612.SH 的数据\n", + "成功获取 603613.SH 的数据\n", + "成功获取 603615.SH 的数据\n", + "成功获取 603616.SH 的数据\n", + "成功获取 603617.SH 的数据\n", + "成功获取 603618.SH 的数据\n", + "成功获取 603619.SH 的数据\n", + "成功获取 603626.SH 的数据\n", + "成功获取 603628.SH 的数据\n", + "成功获取 603629.SH 的数据\n", + "成功获取 603630.SH 的数据\n", + "成功获取 603633.SH 的数据\n", + "成功获取 603636.SH 的数据\n", + "成功获取 603637.SH 的数据\n", + "成功获取 603638.SH 的数据\n", + "成功获取 603639.SH 的数据\n", + "成功获取 603648.SH 的数据\n", + "成功获取 603650.SH 的数据\n", + "成功获取 603655.SH 的数据\n", + "成功获取 603656.SH 的数据\n", + "成功获取 603657.SH 的数据\n", + "成功获取 603658.SH 的数据\n", + "成功获取 603659.SH 的数据\n", + "成功获取 603660.SH 的数据\n", + "成功获取 603661.SH 的数据\n", + "成功获取 603662.SH 的数据\n", + "成功获取 603663.SH 的数据\n", + "成功获取 603665.SH 的数据\n", + "成功获取 603666.SH 的数据\n", + "成功获取 603667.SH 的数据\n", + "成功获取 603668.SH 的数据\n", + "成功获取 603669.SH 的数据\n", + "成功获取 603676.SH 的数据\n", + "成功获取 603677.SH 的数据\n", + "成功获取 603678.SH 的数据\n", + "成功获取 603679.SH 的数据\n", + "成功获取 603680.SH 的数据\n", + "成功获取 603681.SH 的数据\n", + "成功获取 603682.SH 的数据\n", + "成功获取 603683.SH 的数据\n", + "成功获取 603685.SH 的数据\n", + "成功获取 603686.SH 的数据\n", + "成功获取 603687.SH 的数据\n", + "成功获取 603688.SH 的数据\n", + "成功获取 603689.SH 的数据\n", + "成功获取 603690.SH 的数据\n", + "成功获取 603693.SH 的数据\n", + "成功获取 603696.SH 的数据\n", + "成功获取 603697.SH 的数据\n", + "成功获取 603698.SH 的数据\n", + "成功获取 603699.SH 的数据\n", + "成功获取 603700.SH 的数据\n", + "成功获取 603701.SH 的数据\n", + "成功获取 603703.SH 的数据\n", + "成功获取 603706.SH 的数据\n", + "成功获取 603707.SH 的数据\n", + "成功获取 603708.SH 的数据\n", + "成功获取 603709.SH 的数据\n", + "成功获取 603711.SH 的数据\n", + "成功获取 603712.SH 的数据\n", + "成功获取 603713.SH 的数据\n", + "成功获取 603716.SH 的数据\n", + "成功获取 603717.SH 的数据\n", + "成功获取 603718.SH 的数据\n", + "成功获取 603719.SH 的数据\n", + "成功获取 603721.SH 的数据\n", + "成功获取 603722.SH 的数据\n", + "成功获取 603725.SH 的数据\n", + "成功获取 603726.SH 的数据\n", + "成功获取 603727.SH 的数据\n", + "成功获取 603728.SH 的数据\n", + "成功获取 603729.SH 的数据\n", + "成功获取 603730.SH 的数据\n", + "成功获取 603733.SH 的数据\n", + "成功获取 603737.SH 的数据\n", + "成功获取 603738.SH 的数据\n", + "成功获取 603739.SH 的数据\n", + "成功获取 603755.SH 的数据\n", + "成功获取 603757.SH 的数据\n", + "成功获取 603758.SH 的数据\n", + "成功获取 603759.SH 的数据\n", + "成功获取 603766.SH 的数据\n", + "成功获取 603767.SH 的数据\n", + "成功获取 603768.SH 的数据\n", + "成功获取 603773.SH 的数据\n", + "成功获取 603776.SH 的数据\n", + "成功获取 603777.SH 的数据\n", + "成功获取 603778.SH 的数据\n", + "成功获取 603779.SH 的数据\n", + "成功获取 603786.SH 的数据\n", + "成功获取 603787.SH 的数据\n", + "成功获取 603788.SH 的数据\n", + "成功获取 603789.SH 的数据\n", + "成功获取 603790.SH 的数据\n", + "成功获取 603797.SH 的数据\n", + "成功获取 603798.SH 的数据\n", + "成功获取 603799.SH 的数据\n", + "成功获取 603800.SH 的数据\n", + "成功获取 603801.SH 的数据\n", + "成功获取 603803.SH 的数据\n", + "成功获取 603806.SH 的数据\n", + "成功获取 603808.SH 的数据\n", + "成功获取 603809.SH 的数据\n", + "成功获取 603810.SH 的数据\n", + "成功获取 603811.SH 的数据\n", + "成功获取 603813.SH 的数据\n", + "成功获取 603815.SH 的数据\n", + "成功获取 603816.SH 的数据\n", + "成功获取 603817.SH 的数据\n", + "成功获取 603818.SH 的数据\n", + "成功获取 603819.SH 的数据\n", + "成功获取 603822.SH 的数据\n", + "成功获取 603823.SH 的数据\n", + "成功获取 603825.SH 的数据\n", + "成功获取 603826.SH 的数据\n", + "成功获取 603828.SH 的数据\n", + "成功获取 603829.SH 的数据\n", + "成功获取 603833.SH 的数据\n", + "成功获取 603836.SH 的数据\n", + "成功获取 603838.SH 的数据\n", + "成功获取 603839.SH 的数据\n", + "成功获取 603843.SH 的数据\n", + "成功获取 603848.SH 的数据\n", + "成功获取 603855.SH 的数据\n", + "成功获取 603856.SH 的数据\n", + "成功获取 603858.SH 的数据\n", + "成功获取 603859.SH 的数据\n", + "成功获取 603860.SH 的数据\n", + "成功获取 603861.SH 的数据\n", + "成功获取 603863.SH 的数据\n", + "成功获取 603866.SH 的数据\n", + "成功获取 603867.SH 的数据\n", + "成功获取 603868.SH 的数据\n", + "成功获取 603869.SH 的数据\n", + "成功获取 603871.SH 的数据\n", + "成功获取 603876.SH 的数据\n", + "成功获取 603877.SH 的数据\n", + "成功获取 603878.SH 的数据\n", + "成功获取 603879.SH 的数据\n", + "成功获取 603880.SH 的数据\n", + "成功获取 603881.SH 的数据\n", + "成功获取 603882.SH 的数据\n", + "成功获取 603883.SH 的数据\n", + "成功获取 603885.SH 的数据\n", + "成功获取 603886.SH 的数据\n", + "成功获取 603887.SH 的数据\n", + "成功获取 603888.SH 的数据\n", + "成功获取 603889.SH 的数据\n", + "成功获取 603890.SH 的数据\n", + "成功获取 603893.SH 的数据\n", + "成功获取 603895.SH 的数据\n", + "成功获取 603896.SH 的数据\n", + "成功获取 603897.SH 的数据\n", + "成功获取 603898.SH 的数据\n", + "成功获取 603899.SH 的数据\n", + "成功获取 603900.SH 的数据\n", + "成功获取 603901.SH 的数据\n", + "成功获取 603903.SH 的数据\n", + "成功获取 603906.SH 的数据\n", + "成功获取 603908.SH 的数据\n", + "成功获取 603909.SH 的数据\n", + "成功获取 603912.SH 的数据\n", + "成功获取 603915.SH 的数据\n", + "成功获取 603916.SH 的数据\n", + "成功获取 603917.SH 的数据\n", + "成功获取 603918.SH 的数据\n", + "成功获取 603919.SH 的数据\n", + "成功获取 603920.SH 的数据\n", + "成功获取 603922.SH 的数据\n", + "成功获取 603926.SH 的数据\n", + "成功获取 603927.SH 的数据\n", + "成功获取 603928.SH 的数据\n", + "成功获取 603929.SH 的数据\n", + "成功获取 603931.SH 的数据\n", + "成功获取 603933.SH 的数据\n", + "成功获取 603936.SH 的数据\n", + "成功获取 603937.SH 的数据\n", + "成功获取 603938.SH 的数据\n", + "成功获取 603939.SH 的数据\n", + "成功获取 603948.SH 的数据\n", + "成功获取 603949.SH 的数据\n", + "成功获取 603950.SH 的数据\n", + "成功获取 603955.SH 的数据\n", + "成功获取 603956.SH 的数据\n", + "成功获取 603958.SH 的数据\n", + "成功获取 603959.SH 的数据\n", + "成功获取 603960.SH 的数据\n", + "成功获取 603963.SH 的数据\n", + "成功获取 603966.SH 的数据\n", + "成功获取 603967.SH 的数据\n", + "成功获取 603968.SH 的数据\n", + "成功获取 603969.SH 的数据\n", + "成功获取 603970.SH 的数据\n", + "成功获取 603976.SH 的数据\n", + "成功获取 603977.SH 的数据\n", + "成功获取 603978.SH 的数据\n", + "成功获取 603979.SH 的数据\n", + "成功获取 603980.SH 的数据\n", + "成功获取 603982.SH 的数据\n", + "成功获取 603983.SH 的数据\n", + "成功获取 603985.SH 的数据\n", + "成功获取 603986.SH 的数据\n", + "成功获取 603987.SH 的数据\n", + "成功获取 603988.SH 的数据\n", + "成功获取 603989.SH 的数据\n", + "成功获取 603990.SH 的数据\n", + "成功获取 603991.SH 的数据\n", + "成功获取 603992.SH 的数据\n", + "成功获取 603993.SH 的数据\n", + "成功获取 603995.SH 的数据\n", + "成功获取 603997.SH 的数据\n", + "成功获取 603998.SH 的数据\n", + "成功获取 603999.SH 的数据\n", + "成功获取 605001.SH 的数据\n", + "成功获取 605003.SH 的数据\n", + "成功获取 605005.SH 的数据\n", + "成功获取 605006.SH 的数据\n", + "成功获取 605007.SH 的数据\n", + "成功获取 605008.SH 的数据\n", + "成功获取 605009.SH 的数据\n", + "成功获取 605011.SH 的数据\n", + "成功获取 605016.SH 的数据\n", + "成功获取 605018.SH 的数据\n", + "成功获取 605020.SH 的数据\n", + "成功获取 605028.SH 的数据\n", + "成功获取 605033.SH 的数据\n", + "成功获取 605050.SH 的数据\n", + "成功获取 605055.SH 的数据\n", + "成功获取 605056.SH 的数据\n", + "成功获取 605058.SH 的数据\n", + "成功获取 605060.SH 的数据\n", + "成功获取 605066.SH 的数据\n", + "成功获取 605068.SH 的数据\n", + "成功获取 605069.SH 的数据\n", + "成功获取 605077.SH 的数据\n", + "成功获取 605080.SH 的数据\n", + "成功获取 605081.SH 的数据\n", + "成功获取 605086.SH 的数据\n", + "成功获取 605088.SH 的数据\n", + "成功获取 605089.SH 的数据\n", + "成功获取 605090.SH 的数据\n", + "成功获取 605098.SH 的数据\n", + "成功获取 605099.SH 的数据\n", + "成功获取 605100.SH 的数据\n", + "成功获取 605108.SH 的数据\n", + "成功获取 605111.SH 的数据\n", + "成功获取 605116.SH 的数据\n", + "成功获取 605117.SH 的数据\n", + "成功获取 605118.SH 的数据\n", + "成功获取 605122.SH 的数据\n", + "成功获取 605123.SH 的数据\n", + "成功获取 605128.SH 的数据\n", + "成功获取 605133.SH 的数据\n", + "成功获取 605136.SH 的数据\n", + "成功获取 605138.SH 的数据\n", + "成功获取 605151.SH 的数据\n", + "成功获取 605155.SH 的数据\n", + "成功获取 605158.SH 的数据\n", + "成功获取 605162.SH 的数据\n", + "成功获取 605166.SH 的数据\n", + "成功获取 605167.SH 的数据\n", + "成功获取 605168.SH 的数据\n", + "成功获取 605169.SH 的数据\n", + "已调用300次API,等待 1.72 秒以满足速率限制...\n", + "成功获取 605177.SH 的数据\n", + "成功获取 605178.SH 的数据\n", + "成功获取 605179.SH 的数据\n", + "成功获取 605180.SH 的数据\n", + "成功获取 605183.SH 的数据\n", + "成功获取 605186.SH 的数据\n", + "成功获取 605188.SH 的数据\n", + "成功获取 605189.SH 的数据\n", + "成功获取 605196.SH 的数据\n", + "成功获取 605198.SH 的数据\n", + "成功获取 605199.SH 的数据\n", + "成功获取 605208.SH 的数据\n", + "成功获取 605218.SH 的数据\n", + "成功获取 605222.SH 的数据\n", + "成功获取 605228.SH 的数据\n", + "成功获取 605255.SH 的数据\n", + "成功获取 605258.SH 的数据\n", + "成功获取 605259.SH 的数据\n", + "成功获取 605266.SH 的数据\n", + "成功获取 605268.SH 的数据\n", + "成功获取 605277.SH 的数据\n", + "成功获取 605286.SH 的数据\n", + "成功获取 605287.SH 的数据\n", + "成功获取 605288.SH 的数据\n", + "成功获取 605289.SH 的数据\n", + "成功获取 605296.SH 的数据\n", + "成功获取 605298.SH 的数据\n", + "成功获取 605299.SH 的数据\n", + "成功获取 605300.SH 的数据\n", + "成功获取 605303.SH 的数据\n", + "成功获取 605305.SH 的数据\n", + "成功获取 605318.SH 的数据\n", + "成功获取 605319.SH 的数据\n", + "成功获取 605333.SH 的数据\n", + "成功获取 605336.SH 的数据\n", + "成功获取 605337.SH 的数据\n", + "成功获取 605338.SH 的数据\n", + "成功获取 605339.SH 的数据\n", + "成功获取 605358.SH 的数据\n", + "成功获取 605365.SH 的数据\n", + "成功获取 605366.SH 的数据\n", + "成功获取 605368.SH 的数据\n", + "成功获取 605369.SH 的数据\n", + "成功获取 605376.SH 的数据\n", + "成功获取 605377.SH 的数据\n", + "成功获取 605378.SH 的数据\n", + "成功获取 605388.SH 的数据\n", + "成功获取 605389.SH 的数据\n", + "成功获取 605398.SH 的数据\n", + "成功获取 605399.SH 的数据\n", + "成功获取 605488.SH 的数据\n", + "成功获取 605499.SH 的数据\n", + "成功获取 605500.SH 的数据\n", + "成功获取 605507.SH 的数据\n", + "成功获取 605555.SH 的数据\n", + "成功获取 605566.SH 的数据\n", + "成功获取 605567.SH 的数据\n", + "成功获取 605577.SH 的数据\n", + "成功获取 605580.SH 的数据\n", + "成功获取 605588.SH 的数据\n", + "成功获取 605589.SH 的数据\n", + "成功获取 605598.SH 的数据\n", + "成功获取 605599.SH 的数据\n", + "成功获取 688001.SH 的数据\n", + "成功获取 688002.SH 的数据\n", + "成功获取 688003.SH 的数据\n", + "成功获取 688004.SH 的数据\n", + "成功获取 688005.SH 的数据\n", + "成功获取 688006.SH 的数据\n", + "成功获取 688007.SH 的数据\n", + "成功获取 688008.SH 的数据\n", + "成功获取 688009.SH 的数据\n", + "成功获取 688010.SH 的数据\n", + "成功获取 688011.SH 的数据\n", + "成功获取 688012.SH 的数据\n", + "成功获取 688013.SH 的数据\n", + "成功获取 688015.SH 的数据\n", + "成功获取 688016.SH 的数据\n", + "成功获取 688017.SH 的数据\n", + "成功获取 688018.SH 的数据\n", + "成功获取 688019.SH 的数据\n", + "成功获取 688020.SH 的数据\n", + "成功获取 688021.SH 的数据\n", + "成功获取 688022.SH 的数据\n", + "成功获取 688023.SH 的数据\n", + "成功获取 688025.SH 的数据\n", + "成功获取 688026.SH 的数据\n", + "成功获取 688027.SH 的数据\n", + "成功获取 688028.SH 的数据\n", + "成功获取 688029.SH 的数据\n", + "成功获取 688030.SH 的数据\n", + "成功获取 688031.SH 的数据\n", + "成功获取 688032.SH 的数据\n", + "成功获取 688033.SH 的数据\n", + "成功获取 688035.SH 的数据\n", + "成功获取 688036.SH 的数据\n", + "成功获取 688037.SH 的数据\n", + "成功获取 688038.SH 的数据\n", + "成功获取 688039.SH 的数据\n", + "成功获取 688041.SH 的数据\n", + "成功获取 688045.SH 的数据\n", + "成功获取 688046.SH 的数据\n", + "成功获取 688047.SH 的数据\n", + "成功获取 688048.SH 的数据\n", + "成功获取 688049.SH 的数据\n", + "成功获取 688050.SH 的数据\n", + "成功获取 688051.SH 的数据\n", + "成功获取 688052.SH 的数据\n", + "成功获取 688053.SH 的数据\n", + "成功获取 688055.SH 的数据\n", + "成功获取 688056.SH 的数据\n", + "成功获取 688057.SH 的数据\n", + "成功获取 688058.SH 的数据\n", + "成功获取 688059.SH 的数据\n", + "成功获取 688060.SH 的数据\n", + "成功获取 688061.SH 的数据\n", + "成功获取 688062.SH 的数据\n", + "成功获取 688063.SH 的数据\n", + "成功获取 688065.SH 的数据\n", + "成功获取 688066.SH 的数据\n", + "成功获取 688067.SH 的数据\n", + "成功获取 688068.SH 的数据\n", + "成功获取 688069.SH 的数据\n", + "成功获取 688070.SH 的数据\n", + "成功获取 688071.SH 的数据\n", + "成功获取 688072.SH 的数据\n", + "成功获取 688073.SH 的数据\n", + "成功获取 688075.SH 的数据\n", + "成功获取 688076.SH 的数据\n", + "成功获取 688077.SH 的数据\n", + "成功获取 688078.SH 的数据\n", + "成功获取 688079.SH 的数据\n", + "成功获取 688080.SH 的数据\n", + "成功获取 688081.SH 的数据\n", + "成功获取 688082.SH 的数据\n", + "成功获取 688083.SH 的数据\n", + "成功获取 688084.SH 的数据\n", + "成功获取 688085.SH 的数据\n", + "成功获取 688087.SH 的数据\n", + "成功获取 688088.SH 的数据\n", + "成功获取 688089.SH 的数据\n", + "成功获取 688090.SH 的数据\n", + "成功获取 688091.SH 的数据\n", + "成功获取 688092.SH 的数据\n", + "成功获取 688093.SH 的数据\n", + "成功获取 688095.SH 的数据\n", + "成功获取 688096.SH 的数据\n", + "成功获取 688097.SH 的数据\n", + "成功获取 688098.SH 的数据\n", + "成功获取 688099.SH 的数据\n", + "成功获取 688100.SH 的数据\n", + "成功获取 688101.SH 的数据\n", + "成功获取 688102.SH 的数据\n", + "成功获取 688103.SH 的数据\n", + "成功获取 688105.SH 的数据\n", + "成功获取 688106.SH 的数据\n", + "成功获取 688107.SH 的数据\n", + "成功获取 688108.SH 的数据\n", + "成功获取 688109.SH 的数据\n", + "成功获取 688110.SH 的数据\n", + "成功获取 688111.SH 的数据\n", + "成功获取 688112.SH 的数据\n", + "成功获取 688113.SH 的数据\n", + "成功获取 688114.SH 的数据\n", + "成功获取 688115.SH 的数据\n", + "成功获取 688116.SH 的数据\n", + "成功获取 688117.SH 的数据\n", + "成功获取 688118.SH 的数据\n", + "成功获取 688119.SH 的数据\n", + "成功获取 688120.SH 的数据\n", + "成功获取 688121.SH 的数据\n", + "成功获取 688122.SH 的数据\n", + "成功获取 688123.SH 的数据\n", + "成功获取 688125.SH 的数据\n", + "成功获取 688126.SH 的数据\n", + "成功获取 688127.SH 的数据\n", + "成功获取 688128.SH 的数据\n", + "成功获取 688129.SH 的数据\n", + "成功获取 688130.SH 的数据\n", + "成功获取 688131.SH 的数据\n", + "成功获取 688132.SH 的数据\n", + "成功获取 688133.SH 的数据\n", + "成功获取 688135.SH 的数据\n", + "成功获取 688136.SH 的数据\n", + "成功获取 688137.SH 的数据\n", + "成功获取 688138.SH 的数据\n", + "成功获取 688139.SH 的数据\n", + "成功获取 688141.SH 的数据\n", + "成功获取 688143.SH 的数据\n", + "成功获取 688146.SH 的数据\n", + "成功获取 688147.SH 的数据\n", + "成功获取 688148.SH 的数据\n", + "成功获取 688150.SH 的数据\n", + "成功获取 688151.SH 的数据\n", + "成功获取 688152.SH 的数据\n", + "成功获取 688153.SH 的数据\n", + "成功获取 688155.SH 的数据\n", + "成功获取 688156.SH 的数据\n", + "成功获取 688157.SH 的数据\n", + "成功获取 688158.SH 的数据\n", + "成功获取 688159.SH 的数据\n", + "成功获取 688160.SH 的数据\n", + "成功获取 688161.SH 的数据\n", + "成功获取 688162.SH 的数据\n", + "成功获取 688163.SH 的数据\n", + "成功获取 688165.SH 的数据\n", + "成功获取 688166.SH 的数据\n", + "成功获取 688167.SH 的数据\n", + "成功获取 688168.SH 的数据\n", + "成功获取 688169.SH 的数据\n", + "成功获取 688170.SH 的数据\n", + "成功获取 688171.SH 的数据\n", + "成功获取 688172.SH 的数据\n", + "成功获取 688173.SH 的数据\n", + "成功获取 688175.SH 的数据\n", + "成功获取 688176.SH 的数据\n", + "成功获取 688177.SH 的数据\n", + "成功获取 688178.SH 的数据\n", + "成功获取 688179.SH 的数据\n", + "成功获取 688180.SH 的数据\n", + "成功获取 688181.SH 的数据\n", + "成功获取 688182.SH 的数据\n", + "成功获取 688183.SH 的数据\n", + "成功获取 688184.SH 的数据\n", + "成功获取 688185.SH 的数据\n", + "成功获取 688186.SH 的数据\n", + "成功获取 688187.SH 的数据\n", + "成功获取 688188.SH 的数据\n", + "成功获取 688189.SH 的数据\n", + "成功获取 688190.SH 的数据\n", + "成功获取 688191.SH 的数据\n", + "成功获取 688192.SH 的数据\n", + "成功获取 688193.SH 的数据\n", + "成功获取 688195.SH 的数据\n", + "成功获取 688196.SH 的数据\n", + "成功获取 688197.SH 的数据\n", + "成功获取 688198.SH 的数据\n", + "成功获取 688199.SH 的数据\n", + "成功获取 688200.SH 的数据\n", + "成功获取 688201.SH 的数据\n", + "成功获取 688202.SH 的数据\n", + "成功获取 688203.SH 的数据\n", + "成功获取 688205.SH 的数据\n", + "成功获取 688206.SH 的数据\n", + "成功获取 688207.SH 的数据\n", + "成功获取 688208.SH 的数据\n", + "成功获取 688209.SH 的数据\n", + "成功获取 688210.SH 的数据\n", + "成功获取 688211.SH 的数据\n", + "成功获取 688212.SH 的数据\n", + "成功获取 688213.SH 的数据\n", + "成功获取 688215.SH 的数据\n", + "成功获取 688216.SH 的数据\n", + "成功获取 688217.SH 的数据\n", + "成功获取 688218.SH 的数据\n", + "成功获取 688219.SH 的数据\n", + "成功获取 688220.SH 的数据\n", + "成功获取 688221.SH 的数据\n", + "成功获取 688222.SH 的数据\n", + "成功获取 688223.SH 的数据\n", + "成功获取 688225.SH 的数据\n", + "成功获取 688226.SH 的数据\n", + "成功获取 688227.SH 的数据\n", + "成功获取 688228.SH 的数据\n", + "成功获取 688229.SH 的数据\n", + "成功获取 688230.SH 的数据\n", + "成功获取 688231.SH 的数据\n", + "成功获取 688232.SH 的数据\n", + "成功获取 688233.SH 的数据\n", + "成功获取 688234.SH 的数据\n", + "成功获取 688235.SH 的数据\n", + "成功获取 688236.SH 的数据\n", + "成功获取 688237.SH 的数据\n", + "成功获取 688238.SH 的数据\n", + "成功获取 688239.SH 的数据\n", + "成功获取 688244.SH 的数据\n", + "成功获取 688246.SH 的数据\n", + "成功获取 688247.SH 的数据\n", + "成功获取 688248.SH 的数据\n", + "成功获取 688249.SH 的数据\n", + "成功获取 688251.SH 的数据\n", + "成功获取 688252.SH 的数据\n", + "成功获取 688253.SH 的数据\n", + "成功获取 688255.SH 的数据\n", + "成功获取 688256.SH 的数据\n", + "成功获取 688257.SH 的数据\n", + "成功获取 688258.SH 的数据\n", + "成功获取 688259.SH 的数据\n", + "成功获取 688260.SH 的数据\n", + "成功获取 688261.SH 的数据\n", + "成功获取 688262.SH 的数据\n", + "成功获取 688265.SH 的数据\n", + "成功获取 688266.SH 的数据\n", + "成功获取 688267.SH 的数据\n", + "成功获取 688268.SH 的数据\n", + "成功获取 688269.SH 的数据\n", + "成功获取 688270.SH 的数据\n", + "成功获取 688271.SH 的数据\n", + "成功获取 688272.SH 的数据\n", + "成功获取 688273.SH 的数据\n", + "已调用300次API,等待 1.17 秒以满足速率限制...\n", + "成功获取 688275.SH 的数据\n", + "成功获取 688276.SH 的数据\n", + "成功获取 688277.SH 的数据\n", + "成功获取 688278.SH 的数据\n", + "成功获取 688279.SH 的数据\n", + "成功获取 688280.SH 的数据\n", + "成功获取 688281.SH 的数据\n", + "成功获取 688282.SH 的数据\n", + "成功获取 688283.SH 的数据\n", + "成功获取 688285.SH 的数据\n", + "成功获取 688286.SH 的数据\n", + "成功获取 688287.SH 的数据\n", + "成功获取 688288.SH 的数据\n", + "成功获取 688289.SH 的数据\n", + "成功获取 688290.SH 的数据\n", + "成功获取 688291.SH 的数据\n", + "成功获取 688292.SH 的数据\n", + "成功获取 688293.SH 的数据\n", + "成功获取 688295.SH 的数据\n", + "成功获取 688296.SH 的数据\n", + "成功获取 688297.SH 的数据\n", + "成功获取 688298.SH 的数据\n", + "成功获取 688299.SH 的数据\n", + "成功获取 688300.SH 的数据\n", + "成功获取 688301.SH 的数据\n", + "成功获取 688302.SH 的数据\n", + "成功获取 688303.SH 的数据\n", + "成功获取 688305.SH 的数据\n", + "成功获取 688306.SH 的数据\n", + "成功获取 688307.SH 的数据\n", + "成功获取 688308.SH 的数据\n", + "成功获取 688309.SH 的数据\n", + "成功获取 688310.SH 的数据\n", + "成功获取 688311.SH 的数据\n", + "成功获取 688312.SH 的数据\n", + "成功获取 688313.SH 的数据\n", + "成功获取 688314.SH 的数据\n", + "成功获取 688315.SH 的数据\n", + "成功获取 688316.SH 的数据\n", + "成功获取 688317.SH 的数据\n", + "成功获取 688318.SH 的数据\n", + "成功获取 688319.SH 的数据\n", + "成功获取 688320.SH 的数据\n", + "成功获取 688321.SH 的数据\n", + "成功获取 688322.SH 的数据\n", + "成功获取 688323.SH 的数据\n", + "成功获取 688325.SH 的数据\n", + "成功获取 688326.SH 的数据\n", + "成功获取 688327.SH 的数据\n", + "成功获取 688328.SH 的数据\n", + "成功获取 688329.SH 的数据\n", + "成功获取 688330.SH 的数据\n", + "成功获取 688331.SH 的数据\n", + "成功获取 688332.SH 的数据\n", + "成功获取 688333.SH 的数据\n", + "成功获取 688334.SH 的数据\n", + "成功获取 688335.SH 的数据\n", + "成功获取 688336.SH 的数据\n", + "成功获取 688337.SH 的数据\n", + "成功获取 688338.SH 的数据\n", + "成功获取 688339.SH 的数据\n", + "成功获取 688343.SH 的数据\n", + "成功获取 688345.SH 的数据\n", + "成功获取 688347.SH 的数据\n", + "成功获取 688348.SH 的数据\n", + "成功获取 688349.SH 的数据\n", + "成功获取 688350.SH 的数据\n", + "成功获取 688351.SH 的数据\n", + "成功获取 688352.SH 的数据\n", + "成功获取 688353.SH 的数据\n", + "成功获取 688355.SH 的数据\n", + "成功获取 688356.SH 的数据\n", + "成功获取 688357.SH 的数据\n", + "成功获取 688358.SH 的数据\n", + "成功获取 688359.SH 的数据\n", + "成功获取 688360.SH 的数据\n", + "成功获取 688361.SH 的数据\n", + "成功获取 688362.SH 的数据\n", + "成功获取 688363.SH 的数据\n", + "成功获取 688365.SH 的数据\n", + "成功获取 688366.SH 的数据\n", + "成功获取 688367.SH 的数据\n", + "成功获取 688368.SH 的数据\n", + "成功获取 688369.SH 的数据\n", + "成功获取 688370.SH 的数据\n", + "成功获取 688371.SH 的数据\n", + "成功获取 688372.SH 的数据\n", + "成功获取 688373.SH 的数据\n", + "成功获取 688375.SH 的数据\n", + "成功获取 688376.SH 的数据\n", + "成功获取 688377.SH 的数据\n", + "成功获取 688378.SH 的数据\n", + "成功获取 688379.SH 的数据\n", + "成功获取 688380.SH 的数据\n", + "成功获取 688381.SH 的数据\n", + "成功获取 688382.SH 的数据\n", + "成功获取 688383.SH 的数据\n", + "成功获取 688385.SH 的数据\n", + "成功获取 688386.SH 的数据\n", + "成功获取 688387.SH 的数据\n", + "成功获取 688388.SH 的数据\n", + "成功获取 688389.SH 的数据\n", + "成功获取 688390.SH 的数据\n", + "成功获取 688391.SH 的数据\n", + "成功获取 688392.SH 的数据\n", + "成功获取 688393.SH 的数据\n", + "成功获取 688395.SH 的数据\n", + "成功获取 688396.SH 的数据\n", + "成功获取 688398.SH 的数据\n", + "成功获取 688399.SH 的数据\n", + "成功获取 688400.SH 的数据\n", + "成功获取 688401.SH 的数据\n", + "成功获取 688403.SH 的数据\n", + "成功获取 688408.SH 的数据\n", + "成功获取 688409.SH 的数据\n", + "成功获取 688410.SH 的数据\n", + "成功获取 688411.SH 的数据\n", + "成功获取 688416.SH 的数据\n", + "成功获取 688418.SH 的数据\n", + "成功获取 688419.SH 的数据\n", + "成功获取 688420.SH 的数据\n", + "成功获取 688425.SH 的数据\n", + "成功获取 688426.SH 的数据\n", + "成功获取 688428.SH 的数据\n", + "成功获取 688429.SH 的数据\n", + "成功获取 688432.SH 的数据\n", + "成功获取 688433.SH 的数据\n", + "成功获取 688435.SH 的数据\n", + "成功获取 688439.SH 的数据\n", + "成功获取 688443.SH 的数据\n", + "成功获取 688448.SH 的数据\n", + "成功获取 688449.SH 的数据\n", + "成功获取 688450.SH 的数据\n", + "成功获取 688455.SH 的数据\n", + "成功获取 688456.SH 的数据\n", + "成功获取 688458.SH 的数据\n", + "成功获取 688459.SH 的数据\n", + "成功获取 688466.SH 的数据\n", + "成功获取 688468.SH 的数据\n", + "成功获取 688469.SH 的数据\n", + "成功获取 688472.SH 的数据\n", + "成功获取 688475.SH 的数据\n", + "成功获取 688478.SH 的数据\n", + "成功获取 688479.SH 的数据\n", + "成功获取 688480.SH 的数据\n", + "成功获取 688484.SH 的数据\n", + "成功获取 688485.SH 的数据\n", + "成功获取 688486.SH 的数据\n", + "成功获取 688488.SH 的数据\n", + "成功获取 688489.SH 的数据\n", + "成功获取 688496.SH 的数据\n", + "成功获取 688498.SH 的数据\n", + "成功获取 688499.SH 的数据\n", + "成功获取 688500.SH 的数据\n", + "成功获取 688501.SH 的数据\n", + "成功获取 688502.SH 的数据\n", + "成功获取 688503.SH 的数据\n", + "成功获取 688505.SH 的数据\n", + "成功获取 688506.SH 的数据\n", + "成功获取 688507.SH 的数据\n", + "成功获取 688508.SH 的数据\n", + "成功获取 688509.SH 的数据\n", + "成功获取 688510.SH 的数据\n", + "成功获取 688511.SH 的数据\n", + "成功获取 688512.SH 的数据\n", + "成功获取 688513.SH 的数据\n", + "成功获取 688515.SH 的数据\n", + "成功获取 688516.SH 的数据\n", + "成功获取 688517.SH 的数据\n", + "成功获取 688518.SH 的数据\n", + "成功获取 688519.SH 的数据\n", + "成功获取 688520.SH 的数据\n", + "成功获取 688521.SH 的数据\n", + "成功获取 688522.SH 的数据\n", + "成功获取 688523.SH 的数据\n", + "成功获取 688525.SH 的数据\n", + "成功获取 688526.SH 的数据\n", + "成功获取 688528.SH 的数据\n", + "成功获取 688529.SH 的数据\n", + "成功获取 688530.SH 的数据\n", + "成功获取 688531.SH 的数据\n", + "成功获取 688533.SH 的数据\n", + "成功获取 688535.SH 的数据\n", + "成功获取 688536.SH 的数据\n", + "成功获取 688538.SH 的数据\n", + "成功获取 688539.SH 的数据\n", + "成功获取 688543.SH 的数据\n", + "成功获取 688545.SH 的数据\n", + "成功获取 688548.SH 的数据\n", + "成功获取 688549.SH 的数据\n", + "成功获取 688550.SH 的数据\n", + "成功获取 688551.SH 的数据\n", + "成功获取 688552.SH 的数据\n", + "成功获取 688553.SH 的数据\n", + "成功获取 688556.SH 的数据\n", + "成功获取 688557.SH 的数据\n", + "成功获取 688558.SH 的数据\n", + "成功获取 688559.SH 的数据\n", + "成功获取 688560.SH 的数据\n", + "成功获取 688561.SH 的数据\n", + "成功获取 688562.SH 的数据\n", + "成功获取 688563.SH 的数据\n", + "成功获取 688565.SH 的数据\n", + "成功获取 688566.SH 的数据\n", + "成功获取 688567.SH 的数据\n", + "成功获取 688568.SH 的数据\n", + "成功获取 688569.SH 的数据\n", + "成功获取 688570.SH 的数据\n", + "成功获取 688571.SH 的数据\n", + "成功获取 688573.SH 的数据\n", + "成功获取 688575.SH 的数据\n", + "成功获取 688576.SH 的数据\n", + "成功获取 688577.SH 的数据\n", + "成功获取 688578.SH 的数据\n", + "成功获取 688579.SH 的数据\n", + "成功获取 688580.SH 的数据\n", + "成功获取 688581.SH 的数据\n", + "成功获取 688582.SH 的数据\n", + "成功获取 688583.SH 的数据\n", + "成功获取 688584.SH 的数据\n", + "成功获取 688585.SH 的数据\n", + "成功获取 688586.SH 的数据\n", + "成功获取 688588.SH 的数据\n", + "成功获取 688589.SH 的数据\n", + "成功获取 688590.SH 的数据\n", + "成功获取 688591.SH 的数据\n", + "成功获取 688592.SH 的数据\n", + "成功获取 688593.SH 的数据\n", + "成功获取 688595.SH 的数据\n", + "成功获取 688596.SH 的数据\n", + "成功获取 688597.SH 的数据\n", + "成功获取 688598.SH 的数据\n", + "成功获取 688599.SH 的数据\n", + "成功获取 688600.SH 的数据\n", + "成功获取 688601.SH 的数据\n", + "成功获取 688602.SH 的数据\n", + "成功获取 688603.SH 的数据\n", + "成功获取 688605.SH 的数据\n", + "成功获取 688606.SH 的数据\n", + "成功获取 688607.SH 的数据\n", + "成功获取 688608.SH 的数据\n", + "成功获取 688609.SH 的数据\n", + "成功获取 688610.SH 的数据\n", + "成功获取 688611.SH 的数据\n", + "成功获取 688612.SH 的数据\n", + "成功获取 688613.SH 的数据\n", + "成功获取 688615.SH 的数据\n", + "成功获取 688616.SH 的数据\n", + "成功获取 688617.SH 的数据\n", + "成功获取 688618.SH 的数据\n", + "成功获取 688619.SH 的数据\n", + "成功获取 688620.SH 的数据\n", + "成功获取 688621.SH 的数据\n", + "成功获取 688622.SH 的数据\n", + "成功获取 688623.SH 的数据\n", + "成功获取 688625.SH 的数据\n", + "成功获取 688626.SH 的数据\n", + "成功获取 688627.SH 的数据\n", + "成功获取 688628.SH 的数据\n", + "成功获取 688629.SH 的数据\n", + "成功获取 688630.SH 的数据\n", + "成功获取 688631.SH 的数据\n", + "成功获取 688633.SH 的数据\n", + "成功获取 688636.SH 的数据\n", + "成功获取 688638.SH 的数据\n", + "成功获取 688639.SH 的数据\n", + "成功获取 688646.SH 的数据\n", + "成功获取 688648.SH 的数据\n", + "成功获取 688651.SH 的数据\n", + "成功获取 688652.SH 的数据\n", + "成功获取 688653.SH 的数据\n", + "成功获取 688655.SH 的数据\n", + "成功获取 688656.SH 的数据\n", + "成功获取 688657.SH 的数据\n", + "成功获取 688658.SH 的数据\n", + "成功获取 688659.SH 的数据\n", + "成功获取 688660.SH 的数据\n", + "成功获取 688661.SH 的数据\n", + "成功获取 688662.SH 的数据\n", + "成功获取 688663.SH 的数据\n", + "成功获取 688665.SH 的数据\n", + "成功获取 688667.SH 的数据\n", + "成功获取 688668.SH 的数据\n", + "成功获取 688669.SH 的数据\n", + "成功获取 688670.SH 的数据\n", + "成功获取 688671.SH 的数据\n", + "成功获取 688676.SH 的数据\n", + "成功获取 688677.SH 的数据\n", + "成功获取 688678.SH 的数据\n", + "成功获取 688679.SH 的数据\n", + "成功获取 688680.SH 的数据\n", + "成功获取 688681.SH 的数据\n", + "成功获取 688682.SH 的数据\n", + "成功获取 688683.SH 的数据\n", + "成功获取 688685.SH 的数据\n", + "成功获取 688686.SH 的数据\n", + "成功获取 688687.SH 的数据\n", + "成功获取 688689.SH 的数据\n", + "成功获取 688690.SH 的数据\n", + "成功获取 688691.SH 的数据\n", + "已调用300次API,等待 0.58 秒以满足速率限制...\n", + "成功获取 688692.SH 的数据\n", + "成功获取 688693.SH 的数据\n", + "成功获取 688695.SH 的数据\n", + "成功获取 688696.SH 的数据\n", + "成功获取 688697.SH 的数据\n", + "成功获取 688698.SH 的数据\n", + "成功获取 688699.SH 的数据\n", + "成功获取 688700.SH 的数据\n", + "成功获取 688701.SH 的数据\n", + "成功获取 688702.SH 的数据\n", + "成功获取 688707.SH 的数据\n", + "成功获取 688708.SH 的数据\n", + "成功获取 688709.SH 的数据\n", + "成功获取 688710.SH 的数据\n", + "成功获取 688711.SH 的数据\n", + "成功获取 688716.SH 的数据\n", + "成功获取 688717.SH 的数据\n", + "成功获取 688718.SH 的数据\n", + "成功获取 688719.SH 的数据\n", + "成功获取 688720.SH 的数据\n", + "成功获取 688721.SH 的数据\n", + "成功获取 688722.SH 的数据\n", + "成功获取 688726.SH 的数据\n", + "成功获取 688728.SH 的数据\n", + "成功获取 688733.SH 的数据\n", + "成功获取 688737.SH 的数据\n", + "成功获取 688739.SH 的数据\n", + "成功获取 688750.SH 的数据\n", + "成功获取 688758.SH 的数据\n", + "成功获取 688766.SH 的数据\n", + "成功获取 688767.SH 的数据\n", + "成功获取 688768.SH 的数据\n", + "成功获取 688772.SH 的数据\n", + "成功获取 688776.SH 的数据\n", + "成功获取 688777.SH 的数据\n", + "成功获取 688778.SH 的数据\n", + "成功获取 688779.SH 的数据\n", + "成功获取 688786.SH 的数据\n", + "成功获取 688787.SH 的数据\n", + "成功获取 688788.SH 的数据\n", + "成功获取 688789.SH 的数据\n", + "成功获取 688793.SH 的数据\n", + "成功获取 688798.SH 的数据\n", + "成功获取 688799.SH 的数据\n", + "成功获取 688800.SH 的数据\n", + "成功获取 688819.SH 的数据\n", + "成功获取 688981.SH 的数据\n", + "成功获取 830779.BJ 的数据\n", + "成功获取 830799.BJ 的数据\n", + "成功获取 830809.BJ 的数据\n", + "成功获取 830832.BJ 的数据\n", + "成功获取 830839.BJ 的数据\n", + "成功获取 830879.BJ 的数据\n", + "成功获取 830896.BJ 的数据\n", + "成功获取 830946.BJ 的数据\n", + "成功获取 830964.BJ 的数据\n", + "成功获取 830974.BJ 的数据\n", + "成功获取 831010.BJ 的数据\n", + "成功获取 831039.BJ 的数据\n", + "成功获取 831087.BJ 的数据\n", + "成功获取 831152.BJ 的数据\n", + "成功获取 831167.BJ 的数据\n", + "成功获取 831175.BJ 的数据\n", + "成功获取 831195.BJ 的数据\n", + "成功获取 831278.BJ 的数据\n", + "成功获取 831304.BJ 的数据\n", + "成功获取 831305.BJ 的数据\n", + "成功获取 831370.BJ 的数据\n", + "成功获取 831396.BJ 的数据\n", + "成功获取 831445.BJ 的数据\n", + "成功获取 831526.BJ 的数据\n", + "成功获取 831627.BJ 的数据\n", + "成功获取 831641.BJ 的数据\n", + "成功获取 831689.BJ 的数据\n", + "成功获取 831726.BJ 的数据\n", + "成功获取 831768.BJ 的数据\n", + "成功获取 831832.BJ 的数据\n", + "成功获取 831834.BJ 的数据\n", + "成功获取 831855.BJ 的数据\n", + "成功获取 831856.BJ 的数据\n", + "成功获取 831906.BJ 的数据\n", + "成功获取 831961.BJ 的数据\n", + "成功获取 832000.BJ 的数据\n", + "成功获取 832023.BJ 的数据\n", + "成功获取 832089.BJ 的数据\n", + "成功获取 832110.BJ 的数据\n", + "成功获取 832145.BJ 的数据\n", + "成功获取 832149.BJ 的数据\n", + "成功获取 832171.BJ 的数据\n", + "成功获取 832175.BJ 的数据\n", + "成功获取 832225.BJ 的数据\n", + "成功获取 832278.BJ 的数据\n", + "成功获取 832419.BJ 的数据\n", + "成功获取 832469.BJ 的数据\n", + "成功获取 832471.BJ 的数据\n", + "成功获取 832491.BJ 的数据\n", + "成功获取 832522.BJ 的数据\n", + "成功获取 832566.BJ 的数据\n", + "成功获取 832651.BJ 的数据\n", + "成功获取 832662.BJ 的数据\n", + "成功获取 832735.BJ 的数据\n", + "成功获取 832786.BJ 的数据\n", + "成功获取 832802.BJ 的数据\n", + "成功获取 832876.BJ 的数据\n", + "成功获取 832885.BJ 的数据\n", + "成功获取 832978.BJ 的数据\n", + "成功获取 832982.BJ 的数据\n", + "成功获取 833030.BJ 的数据\n", + "成功获取 833075.BJ 的数据\n", + "成功获取 833171.BJ 的数据\n", + "成功获取 833230.BJ 的数据\n", + "成功获取 833266.BJ 的数据\n", + "成功获取 833284.BJ 的数据\n", + "成功获取 833346.BJ 的数据\n", + "成功获取 833394.BJ 的数据\n", + "成功获取 833427.BJ 的数据\n", + "成功获取 833429.BJ 的数据\n", + "成功获取 833454.BJ 的数据\n", + "成功获取 833455.BJ 的数据\n", + "成功获取 833509.BJ 的数据\n", + "成功获取 833523.BJ 的数据\n", + "成功获取 833533.BJ 的数据\n", + "成功获取 833575.BJ 的数据\n", + "成功获取 833580.BJ 的数据\n", + "成功获取 833751.BJ 的数据\n", + "成功获取 833781.BJ 的数据\n", + "成功获取 833819.BJ 的数据\n", + "成功获取 833873.BJ 的数据\n", + "成功获取 833914.BJ 的数据\n", + "成功获取 833943.BJ 的数据\n", + "成功获取 834014.BJ 的数据\n", + "成功获取 834021.BJ 的数据\n", + "成功获取 834033.BJ 的数据\n", + "成功获取 834058.BJ 的数据\n", + "成功获取 834062.BJ 的数据\n", + "成功获取 834261.BJ 的数据\n", + "成功获取 834407.BJ 的数据\n", + "成功获取 834415.BJ 的数据\n", + "成功获取 834475.BJ 的数据\n", + "成功获取 834599.BJ 的数据\n", + "成功获取 834639.BJ 的数据\n", + "成功获取 834682.BJ 的数据\n", + "成功获取 834765.BJ 的数据\n", + "成功获取 834770.BJ 的数据\n", + "成功获取 834950.BJ 的数据\n", + "成功获取 835174.BJ 的数据\n", + "成功获取 835179.BJ 的数据\n", + "成功获取 835184.BJ 的数据\n", + "成功获取 835185.BJ 的数据\n", + "成功获取 835207.BJ 的数据\n", + "成功获取 835237.BJ 的数据\n", + "成功获取 835305.BJ 的数据\n", + "成功获取 835368.BJ 的数据\n", + "成功获取 835438.BJ 的数据\n", + "成功获取 835508.BJ 的数据\n", + "成功获取 835579.BJ 的数据\n", + "成功获取 835640.BJ 的数据\n", + "成功获取 835670.BJ 的数据\n", + "成功获取 835857.BJ 的数据\n", + "成功获取 835892.BJ 的数据\n", + "成功获取 835985.BJ 的数据\n", + "成功获取 836077.BJ 的数据\n", + "成功获取 836149.BJ 的数据\n", + "成功获取 836208.BJ 的数据\n", + "成功获取 836221.BJ 的数据\n", + "成功获取 836239.BJ 的数据\n", + "成功获取 836247.BJ 的数据\n", + "成功获取 836260.BJ 的数据\n", + "成功获取 836263.BJ 的数据\n", + "成功获取 836270.BJ 的数据\n", + "成功获取 836395.BJ 的数据\n", + "成功获取 836414.BJ 的数据\n", + "成功获取 836419.BJ 的数据\n", + "成功获取 836422.BJ 的数据\n", + "成功获取 836433.BJ 的数据\n", + "成功获取 836504.BJ 的数据\n", + "成功获取 836547.BJ 的数据\n", + "成功获取 836675.BJ 的数据\n", + "成功获取 836699.BJ 的数据\n", + "成功获取 836717.BJ 的数据\n", + "成功获取 836720.BJ 的数据\n", + "成功获取 836807.BJ 的数据\n", + "成功获取 836826.BJ 的数据\n", + "成功获取 836871.BJ 的数据\n", + "成功获取 836892.BJ 的数据\n", + "成功获取 836942.BJ 的数据\n", + "成功获取 836957.BJ 的数据\n", + "成功获取 836961.BJ 的数据\n", + "成功获取 837006.BJ 的数据\n", + "成功获取 837023.BJ 的数据\n", + "成功获取 837046.BJ 的数据\n", + "成功获取 837092.BJ 的数据\n", + "成功获取 837174.BJ 的数据\n", + "成功获取 837212.BJ 的数据\n", + "成功获取 837242.BJ 的数据\n", + "成功获取 837344.BJ 的数据\n", + "成功获取 837403.BJ 的数据\n", + "成功获取 837592.BJ 的数据\n", + "成功获取 837663.BJ 的数据\n", + "成功获取 837748.BJ 的数据\n", + "成功获取 837821.BJ 的数据\n", + "成功获取 838030.BJ 的数据\n", + "成功获取 838163.BJ 的数据\n", + "成功获取 838171.BJ 的数据\n", + "成功获取 838227.BJ 的数据\n", + "成功获取 838262.BJ 的数据\n", + "成功获取 838275.BJ 的数据\n", + "成功获取 838402.BJ 的数据\n", + "成功获取 838670.BJ 的数据\n", + "成功获取 838701.BJ 的数据\n", + "成功获取 838810.BJ 的数据\n", + "成功获取 838837.BJ 的数据\n", + "成功获取 838924.BJ 的数据\n", + "成功获取 838971.BJ 的数据\n", + "成功获取 839167.BJ 的数据\n", + "成功获取 839273.BJ 的数据\n", + "成功获取 839371.BJ 的数据\n", + "成功获取 839493.BJ 的数据\n", + "成功获取 839680.BJ 的数据\n", + "成功获取 839719.BJ 的数据\n", + "成功获取 839725.BJ 的数据\n", + "成功获取 839729.BJ 的数据\n", + "成功获取 839790.BJ 的数据\n", + "成功获取 839792.BJ 的数据\n", + "成功获取 839946.BJ 的数据\n", + "成功获取 870199.BJ 的数据\n", + "成功获取 870204.BJ 的数据\n", + "成功获取 870299.BJ 的数据\n", + "成功获取 870357.BJ 的数据\n", + "成功获取 870436.BJ 的数据\n", + "成功获取 870508.BJ 的数据\n", + "成功获取 870656.BJ 的数据\n", + "成功获取 870726.BJ 的数据\n", + "成功获取 870866.BJ 的数据\n", + "成功获取 870976.BJ 的数据\n", + "成功获取 871245.BJ 的数据\n", + "成功获取 871263.BJ 的数据\n", + "成功获取 871396.BJ 的数据\n", + "成功获取 871478.BJ 的数据\n", + "成功获取 871553.BJ 的数据\n", + "成功获取 871634.BJ 的数据\n", + "成功获取 871642.BJ 的数据\n", + "成功获取 871694.BJ 的数据\n", + "成功获取 871753.BJ 的数据\n", + "成功获取 871857.BJ 的数据\n", + "成功获取 871970.BJ 的数据\n", + "成功获取 871981.BJ 的数据\n", + "成功获取 872190.BJ 的数据\n", + "成功获取 872351.BJ 的数据\n", + "成功获取 872374.BJ 的数据\n", + "成功获取 872392.BJ 的数据\n", + "成功获取 872541.BJ 的数据\n", + "成功获取 872808.BJ 的数据\n", + "成功获取 872895.BJ 的数据\n", + "成功获取 872925.BJ 的数据\n", + "成功获取 872931.BJ 的数据\n", + "成功获取 872953.BJ 的数据\n", + "成功获取 873001.BJ 的数据\n", + "成功获取 873122.BJ 的数据\n", + "成功获取 873132.BJ 的数据\n", + "成功获取 873152.BJ 的数据\n", + "成功获取 873167.BJ 的数据\n", + "成功获取 873169.BJ 的数据\n", + "成功获取 873223.BJ 的数据\n", + "成功获取 873305.BJ 的数据\n", + "成功获取 873339.BJ 的数据\n", + "成功获取 873527.BJ 的数据\n", + "成功获取 873570.BJ 的数据\n", + "成功获取 873576.BJ 的数据\n", + "成功获取 873593.BJ 的数据\n", + "成功获取 873665.BJ 的数据\n", + "成功获取 873679.BJ 的数据\n", + "成功获取 873690.BJ 的数据\n", + "成功获取 873693.BJ 的数据\n", + "成功获取 873703.BJ 的数据\n", + "成功获取 873706.BJ 的数据\n", + "成功获取 873726.BJ 的数据\n", + "成功获取 873806.BJ 的数据\n", + "成功获取 873833.BJ 的数据\n", + "成功获取 920002.BJ 的数据\n", + "成功获取 920008.BJ 的数据\n", + "成功获取 920016.BJ 的数据\n", + "成功获取 920019.BJ 的数据\n", + "成功获取 920060.BJ 的数据\n", + "成功获取 920066.BJ 的数据\n", + "成功获取 920082.BJ 的数据\n", + "成功获取 920088.BJ 的数据\n", + "成功获取 920098.BJ 的数据\n", + "成功获取 920099.BJ 的数据\n", + "成功获取 920106.BJ 的数据\n", + "成功获取 920108.BJ 的数据\n", + "成功获取 920111.BJ 的数据\n", + "成功获取 920116.BJ 的数据\n", + "成功获取 920118.BJ 的数据\n", + "成功获取 920128.BJ 的数据\n", + "成功获取 689009.SH 的数据\n", + "成功获取 000003.SZ 的数据\n", + "成功获取 000005.SZ 的数据\n", + "成功获取 000013.SZ 的数据\n", + "成功获取 000015.SZ 的数据\n", + "成功获取 000018.SZ 的数据\n", + "成功获取 000023.SZ 的数据\n", + "成功获取 000024.SZ 的数据\n", + "成功获取 000033.SZ 的数据\n", + "成功获取 000038.SZ 的数据\n", + "成功获取 000046.SZ 的数据\n", + "成功获取 000047.SZ 的数据\n", + "成功获取 000150.SZ 的数据\n", + "成功获取 000405.SZ 的数据\n", + "成功获取 000406.SZ 的数据\n", + "成功获取 000412.SZ 的数据\n", + "成功获取 000413.SZ 的数据\n", + "成功获取 000416.SZ 的数据\n", + "成功获取 000418.SZ 的数据\n", + "成功获取 000502.SZ 的数据\n", + "成功获取 000508.SZ 的数据\n", + "成功获取 000511.SZ 的数据\n", + "成功获取 000515.SZ 的数据\n", + "成功获取 000522.SZ 的数据\n", + "成功获取 000527.SZ 的数据\n", + "成功获取 000535.SZ 的数据\n", + "成功获取 000540.SZ 的数据\n", + "成功获取 000542.SZ 的数据\n", + "成功获取 000549.SZ 的数据\n", + "成功获取 000556.SZ 的数据\n", + "成功获取 000562.SZ 的数据\n", + "成功获取 000569.SZ 的数据\n", + "成功获取 000578.SZ 的数据\n", + "成功获取 000583.SZ 的数据\n", + "成功获取 000585.SZ 的数据\n", + "成功获取 000587.SZ 的数据\n", + "成功获取 000588.SZ 的数据\n", + "成功获取 000594.SZ 的数据\n", + "成功获取 000602.SZ 的数据\n", + "成功获取 000606.SZ 的数据\n", + "成功获取 000611.SZ 的数据\n", + "成功获取 000613.SZ 的数据\n", + "成功获取 000616.SZ 的数据\n", + "成功获取 000618.SZ 的数据\n", + "成功获取 000621.SZ 的数据\n", + "成功获取 000653.SZ 的数据\n", + "成功获取 000658.SZ 的数据\n", + "成功获取 000660.SZ 的数据\n", + "成功获取 000662.SZ 的数据\n", + "成功获取 000666.SZ 的数据\n", + "成功获取 000667.SZ 的数据\n", + "成功获取 000671.SZ 的数据\n", + "成功获取 000673.SZ 的数据\n", + "成功获取 000675.SZ 的数据\n", + "成功获取 000687.SZ 的数据\n", + "成功获取 000689.SZ 的数据\n", + "成功获取 000693.SZ 的数据\n", + "成功获取 000699.SZ 的数据\n", + "成功获取 000730.SZ 的数据\n", + "成功获取 000732.SZ 的数据\n", + "成功获取 000748.SZ 的数据\n", + "成功获取 000760.SZ 的数据\n", + "成功获取 000763.SZ 的数据\n", + "成功获取 000765.SZ 的数据\n", + "成功获取 000769.SZ 的数据\n", + "成功获取 000780.SZ 的数据\n", + "成功获取 000787.SZ 的数据\n", + "成功获取 000805.SZ 的数据\n", + "成功获取 000806.SZ 的数据\n", + "成功获取 000817.SZ 的数据\n", + "成功获取 000827.SZ 的数据\n", + "成功获取 000832.SZ 的数据\n", + "成功获取 000835.SZ 的数据\n", + "成功获取 000836.SZ 的数据\n", + "成功获取 000861.SZ 的数据\n", + "成功获取 000866.SZ 的数据\n", + "成功获取 000916.SZ 的数据\n", + "成功获取 000918.SZ 的数据\n", + "成功获取 000939.SZ 的数据\n", + "成功获取 000956.SZ 的数据\n", + "成功获取 000961.SZ 的数据\n", + "成功获取 000971.SZ 的数据\n", + "成功获取 000976.SZ 的数据\n", + "成功获取 000979.SZ 的数据\n", + "成功获取 000982.SZ 的数据\n", + "成功获取 000996.SZ 的数据\n", + "成功获取 002002.SZ 的数据\n", + "成功获取 002013.SZ 的数据\n", + "成功获取 002018.SZ 的数据\n", + "成功获取 002070.SZ 的数据\n", + "成功获取 002071.SZ 的数据\n", + "成功获取 002087.SZ 的数据\n", + "成功获取 002089.SZ 的数据\n", + "成功获取 002113.SZ 的数据\n", + "成功获取 002118.SZ 的数据\n", + "成功获取 002143.SZ 的数据\n", + "成功获取 002147.SZ 的数据\n", + "成功获取 002220.SZ 的数据\n", + "成功获取 002260.SZ 的数据\n", + "成功获取 002280.SZ 的数据\n", + "成功获取 002288.SZ 的数据\n", + "成功获取 002308.SZ 的数据\n", + "成功获取 002325.SZ 的数据\n", + "成功获取 002341.SZ 的数据\n", + "成功获取 002359.SZ 的数据\n", + "成功获取 002411.SZ 的数据\n", + "成功获取 002417.SZ 的数据\n", + "成功获取 002433.SZ 的数据\n", + "成功获取 002435.SZ 的数据\n", + "成功获取 002447.SZ 的数据\n", + "成功获取 002450.SZ 的数据\n", + "成功获取 002464.SZ 的数据\n", + "成功获取 002473.SZ 的数据\n", + "成功获取 002477.SZ 的数据\n", + "成功获取 002499.SZ 的数据\n", + "成功获取 002502.SZ 的数据\n", + "成功获取 002503.SZ 的数据\n", + "成功获取 002504.SZ 的数据\n", + "成功获取 002505.SZ 的数据\n", + "成功获取 002509.SZ 的数据\n", + "成功获取 002604.SZ 的数据\n", + "成功获取 002610.SZ 的数据\n", + "成功获取 002618.SZ 的数据\n", + "成功获取 002619.SZ 的数据\n", + "成功获取 002621.SZ 的数据\n", + "成功获取 002665.SZ 的数据\n", + "成功获取 002680.SZ 的数据\n", + "成功获取 002684.SZ 的数据\n", + "成功获取 002699.SZ 的数据\n", + "成功获取 002711.SZ 的数据\n", + "成功获取 002740.SZ 的数据\n", + "成功获取 002751.SZ 的数据\n", + "成功获取 002770.SZ 的数据\n", + "成功获取 002776.SZ 的数据\n", + "成功获取 002781.SZ 的数据\n", + "成功获取 300023.SZ 的数据\n", + "成功获取 300028.SZ 的数据\n", + "成功获取 300038.SZ 的数据\n", + "成功获取 300064.SZ 的数据\n", + "成功获取 300089.SZ 的数据\n", + "成功获取 300090.SZ 的数据\n", + "成功获取 300104.SZ 的数据\n", + "成功获取 300116.SZ 的数据\n", + "成功获取 300156.SZ 的数据\n", + "成功获取 300178.SZ 的数据\n", + "成功获取 300186.SZ 的数据\n", + "成功获取 300202.SZ 的数据\n", + "成功获取 300216.SZ 的数据\n", + "成功获取 300262.SZ 的数据\n", + "成功获取 300273.SZ 的数据\n", + "成功获取 300282.SZ 的数据\n", + "成功获取 300297.SZ 的数据\n", + "成功获取 300309.SZ 的数据\n", + "成功获取 300312.SZ 的数据\n", + "成功获取 300325.SZ 的数据\n", + "成功获取 300330.SZ 的数据\n", + "成功获取 300336.SZ 的数据\n", + "成功获取 300356.SZ 的数据\n", + "成功获取 300362.SZ 的数据\n", + "成功获取 300367.SZ 的数据\n", + "成功获取 300372.SZ 的数据\n", + "成功获取 300392.SZ 的数据\n", + "成功获取 300431.SZ 的数据\n", + "成功获取 300495.SZ 的数据\n", + "成功获取 300526.SZ 的数据\n", + "成功获取 300742.SZ 的数据\n", + "成功获取 300799.SZ 的数据\n", + "成功获取 600001.SH 的数据\n", + "成功获取 600002.SH 的数据\n", + "成功获取 600003.SH 的数据\n", + "成功获取 600005.SH 的数据\n", + "成功获取 600065.SH 的数据\n", + "成功获取 600068.SH 的数据\n", + "成功获取 600069.SH 的数据\n", + "成功获取 600074.SH 的数据\n", + "成功获取 600077.SH 的数据\n", + "成功获取 600086.SH 的数据\n", + "成功获取 600087.SH 的数据\n", + "成功获取 600090.SH 的数据\n", + "成功获取 600091.SH 的数据\n", + "成功获取 600092.SH 的数据\n", + "成功获取 600093.SH 的数据\n", + "成功获取 600102.SH 的数据\n", + "成功获取 600112.SH 的数据\n", + "成功获取 600122.SH 的数据\n", + "成功获取 600139.SH 的数据\n", + "成功获取 600145.SH 的数据\n", + "成功获取 600146.SH 的数据\n", + "成功获取 600175.SH 的数据\n", + "成功获取 600181.SH 的数据\n", + "成功获取 600205.SH 的数据\n", + "成功获取 600209.SH 的数据\n", + "成功获取 600213.SH 的数据\n", + "成功获取 600220.SH 的数据\n", + "成功获取 600240.SH 的数据\n", + "成功获取 600242.SH 的数据\n", + "成功获取 600247.SH 的数据\n", + "成功获取 600253.SH 的数据\n", + "成功获取 600260.SH 的数据\n", + "成功获取 600263.SH 的数据\n", + "成功获取 600270.SH 的数据\n", + "成功获取 600275.SH 的数据\n", + "成功获取 600277.SH 的数据\n", + "成功获取 600286.SH 的数据\n", + "成功获取 600290.SH 的数据\n", + "成功获取 600291.SH 的数据\n", + "成功获取 600296.SH 的数据\n", + "成功获取 600297.SH 的数据\n", + "成功获取 600306.SH 的数据\n", + "成功获取 600311.SH 的数据\n", + "成功获取 600317.SH 的数据\n", + "成功获取 600321.SH 的数据\n", + "成功获取 600357.SH 的数据\n", + "成功获取 600385.SH 的数据\n", + "成功获取 600393.SH 的数据\n", + "成功获取 600401.SH 的数据\n", + "成功获取 600432.SH 的数据\n", + "成功获取 600466.SH 的数据\n", + "成功获取 600472.SH 的数据\n", + "成功获取 600485.SH 的数据\n", + "成功获取 600532.SH 的数据\n", + "成功获取 600553.SH 的数据\n", + "成功获取 600555.SH 的数据\n", + "成功获取 600565.SH 的数据\n", + "成功获取 600591.SH 的数据\n", + "成功获取 600607.SH 的数据\n", + "成功获取 600614.SH 的数据\n", + "成功获取 600625.SH 的数据\n", + "成功获取 600627.SH 的数据\n", + "成功获取 600631.SH 的数据\n", + "成功获取 600632.SH 的数据\n", + "成功获取 600634.SH 的数据\n", + "成功获取 600646.SH 的数据\n", + "成功获取 600647.SH 的数据\n", + "成功获取 600652.SH 的数据\n", + "成功获取 600656.SH 的数据\n", + "成功获取 600659.SH 的数据\n", + "成功获取 600669.SH 的数据\n", + "成功获取 600670.SH 的数据\n", + "成功获取 600672.SH 的数据\n", + "成功获取 600677.SH 的数据\n", + "成功获取 600680.SH 的数据\n", + "成功获取 600687.SH 的数据\n", + "成功获取 600695.SH 的数据\n", + "成功获取 600700.SH 的数据\n", + "成功获取 600701.SH 的数据\n", + "成功获取 600709.SH 的数据\n", + "成功获取 600723.SH 的数据\n", + "成功获取 600747.SH 的数据\n", + "成功获取 600752.SH 的数据\n", + "成功获取 600762.SH 的数据\n", + "成功获取 600766.SH 的数据\n", + "成功获取 600767.SH 的数据\n", + "成功获取 600772.SH 的数据\n", + "成功获取 600781.SH 的数据\n", + "成功获取 600786.SH 的数据\n", + "成功获取 600788.SH 的数据\n", + "成功获取 600799.SH 的数据\n", + "成功获取 600806.SH 的数据\n", + "成功获取 600813.SH 的数据\n", + "成功获取 600823.SH 的数据\n", + "成功获取 600832.SH 的数据\n", + "成功获取 600836.SH 的数据\n", + "成功获取 600840.SH 的数据\n", + "成功获取 600842.SH 的数据\n", + "成功获取 600852.SH 的数据\n", + "成功获取 600856.SH 的数据\n", + "成功获取 600870.SH 的数据\n", + "成功获取 600878.SH 的数据\n", + "成功获取 600890.SH 的数据\n", + "成功获取 600891.SH 的数据\n", + "成功获取 600896.SH 的数据\n", + "成功获取 600899.SH 的数据\n", + "成功获取 600978.SH 的数据\n", + "成功获取 600991.SH 的数据\n", + "成功获取 601258.SH 的数据\n", + "成功获取 601268.SH 的数据\n", + "成功获取 601299.SH 的数据\n", + "成功获取 601558.SH 的数据\n", + "成功获取 603133.SH 的数据\n", + "成功获取 603157.SH 的数据\n", + "成功获取 603555.SH 的数据\n", + "成功获取 603603.SH 的数据\n", + "成功获取 603996.SH 的数据\n", + "成功获取 688086.SH 的数据\n", + "成功获取 688555.SH 的数据\n", + "成功获取 832317.BJ 的数据\n", + "成功获取 833874.BJ 的数据\n", + "成功获取 833994.BJ 的数据\n", + "成功获取 T00018.SH 的数据\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\liaozhaorun\\AppData\\Local\\Temp\\ipykernel_16220\\823660297.py:40: FutureWarning: The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.\n", + " all_fina_indicator = pd.concat(cashflow_list, ignore_index=True)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "所有日线数据已保存到 cashflow.h5\n" + ] + } + ], + "source": [ + "\n", + "\n", + "# 读取本地保存的股票列表 CSV 文件(假设文件名为 stocks_data.csv)\n", + "stocks_df = pd.read_csv('../../stocks_list.csv', encoding='utf-8-sig')\n", + "\n", + "# 用于存放所有股票的日线数据(每次获取的 DataFrame)\n", + "cashflow_list = []\n", + "\n", + "# API 调用计数和时间控制变量\n", + "api_call_count = 0\n", + "batch_start_time = time.time()\n", + "\n", + "# 循环遍历每个股票代码并获取数据\n", + "for idx, row in stocks_df.iterrows():\n", + " ts_code = row['ts_code'] # 假设股票代码列名为 ts_code\n", + " try:\n", + " # 调用 tushare 接口获取该股票自 2017 年以来的日线数据\n", + " cashflow = pro.cashflow(ts_code=ts_code)\n", + " # 如果返回数据不为空,则添加一列标识股票代码\n", + " if not cashflow.empty:\n", + " cashflow['ts_code'] = ts_code\n", + " cashflow_list.append(cashflow)\n", + " print(f\"成功获取 {ts_code} 的数据\")\n", + " except Exception as e:\n", + " print(f\"获取 {ts_code} 数据时出错: {e}\")\n", + "\n", + " # 计数一次 API 调用\n", + " api_call_count += 1\n", + "\n", + " # 每调用300次,检查时间是否少于1分钟,如果少于则等待剩余时间\n", + " if api_call_count % 300 == 0:\n", + " elapsed = time.time() - batch_start_time\n", + " if elapsed < 60:\n", + " sleep_time = 60 - elapsed\n", + " print(f\"已调用300次API,等待 {sleep_time:.2f} 秒以满足速率限制...\")\n", + " time.sleep(sleep_time)\n", + " # 重置批次起始时间\n", + " batch_start_time = time.time()\n", + "\n", + "# 合并所有获取到的日线数据\n", + "if cashflow_list:\n", + " all_cashflow = pd.concat(cashflow_list, ignore_index=True)\n", + " all_cashflow.to_hdf('../../data/cashflow.h5', key='cashflow', mode='w', format='table')\n", + " print(\"所有日线数据已保存到 cashflow.h5\")\n", + "else:\n", + " print(\"未获取到任何日线数据。\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "85bdf760cb83fbd3", + "metadata": { + "ExecuteTime": { + "end_time": "2025-02-10T15:47:42.761559200Z", + "start_time": "2025-02-07T16:24:09.366158Z" + } + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\liaozhaorun\\AppData\\Local\\Temp\\ipykernel_27304\\2498023504.py:3: FutureWarning: The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.\n", + " all_fina_indicator = pd.concat(fina_indicator_list, ignore_index=True)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "所有日线数据已保存到 fina_indicator.h5\n" + ] + } + ], + "source": [ + "\n", + "\n", + "# 读取本地保存的股票列表 CSV 文件(假设文件名为 stocks_data.csv)\n", + "stocks_df = pd.read_csv('../../stocks_list.csv', encoding='utf-8-sig')\n", + "\n", + "# 用于存放所有股票的日线数据(每次获取的 DataFrame)\n", + "fina_indicator_list = []\n", + "\n", + "# API 调用计数和时间控制变量\n", + "api_call_count = 0\n", + "batch_start_time = time.time()\n", + "\n", + "# 循环遍历每个股票代码并获取数据\n", + "for idx, row in stocks_df.iterrows():\n", + " ts_code = row['ts_code'] # 假设股票代码列名为 ts_code\n", + " try:\n", + " # 调用 tushare 接口获取该股票自 2017 年以来的日线数据\n", + " fina_indicator = pro.fina_indicator(ts_code=ts_code)\n", + " # 如果返回数据不为空,则添加一列标识股票代码\n", + " if not fina_indicator.empty:\n", + " fina_indicator['ts_code'] = ts_code\n", + " fina_indicator_list.append(fina_indicator)\n", + " print(f\"成功获取 {ts_code} 的数据\")\n", + " except Exception as e:\n", + " print(f\"获取 {ts_code} 数据时出错: {e}\")\n", + "\n", + " # 计数一次 API 调用\n", + " api_call_count += 1\n", + "\n", + " # 每调用300次,检查时间是否少于1分钟,如果少于则等待剩余时间\n", + " if api_call_count % 300 == 0:\n", + " elapsed = time.time() - batch_start_time\n", + " if elapsed < 60:\n", + " sleep_time = 60 - elapsed\n", + " print(f\"已调用300次API,等待 {sleep_time:.2f} 秒以满足速率限制...\")\n", + " time.sleep(sleep_time)\n", + " # 重置批次起始时间\n", + " batch_start_time = time.time()\n", + "\n", + "# 合并所有获取到的日线数据\n", + "if fina_indicator_list:\n", + " all_fina_indicator = pd.concat(fina_indicator_list, ignore_index=True)\n", + " all_fina_indicator.to_hdf('../../data/fina_indicator.h5', key='fina_indicator', mode='w', format='table')\n", + " print(\"所有日线数据已保存到 fina_indicator.h5\")\n", + "else:\n", + " print(\"未获取到任何日线数据。\")" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "83403f50", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "成功获取 000001.SZ 的数据\n", + "成功获取 000002.SZ 的数据\n", + "成功获取 000004.SZ 的数据\n", + "成功获取 000006.SZ 的数据\n", + "成功获取 000007.SZ 的数据\n", + "成功获取 000008.SZ 的数据\n", + "成功获取 000009.SZ 的数据\n", + "成功获取 000010.SZ 的数据\n", + "成功获取 000011.SZ 的数据\n", + "成功获取 000012.SZ 的数据\n", + "成功获取 000014.SZ 的数据\n", + "成功获取 000016.SZ 的数据\n", + "成功获取 000017.SZ 的数据\n", + "成功获取 000019.SZ 的数据\n", + "成功获取 000020.SZ 的数据\n", + "成功获取 000021.SZ 的数据\n", + "成功获取 000025.SZ 的数据\n", + "成功获取 000026.SZ 的数据\n", + "成功获取 000027.SZ 的数据\n", + "成功获取 000028.SZ 的数据\n", + "成功获取 000029.SZ 的数据\n", + "成功获取 000030.SZ 的数据\n", + "成功获取 000031.SZ 的数据\n", + "成功获取 000032.SZ 的数据\n", + "成功获取 000034.SZ 的数据\n", + "成功获取 000035.SZ 的数据\n", + "成功获取 000036.SZ 的数据\n", + "成功获取 000037.SZ 的数据\n", + "成功获取 000039.SZ 的数据\n", + "成功获取 000040.SZ 的数据\n", + "成功获取 000042.SZ 的数据\n", + "成功获取 000045.SZ 的数据\n", + "成功获取 000048.SZ 的数据\n", + "成功获取 000049.SZ 的数据\n", + "成功获取 000050.SZ 的数据\n", + "成功获取 000055.SZ 的数据\n", + "成功获取 000056.SZ 的数据\n", + "成功获取 000058.SZ 的数据\n", + "成功获取 000059.SZ 的数据\n", + "成功获取 000060.SZ 的数据\n", + "成功获取 000061.SZ 的数据\n", + "成功获取 000062.SZ 的数据\n", + "成功获取 000063.SZ 的数据\n", + "成功获取 000065.SZ 的数据\n", + "成功获取 000066.SZ 的数据\n", + "成功获取 000068.SZ 的数据\n", + "成功获取 000069.SZ 的数据\n", + "成功获取 000070.SZ 的数据\n", + "成功获取 000078.SZ 的数据\n", + "成功获取 000088.SZ 的数据\n", + "成功获取 000089.SZ 的数据\n", + "成功获取 000090.SZ 的数据\n", + "成功获取 000096.SZ 的数据\n", + "成功获取 000099.SZ 的数据\n", + "成功获取 000100.SZ 的数据\n", + "成功获取 000151.SZ 的数据\n", + "成功获取 000153.SZ 的数据\n", + "成功获取 000155.SZ 的数据\n", + "成功获取 000156.SZ 的数据\n", + "成功获取 000157.SZ 的数据\n", + "成功获取 000158.SZ 的数据\n", + "成功获取 000159.SZ 的数据\n", + "成功获取 000166.SZ 的数据\n", + "成功获取 000301.SZ 的数据\n", + "成功获取 000333.SZ 的数据\n", + "成功获取 000338.SZ 的数据\n", + "成功获取 000400.SZ 的数据\n", + "成功获取 000401.SZ 的数据\n", + "成功获取 000402.SZ 的数据\n", + "成功获取 000403.SZ 的数据\n", + "成功获取 000404.SZ 的数据\n", + "成功获取 000407.SZ 的数据\n", + "成功获取 000408.SZ 的数据\n", + "成功获取 000409.SZ 的数据\n", + "成功获取 000410.SZ 的数据\n", + "成功获取 000411.SZ 的数据\n", + "成功获取 000415.SZ 的数据\n", + "成功获取 000417.SZ 的数据\n", + "成功获取 000419.SZ 的数据\n", + "成功获取 000420.SZ 的数据\n", + "成功获取 000421.SZ 的数据\n", + "成功获取 000422.SZ 的数据\n", + "成功获取 000423.SZ 的数据\n", + "成功获取 000425.SZ 的数据\n", + "成功获取 000426.SZ 的数据\n", + "成功获取 000428.SZ 的数据\n", + "成功获取 000429.SZ 的数据\n", + "成功获取 000430.SZ 的数据\n", + "成功获取 000488.SZ 的数据\n", + "成功获取 000498.SZ 的数据\n", + "成功获取 000501.SZ 的数据\n", + "成功获取 000503.SZ 的数据\n", + "成功获取 000504.SZ 的数据\n", + "成功获取 000505.SZ 的数据\n", + "成功获取 000506.SZ 的数据\n", + "成功获取 000507.SZ 的数据\n", + "成功获取 000509.SZ 的数据\n", + "成功获取 000510.SZ 的数据\n", + "成功获取 000513.SZ 的数据\n", + "成功获取 000514.SZ 的数据\n", + "成功获取 000516.SZ 的数据\n", + "成功获取 000517.SZ 的数据\n", + "成功获取 000518.SZ 的数据\n", + "成功获取 000519.SZ 的数据\n", + "成功获取 000520.SZ 的数据\n", + "成功获取 000521.SZ 的数据\n", + "成功获取 000523.SZ 的数据\n", + "成功获取 000524.SZ 的数据\n", + "成功获取 000525.SZ 的数据\n", + "成功获取 000526.SZ 的数据\n", + "成功获取 000528.SZ 的数据\n", + "成功获取 000529.SZ 的数据\n", + "成功获取 000530.SZ 的数据\n", + "成功获取 000531.SZ 的数据\n", + "成功获取 000532.SZ 的数据\n", + "成功获取 000533.SZ 的数据\n", + "成功获取 000534.SZ 的数据\n", + "成功获取 000536.SZ 的数据\n", + "成功获取 000537.SZ 的数据\n", + "成功获取 000538.SZ 的数据\n", + "成功获取 000539.SZ 的数据\n", + "成功获取 000541.SZ 的数据\n", + "成功获取 000543.SZ 的数据\n", + "成功获取 000544.SZ 的数据\n", + "成功获取 000545.SZ 的数据\n", + "成功获取 000546.SZ 的数据\n", + "成功获取 000547.SZ 的数据\n", + "成功获取 000548.SZ 的数据\n", + "成功获取 000550.SZ 的数据\n", + "成功获取 000551.SZ 的数据\n", + "成功获取 000552.SZ 的数据\n", + "成功获取 000553.SZ 的数据\n", + "成功获取 000554.SZ 的数据\n", + "成功获取 000555.SZ 的数据\n", + "成功获取 000557.SZ 的数据\n", + "成功获取 000558.SZ 的数据\n", + "成功获取 000559.SZ 的数据\n", + "成功获取 000560.SZ 的数据\n", + "成功获取 000561.SZ 的数据\n", + "成功获取 000563.SZ 的数据\n", + "成功获取 000564.SZ 的数据\n", + "成功获取 000565.SZ 的数据\n", + "成功获取 000566.SZ 的数据\n", + "成功获取 000567.SZ 的数据\n", + "成功获取 000568.SZ 的数据\n", + "成功获取 000570.SZ 的数据\n", + "成功获取 000571.SZ 的数据\n", + "成功获取 000572.SZ 的数据\n", + "成功获取 000573.SZ 的数据\n", + "成功获取 000576.SZ 的数据\n", + "成功获取 000581.SZ 的数据\n", + "成功获取 000582.SZ 的数据\n", + "成功获取 000584.SZ 的数据\n", + "成功获取 000586.SZ 的数据\n", + "成功获取 000589.SZ 的数据\n", + "成功获取 000590.SZ 的数据\n", + "成功获取 000591.SZ 的数据\n", + "成功获取 000592.SZ 的数据\n", + "成功获取 000593.SZ 的数据\n", + "成功获取 000595.SZ 的数据\n", + "成功获取 000596.SZ 的数据\n", + "成功获取 000597.SZ 的数据\n", + "成功获取 000598.SZ 的数据\n", + "成功获取 000599.SZ 的数据\n", + "成功获取 000600.SZ 的数据\n", + "成功获取 000601.SZ 的数据\n", + "成功获取 000603.SZ 的数据\n", + "成功获取 000605.SZ 的数据\n", + "成功获取 000607.SZ 的数据\n", + "成功获取 000608.SZ 的数据\n", + "成功获取 000609.SZ 的数据\n", + "成功获取 000610.SZ 的数据\n", + "成功获取 000612.SZ 的数据\n", + "成功获取 000615.SZ 的数据\n", + "成功获取 000617.SZ 的数据\n", + "成功获取 000619.SZ 的数据\n", + "成功获取 000620.SZ 的数据\n", + "成功获取 000622.SZ 的数据\n", + "成功获取 000623.SZ 的数据\n", + "成功获取 000625.SZ 的数据\n", + "成功获取 000626.SZ 的数据\n", + "成功获取 000627.SZ 的数据\n", + "成功获取 000628.SZ 的数据\n", + "成功获取 000629.SZ 的数据\n", + "成功获取 000630.SZ 的数据\n", + "成功获取 000631.SZ 的数据\n", + "成功获取 000632.SZ 的数据\n", + "成功获取 000633.SZ 的数据\n", + "成功获取 000635.SZ 的数据\n", + "成功获取 000636.SZ 的数据\n", + "成功获取 000637.SZ 的数据\n", + "成功获取 000638.SZ 的数据\n", + "成功获取 000639.SZ 的数据\n", + "成功获取 000650.SZ 的数据\n", + "成功获取 000651.SZ 的数据\n", + "成功获取 000652.SZ 的数据\n", + "成功获取 000655.SZ 的数据\n", + "成功获取 000656.SZ 的数据\n", + "成功获取 000657.SZ 的数据\n", + "成功获取 000659.SZ 的数据\n", + "成功获取 000661.SZ 的数据\n", + "成功获取 000663.SZ 的数据\n", + "成功获取 000665.SZ 的数据\n", + "成功获取 000668.SZ 的数据\n", + "成功获取 000669.SZ 的数据\n", + "成功获取 000670.SZ 的数据\n", + "成功获取 000672.SZ 的数据\n", + "成功获取 000676.SZ 的数据\n", + "成功获取 000677.SZ 的数据\n", + "成功获取 000678.SZ 的数据\n", + "成功获取 000679.SZ 的数据\n", + "成功获取 000680.SZ 的数据\n", + "成功获取 000681.SZ 的数据\n", + "成功获取 000682.SZ 的数据\n", + "成功获取 000683.SZ 的数据\n", + "成功获取 000685.SZ 的数据\n", + "成功获取 000686.SZ 的数据\n", + "成功获取 000688.SZ 的数据\n", + "成功获取 000690.SZ 的数据\n", + "成功获取 000691.SZ 的数据\n", + "成功获取 000692.SZ 的数据\n", + "成功获取 000695.SZ 的数据\n", + "成功获取 000697.SZ 的数据\n", + "成功获取 000698.SZ 的数据\n", + "成功获取 000700.SZ 的数据\n", + "成功获取 000701.SZ 的数据\n", + "成功获取 000702.SZ 的数据\n", + "成功获取 000703.SZ 的数据\n", + "成功获取 000705.SZ 的数据\n", + "成功获取 000707.SZ 的数据\n", + "成功获取 000708.SZ 的数据\n", + "成功获取 000709.SZ 的数据\n", + "成功获取 000710.SZ 的数据\n", + "成功获取 000711.SZ 的数据\n", + "成功获取 000712.SZ 的数据\n", + "成功获取 000713.SZ 的数据\n", + "成功获取 000715.SZ 的数据\n", + "成功获取 000716.SZ 的数据\n", + "成功获取 000717.SZ 的数据\n", + "成功获取 000718.SZ 的数据\n", + "成功获取 000719.SZ 的数据\n", + "成功获取 000720.SZ 的数据\n", + "成功获取 000721.SZ 的数据\n", + "成功获取 000722.SZ 的数据\n", + "成功获取 000723.SZ 的数据\n", + "成功获取 000725.SZ 的数据\n", + "成功获取 000726.SZ 的数据\n", + "成功获取 000727.SZ 的数据\n", + "成功获取 000728.SZ 的数据\n", + "成功获取 000729.SZ 的数据\n", + "成功获取 000731.SZ 的数据\n", + "成功获取 000733.SZ 的数据\n", + "成功获取 000735.SZ 的数据\n", + "成功获取 000736.SZ 的数据\n", + "成功获取 000737.SZ 的数据\n", + "成功获取 000738.SZ 的数据\n", + "成功获取 000739.SZ 的数据\n", + "成功获取 000750.SZ 的数据\n", + "成功获取 000751.SZ 的数据\n", + "成功获取 000752.SZ 的数据\n", + "成功获取 000753.SZ 的数据\n", + "成功获取 000755.SZ 的数据\n", + "成功获取 000756.SZ 的数据\n", + "成功获取 000757.SZ 的数据\n", + "成功获取 000758.SZ 的数据\n", + "成功获取 000759.SZ 的数据\n", + "成功获取 000761.SZ 的数据\n", + "成功获取 000762.SZ 的数据\n", + "成功获取 000766.SZ 的数据\n", + "成功获取 000767.SZ 的数据\n", + "成功获取 000768.SZ 的数据\n", + "成功获取 000776.SZ 的数据\n", + "成功获取 000777.SZ 的数据\n", + "成功获取 000778.SZ 的数据\n", + "成功获取 000779.SZ 的数据\n", + "成功获取 000782.SZ 的数据\n", + "成功获取 000783.SZ 的数据\n", + "成功获取 000785.SZ 的数据\n", + "成功获取 000786.SZ 的数据\n", + "成功获取 000788.SZ 的数据\n", + "成功获取 000789.SZ 的数据\n", + "成功获取 000790.SZ 的数据\n", + "成功获取 000791.SZ 的数据\n", + "成功获取 000792.SZ 的数据\n", + "成功获取 000793.SZ 的数据\n", + "成功获取 000795.SZ 的数据\n", + "成功获取 000796.SZ 的数据\n", + "成功获取 000797.SZ 的数据\n", + "成功获取 000798.SZ 的数据\n", + "成功获取 000799.SZ 的数据\n", + "成功获取 000800.SZ 的数据\n", + "成功获取 000801.SZ 的数据\n", + "成功获取 000802.SZ 的数据\n", + "成功获取 000803.SZ 的数据\n", + "成功获取 000807.SZ 的数据\n", + "成功获取 000809.SZ 的数据\n", + "成功获取 000810.SZ 的数据\n", + "成功获取 000811.SZ 的数据\n", + "成功获取 000812.SZ 的数据\n", + "成功获取 000813.SZ 的数据\n", + "成功获取 000815.SZ 的数据\n", + "成功获取 000816.SZ 的数据\n", + "成功获取 000818.SZ 的数据\n", + "成功获取 000819.SZ 的数据\n", + "成功获取 000820.SZ 的数据\n", + "成功获取 000821.SZ 的数据\n", + "成功获取 000822.SZ 的数据\n", + "成功获取 000823.SZ 的数据\n", + "成功获取 000825.SZ 的数据\n", + "成功获取 000826.SZ 的数据\n", + "成功获取 000828.SZ 的数据\n", + "成功获取 000829.SZ 的数据\n", + "成功获取 000830.SZ 的数据\n", + "成功获取 000831.SZ 的数据\n", + "成功获取 000833.SZ 的数据\n", + "成功获取 000837.SZ 的数据\n", + "成功获取 000838.SZ 的数据\n", + "成功获取 000839.SZ 的数据\n", + "成功获取 000848.SZ 的数据\n", + "成功获取 000850.SZ 的数据\n", + "成功获取 000851.SZ 的数据\n", + "成功获取 000852.SZ 的数据\n", + "成功获取 000856.SZ 的数据\n", + "成功获取 000858.SZ 的数据\n", + "成功获取 000859.SZ 的数据\n", + "成功获取 000860.SZ 的数据\n", + "成功获取 000862.SZ 的数据\n", + "成功获取 000863.SZ 的数据\n", + "成功获取 000868.SZ 的数据\n", + "成功获取 000869.SZ 的数据\n", + "成功获取 000875.SZ 的数据\n", + "成功获取 000876.SZ 的数据\n", + "成功获取 000877.SZ 的数据\n", + "成功获取 000878.SZ 的数据\n", + "成功获取 000880.SZ 的数据\n", + "成功获取 000881.SZ 的数据\n", + "成功获取 000882.SZ 的数据\n", + "成功获取 000883.SZ 的数据\n", + "成功获取 000885.SZ 的数据\n", + "成功获取 000886.SZ 的数据\n", + "成功获取 000887.SZ 的数据\n", + "成功获取 000888.SZ 的数据\n", + "成功获取 000889.SZ 的数据\n", + "成功获取 000890.SZ 的数据\n", + "成功获取 000892.SZ 的数据\n", + "成功获取 000893.SZ 的数据\n", + "成功获取 000895.SZ 的数据\n", + "成功获取 000897.SZ 的数据\n", + "成功获取 000898.SZ 的数据\n", + "成功获取 000899.SZ 的数据\n", + "成功获取 000900.SZ 的数据\n", + "成功获取 000901.SZ 的数据\n", + "成功获取 000902.SZ 的数据\n", + "成功获取 000903.SZ 的数据\n", + "成功获取 000905.SZ 的数据\n", + "成功获取 000906.SZ 的数据\n", + "成功获取 000908.SZ 的数据\n", + "成功获取 000909.SZ 的数据\n", + "成功获取 000910.SZ 的数据\n", + "成功获取 000911.SZ 的数据\n", + "成功获取 000912.SZ 的数据\n", + "成功获取 000913.SZ 的数据\n", + "成功获取 000915.SZ 的数据\n", + "成功获取 000917.SZ 的数据\n", + "成功获取 000919.SZ 的数据\n", + "成功获取 000920.SZ 的数据\n", + "成功获取 000921.SZ 的数据\n", + "成功获取 000922.SZ 的数据\n", + "成功获取 000923.SZ 的数据\n", + "成功获取 000925.SZ 的数据\n", + "成功获取 000926.SZ 的数据\n", + "成功获取 000927.SZ 的数据\n", + "成功获取 000928.SZ 的数据\n", + "成功获取 000929.SZ 的数据\n", + "成功获取 000930.SZ 的数据\n", + "成功获取 000931.SZ 的数据\n", + "成功获取 000932.SZ 的数据\n", + "成功获取 000933.SZ 的数据\n", + "成功获取 000935.SZ 的数据\n", + "成功获取 000936.SZ 的数据\n", + "成功获取 000937.SZ 的数据\n", + "成功获取 000938.SZ 的数据\n", + "成功获取 000948.SZ 的数据\n", + "成功获取 000949.SZ 的数据\n", + "成功获取 000950.SZ 的数据\n", + "成功获取 000951.SZ 的数据\n", + "成功获取 000952.SZ 的数据\n", + "成功获取 000953.SZ 的数据\n", + "成功获取 000955.SZ 的数据\n", + "成功获取 000957.SZ 的数据\n", + "成功获取 000958.SZ 的数据\n", + "成功获取 000959.SZ 的数据\n", + "成功获取 000960.SZ 的数据\n", + "成功获取 000962.SZ 的数据\n", + "成功获取 000963.SZ 的数据\n", + "成功获取 000965.SZ 的数据\n", + "成功获取 000966.SZ 的数据\n", + "成功获取 000967.SZ 的数据\n", + "成功获取 000968.SZ 的数据\n", + "成功获取 000969.SZ 的数据\n", + "成功获取 000970.SZ 的数据\n", + "成功获取 000972.SZ 的数据\n", + "成功获取 000973.SZ 的数据\n", + "成功获取 000975.SZ 的数据\n", + "成功获取 000977.SZ 的数据\n", + "成功获取 000978.SZ 的数据\n", + "成功获取 000980.SZ 的数据\n", + "成功获取 000981.SZ 的数据\n", + "成功获取 000983.SZ 的数据\n", + "成功获取 000985.SZ 的数据\n", + "成功获取 000987.SZ 的数据\n", + "成功获取 000988.SZ 的数据\n", + "成功获取 000989.SZ 的数据\n", + "成功获取 000990.SZ 的数据\n", + "成功获取 000993.SZ 的数据\n", + "成功获取 000995.SZ 的数据\n", + "成功获取 000997.SZ 的数据\n", + "成功获取 000998.SZ 的数据\n", + "成功获取 000999.SZ 的数据\n", + "成功获取 001201.SZ 的数据\n", + "成功获取 001202.SZ 的数据\n", + "成功获取 001203.SZ 的数据\n", + "成功获取 001205.SZ 的数据\n", + "成功获取 001206.SZ 的数据\n", + "成功获取 001207.SZ 的数据\n", + "成功获取 001208.SZ 的数据\n", + "成功获取 001209.SZ 的数据\n", + "成功获取 001210.SZ 的数据\n", + "成功获取 001211.SZ 的数据\n", + "成功获取 001212.SZ 的数据\n", + "成功获取 001213.SZ 的数据\n", + "成功获取 001215.SZ 的数据\n", + "成功获取 001216.SZ 的数据\n", + "成功获取 001217.SZ 的数据\n", + "成功获取 001218.SZ 的数据\n", + "成功获取 001219.SZ 的数据\n", + "成功获取 001222.SZ 的数据\n", + "成功获取 001223.SZ 的数据\n", + "成功获取 001225.SZ 的数据\n", + "成功获取 001226.SZ 的数据\n", + "成功获取 001227.SZ 的数据\n", + "成功获取 001228.SZ 的数据\n", + "成功获取 001229.SZ 的数据\n", + "成功获取 001230.SZ 的数据\n", + "成功获取 001231.SZ 的数据\n", + "成功获取 001234.SZ 的数据\n", + "成功获取 001236.SZ 的数据\n", + "成功获取 001238.SZ 的数据\n", + "成功获取 001239.SZ 的数据\n", + "成功获取 001255.SZ 的数据\n", + "成功获取 001256.SZ 的数据\n", + "成功获取 001258.SZ 的数据\n", + "成功获取 001259.SZ 的数据\n", + "成功获取 001260.SZ 的数据\n", + "成功获取 001266.SZ 的数据\n", + "成功获取 001267.SZ 的数据\n", + "成功获取 001268.SZ 的数据\n", + "成功获取 001269.SZ 的数据\n", + "成功获取 001270.SZ 的数据\n", + "成功获取 001277.SZ 的数据\n", + "成功获取 001278.SZ 的数据\n", + "成功获取 001279.SZ 的数据\n", + "成功获取 001282.SZ 的数据\n", + "成功获取 001283.SZ 的数据\n", + "成功获取 001286.SZ 的数据\n", + "成功获取 001287.SZ 的数据\n", + "成功获取 001288.SZ 的数据\n", + "成功获取 001289.SZ 的数据\n", + "成功获取 001296.SZ 的数据\n", + "成功获取 001298.SZ 的数据\n", + "成功获取 001299.SZ 的数据\n", + "成功获取 001300.SZ 的数据\n", + "成功获取 001301.SZ 的数据\n", + "成功获取 001306.SZ 的数据\n", + "成功获取 001308.SZ 的数据\n", + "成功获取 001309.SZ 的数据\n", + "成功获取 001311.SZ 的数据\n", + "成功获取 001313.SZ 的数据\n", + "成功获取 001314.SZ 的数据\n", + "成功获取 001316.SZ 的数据\n", + "成功获取 001317.SZ 的数据\n", + "成功获取 001318.SZ 的数据\n", + "成功获取 001319.SZ 的数据\n", + "成功获取 001322.SZ 的数据\n", + "成功获取 001323.SZ 的数据\n", + "成功获取 001324.SZ 的数据\n", + "成功获取 001326.SZ 的数据\n", + "成功获取 001328.SZ 的数据\n", + "成功获取 001330.SZ 的数据\n", + "成功获取 001331.SZ 的数据\n", + "成功获取 001332.SZ 的数据\n", + "成功获取 001333.SZ 的数据\n", + "成功获取 001336.SZ 的数据\n", + "成功获取 001337.SZ 的数据\n", + "成功获取 001338.SZ 的数据\n", + "成功获取 001339.SZ 的数据\n", + "成功获取 001356.SZ 的数据\n", + "成功获取 001358.SZ 的数据\n", + "成功获取 001359.SZ 的数据\n", + "成功获取 001360.SZ 的数据\n", + "成功获取 001366.SZ 的数据\n", + "成功获取 001367.SZ 的数据\n", + "成功获取 001368.SZ 的数据\n", + "成功获取 001373.SZ 的数据\n", + "成功获取 001376.SZ 的数据\n", + "成功获取 001378.SZ 的数据\n", + "成功获取 001379.SZ 的数据\n", + "成功获取 001380.SZ 的数据\n", + "成功获取 001387.SZ 的数据\n", + "成功获取 001389.SZ 的数据\n", + "成功获取 001391.SZ 的数据\n", + "成功获取 001395.SZ 的数据\n", + "成功获取 001696.SZ 的数据\n", + "成功获取 001872.SZ 的数据\n", + "成功获取 001896.SZ 的数据\n", + "成功获取 001914.SZ 的数据\n", + "成功获取 001965.SZ 的数据\n", + "成功获取 001979.SZ 的数据\n", + "成功获取 002001.SZ 的数据\n", + "成功获取 002003.SZ 的数据\n", + "成功获取 002004.SZ 的数据\n", + "成功获取 002005.SZ 的数据\n", + "成功获取 002006.SZ 的数据\n", + "成功获取 002007.SZ 的数据\n", + "成功获取 002008.SZ 的数据\n", + "成功获取 002009.SZ 的数据\n", + "成功获取 002010.SZ 的数据\n", + "成功获取 002011.SZ 的数据\n", + "成功获取 002012.SZ 的数据\n", + "成功获取 002014.SZ 的数据\n", + "成功获取 002015.SZ 的数据\n", + "成功获取 002016.SZ 的数据\n", + "成功获取 002017.SZ 的数据\n", + "成功获取 002019.SZ 的数据\n", + "成功获取 002020.SZ 的数据\n", + "成功获取 002021.SZ 的数据\n", + "成功获取 002022.SZ 的数据\n", + "成功获取 002023.SZ 的数据\n", + "成功获取 002024.SZ 的数据\n", + "成功获取 002025.SZ 的数据\n", + "成功获取 002026.SZ 的数据\n", + "成功获取 002027.SZ 的数据\n", + "成功获取 002028.SZ 的数据\n", + "成功获取 002029.SZ 的数据\n", + "成功获取 002030.SZ 的数据\n", + "成功获取 002031.SZ 的数据\n", + "成功获取 002032.SZ 的数据\n", + "成功获取 002033.SZ 的数据\n", + "成功获取 002034.SZ 的数据\n", + "成功获取 002035.SZ 的数据\n", + "成功获取 002036.SZ 的数据\n", + "成功获取 002037.SZ 的数据\n", + "成功获取 002038.SZ 的数据\n", + "成功获取 002039.SZ 的数据\n", + "成功获取 002040.SZ 的数据\n", + "成功获取 002041.SZ 的数据\n", + "成功获取 002042.SZ 的数据\n", + "成功获取 002043.SZ 的数据\n", + "成功获取 002044.SZ 的数据\n", + "成功获取 002045.SZ 的数据\n", + "成功获取 002046.SZ 的数据\n", + "成功获取 002047.SZ 的数据\n", + "成功获取 002048.SZ 的数据\n", + "成功获取 002049.SZ 的数据\n", + "成功获取 002050.SZ 的数据\n", + "成功获取 002051.SZ 的数据\n", + "成功获取 002052.SZ 的数据\n", + "成功获取 002053.SZ 的数据\n", + "成功获取 002054.SZ 的数据\n", + "成功获取 002055.SZ 的数据\n", + "成功获取 002056.SZ 的数据\n", + "成功获取 002057.SZ 的数据\n", + "成功获取 002058.SZ 的数据\n", + "成功获取 002059.SZ 的数据\n", + "成功获取 002060.SZ 的数据\n", + "成功获取 002061.SZ 的数据\n", + "成功获取 002062.SZ 的数据\n", + "成功获取 002063.SZ 的数据\n", + "成功获取 002064.SZ 的数据\n", + "成功获取 002065.SZ 的数据\n", + "成功获取 002066.SZ 的数据\n", + "成功获取 002067.SZ 的数据\n", + "成功获取 002068.SZ 的数据\n", + "成功获取 002069.SZ 的数据\n", + "成功获取 002072.SZ 的数据\n", + "成功获取 002073.SZ 的数据\n", + "成功获取 002074.SZ 的数据\n", + "成功获取 002075.SZ 的数据\n", + "成功获取 002076.SZ 的数据\n", + "成功获取 002077.SZ 的数据\n", + "成功获取 002078.SZ 的数据\n", + "成功获取 002079.SZ 的数据\n", + "成功获取 002080.SZ 的数据\n", + "成功获取 002081.SZ 的数据\n", + "成功获取 002082.SZ 的数据\n", + "成功获取 002083.SZ 的数据\n", + "成功获取 002084.SZ 的数据\n", + "成功获取 002085.SZ 的数据\n", + "成功获取 002086.SZ 的数据\n", + "成功获取 002088.SZ 的数据\n", + "成功获取 002090.SZ 的数据\n", + "成功获取 002091.SZ 的数据\n", + "成功获取 002092.SZ 的数据\n", + "成功获取 002093.SZ 的数据\n", + "成功获取 002094.SZ 的数据\n", + "成功获取 002095.SZ 的数据\n", + "成功获取 002096.SZ 的数据\n", + "成功获取 002097.SZ 的数据\n", + "成功获取 002098.SZ 的数据\n", + "成功获取 002099.SZ 的数据\n", + "成功获取 002100.SZ 的数据\n", + "成功获取 002101.SZ 的数据\n", + "成功获取 002102.SZ 的数据\n", + "成功获取 002103.SZ 的数据\n", + "成功获取 002104.SZ 的数据\n", + "成功获取 002105.SZ 的数据\n", + "成功获取 002106.SZ 的数据\n", + "成功获取 002107.SZ 的数据\n", + "成功获取 002108.SZ 的数据\n", + "成功获取 002109.SZ 的数据\n", + "成功获取 002110.SZ 的数据\n", + "成功获取 002111.SZ 的数据\n", + "成功获取 002112.SZ 的数据\n", + "成功获取 002114.SZ 的数据\n", + "成功获取 002115.SZ 的数据\n", + "成功获取 002116.SZ 的数据\n", + "成功获取 002117.SZ 的数据\n", + "成功获取 002119.SZ 的数据\n", + "成功获取 002120.SZ 的数据\n", + "成功获取 002121.SZ 的数据\n", + "成功获取 002122.SZ 的数据\n", + "成功获取 002123.SZ 的数据\n", + "成功获取 002124.SZ 的数据\n", + "成功获取 002125.SZ 的数据\n", + "成功获取 002126.SZ 的数据\n", + "成功获取 002127.SZ 的数据\n", + "成功获取 002128.SZ 的数据\n", + "成功获取 002129.SZ 的数据\n", + "成功获取 002130.SZ 的数据\n", + "成功获取 002131.SZ 的数据\n", + "成功获取 002132.SZ 的数据\n", + "成功获取 002133.SZ 的数据\n", + "成功获取 002134.SZ 的数据\n", + "成功获取 002135.SZ 的数据\n", + "成功获取 002136.SZ 的数据\n", + "成功获取 002137.SZ 的数据\n", + "成功获取 002138.SZ 的数据\n", + "成功获取 002139.SZ 的数据\n", + "成功获取 002140.SZ 的数据\n", + "成功获取 002141.SZ 的数据\n", + "成功获取 002142.SZ 的数据\n", + "成功获取 002144.SZ 的数据\n", + "成功获取 002145.SZ 的数据\n", + "成功获取 002146.SZ 的数据\n", + "成功获取 002148.SZ 的数据\n", + "成功获取 002149.SZ 的数据\n", + "成功获取 002150.SZ 的数据\n", + "成功获取 002151.SZ 的数据\n", + "成功获取 002152.SZ 的数据\n", + "成功获取 002153.SZ 的数据\n", + "成功获取 002154.SZ 的数据\n", + "成功获取 002155.SZ 的数据\n", + "成功获取 002156.SZ 的数据\n", + "成功获取 002157.SZ 的数据\n", + "成功获取 002158.SZ 的数据\n", + "成功获取 002159.SZ 的数据\n", + "成功获取 002160.SZ 的数据\n", + "成功获取 002161.SZ 的数据\n", + "成功获取 002162.SZ 的数据\n", + "成功获取 002163.SZ 的数据\n", + "成功获取 002164.SZ 的数据\n", + "成功获取 002165.SZ 的数据\n", + "成功获取 002166.SZ 的数据\n", + "成功获取 002167.SZ 的数据\n", + "成功获取 002168.SZ 的数据\n", + "成功获取 002169.SZ 的数据\n", + "成功获取 002170.SZ 的数据\n", + "成功获取 002171.SZ 的数据\n", + "成功获取 002172.SZ 的数据\n", + "成功获取 002173.SZ 的数据\n", + "成功获取 002174.SZ 的数据\n", + "成功获取 002175.SZ 的数据\n", + "成功获取 002176.SZ 的数据\n", + "成功获取 002177.SZ 的数据\n", + "成功获取 002178.SZ 的数据\n", + "成功获取 002179.SZ 的数据\n", + "成功获取 002180.SZ 的数据\n", + "成功获取 002181.SZ 的数据\n", + "成功获取 002182.SZ 的数据\n", + "成功获取 002183.SZ 的数据\n", + "成功获取 002184.SZ 的数据\n", + "成功获取 002185.SZ 的数据\n", + "成功获取 002186.SZ 的数据\n", + "成功获取 002187.SZ 的数据\n", + "成功获取 002188.SZ 的数据\n", + "成功获取 002189.SZ 的数据\n", + "成功获取 002190.SZ 的数据\n", + "成功获取 002191.SZ 的数据\n", + "成功获取 002192.SZ 的数据\n", + "成功获取 002193.SZ 的数据\n", + "成功获取 002194.SZ 的数据\n", + "成功获取 002195.SZ 的数据\n", + "成功获取 002196.SZ 的数据\n", + "成功获取 002197.SZ 的数据\n", + "成功获取 002198.SZ 的数据\n", + "成功获取 002199.SZ 的数据\n", + "成功获取 002200.SZ 的数据\n", + "成功获取 002201.SZ 的数据\n", + "成功获取 002202.SZ 的数据\n", + "成功获取 002203.SZ 的数据\n", + "成功获取 002204.SZ 的数据\n", + "成功获取 002205.SZ 的数据\n", + "成功获取 002206.SZ 的数据\n", + "成功获取 002207.SZ 的数据\n", + "成功获取 002208.SZ 的数据\n", + "成功获取 002209.SZ 的数据\n", + "成功获取 002210.SZ 的数据\n", + "成功获取 002211.SZ 的数据\n", + "成功获取 002212.SZ 的数据\n", + "成功获取 002213.SZ 的数据\n", + "成功获取 002214.SZ 的数据\n", + "成功获取 002215.SZ 的数据\n", + "成功获取 002216.SZ 的数据\n", + "成功获取 002217.SZ 的数据\n", + "成功获取 002218.SZ 的数据\n", + "成功获取 002219.SZ 的数据\n", + "成功获取 002221.SZ 的数据\n", + "成功获取 002222.SZ 的数据\n", + "成功获取 002223.SZ 的数据\n", + "成功获取 002224.SZ 的数据\n", + "成功获取 002225.SZ 的数据\n", + "成功获取 002226.SZ 的数据\n", + "成功获取 002227.SZ 的数据\n", + "成功获取 002228.SZ 的数据\n", + "成功获取 002229.SZ 的数据\n", + "成功获取 002230.SZ 的数据\n", + "成功获取 002231.SZ 的数据\n", + "成功获取 002232.SZ 的数据\n", + "成功获取 002233.SZ 的数据\n", + "成功获取 002234.SZ 的数据\n", + "成功获取 002235.SZ 的数据\n", + "成功获取 002236.SZ 的数据\n", + "成功获取 002237.SZ 的数据\n", + "成功获取 002238.SZ 的数据\n", + "成功获取 002239.SZ 的数据\n", + "成功获取 002240.SZ 的数据\n", + "成功获取 002241.SZ 的数据\n", + "成功获取 002242.SZ 的数据\n", + "成功获取 002243.SZ 的数据\n", + "成功获取 002244.SZ 的数据\n", + "成功获取 002245.SZ 的数据\n", + "成功获取 002246.SZ 的数据\n", + "成功获取 002247.SZ 的数据\n", + "成功获取 002248.SZ 的数据\n", + "成功获取 002249.SZ 的数据\n", + "成功获取 002250.SZ 的数据\n", + "成功获取 002251.SZ 的数据\n", + "成功获取 002252.SZ 的数据\n", + "成功获取 002253.SZ 的数据\n", + "成功获取 002254.SZ 的数据\n", + "成功获取 002255.SZ 的数据\n", + "成功获取 002256.SZ 的数据\n", + "成功获取 002258.SZ 的数据\n", + "成功获取 002259.SZ 的数据\n", + "成功获取 002261.SZ 的数据\n", + "成功获取 002262.SZ 的数据\n", + "成功获取 002263.SZ 的数据\n", + "成功获取 002264.SZ 的数据\n", + "成功获取 002265.SZ 的数据\n", + "成功获取 002266.SZ 的数据\n", + "成功获取 002267.SZ 的数据\n", + "成功获取 002268.SZ 的数据\n", + "成功获取 002269.SZ 的数据\n", + "成功获取 002270.SZ 的数据\n", + "成功获取 002271.SZ 的数据\n", + "成功获取 002272.SZ 的数据\n", + "成功获取 002273.SZ 的数据\n", + "成功获取 002274.SZ 的数据\n", + "成功获取 002275.SZ 的数据\n", + "成功获取 002276.SZ 的数据\n", + "成功获取 002277.SZ 的数据\n", + "成功获取 002278.SZ 的数据\n", + "成功获取 002279.SZ 的数据\n", + "成功获取 002281.SZ 的数据\n", + "成功获取 002282.SZ 的数据\n", + "成功获取 002283.SZ 的数据\n", + "成功获取 002284.SZ 的数据\n", + "成功获取 002285.SZ 的数据\n", + "成功获取 002286.SZ 的数据\n", + "成功获取 002287.SZ 的数据\n", + "成功获取 002289.SZ 的数据\n", + "成功获取 002290.SZ 的数据\n", + "成功获取 002291.SZ 的数据\n", + "成功获取 002292.SZ 的数据\n", + "成功获取 002293.SZ 的数据\n", + "成功获取 002294.SZ 的数据\n", + "成功获取 002295.SZ 的数据\n", + "成功获取 002296.SZ 的数据\n", + "成功获取 002297.SZ 的数据\n", + "成功获取 002298.SZ 的数据\n", + "成功获取 002299.SZ 的数据\n", + "成功获取 002300.SZ 的数据\n", + "成功获取 002301.SZ 的数据\n", + "成功获取 002302.SZ 的数据\n", + "成功获取 002303.SZ 的数据\n", + "成功获取 002304.SZ 的数据\n", + "成功获取 002305.SZ 的数据\n", + "成功获取 002306.SZ 的数据\n", + "成功获取 002307.SZ 的数据\n", + "成功获取 002309.SZ 的数据\n", + "成功获取 002310.SZ 的数据\n", + "成功获取 002311.SZ 的数据\n", + "成功获取 002312.SZ 的数据\n", + "成功获取 002313.SZ 的数据\n", + "成功获取 002314.SZ 的数据\n", + "成功获取 002315.SZ 的数据\n", + "成功获取 002316.SZ 的数据\n", + "成功获取 002317.SZ 的数据\n", + "成功获取 002318.SZ 的数据\n", + "成功获取 002319.SZ 的数据\n", + "成功获取 002320.SZ 的数据\n", + "成功获取 002321.SZ 的数据\n", + "成功获取 002322.SZ 的数据\n", + "成功获取 002323.SZ 的数据\n", + "成功获取 002324.SZ 的数据\n", + "成功获取 002326.SZ 的数据\n", + "成功获取 002327.SZ 的数据\n", + "成功获取 002328.SZ 的数据\n", + "成功获取 002329.SZ 的数据\n", + "成功获取 002330.SZ 的数据\n", + "成功获取 002331.SZ 的数据\n", + "成功获取 002332.SZ 的数据\n", + "成功获取 002333.SZ 的数据\n", + "成功获取 002334.SZ 的数据\n", + "成功获取 002335.SZ 的数据\n", + "成功获取 002336.SZ 的数据\n", + "成功获取 002337.SZ 的数据\n", + "成功获取 002338.SZ 的数据\n", + "成功获取 002339.SZ 的数据\n", + "成功获取 002340.SZ 的数据\n", + "成功获取 002342.SZ 的数据\n", + "成功获取 002343.SZ 的数据\n", + "成功获取 002344.SZ 的数据\n", + "成功获取 002345.SZ 的数据\n", + "成功获取 002346.SZ 的数据\n", + "成功获取 002347.SZ 的数据\n", + "成功获取 002348.SZ 的数据\n", + "成功获取 002349.SZ 的数据\n", + "成功获取 002350.SZ 的数据\n", + "成功获取 002351.SZ 的数据\n", + "成功获取 002352.SZ 的数据\n", + "成功获取 002353.SZ 的数据\n", + "成功获取 002354.SZ 的数据\n", + "成功获取 002355.SZ 的数据\n", + "成功获取 002356.SZ 的数据\n", + "成功获取 002357.SZ 的数据\n", + "成功获取 002358.SZ 的数据\n", + "成功获取 002360.SZ 的数据\n", + "成功获取 002361.SZ 的数据\n", + "成功获取 002362.SZ 的数据\n", + "成功获取 002363.SZ 的数据\n", + "成功获取 002364.SZ 的数据\n", + "成功获取 002365.SZ 的数据\n", + "成功获取 002366.SZ 的数据\n", + "成功获取 002367.SZ 的数据\n", + "成功获取 002368.SZ 的数据\n", + "成功获取 002369.SZ 的数据\n", + "成功获取 002370.SZ 的数据\n", + "成功获取 002371.SZ 的数据\n", + "成功获取 002372.SZ 的数据\n", + "成功获取 002373.SZ 的数据\n", + "成功获取 002374.SZ 的数据\n", + "成功获取 002375.SZ 的数据\n", + "成功获取 002376.SZ 的数据\n", + "成功获取 002377.SZ 的数据\n", + "成功获取 002378.SZ 的数据\n", + "成功获取 002379.SZ 的数据\n", + "成功获取 002380.SZ 的数据\n", + "成功获取 002381.SZ 的数据\n", + "成功获取 002382.SZ 的数据\n", + "成功获取 002383.SZ 的数据\n", + "成功获取 002384.SZ 的数据\n", + "成功获取 002385.SZ 的数据\n", + "成功获取 002386.SZ 的数据\n", + "成功获取 002387.SZ 的数据\n", + "成功获取 002388.SZ 的数据\n", + "成功获取 002389.SZ 的数据\n", + "成功获取 002390.SZ 的数据\n", + "成功获取 002391.SZ 的数据\n", + "成功获取 002392.SZ 的数据\n", + "成功获取 002393.SZ 的数据\n", + "成功获取 002394.SZ 的数据\n", + "成功获取 002395.SZ 的数据\n", + "成功获取 002396.SZ 的数据\n", + "成功获取 002397.SZ 的数据\n", + "成功获取 002398.SZ 的数据\n", + "成功获取 002399.SZ 的数据\n", + "成功获取 002400.SZ 的数据\n", + "成功获取 002401.SZ 的数据\n", + "成功获取 002402.SZ 的数据\n", + "成功获取 002403.SZ 的数据\n", + "成功获取 002404.SZ 的数据\n", + "成功获取 002405.SZ 的数据\n", + "成功获取 002406.SZ 的数据\n", + "成功获取 002407.SZ 的数据\n", + "成功获取 002408.SZ 的数据\n", + "成功获取 002409.SZ 的数据\n", + "成功获取 002410.SZ 的数据\n", + "成功获取 002412.SZ 的数据\n", + "成功获取 002413.SZ 的数据\n", + "成功获取 002414.SZ 的数据\n", + "成功获取 002415.SZ 的数据\n", + "成功获取 002416.SZ 的数据\n", + "成功获取 002418.SZ 的数据\n", + "成功获取 002419.SZ 的数据\n", + "成功获取 002420.SZ 的数据\n", + "成功获取 002421.SZ 的数据\n", + "成功获取 002422.SZ 的数据\n", + "成功获取 002423.SZ 的数据\n", + "成功获取 002424.SZ 的数据\n", + "成功获取 002425.SZ 的数据\n", + "成功获取 002426.SZ 的数据\n", + "成功获取 002427.SZ 的数据\n", + "成功获取 002428.SZ 的数据\n", + "成功获取 002429.SZ 的数据\n", + "成功获取 002430.SZ 的数据\n", + "成功获取 002431.SZ 的数据\n", + "成功获取 002432.SZ 的数据\n", + "成功获取 002434.SZ 的数据\n", + "成功获取 002436.SZ 的数据\n", + "成功获取 002437.SZ 的数据\n", + "成功获取 002438.SZ 的数据\n", + "成功获取 002439.SZ 的数据\n", + "成功获取 002440.SZ 的数据\n", + "成功获取 002441.SZ 的数据\n", + "成功获取 002442.SZ 的数据\n", + "成功获取 002443.SZ 的数据\n", + "成功获取 002444.SZ 的数据\n", + "成功获取 002445.SZ 的数据\n", + "成功获取 002446.SZ 的数据\n", + "成功获取 002448.SZ 的数据\n", + "成功获取 002449.SZ 的数据\n", + "成功获取 002451.SZ 的数据\n", + "成功获取 002452.SZ 的数据\n", + "成功获取 002453.SZ 的数据\n", + "成功获取 002454.SZ 的数据\n", + "成功获取 002455.SZ 的数据\n", + "成功获取 002456.SZ 的数据\n", + "成功获取 002457.SZ 的数据\n", + "成功获取 002458.SZ 的数据\n", + "成功获取 002459.SZ 的数据\n", + "成功获取 002460.SZ 的数据\n", + "成功获取 002461.SZ 的数据\n", + "成功获取 002462.SZ 的数据\n", + "成功获取 002463.SZ 的数据\n", + "成功获取 002465.SZ 的数据\n", + "成功获取 002466.SZ 的数据\n", + "成功获取 002467.SZ 的数据\n", + "成功获取 002468.SZ 的数据\n", + "成功获取 002469.SZ 的数据\n", + "成功获取 002470.SZ 的数据\n", + "成功获取 002471.SZ 的数据\n", + "成功获取 002472.SZ 的数据\n", + "成功获取 002474.SZ 的数据\n", + "成功获取 002475.SZ 的数据\n", + "成功获取 002476.SZ 的数据\n", + "成功获取 002478.SZ 的数据\n", + "成功获取 002479.SZ 的数据\n", + "成功获取 002480.SZ 的数据\n", + "成功获取 002481.SZ 的数据\n", + "成功获取 002482.SZ 的数据\n", + "成功获取 002483.SZ 的数据\n", + "成功获取 002484.SZ 的数据\n", + "成功获取 002485.SZ 的数据\n", + "成功获取 002486.SZ 的数据\n", + "成功获取 002487.SZ 的数据\n", + "成功获取 002488.SZ 的数据\n", + "成功获取 002489.SZ 的数据\n", + "成功获取 002490.SZ 的数据\n", + "成功获取 002491.SZ 的数据\n", + "成功获取 002492.SZ 的数据\n", + "成功获取 002493.SZ 的数据\n", + "成功获取 002494.SZ 的数据\n", + "成功获取 002495.SZ 的数据\n", + "成功获取 002496.SZ 的数据\n", + "成功获取 002497.SZ 的数据\n", + "成功获取 002498.SZ 的数据\n", + "成功获取 002500.SZ 的数据\n", + "成功获取 002501.SZ 的数据\n", + "成功获取 002506.SZ 的数据\n", + "成功获取 002507.SZ 的数据\n", + "成功获取 002508.SZ 的数据\n", + "成功获取 002510.SZ 的数据\n", + "成功获取 002511.SZ 的数据\n", + "成功获取 002512.SZ 的数据\n", + "成功获取 002513.SZ 的数据\n", + "成功获取 002514.SZ 的数据\n", + "成功获取 002515.SZ 的数据\n", + "成功获取 002516.SZ 的数据\n", + "成功获取 002517.SZ 的数据\n", + "成功获取 002518.SZ 的数据\n", + "成功获取 002519.SZ 的数据\n", + "成功获取 002520.SZ 的数据\n", + "成功获取 002521.SZ 的数据\n", + "成功获取 002522.SZ 的数据\n", + "成功获取 002523.SZ 的数据\n", + "成功获取 002524.SZ 的数据\n", + "成功获取 002526.SZ 的数据\n", + "成功获取 002527.SZ 的数据\n", + "成功获取 002528.SZ 的数据\n", + "成功获取 002529.SZ 的数据\n", + "成功获取 002530.SZ 的数据\n", + "成功获取 002531.SZ 的数据\n", + "成功获取 002532.SZ 的数据\n", + "成功获取 002533.SZ 的数据\n", + "成功获取 002534.SZ 的数据\n", + "成功获取 002535.SZ 的数据\n", + "成功获取 002536.SZ 的数据\n", + "成功获取 002537.SZ 的数据\n", + "成功获取 002538.SZ 的数据\n", + "成功获取 002539.SZ 的数据\n", + "成功获取 002540.SZ 的数据\n", + "成功获取 002541.SZ 的数据\n", + "成功获取 002542.SZ 的数据\n", + "成功获取 002543.SZ 的数据\n", + "成功获取 002544.SZ 的数据\n", + "成功获取 002545.SZ 的数据\n", + "成功获取 002546.SZ 的数据\n", + "成功获取 002547.SZ 的数据\n", + "成功获取 002548.SZ 的数据\n", + "成功获取 002549.SZ 的数据\n", + "成功获取 002550.SZ 的数据\n", + "成功获取 002551.SZ 的数据\n", + "成功获取 002552.SZ 的数据\n", + "成功获取 002553.SZ 的数据\n", + "成功获取 002554.SZ 的数据\n", + "成功获取 002555.SZ 的数据\n", + "成功获取 002556.SZ 的数据\n", + "成功获取 002557.SZ 的数据\n", + "成功获取 002558.SZ 的数据\n", + "成功获取 002559.SZ 的数据\n", + "成功获取 002560.SZ 的数据\n", + "成功获取 002561.SZ 的数据\n", + "成功获取 002562.SZ 的数据\n", + "成功获取 002563.SZ 的数据\n", + "成功获取 002564.SZ 的数据\n", + "成功获取 002565.SZ 的数据\n", + "成功获取 002566.SZ 的数据\n", + "成功获取 002567.SZ 的数据\n", + "成功获取 002568.SZ 的数据\n", + "成功获取 002569.SZ 的数据\n", + "成功获取 002570.SZ 的数据\n", + "成功获取 002571.SZ 的数据\n", + "成功获取 002572.SZ 的数据\n", + "成功获取 002573.SZ 的数据\n", + "成功获取 002574.SZ 的数据\n", + "成功获取 002575.SZ 的数据\n", + "成功获取 002576.SZ 的数据\n", + "成功获取 002577.SZ 的数据\n", + "成功获取 002578.SZ 的数据\n", + "成功获取 002579.SZ 的数据\n", + "成功获取 002580.SZ 的数据\n", + "成功获取 002581.SZ 的数据\n", + "成功获取 002582.SZ 的数据\n", + "成功获取 002583.SZ 的数据\n", + "成功获取 002584.SZ 的数据\n", + "成功获取 002585.SZ 的数据\n", + "成功获取 002586.SZ 的数据\n", + "成功获取 002587.SZ 的数据\n", + "成功获取 002588.SZ 的数据\n", + "成功获取 002589.SZ 的数据\n", + "成功获取 002590.SZ 的数据\n", + "成功获取 002591.SZ 的数据\n", + "成功获取 002592.SZ 的数据\n", + "成功获取 002593.SZ 的数据\n", + "成功获取 002594.SZ 的数据\n", + "成功获取 002595.SZ 的数据\n", + "成功获取 002596.SZ 的数据\n", + "成功获取 002597.SZ 的数据\n", + "成功获取 002598.SZ 的数据\n", + "成功获取 002599.SZ 的数据\n", + "成功获取 002600.SZ 的数据\n", + "成功获取 002601.SZ 的数据\n", + "成功获取 002602.SZ 的数据\n", + "成功获取 002603.SZ 的数据\n", + "成功获取 002605.SZ 的数据\n", + "成功获取 002606.SZ 的数据\n", + "成功获取 002607.SZ 的数据\n", + "成功获取 002608.SZ 的数据\n", + "成功获取 002609.SZ 的数据\n", + "成功获取 002611.SZ 的数据\n", + "成功获取 002612.SZ 的数据\n", + "成功获取 002613.SZ 的数据\n", + "成功获取 002614.SZ 的数据\n", + "成功获取 002615.SZ 的数据\n", + "成功获取 002616.SZ 的数据\n", + "成功获取 002617.SZ 的数据\n", + "成功获取 002620.SZ 的数据\n", + "成功获取 002622.SZ 的数据\n", + "成功获取 002623.SZ 的数据\n", + "成功获取 002624.SZ 的数据\n", + "成功获取 002625.SZ 的数据\n", + "成功获取 002626.SZ 的数据\n", + "成功获取 002627.SZ 的数据\n", + "成功获取 002628.SZ 的数据\n", + "成功获取 002629.SZ 的数据\n", + "成功获取 002630.SZ 的数据\n", + "成功获取 002631.SZ 的数据\n", + "成功获取 002632.SZ 的数据\n", + "成功获取 002633.SZ 的数据\n", + "成功获取 002634.SZ 的数据\n", + "成功获取 002635.SZ 的数据\n", + "成功获取 002636.SZ 的数据\n", + "成功获取 002637.SZ 的数据\n", + "成功获取 002638.SZ 的数据\n", + "成功获取 002639.SZ 的数据\n", + "成功获取 002640.SZ 的数据\n", + "成功获取 002641.SZ 的数据\n", + "成功获取 002642.SZ 的数据\n", + "成功获取 002643.SZ 的数据\n", + "成功获取 002644.SZ 的数据\n", + "成功获取 002645.SZ 的数据\n", + "成功获取 002646.SZ 的数据\n", + "成功获取 002647.SZ 的数据\n", + "成功获取 002648.SZ 的数据\n", + "成功获取 002649.SZ 的数据\n", + "成功获取 002650.SZ 的数据\n", + "成功获取 002651.SZ 的数据\n", + "成功获取 002652.SZ 的数据\n", + "成功获取 002653.SZ 的数据\n", + "成功获取 002654.SZ 的数据\n", + "成功获取 002655.SZ 的数据\n", + "成功获取 002656.SZ 的数据\n", + "成功获取 002657.SZ 的数据\n", + "成功获取 002658.SZ 的数据\n", + "成功获取 002659.SZ 的数据\n", + "成功获取 002660.SZ 的数据\n", + "成功获取 002661.SZ 的数据\n", + "成功获取 002662.SZ 的数据\n", + "成功获取 002663.SZ 的数据\n", + "成功获取 002664.SZ 的数据\n", + "成功获取 002666.SZ 的数据\n", + "成功获取 002667.SZ 的数据\n", + "成功获取 002668.SZ 的数据\n", + "成功获取 002669.SZ 的数据\n", + "成功获取 002670.SZ 的数据\n", + "成功获取 002671.SZ 的数据\n", + "成功获取 002672.SZ 的数据\n", + "成功获取 002673.SZ 的数据\n", + "成功获取 002674.SZ 的数据\n", + "成功获取 002675.SZ 的数据\n", + "成功获取 002676.SZ 的数据\n", + "成功获取 002677.SZ 的数据\n", + "成功获取 002678.SZ 的数据\n", + "成功获取 002679.SZ 的数据\n", + "成功获取 002681.SZ 的数据\n", + "成功获取 002682.SZ 的数据\n", + "成功获取 002683.SZ 的数据\n", + "成功获取 002685.SZ 的数据\n", + "成功获取 002686.SZ 的数据\n", + "成功获取 002687.SZ 的数据\n", + "成功获取 002688.SZ 的数据\n", + "成功获取 002689.SZ 的数据\n", + "成功获取 002690.SZ 的数据\n", + "成功获取 002691.SZ 的数据\n", + "成功获取 002692.SZ 的数据\n", + "成功获取 002693.SZ 的数据\n", + "成功获取 002694.SZ 的数据\n", + "成功获取 002695.SZ 的数据\n", + "成功获取 002696.SZ 的数据\n", + "成功获取 002697.SZ 的数据\n", + "成功获取 002698.SZ 的数据\n", + "成功获取 002700.SZ 的数据\n", + "成功获取 002701.SZ 的数据\n", + "成功获取 002702.SZ 的数据\n", + "成功获取 002703.SZ 的数据\n", + "成功获取 002705.SZ 的数据\n", + "成功获取 002706.SZ 的数据\n", + "成功获取 002707.SZ 的数据\n", + "成功获取 002708.SZ 的数据\n", + "成功获取 002709.SZ 的数据\n", + "成功获取 002712.SZ 的数据\n", + "成功获取 002713.SZ 的数据\n", + "成功获取 002714.SZ 的数据\n", + "成功获取 002715.SZ 的数据\n", + "成功获取 002716.SZ 的数据\n", + "成功获取 002717.SZ 的数据\n", + "成功获取 002718.SZ 的数据\n", + "成功获取 002719.SZ 的数据\n", + "成功获取 002721.SZ 的数据\n", + "成功获取 002722.SZ 的数据\n", + "成功获取 002723.SZ 的数据\n", + "成功获取 002724.SZ 的数据\n", + "成功获取 002725.SZ 的数据\n", + "成功获取 002726.SZ 的数据\n", + "成功获取 002727.SZ 的数据\n", + "成功获取 002728.SZ 的数据\n", + "成功获取 002729.SZ 的数据\n", + "成功获取 002730.SZ 的数据\n", + "成功获取 002731.SZ 的数据\n", + "成功获取 002732.SZ 的数据\n", + "成功获取 002733.SZ 的数据\n", + "成功获取 002734.SZ 的数据\n", + "成功获取 002735.SZ 的数据\n", + "成功获取 002736.SZ 的数据\n", + "成功获取 002737.SZ 的数据\n", + "成功获取 002738.SZ 的数据\n", + "成功获取 002739.SZ 的数据\n", + "成功获取 002741.SZ 的数据\n", + "成功获取 002742.SZ 的数据\n", + "成功获取 002743.SZ 的数据\n", + "成功获取 002745.SZ 的数据\n", + "成功获取 002746.SZ 的数据\n", + "成功获取 002747.SZ 的数据\n", + "成功获取 002748.SZ 的数据\n", + "成功获取 002749.SZ 的数据\n", + "成功获取 002750.SZ 的数据\n", + "成功获取 002752.SZ 的数据\n", + "成功获取 002753.SZ 的数据\n", + "成功获取 002755.SZ 的数据\n", + "成功获取 002756.SZ 的数据\n", + "成功获取 002757.SZ 的数据\n", + "成功获取 002758.SZ 的数据\n", + "成功获取 002759.SZ 的数据\n", + "成功获取 002760.SZ 的数据\n", + "成功获取 002761.SZ 的数据\n", + "成功获取 002762.SZ 的数据\n", + "成功获取 002763.SZ 的数据\n", + "成功获取 002765.SZ 的数据\n", + "成功获取 002766.SZ 的数据\n", + "成功获取 002767.SZ 的数据\n", + "成功获取 002768.SZ 的数据\n", + "成功获取 002769.SZ 的数据\n", + "成功获取 002771.SZ 的数据\n", + "成功获取 002772.SZ 的数据\n", + "成功获取 002773.SZ 的数据\n", + "成功获取 002774.SZ 的数据\n", + "成功获取 002775.SZ 的数据\n", + "成功获取 002777.SZ 的数据\n", + "成功获取 002778.SZ 的数据\n", + "成功获取 002779.SZ 的数据\n", + "成功获取 002780.SZ 的数据\n", + "成功获取 002782.SZ 的数据\n", + "成功获取 002783.SZ 的数据\n", + "成功获取 002785.SZ 的数据\n", + "成功获取 002786.SZ 的数据\n", + "成功获取 002787.SZ 的数据\n", + "成功获取 002788.SZ 的数据\n", + "成功获取 002789.SZ 的数据\n", + "成功获取 002790.SZ 的数据\n", + "成功获取 002791.SZ 的数据\n", + "成功获取 002792.SZ 的数据\n", + "成功获取 002793.SZ 的数据\n", + "成功获取 002795.SZ 的数据\n", + "成功获取 002796.SZ 的数据\n", + "成功获取 002797.SZ 的数据\n", + "成功获取 002798.SZ 的数据\n", + "成功获取 002799.SZ 的数据\n", + "成功获取 002800.SZ 的数据\n", + "成功获取 002801.SZ 的数据\n", + "成功获取 002802.SZ 的数据\n", + "成功获取 002803.SZ 的数据\n", + "成功获取 002805.SZ 的数据\n", + "成功获取 002806.SZ 的数据\n", + "成功获取 002807.SZ 的数据\n", + "成功获取 002808.SZ 的数据\n", + "成功获取 002809.SZ 的数据\n", + "成功获取 002810.SZ 的数据\n", + "成功获取 002811.SZ 的数据\n", + "成功获取 002812.SZ 的数据\n", + "成功获取 002813.SZ 的数据\n", + "成功获取 002815.SZ 的数据\n", + "成功获取 002816.SZ 的数据\n", + "成功获取 002817.SZ 的数据\n", + "成功获取 002818.SZ 的数据\n", + "成功获取 002819.SZ 的数据\n", + "成功获取 002820.SZ 的数据\n", + "成功获取 002821.SZ 的数据\n", + "成功获取 002822.SZ 的数据\n", + "成功获取 002823.SZ 的数据\n", + "成功获取 002824.SZ 的数据\n", + "成功获取 002825.SZ 的数据\n", + "成功获取 002826.SZ 的数据\n", + "成功获取 002827.SZ 的数据\n", + "成功获取 002828.SZ 的数据\n", + "成功获取 002829.SZ 的数据\n", + "成功获取 002830.SZ 的数据\n", + "成功获取 002831.SZ 的数据\n", + "成功获取 002832.SZ 的数据\n", + "成功获取 002833.SZ 的数据\n", + "成功获取 002835.SZ 的数据\n", + "成功获取 002836.SZ 的数据\n", + "成功获取 002837.SZ 的数据\n", + "成功获取 002838.SZ 的数据\n", + "成功获取 002839.SZ 的数据\n", + "成功获取 002840.SZ 的数据\n", + "成功获取 002841.SZ 的数据\n", + "成功获取 002842.SZ 的数据\n", + "成功获取 002843.SZ 的数据\n", + "成功获取 002845.SZ 的数据\n", + "成功获取 002846.SZ 的数据\n", + "成功获取 002847.SZ 的数据\n", + "成功获取 002848.SZ 的数据\n", + "成功获取 002849.SZ 的数据\n", + "成功获取 002850.SZ 的数据\n", + "成功获取 002851.SZ 的数据\n", + "成功获取 002852.SZ 的数据\n", + "成功获取 002853.SZ 的数据\n", + "成功获取 002855.SZ 的数据\n", + "成功获取 002856.SZ 的数据\n", + "成功获取 002857.SZ 的数据\n", + "成功获取 002858.SZ 的数据\n", + "成功获取 002859.SZ 的数据\n", + "成功获取 002860.SZ 的数据\n", + "成功获取 002861.SZ 的数据\n", + "成功获取 002862.SZ 的数据\n", + "成功获取 002863.SZ 的数据\n", + "成功获取 002864.SZ 的数据\n", + "成功获取 002865.SZ 的数据\n", + "成功获取 002866.SZ 的数据\n", + "成功获取 002867.SZ 的数据\n", + "成功获取 002868.SZ 的数据\n", + "成功获取 002869.SZ 的数据\n", + "成功获取 002870.SZ 的数据\n", + "成功获取 002871.SZ 的数据\n", + "成功获取 002872.SZ 的数据\n", + "成功获取 002873.SZ 的数据\n", + "成功获取 002875.SZ 的数据\n", + "成功获取 002876.SZ 的数据\n", + "成功获取 002877.SZ 的数据\n", + "成功获取 002878.SZ 的数据\n", + "成功获取 002879.SZ 的数据\n", + "成功获取 002880.SZ 的数据\n", + "成功获取 002881.SZ 的数据\n", + "成功获取 002882.SZ 的数据\n", + "成功获取 002883.SZ 的数据\n", + "成功获取 002884.SZ 的数据\n", + "成功获取 002885.SZ 的数据\n", + "成功获取 002886.SZ 的数据\n", + "成功获取 002887.SZ 的数据\n", + "成功获取 002888.SZ 的数据\n", + "成功获取 002889.SZ 的数据\n", + "成功获取 002890.SZ 的数据\n", + "成功获取 002891.SZ 的数据\n", + "成功获取 002892.SZ 的数据\n", + "成功获取 002893.SZ 的数据\n", + "成功获取 002895.SZ 的数据\n", + "成功获取 002896.SZ 的数据\n", + "成功获取 002897.SZ 的数据\n", + "成功获取 002898.SZ 的数据\n", + "成功获取 002899.SZ 的数据\n", + "成功获取 002900.SZ 的数据\n", + "成功获取 002901.SZ 的数据\n", + "成功获取 002902.SZ 的数据\n", + "成功获取 002903.SZ 的数据\n", + "成功获取 002905.SZ 的数据\n", + "成功获取 002906.SZ 的数据\n", + "成功获取 002907.SZ 的数据\n", + "成功获取 002908.SZ 的数据\n", + "成功获取 002909.SZ 的数据\n", + "成功获取 002910.SZ 的数据\n", + "成功获取 002911.SZ 的数据\n", + "成功获取 002912.SZ 的数据\n", + "成功获取 002913.SZ 的数据\n", + "成功获取 002915.SZ 的数据\n", + "成功获取 002916.SZ 的数据\n", + "成功获取 002917.SZ 的数据\n", + "成功获取 002918.SZ 的数据\n", + "成功获取 002919.SZ 的数据\n", + "成功获取 002920.SZ 的数据\n", + "成功获取 002921.SZ 的数据\n", + "成功获取 002922.SZ 的数据\n", + "成功获取 002923.SZ 的数据\n", + "成功获取 002925.SZ 的数据\n", + "成功获取 002926.SZ 的数据\n", + "成功获取 002927.SZ 的数据\n", + "成功获取 002928.SZ 的数据\n", + "成功获取 002929.SZ 的数据\n", + "成功获取 002930.SZ 的数据\n", + "成功获取 002931.SZ 的数据\n", + "成功获取 002932.SZ 的数据\n", + "成功获取 002933.SZ 的数据\n", + "成功获取 002935.SZ 的数据\n", + "成功获取 002936.SZ 的数据\n", + "成功获取 002937.SZ 的数据\n", + "成功获取 002938.SZ 的数据\n", + "成功获取 002939.SZ 的数据\n", + "成功获取 002940.SZ 的数据\n", + "成功获取 002941.SZ 的数据\n", + "成功获取 002942.SZ 的数据\n", + "成功获取 002943.SZ 的数据\n", + "成功获取 002945.SZ 的数据\n", + "成功获取 002946.SZ 的数据\n", + "成功获取 002947.SZ 的数据\n", + "成功获取 002948.SZ 的数据\n", + "成功获取 002949.SZ 的数据\n", + "成功获取 002950.SZ 的数据\n", + "成功获取 002951.SZ 的数据\n", + "成功获取 002952.SZ 的数据\n", + "成功获取 002953.SZ 的数据\n", + "成功获取 002955.SZ 的数据\n", + "成功获取 002956.SZ 的数据\n", + "成功获取 002957.SZ 的数据\n", + "成功获取 002958.SZ 的数据\n", + "成功获取 002959.SZ 的数据\n", + "成功获取 002960.SZ 的数据\n", + "成功获取 002961.SZ 的数据\n", + "成功获取 002962.SZ 的数据\n", + "成功获取 002963.SZ 的数据\n", + "成功获取 002965.SZ 的数据\n", + "成功获取 002966.SZ 的数据\n", + "成功获取 002967.SZ 的数据\n", + "成功获取 002968.SZ 的数据\n", + "成功获取 002969.SZ 的数据\n", + "成功获取 002970.SZ 的数据\n", + "成功获取 002971.SZ 的数据\n", + "成功获取 002972.SZ 的数据\n", + "成功获取 002973.SZ 的数据\n", + "成功获取 002975.SZ 的数据\n", + "成功获取 002976.SZ 的数据\n", + "成功获取 002977.SZ 的数据\n", + "成功获取 002978.SZ 的数据\n", + "成功获取 002979.SZ 的数据\n", + "成功获取 002980.SZ 的数据\n", + "成功获取 002981.SZ 的数据\n", + "成功获取 002982.SZ 的数据\n", + "成功获取 002983.SZ 的数据\n", + "成功获取 002984.SZ 的数据\n", + "成功获取 002985.SZ 的数据\n", + "成功获取 002986.SZ 的数据\n", + "成功获取 002987.SZ 的数据\n", + "成功获取 002988.SZ 的数据\n", + "成功获取 002989.SZ 的数据\n", + "成功获取 002990.SZ 的数据\n", + "成功获取 002991.SZ 的数据\n", + "成功获取 002992.SZ 的数据\n", + "成功获取 002993.SZ 的数据\n", + "成功获取 002995.SZ 的数据\n", + "成功获取 002996.SZ 的数据\n", + "成功获取 002997.SZ 的数据\n", + "成功获取 002998.SZ 的数据\n", + "成功获取 002999.SZ 的数据\n", + "成功获取 003000.SZ 的数据\n", + "成功获取 003001.SZ 的数据\n", + "成功获取 003002.SZ 的数据\n", + "成功获取 003003.SZ 的数据\n", + "成功获取 003004.SZ 的数据\n", + "成功获取 003005.SZ 的数据\n", + "成功获取 003006.SZ 的数据\n", + "成功获取 003007.SZ 的数据\n", + "成功获取 003008.SZ 的数据\n", + "成功获取 003009.SZ 的数据\n", + "成功获取 003010.SZ 的数据\n", + "成功获取 003011.SZ 的数据\n", + "成功获取 003012.SZ 的数据\n", + "成功获取 003013.SZ 的数据\n", + "成功获取 003015.SZ 的数据\n", + "成功获取 003016.SZ 的数据\n", + "成功获取 003017.SZ 的数据\n", + "成功获取 003018.SZ 的数据\n", + "成功获取 003019.SZ 的数据\n", + "成功获取 003020.SZ 的数据\n", + "成功获取 003021.SZ 的数据\n", + "成功获取 003022.SZ 的数据\n", + "成功获取 003023.SZ 的数据\n", + "成功获取 003025.SZ 的数据\n", + "成功获取 003026.SZ 的数据\n", + "成功获取 003027.SZ 的数据\n", + "成功获取 003028.SZ 的数据\n", + "成功获取 003029.SZ 的数据\n", + "成功获取 003030.SZ 的数据\n", + "成功获取 003031.SZ 的数据\n", + "成功获取 003032.SZ 的数据\n", + "成功获取 003033.SZ 的数据\n", + "成功获取 003035.SZ 的数据\n", + "成功获取 003036.SZ 的数据\n", + "成功获取 003037.SZ 的数据\n", + "成功获取 003038.SZ 的数据\n", + "成功获取 003039.SZ 的数据\n", + "成功获取 003040.SZ 的数据\n", + "成功获取 003041.SZ 的数据\n", + "成功获取 003042.SZ 的数据\n", + "成功获取 003043.SZ 的数据\n", + "成功获取 003816.SZ 的数据\n", + "成功获取 300001.SZ 的数据\n", + "成功获取 300002.SZ 的数据\n", + "成功获取 300003.SZ 的数据\n", + "成功获取 300004.SZ 的数据\n", + "成功获取 300005.SZ 的数据\n", + "成功获取 300006.SZ 的数据\n", + "成功获取 300007.SZ 的数据\n", + "成功获取 300008.SZ 的数据\n", + "成功获取 300009.SZ 的数据\n", + "成功获取 300010.SZ 的数据\n", + "成功获取 300011.SZ 的数据\n", + "成功获取 300012.SZ 的数据\n", + "成功获取 300013.SZ 的数据\n", + "成功获取 300014.SZ 的数据\n", + "成功获取 300015.SZ 的数据\n", + "成功获取 300016.SZ 的数据\n", + "成功获取 300017.SZ 的数据\n", + "成功获取 300018.SZ 的数据\n", + "成功获取 300019.SZ 的数据\n", + "成功获取 300020.SZ 的数据\n", + "成功获取 300021.SZ 的数据\n", + "成功获取 300022.SZ 的数据\n", + "成功获取 300024.SZ 的数据\n", + "成功获取 300025.SZ 的数据\n", + "成功获取 300026.SZ 的数据\n", + "成功获取 300027.SZ 的数据\n", + "成功获取 300029.SZ 的数据\n", + "成功获取 300030.SZ 的数据\n", + "成功获取 300031.SZ 的数据\n", + "成功获取 300032.SZ 的数据\n", + "成功获取 300033.SZ 的数据\n", + "成功获取 300034.SZ 的数据\n", + "成功获取 300035.SZ 的数据\n", + "成功获取 300036.SZ 的数据\n", + "成功获取 300037.SZ 的数据\n", + "成功获取 300039.SZ 的数据\n", + "成功获取 300040.SZ 的数据\n", + "成功获取 300041.SZ 的数据\n", + "成功获取 300042.SZ 的数据\n", + "成功获取 300043.SZ 的数据\n", + "成功获取 300044.SZ 的数据\n", + "成功获取 300045.SZ 的数据\n", + "成功获取 300046.SZ 的数据\n", + "成功获取 300047.SZ 的数据\n", + "成功获取 300048.SZ 的数据\n", + "成功获取 300049.SZ 的数据\n", + "成功获取 300050.SZ 的数据\n", + "成功获取 300051.SZ 的数据\n", + "成功获取 300052.SZ 的数据\n", + "成功获取 300053.SZ 的数据\n", + "成功获取 300054.SZ 的数据\n", + "成功获取 300055.SZ 的数据\n", + "成功获取 300056.SZ 的数据\n", + "成功获取 300057.SZ 的数据\n", + "成功获取 300058.SZ 的数据\n", + "成功获取 300059.SZ 的数据\n", + "成功获取 300061.SZ 的数据\n", + "成功获取 300062.SZ 的数据\n", + "成功获取 300063.SZ 的数据\n", + "成功获取 300065.SZ 的数据\n", + "成功获取 300066.SZ 的数据\n", + "成功获取 300067.SZ 的数据\n", + "成功获取 300068.SZ 的数据\n", + "成功获取 300069.SZ 的数据\n", + "成功获取 300070.SZ 的数据\n", + "成功获取 300071.SZ 的数据\n", + "成功获取 300072.SZ 的数据\n", + "成功获取 300073.SZ 的数据\n", + "成功获取 300074.SZ 的数据\n", + "成功获取 300075.SZ 的数据\n", + "成功获取 300076.SZ 的数据\n", + "成功获取 300077.SZ 的数据\n", + "成功获取 300078.SZ 的数据\n", + "成功获取 300079.SZ 的数据\n", + "成功获取 300080.SZ 的数据\n", + "成功获取 300081.SZ 的数据\n", + "成功获取 300082.SZ 的数据\n", + "成功获取 300083.SZ 的数据\n", + "成功获取 300084.SZ 的数据\n", + "成功获取 300085.SZ 的数据\n", + "成功获取 300086.SZ 的数据\n", + "成功获取 300087.SZ 的数据\n", + "成功获取 300088.SZ 的数据\n", + "成功获取 300091.SZ 的数据\n", + "成功获取 300092.SZ 的数据\n", + "成功获取 300093.SZ 的数据\n", + "成功获取 300094.SZ 的数据\n", + "成功获取 300095.SZ 的数据\n", + "成功获取 300096.SZ 的数据\n", + "成功获取 300097.SZ 的数据\n", + "成功获取 300098.SZ 的数据\n", + "成功获取 300099.SZ 的数据\n", + "成功获取 300100.SZ 的数据\n", + "成功获取 300101.SZ 的数据\n", + "成功获取 300102.SZ 的数据\n", + "成功获取 300103.SZ 的数据\n", + "成功获取 300105.SZ 的数据\n", + "成功获取 300106.SZ 的数据\n", + "成功获取 300107.SZ 的数据\n", + "成功获取 300108.SZ 的数据\n", + "成功获取 300109.SZ 的数据\n", + "成功获取 300110.SZ 的数据\n", + "成功获取 300111.SZ 的数据\n", + "成功获取 300112.SZ 的数据\n", + "成功获取 300113.SZ 的数据\n", + "成功获取 300114.SZ 的数据\n", + "成功获取 300115.SZ 的数据\n", + "成功获取 300117.SZ 的数据\n", + "成功获取 300118.SZ 的数据\n", + "成功获取 300119.SZ 的数据\n", + "成功获取 300120.SZ 的数据\n", + "成功获取 300121.SZ 的数据\n", + "成功获取 300122.SZ 的数据\n", + "成功获取 300123.SZ 的数据\n", + "成功获取 300124.SZ 的数据\n", + "成功获取 300125.SZ 的数据\n", + "成功获取 300126.SZ 的数据\n", + "成功获取 300127.SZ 的数据\n", + "成功获取 300128.SZ 的数据\n", + "成功获取 300129.SZ 的数据\n", + "成功获取 300130.SZ 的数据\n", + "成功获取 300131.SZ 的数据\n", + "成功获取 300132.SZ 的数据\n", + "成功获取 300133.SZ 的数据\n", + "成功获取 300134.SZ 的数据\n", + "成功获取 300135.SZ 的数据\n", + "成功获取 300136.SZ 的数据\n", + "成功获取 300137.SZ 的数据\n", + "成功获取 300138.SZ 的数据\n", + "成功获取 300139.SZ 的数据\n", + "成功获取 300140.SZ 的数据\n", + "成功获取 300141.SZ 的数据\n", + "成功获取 300142.SZ 的数据\n", + "成功获取 300143.SZ 的数据\n", + "成功获取 300144.SZ 的数据\n", + "成功获取 300145.SZ 的数据\n", + "成功获取 300146.SZ 的数据\n", + "成功获取 300147.SZ 的数据\n", + "成功获取 300148.SZ 的数据\n", + "成功获取 300149.SZ 的数据\n", + "成功获取 300150.SZ 的数据\n", + "成功获取 300151.SZ 的数据\n", + "成功获取 300152.SZ 的数据\n", + "成功获取 300153.SZ 的数据\n", + "成功获取 300154.SZ 的数据\n", + "成功获取 300155.SZ 的数据\n", + "成功获取 300157.SZ 的数据\n", + "成功获取 300158.SZ 的数据\n", + "成功获取 300159.SZ 的数据\n", + "成功获取 300160.SZ 的数据\n", + "成功获取 300161.SZ 的数据\n", + "成功获取 300162.SZ 的数据\n", + "成功获取 300163.SZ 的数据\n", + "成功获取 300164.SZ 的数据\n", + "成功获取 300165.SZ 的数据\n", + "成功获取 300166.SZ 的数据\n", + "成功获取 300167.SZ 的数据\n", + "成功获取 300168.SZ 的数据\n", + "成功获取 300169.SZ 的数据\n", + "成功获取 300170.SZ 的数据\n", + "成功获取 300171.SZ 的数据\n", + "成功获取 300172.SZ 的数据\n", + "成功获取 300173.SZ 的数据\n", + "成功获取 300174.SZ 的数据\n", + "成功获取 300175.SZ 的数据\n", + "成功获取 300176.SZ 的数据\n", + "成功获取 300177.SZ 的数据\n", + "成功获取 300179.SZ 的数据\n", + "成功获取 300180.SZ 的数据\n", + "成功获取 300181.SZ 的数据\n", + "成功获取 300182.SZ 的数据\n", + "成功获取 300183.SZ 的数据\n", + "成功获取 300184.SZ 的数据\n", + "成功获取 300185.SZ 的数据\n", + "成功获取 300187.SZ 的数据\n", + "成功获取 300188.SZ 的数据\n", + "成功获取 300189.SZ 的数据\n", + "成功获取 300190.SZ 的数据\n", + "成功获取 300191.SZ 的数据\n", + "成功获取 300192.SZ 的数据\n", + "成功获取 300193.SZ 的数据\n", + "成功获取 300194.SZ 的数据\n", + "成功获取 300195.SZ 的数据\n", + "成功获取 300196.SZ 的数据\n", + "成功获取 300197.SZ 的数据\n", + "成功获取 300198.SZ 的数据\n", + "成功获取 300199.SZ 的数据\n", + "成功获取 300200.SZ 的数据\n", + "成功获取 300201.SZ 的数据\n", + "成功获取 300203.SZ 的数据\n", + "成功获取 300204.SZ 的数据\n", + "成功获取 300205.SZ 的数据\n", + "成功获取 300206.SZ 的数据\n", + "成功获取 300207.SZ 的数据\n", + "成功获取 300208.SZ 的数据\n", + "成功获取 300209.SZ 的数据\n", + "成功获取 300210.SZ 的数据\n", + "成功获取 300211.SZ 的数据\n", + "成功获取 300212.SZ 的数据\n", + "成功获取 300213.SZ 的数据\n", + "成功获取 300214.SZ 的数据\n", + "成功获取 300215.SZ 的数据\n", + "成功获取 300217.SZ 的数据\n", + "成功获取 300218.SZ 的数据\n", + "成功获取 300219.SZ 的数据\n", + "成功获取 300220.SZ 的数据\n", + "成功获取 300221.SZ 的数据\n", + "成功获取 300222.SZ 的数据\n", + "成功获取 300223.SZ 的数据\n", + "成功获取 300224.SZ 的数据\n", + "成功获取 300225.SZ 的数据\n", + "成功获取 300226.SZ 的数据\n", + "成功获取 300227.SZ 的数据\n", + "成功获取 300228.SZ 的数据\n", + "成功获取 300229.SZ 的数据\n", + "成功获取 300230.SZ 的数据\n", + "成功获取 300231.SZ 的数据\n", + "成功获取 300232.SZ 的数据\n", + "成功获取 300233.SZ 的数据\n", + "成功获取 300234.SZ 的数据\n", + "成功获取 300235.SZ 的数据\n", + "成功获取 300236.SZ 的数据\n", + "成功获取 300237.SZ 的数据\n", + "成功获取 300238.SZ 的数据\n", + "成功获取 300239.SZ 的数据\n", + "成功获取 300240.SZ 的数据\n", + "成功获取 300241.SZ 的数据\n", + "成功获取 300242.SZ 的数据\n", + "成功获取 300243.SZ 的数据\n", + "成功获取 300244.SZ 的数据\n", + "成功获取 300245.SZ 的数据\n", + "成功获取 300246.SZ 的数据\n", + "成功获取 300247.SZ 的数据\n", + "成功获取 300248.SZ 的数据\n", + "成功获取 300249.SZ 的数据\n", + "成功获取 300250.SZ 的数据\n", + "成功获取 300251.SZ 的数据\n", + "成功获取 300252.SZ 的数据\n", + "成功获取 300253.SZ 的数据\n", + "成功获取 300254.SZ 的数据\n", + "成功获取 300255.SZ 的数据\n", + "成功获取 300256.SZ 的数据\n", + "成功获取 300257.SZ 的数据\n", + "成功获取 300258.SZ 的数据\n", + "成功获取 300259.SZ 的数据\n", + "成功获取 300260.SZ 的数据\n", + "成功获取 300261.SZ 的数据\n", + "成功获取 300263.SZ 的数据\n", + "成功获取 300264.SZ 的数据\n", + "成功获取 300265.SZ 的数据\n", + "成功获取 300266.SZ 的数据\n", + "成功获取 300267.SZ 的数据\n", + "成功获取 300268.SZ 的数据\n", + "成功获取 300269.SZ 的数据\n", + "成功获取 300270.SZ 的数据\n", + "成功获取 300271.SZ 的数据\n", + "成功获取 300272.SZ 的数据\n", + "成功获取 300274.SZ 的数据\n", + "成功获取 300275.SZ 的数据\n", + "成功获取 300276.SZ 的数据\n", + "成功获取 300277.SZ 的数据\n", + "成功获取 300278.SZ 的数据\n", + "成功获取 300279.SZ 的数据\n", + "成功获取 300280.SZ 的数据\n", + "成功获取 300281.SZ 的数据\n", + "成功获取 300283.SZ 的数据\n", + "成功获取 300284.SZ 的数据\n", + "成功获取 300285.SZ 的数据\n", + "成功获取 300286.SZ 的数据\n", + "成功获取 300287.SZ 的数据\n", + "成功获取 300288.SZ 的数据\n", + "成功获取 300289.SZ 的数据\n", + "成功获取 300290.SZ 的数据\n", + "成功获取 300291.SZ 的数据\n", + "成功获取 300292.SZ 的数据\n", + "成功获取 300293.SZ 的数据\n", + "成功获取 300294.SZ 的数据\n", + "成功获取 300295.SZ 的数据\n", + "成功获取 300296.SZ 的数据\n", + "成功获取 300298.SZ 的数据\n", + "成功获取 300299.SZ 的数据\n", + "成功获取 300300.SZ 的数据\n", + "成功获取 300301.SZ 的数据\n", + "成功获取 300302.SZ 的数据\n", + "成功获取 300303.SZ 的数据\n", + "成功获取 300304.SZ 的数据\n", + "成功获取 300305.SZ 的数据\n", + "成功获取 300306.SZ 的数据\n", + "成功获取 300307.SZ 的数据\n", + "成功获取 300308.SZ 的数据\n", + "成功获取 300310.SZ 的数据\n", + "成功获取 300311.SZ 的数据\n", + "成功获取 300313.SZ 的数据\n", + "成功获取 300314.SZ 的数据\n", + "成功获取 300315.SZ 的数据\n", + "成功获取 300316.SZ 的数据\n", + "成功获取 300317.SZ 的数据\n", + "成功获取 300318.SZ 的数据\n", + "成功获取 300319.SZ 的数据\n", + "成功获取 300320.SZ 的数据\n", + "成功获取 300321.SZ 的数据\n", + "成功获取 300322.SZ 的数据\n", + "成功获取 300323.SZ 的数据\n", + "成功获取 300324.SZ 的数据\n", + "成功获取 300326.SZ 的数据\n", + "成功获取 300327.SZ 的数据\n", + "成功获取 300328.SZ 的数据\n", + "成功获取 300329.SZ 的数据\n", + "成功获取 300331.SZ 的数据\n", + "成功获取 300332.SZ 的数据\n", + "成功获取 300333.SZ 的数据\n", + "成功获取 300334.SZ 的数据\n", + "成功获取 300335.SZ 的数据\n", + "成功获取 300337.SZ 的数据\n", + "成功获取 300338.SZ 的数据\n", + "成功获取 300339.SZ 的数据\n", + "成功获取 300340.SZ 的数据\n", + "成功获取 300341.SZ 的数据\n", + "成功获取 300342.SZ 的数据\n", + "成功获取 300343.SZ 的数据\n", + "成功获取 300344.SZ 的数据\n", + "成功获取 300345.SZ 的数据\n", + "成功获取 300346.SZ 的数据\n", + "成功获取 300347.SZ 的数据\n", + "成功获取 300348.SZ 的数据\n", + "成功获取 300349.SZ 的数据\n", + "成功获取 300350.SZ 的数据\n", + "成功获取 300351.SZ 的数据\n", + "成功获取 300352.SZ 的数据\n", + "成功获取 300353.SZ 的数据\n", + "成功获取 300354.SZ 的数据\n", + "成功获取 300355.SZ 的数据\n", + "成功获取 300357.SZ 的数据\n", + "成功获取 300358.SZ 的数据\n", + "成功获取 300359.SZ 的数据\n", + "成功获取 300360.SZ 的数据\n", + "成功获取 300363.SZ 的数据\n", + "成功获取 300364.SZ 的数据\n", + "成功获取 300365.SZ 的数据\n", + "成功获取 300366.SZ 的数据\n", + "成功获取 300368.SZ 的数据\n", + "成功获取 300369.SZ 的数据\n", + "成功获取 300370.SZ 的数据\n", + "成功获取 300371.SZ 的数据\n", + "成功获取 300373.SZ 的数据\n", + "成功获取 300374.SZ 的数据\n", + "成功获取 300375.SZ 的数据\n", + "成功获取 300376.SZ 的数据\n", + "成功获取 300377.SZ 的数据\n", + "成功获取 300378.SZ 的数据\n", + "成功获取 300379.SZ 的数据\n", + "成功获取 300380.SZ 的数据\n", + "成功获取 300381.SZ 的数据\n", + "成功获取 300382.SZ 的数据\n", + "成功获取 300383.SZ 的数据\n", + "成功获取 300384.SZ 的数据\n", + "成功获取 300385.SZ 的数据\n", + "成功获取 300386.SZ 的数据\n", + "成功获取 300387.SZ 的数据\n", + "成功获取 300388.SZ 的数据\n", + "成功获取 300389.SZ 的数据\n", + "成功获取 300390.SZ 的数据\n", + "成功获取 300391.SZ 的数据\n", + "成功获取 300393.SZ 的数据\n", + "成功获取 300394.SZ 的数据\n", + "成功获取 300395.SZ 的数据\n", + "成功获取 300396.SZ 的数据\n", + "成功获取 300397.SZ 的数据\n", + "成功获取 300398.SZ 的数据\n", + "成功获取 300399.SZ 的数据\n", + "成功获取 300400.SZ 的数据\n", + "成功获取 300401.SZ 的数据\n", + "成功获取 300402.SZ 的数据\n", + "成功获取 300403.SZ 的数据\n", + "成功获取 300404.SZ 的数据\n", + "成功获取 300405.SZ 的数据\n", + "成功获取 300406.SZ 的数据\n", + "成功获取 300407.SZ 的数据\n", + "成功获取 300408.SZ 的数据\n", + "成功获取 300409.SZ 的数据\n", + "成功获取 300410.SZ 的数据\n", + "成功获取 300411.SZ 的数据\n", + "成功获取 300412.SZ 的数据\n", + "成功获取 300413.SZ 的数据\n", + "成功获取 300414.SZ 的数据\n", + "成功获取 300415.SZ 的数据\n", + "成功获取 300416.SZ 的数据\n", + "成功获取 300417.SZ 的数据\n", + "成功获取 300418.SZ 的数据\n", + "成功获取 300419.SZ 的数据\n", + "成功获取 300420.SZ 的数据\n", + "成功获取 300421.SZ 的数据\n", + "成功获取 300422.SZ 的数据\n", + "成功获取 300423.SZ 的数据\n", + "成功获取 300424.SZ 的数据\n", + "成功获取 300425.SZ 的数据\n", + "成功获取 300426.SZ 的数据\n", + "成功获取 300427.SZ 的数据\n", + "成功获取 300428.SZ 的数据\n", + "成功获取 300429.SZ 的数据\n", + "成功获取 300430.SZ 的数据\n", + "成功获取 300432.SZ 的数据\n", + "成功获取 300433.SZ 的数据\n", + "成功获取 300434.SZ 的数据\n", + "成功获取 300435.SZ 的数据\n", + "成功获取 300436.SZ 的数据\n", + "成功获取 300437.SZ 的数据\n", + "成功获取 300438.SZ 的数据\n", + "成功获取 300439.SZ 的数据\n", + "成功获取 300440.SZ 的数据\n", + "成功获取 300441.SZ 的数据\n", + "成功获取 300442.SZ 的数据\n", + "成功获取 300443.SZ 的数据\n", + "成功获取 300444.SZ 的数据\n", + "成功获取 300445.SZ 的数据\n", + "成功获取 300446.SZ 的数据\n", + "成功获取 300447.SZ 的数据\n", + "成功获取 300448.SZ 的数据\n", + "成功获取 300449.SZ 的数据\n", + "成功获取 300450.SZ 的数据\n", + "成功获取 300451.SZ 的数据\n", + "成功获取 300452.SZ 的数据\n", + "成功获取 300453.SZ 的数据\n", + "成功获取 300454.SZ 的数据\n", + "成功获取 300455.SZ 的数据\n", + "成功获取 300456.SZ 的数据\n", + "成功获取 300457.SZ 的数据\n", + "成功获取 300458.SZ 的数据\n", + "成功获取 300459.SZ 的数据\n", + "成功获取 300460.SZ 的数据\n", + "成功获取 300461.SZ 的数据\n", + "成功获取 300462.SZ 的数据\n", + "成功获取 300463.SZ 的数据\n", + "成功获取 300464.SZ 的数据\n", + "成功获取 300465.SZ 的数据\n", + "成功获取 300466.SZ 的数据\n", + "成功获取 300467.SZ 的数据\n", + "成功获取 300468.SZ 的数据\n", + "成功获取 300469.SZ 的数据\n", + "成功获取 300470.SZ 的数据\n", + "成功获取 300471.SZ 的数据\n", + "成功获取 300472.SZ 的数据\n", + "成功获取 300473.SZ 的数据\n", + "成功获取 300474.SZ 的数据\n", + "成功获取 300475.SZ 的数据\n", + "成功获取 300476.SZ 的数据\n", + "成功获取 300477.SZ 的数据\n", + "成功获取 300478.SZ 的数据\n", + "成功获取 300479.SZ 的数据\n", + "成功获取 300480.SZ 的数据\n", + "成功获取 300481.SZ 的数据\n", + "成功获取 300482.SZ 的数据\n", + "成功获取 300483.SZ 的数据\n", + "成功获取 300484.SZ 的数据\n", + "成功获取 300485.SZ 的数据\n", + "成功获取 300486.SZ 的数据\n", + "成功获取 300487.SZ 的数据\n", + "成功获取 300488.SZ 的数据\n", + "成功获取 300489.SZ 的数据\n", + "成功获取 300490.SZ 的数据\n", + "成功获取 300491.SZ 的数据\n", + "成功获取 300492.SZ 的数据\n", + "成功获取 300493.SZ 的数据\n", + "成功获取 300494.SZ 的数据\n", + "成功获取 300496.SZ 的数据\n", + "成功获取 300497.SZ 的数据\n", + "成功获取 300498.SZ 的数据\n", + "成功获取 300499.SZ 的数据\n", + "成功获取 300500.SZ 的数据\n", + "成功获取 300501.SZ 的数据\n", + "成功获取 300502.SZ 的数据\n", + "成功获取 300503.SZ 的数据\n", + "成功获取 300504.SZ 的数据\n", + "成功获取 300505.SZ 的数据\n", + "成功获取 300506.SZ 的数据\n", + "成功获取 300507.SZ 的数据\n", + "成功获取 300508.SZ 的数据\n", + "成功获取 300509.SZ 的数据\n", + "成功获取 300510.SZ 的数据\n", + "成功获取 300511.SZ 的数据\n", + "成功获取 300512.SZ 的数据\n", + "成功获取 300513.SZ 的数据\n", + "成功获取 300514.SZ 的数据\n", + "成功获取 300515.SZ 的数据\n", + "成功获取 300516.SZ 的数据\n", + "成功获取 300517.SZ 的数据\n", + "成功获取 300518.SZ 的数据\n", + "成功获取 300519.SZ 的数据\n", + "成功获取 300520.SZ 的数据\n", + "成功获取 300521.SZ 的数据\n", + "成功获取 300522.SZ 的数据\n", + "成功获取 300523.SZ 的数据\n", + "成功获取 300525.SZ 的数据\n", + "成功获取 300527.SZ 的数据\n", + "成功获取 300528.SZ 的数据\n", + "成功获取 300529.SZ 的数据\n", + "成功获取 300530.SZ 的数据\n", + "成功获取 300531.SZ 的数据\n", + "成功获取 300532.SZ 的数据\n", + "成功获取 300533.SZ 的数据\n", + "成功获取 300534.SZ 的数据\n", + "成功获取 300535.SZ 的数据\n", + "成功获取 300536.SZ 的数据\n", + "成功获取 300537.SZ 的数据\n", + "成功获取 300538.SZ 的数据\n", + "成功获取 300539.SZ 的数据\n", + "成功获取 300540.SZ 的数据\n", + "成功获取 300541.SZ 的数据\n", + "成功获取 300542.SZ 的数据\n", + "成功获取 300543.SZ 的数据\n", + "成功获取 300545.SZ 的数据\n", + "成功获取 300546.SZ 的数据\n", + "成功获取 300547.SZ 的数据\n", + "成功获取 300548.SZ 的数据\n", + "成功获取 300549.SZ 的数据\n", + "成功获取 300550.SZ 的数据\n", + "成功获取 300551.SZ 的数据\n", + "成功获取 300552.SZ 的数据\n", + "成功获取 300553.SZ 的数据\n", + "成功获取 300554.SZ 的数据\n", + "成功获取 300555.SZ 的数据\n", + "成功获取 300556.SZ 的数据\n", + "成功获取 300557.SZ 的数据\n", + "成功获取 300558.SZ 的数据\n", + "成功获取 300559.SZ 的数据\n", + "成功获取 300560.SZ 的数据\n", + "成功获取 300561.SZ 的数据\n", + "成功获取 300562.SZ 的数据\n", + "成功获取 300563.SZ 的数据\n", + "成功获取 300564.SZ 的数据\n", + "成功获取 300565.SZ 的数据\n", + "成功获取 300566.SZ 的数据\n", + "成功获取 300567.SZ 的数据\n", + "成功获取 300568.SZ 的数据\n", + "成功获取 300569.SZ 的数据\n", + "成功获取 300570.SZ 的数据\n", + "成功获取 300571.SZ 的数据\n", + "成功获取 300572.SZ 的数据\n", + "成功获取 300573.SZ 的数据\n", + "成功获取 300575.SZ 的数据\n", + "成功获取 300576.SZ 的数据\n", + "成功获取 300577.SZ 的数据\n", + "成功获取 300578.SZ 的数据\n", + "成功获取 300579.SZ 的数据\n", + "成功获取 300580.SZ 的数据\n", + "成功获取 300581.SZ 的数据\n", + "成功获取 300582.SZ 的数据\n", + "成功获取 300583.SZ 的数据\n", + "成功获取 300584.SZ 的数据\n", + "成功获取 300585.SZ 的数据\n", + "成功获取 300586.SZ 的数据\n", + "成功获取 300587.SZ 的数据\n", + "成功获取 300588.SZ 的数据\n", + "成功获取 300589.SZ 的数据\n", + "成功获取 300590.SZ 的数据\n", + "成功获取 300591.SZ 的数据\n", + "成功获取 300592.SZ 的数据\n", + "成功获取 300593.SZ 的数据\n", + "成功获取 300594.SZ 的数据\n", + "成功获取 300595.SZ 的数据\n", + "成功获取 300596.SZ 的数据\n", + "成功获取 300597.SZ 的数据\n", + "成功获取 300598.SZ 的数据\n", + "成功获取 300599.SZ 的数据\n", + "成功获取 300600.SZ 的数据\n", + "成功获取 300601.SZ 的数据\n", + "成功获取 300602.SZ 的数据\n", + "成功获取 300603.SZ 的数据\n", + "成功获取 300604.SZ 的数据\n", + "成功获取 300605.SZ 的数据\n", + "成功获取 300606.SZ 的数据\n", + "成功获取 300607.SZ 的数据\n", + "成功获取 300608.SZ 的数据\n", + "成功获取 300609.SZ 的数据\n", + "成功获取 300610.SZ 的数据\n", + "成功获取 300611.SZ 的数据\n", + "成功获取 300612.SZ 的数据\n", + "成功获取 300613.SZ 的数据\n", + "成功获取 300614.SZ 的数据\n", + "成功获取 300615.SZ 的数据\n", + "成功获取 300616.SZ 的数据\n", + "成功获取 300617.SZ 的数据\n", + "成功获取 300618.SZ 的数据\n", + "成功获取 300619.SZ 的数据\n", + "成功获取 300620.SZ 的数据\n", + "成功获取 300621.SZ 的数据\n", + "成功获取 300622.SZ 的数据\n", + "成功获取 300623.SZ 的数据\n", + "成功获取 300624.SZ 的数据\n", + "成功获取 300625.SZ 的数据\n", + "成功获取 300626.SZ 的数据\n", + "成功获取 300627.SZ 的数据\n", + "成功获取 300628.SZ 的数据\n", + "成功获取 300629.SZ 的数据\n", + "成功获取 300630.SZ 的数据\n", + "成功获取 300631.SZ 的数据\n", + "成功获取 300632.SZ 的数据\n", + "成功获取 300633.SZ 的数据\n", + "成功获取 300634.SZ 的数据\n", + "成功获取 300635.SZ 的数据\n", + "成功获取 300636.SZ 的数据\n", + "成功获取 300637.SZ 的数据\n", + "成功获取 300638.SZ 的数据\n", + "成功获取 300639.SZ 的数据\n", + "成功获取 300640.SZ 的数据\n", + "成功获取 300641.SZ 的数据\n", + "成功获取 300642.SZ 的数据\n", + "成功获取 300643.SZ 的数据\n", + "成功获取 300644.SZ 的数据\n", + "成功获取 300645.SZ 的数据\n", + "成功获取 300647.SZ 的数据\n", + "成功获取 300648.SZ 的数据\n", + "成功获取 300649.SZ 的数据\n", + "成功获取 300650.SZ 的数据\n", + "成功获取 300651.SZ 的数据\n", + "成功获取 300652.SZ 的数据\n", + "成功获取 300653.SZ 的数据\n", + "成功获取 300654.SZ 的数据\n", + "成功获取 300655.SZ 的数据\n", + "成功获取 300656.SZ 的数据\n", + "成功获取 300657.SZ 的数据\n", + "成功获取 300658.SZ 的数据\n", + "成功获取 300659.SZ 的数据\n", + "成功获取 300660.SZ 的数据\n", + "成功获取 300661.SZ 的数据\n", + "成功获取 300662.SZ 的数据\n", + "成功获取 300663.SZ 的数据\n", + "成功获取 300664.SZ 的数据\n", + "成功获取 300665.SZ 的数据\n", + "成功获取 300666.SZ 的数据\n", + "成功获取 300667.SZ 的数据\n", + "成功获取 300668.SZ 的数据\n", + "成功获取 300669.SZ 的数据\n", + "成功获取 300670.SZ 的数据\n", + "成功获取 300671.SZ 的数据\n", + "成功获取 300672.SZ 的数据\n", + "成功获取 300673.SZ 的数据\n", + "成功获取 300674.SZ 的数据\n", + "成功获取 300675.SZ 的数据\n", + "成功获取 300676.SZ 的数据\n", + "成功获取 300677.SZ 的数据\n", + "成功获取 300678.SZ 的数据\n", + "成功获取 300679.SZ 的数据\n", + "成功获取 300680.SZ 的数据\n", + "成功获取 300681.SZ 的数据\n", + "成功获取 300682.SZ 的数据\n", + "成功获取 300683.SZ 的数据\n", + "成功获取 300684.SZ 的数据\n", + "成功获取 300685.SZ 的数据\n", + "成功获取 300686.SZ 的数据\n", + "成功获取 300687.SZ 的数据\n", + "成功获取 300688.SZ 的数据\n", + "成功获取 300689.SZ 的数据\n", + "成功获取 300690.SZ 的数据\n", + "成功获取 300691.SZ 的数据\n", + "成功获取 300692.SZ 的数据\n", + "成功获取 300693.SZ 的数据\n", + "成功获取 300694.SZ 的数据\n", + "成功获取 300695.SZ 的数据\n", + "成功获取 300696.SZ 的数据\n", + "成功获取 300697.SZ 的数据\n", + "成功获取 300698.SZ 的数据\n", + "成功获取 300699.SZ 的数据\n", + "成功获取 300700.SZ 的数据\n", + "成功获取 300701.SZ 的数据\n", + "成功获取 300702.SZ 的数据\n", + "成功获取 300703.SZ 的数据\n", + "成功获取 300705.SZ 的数据\n", + "成功获取 300706.SZ 的数据\n", + "成功获取 300707.SZ 的数据\n", + "成功获取 300708.SZ 的数据\n", + "成功获取 300709.SZ 的数据\n", + "成功获取 300710.SZ 的数据\n", + "成功获取 300711.SZ 的数据\n", + "成功获取 300712.SZ 的数据\n", + "成功获取 300713.SZ 的数据\n", + "成功获取 300715.SZ 的数据\n", + "成功获取 300716.SZ 的数据\n", + "成功获取 300717.SZ 的数据\n", + "成功获取 300718.SZ 的数据\n", + "成功获取 300719.SZ 的数据\n", + "成功获取 300720.SZ 的数据\n", + "成功获取 300721.SZ 的数据\n", + "成功获取 300722.SZ 的数据\n", + "成功获取 300723.SZ 的数据\n", + "成功获取 300724.SZ 的数据\n", + "成功获取 300725.SZ 的数据\n", + "成功获取 300726.SZ 的数据\n", + "成功获取 300727.SZ 的数据\n", + "成功获取 300729.SZ 的数据\n", + "成功获取 300730.SZ 的数据\n", + "成功获取 300731.SZ 的数据\n", + "成功获取 300732.SZ 的数据\n", + "成功获取 300733.SZ 的数据\n", + "成功获取 300735.SZ 的数据\n", + "成功获取 300736.SZ 的数据\n", + "成功获取 300737.SZ 的数据\n", + "成功获取 300738.SZ 的数据\n", + "成功获取 300739.SZ 的数据\n", + "成功获取 300740.SZ 的数据\n", + "成功获取 300741.SZ 的数据\n", + "成功获取 300743.SZ 的数据\n", + "成功获取 300745.SZ 的数据\n", + "成功获取 300746.SZ 的数据\n", + "成功获取 300747.SZ 的数据\n", + "成功获取 300748.SZ 的数据\n", + "成功获取 300749.SZ 的数据\n", + "成功获取 300750.SZ 的数据\n", + "成功获取 300751.SZ 的数据\n", + "成功获取 300752.SZ 的数据\n", + "成功获取 300753.SZ 的数据\n", + "成功获取 300755.SZ 的数据\n", + "成功获取 300756.SZ 的数据\n", + "成功获取 300757.SZ 的数据\n", + "成功获取 300758.SZ 的数据\n", + "成功获取 300759.SZ 的数据\n", + "成功获取 300760.SZ 的数据\n", + "成功获取 300761.SZ 的数据\n", + "成功获取 300762.SZ 的数据\n", + "成功获取 300763.SZ 的数据\n", + "成功获取 300765.SZ 的数据\n", + "成功获取 300766.SZ 的数据\n", + "成功获取 300767.SZ 的数据\n", + "成功获取 300768.SZ 的数据\n", + "成功获取 300769.SZ 的数据\n", + "成功获取 300770.SZ 的数据\n", + "成功获取 300771.SZ 的数据\n", + "成功获取 300772.SZ 的数据\n", + "成功获取 300773.SZ 的数据\n", + "成功获取 300774.SZ 的数据\n", + "成功获取 300775.SZ 的数据\n", + "成功获取 300776.SZ 的数据\n", + "成功获取 300777.SZ 的数据\n", + "成功获取 300778.SZ 的数据\n", + "成功获取 300779.SZ 的数据\n", + "成功获取 300780.SZ 的数据\n", + "成功获取 300781.SZ 的数据\n", + "成功获取 300782.SZ 的数据\n", + "成功获取 300783.SZ 的数据\n", + "成功获取 300784.SZ 的数据\n", + "成功获取 300785.SZ 的数据\n", + "成功获取 300786.SZ 的数据\n", + "成功获取 300787.SZ 的数据\n", + "成功获取 300788.SZ 的数据\n", + "成功获取 300789.SZ 的数据\n", + "成功获取 300790.SZ 的数据\n", + "成功获取 300791.SZ 的数据\n", + "成功获取 300792.SZ 的数据\n", + "成功获取 300793.SZ 的数据\n", + "成功获取 300795.SZ 的数据\n", + "成功获取 300796.SZ 的数据\n", + "成功获取 300797.SZ 的数据\n", + "成功获取 300798.SZ 的数据\n", + "成功获取 300800.SZ 的数据\n", + "成功获取 300801.SZ 的数据\n", + "成功获取 300802.SZ 的数据\n", + "成功获取 300803.SZ 的数据\n", + "成功获取 300804.SZ 的数据\n", + "成功获取 300805.SZ 的数据\n", + "成功获取 300806.SZ 的数据\n", + "成功获取 300807.SZ 的数据\n", + "成功获取 300808.SZ 的数据\n", + "成功获取 300809.SZ 的数据\n", + "成功获取 300810.SZ 的数据\n", + "成功获取 300811.SZ 的数据\n", + "成功获取 300812.SZ 的数据\n", + "成功获取 300813.SZ 的数据\n", + "成功获取 300814.SZ 的数据\n", + "成功获取 300815.SZ 的数据\n", + "成功获取 300816.SZ 的数据\n", + "成功获取 300817.SZ 的数据\n", + "成功获取 300818.SZ 的数据\n", + "成功获取 300819.SZ 的数据\n", + "成功获取 300820.SZ 的数据\n", + "成功获取 300821.SZ 的数据\n", + "成功获取 300822.SZ 的数据\n", + "成功获取 300823.SZ 的数据\n", + "成功获取 300824.SZ 的数据\n", + "成功获取 300825.SZ 的数据\n", + "成功获取 300826.SZ 的数据\n", + "成功获取 300827.SZ 的数据\n", + "成功获取 300828.SZ 的数据\n", + "成功获取 300829.SZ 的数据\n", + "成功获取 300830.SZ 的数据\n", + "成功获取 300831.SZ 的数据\n", + "成功获取 300832.SZ 的数据\n", + "成功获取 300833.SZ 的数据\n", + "成功获取 300834.SZ 的数据\n", + "成功获取 300835.SZ 的数据\n", + "成功获取 300836.SZ 的数据\n", + "成功获取 300837.SZ 的数据\n", + "成功获取 300838.SZ 的数据\n", + "成功获取 300839.SZ 的数据\n", + "成功获取 300840.SZ 的数据\n", + "成功获取 300841.SZ 的数据\n", + "成功获取 300842.SZ 的数据\n", + "成功获取 300843.SZ 的数据\n", + "成功获取 300844.SZ 的数据\n", + "成功获取 300845.SZ 的数据\n", + "成功获取 300846.SZ 的数据\n", + "成功获取 300847.SZ 的数据\n", + "成功获取 300848.SZ 的数据\n", + "成功获取 300849.SZ 的数据\n", + "成功获取 300850.SZ 的数据\n", + "成功获取 300851.SZ 的数据\n", + "成功获取 300852.SZ 的数据\n", + "成功获取 300853.SZ 的数据\n", + "成功获取 300854.SZ 的数据\n", + "成功获取 300855.SZ 的数据\n", + "成功获取 300856.SZ 的数据\n", + "成功获取 300857.SZ 的数据\n", + "成功获取 300858.SZ 的数据\n", + "成功获取 300859.SZ 的数据\n", + "成功获取 300860.SZ 的数据\n", + "成功获取 300861.SZ 的数据\n", + "成功获取 300862.SZ 的数据\n", + "成功获取 300863.SZ 的数据\n", + "成功获取 300864.SZ 的数据\n", + "成功获取 300865.SZ 的数据\n", + "成功获取 300866.SZ 的数据\n", + "成功获取 300867.SZ 的数据\n", + "成功获取 300868.SZ 的数据\n", + "成功获取 300869.SZ 的数据\n", + "成功获取 300870.SZ 的数据\n", + "成功获取 300871.SZ 的数据\n", + "成功获取 300872.SZ 的数据\n", + "成功获取 300873.SZ 的数据\n", + "成功获取 300875.SZ 的数据\n", + "成功获取 300876.SZ 的数据\n", + "成功获取 300877.SZ 的数据\n", + "成功获取 300878.SZ 的数据\n", + "成功获取 300879.SZ 的数据\n", + "成功获取 300880.SZ 的数据\n", + "成功获取 300881.SZ 的数据\n", + "成功获取 300882.SZ 的数据\n", + "成功获取 300883.SZ 的数据\n", + "成功获取 300884.SZ 的数据\n", + "成功获取 300885.SZ 的数据\n", + "成功获取 300886.SZ 的数据\n", + "成功获取 300887.SZ 的数据\n", + "成功获取 300888.SZ 的数据\n", + "成功获取 300889.SZ 的数据\n", + "成功获取 300890.SZ 的数据\n", + "成功获取 300891.SZ 的数据\n", + "成功获取 300892.SZ 的数据\n", + "成功获取 300893.SZ 的数据\n", + "成功获取 300894.SZ 的数据\n", + "成功获取 300895.SZ 的数据\n", + "成功获取 300896.SZ 的数据\n", + "成功获取 300897.SZ 的数据\n", + "成功获取 300898.SZ 的数据\n", + "成功获取 300899.SZ 的数据\n", + "成功获取 300900.SZ 的数据\n", + "成功获取 300901.SZ 的数据\n", + "成功获取 300902.SZ 的数据\n", + "成功获取 300903.SZ 的数据\n", + "成功获取 300904.SZ 的数据\n", + "成功获取 300905.SZ 的数据\n", + "成功获取 300906.SZ 的数据\n", + "成功获取 300907.SZ 的数据\n", + "成功获取 300908.SZ 的数据\n", + "成功获取 300909.SZ 的数据\n", + "成功获取 300910.SZ 的数据\n", + "成功获取 300911.SZ 的数据\n", + "成功获取 300912.SZ 的数据\n", + "成功获取 300913.SZ 的数据\n", + "成功获取 300915.SZ 的数据\n", + "成功获取 300916.SZ 的数据\n", + "成功获取 300917.SZ 的数据\n", + "成功获取 300918.SZ 的数据\n", + "成功获取 300919.SZ 的数据\n", + "成功获取 300920.SZ 的数据\n", + "成功获取 300921.SZ 的数据\n", + "成功获取 300922.SZ 的数据\n", + "成功获取 300923.SZ 的数据\n", + "成功获取 300925.SZ 的数据\n", + "成功获取 300926.SZ 的数据\n", + "成功获取 300927.SZ 的数据\n", + "成功获取 300928.SZ 的数据\n", + "成功获取 300929.SZ 的数据\n", + "成功获取 300930.SZ 的数据\n", + "成功获取 300931.SZ 的数据\n", + "成功获取 300932.SZ 的数据\n", + "成功获取 300933.SZ 的数据\n", + "成功获取 300935.SZ 的数据\n", + "成功获取 300936.SZ 的数据\n", + "成功获取 300937.SZ 的数据\n", + "成功获取 300938.SZ 的数据\n", + "成功获取 300939.SZ 的数据\n", + "成功获取 300940.SZ 的数据\n", + "成功获取 300941.SZ 的数据\n", + "成功获取 300942.SZ 的数据\n", + "成功获取 300943.SZ 的数据\n", + "成功获取 300945.SZ 的数据\n", + "成功获取 300946.SZ 的数据\n", + "成功获取 300947.SZ 的数据\n", + "成功获取 300948.SZ 的数据\n", + "成功获取 300949.SZ 的数据\n", + "成功获取 300950.SZ 的数据\n", + "成功获取 300951.SZ 的数据\n", + "成功获取 300952.SZ 的数据\n", + "成功获取 300953.SZ 的数据\n", + "成功获取 300955.SZ 的数据\n", + "成功获取 300956.SZ 的数据\n", + "成功获取 300957.SZ 的数据\n", + "成功获取 300958.SZ 的数据\n", + "成功获取 300959.SZ 的数据\n", + "成功获取 300960.SZ 的数据\n", + "成功获取 300961.SZ 的数据\n", + "成功获取 300962.SZ 的数据\n", + "成功获取 300963.SZ 的数据\n", + "成功获取 300964.SZ 的数据\n", + "成功获取 300965.SZ 的数据\n", + "成功获取 300966.SZ 的数据\n", + "成功获取 300967.SZ 的数据\n", + "成功获取 300968.SZ 的数据\n", + "已调用300次API,等待 3.29 秒以满足速率限制...\n", + "成功获取 300969.SZ 的数据\n", + "成功获取 300970.SZ 的数据\n", + "成功获取 300971.SZ 的数据\n", + "成功获取 300972.SZ 的数据\n", + "成功获取 300973.SZ 的数据\n", + "成功获取 300975.SZ 的数据\n", + "成功获取 300976.SZ 的数据\n", + "成功获取 300977.SZ 的数据\n", + "成功获取 300978.SZ 的数据\n", + "成功获取 300979.SZ 的数据\n", + "成功获取 300980.SZ 的数据\n", + "成功获取 300981.SZ 的数据\n", + "成功获取 300982.SZ 的数据\n", + "成功获取 300983.SZ 的数据\n", + "成功获取 300984.SZ 的数据\n", + "成功获取 300985.SZ 的数据\n", + "成功获取 300986.SZ 的数据\n", + "成功获取 300987.SZ 的数据\n", + "成功获取 300988.SZ 的数据\n", + "成功获取 300989.SZ 的数据\n", + "成功获取 300990.SZ 的数据\n", + "成功获取 300991.SZ 的数据\n", + "成功获取 300992.SZ 的数据\n", + "成功获取 300993.SZ 的数据\n", + "成功获取 300994.SZ 的数据\n", + "成功获取 300995.SZ 的数据\n", + "成功获取 300996.SZ 的数据\n", + "成功获取 300997.SZ 的数据\n", + "成功获取 300998.SZ 的数据\n", + "成功获取 300999.SZ 的数据\n", + "成功获取 301000.SZ 的数据\n", + "成功获取 301001.SZ 的数据\n", + "成功获取 301002.SZ 的数据\n", + "成功获取 301003.SZ 的数据\n", + "成功获取 301004.SZ 的数据\n", + "成功获取 301005.SZ 的数据\n", + "成功获取 301006.SZ 的数据\n", + "成功获取 301007.SZ 的数据\n", + "成功获取 301008.SZ 的数据\n", + "成功获取 301009.SZ 的数据\n", + "成功获取 301010.SZ 的数据\n", + "成功获取 301011.SZ 的数据\n", + "成功获取 301012.SZ 的数据\n", + "成功获取 301013.SZ 的数据\n", + "成功获取 301015.SZ 的数据\n", + "成功获取 301016.SZ 的数据\n", + "成功获取 301017.SZ 的数据\n", + "成功获取 301018.SZ 的数据\n", + "成功获取 301019.SZ 的数据\n", + "成功获取 301020.SZ 的数据\n", + "成功获取 301021.SZ 的数据\n", + "成功获取 301022.SZ 的数据\n", + "成功获取 301023.SZ 的数据\n", + "成功获取 301024.SZ 的数据\n", + "成功获取 301025.SZ 的数据\n", + "成功获取 301026.SZ 的数据\n", + "成功获取 301027.SZ 的数据\n", + "成功获取 301028.SZ 的数据\n", + "成功获取 301029.SZ 的数据\n", + "成功获取 301030.SZ 的数据\n", + "成功获取 301031.SZ 的数据\n", + "成功获取 301032.SZ 的数据\n", + "成功获取 301033.SZ 的数据\n", + "成功获取 301035.SZ 的数据\n", + "成功获取 301036.SZ 的数据\n", + "成功获取 301037.SZ 的数据\n", + "成功获取 301038.SZ 的数据\n", + "成功获取 301039.SZ 的数据\n", + "成功获取 301040.SZ 的数据\n", + "成功获取 301041.SZ 的数据\n", + "成功获取 301042.SZ 的数据\n", + "成功获取 301043.SZ 的数据\n", + "成功获取 301045.SZ 的数据\n", + "成功获取 301046.SZ 的数据\n", + "成功获取 301047.SZ 的数据\n", + "成功获取 301048.SZ 的数据\n", + "成功获取 301049.SZ 的数据\n", + "成功获取 301050.SZ 的数据\n", + "成功获取 301051.SZ 的数据\n", + "成功获取 301052.SZ 的数据\n", + "成功获取 301053.SZ 的数据\n", + "成功获取 301055.SZ 的数据\n", + "成功获取 301056.SZ 的数据\n", + "成功获取 301057.SZ 的数据\n", + "成功获取 301058.SZ 的数据\n", + "成功获取 301059.SZ 的数据\n", + "成功获取 301060.SZ 的数据\n", + "成功获取 301061.SZ 的数据\n", + "成功获取 301062.SZ 的数据\n", + "成功获取 301063.SZ 的数据\n", + "成功获取 301065.SZ 的数据\n", + "成功获取 301066.SZ 的数据\n", + "成功获取 301067.SZ 的数据\n", + "成功获取 301068.SZ 的数据\n", + "成功获取 301069.SZ 的数据\n", + "成功获取 301070.SZ 的数据\n", + "成功获取 301071.SZ 的数据\n", + "成功获取 301072.SZ 的数据\n", + "成功获取 301073.SZ 的数据\n", + "成功获取 301075.SZ 的数据\n", + "成功获取 301076.SZ 的数据\n", + "成功获取 301077.SZ 的数据\n", + "成功获取 301078.SZ 的数据\n", + "成功获取 301079.SZ 的数据\n", + "成功获取 301080.SZ 的数据\n", + "成功获取 301081.SZ 的数据\n", + "成功获取 301082.SZ 的数据\n", + "成功获取 301083.SZ 的数据\n", + "成功获取 301085.SZ 的数据\n", + "成功获取 301086.SZ 的数据\n", + "成功获取 301087.SZ 的数据\n", + "成功获取 301088.SZ 的数据\n", + "成功获取 301089.SZ 的数据\n", + "成功获取 301090.SZ 的数据\n", + "成功获取 301091.SZ 的数据\n", + "成功获取 301092.SZ 的数据\n", + "成功获取 301093.SZ 的数据\n", + "成功获取 301095.SZ 的数据\n", + "成功获取 301096.SZ 的数据\n", + "成功获取 301097.SZ 的数据\n", + "成功获取 301098.SZ 的数据\n", + "成功获取 301099.SZ 的数据\n", + "成功获取 301100.SZ 的数据\n", + "成功获取 301101.SZ 的数据\n", + "成功获取 301102.SZ 的数据\n", + "成功获取 301103.SZ 的数据\n", + "成功获取 301105.SZ 的数据\n", + "成功获取 301106.SZ 的数据\n", + "成功获取 301107.SZ 的数据\n", + "成功获取 301108.SZ 的数据\n", + "成功获取 301109.SZ 的数据\n", + "成功获取 301110.SZ 的数据\n", + "成功获取 301111.SZ 的数据\n", + "成功获取 301112.SZ 的数据\n", + "成功获取 301113.SZ 的数据\n", + "成功获取 301115.SZ 的数据\n", + "成功获取 301116.SZ 的数据\n", + "成功获取 301117.SZ 的数据\n", + "成功获取 301118.SZ 的数据\n", + "成功获取 301119.SZ 的数据\n", + "成功获取 301120.SZ 的数据\n", + "成功获取 301121.SZ 的数据\n", + "成功获取 301122.SZ 的数据\n", + "成功获取 301123.SZ 的数据\n", + "成功获取 301125.SZ 的数据\n", + "成功获取 301126.SZ 的数据\n", + "成功获取 301127.SZ 的数据\n", + "成功获取 301128.SZ 的数据\n", + "成功获取 301129.SZ 的数据\n", + "成功获取 301130.SZ 的数据\n", + "成功获取 301131.SZ 的数据\n", + "成功获取 301132.SZ 的数据\n", + "成功获取 301133.SZ 的数据\n", + "成功获取 301135.SZ 的数据\n", + "成功获取 301136.SZ 的数据\n", + "成功获取 301137.SZ 的数据\n", + "成功获取 301138.SZ 的数据\n", + "成功获取 301139.SZ 的数据\n", + "成功获取 301141.SZ 的数据\n", + "成功获取 301148.SZ 的数据\n", + "成功获取 301149.SZ 的数据\n", + "成功获取 301150.SZ 的数据\n", + "成功获取 301151.SZ 的数据\n", + "成功获取 301152.SZ 的数据\n", + "成功获取 301153.SZ 的数据\n", + "成功获取 301155.SZ 的数据\n", + "成功获取 301156.SZ 的数据\n", + "成功获取 301157.SZ 的数据\n", + "成功获取 301158.SZ 的数据\n", + "成功获取 301159.SZ 的数据\n", + "成功获取 301160.SZ 的数据\n", + "成功获取 301161.SZ 的数据\n", + "成功获取 301162.SZ 的数据\n", + "成功获取 301163.SZ 的数据\n", + "成功获取 301165.SZ 的数据\n", + "成功获取 301166.SZ 的数据\n", + "成功获取 301167.SZ 的数据\n", + "成功获取 301168.SZ 的数据\n", + "成功获取 301169.SZ 的数据\n", + "成功获取 301170.SZ 的数据\n", + "成功获取 301171.SZ 的数据\n", + "成功获取 301172.SZ 的数据\n", + "成功获取 301175.SZ 的数据\n", + "成功获取 301176.SZ 的数据\n", + "成功获取 301177.SZ 的数据\n", + "成功获取 301178.SZ 的数据\n", + "成功获取 301179.SZ 的数据\n", + "成功获取 301180.SZ 的数据\n", + "成功获取 301181.SZ 的数据\n", + "成功获取 301182.SZ 的数据\n", + "成功获取 301183.SZ 的数据\n", + "成功获取 301185.SZ 的数据\n", + "成功获取 301186.SZ 的数据\n", + "成功获取 301187.SZ 的数据\n", + "成功获取 301188.SZ 的数据\n", + "成功获取 301189.SZ 的数据\n", + "成功获取 301190.SZ 的数据\n", + "成功获取 301191.SZ 的数据\n", + "成功获取 301192.SZ 的数据\n", + "成功获取 301193.SZ 的数据\n", + "成功获取 301195.SZ 的数据\n", + "成功获取 301196.SZ 的数据\n", + "成功获取 301197.SZ 的数据\n", + "成功获取 301198.SZ 的数据\n", + "成功获取 301199.SZ 的数据\n", + "成功获取 301200.SZ 的数据\n", + "成功获取 301201.SZ 的数据\n", + "成功获取 301202.SZ 的数据\n", + "成功获取 301203.SZ 的数据\n", + "成功获取 301205.SZ 的数据\n", + "成功获取 301206.SZ 的数据\n", + "成功获取 301207.SZ 的数据\n", + "成功获取 301208.SZ 的数据\n", + "成功获取 301209.SZ 的数据\n", + "成功获取 301210.SZ 的数据\n", + "成功获取 301211.SZ 的数据\n", + "成功获取 301212.SZ 的数据\n", + "成功获取 301213.SZ 的数据\n", + "成功获取 301215.SZ 的数据\n", + "成功获取 301216.SZ 的数据\n", + "成功获取 301217.SZ 的数据\n", + "成功获取 301218.SZ 的数据\n", + "成功获取 301219.SZ 的数据\n", + "成功获取 301220.SZ 的数据\n", + "成功获取 301221.SZ 的数据\n", + "成功获取 301222.SZ 的数据\n", + "成功获取 301223.SZ 的数据\n", + "成功获取 301225.SZ 的数据\n", + "成功获取 301226.SZ 的数据\n", + "成功获取 301227.SZ 的数据\n", + "成功获取 301228.SZ 的数据\n", + "成功获取 301229.SZ 的数据\n", + "成功获取 301230.SZ 的数据\n", + "成功获取 301231.SZ 的数据\n", + "成功获取 301232.SZ 的数据\n", + "成功获取 301233.SZ 的数据\n", + "成功获取 301234.SZ 的数据\n", + "成功获取 301235.SZ 的数据\n", + "成功获取 301236.SZ 的数据\n", + "成功获取 301237.SZ 的数据\n", + "成功获取 301238.SZ 的数据\n", + "成功获取 301239.SZ 的数据\n", + "成功获取 301246.SZ 的数据\n", + "成功获取 301248.SZ 的数据\n", + "成功获取 301251.SZ 的数据\n", + "成功获取 301252.SZ 的数据\n", + "成功获取 301255.SZ 的数据\n", + "成功获取 301256.SZ 的数据\n", + "成功获取 301257.SZ 的数据\n", + "成功获取 301258.SZ 的数据\n", + "成功获取 301259.SZ 的数据\n", + "成功获取 301260.SZ 的数据\n", + "成功获取 301261.SZ 的数据\n", + "成功获取 301262.SZ 的数据\n", + "成功获取 301263.SZ 的数据\n", + "成功获取 301265.SZ 的数据\n", + "成功获取 301266.SZ 的数据\n", + "成功获取 301267.SZ 的数据\n", + "成功获取 301268.SZ 的数据\n", + "成功获取 301269.SZ 的数据\n", + "成功获取 301270.SZ 的数据\n", + "成功获取 301272.SZ 的数据\n", + "成功获取 301273.SZ 的数据\n", + "成功获取 301276.SZ 的数据\n", + "成功获取 301277.SZ 的数据\n", + "成功获取 301278.SZ 的数据\n", + "成功获取 301279.SZ 的数据\n", + "成功获取 301280.SZ 的数据\n", + "成功获取 301281.SZ 的数据\n", + "成功获取 301282.SZ 的数据\n", + "成功获取 301283.SZ 的数据\n", + "成功获取 301285.SZ 的数据\n", + "成功获取 301286.SZ 的数据\n", + "成功获取 301287.SZ 的数据\n", + "成功获取 301288.SZ 的数据\n", + "成功获取 301289.SZ 的数据\n", + "成功获取 301290.SZ 的数据\n", + "成功获取 301291.SZ 的数据\n", + "成功获取 301292.SZ 的数据\n", + "成功获取 301293.SZ 的数据\n", + "成功获取 301295.SZ 的数据\n", + "成功获取 301296.SZ 的数据\n", + "成功获取 301297.SZ 的数据\n", + "成功获取 301298.SZ 的数据\n", + "成功获取 301299.SZ 的数据\n", + "成功获取 301300.SZ 的数据\n", + "成功获取 301301.SZ 的数据\n", + "成功获取 301302.SZ 的数据\n", + "成功获取 301303.SZ 的数据\n", + "成功获取 301305.SZ 的数据\n", + "成功获取 301306.SZ 的数据\n", + "成功获取 301307.SZ 的数据\n", + "成功获取 301308.SZ 的数据\n", + "成功获取 301309.SZ 的数据\n", + "成功获取 301310.SZ 的数据\n", + "成功获取 301311.SZ 的数据\n", + "成功获取 301312.SZ 的数据\n", + "成功获取 301313.SZ 的数据\n", + "成功获取 301314.SZ 的数据\n", + "成功获取 301315.SZ 的数据\n", + "已调用300次API,等待 2.17 秒以满足速率限制...\n", + "成功获取 301316.SZ 的数据\n", + "成功获取 301317.SZ 的数据\n", + "成功获取 301318.SZ 的数据\n", + "成功获取 301319.SZ 的数据\n", + "成功获取 301320.SZ 的数据\n", + "成功获取 301321.SZ 的数据\n", + "成功获取 301322.SZ 的数据\n", + "成功获取 301323.SZ 的数据\n", + "成功获取 301325.SZ 的数据\n", + "成功获取 301326.SZ 的数据\n", + "成功获取 301327.SZ 的数据\n", + "成功获取 301328.SZ 的数据\n", + "成功获取 301329.SZ 的数据\n", + "成功获取 301330.SZ 的数据\n", + "成功获取 301331.SZ 的数据\n", + "成功获取 301332.SZ 的数据\n", + "成功获取 301333.SZ 的数据\n", + "成功获取 301335.SZ 的数据\n", + "成功获取 301336.SZ 的数据\n", + "成功获取 301337.SZ 的数据\n", + "成功获取 301338.SZ 的数据\n", + "成功获取 301339.SZ 的数据\n", + "成功获取 301345.SZ 的数据\n", + "成功获取 301348.SZ 的数据\n", + "成功获取 301349.SZ 的数据\n", + "成功获取 301353.SZ 的数据\n", + "成功获取 301355.SZ 的数据\n", + "成功获取 301356.SZ 的数据\n", + "成功获取 301357.SZ 的数据\n", + "成功获取 301358.SZ 的数据\n", + "成功获取 301359.SZ 的数据\n", + "成功获取 301360.SZ 的数据\n", + "成功获取 301361.SZ 的数据\n", + "成功获取 301362.SZ 的数据\n", + "成功获取 301363.SZ 的数据\n", + "成功获取 301365.SZ 的数据\n", + "成功获取 301366.SZ 的数据\n", + "成功获取 301367.SZ 的数据\n", + "成功获取 301368.SZ 的数据\n", + "成功获取 301369.SZ 的数据\n", + "成功获取 301370.SZ 的数据\n", + "成功获取 301371.SZ 的数据\n", + "成功获取 301372.SZ 的数据\n", + "成功获取 301373.SZ 的数据\n", + "成功获取 301376.SZ 的数据\n", + "成功获取 301377.SZ 的数据\n", + "成功获取 301378.SZ 的数据\n", + "成功获取 301379.SZ 的数据\n", + "成功获取 301380.SZ 的数据\n", + "成功获取 301381.SZ 的数据\n", + "成功获取 301382.SZ 的数据\n", + "成功获取 301383.SZ 的数据\n", + "成功获取 301386.SZ 的数据\n", + "成功获取 301387.SZ 的数据\n", + "成功获取 301388.SZ 的数据\n", + "成功获取 301389.SZ 的数据\n", + "成功获取 301390.SZ 的数据\n", + "成功获取 301391.SZ 的数据\n", + "成功获取 301392.SZ 的数据\n", + "成功获取 301393.SZ 的数据\n", + "成功获取 301395.SZ 的数据\n", + "成功获取 301396.SZ 的数据\n", + "成功获取 301397.SZ 的数据\n", + "成功获取 301398.SZ 的数据\n", + "成功获取 301399.SZ 的数据\n", + "成功获取 301408.SZ 的数据\n", + "成功获取 301413.SZ 的数据\n", + "成功获取 301418.SZ 的数据\n", + "成功获取 301419.SZ 的数据\n", + "成功获取 301421.SZ 的数据\n", + "成功获取 301428.SZ 的数据\n", + "成功获取 301429.SZ 的数据\n", + "成功获取 301439.SZ 的数据\n", + "成功获取 301446.SZ 的数据\n", + "成功获取 301448.SZ 的数据\n", + "成功获取 301456.SZ 的数据\n", + "成功获取 301458.SZ 的数据\n", + "成功获取 301459.SZ 的数据\n", + "成功获取 301468.SZ 的数据\n", + "成功获取 301469.SZ 的数据\n", + "成功获取 301486.SZ 的数据\n", + "成功获取 301487.SZ 的数据\n", + "成功获取 301488.SZ 的数据\n", + "成功获取 301489.SZ 的数据\n", + "成功获取 301498.SZ 的数据\n", + "成功获取 301499.SZ 的数据\n", + "成功获取 301500.SZ 的数据\n", + "成功获取 301502.SZ 的数据\n", + "成功获取 301503.SZ 的数据\n", + "成功获取 301505.SZ 的数据\n", + "成功获取 301507.SZ 的数据\n", + "成功获取 301508.SZ 的数据\n", + "成功获取 301509.SZ 的数据\n", + "成功获取 301510.SZ 的数据\n", + "成功获取 301511.SZ 的数据\n", + "成功获取 301512.SZ 的数据\n", + "成功获取 301515.SZ 的数据\n", + "成功获取 301516.SZ 的数据\n", + "成功获取 301517.SZ 的数据\n", + "成功获取 301518.SZ 的数据\n", + "成功获取 301519.SZ 的数据\n", + "成功获取 301520.SZ 的数据\n", + "成功获取 301522.SZ 的数据\n", + "成功获取 301525.SZ 的数据\n", + "成功获取 301526.SZ 的数据\n", + "成功获取 301528.SZ 的数据\n", + "成功获取 301529.SZ 的数据\n", + "成功获取 301533.SZ 的数据\n", + "成功获取 301536.SZ 的数据\n", + "成功获取 301538.SZ 的数据\n", + "成功获取 301539.SZ 的数据\n", + "成功获取 301548.SZ 的数据\n", + "成功获取 301550.SZ 的数据\n", + "成功获取 301551.SZ 的数据\n", + "成功获取 301552.SZ 的数据\n", + "成功获取 301555.SZ 的数据\n", + "成功获取 301556.SZ 的数据\n", + "成功获取 301558.SZ 的数据\n", + "成功获取 301559.SZ 的数据\n", + "成功获取 301565.SZ 的数据\n", + "成功获取 301566.SZ 的数据\n", + "成功获取 301567.SZ 的数据\n", + "成功获取 301568.SZ 的数据\n", + "成功获取 301571.SZ 的数据\n", + "成功获取 301577.SZ 的数据\n", + "成功获取 301578.SZ 的数据\n", + "成功获取 301580.SZ 的数据\n", + "成功获取 301581.SZ 的数据\n", + "成功获取 301585.SZ 的数据\n", + "成功获取 301586.SZ 的数据\n", + "成功获取 301587.SZ 的数据\n", + "成功获取 301588.SZ 的数据\n", + "成功获取 301589.SZ 的数据\n", + "成功获取 301591.SZ 的数据\n", + "成功获取 301592.SZ 的数据\n", + "成功获取 301596.SZ 的数据\n", + "成功获取 301598.SZ 的数据\n", + "成功获取 301600.SZ 的数据\n", + "成功获取 301601.SZ 的数据\n", + "成功获取 301602.SZ 的数据\n", + "成功获取 301603.SZ 的数据\n", + "成功获取 301606.SZ 的数据\n", + "成功获取 301607.SZ 的数据\n", + "成功获取 301608.SZ 的数据\n", + "成功获取 301611.SZ 的数据\n", + "成功获取 301613.SZ 的数据\n", + "成功获取 301617.SZ 的数据\n", + "成功获取 301618.SZ 的数据\n", + "成功获取 301622.SZ 的数据\n", + "成功获取 301626.SZ 的数据\n", + "成功获取 301628.SZ 的数据\n", + "成功获取 301631.SZ 的数据\n", + "成功获取 301633.SZ 的数据\n", + "成功获取 430017.BJ 的数据\n", + "成功获取 430047.BJ 的数据\n", + "成功获取 430090.BJ 的数据\n", + "成功获取 430139.BJ 的数据\n", + "成功获取 430198.BJ 的数据\n", + "成功获取 430300.BJ 的数据\n", + "成功获取 430418.BJ 的数据\n", + "成功获取 430425.BJ 的数据\n", + "成功获取 430476.BJ 的数据\n", + "成功获取 430478.BJ 的数据\n", + "成功获取 430489.BJ 的数据\n", + "成功获取 430510.BJ 的数据\n", + "成功获取 430556.BJ 的数据\n", + "成功获取 430564.BJ 的数据\n", + "成功获取 430685.BJ 的数据\n", + "成功获取 430718.BJ 的数据\n", + "成功获取 600000.SH 的数据\n", + "成功获取 600004.SH 的数据\n", + "成功获取 600006.SH 的数据\n", + "成功获取 600007.SH 的数据\n", + "成功获取 600008.SH 的数据\n", + "成功获取 600009.SH 的数据\n", + "成功获取 600010.SH 的数据\n", + "成功获取 600011.SH 的数据\n", + "成功获取 600012.SH 的数据\n", + "成功获取 600015.SH 的数据\n", + "成功获取 600016.SH 的数据\n", + "成功获取 600017.SH 的数据\n", + "成功获取 600018.SH 的数据\n", + "成功获取 600019.SH 的数据\n", + "成功获取 600020.SH 的数据\n", + "成功获取 600021.SH 的数据\n", + "成功获取 600022.SH 的数据\n", + "成功获取 600023.SH 的数据\n", + "成功获取 600025.SH 的数据\n", + "成功获取 600026.SH 的数据\n", + "成功获取 600027.SH 的数据\n", + "成功获取 600028.SH 的数据\n", + "成功获取 600029.SH 的数据\n", + "成功获取 600030.SH 的数据\n", + "成功获取 600031.SH 的数据\n", + "成功获取 600032.SH 的数据\n", + "成功获取 600033.SH 的数据\n", + "成功获取 600035.SH 的数据\n", + "成功获取 600036.SH 的数据\n", + "成功获取 600037.SH 的数据\n", + "成功获取 600038.SH 的数据\n", + "成功获取 600039.SH 的数据\n", + "成功获取 600048.SH 的数据\n", + "成功获取 600050.SH 的数据\n", + "成功获取 600051.SH 的数据\n", + "成功获取 600052.SH 的数据\n", + "成功获取 600053.SH 的数据\n", + "成功获取 600054.SH 的数据\n", + "成功获取 600055.SH 的数据\n", + "成功获取 600056.SH 的数据\n", + "成功获取 600057.SH 的数据\n", + "成功获取 600058.SH 的数据\n", + "成功获取 600059.SH 的数据\n", + "成功获取 600060.SH 的数据\n", + "成功获取 600061.SH 的数据\n", + "成功获取 600062.SH 的数据\n", + "成功获取 600063.SH 的数据\n", + "成功获取 600064.SH 的数据\n", + "成功获取 600066.SH 的数据\n", + "成功获取 600067.SH 的数据\n", + "成功获取 600070.SH 的数据\n", + "成功获取 600071.SH 的数据\n", + "成功获取 600072.SH 的数据\n", + "成功获取 600073.SH 的数据\n", + "成功获取 600075.SH 的数据\n", + "成功获取 600076.SH 的数据\n", + "成功获取 600078.SH 的数据\n", + "成功获取 600079.SH 的数据\n", + "成功获取 600080.SH 的数据\n", + "成功获取 600081.SH 的数据\n", + "成功获取 600082.SH 的数据\n", + "成功获取 600083.SH 的数据\n", + "成功获取 600084.SH 的数据\n", + "成功获取 600085.SH 的数据\n", + "成功获取 600088.SH 的数据\n", + "成功获取 600089.SH 的数据\n", + "成功获取 600094.SH 的数据\n", + "成功获取 600095.SH 的数据\n", + "成功获取 600096.SH 的数据\n", + "成功获取 600097.SH 的数据\n", + "成功获取 600098.SH 的数据\n", + "成功获取 600099.SH 的数据\n", + "成功获取 600100.SH 的数据\n", + "成功获取 600101.SH 的数据\n", + "成功获取 600103.SH 的数据\n", + "成功获取 600104.SH 的数据\n", + "成功获取 600105.SH 的数据\n", + "成功获取 600106.SH 的数据\n", + "成功获取 600107.SH 的数据\n", + "成功获取 600108.SH 的数据\n", + "成功获取 600109.SH 的数据\n", + "成功获取 600110.SH 的数据\n", + "成功获取 600111.SH 的数据\n", + "成功获取 600113.SH 的数据\n", + "成功获取 600114.SH 的数据\n", + "成功获取 600115.SH 的数据\n", + "成功获取 600116.SH 的数据\n", + "成功获取 600117.SH 的数据\n", + "成功获取 600118.SH 的数据\n", + "成功获取 600119.SH 的数据\n", + "成功获取 600120.SH 的数据\n", + "成功获取 600121.SH 的数据\n", + "成功获取 600123.SH 的数据\n", + "成功获取 600125.SH 的数据\n", + "成功获取 600126.SH 的数据\n", + "成功获取 600127.SH 的数据\n", + "成功获取 600128.SH 的数据\n", + "成功获取 600129.SH 的数据\n", + "成功获取 600130.SH 的数据\n", + "成功获取 600131.SH 的数据\n", + "成功获取 600132.SH 的数据\n", + "成功获取 600133.SH 的数据\n", + "成功获取 600135.SH 的数据\n", + "成功获取 600136.SH 的数据\n", + "成功获取 600137.SH 的数据\n", + "成功获取 600138.SH 的数据\n", + "成功获取 600141.SH 的数据\n", + "成功获取 600143.SH 的数据\n", + "成功获取 600148.SH 的数据\n", + "成功获取 600149.SH 的数据\n", + "成功获取 600150.SH 的数据\n", + "成功获取 600151.SH 的数据\n", + "成功获取 600152.SH 的数据\n", + "成功获取 600153.SH 的数据\n", + "成功获取 600155.SH 的数据\n", + "成功获取 600156.SH 的数据\n", + "成功获取 600157.SH 的数据\n", + "成功获取 600158.SH 的数据\n", + "成功获取 600159.SH 的数据\n", + "成功获取 600160.SH 的数据\n", + "成功获取 600161.SH 的数据\n", + "成功获取 600162.SH 的数据\n", + "成功获取 600163.SH 的数据\n", + "成功获取 600165.SH 的数据\n", + "成功获取 600166.SH 的数据\n", + "成功获取 600167.SH 的数据\n", + "成功获取 600168.SH 的数据\n", + "成功获取 600169.SH 的数据\n", + "成功获取 600170.SH 的数据\n", + "成功获取 600171.SH 的数据\n", + "成功获取 600172.SH 的数据\n", + "成功获取 600173.SH 的数据\n", + "成功获取 600176.SH 的数据\n", + "成功获取 600177.SH 的数据\n", + "成功获取 600178.SH 的数据\n", + "成功获取 600179.SH 的数据\n", + "成功获取 600180.SH 的数据\n", + "成功获取 600182.SH 的数据\n", + "成功获取 600183.SH 的数据\n", + "成功获取 600184.SH 的数据\n", + "成功获取 600185.SH 的数据\n", + "成功获取 600186.SH 的数据\n", + "成功获取 600187.SH 的数据\n", + "成功获取 600188.SH 的数据\n", + "成功获取 600189.SH 的数据\n", + "成功获取 600190.SH 的数据\n", + "成功获取 600191.SH 的数据\n", + "成功获取 600192.SH 的数据\n", + "成功获取 600193.SH 的数据\n", + "成功获取 600195.SH 的数据\n", + "成功获取 600196.SH 的数据\n", + "成功获取 600197.SH 的数据\n", + "成功获取 600198.SH 的数据\n", + "成功获取 600199.SH 的数据\n", + "成功获取 600200.SH 的数据\n", + "成功获取 600201.SH 的数据\n", + "成功获取 600202.SH 的数据\n", + "成功获取 600203.SH 的数据\n", + "成功获取 600206.SH 的数据\n", + "成功获取 600207.SH 的数据\n", + "成功获取 600208.SH 的数据\n", + "成功获取 600210.SH 的数据\n", + "成功获取 600211.SH 的数据\n", + "成功获取 600212.SH 的数据\n", + "成功获取 600215.SH 的数据\n", + "成功获取 600216.SH 的数据\n", + "成功获取 600217.SH 的数据\n", + "成功获取 600218.SH 的数据\n", + "成功获取 600219.SH 的数据\n", + "成功获取 600221.SH 的数据\n", + "成功获取 600222.SH 的数据\n", + "成功获取 600223.SH 的数据\n", + "成功获取 600225.SH 的数据\n", + "成功获取 600226.SH 的数据\n", + "成功获取 600227.SH 的数据\n", + "成功获取 600228.SH 的数据\n", + "成功获取 600229.SH 的数据\n", + "成功获取 600230.SH 的数据\n", + "成功获取 600231.SH 的数据\n", + "成功获取 600232.SH 的数据\n", + "成功获取 600233.SH 的数据\n", + "成功获取 600234.SH 的数据\n", + "成功获取 600235.SH 的数据\n", + "成功获取 600236.SH 的数据\n", + "成功获取 600237.SH 的数据\n", + "成功获取 600238.SH 的数据\n", + "成功获取 600239.SH 的数据\n", + "成功获取 600241.SH 的数据\n", + "成功获取 600243.SH 的数据\n", + "成功获取 600246.SH 的数据\n", + "成功获取 600248.SH 的数据\n", + "成功获取 600249.SH 的数据\n", + "成功获取 600250.SH 的数据\n", + "成功获取 600251.SH 的数据\n", + "成功获取 600252.SH 的数据\n", + "成功获取 600255.SH 的数据\n", + "成功获取 600256.SH 的数据\n", + "成功获取 600257.SH 的数据\n", + "成功获取 600258.SH 的数据\n", + "成功获取 600259.SH 的数据\n", + "成功获取 600261.SH 的数据\n", + "成功获取 600262.SH 的数据\n", + "成功获取 600265.SH 的数据\n", + "成功获取 600266.SH 的数据\n", + "成功获取 600267.SH 的数据\n", + "成功获取 600268.SH 的数据\n", + "成功获取 600269.SH 的数据\n", + "成功获取 600271.SH 的数据\n", + "成功获取 600272.SH 的数据\n", + "成功获取 600273.SH 的数据\n", + "成功获取 600276.SH 的数据\n", + "成功获取 600278.SH 的数据\n", + "成功获取 600279.SH 的数据\n", + "成功获取 600280.SH 的数据\n", + "成功获取 600281.SH 的数据\n", + "成功获取 600282.SH 的数据\n", + "成功获取 600283.SH 的数据\n", + "成功获取 600284.SH 的数据\n", + "成功获取 600285.SH 的数据\n", + "成功获取 600287.SH 的数据\n", + "成功获取 600288.SH 的数据\n", + "成功获取 600289.SH 的数据\n", + "成功获取 600292.SH 的数据\n", + "成功获取 600293.SH 的数据\n", + "成功获取 600295.SH 的数据\n", + "成功获取 600298.SH 的数据\n", + "成功获取 600299.SH 的数据\n", + "成功获取 600300.SH 的数据\n", + "成功获取 600301.SH 的数据\n", + "成功获取 600302.SH 的数据\n", + "成功获取 600303.SH 的数据\n", + "成功获取 600305.SH 的数据\n", + "成功获取 600307.SH 的数据\n", + "成功获取 600308.SH 的数据\n", + "成功获取 600309.SH 的数据\n", + "成功获取 600310.SH 的数据\n", + "成功获取 600312.SH 的数据\n", + "成功获取 600313.SH 的数据\n", + "成功获取 600315.SH 的数据\n", + "成功获取 600316.SH 的数据\n", + "成功获取 600318.SH 的数据\n", + "成功获取 600319.SH 的数据\n", + "成功获取 600320.SH 的数据\n", + "成功获取 600322.SH 的数据\n", + "成功获取 600323.SH 的数据\n", + "成功获取 600325.SH 的数据\n", + "成功获取 600326.SH 的数据\n", + "成功获取 600327.SH 的数据\n", + "成功获取 600328.SH 的数据\n", + "成功获取 600329.SH 的数据\n", + "成功获取 600330.SH 的数据\n", + "成功获取 600331.SH 的数据\n", + "成功获取 600332.SH 的数据\n", + "成功获取 600333.SH 的数据\n", + "成功获取 600335.SH 的数据\n", + "成功获取 600336.SH 的数据\n", + "成功获取 600337.SH 的数据\n", + "成功获取 600338.SH 的数据\n", + "成功获取 600339.SH 的数据\n", + "成功获取 600340.SH 的数据\n", + "成功获取 600343.SH 的数据\n", + "成功获取 600345.SH 的数据\n", + "成功获取 600346.SH 的数据\n", + "成功获取 600348.SH 的数据\n", + "成功获取 600350.SH 的数据\n", + "成功获取 600351.SH 的数据\n", + "成功获取 600352.SH 的数据\n", + "成功获取 600353.SH 的数据\n", + "成功获取 600354.SH 的数据\n", + "成功获取 600355.SH 的数据\n", + "成功获取 600356.SH 的数据\n", + "成功获取 600358.SH 的数据\n", + "成功获取 600359.SH 的数据\n", + "成功获取 600360.SH 的数据\n", + "成功获取 600361.SH 的数据\n", + "成功获取 600362.SH 的数据\n", + "成功获取 600363.SH 的数据\n", + "成功获取 600365.SH 的数据\n", + "成功获取 600366.SH 的数据\n", + "成功获取 600367.SH 的数据\n", + "成功获取 600368.SH 的数据\n", + "成功获取 600369.SH 的数据\n", + "成功获取 600370.SH 的数据\n", + "成功获取 600371.SH 的数据\n", + "成功获取 600372.SH 的数据\n", + "成功获取 600373.SH 的数据\n", + "成功获取 600375.SH 的数据\n", + "成功获取 600376.SH 的数据\n", + "成功获取 600377.SH 的数据\n", + "成功获取 600378.SH 的数据\n", + "成功获取 600379.SH 的数据\n", + "成功获取 600380.SH 的数据\n", + "成功获取 600381.SH 的数据\n", + "成功获取 600382.SH 的数据\n", + "成功获取 600383.SH 的数据\n", + "成功获取 600386.SH 的数据\n", + "成功获取 600387.SH 的数据\n", + "成功获取 600388.SH 的数据\n", + "成功获取 600389.SH 的数据\n", + "成功获取 600390.SH 的数据\n", + "成功获取 600391.SH 的数据\n", + "成功获取 600392.SH 的数据\n", + "成功获取 600395.SH 的数据\n", + "成功获取 600396.SH 的数据\n", + "成功获取 600397.SH 的数据\n", + "成功获取 600398.SH 的数据\n", + "成功获取 600399.SH 的数据\n", + "成功获取 600400.SH 的数据\n", + "成功获取 600403.SH 的数据\n", + "成功获取 600405.SH 的数据\n", + "成功获取 600406.SH 的数据\n", + "成功获取 600408.SH 的数据\n", + "成功获取 600409.SH 的数据\n", + "成功获取 600410.SH 的数据\n", + "成功获取 600415.SH 的数据\n", + "成功获取 600416.SH 的数据\n", + "成功获取 600418.SH 的数据\n", + "成功获取 600419.SH 的数据\n", + "成功获取 600420.SH 的数据\n", + "成功获取 600421.SH 的数据\n", + "成功获取 600422.SH 的数据\n", + "成功获取 600423.SH 的数据\n", + "成功获取 600425.SH 的数据\n", + "成功获取 600426.SH 的数据\n", + "成功获取 600428.SH 的数据\n", + "成功获取 600429.SH 的数据\n", + "成功获取 600433.SH 的数据\n", + "成功获取 600435.SH 的数据\n", + "成功获取 600436.SH 的数据\n", + "成功获取 600438.SH 的数据\n", + "成功获取 600439.SH 的数据\n", + "成功获取 600444.SH 的数据\n", + "成功获取 600446.SH 的数据\n", + "成功获取 600448.SH 的数据\n", + "成功获取 600449.SH 的数据\n", + "成功获取 600452.SH 的数据\n", + "成功获取 600455.SH 的数据\n", + "成功获取 600456.SH 的数据\n", + "成功获取 600458.SH 的数据\n", + "成功获取 600459.SH 的数据\n", + "成功获取 600460.SH 的数据\n", + "成功获取 600461.SH 的数据\n", + "成功获取 600462.SH 的数据\n", + "成功获取 600463.SH 的数据\n", + "成功获取 600467.SH 的数据\n", + "成功获取 600468.SH 的数据\n", + "成功获取 600469.SH 的数据\n", + "成功获取 600470.SH 的数据\n", + "成功获取 600475.SH 的数据\n", + "成功获取 600476.SH 的数据\n", + "成功获取 600477.SH 的数据\n", + "成功获取 600478.SH 的数据\n", + "成功获取 600479.SH 的数据\n", + "成功获取 600480.SH 的数据\n", + "成功获取 600481.SH 的数据\n", + "成功获取 600482.SH 的数据\n", + "成功获取 600483.SH 的数据\n", + "成功获取 600486.SH 的数据\n", + "成功获取 600487.SH 的数据\n", + "成功获取 600488.SH 的数据\n", + "成功获取 600489.SH 的数据\n", + "成功获取 600490.SH 的数据\n", + "成功获取 600491.SH 的数据\n", + "成功获取 600493.SH 的数据\n", + "成功获取 600495.SH 的数据\n", + "成功获取 600496.SH 的数据\n", + "成功获取 600497.SH 的数据\n", + "成功获取 600498.SH 的数据\n", + "成功获取 600499.SH 的数据\n", + "成功获取 600500.SH 的数据\n", + "成功获取 600501.SH 的数据\n", + "成功获取 600502.SH 的数据\n", + "成功获取 600503.SH 的数据\n", + "成功获取 600505.SH 的数据\n", + "成功获取 600506.SH 的数据\n", + "成功获取 600507.SH 的数据\n", + "成功获取 600508.SH 的数据\n", + "成功获取 600509.SH 的数据\n", + "成功获取 600510.SH 的数据\n", + "成功获取 600511.SH 的数据\n", + "成功获取 600512.SH 的数据\n", + "成功获取 600513.SH 的数据\n", + "成功获取 600515.SH 的数据\n", + "成功获取 600516.SH 的数据\n", + "成功获取 600517.SH 的数据\n", + "成功获取 600518.SH 的数据\n", + "成功获取 600519.SH 的数据\n", + "成功获取 600520.SH 的数据\n", + "成功获取 600521.SH 的数据\n", + "成功获取 600522.SH 的数据\n", + "成功获取 600523.SH 的数据\n", + "成功获取 600525.SH 的数据\n", + "成功获取 600526.SH 的数据\n", + "成功获取 600527.SH 的数据\n", + "成功获取 600528.SH 的数据\n", + "成功获取 600529.SH 的数据\n", + "成功获取 600530.SH 的数据\n", + "成功获取 600531.SH 的数据\n", + "成功获取 600533.SH 的数据\n", + "成功获取 600535.SH 的数据\n", + "成功获取 600536.SH 的数据\n", + "成功获取 600537.SH 的数据\n", + "成功获取 600538.SH 的数据\n", + "成功获取 600539.SH 的数据\n", + "成功获取 600540.SH 的数据\n", + "成功获取 600543.SH 的数据\n", + "成功获取 600545.SH 的数据\n", + "成功获取 600546.SH 的数据\n", + "成功获取 600547.SH 的数据\n", + "成功获取 600548.SH 的数据\n", + "成功获取 600549.SH 的数据\n", + "成功获取 600550.SH 的数据\n", + "成功获取 600551.SH 的数据\n", + "成功获取 600552.SH 的数据\n", + "成功获取 600556.SH 的数据\n", + "成功获取 600557.SH 的数据\n", + "成功获取 600558.SH 的数据\n", + "成功获取 600559.SH 的数据\n", + "成功获取 600560.SH 的数据\n", + "成功获取 600561.SH 的数据\n", + "成功获取 600562.SH 的数据\n", + "成功获取 600563.SH 的数据\n", + "成功获取 600566.SH 的数据\n", + "成功获取 600567.SH 的数据\n", + "成功获取 600568.SH 的数据\n", + "成功获取 600569.SH 的数据\n", + "成功获取 600570.SH 的数据\n", + "成功获取 600571.SH 的数据\n", + "成功获取 600572.SH 的数据\n", + "成功获取 600573.SH 的数据\n", + "成功获取 600575.SH 的数据\n", + "成功获取 600576.SH 的数据\n", + "成功获取 600577.SH 的数据\n", + "成功获取 600578.SH 的数据\n", + "成功获取 600579.SH 的数据\n", + "成功获取 600580.SH 的数据\n", + "成功获取 600581.SH 的数据\n", + "成功获取 600582.SH 的数据\n", + "成功获取 600583.SH 的数据\n", + "成功获取 600584.SH 的数据\n", + "成功获取 600585.SH 的数据\n", + "成功获取 600586.SH 的数据\n", + "成功获取 600587.SH 的数据\n", + "成功获取 600588.SH 的数据\n", + "成功获取 600589.SH 的数据\n", + "成功获取 600590.SH 的数据\n", + "成功获取 600592.SH 的数据\n", + "成功获取 600593.SH 的数据\n", + "成功获取 600594.SH 的数据\n", + "成功获取 600595.SH 的数据\n", + "成功获取 600596.SH 的数据\n", + "成功获取 600597.SH 的数据\n", + "成功获取 600598.SH 的数据\n", + "成功获取 600599.SH 的数据\n", + "成功获取 600600.SH 的数据\n", + "成功获取 600601.SH 的数据\n", + "成功获取 600602.SH 的数据\n", + "成功获取 600603.SH 的数据\n", + "成功获取 600604.SH 的数据\n", + "成功获取 600605.SH 的数据\n", + "成功获取 600606.SH 的数据\n", + "成功获取 600608.SH 的数据\n", + "成功获取 600609.SH 的数据\n", + "成功获取 600610.SH 的数据\n", + "成功获取 600611.SH 的数据\n", + "成功获取 600612.SH 的数据\n", + "成功获取 600613.SH 的数据\n", + "成功获取 600615.SH 的数据\n", + "成功获取 600616.SH 的数据\n", + "成功获取 600617.SH 的数据\n", + "成功获取 600618.SH 的数据\n", + "成功获取 600619.SH 的数据\n", + "成功获取 600620.SH 的数据\n", + "成功获取 600621.SH 的数据\n", + "成功获取 600622.SH 的数据\n", + "成功获取 600623.SH 的数据\n", + "成功获取 600624.SH 的数据\n", + "成功获取 600626.SH 的数据\n", + "成功获取 600628.SH 的数据\n", + "成功获取 600629.SH 的数据\n", + "成功获取 600630.SH 的数据\n", + "成功获取 600633.SH 的数据\n", + "成功获取 600635.SH 的数据\n", + "成功获取 600636.SH 的数据\n", + "成功获取 600637.SH 的数据\n", + "成功获取 600638.SH 的数据\n", + "成功获取 600639.SH 的数据\n", + "成功获取 600640.SH 的数据\n", + "成功获取 600641.SH 的数据\n", + "成功获取 600642.SH 的数据\n", + "成功获取 600643.SH 的数据\n", + "成功获取 600644.SH 的数据\n", + "成功获取 600645.SH 的数据\n", + "成功获取 600648.SH 的数据\n", + "成功获取 600649.SH 的数据\n", + "成功获取 600650.SH 的数据\n", + "成功获取 600651.SH 的数据\n", + "成功获取 600653.SH 的数据\n", + "成功获取 600654.SH 的数据\n", + "成功获取 600655.SH 的数据\n", + "成功获取 600657.SH 的数据\n", + "成功获取 600658.SH 的数据\n", + "成功获取 600660.SH 的数据\n", + "成功获取 600661.SH 的数据\n", + "成功获取 600662.SH 的数据\n", + "成功获取 600663.SH 的数据\n", + "成功获取 600664.SH 的数据\n", + "成功获取 600665.SH 的数据\n", + "成功获取 600666.SH 的数据\n", + "成功获取 600667.SH 的数据\n", + "成功获取 600668.SH 的数据\n", + "成功获取 600671.SH 的数据\n", + "成功获取 600673.SH 的数据\n", + "成功获取 600674.SH 的数据\n", + "成功获取 600675.SH 的数据\n", + "成功获取 600676.SH 的数据\n", + "成功获取 600678.SH 的数据\n", + "成功获取 600679.SH 的数据\n", + "成功获取 600681.SH 的数据\n", + "成功获取 600682.SH 的数据\n", + "成功获取 600683.SH 的数据\n", + "成功获取 600684.SH 的数据\n", + "成功获取 600685.SH 的数据\n", + "成功获取 600686.SH 的数据\n", + "成功获取 600688.SH 的数据\n", + "成功获取 600689.SH 的数据\n", + "成功获取 600690.SH 的数据\n", + "成功获取 600691.SH 的数据\n", + "成功获取 600692.SH 的数据\n", + "成功获取 600693.SH 的数据\n", + "成功获取 600694.SH 的数据\n", + "成功获取 600696.SH 的数据\n", + "成功获取 600697.SH 的数据\n", + "成功获取 600698.SH 的数据\n", + "成功获取 600699.SH 的数据\n", + "成功获取 600702.SH 的数据\n", + "成功获取 600703.SH 的数据\n", + "成功获取 600704.SH 的数据\n", + "成功获取 600705.SH 的数据\n", + "成功获取 600706.SH 的数据\n", + "成功获取 600707.SH 的数据\n", + "成功获取 600708.SH 的数据\n", + "成功获取 600710.SH 的数据\n", + "成功获取 600711.SH 的数据\n", + "成功获取 600712.SH 的数据\n", + "成功获取 600713.SH 的数据\n", + "成功获取 600714.SH 的数据\n", + "成功获取 600715.SH 的数据\n", + "成功获取 600716.SH 的数据\n", + "成功获取 600717.SH 的数据\n", + "成功获取 600718.SH 的数据\n", + "成功获取 600719.SH 的数据\n", + "成功获取 600720.SH 的数据\n", + "成功获取 600721.SH 的数据\n", + "成功获取 600722.SH 的数据\n", + "成功获取 600724.SH 的数据\n", + "成功获取 600725.SH 的数据\n", + "成功获取 600726.SH 的数据\n", + "成功获取 600727.SH 的数据\n", + "成功获取 600728.SH 的数据\n", + "成功获取 600729.SH 的数据\n", + "成功获取 600730.SH 的数据\n", + "成功获取 600731.SH 的数据\n", + "成功获取 600732.SH 的数据\n", + "成功获取 600733.SH 的数据\n", + "成功获取 600734.SH 的数据\n", + "成功获取 600735.SH 的数据\n", + "成功获取 600736.SH 的数据\n", + "成功获取 600737.SH 的数据\n", + "成功获取 600738.SH 的数据\n", + "成功获取 600739.SH 的数据\n", + "成功获取 600740.SH 的数据\n", + "成功获取 600741.SH 的数据\n", + "成功获取 600742.SH 的数据\n", + "成功获取 600743.SH 的数据\n", + "成功获取 600744.SH 的数据\n", + "成功获取 600745.SH 的数据\n", + "成功获取 600746.SH 的数据\n", + "成功获取 600748.SH 的数据\n", + "成功获取 600749.SH 的数据\n", + "成功获取 600750.SH 的数据\n", + "成功获取 600751.SH 的数据\n", + "成功获取 600753.SH 的数据\n", + "成功获取 600754.SH 的数据\n", + "成功获取 600755.SH 的数据\n", + "成功获取 600756.SH 的数据\n", + "成功获取 600757.SH 的数据\n", + "成功获取 600758.SH 的数据\n", + "成功获取 600759.SH 的数据\n", + "成功获取 600760.SH 的数据\n", + "成功获取 600761.SH 的数据\n", + "成功获取 600763.SH 的数据\n", + "成功获取 600764.SH 的数据\n", + "成功获取 600765.SH 的数据\n", + "成功获取 600768.SH 的数据\n", + "成功获取 600769.SH 的数据\n", + "成功获取 600770.SH 的数据\n", + "成功获取 600771.SH 的数据\n", + "成功获取 600773.SH 的数据\n", + "成功获取 600774.SH 的数据\n", + "成功获取 600775.SH 的数据\n", + "成功获取 600776.SH 的数据\n", + "成功获取 600777.SH 的数据\n", + "成功获取 600778.SH 的数据\n", + "成功获取 600779.SH 的数据\n", + "成功获取 600780.SH 的数据\n", + "成功获取 600782.SH 的数据\n", + "成功获取 600783.SH 的数据\n", + "成功获取 600784.SH 的数据\n", + "成功获取 600785.SH 的数据\n", + "成功获取 600787.SH 的数据\n", + "成功获取 600789.SH 的数据\n", + "成功获取 600790.SH 的数据\n", + "成功获取 600791.SH 的数据\n", + "成功获取 600792.SH 的数据\n", + "成功获取 600793.SH 的数据\n", + "成功获取 600794.SH 的数据\n", + "成功获取 600795.SH 的数据\n", + "成功获取 600796.SH 的数据\n", + "成功获取 600797.SH 的数据\n", + "成功获取 600798.SH 的数据\n", + "成功获取 600800.SH 的数据\n", + "成功获取 600801.SH 的数据\n", + "成功获取 600802.SH 的数据\n", + "成功获取 600803.SH 的数据\n", + "成功获取 600804.SH 的数据\n", + "成功获取 600805.SH 的数据\n", + "成功获取 600807.SH 的数据\n", + "成功获取 600808.SH 的数据\n", + "成功获取 600809.SH 的数据\n", + "成功获取 600810.SH 的数据\n", + "成功获取 600811.SH 的数据\n", + "成功获取 600812.SH 的数据\n", + "成功获取 600814.SH 的数据\n", + "成功获取 600815.SH 的数据\n", + "成功获取 600816.SH 的数据\n", + "成功获取 600817.SH 的数据\n", + "成功获取 600818.SH 的数据\n", + "成功获取 600819.SH 的数据\n", + "成功获取 600820.SH 的数据\n", + "成功获取 600821.SH 的数据\n", + "成功获取 600822.SH 的数据\n", + "成功获取 600824.SH 的数据\n", + "成功获取 600825.SH 的数据\n", + "成功获取 600826.SH 的数据\n", + "成功获取 600827.SH 的数据\n", + "成功获取 600828.SH 的数据\n", + "成功获取 600829.SH 的数据\n", + "成功获取 600830.SH 的数据\n", + "成功获取 600831.SH 的数据\n", + "成功获取 600833.SH 的数据\n", + "成功获取 600834.SH 的数据\n", + "成功获取 600835.SH 的数据\n", + "成功获取 600837.SH 的数据\n", + "成功获取 600838.SH 的数据\n", + "成功获取 600839.SH 的数据\n", + "成功获取 600841.SH 的数据\n", + "成功获取 600843.SH 的数据\n", + "成功获取 600844.SH 的数据\n", + "成功获取 600845.SH 的数据\n", + "成功获取 600846.SH 的数据\n", + "成功获取 600847.SH 的数据\n", + "成功获取 600848.SH 的数据\n", + "成功获取 600850.SH 的数据\n", + "成功获取 600851.SH 的数据\n", + "成功获取 600853.SH 的数据\n", + "成功获取 600854.SH 的数据\n", + "成功获取 600855.SH 的数据\n", + "成功获取 600857.SH 的数据\n", + "成功获取 600858.SH 的数据\n", + "成功获取 600859.SH 的数据\n", + "成功获取 600860.SH 的数据\n", + "成功获取 600861.SH 的数据\n", + "成功获取 600862.SH 的数据\n", + "成功获取 600863.SH 的数据\n", + "成功获取 600864.SH 的数据\n", + "成功获取 600865.SH 的数据\n", + "成功获取 600866.SH 的数据\n", + "成功获取 600867.SH 的数据\n", + "成功获取 600868.SH 的数据\n", + "成功获取 600869.SH 的数据\n", + "成功获取 600871.SH 的数据\n", + "成功获取 600872.SH 的数据\n", + "成功获取 600873.SH 的数据\n", + "成功获取 600874.SH 的数据\n", + "成功获取 600875.SH 的数据\n", + "成功获取 600876.SH 的数据\n", + "成功获取 600877.SH 的数据\n", + "成功获取 600879.SH 的数据\n", + "成功获取 600880.SH 的数据\n", + "成功获取 600881.SH 的数据\n", + "成功获取 600882.SH 的数据\n", + "成功获取 600883.SH 的数据\n", + "成功获取 600884.SH 的数据\n", + "成功获取 600885.SH 的数据\n", + "成功获取 600886.SH 的数据\n", + "成功获取 600887.SH 的数据\n", + "成功获取 600888.SH 的数据\n", + "成功获取 600889.SH 的数据\n", + "成功获取 600892.SH 的数据\n", + "成功获取 600893.SH 的数据\n", + "成功获取 600894.SH 的数据\n", + "成功获取 600895.SH 的数据\n", + "成功获取 600897.SH 的数据\n", + "成功获取 600898.SH 的数据\n", + "成功获取 600900.SH 的数据\n", + "成功获取 600901.SH 的数据\n", + "成功获取 600903.SH 的数据\n", + "成功获取 600905.SH 的数据\n", + "成功获取 600906.SH 的数据\n", + "成功获取 600908.SH 的数据\n", + "成功获取 600909.SH 的数据\n", + "成功获取 600916.SH 的数据\n", + "成功获取 600917.SH 的数据\n", + "成功获取 600918.SH 的数据\n", + "成功获取 600919.SH 的数据\n", + "成功获取 600925.SH 的数据\n", + "成功获取 600926.SH 的数据\n", + "成功获取 600927.SH 的数据\n", + "成功获取 600928.SH 的数据\n", + "成功获取 600929.SH 的数据\n", + "成功获取 600933.SH 的数据\n", + "成功获取 600935.SH 的数据\n", + "成功获取 600936.SH 的数据\n", + "成功获取 600938.SH 的数据\n", + "成功获取 600939.SH 的数据\n", + "成功获取 600941.SH 的数据\n", + "成功获取 600955.SH 的数据\n", + "成功获取 600956.SH 的数据\n", + "成功获取 600958.SH 的数据\n", + "成功获取 600959.SH 的数据\n", + "成功获取 600960.SH 的数据\n", + "成功获取 600961.SH 的数据\n", + "成功获取 600962.SH 的数据\n", + "成功获取 600963.SH 的数据\n", + "成功获取 600965.SH 的数据\n", + "成功获取 600966.SH 的数据\n", + "成功获取 600967.SH 的数据\n", + "成功获取 600968.SH 的数据\n", + "成功获取 600969.SH 的数据\n", + "成功获取 600970.SH 的数据\n", + "成功获取 600971.SH 的数据\n", + "成功获取 600973.SH 的数据\n", + "成功获取 600975.SH 的数据\n", + "成功获取 600976.SH 的数据\n", + "成功获取 600977.SH 的数据\n", + "成功获取 600979.SH 的数据\n", + "成功获取 600980.SH 的数据\n", + "成功获取 600981.SH 的数据\n", + "成功获取 600982.SH 的数据\n", + "成功获取 600983.SH 的数据\n", + "成功获取 600984.SH 的数据\n", + "成功获取 600985.SH 的数据\n", + "成功获取 600986.SH 的数据\n", + "成功获取 600987.SH 的数据\n", + "成功获取 600988.SH 的数据\n", + "成功获取 600989.SH 的数据\n", + "成功获取 600990.SH 的数据\n", + "成功获取 600992.SH 的数据\n", + "成功获取 600993.SH 的数据\n", + "成功获取 600995.SH 的数据\n", + "成功获取 600996.SH 的数据\n", + "成功获取 600997.SH 的数据\n", + "成功获取 600998.SH 的数据\n", + "成功获取 600999.SH 的数据\n", + "成功获取 601000.SH 的数据\n", + "成功获取 601001.SH 的数据\n", + "成功获取 601002.SH 的数据\n", + "成功获取 601003.SH 的数据\n", + "成功获取 601005.SH 的数据\n", + "成功获取 601006.SH 的数据\n", + "成功获取 601007.SH 的数据\n", + "成功获取 601008.SH 的数据\n", + "成功获取 601009.SH 的数据\n", + "成功获取 601010.SH 的数据\n", + "成功获取 601011.SH 的数据\n", + "成功获取 601012.SH 的数据\n", + "成功获取 601015.SH 的数据\n", + "成功获取 601016.SH 的数据\n", + "成功获取 601018.SH 的数据\n", + "成功获取 601019.SH 的数据\n", + "成功获取 601020.SH 的数据\n", + "成功获取 601021.SH 的数据\n", + "成功获取 601022.SH 的数据\n", + "成功获取 601028.SH 的数据\n", + "成功获取 601033.SH 的数据\n", + "成功获取 601038.SH 的数据\n", + "成功获取 601058.SH 的数据\n", + "成功获取 601059.SH 的数据\n", + "成功获取 601061.SH 的数据\n", + "成功获取 601065.SH 的数据\n", + "成功获取 601066.SH 的数据\n", + "成功获取 601068.SH 的数据\n", + "成功获取 601069.SH 的数据\n", + "成功获取 601077.SH 的数据\n", + "成功获取 601083.SH 的数据\n", + "成功获取 601086.SH 的数据\n", + "成功获取 601088.SH 的数据\n", + "成功获取 601089.SH 的数据\n", + "成功获取 601096.SH 的数据\n", + "成功获取 601098.SH 的数据\n", + "成功获取 601099.SH 的数据\n", + "成功获取 601100.SH 的数据\n", + "成功获取 601101.SH 的数据\n", + "成功获取 601106.SH 的数据\n", + "成功获取 601107.SH 的数据\n", + "成功获取 601108.SH 的数据\n", + "成功获取 601111.SH 的数据\n", + "成功获取 601113.SH 的数据\n", + "成功获取 601116.SH 的数据\n", + "成功获取 601117.SH 的数据\n", + "成功获取 601118.SH 的数据\n", + "成功获取 601121.SH 的数据\n", + "成功获取 601126.SH 的数据\n", + "成功获取 601127.SH 的数据\n", + "成功获取 601128.SH 的数据\n", + "成功获取 601133.SH 的数据\n", + "成功获取 601136.SH 的数据\n", + "成功获取 601137.SH 的数据\n", + "成功获取 601138.SH 的数据\n", + "成功获取 601139.SH 的数据\n", + "成功获取 601155.SH 的数据\n", + "成功获取 601156.SH 的数据\n", + "成功获取 601158.SH 的数据\n", + "成功获取 601162.SH 的数据\n", + "成功获取 601163.SH 的数据\n", + "成功获取 601166.SH 的数据\n", + "成功获取 601168.SH 的数据\n", + "成功获取 601169.SH 的数据\n", + "成功获取 601177.SH 的数据\n", + "成功获取 601179.SH 的数据\n", + "成功获取 601186.SH 的数据\n", + "成功获取 601187.SH 的数据\n", + "成功获取 601188.SH 的数据\n", + "成功获取 601198.SH 的数据\n", + "成功获取 601199.SH 的数据\n", + "成功获取 601200.SH 的数据\n", + "成功获取 601208.SH 的数据\n", + "成功获取 601211.SH 的数据\n", + "成功获取 601212.SH 的数据\n", + "成功获取 601216.SH 的数据\n", + "成功获取 601218.SH 的数据\n", + "成功获取 601222.SH 的数据\n", + "成功获取 601225.SH 的数据\n", + "成功获取 601226.SH 的数据\n", + "成功获取 601228.SH 的数据\n", + "成功获取 601229.SH 的数据\n", + "成功获取 601231.SH 的数据\n", + "成功获取 601233.SH 的数据\n", + "成功获取 601236.SH 的数据\n", + "成功获取 601238.SH 的数据\n", + "成功获取 601279.SH 的数据\n", + "成功获取 601288.SH 的数据\n", + "成功获取 601298.SH 的数据\n", + "成功获取 601311.SH 的数据\n", + "成功获取 601318.SH 的数据\n", + "成功获取 601319.SH 的数据\n", + "成功获取 601326.SH 的数据\n", + "成功获取 601328.SH 的数据\n", + "成功获取 601330.SH 的数据\n", + "成功获取 601333.SH 的数据\n", + "成功获取 601336.SH 的数据\n", + "成功获取 601339.SH 的数据\n", + "成功获取 601360.SH 的数据\n", + "成功获取 601366.SH 的数据\n", + "成功获取 601368.SH 的数据\n", + "成功获取 601369.SH 的数据\n", + "成功获取 601375.SH 的数据\n", + "成功获取 601377.SH 的数据\n", + "成功获取 601388.SH 的数据\n", + "成功获取 601390.SH 的数据\n", + "成功获取 601398.SH 的数据\n", + "成功获取 601399.SH 的数据\n", + "成功获取 601456.SH 的数据\n", + "成功获取 601500.SH 的数据\n", + "成功获取 601512.SH 的数据\n", + "成功获取 601515.SH 的数据\n", + "成功获取 601518.SH 的数据\n", + "成功获取 601519.SH 的数据\n", + "成功获取 601528.SH 的数据\n", + "成功获取 601555.SH 的数据\n", + "成功获取 601566.SH 的数据\n", + "成功获取 601567.SH 的数据\n", + "成功获取 601568.SH 的数据\n", + "成功获取 601577.SH 的数据\n", + "成功获取 601579.SH 的数据\n", + "成功获取 601588.SH 的数据\n", + "成功获取 601595.SH 的数据\n", + "成功获取 601598.SH 的数据\n", + "成功获取 601599.SH 的数据\n", + "成功获取 601600.SH 的数据\n", + "成功获取 601601.SH 的数据\n", + "成功获取 601606.SH 的数据\n", + "成功获取 601607.SH 的数据\n", + "成功获取 601608.SH 的数据\n", + "成功获取 601609.SH 的数据\n", + "成功获取 601611.SH 的数据\n", + "成功获取 601615.SH 的数据\n", + "成功获取 601616.SH 的数据\n", + "成功获取 601618.SH 的数据\n", + "成功获取 601619.SH 的数据\n", + "成功获取 601628.SH 的数据\n", + "成功获取 601633.SH 的数据\n", + "成功获取 601636.SH 的数据\n", + "成功获取 601658.SH 的数据\n", + "成功获取 601665.SH 的数据\n", + "成功获取 601666.SH 的数据\n", + "成功获取 601668.SH 的数据\n", + "成功获取 601669.SH 的数据\n", + "成功获取 601677.SH 的数据\n", + "成功获取 601678.SH 的数据\n", + "成功获取 601686.SH 的数据\n", + "成功获取 601688.SH 的数据\n", + "成功获取 601689.SH 的数据\n", + "成功获取 601696.SH 的数据\n", + "成功获取 601698.SH 的数据\n", + "成功获取 601699.SH 的数据\n", + "成功获取 601700.SH 的数据\n", + "成功获取 601702.SH 的数据\n", + "成功获取 601717.SH 的数据\n", + "成功获取 601718.SH 的数据\n", + "成功获取 601727.SH 的数据\n", + "成功获取 601728.SH 的数据\n", + "成功获取 601766.SH 的数据\n", + "成功获取 601777.SH 的数据\n", + "成功获取 601778.SH 的数据\n", + "成功获取 601788.SH 的数据\n", + "成功获取 601789.SH 的数据\n", + "成功获取 601798.SH 的数据\n", + "成功获取 601799.SH 的数据\n", + "成功获取 601800.SH 的数据\n", + "成功获取 601801.SH 的数据\n", + "成功获取 601808.SH 的数据\n", + "成功获取 601811.SH 的数据\n", + "成功获取 601816.SH 的数据\n", + "成功获取 601818.SH 的数据\n", + "成功获取 601825.SH 的数据\n", + "成功获取 601827.SH 的数据\n", + "成功获取 601828.SH 的数据\n", + "成功获取 601838.SH 的数据\n", + "成功获取 601857.SH 的数据\n", + "成功获取 601858.SH 的数据\n", + "成功获取 601860.SH 的数据\n", + "成功获取 601865.SH 的数据\n", + "成功获取 601866.SH 的数据\n", + "成功获取 601868.SH 的数据\n", + "成功获取 601869.SH 的数据\n", + "成功获取 601872.SH 的数据\n", + "成功获取 601877.SH 的数据\n", + "成功获取 601878.SH 的数据\n", + "成功获取 601880.SH 的数据\n", + "成功获取 601881.SH 的数据\n", + "成功获取 601882.SH 的数据\n", + "成功获取 601886.SH 的数据\n", + "成功获取 601888.SH 的数据\n", + "成功获取 601890.SH 的数据\n", + "成功获取 601898.SH 的数据\n", + "成功获取 601899.SH 的数据\n", + "成功获取 601900.SH 的数据\n", + "成功获取 601901.SH 的数据\n", + "成功获取 601908.SH 的数据\n", + "成功获取 601916.SH 的数据\n", + "成功获取 601918.SH 的数据\n", + "成功获取 601919.SH 的数据\n", + "成功获取 601921.SH 的数据\n", + "成功获取 601928.SH 的数据\n", + "成功获取 601929.SH 的数据\n", + "成功获取 601933.SH 的数据\n", + "成功获取 601939.SH 的数据\n", + "成功获取 601949.SH 的数据\n", + "成功获取 601952.SH 的数据\n", + "成功获取 601956.SH 的数据\n", + "成功获取 601958.SH 的数据\n", + "成功获取 601963.SH 的数据\n", + "成功获取 601965.SH 的数据\n", + "成功获取 601966.SH 的数据\n", + "成功获取 601968.SH 的数据\n", + "成功获取 601969.SH 的数据\n", + "成功获取 601975.SH 的数据\n", + "成功获取 601985.SH 的数据\n", + "成功获取 601988.SH 的数据\n", + "成功获取 601989.SH 的数据\n", + "成功获取 601990.SH 的数据\n", + "成功获取 601991.SH 的数据\n", + "成功获取 601992.SH 的数据\n", + "成功获取 601995.SH 的数据\n", + "成功获取 601996.SH 的数据\n", + "成功获取 601997.SH 的数据\n", + "成功获取 601998.SH 的数据\n", + "成功获取 601999.SH 的数据\n", + "成功获取 603000.SH 的数据\n", + "成功获取 603001.SH 的数据\n", + "成功获取 603002.SH 的数据\n", + "成功获取 603003.SH 的数据\n", + "成功获取 603004.SH 的数据\n", + "成功获取 603005.SH 的数据\n", + "成功获取 603006.SH 的数据\n", + "成功获取 603007.SH 的数据\n", + "成功获取 603008.SH 的数据\n", + "成功获取 603009.SH 的数据\n", + "成功获取 603010.SH 的数据\n", + "成功获取 603011.SH 的数据\n", + "成功获取 603012.SH 的数据\n", + "成功获取 603013.SH 的数据\n", + "成功获取 603015.SH 的数据\n", + "成功获取 603016.SH 的数据\n", + "成功获取 603017.SH 的数据\n", + "成功获取 603018.SH 的数据\n", + "成功获取 603019.SH 的数据\n", + "成功获取 603020.SH 的数据\n", + "成功获取 603021.SH 的数据\n", + "成功获取 603022.SH 的数据\n", + "成功获取 603023.SH 的数据\n", + "成功获取 603025.SH 的数据\n", + "成功获取 603026.SH 的数据\n", + "成功获取 603027.SH 的数据\n", + "成功获取 603028.SH 的数据\n", + "成功获取 603029.SH 的数据\n", + "成功获取 603030.SH 的数据\n", + "成功获取 603031.SH 的数据\n", + "成功获取 603032.SH 的数据\n", + "成功获取 603033.SH 的数据\n", + "成功获取 603035.SH 的数据\n", + "成功获取 603036.SH 的数据\n", + "成功获取 603037.SH 的数据\n", + "成功获取 603038.SH 的数据\n", + "成功获取 603039.SH 的数据\n", + "成功获取 603040.SH 的数据\n", + "成功获取 603041.SH 的数据\n", + "成功获取 603042.SH 的数据\n", + "成功获取 603043.SH 的数据\n", + "成功获取 603045.SH 的数据\n", + "成功获取 603048.SH 的数据\n", + "成功获取 603050.SH 的数据\n", + "成功获取 603051.SH 的数据\n", + "成功获取 603052.SH 的数据\n", + "成功获取 603053.SH 的数据\n", + "成功获取 603055.SH 的数据\n", + "成功获取 603056.SH 的数据\n", + "成功获取 603057.SH 的数据\n", + "成功获取 603058.SH 的数据\n", + "成功获取 603059.SH 的数据\n", + "成功获取 603060.SH 的数据\n", + "成功获取 603061.SH 的数据\n", + "成功获取 603062.SH 的数据\n", + "成功获取 603063.SH 的数据\n", + "成功获取 603065.SH 的数据\n", + "成功获取 603066.SH 的数据\n", + "成功获取 603067.SH 的数据\n", + "成功获取 603068.SH 的数据\n", + "成功获取 603069.SH 的数据\n", + "成功获取 603070.SH 的数据\n", + "成功获取 603071.SH 的数据\n", + "成功获取 603072.SH 的数据\n", + "成功获取 603073.SH 的数据\n", + "成功获取 603075.SH 的数据\n", + "成功获取 603076.SH 的数据\n", + "成功获取 603077.SH 的数据\n", + "成功获取 603078.SH 的数据\n", + "成功获取 603079.SH 的数据\n", + "成功获取 603080.SH 的数据\n", + "成功获取 603081.SH 的数据\n", + "成功获取 603082.SH 的数据\n", + "成功获取 603083.SH 的数据\n", + "成功获取 603085.SH 的数据\n", + "成功获取 603086.SH 的数据\n", + "成功获取 603087.SH 的数据\n", + "成功获取 603088.SH 的数据\n", + "成功获取 603089.SH 的数据\n", + "成功获取 603090.SH 的数据\n", + "成功获取 603091.SH 的数据\n", + "成功获取 603093.SH 的数据\n", + "成功获取 603095.SH 的数据\n", + "成功获取 603096.SH 的数据\n", + "成功获取 603097.SH 的数据\n", + "成功获取 603098.SH 的数据\n", + "成功获取 603099.SH 的数据\n", + "成功获取 603100.SH 的数据\n", + "成功获取 603101.SH 的数据\n", + "成功获取 603102.SH 的数据\n", + "成功获取 603103.SH 的数据\n", + "成功获取 603105.SH 的数据\n", + "成功获取 603106.SH 的数据\n", + "成功获取 603107.SH 的数据\n", + "成功获取 603108.SH 的数据\n", + "成功获取 603109.SH 的数据\n", + "成功获取 603110.SH 的数据\n", + "成功获取 603111.SH 的数据\n", + "成功获取 603112.SH 的数据\n", + "成功获取 603113.SH 的数据\n", + "成功获取 603115.SH 的数据\n", + "成功获取 603116.SH 的数据\n", + "成功获取 603117.SH 的数据\n", + "成功获取 603118.SH 的数据\n", + "成功获取 603119.SH 的数据\n", + "成功获取 603121.SH 的数据\n", + "成功获取 603122.SH 的数据\n", + "成功获取 603123.SH 的数据\n", + "成功获取 603125.SH 的数据\n", + "成功获取 603126.SH 的数据\n", + "成功获取 603127.SH 的数据\n", + "成功获取 603128.SH 的数据\n", + "成功获取 603129.SH 的数据\n", + "成功获取 603130.SH 的数据\n", + "成功获取 603131.SH 的数据\n", + "成功获取 603132.SH 的数据\n", + "成功获取 603135.SH 的数据\n", + "成功获取 603136.SH 的数据\n", + "成功获取 603137.SH 的数据\n", + "成功获取 603138.SH 的数据\n", + "成功获取 603139.SH 的数据\n", + "成功获取 603150.SH 的数据\n", + "成功获取 603151.SH 的数据\n", + "成功获取 603153.SH 的数据\n", + "成功获取 603155.SH 的数据\n", + "成功获取 603156.SH 的数据\n", + "成功获取 603158.SH 的数据\n", + "成功获取 603159.SH 的数据\n", + "成功获取 603160.SH 的数据\n", + "成功获取 603161.SH 的数据\n", + "成功获取 603162.SH 的数据\n", + "成功获取 603163.SH 的数据\n", + "成功获取 603165.SH 的数据\n", + "成功获取 603166.SH 的数据\n", + "成功获取 603167.SH 的数据\n", + "成功获取 603168.SH 的数据\n", + "成功获取 603169.SH 的数据\n", + "成功获取 603170.SH 的数据\n", + "成功获取 603171.SH 的数据\n", + "成功获取 603172.SH 的数据\n", + "成功获取 603173.SH 的数据\n", + "成功获取 603176.SH 的数据\n", + "成功获取 603177.SH 的数据\n", + "成功获取 603178.SH 的数据\n", + "成功获取 603179.SH 的数据\n", + "成功获取 603180.SH 的数据\n", + "成功获取 603181.SH 的数据\n", + "成功获取 603182.SH 的数据\n", + "成功获取 603183.SH 的数据\n", + "成功获取 603185.SH 的数据\n", + "成功获取 603186.SH 的数据\n", + "成功获取 603187.SH 的数据\n", + "成功获取 603188.SH 的数据\n", + "成功获取 603189.SH 的数据\n", + "成功获取 603190.SH 的数据\n", + "成功获取 603191.SH 的数据\n", + "成功获取 603192.SH 的数据\n", + "成功获取 603193.SH 的数据\n", + "成功获取 603194.SH 的数据\n", + "成功获取 603195.SH 的数据\n", + "成功获取 603196.SH 的数据\n", + "成功获取 603197.SH 的数据\n", + "成功获取 603198.SH 的数据\n", + "成功获取 603199.SH 的数据\n", + "成功获取 603200.SH 的数据\n", + "成功获取 603201.SH 的数据\n", + "成功获取 603203.SH 的数据\n", + "成功获取 603205.SH 的数据\n", + "成功获取 603206.SH 的数据\n", + "成功获取 603207.SH 的数据\n", + "成功获取 603208.SH 的数据\n", + "成功获取 603209.SH 的数据\n", + "成功获取 603211.SH 的数据\n", + "成功获取 603212.SH 的数据\n", + "成功获取 603213.SH 的数据\n", + "成功获取 603214.SH 的数据\n", + "成功获取 603215.SH 的数据\n", + "成功获取 603216.SH 的数据\n", + "成功获取 603217.SH 的数据\n", + "成功获取 603218.SH 的数据\n", + "成功获取 603219.SH 的数据\n", + "成功获取 603220.SH 的数据\n", + "成功获取 603221.SH 的数据\n", + "成功获取 603222.SH 的数据\n", + "成功获取 603223.SH 的数据\n", + "成功获取 603225.SH 的数据\n", + "成功获取 603226.SH 的数据\n", + "成功获取 603227.SH 的数据\n", + "成功获取 603228.SH 的数据\n", + "成功获取 603229.SH 的数据\n", + "成功获取 603230.SH 的数据\n", + "成功获取 603231.SH 的数据\n", + "成功获取 603232.SH 的数据\n", + "成功获取 603233.SH 的数据\n", + "成功获取 603235.SH 的数据\n", + "成功获取 603236.SH 的数据\n", + "成功获取 603237.SH 的数据\n", + "成功获取 603238.SH 的数据\n", + "成功获取 603239.SH 的数据\n", + "成功获取 603255.SH 的数据\n", + "成功获取 603256.SH 的数据\n", + "成功获取 603258.SH 的数据\n", + "成功获取 603259.SH 的数据\n", + "成功获取 603260.SH 的数据\n", + "成功获取 603261.SH 的数据\n", + "成功获取 603266.SH 的数据\n", + "成功获取 603267.SH 的数据\n", + "成功获取 603268.SH 的数据\n", + "成功获取 603269.SH 的数据\n", + "成功获取 603270.SH 的数据\n", + "成功获取 603272.SH 的数据\n", + "成功获取 603273.SH 的数据\n", + "成功获取 603275.SH 的数据\n", + "成功获取 603276.SH 的数据\n", + "成功获取 603277.SH 的数据\n", + "成功获取 603278.SH 的数据\n", + "成功获取 603279.SH 的数据\n", + "成功获取 603280.SH 的数据\n", + "成功获取 603281.SH 的数据\n", + "成功获取 603282.SH 的数据\n", + "成功获取 603283.SH 的数据\n", + "成功获取 603285.SH 的数据\n", + "成功获取 603286.SH 的数据\n", + "成功获取 603288.SH 的数据\n", + "成功获取 603289.SH 的数据\n", + "成功获取 603290.SH 的数据\n", + "成功获取 603291.SH 的数据\n", + "成功获取 603296.SH 的数据\n", + "成功获取 603297.SH 的数据\n", + "成功获取 603298.SH 的数据\n", + "成功获取 603299.SH 的数据\n", + "成功获取 603300.SH 的数据\n", + "成功获取 603301.SH 的数据\n", + "成功获取 603303.SH 的数据\n", + "成功获取 603305.SH 的数据\n", + "成功获取 603306.SH 的数据\n", + "成功获取 603307.SH 的数据\n", + "成功获取 603308.SH 的数据\n", + "成功获取 603309.SH 的数据\n", + "成功获取 603310.SH 的数据\n", + "成功获取 603311.SH 的数据\n", + "成功获取 603312.SH 的数据\n", + "成功获取 603313.SH 的数据\n", + "成功获取 603315.SH 的数据\n", + "成功获取 603316.SH 的数据\n", + "成功获取 603317.SH 的数据\n", + "成功获取 603318.SH 的数据\n", + "成功获取 603319.SH 的数据\n", + "成功获取 603320.SH 的数据\n", + "成功获取 603321.SH 的数据\n", + "成功获取 603322.SH 的数据\n", + "成功获取 603323.SH 的数据\n", + "成功获取 603324.SH 的数据\n", + "成功获取 603325.SH 的数据\n", + "成功获取 603326.SH 的数据\n", + "成功获取 603327.SH 的数据\n", + "成功获取 603328.SH 的数据\n", + "成功获取 603329.SH 的数据\n", + "成功获取 603330.SH 的数据\n", + "成功获取 603331.SH 的数据\n", + "成功获取 603332.SH 的数据\n", + "成功获取 603333.SH 的数据\n", + "成功获取 603335.SH 的数据\n", + "成功获取 603336.SH 的数据\n", + "成功获取 603337.SH 的数据\n", + "成功获取 603338.SH 的数据\n", + "成功获取 603339.SH 的数据\n", + "成功获取 603341.SH 的数据\n", + "成功获取 603344.SH 的数据\n", + "成功获取 603345.SH 的数据\n", + "成功获取 603348.SH 的数据\n", + "成功获取 603350.SH 的数据\n", + "成功获取 603351.SH 的数据\n", + "成功获取 603353.SH 的数据\n", + "成功获取 603355.SH 的数据\n", + "成功获取 603356.SH 的数据\n", + "成功获取 603357.SH 的数据\n", + "成功获取 603358.SH 的数据\n", + "成功获取 603359.SH 的数据\n", + "成功获取 603360.SH 的数据\n", + "成功获取 603363.SH 的数据\n", + "成功获取 603365.SH 的数据\n", + "成功获取 603366.SH 的数据\n", + "成功获取 603367.SH 的数据\n", + "成功获取 603368.SH 的数据\n", + "成功获取 603369.SH 的数据\n", + "成功获取 603373.SH 的数据\n", + "成功获取 603375.SH 的数据\n", + "成功获取 603377.SH 的数据\n", + "成功获取 603378.SH 的数据\n", + "成功获取 603379.SH 的数据\n", + "成功获取 603380.SH 的数据\n", + "成功获取 603381.SH 的数据\n", + "成功获取 603383.SH 的数据\n", + "成功获取 603385.SH 的数据\n", + "成功获取 603386.SH 的数据\n", + "成功获取 603387.SH 的数据\n", + "成功获取 603388.SH 的数据\n", + "成功获取 603389.SH 的数据\n", + "成功获取 603390.SH 的数据\n", + "成功获取 603391.SH 的数据\n", + "成功获取 603392.SH 的数据\n", + "成功获取 603393.SH 的数据\n", + "成功获取 603395.SH 的数据\n", + "成功获取 603396.SH 的数据\n", + "成功获取 603398.SH 的数据\n", + "成功获取 603399.SH 的数据\n", + "成功获取 603408.SH 的数据\n", + "成功获取 603416.SH 的数据\n", + "成功获取 603421.SH 的数据\n", + "成功获取 603429.SH 的数据\n", + "成功获取 603439.SH 的数据\n", + "成功获取 603444.SH 的数据\n", + "成功获取 603456.SH 的数据\n", + "成功获取 603458.SH 的数据\n", + "成功获取 603466.SH 的数据\n", + "成功获取 603477.SH 的数据\n", + "成功获取 603486.SH 的数据\n", + "成功获取 603488.SH 的数据\n", + "成功获取 603489.SH 的数据\n", + "成功获取 603496.SH 的数据\n", + "成功获取 603499.SH 的数据\n", + "成功获取 603500.SH 的数据\n", + "成功获取 603501.SH 的数据\n", + "成功获取 603505.SH 的数据\n", + "成功获取 603506.SH 的数据\n", + "成功获取 603507.SH 的数据\n", + "成功获取 603508.SH 的数据\n", + "成功获取 603511.SH 的数据\n", + "成功获取 603515.SH 的数据\n", + "成功获取 603516.SH 的数据\n", + "成功获取 603517.SH 的数据\n", + "成功获取 603518.SH 的数据\n", + "成功获取 603519.SH 的数据\n", + "成功获取 603520.SH 的数据\n", + "成功获取 603527.SH 的数据\n", + "成功获取 603528.SH 的数据\n", + "成功获取 603529.SH 的数据\n", + "成功获取 603530.SH 的数据\n", + "成功获取 603533.SH 的数据\n", + "成功获取 603535.SH 的数据\n", + "已调用300次API,等待 0.04 秒以满足速率限制...\n", + "成功获取 603536.SH 的数据\n", + "成功获取 603538.SH 的数据\n", + "成功获取 603551.SH 的数据\n", + "成功获取 603556.SH 的数据\n", + "成功获取 603557.SH 的数据\n", + "成功获取 603558.SH 的数据\n", + "成功获取 603559.SH 的数据\n", + "成功获取 603565.SH 的数据\n", + "成功获取 603566.SH 的数据\n", + "成功获取 603567.SH 的数据\n", + "成功获取 603568.SH 的数据\n", + "成功获取 603569.SH 的数据\n", + "成功获取 603577.SH 的数据\n", + "成功获取 603578.SH 的数据\n", + "成功获取 603579.SH 的数据\n", + "成功获取 603580.SH 的数据\n", + "成功获取 603583.SH 的数据\n", + "成功获取 603585.SH 的数据\n", + "成功获取 603586.SH 的数据\n", + "成功获取 603587.SH 的数据\n", + "成功获取 603588.SH 的数据\n", + "成功获取 603589.SH 的数据\n", + "成功获取 603590.SH 的数据\n", + "成功获取 603595.SH 的数据\n", + "成功获取 603596.SH 的数据\n", + "成功获取 603598.SH 的数据\n", + "成功获取 603599.SH 的数据\n", + "成功获取 603600.SH 的数据\n", + "成功获取 603601.SH 的数据\n", + "成功获取 603602.SH 的数据\n", + "成功获取 603605.SH 的数据\n", + "成功获取 603606.SH 的数据\n", + "成功获取 603607.SH 的数据\n", + "成功获取 603608.SH 的数据\n", + "成功获取 603609.SH 的数据\n", + "成功获取 603610.SH 的数据\n", + "成功获取 603611.SH 的数据\n", + "成功获取 603612.SH 的数据\n", + "成功获取 603613.SH 的数据\n", + "成功获取 603615.SH 的数据\n", + "成功获取 603616.SH 的数据\n", + "成功获取 603617.SH 的数据\n", + "成功获取 603618.SH 的数据\n", + "成功获取 603619.SH 的数据\n", + "成功获取 603626.SH 的数据\n", + "成功获取 603628.SH 的数据\n", + "成功获取 603629.SH 的数据\n", + "成功获取 603630.SH 的数据\n", + "成功获取 603633.SH 的数据\n", + "成功获取 603636.SH 的数据\n", + "成功获取 603637.SH 的数据\n", + "成功获取 603638.SH 的数据\n", + "成功获取 603639.SH 的数据\n", + "成功获取 603648.SH 的数据\n", + "成功获取 603650.SH 的数据\n", + "成功获取 603655.SH 的数据\n", + "成功获取 603656.SH 的数据\n", + "成功获取 603657.SH 的数据\n", + "成功获取 603658.SH 的数据\n", + "成功获取 603659.SH 的数据\n", + "成功获取 603660.SH 的数据\n", + "成功获取 603661.SH 的数据\n", + "成功获取 603662.SH 的数据\n", + "成功获取 603663.SH 的数据\n", + "成功获取 603665.SH 的数据\n", + "成功获取 603666.SH 的数据\n", + "成功获取 603667.SH 的数据\n", + "成功获取 603668.SH 的数据\n", + "成功获取 603669.SH 的数据\n", + "成功获取 603676.SH 的数据\n", + "成功获取 603677.SH 的数据\n", + "成功获取 603678.SH 的数据\n", + "成功获取 603679.SH 的数据\n", + "成功获取 603680.SH 的数据\n", + "成功获取 603681.SH 的数据\n", + "成功获取 603682.SH 的数据\n", + "成功获取 603683.SH 的数据\n", + "成功获取 603685.SH 的数据\n", + "成功获取 603686.SH 的数据\n", + "成功获取 603687.SH 的数据\n", + "成功获取 603688.SH 的数据\n", + "成功获取 603689.SH 的数据\n", + "成功获取 603690.SH 的数据\n", + "成功获取 603693.SH 的数据\n", + "成功获取 603696.SH 的数据\n", + "成功获取 603697.SH 的数据\n", + "成功获取 603698.SH 的数据\n", + "成功获取 603699.SH 的数据\n", + "成功获取 603700.SH 的数据\n", + "成功获取 603701.SH 的数据\n", + "成功获取 603703.SH 的数据\n", + "成功获取 603706.SH 的数据\n", + "成功获取 603707.SH 的数据\n", + "成功获取 603708.SH 的数据\n", + "成功获取 603709.SH 的数据\n", + "成功获取 603711.SH 的数据\n", + "成功获取 603712.SH 的数据\n", + "成功获取 603713.SH 的数据\n", + "成功获取 603716.SH 的数据\n", + "成功获取 603717.SH 的数据\n", + "成功获取 603718.SH 的数据\n", + "成功获取 603719.SH 的数据\n", + "成功获取 603721.SH 的数据\n", + "成功获取 603722.SH 的数据\n", + "成功获取 603725.SH 的数据\n", + "成功获取 603726.SH 的数据\n", + "成功获取 603727.SH 的数据\n", + "成功获取 603728.SH 的数据\n", + "成功获取 603729.SH 的数据\n", + "成功获取 603730.SH 的数据\n", + "成功获取 603733.SH 的数据\n", + "成功获取 603737.SH 的数据\n", + "成功获取 603738.SH 的数据\n", + "成功获取 603739.SH 的数据\n", + "成功获取 603755.SH 的数据\n", + "成功获取 603757.SH 的数据\n", + "成功获取 603758.SH 的数据\n", + "成功获取 603759.SH 的数据\n", + "成功获取 603766.SH 的数据\n", + "成功获取 603767.SH 的数据\n", + "成功获取 603768.SH 的数据\n", + "成功获取 603773.SH 的数据\n", + "成功获取 603776.SH 的数据\n", + "成功获取 603777.SH 的数据\n", + "成功获取 603778.SH 的数据\n", + "成功获取 603779.SH 的数据\n", + "成功获取 603786.SH 的数据\n", + "成功获取 603787.SH 的数据\n", + "成功获取 603788.SH 的数据\n", + "成功获取 603789.SH 的数据\n", + "成功获取 603790.SH 的数据\n", + "成功获取 603797.SH 的数据\n", + "成功获取 603798.SH 的数据\n", + "成功获取 603799.SH 的数据\n", + "成功获取 603800.SH 的数据\n", + "成功获取 603801.SH 的数据\n", + "成功获取 603803.SH 的数据\n", + "成功获取 603806.SH 的数据\n", + "成功获取 603808.SH 的数据\n", + "成功获取 603809.SH 的数据\n", + "成功获取 603810.SH 的数据\n", + "成功获取 603811.SH 的数据\n", + "成功获取 603813.SH 的数据\n", + "成功获取 603815.SH 的数据\n", + "成功获取 603816.SH 的数据\n", + "成功获取 603817.SH 的数据\n", + "成功获取 603818.SH 的数据\n", + "成功获取 603819.SH 的数据\n", + "成功获取 603822.SH 的数据\n", + "成功获取 603823.SH 的数据\n", + "成功获取 603825.SH 的数据\n", + "成功获取 603826.SH 的数据\n", + "成功获取 603828.SH 的数据\n", + "成功获取 603829.SH 的数据\n", + "成功获取 603833.SH 的数据\n", + "成功获取 603836.SH 的数据\n", + "成功获取 603838.SH 的数据\n", + "成功获取 603839.SH 的数据\n", + "成功获取 603843.SH 的数据\n", + "成功获取 603848.SH 的数据\n", + "成功获取 603855.SH 的数据\n", + "成功获取 603856.SH 的数据\n", + "成功获取 603858.SH 的数据\n", + "成功获取 603859.SH 的数据\n", + "成功获取 603860.SH 的数据\n", + "成功获取 603861.SH 的数据\n", + "成功获取 603863.SH 的数据\n", + "成功获取 603866.SH 的数据\n", + "成功获取 603867.SH 的数据\n", + "成功获取 603868.SH 的数据\n", + "成功获取 603869.SH 的数据\n", + "成功获取 603871.SH 的数据\n", + "成功获取 603876.SH 的数据\n", + "成功获取 603877.SH 的数据\n", + "成功获取 603878.SH 的数据\n", + "成功获取 603879.SH 的数据\n", + "成功获取 603880.SH 的数据\n", + "成功获取 603881.SH 的数据\n", + "成功获取 603882.SH 的数据\n", + "成功获取 603883.SH 的数据\n", + "成功获取 603885.SH 的数据\n", + "成功获取 603886.SH 的数据\n", + "成功获取 603887.SH 的数据\n", + "成功获取 603888.SH 的数据\n", + "成功获取 603889.SH 的数据\n", + "成功获取 603890.SH 的数据\n", + "成功获取 603893.SH 的数据\n", + "成功获取 603895.SH 的数据\n", + "成功获取 603896.SH 的数据\n", + "成功获取 603897.SH 的数据\n", + "成功获取 603898.SH 的数据\n", + "成功获取 603899.SH 的数据\n", + "成功获取 603900.SH 的数据\n", + "成功获取 603901.SH 的数据\n", + "成功获取 603903.SH 的数据\n", + "成功获取 603906.SH 的数据\n", + "成功获取 603908.SH 的数据\n", + "成功获取 603909.SH 的数据\n", + "成功获取 603912.SH 的数据\n", + "成功获取 603915.SH 的数据\n", + "成功获取 603916.SH 的数据\n", + "成功获取 603917.SH 的数据\n", + "成功获取 603918.SH 的数据\n", + "成功获取 603919.SH 的数据\n", + "成功获取 603920.SH 的数据\n", + "成功获取 603922.SH 的数据\n", + "成功获取 603926.SH 的数据\n", + "成功获取 603927.SH 的数据\n", + "成功获取 603928.SH 的数据\n", + "成功获取 603929.SH 的数据\n", + "成功获取 603931.SH 的数据\n", + "成功获取 603933.SH 的数据\n", + "成功获取 603936.SH 的数据\n", + "成功获取 603937.SH 的数据\n", + "成功获取 603938.SH 的数据\n", + "成功获取 603939.SH 的数据\n", + "成功获取 603948.SH 的数据\n", + "成功获取 603949.SH 的数据\n", + "成功获取 603950.SH 的数据\n", + "成功获取 603955.SH 的数据\n", + "成功获取 603956.SH 的数据\n", + "成功获取 603958.SH 的数据\n", + "成功获取 603959.SH 的数据\n", + "成功获取 603960.SH 的数据\n", + "成功获取 603963.SH 的数据\n", + "成功获取 603966.SH 的数据\n", + "成功获取 603967.SH 的数据\n", + "成功获取 603968.SH 的数据\n", + "成功获取 603969.SH 的数据\n", + "成功获取 603970.SH 的数据\n", + "成功获取 603976.SH 的数据\n", + "成功获取 603977.SH 的数据\n", + "成功获取 603978.SH 的数据\n", + "成功获取 603979.SH 的数据\n", + "成功获取 603980.SH 的数据\n", + "成功获取 603982.SH 的数据\n", + "成功获取 603983.SH 的数据\n", + "成功获取 603985.SH 的数据\n", + "成功获取 603986.SH 的数据\n", + "成功获取 603987.SH 的数据\n", + "成功获取 603988.SH 的数据\n", + "成功获取 603989.SH 的数据\n", + "成功获取 603990.SH 的数据\n", + "成功获取 603991.SH 的数据\n", + "成功获取 603992.SH 的数据\n", + "成功获取 603993.SH 的数据\n", + "成功获取 603995.SH 的数据\n", + "成功获取 603997.SH 的数据\n", + "成功获取 603998.SH 的数据\n", + "成功获取 603999.SH 的数据\n", + "成功获取 605001.SH 的数据\n", + "成功获取 605003.SH 的数据\n", + "成功获取 605005.SH 的数据\n", + "成功获取 605006.SH 的数据\n", + "成功获取 605007.SH 的数据\n", + "成功获取 605008.SH 的数据\n", + "成功获取 605009.SH 的数据\n", + "成功获取 605011.SH 的数据\n", + "成功获取 605016.SH 的数据\n", + "成功获取 605018.SH 的数据\n", + "成功获取 605020.SH 的数据\n", + "成功获取 605028.SH 的数据\n", + "成功获取 605033.SH 的数据\n", + "成功获取 605050.SH 的数据\n", + "成功获取 605055.SH 的数据\n", + "成功获取 605056.SH 的数据\n", + "成功获取 605058.SH 的数据\n", + "成功获取 605060.SH 的数据\n", + "成功获取 605066.SH 的数据\n", + "成功获取 605068.SH 的数据\n", + "成功获取 605069.SH 的数据\n", + "成功获取 605077.SH 的数据\n", + "成功获取 605080.SH 的数据\n", + "成功获取 605081.SH 的数据\n", + "成功获取 605086.SH 的数据\n", + "成功获取 605088.SH 的数据\n", + "成功获取 605089.SH 的数据\n", + "成功获取 605090.SH 的数据\n", + "成功获取 605098.SH 的数据\n", + "成功获取 605099.SH 的数据\n", + "成功获取 605100.SH 的数据\n", + "成功获取 605108.SH 的数据\n", + "成功获取 605111.SH 的数据\n", + "成功获取 605116.SH 的数据\n", + "成功获取 605117.SH 的数据\n", + "成功获取 605118.SH 的数据\n", + "成功获取 605122.SH 的数据\n", + "成功获取 605123.SH 的数据\n", + "成功获取 605128.SH 的数据\n", + "成功获取 605133.SH 的数据\n", + "成功获取 605136.SH 的数据\n", + "成功获取 605138.SH 的数据\n", + "成功获取 605151.SH 的数据\n", + "成功获取 605155.SH 的数据\n", + "成功获取 605158.SH 的数据\n", + "成功获取 605162.SH 的数据\n", + "成功获取 605166.SH 的数据\n", + "成功获取 605167.SH 的数据\n", + "成功获取 605168.SH 的数据\n", + "成功获取 605169.SH 的数据\n", + "成功获取 605177.SH 的数据\n", + "成功获取 605178.SH 的数据\n", + "成功获取 605179.SH 的数据\n", + "成功获取 605180.SH 的数据\n", + "成功获取 605183.SH 的数据\n", + "成功获取 605186.SH 的数据\n", + "成功获取 605188.SH 的数据\n", + "成功获取 605189.SH 的数据\n", + "成功获取 605196.SH 的数据\n", + "成功获取 605198.SH 的数据\n", + "成功获取 605199.SH 的数据\n", + "成功获取 605208.SH 的数据\n", + "成功获取 605218.SH 的数据\n", + "成功获取 605222.SH 的数据\n", + "成功获取 605228.SH 的数据\n", + "成功获取 605255.SH 的数据\n", + "成功获取 605258.SH 的数据\n", + "成功获取 605259.SH 的数据\n", + "成功获取 605266.SH 的数据\n", + "成功获取 605268.SH 的数据\n", + "成功获取 605277.SH 的数据\n", + "成功获取 605286.SH 的数据\n", + "成功获取 605287.SH 的数据\n", + "成功获取 605288.SH 的数据\n", + "成功获取 605289.SH 的数据\n", + "成功获取 605296.SH 的数据\n", + "成功获取 605298.SH 的数据\n", + "成功获取 605299.SH 的数据\n", + "成功获取 605300.SH 的数据\n", + "成功获取 605303.SH 的数据\n", + "成功获取 605305.SH 的数据\n", + "成功获取 605318.SH 的数据\n", + "成功获取 605319.SH 的数据\n", + "成功获取 605333.SH 的数据\n", + "成功获取 605336.SH 的数据\n", + "成功获取 605337.SH 的数据\n", + "成功获取 605338.SH 的数据\n", + "成功获取 605339.SH 的数据\n", + "成功获取 605358.SH 的数据\n", + "成功获取 605365.SH 的数据\n", + "成功获取 605366.SH 的数据\n", + "成功获取 605368.SH 的数据\n", + "成功获取 605369.SH 的数据\n", + "成功获取 605376.SH 的数据\n", + "成功获取 605377.SH 的数据\n", + "成功获取 605378.SH 的数据\n", + "成功获取 605388.SH 的数据\n", + "成功获取 605389.SH 的数据\n", + "成功获取 605398.SH 的数据\n", + "成功获取 605399.SH 的数据\n", + "成功获取 605488.SH 的数据\n", + "成功获取 605499.SH 的数据\n", + "成功获取 605500.SH 的数据\n", + "成功获取 605507.SH 的数据\n", + "成功获取 605555.SH 的数据\n", + "成功获取 605566.SH 的数据\n", + "成功获取 605567.SH 的数据\n", + "成功获取 605577.SH 的数据\n", + "成功获取 605580.SH 的数据\n", + "成功获取 605588.SH 的数据\n", + "成功获取 605589.SH 的数据\n", + "成功获取 605598.SH 的数据\n", + "成功获取 605599.SH 的数据\n", + "成功获取 688001.SH 的数据\n", + "成功获取 688002.SH 的数据\n", + "成功获取 688003.SH 的数据\n", + "成功获取 688004.SH 的数据\n", + "成功获取 688005.SH 的数据\n", + "成功获取 688006.SH 的数据\n", + "成功获取 688007.SH 的数据\n", + "成功获取 688008.SH 的数据\n", + "成功获取 688009.SH 的数据\n", + "成功获取 688010.SH 的数据\n", + "成功获取 688011.SH 的数据\n", + "成功获取 688012.SH 的数据\n", + "成功获取 688013.SH 的数据\n", + "成功获取 688015.SH 的数据\n", + "成功获取 688016.SH 的数据\n", + "成功获取 688017.SH 的数据\n", + "成功获取 688018.SH 的数据\n", + "成功获取 688019.SH 的数据\n", + "成功获取 688020.SH 的数据\n", + "成功获取 688021.SH 的数据\n", + "成功获取 688022.SH 的数据\n", + "成功获取 688023.SH 的数据\n", + "成功获取 688025.SH 的数据\n", + "成功获取 688026.SH 的数据\n", + "成功获取 688027.SH 的数据\n", + "成功获取 688028.SH 的数据\n", + "成功获取 688029.SH 的数据\n", + "成功获取 688030.SH 的数据\n", + "成功获取 688031.SH 的数据\n", + "成功获取 688032.SH 的数据\n", + "成功获取 688033.SH 的数据\n", + "成功获取 688035.SH 的数据\n", + "成功获取 688036.SH 的数据\n", + "成功获取 688037.SH 的数据\n", + "成功获取 688038.SH 的数据\n", + "成功获取 688039.SH 的数据\n", + "成功获取 688041.SH 的数据\n", + "成功获取 688045.SH 的数据\n", + "成功获取 688046.SH 的数据\n", + "成功获取 688047.SH 的数据\n", + "成功获取 688048.SH 的数据\n", + "成功获取 688049.SH 的数据\n", + "成功获取 688050.SH 的数据\n", + "成功获取 688051.SH 的数据\n", + "成功获取 688052.SH 的数据\n", + "成功获取 688053.SH 的数据\n", + "成功获取 688055.SH 的数据\n", + "成功获取 688056.SH 的数据\n", + "成功获取 688057.SH 的数据\n", + "成功获取 688058.SH 的数据\n", + "成功获取 688059.SH 的数据\n", + "成功获取 688060.SH 的数据\n", + "成功获取 688061.SH 的数据\n", + "成功获取 688062.SH 的数据\n", + "成功获取 688063.SH 的数据\n", + "成功获取 688065.SH 的数据\n", + "成功获取 688066.SH 的数据\n", + "成功获取 688067.SH 的数据\n", + "成功获取 688068.SH 的数据\n", + "成功获取 688069.SH 的数据\n", + "成功获取 688070.SH 的数据\n", + "成功获取 688071.SH 的数据\n", + "成功获取 688072.SH 的数据\n", + "成功获取 688073.SH 的数据\n", + "成功获取 688075.SH 的数据\n", + "成功获取 688076.SH 的数据\n", + "成功获取 688077.SH 的数据\n", + "成功获取 688078.SH 的数据\n", + "成功获取 688079.SH 的数据\n", + "成功获取 688080.SH 的数据\n", + "成功获取 688081.SH 的数据\n", + "成功获取 688082.SH 的数据\n", + "成功获取 688083.SH 的数据\n", + "成功获取 688084.SH 的数据\n", + "成功获取 688085.SH 的数据\n", + "成功获取 688087.SH 的数据\n", + "成功获取 688088.SH 的数据\n", + "成功获取 688089.SH 的数据\n", + "成功获取 688090.SH 的数据\n", + "成功获取 688091.SH 的数据\n", + "成功获取 688092.SH 的数据\n", + "成功获取 688093.SH 的数据\n", + "成功获取 688095.SH 的数据\n", + "成功获取 688096.SH 的数据\n", + "成功获取 688097.SH 的数据\n", + "成功获取 688098.SH 的数据\n", + "成功获取 688099.SH 的数据\n", + "成功获取 688100.SH 的数据\n", + "成功获取 688101.SH 的数据\n", + "成功获取 688102.SH 的数据\n", + "成功获取 688103.SH 的数据\n", + "成功获取 688105.SH 的数据\n", + "成功获取 688106.SH 的数据\n", + "成功获取 688107.SH 的数据\n", + "成功获取 688108.SH 的数据\n", + "成功获取 688109.SH 的数据\n", + "成功获取 688110.SH 的数据\n", + "成功获取 688111.SH 的数据\n", + "成功获取 688112.SH 的数据\n", + "成功获取 688113.SH 的数据\n", + "成功获取 688114.SH 的数据\n", + "成功获取 688115.SH 的数据\n", + "成功获取 688116.SH 的数据\n", + "成功获取 688117.SH 的数据\n", + "成功获取 688118.SH 的数据\n", + "成功获取 688119.SH 的数据\n", + "成功获取 688120.SH 的数据\n", + "成功获取 688121.SH 的数据\n", + "成功获取 688122.SH 的数据\n", + "成功获取 688123.SH 的数据\n", + "成功获取 688125.SH 的数据\n", + "成功获取 688126.SH 的数据\n", + "成功获取 688127.SH 的数据\n", + "成功获取 688128.SH 的数据\n", + "成功获取 688129.SH 的数据\n", + "成功获取 688130.SH 的数据\n", + "成功获取 688131.SH 的数据\n", + "成功获取 688132.SH 的数据\n", + "成功获取 688133.SH 的数据\n", + "成功获取 688135.SH 的数据\n", + "成功获取 688136.SH 的数据\n", + "成功获取 688137.SH 的数据\n", + "成功获取 688138.SH 的数据\n", + "成功获取 688139.SH 的数据\n", + "成功获取 688141.SH 的数据\n", + "成功获取 688143.SH 的数据\n", + "成功获取 688146.SH 的数据\n", + "成功获取 688147.SH 的数据\n", + "成功获取 688148.SH 的数据\n", + "成功获取 688150.SH 的数据\n", + "成功获取 688151.SH 的数据\n", + "成功获取 688152.SH 的数据\n", + "成功获取 688153.SH 的数据\n", + "成功获取 688155.SH 的数据\n", + "成功获取 688156.SH 的数据\n", + "成功获取 688157.SH 的数据\n", + "成功获取 688158.SH 的数据\n", + "成功获取 688159.SH 的数据\n", + "成功获取 688160.SH 的数据\n", + "成功获取 688161.SH 的数据\n", + "成功获取 688162.SH 的数据\n", + "成功获取 688163.SH 的数据\n", + "成功获取 688165.SH 的数据\n", + "成功获取 688166.SH 的数据\n", + "成功获取 688167.SH 的数据\n", + "成功获取 688168.SH 的数据\n", + "成功获取 688169.SH 的数据\n", + "成功获取 688170.SH 的数据\n", + "成功获取 688171.SH 的数据\n", + "成功获取 688172.SH 的数据\n", + "成功获取 688173.SH 的数据\n", + "成功获取 688175.SH 的数据\n", + "成功获取 688176.SH 的数据\n", + "成功获取 688177.SH 的数据\n", + "成功获取 688178.SH 的数据\n", + "成功获取 688179.SH 的数据\n", + "成功获取 688180.SH 的数据\n", + "成功获取 688181.SH 的数据\n", + "成功获取 688182.SH 的数据\n", + "成功获取 688183.SH 的数据\n", + "成功获取 688184.SH 的数据\n", + "成功获取 688185.SH 的数据\n", + "成功获取 688186.SH 的数据\n", + "成功获取 688187.SH 的数据\n", + "成功获取 688188.SH 的数据\n", + "成功获取 688189.SH 的数据\n", + "成功获取 688190.SH 的数据\n", + "成功获取 688191.SH 的数据\n", + "成功获取 688192.SH 的数据\n", + "成功获取 688193.SH 的数据\n", + "成功获取 688195.SH 的数据\n", + "成功获取 688196.SH 的数据\n", + "成功获取 688197.SH 的数据\n", + "成功获取 688198.SH 的数据\n", + "成功获取 688199.SH 的数据\n", + "成功获取 688200.SH 的数据\n", + "成功获取 688201.SH 的数据\n", + "成功获取 688202.SH 的数据\n", + "成功获取 688203.SH 的数据\n", + "成功获取 688205.SH 的数据\n", + "成功获取 688206.SH 的数据\n", + "成功获取 688207.SH 的数据\n", + "成功获取 688208.SH 的数据\n", + "成功获取 688209.SH 的数据\n", + "成功获取 688210.SH 的数据\n", + "成功获取 688211.SH 的数据\n", + "成功获取 688212.SH 的数据\n", + "成功获取 688213.SH 的数据\n", + "成功获取 688215.SH 的数据\n", + "成功获取 688216.SH 的数据\n", + "成功获取 688217.SH 的数据\n", + "成功获取 688218.SH 的数据\n", + "成功获取 688219.SH 的数据\n", + "成功获取 688220.SH 的数据\n", + "成功获取 688221.SH 的数据\n", + "成功获取 688222.SH 的数据\n", + "成功获取 688223.SH 的数据\n", + "成功获取 688225.SH 的数据\n", + "成功获取 688226.SH 的数据\n", + "成功获取 688227.SH 的数据\n", + "成功获取 688228.SH 的数据\n", + "成功获取 688229.SH 的数据\n", + "成功获取 688230.SH 的数据\n", + "成功获取 688231.SH 的数据\n", + "成功获取 688232.SH 的数据\n", + "成功获取 688233.SH 的数据\n", + "成功获取 688234.SH 的数据\n", + "成功获取 688235.SH 的数据\n", + "成功获取 688236.SH 的数据\n", + "成功获取 688237.SH 的数据\n", + "成功获取 688238.SH 的数据\n", + "成功获取 688239.SH 的数据\n", + "成功获取 688244.SH 的数据\n", + "成功获取 688246.SH 的数据\n", + "成功获取 688247.SH 的数据\n", + "成功获取 688248.SH 的数据\n", + "成功获取 688249.SH 的数据\n", + "成功获取 688251.SH 的数据\n", + "成功获取 688252.SH 的数据\n", + "成功获取 688253.SH 的数据\n", + "成功获取 688255.SH 的数据\n", + "成功获取 688256.SH 的数据\n", + "成功获取 688257.SH 的数据\n", + "成功获取 688258.SH 的数据\n", + "成功获取 688259.SH 的数据\n", + "成功获取 688260.SH 的数据\n", + "成功获取 688261.SH 的数据\n", + "成功获取 688262.SH 的数据\n", + "成功获取 688265.SH 的数据\n", + "成功获取 688266.SH 的数据\n", + "成功获取 688267.SH 的数据\n", + "成功获取 688268.SH 的数据\n", + "成功获取 688269.SH 的数据\n", + "成功获取 688270.SH 的数据\n", + "成功获取 688271.SH 的数据\n", + "成功获取 688272.SH 的数据\n", + "成功获取 688273.SH 的数据\n", + "已调用300次API,等待 2.28 秒以满足速率限制...\n", + "成功获取 688275.SH 的数据\n", + "成功获取 688276.SH 的数据\n", + "成功获取 688277.SH 的数据\n", + "成功获取 688278.SH 的数据\n", + "成功获取 688279.SH 的数据\n", + "成功获取 688280.SH 的数据\n", + "成功获取 688281.SH 的数据\n", + "成功获取 688282.SH 的数据\n", + "成功获取 688283.SH 的数据\n", + "成功获取 688285.SH 的数据\n", + "成功获取 688286.SH 的数据\n", + "成功获取 688287.SH 的数据\n", + "成功获取 688288.SH 的数据\n", + "成功获取 688289.SH 的数据\n", + "成功获取 688290.SH 的数据\n", + "成功获取 688291.SH 的数据\n", + "成功获取 688292.SH 的数据\n", + "成功获取 688293.SH 的数据\n", + "成功获取 688295.SH 的数据\n", + "成功获取 688296.SH 的数据\n", + "成功获取 688297.SH 的数据\n", + "成功获取 688298.SH 的数据\n", + "成功获取 688299.SH 的数据\n", + "成功获取 688300.SH 的数据\n", + "成功获取 688301.SH 的数据\n", + "成功获取 688302.SH 的数据\n", + "成功获取 688303.SH 的数据\n", + "成功获取 688305.SH 的数据\n", + "成功获取 688306.SH 的数据\n", + "成功获取 688307.SH 的数据\n", + "成功获取 688308.SH 的数据\n", + "成功获取 688309.SH 的数据\n", + "成功获取 688310.SH 的数据\n", + "成功获取 688311.SH 的数据\n", + "成功获取 688312.SH 的数据\n", + "成功获取 688313.SH 的数据\n", + "成功获取 688314.SH 的数据\n", + "成功获取 688315.SH 的数据\n", + "成功获取 688316.SH 的数据\n", + "成功获取 688317.SH 的数据\n", + "成功获取 688318.SH 的数据\n", + "成功获取 688319.SH 的数据\n", + "成功获取 688320.SH 的数据\n", + "成功获取 688321.SH 的数据\n", + "成功获取 688322.SH 的数据\n", + "成功获取 688323.SH 的数据\n", + "成功获取 688325.SH 的数据\n", + "成功获取 688326.SH 的数据\n", + "成功获取 688327.SH 的数据\n", + "成功获取 688328.SH 的数据\n", + "成功获取 688329.SH 的数据\n", + "成功获取 688330.SH 的数据\n", + "成功获取 688331.SH 的数据\n", + "成功获取 688332.SH 的数据\n", + "成功获取 688333.SH 的数据\n", + "成功获取 688334.SH 的数据\n", + "成功获取 688335.SH 的数据\n", + "成功获取 688336.SH 的数据\n", + "成功获取 688337.SH 的数据\n", + "成功获取 688338.SH 的数据\n", + "成功获取 688339.SH 的数据\n", + "成功获取 688343.SH 的数据\n", + "成功获取 688345.SH 的数据\n", + "成功获取 688347.SH 的数据\n", + "成功获取 688348.SH 的数据\n", + "成功获取 688349.SH 的数据\n", + "成功获取 688350.SH 的数据\n", + "成功获取 688351.SH 的数据\n", + "成功获取 688352.SH 的数据\n", + "成功获取 688353.SH 的数据\n", + "成功获取 688355.SH 的数据\n", + "成功获取 688356.SH 的数据\n", + "成功获取 688357.SH 的数据\n", + "成功获取 688358.SH 的数据\n", + "成功获取 688359.SH 的数据\n", + "成功获取 688360.SH 的数据\n", + "成功获取 688361.SH 的数据\n", + "成功获取 688362.SH 的数据\n", + "成功获取 688363.SH 的数据\n", + "成功获取 688365.SH 的数据\n", + "成功获取 688366.SH 的数据\n", + "成功获取 688367.SH 的数据\n", + "成功获取 688368.SH 的数据\n", + "成功获取 688369.SH 的数据\n", + "成功获取 688370.SH 的数据\n", + "成功获取 688371.SH 的数据\n", + "成功获取 688372.SH 的数据\n", + "成功获取 688373.SH 的数据\n", + "成功获取 688375.SH 的数据\n", + "成功获取 688376.SH 的数据\n", + "成功获取 688377.SH 的数据\n", + "成功获取 688378.SH 的数据\n", + "成功获取 688379.SH 的数据\n", + "成功获取 688380.SH 的数据\n", + "成功获取 688381.SH 的数据\n", + "成功获取 688382.SH 的数据\n", + "成功获取 688383.SH 的数据\n", + "成功获取 688385.SH 的数据\n", + "成功获取 688386.SH 的数据\n", + "成功获取 688387.SH 的数据\n", + "成功获取 688388.SH 的数据\n", + "成功获取 688389.SH 的数据\n", + "成功获取 688390.SH 的数据\n", + "成功获取 688391.SH 的数据\n", + "成功获取 688392.SH 的数据\n", + "成功获取 688393.SH 的数据\n", + "成功获取 688395.SH 的数据\n", + "成功获取 688396.SH 的数据\n", + "成功获取 688398.SH 的数据\n", + "成功获取 688399.SH 的数据\n", + "成功获取 688400.SH 的数据\n", + "成功获取 688401.SH 的数据\n", + "成功获取 688403.SH 的数据\n", + "成功获取 688408.SH 的数据\n", + "成功获取 688409.SH 的数据\n", + "成功获取 688410.SH 的数据\n", + "成功获取 688411.SH 的数据\n", + "成功获取 688416.SH 的数据\n", + "成功获取 688418.SH 的数据\n", + "成功获取 688419.SH 的数据\n", + "成功获取 688420.SH 的数据\n", + "成功获取 688425.SH 的数据\n", + "成功获取 688426.SH 的数据\n", + "成功获取 688428.SH 的数据\n", + "成功获取 688429.SH 的数据\n", + "成功获取 688432.SH 的数据\n", + "成功获取 688433.SH 的数据\n", + "成功获取 688435.SH 的数据\n", + "成功获取 688439.SH 的数据\n", + "成功获取 688443.SH 的数据\n", + "成功获取 688448.SH 的数据\n", + "成功获取 688449.SH 的数据\n", + "成功获取 688450.SH 的数据\n", + "成功获取 688455.SH 的数据\n", + "成功获取 688456.SH 的数据\n", + "成功获取 688458.SH 的数据\n", + "成功获取 688459.SH 的数据\n", + "成功获取 688466.SH 的数据\n", + "成功获取 688468.SH 的数据\n", + "成功获取 688469.SH 的数据\n", + "成功获取 688472.SH 的数据\n", + "成功获取 688475.SH 的数据\n", + "成功获取 688478.SH 的数据\n", + "成功获取 688479.SH 的数据\n", + "成功获取 688480.SH 的数据\n", + "成功获取 688484.SH 的数据\n", + "成功获取 688485.SH 的数据\n", + "成功获取 688486.SH 的数据\n", + "成功获取 688488.SH 的数据\n", + "成功获取 688489.SH 的数据\n", + "成功获取 688496.SH 的数据\n", + "成功获取 688498.SH 的数据\n", + "成功获取 688499.SH 的数据\n", + "成功获取 688500.SH 的数据\n", + "成功获取 688501.SH 的数据\n", + "成功获取 688502.SH 的数据\n", + "成功获取 688503.SH 的数据\n", + "成功获取 688505.SH 的数据\n", + "成功获取 688506.SH 的数据\n", + "成功获取 688507.SH 的数据\n", + "成功获取 688508.SH 的数据\n", + "成功获取 688509.SH 的数据\n", + "成功获取 688510.SH 的数据\n", + "成功获取 688511.SH 的数据\n", + "成功获取 688512.SH 的数据\n", + "成功获取 688513.SH 的数据\n", + "成功获取 688515.SH 的数据\n", + "成功获取 688516.SH 的数据\n", + "成功获取 688517.SH 的数据\n", + "成功获取 688518.SH 的数据\n", + "成功获取 688519.SH 的数据\n", + "成功获取 688520.SH 的数据\n", + "成功获取 688521.SH 的数据\n", + "成功获取 688522.SH 的数据\n", + "成功获取 688523.SH 的数据\n", + "成功获取 688525.SH 的数据\n", + "成功获取 688526.SH 的数据\n", + "成功获取 688528.SH 的数据\n", + "成功获取 688529.SH 的数据\n", + "成功获取 688530.SH 的数据\n", + "成功获取 688531.SH 的数据\n", + "成功获取 688533.SH 的数据\n", + "成功获取 688535.SH 的数据\n", + "成功获取 688536.SH 的数据\n", + "成功获取 688538.SH 的数据\n", + "成功获取 688539.SH 的数据\n", + "成功获取 688543.SH 的数据\n", + "成功获取 688545.SH 的数据\n", + "成功获取 688548.SH 的数据\n", + "成功获取 688549.SH 的数据\n", + "成功获取 688550.SH 的数据\n", + "成功获取 688551.SH 的数据\n", + "成功获取 688552.SH 的数据\n", + "成功获取 688553.SH 的数据\n", + "成功获取 688556.SH 的数据\n", + "成功获取 688557.SH 的数据\n", + "成功获取 688558.SH 的数据\n", + "成功获取 688559.SH 的数据\n", + "成功获取 688560.SH 的数据\n", + "成功获取 688561.SH 的数据\n", + "成功获取 688562.SH 的数据\n", + "成功获取 688563.SH 的数据\n", + "成功获取 688565.SH 的数据\n", + "成功获取 688566.SH 的数据\n", + "成功获取 688567.SH 的数据\n", + "成功获取 688568.SH 的数据\n", + "成功获取 688569.SH 的数据\n", + "成功获取 688570.SH 的数据\n", + "成功获取 688571.SH 的数据\n", + "成功获取 688573.SH 的数据\n", + "成功获取 688575.SH 的数据\n", + "成功获取 688576.SH 的数据\n", + "成功获取 688577.SH 的数据\n", + "成功获取 688578.SH 的数据\n", + "成功获取 688579.SH 的数据\n", + "成功获取 688580.SH 的数据\n", + "成功获取 688581.SH 的数据\n", + "成功获取 688582.SH 的数据\n", + "成功获取 688583.SH 的数据\n", + "成功获取 688584.SH 的数据\n", + "成功获取 688585.SH 的数据\n", + "成功获取 688586.SH 的数据\n", + "成功获取 688588.SH 的数据\n", + "成功获取 688589.SH 的数据\n", + "成功获取 688590.SH 的数据\n", + "成功获取 688591.SH 的数据\n", + "成功获取 688592.SH 的数据\n", + "成功获取 688593.SH 的数据\n", + "成功获取 688595.SH 的数据\n", + "成功获取 688596.SH 的数据\n", + "成功获取 688597.SH 的数据\n", + "成功获取 688598.SH 的数据\n", + "成功获取 688599.SH 的数据\n", + "成功获取 688600.SH 的数据\n", + "成功获取 688601.SH 的数据\n", + "成功获取 688602.SH 的数据\n", + "成功获取 688603.SH 的数据\n", + "成功获取 688605.SH 的数据\n", + "成功获取 688606.SH 的数据\n", + "成功获取 688607.SH 的数据\n", + "成功获取 688608.SH 的数据\n", + "成功获取 688609.SH 的数据\n", + "成功获取 688610.SH 的数据\n", + "成功获取 688611.SH 的数据\n", + "成功获取 688612.SH 的数据\n", + "成功获取 688613.SH 的数据\n", + "成功获取 688615.SH 的数据\n", + "成功获取 688616.SH 的数据\n", + "成功获取 688617.SH 的数据\n", + "成功获取 688618.SH 的数据\n", + "成功获取 688619.SH 的数据\n", + "成功获取 688620.SH 的数据\n", + "成功获取 688621.SH 的数据\n", + "成功获取 688622.SH 的数据\n", + "成功获取 688623.SH 的数据\n", + "成功获取 688625.SH 的数据\n", + "成功获取 688626.SH 的数据\n", + "成功获取 688627.SH 的数据\n", + "成功获取 688628.SH 的数据\n", + "成功获取 688629.SH 的数据\n", + "成功获取 688630.SH 的数据\n", + "成功获取 688631.SH 的数据\n", + "成功获取 688633.SH 的数据\n", + "成功获取 688636.SH 的数据\n", + "成功获取 688638.SH 的数据\n", + "成功获取 688639.SH 的数据\n", + "成功获取 688646.SH 的数据\n", + "成功获取 688648.SH 的数据\n", + "成功获取 688651.SH 的数据\n", + "成功获取 688652.SH 的数据\n", + "成功获取 688653.SH 的数据\n", + "成功获取 688655.SH 的数据\n", + "成功获取 688656.SH 的数据\n", + "成功获取 688657.SH 的数据\n", + "成功获取 688658.SH 的数据\n", + "成功获取 688659.SH 的数据\n", + "成功获取 688660.SH 的数据\n", + "成功获取 688661.SH 的数据\n", + "成功获取 688662.SH 的数据\n", + "成功获取 688663.SH 的数据\n", + "成功获取 688665.SH 的数据\n", + "成功获取 688667.SH 的数据\n", + "成功获取 688668.SH 的数据\n", + "成功获取 688669.SH 的数据\n", + "成功获取 688670.SH 的数据\n", + "成功获取 688671.SH 的数据\n", + "成功获取 688676.SH 的数据\n", + "成功获取 688677.SH 的数据\n", + "成功获取 688678.SH 的数据\n", + "成功获取 688679.SH 的数据\n", + "成功获取 688680.SH 的数据\n", + "成功获取 688681.SH 的数据\n", + "成功获取 688682.SH 的数据\n", + "成功获取 688683.SH 的数据\n", + "成功获取 688685.SH 的数据\n", + "成功获取 688686.SH 的数据\n", + "成功获取 688687.SH 的数据\n", + "成功获取 688689.SH 的数据\n", + "成功获取 688690.SH 的数据\n", + "成功获取 688691.SH 的数据\n", + "已调用300次API,等待 3.96 秒以满足速率限制...\n", + "成功获取 688692.SH 的数据\n", + "成功获取 688693.SH 的数据\n", + "成功获取 688695.SH 的数据\n", + "成功获取 688696.SH 的数据\n", + "成功获取 688697.SH 的数据\n", + "成功获取 688698.SH 的数据\n", + "成功获取 688699.SH 的数据\n", + "成功获取 688700.SH 的数据\n", + "成功获取 688701.SH 的数据\n", + "成功获取 688702.SH 的数据\n", + "成功获取 688707.SH 的数据\n", + "成功获取 688708.SH 的数据\n", + "成功获取 688709.SH 的数据\n", + "成功获取 688710.SH 的数据\n", + "成功获取 688711.SH 的数据\n", + "成功获取 688716.SH 的数据\n", + "成功获取 688717.SH 的数据\n", + "成功获取 688718.SH 的数据\n", + "成功获取 688719.SH 的数据\n", + "成功获取 688720.SH 的数据\n", + "成功获取 688721.SH 的数据\n", + "成功获取 688722.SH 的数据\n", + "成功获取 688726.SH 的数据\n", + "成功获取 688728.SH 的数据\n", + "成功获取 688733.SH 的数据\n", + "成功获取 688737.SH 的数据\n", + "成功获取 688739.SH 的数据\n", + "成功获取 688750.SH 的数据\n", + "成功获取 688758.SH 的数据\n", + "成功获取 688766.SH 的数据\n", + "成功获取 688767.SH 的数据\n", + "成功获取 688768.SH 的数据\n", + "成功获取 688772.SH 的数据\n", + "成功获取 688776.SH 的数据\n", + "成功获取 688777.SH 的数据\n", + "成功获取 688778.SH 的数据\n", + "成功获取 688779.SH 的数据\n", + "成功获取 688786.SH 的数据\n", + "成功获取 688787.SH 的数据\n", + "成功获取 688788.SH 的数据\n", + "成功获取 688789.SH 的数据\n", + "成功获取 688793.SH 的数据\n", + "成功获取 688798.SH 的数据\n", + "成功获取 688799.SH 的数据\n", + "成功获取 688800.SH 的数据\n", + "成功获取 688819.SH 的数据\n", + "成功获取 688981.SH 的数据\n", + "成功获取 830779.BJ 的数据\n", + "成功获取 830799.BJ 的数据\n", + "成功获取 830809.BJ 的数据\n", + "成功获取 830832.BJ 的数据\n", + "成功获取 830839.BJ 的数据\n", + "成功获取 830879.BJ 的数据\n", + "成功获取 830896.BJ 的数据\n", + "成功获取 830946.BJ 的数据\n", + "成功获取 830964.BJ 的数据\n", + "成功获取 830974.BJ 的数据\n", + "成功获取 831010.BJ 的数据\n", + "成功获取 831039.BJ 的数据\n", + "成功获取 831087.BJ 的数据\n", + "成功获取 831152.BJ 的数据\n", + "成功获取 831167.BJ 的数据\n", + "成功获取 831175.BJ 的数据\n", + "成功获取 831195.BJ 的数据\n", + "成功获取 831278.BJ 的数据\n", + "成功获取 831304.BJ 的数据\n", + "成功获取 831305.BJ 的数据\n", + "成功获取 831370.BJ 的数据\n", + "成功获取 831396.BJ 的数据\n", + "成功获取 831445.BJ 的数据\n", + "成功获取 831526.BJ 的数据\n", + "成功获取 831627.BJ 的数据\n", + "成功获取 831641.BJ 的数据\n", + "成功获取 831689.BJ 的数据\n", + "成功获取 831726.BJ 的数据\n", + "成功获取 831768.BJ 的数据\n", + "成功获取 831832.BJ 的数据\n", + "成功获取 831834.BJ 的数据\n", + "成功获取 831855.BJ 的数据\n", + "成功获取 831856.BJ 的数据\n", + "成功获取 831906.BJ 的数据\n", + "成功获取 831961.BJ 的数据\n", + "成功获取 832000.BJ 的数据\n", + "成功获取 832023.BJ 的数据\n", + "成功获取 832089.BJ 的数据\n", + "成功获取 832110.BJ 的数据\n", + "成功获取 832145.BJ 的数据\n", + "成功获取 832149.BJ 的数据\n", + "成功获取 832171.BJ 的数据\n", + "成功获取 832175.BJ 的数据\n", + "成功获取 832225.BJ 的数据\n", + "成功获取 832278.BJ 的数据\n", + "成功获取 832419.BJ 的数据\n", + "成功获取 832469.BJ 的数据\n", + "成功获取 832471.BJ 的数据\n", + "成功获取 832491.BJ 的数据\n", + "成功获取 832522.BJ 的数据\n", + "成功获取 832566.BJ 的数据\n", + "成功获取 832651.BJ 的数据\n", + "成功获取 832662.BJ 的数据\n", + "成功获取 832735.BJ 的数据\n", + "成功获取 832786.BJ 的数据\n", + "成功获取 832802.BJ 的数据\n", + "成功获取 832876.BJ 的数据\n", + "成功获取 832885.BJ 的数据\n", + "成功获取 832978.BJ 的数据\n", + "成功获取 832982.BJ 的数据\n", + "成功获取 833030.BJ 的数据\n", + "成功获取 833075.BJ 的数据\n", + "成功获取 833171.BJ 的数据\n", + "成功获取 833230.BJ 的数据\n", + "成功获取 833266.BJ 的数据\n", + "成功获取 833284.BJ 的数据\n", + "成功获取 833346.BJ 的数据\n", + "成功获取 833394.BJ 的数据\n", + "成功获取 833427.BJ 的数据\n", + "成功获取 833429.BJ 的数据\n", + "成功获取 833454.BJ 的数据\n", + "成功获取 833455.BJ 的数据\n", + "成功获取 833509.BJ 的数据\n", + "成功获取 833523.BJ 的数据\n", + "成功获取 833533.BJ 的数据\n", + "成功获取 833575.BJ 的数据\n", + "成功获取 833580.BJ 的数据\n", + "成功获取 833751.BJ 的数据\n", + "成功获取 833781.BJ 的数据\n", + "成功获取 833819.BJ 的数据\n", + "成功获取 833873.BJ 的数据\n", + "成功获取 833914.BJ 的数据\n", + "成功获取 833943.BJ 的数据\n", + "成功获取 834014.BJ 的数据\n", + "成功获取 834021.BJ 的数据\n", + "成功获取 834033.BJ 的数据\n", + "成功获取 834058.BJ 的数据\n", + "成功获取 834062.BJ 的数据\n", + "成功获取 834261.BJ 的数据\n", + "成功获取 834407.BJ 的数据\n", + "成功获取 834415.BJ 的数据\n", + "成功获取 834475.BJ 的数据\n", + "成功获取 834599.BJ 的数据\n", + "成功获取 834639.BJ 的数据\n", + "成功获取 834682.BJ 的数据\n", + "成功获取 834765.BJ 的数据\n", + "成功获取 834770.BJ 的数据\n", + "成功获取 834950.BJ 的数据\n", + "成功获取 835174.BJ 的数据\n", + "成功获取 835179.BJ 的数据\n", + "成功获取 835184.BJ 的数据\n", + "成功获取 835185.BJ 的数据\n", + "成功获取 835207.BJ 的数据\n", + "成功获取 835237.BJ 的数据\n", + "成功获取 835305.BJ 的数据\n", + "成功获取 835368.BJ 的数据\n", + "成功获取 835438.BJ 的数据\n", + "成功获取 835508.BJ 的数据\n", + "成功获取 835579.BJ 的数据\n", + "成功获取 835640.BJ 的数据\n", + "成功获取 835670.BJ 的数据\n", + "成功获取 835857.BJ 的数据\n", + "成功获取 835892.BJ 的数据\n", + "成功获取 835985.BJ 的数据\n", + "成功获取 836077.BJ 的数据\n", + "成功获取 836149.BJ 的数据\n", + "成功获取 836208.BJ 的数据\n", + "成功获取 836221.BJ 的数据\n", + "成功获取 836239.BJ 的数据\n", + "成功获取 836247.BJ 的数据\n", + "成功获取 836260.BJ 的数据\n", + "成功获取 836263.BJ 的数据\n", + "成功获取 836270.BJ 的数据\n", + "成功获取 836395.BJ 的数据\n", + "成功获取 836414.BJ 的数据\n", + "成功获取 836419.BJ 的数据\n", + "成功获取 836422.BJ 的数据\n", + "成功获取 836433.BJ 的数据\n", + "成功获取 836504.BJ 的数据\n", + "成功获取 836547.BJ 的数据\n", + "成功获取 836675.BJ 的数据\n", + "成功获取 836699.BJ 的数据\n", + "成功获取 836717.BJ 的数据\n", + "成功获取 836720.BJ 的数据\n", + "成功获取 836807.BJ 的数据\n", + "成功获取 836826.BJ 的数据\n", + "成功获取 836871.BJ 的数据\n", + "成功获取 836892.BJ 的数据\n", + "成功获取 836942.BJ 的数据\n", + "成功获取 836957.BJ 的数据\n", + "成功获取 836961.BJ 的数据\n", + "成功获取 837006.BJ 的数据\n", + "成功获取 837023.BJ 的数据\n", + "成功获取 837046.BJ 的数据\n", + "成功获取 837092.BJ 的数据\n", + "成功获取 837174.BJ 的数据\n", + "成功获取 837212.BJ 的数据\n", + "成功获取 837242.BJ 的数据\n", + "成功获取 837344.BJ 的数据\n", + "成功获取 837403.BJ 的数据\n", + "成功获取 837592.BJ 的数据\n", + "成功获取 837663.BJ 的数据\n", + "成功获取 837748.BJ 的数据\n", + "成功获取 837821.BJ 的数据\n", + "成功获取 838030.BJ 的数据\n", + "成功获取 838163.BJ 的数据\n", + "成功获取 838171.BJ 的数据\n", + "成功获取 838227.BJ 的数据\n", + "成功获取 838262.BJ 的数据\n", + "成功获取 838275.BJ 的数据\n", + "成功获取 838402.BJ 的数据\n", + "成功获取 838670.BJ 的数据\n", + "成功获取 838701.BJ 的数据\n", + "成功获取 838810.BJ 的数据\n", + "成功获取 838837.BJ 的数据\n", + "成功获取 838924.BJ 的数据\n", + "成功获取 838971.BJ 的数据\n", + "成功获取 839167.BJ 的数据\n", + "成功获取 839273.BJ 的数据\n", + "成功获取 839371.BJ 的数据\n", + "成功获取 839493.BJ 的数据\n", + "成功获取 839680.BJ 的数据\n", + "成功获取 839719.BJ 的数据\n", + "成功获取 839725.BJ 的数据\n", + "成功获取 839729.BJ 的数据\n", + "成功获取 839790.BJ 的数据\n", + "成功获取 839792.BJ 的数据\n", + "成功获取 839946.BJ 的数据\n", + "成功获取 870199.BJ 的数据\n", + "成功获取 870204.BJ 的数据\n", + "成功获取 870299.BJ 的数据\n", + "成功获取 870357.BJ 的数据\n", + "成功获取 870436.BJ 的数据\n", + "成功获取 870508.BJ 的数据\n", + "成功获取 870656.BJ 的数据\n", + "成功获取 870726.BJ 的数据\n", + "成功获取 870866.BJ 的数据\n", + "成功获取 870976.BJ 的数据\n", + "成功获取 871245.BJ 的数据\n", + "成功获取 871263.BJ 的数据\n", + "成功获取 871396.BJ 的数据\n", + "成功获取 871478.BJ 的数据\n", + "成功获取 871553.BJ 的数据\n", + "成功获取 871634.BJ 的数据\n", + "成功获取 871642.BJ 的数据\n", + "成功获取 871694.BJ 的数据\n", + "成功获取 871753.BJ 的数据\n", + "成功获取 871857.BJ 的数据\n", + "成功获取 871970.BJ 的数据\n", + "成功获取 871981.BJ 的数据\n", + "成功获取 872190.BJ 的数据\n", + "成功获取 872351.BJ 的数据\n", + "成功获取 872374.BJ 的数据\n", + "成功获取 872392.BJ 的数据\n", + "成功获取 872541.BJ 的数据\n", + "成功获取 872808.BJ 的数据\n", + "成功获取 872895.BJ 的数据\n", + "成功获取 872925.BJ 的数据\n", + "成功获取 872931.BJ 的数据\n", + "成功获取 872953.BJ 的数据\n", + "成功获取 873001.BJ 的数据\n", + "成功获取 873122.BJ 的数据\n", + "成功获取 873132.BJ 的数据\n", + "成功获取 873152.BJ 的数据\n", + "成功获取 873167.BJ 的数据\n", + "成功获取 873169.BJ 的数据\n", + "成功获取 873223.BJ 的数据\n", + "成功获取 873305.BJ 的数据\n", + "成功获取 873339.BJ 的数据\n", + "成功获取 873527.BJ 的数据\n", + "成功获取 873570.BJ 的数据\n", + "成功获取 873576.BJ 的数据\n", + "成功获取 873593.BJ 的数据\n", + "成功获取 873665.BJ 的数据\n", + "成功获取 873679.BJ 的数据\n", + "成功获取 873690.BJ 的数据\n", + "成功获取 873693.BJ 的数据\n", + "成功获取 873703.BJ 的数据\n", + "成功获取 873706.BJ 的数据\n", + "成功获取 873726.BJ 的数据\n", + "成功获取 873806.BJ 的数据\n", + "成功获取 873833.BJ 的数据\n", + "成功获取 920002.BJ 的数据\n", + "成功获取 920008.BJ 的数据\n", + "成功获取 920016.BJ 的数据\n", + "成功获取 920019.BJ 的数据\n", + "成功获取 920060.BJ 的数据\n", + "成功获取 920066.BJ 的数据\n", + "成功获取 920082.BJ 的数据\n", + "成功获取 920088.BJ 的数据\n", + "成功获取 920098.BJ 的数据\n", + "成功获取 920099.BJ 的数据\n", + "成功获取 920106.BJ 的数据\n", + "成功获取 920108.BJ 的数据\n", + "成功获取 920111.BJ 的数据\n", + "成功获取 920116.BJ 的数据\n", + "成功获取 920118.BJ 的数据\n", + "成功获取 920128.BJ 的数据\n", + "成功获取 689009.SH 的数据\n", + "成功获取 000003.SZ 的数据\n", + "成功获取 000005.SZ 的数据\n", + "成功获取 000013.SZ 的数据\n", + "成功获取 000015.SZ 的数据\n", + "已调用300次API,等待 2.74 秒以满足速率限制...\n", + "成功获取 000018.SZ 的数据\n", + "成功获取 000023.SZ 的数据\n", + "成功获取 000024.SZ 的数据\n", + "成功获取 000033.SZ 的数据\n", + "成功获取 000038.SZ 的数据\n", + "成功获取 000046.SZ 的数据\n", + "成功获取 000047.SZ 的数据\n", + "成功获取 000150.SZ 的数据\n", + "成功获取 000405.SZ 的数据\n", + "成功获取 000406.SZ 的数据\n", + "成功获取 000412.SZ 的数据\n", + "成功获取 000413.SZ 的数据\n", + "成功获取 000416.SZ 的数据\n", + "成功获取 000418.SZ 的数据\n", + "成功获取 000502.SZ 的数据\n", + "成功获取 000508.SZ 的数据\n", + "成功获取 000511.SZ 的数据\n", + "成功获取 000515.SZ 的数据\n", + "成功获取 000522.SZ 的数据\n", + "成功获取 000527.SZ 的数据\n", + "成功获取 000535.SZ 的数据\n", + "成功获取 000540.SZ 的数据\n", + "成功获取 000542.SZ 的数据\n", + "成功获取 000549.SZ 的数据\n", + "成功获取 000556.SZ 的数据\n", + "成功获取 000562.SZ 的数据\n", + "成功获取 000569.SZ 的数据\n", + "成功获取 000578.SZ 的数据\n", + "成功获取 000583.SZ 的数据\n", + "成功获取 000585.SZ 的数据\n", + "成功获取 000587.SZ 的数据\n", + "成功获取 000588.SZ 的数据\n", + "成功获取 000594.SZ 的数据\n", + "成功获取 000602.SZ 的数据\n", + "成功获取 000606.SZ 的数据\n", + "成功获取 000611.SZ 的数据\n", + "成功获取 000613.SZ 的数据\n", + "成功获取 000616.SZ 的数据\n", + "成功获取 000618.SZ 的数据\n", + "成功获取 000621.SZ 的数据\n", + "成功获取 000653.SZ 的数据\n", + "成功获取 000658.SZ 的数据\n", + "成功获取 000660.SZ 的数据\n", + "成功获取 000662.SZ 的数据\n", + "成功获取 000666.SZ 的数据\n", + "成功获取 000667.SZ 的数据\n", + "成功获取 000671.SZ 的数据\n", + "成功获取 000673.SZ 的数据\n", + "成功获取 000675.SZ 的数据\n", + "成功获取 000687.SZ 的数据\n", + "成功获取 000689.SZ 的数据\n", + "成功获取 000693.SZ 的数据\n", + "成功获取 000699.SZ 的数据\n", + "成功获取 000730.SZ 的数据\n", + "成功获取 000732.SZ 的数据\n", + "成功获取 000748.SZ 的数据\n", + "成功获取 000760.SZ 的数据\n", + "成功获取 000763.SZ 的数据\n", + "成功获取 000765.SZ 的数据\n", + "成功获取 000769.SZ 的数据\n", + "成功获取 000780.SZ 的数据\n", + "成功获取 000787.SZ 的数据\n", + "成功获取 000805.SZ 的数据\n", + "成功获取 000806.SZ 的数据\n", + "成功获取 000817.SZ 的数据\n", + "成功获取 000827.SZ 的数据\n", + "成功获取 000832.SZ 的数据\n", + "成功获取 000835.SZ 的数据\n", + "成功获取 000836.SZ 的数据\n", + "成功获取 000861.SZ 的数据\n", + "成功获取 000866.SZ 的数据\n", + "成功获取 000916.SZ 的数据\n", + "成功获取 000918.SZ 的数据\n", + "成功获取 000939.SZ 的数据\n", + "成功获取 000956.SZ 的数据\n", + "成功获取 000961.SZ 的数据\n", + "成功获取 000971.SZ 的数据\n", + "成功获取 000976.SZ 的数据\n", + "成功获取 000979.SZ 的数据\n", + "成功获取 000982.SZ 的数据\n", + "成功获取 000996.SZ 的数据\n", + "成功获取 002002.SZ 的数据\n", + "成功获取 002013.SZ 的数据\n", + "成功获取 002018.SZ 的数据\n", + "成功获取 002070.SZ 的数据\n", + "成功获取 002071.SZ 的数据\n", + "成功获取 002087.SZ 的数据\n", + "成功获取 002089.SZ 的数据\n", + "成功获取 002113.SZ 的数据\n", + "成功获取 002118.SZ 的数据\n", + "成功获取 002143.SZ 的数据\n", + "成功获取 002147.SZ 的数据\n", + "成功获取 002220.SZ 的数据\n", + "成功获取 002260.SZ 的数据\n", + "成功获取 002280.SZ 的数据\n", + "成功获取 002288.SZ 的数据\n", + "成功获取 002308.SZ 的数据\n", + "成功获取 002325.SZ 的数据\n", + "成功获取 002341.SZ 的数据\n", + "成功获取 002359.SZ 的数据\n", + "成功获取 002411.SZ 的数据\n", + "成功获取 002417.SZ 的数据\n", + "成功获取 002433.SZ 的数据\n", + "成功获取 002435.SZ 的数据\n", + "成功获取 002447.SZ 的数据\n", + "成功获取 002450.SZ 的数据\n", + "成功获取 002464.SZ 的数据\n", + "成功获取 002473.SZ 的数据\n", + "成功获取 002477.SZ 的数据\n", + "成功获取 002499.SZ 的数据\n", + "成功获取 002502.SZ 的数据\n", + "成功获取 002503.SZ 的数据\n", + "成功获取 002504.SZ 的数据\n", + "成功获取 002505.SZ 的数据\n", + "成功获取 002509.SZ 的数据\n", + "成功获取 002604.SZ 的数据\n", + "成功获取 002610.SZ 的数据\n", + "成功获取 002618.SZ 的数据\n", + "成功获取 002619.SZ 的数据\n", + "成功获取 002621.SZ 的数据\n", + "成功获取 002665.SZ 的数据\n", + "成功获取 002680.SZ 的数据\n", + "成功获取 002684.SZ 的数据\n", + "成功获取 002699.SZ 的数据\n", + "成功获取 002711.SZ 的数据\n", + "成功获取 002740.SZ 的数据\n", + "成功获取 002751.SZ 的数据\n", + "成功获取 002770.SZ 的数据\n", + "成功获取 002776.SZ 的数据\n", + "成功获取 002781.SZ 的数据\n", + "成功获取 300023.SZ 的数据\n", + "成功获取 300028.SZ 的数据\n", + "成功获取 300038.SZ 的数据\n", + "成功获取 300064.SZ 的数据\n", + "成功获取 300089.SZ 的数据\n", + "成功获取 300090.SZ 的数据\n", + "成功获取 300104.SZ 的数据\n", + "成功获取 300116.SZ 的数据\n", + "成功获取 300156.SZ 的数据\n", + "成功获取 300178.SZ 的数据\n", + "成功获取 300186.SZ 的数据\n", + "成功获取 300202.SZ 的数据\n", + "成功获取 300216.SZ 的数据\n", + "成功获取 300262.SZ 的数据\n", + "成功获取 300273.SZ 的数据\n", + "成功获取 300282.SZ 的数据\n", + "成功获取 300297.SZ 的数据\n", + "成功获取 300309.SZ 的数据\n", + "成功获取 300312.SZ 的数据\n", + "成功获取 300325.SZ 的数据\n", + "成功获取 300330.SZ 的数据\n", + "成功获取 300336.SZ 的数据\n", + "成功获取 300356.SZ 的数据\n", + "成功获取 300362.SZ 的数据\n", + "成功获取 300367.SZ 的数据\n", + "成功获取 300372.SZ 的数据\n", + "成功获取 300392.SZ 的数据\n", + "成功获取 300431.SZ 的数据\n", + "成功获取 300495.SZ 的数据\n", + "成功获取 300526.SZ 的数据\n", + "成功获取 300742.SZ 的数据\n", + "成功获取 300799.SZ 的数据\n", + "成功获取 600001.SH 的数据\n", + "成功获取 600002.SH 的数据\n", + "成功获取 600003.SH 的数据\n", + "成功获取 600005.SH 的数据\n", + "成功获取 600065.SH 的数据\n", + "成功获取 600068.SH 的数据\n", + "成功获取 600069.SH 的数据\n", + "成功获取 600074.SH 的数据\n", + "成功获取 600077.SH 的数据\n", + "成功获取 600086.SH 的数据\n", + "成功获取 600087.SH 的数据\n", + "成功获取 600090.SH 的数据\n", + "成功获取 600091.SH 的数据\n", + "成功获取 600092.SH 的数据\n", + "成功获取 600093.SH 的数据\n", + "成功获取 600102.SH 的数据\n", + "成功获取 600112.SH 的数据\n", + "成功获取 600122.SH 的数据\n", + "成功获取 600139.SH 的数据\n", + "成功获取 600145.SH 的数据\n", + "成功获取 600146.SH 的数据\n", + "成功获取 600175.SH 的数据\n", + "成功获取 600181.SH 的数据\n", + "成功获取 600205.SH 的数据\n", + "成功获取 600209.SH 的数据\n", + "成功获取 600213.SH 的数据\n", + "成功获取 600220.SH 的数据\n", + "成功获取 600240.SH 的数据\n", + "成功获取 600242.SH 的数据\n", + "成功获取 600247.SH 的数据\n", + "成功获取 600253.SH 的数据\n", + "成功获取 600260.SH 的数据\n", + "成功获取 600263.SH 的数据\n", + "成功获取 600270.SH 的数据\n", + "成功获取 600275.SH 的数据\n", + "成功获取 600277.SH 的数据\n", + "成功获取 600286.SH 的数据\n", + "成功获取 600290.SH 的数据\n", + "成功获取 600291.SH 的数据\n", + "成功获取 600296.SH 的数据\n", + "成功获取 600297.SH 的数据\n", + "成功获取 600306.SH 的数据\n", + "成功获取 600311.SH 的数据\n", + "成功获取 600317.SH 的数据\n", + "成功获取 600321.SH 的数据\n", + "成功获取 600357.SH 的数据\n", + "成功获取 600385.SH 的数据\n", + "成功获取 600393.SH 的数据\n", + "成功获取 600401.SH 的数据\n", + "成功获取 600432.SH 的数据\n", + "成功获取 600466.SH 的数据\n", + "成功获取 600472.SH 的数据\n", + "成功获取 600485.SH 的数据\n", + "成功获取 600532.SH 的数据\n", + "成功获取 600553.SH 的数据\n", + "成功获取 600555.SH 的数据\n", + "成功获取 600565.SH 的数据\n", + "成功获取 600591.SH 的数据\n", + "成功获取 600607.SH 的数据\n", + "成功获取 600614.SH 的数据\n", + "成功获取 600625.SH 的数据\n", + "成功获取 600627.SH 的数据\n", + "成功获取 600631.SH 的数据\n", + "成功获取 600632.SH 的数据\n", + "成功获取 600634.SH 的数据\n", + "成功获取 600646.SH 的数据\n", + "成功获取 600647.SH 的数据\n", + "成功获取 600652.SH 的数据\n", + "成功获取 600656.SH 的数据\n", + "成功获取 600659.SH 的数据\n", + "成功获取 600669.SH 的数据\n", + "成功获取 600670.SH 的数据\n", + "成功获取 600672.SH 的数据\n", + "成功获取 600677.SH 的数据\n", + "成功获取 600680.SH 的数据\n", + "成功获取 600687.SH 的数据\n", + "成功获取 600695.SH 的数据\n", + "成功获取 600700.SH 的数据\n", + "成功获取 600701.SH 的数据\n", + "成功获取 600709.SH 的数据\n", + "成功获取 600723.SH 的数据\n", + "成功获取 600747.SH 的数据\n", + "成功获取 600752.SH 的数据\n", + "成功获取 600762.SH 的数据\n", + "成功获取 600766.SH 的数据\n", + "成功获取 600767.SH 的数据\n", + "成功获取 600772.SH 的数据\n", + "成功获取 600781.SH 的数据\n", + "成功获取 600786.SH 的数据\n", + "成功获取 600788.SH 的数据\n", + "成功获取 600799.SH 的数据\n", + "成功获取 600806.SH 的数据\n", + "成功获取 600813.SH 的数据\n", + "成功获取 600823.SH 的数据\n", + "成功获取 600832.SH 的数据\n", + "成功获取 600836.SH 的数据\n", + "成功获取 600840.SH 的数据\n", + "成功获取 600842.SH 的数据\n", + "成功获取 600852.SH 的数据\n", + "成功获取 600856.SH 的数据\n", + "成功获取 600870.SH 的数据\n", + "成功获取 600878.SH 的数据\n", + "成功获取 600890.SH 的数据\n", + "成功获取 600891.SH 的数据\n", + "成功获取 600896.SH 的数据\n", + "成功获取 600899.SH 的数据\n", + "成功获取 600978.SH 的数据\n", + "成功获取 600991.SH 的数据\n", + "成功获取 601258.SH 的数据\n", + "成功获取 601268.SH 的数据\n", + "成功获取 601299.SH 的数据\n", + "成功获取 601558.SH 的数据\n", + "成功获取 603133.SH 的数据\n", + "成功获取 603157.SH 的数据\n", + "成功获取 603555.SH 的数据\n", + "成功获取 603603.SH 的数据\n", + "成功获取 603996.SH 的数据\n", + "成功获取 688086.SH 的数据\n", + "成功获取 688555.SH 的数据\n", + "成功获取 832317.BJ 的数据\n", + "成功获取 833874.BJ 的数据\n", + "成功获取 833994.BJ 的数据\n", + "成功获取 T00018.SH 的数据\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\liaozhaorun\\AppData\\Local\\Temp\\ipykernel_16220\\3217625028.py:40: FutureWarning: The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.\n", + " all_balancesheet = pd.concat(balancesheet_list, ignore_index=True)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "所有日线数据已保存到 balancesheet.h5\n" + ] + } + ], + "source": [ + "\n", + "\n", + "# 读取本地保存的股票列表 CSV 文件(假设文件名为 stocks_data.csv)\n", + "stocks_df = pd.read_csv('../../stocks_list.csv', encoding='utf-8-sig')\n", + "\n", + "# 用于存放所有股票的日线数据(每次获取的 DataFrame)\n", + "balancesheet_list = []\n", + "\n", + "# API 调用计数和时间控制变量\n", + "api_call_count = 0\n", + "batch_start_time = time.time()\n", + "\n", + "# 循环遍历每个股票代码并获取数据\n", + "for idx, row in stocks_df.iterrows():\n", + " ts_code = row['ts_code'] # 假设股票代码列名为 ts_code\n", + " try:\n", + " # 调用 tushare 接口获取该股票自 2017 年以来的日线数据\n", + " balancesheet = pro.balancesheet(ts_code=ts_code)\n", + " # 如果返回数据不为空,则添加一列标识股票代码\n", + " if not balancesheet.empty:\n", + " balancesheet['ts_code'] = ts_code\n", + " balancesheet_list.append(balancesheet)\n", + " print(f\"成功获取 {ts_code} 的数据\")\n", + " except Exception as e:\n", + " print(f\"获取 {ts_code} 数据时出错: {e}\")\n", + "\n", + " # 计数一次 API 调用\n", + " api_call_count += 1\n", + "\n", + " # 每调用300次,检查时间是否少于1分钟,如果少于则等待剩余时间\n", + " if api_call_count % 300 == 0:\n", + " elapsed = time.time() - batch_start_time\n", + " if elapsed < 60:\n", + " sleep_time = 60 - elapsed\n", + " print(f\"已调用300次API,等待 {sleep_time:.2f} 秒以满足速率限制...\")\n", + " time.sleep(sleep_time)\n", + " # 重置批次起始时间\n", + " batch_start_time = time.time()\n", + "\n", + "# 合并所有获取到的日线数据\n", + "if balancesheet_list:\n", + " all_balancesheet = pd.concat(balancesheet_list, ignore_index=True)\n", + " all_balancesheet.to_hdf('../../data/balancesheet.h5', key='balancesheet', mode='w', format='table')\n", + " print(\"所有日线数据已保存到 balancesheet.h5\")\n", + "else:\n", + " print(\"未获取到任何日线数据。\")" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "b27bb37b", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0 5.271746e+12\n", + "1 5.274428e+12\n", + "2 5.255519e+12\n", + "3 5.272164e+12\n", + "4 5.243822e+12\n", + " ... \n", + "372441 1.150050e+09\n", + "372442 9.132874e+08\n", + "372443 4.395018e+08\n", + "372444 4.792661e+08\n", + "372445 3.738566e+08\n", + "Name: total_liab, Length: 372446, dtype: float64\n" + ] + } + ], + "source": [ + "print(all_balancesheet['total_liab'])" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "new_trader", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.11" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/main/factor/__pycache__/factor.cpython-311.pyc b/main/factor/__pycache__/factor.cpython-311.pyc index b4b8b8ffece8fa10c202030669031f73cb6b6913..7aa2d6c68549c387ca8dd26d9e3cff3244f8bd5d 100644 GIT binary patch literal 137608 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�vHAL&ZRGSp3Hk(CP!`zVIYM-AF^7m7n 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 delta 27635 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 cost_50pct 暗示高成本区有较多筹码(右偏) - df['chip_skewness'] = (df['weight_avg'] - df['cost_50pct']) / (df['cost_50pct'] + epsilon) + df["chip_skewness"] = (df["weight_avg"] - df["cost_50pct"]) / ( + df["cost_50pct"] + epsilon + ) # 8. 浮筹比例 (Floating Chips Proxy) # 衡量短期内(例如15%成本线以下)的筹码比例与总获利盘比例的关系 # winner_rate 高但 cost_15pct 接近当前价,可能意味着大部分获利盘成本不高,易浮动 # 这里简化为:获利盘比例 与 (当前价-15%成本价)/当前价 的乘积 - price_dist_cost15 = (df['close'] - df['cost_15pct']) / (df['close'] + epsilon) - df['floating_chip_proxy'] = df['winner_rate'] * np.maximum(0, price_dist_cost15) # 只考虑价格高于15%成本线的情况 + price_dist_cost15 = (df["close"] - df["cost_15pct"]) / (df["close"] + epsilon) + df["floating_chip_proxy"] = df["winner_rate"] * np.maximum( + 0, price_dist_cost15 + ) # 只考虑价格高于15%成本线的情况 # 9. 成本支撑强度变化 (Cost Support Strength Change) # 观察低位筹码成本(如 5% 或 15% 分位点)的变化率,看支撑位是上移还是下移 - df['cost_support_15pct_change'] = grouped['cost_15pct'].pct_change(1) * 100 # 百分比变化 + df["cost_support_15pct_change"] = ( + grouped["cost_15pct"].pct_change(1) * 100 + ) # 百分比变化 # 10. 获利盘压力/支撑区 (Categorical: Winner Rate Zone & Price Position) # 结合获利盘比例和当前价格相对于筹码成本的位置 # 例如: 价格在 85% 成本线之上 & 获利盘 > 0.8 -> 高位派发风险区? # 价格在 15% 成本线之下 & 获利盘 < 0.2 -> 低位吸筹潜力区? conditions_winner = [ - (df['close'] > df['cost_85pct']) & (df['winner_rate'] > 0.8), # 高位 & 高获利盘 - (df['close'] < df['cost_15pct']) & (df['winner_rate'] < 0.2), # 低位 & 低获利盘 - (df['close'] > df['cost_50pct']) & (df['winner_rate'] > 0.5), # 中高位 & 多数获利 - (df['close'] < df['cost_50pct']) & (df['winner_rate'] < 0.5), # 中低位 & 多数亏损 + (df["close"] > df["cost_85pct"]) & (df["winner_rate"] > 0.8), # 高位 & 高获利盘 + (df["close"] < df["cost_15pct"]) & (df["winner_rate"] < 0.2), # 低位 & 低获利盘 + (df["close"] > df["cost_50pct"]) + & (df["winner_rate"] > 0.5), # 中高位 & 多数获利 + (df["close"] < df["cost_50pct"]) + & (df["winner_rate"] < 0.5), # 中低位 & 多数亏损 ] choices_winner = [1, 2, 3, 4] # 1:高风险区, 2:低潜力区, 3:中上获利区, 4:中下亏损区 - df['cat_winner_price_zone'] = np.select(conditions_winner, choices_winner, default=0) # 0: 其他 + df["cat_winner_price_zone"] = np.select( + conditions_winner, choices_winner, default=0 + ) # 0: 其他 # --- 结合因子 --- # 11. 主力行为与筹码结构一致性 (Flow-Chip Consistency) # 例如:主力净买入发生在价格接近下方筹码密集区(如 cost_15pct 到 cost_50pct)时 - price_near_low_support = (df['close'] > df['cost_15pct']) & (df['close'] < df['cost_50pct']) - df['flow_chip_consistency'] = df['lg_elg_net_buy_vol'] * price_near_low_support.astype(int) + price_near_low_support = (df["close"] > df["cost_15pct"]) & ( + df["close"] < df["cost_50pct"] + ) + df["flow_chip_consistency"] = df[ + "lg_elg_net_buy_vol" + ] * price_near_low_support.astype(int) # 可以进一步标准化或做成 categorical # 12. 获利了结压力/承接盘强度 (Profit-Taking Pressure vs Absorption) # 在高获利盘(winner_rate > 0.7)的情况下,观察主力资金是净流出(了结)还是净流入(高位换手/承接) - high_winner_rate_flag = (df['winner_rate'] > 0.7).astype(int) - df['profit_taking_vs_absorb'] = df['lg_elg_net_buy_vol'] * high_winner_rate_flag + high_winner_rate_flag = (df["winner_rate"] > 0.7).astype(int) + df["profit_taking_vs_absorb"] = df["lg_elg_net_buy_vol"] * high_winner_rate_flag # 正值表示高获利盘下主力仍在买入(承接),负值表示主力在卖出(了结) # 清理临时列和可能产生的 NaN (可选,根据需要处理) - cols_to_drop = ['lg_elg_net_buy_vol', 'sm_net_buy_vol', 'total_buy_vol', 'lg_elg_buy_prop', - 'lg_elg_net_buy_vol_change', 'flow_lg_elg_intensity_rolling_high', - 'flow_lg_elg_intensity_rolling_low'] + cols_to_drop = [ + "lg_elg_net_buy_vol", + "sm_net_buy_vol", + "total_buy_vol", + "lg_elg_buy_prop", + "lg_elg_net_buy_vol_change", + "flow_lg_elg_intensity_rolling_high", + "flow_lg_elg_intensity_rolling_low", + ] # df = df.drop(columns=cols_to_drop) window = 20 - df['_is_positive'] = (df['pct_chg'] > 0).astype(int) - df['_is_negative'] = (df['pct_chg'] < 0).astype(int) - df['cat_is_positive'] = (df['pct_chg'] > 0).astype(int) + df["_is_positive"] = (df["pct_chg"] > 0).astype(int) + df["_is_negative"] = (df["pct_chg"] < 0).astype(int) + df["cat_is_positive"] = (df["pct_chg"] > 0).astype(int) # 分离正负收益率 (用于计算各自的均值和平方均值) # 注意:这里我们保留原始收益率用于计算,而不是 clip 到 0 - df['_pos_returns'] = df['pct_chg'].where(df['pct_chg'] > 0, 0) # 非正设为0,便于求和 - df['_neg_returns'] = df['pct_chg'].where(df['pct_chg'] < 0, 0) # 非负设为0,便于求和 + df["_pos_returns"] = df["pct_chg"].where( + df["pct_chg"] > 0, 0 + ) # 非正设为0,便于求和 + df["_neg_returns"] = df["pct_chg"].where( + df["pct_chg"] < 0, 0 + ) # 非负设为0,便于求和 # 计算收益率的平方 (用于计算 E[X^2]) - df['_pos_returns_sq'] = np.square(df['_pos_returns']) - df['_neg_returns_sq'] = np.square(df['_neg_returns']) # 平方后负数变正 + df["_pos_returns_sq"] = np.square(df["_pos_returns"]) + df["_neg_returns_sq"] = np.square(df["_neg_returns"]) # 平方后负数变正 # 4. 计算滚动统计量 (使用内置函数,速度较快) # 计算正收益日的统计量 - rolling_pos_count = grouped['_is_positive'].rolling(window, min_periods=max(1, window // 2)).sum() - rolling_pos_sum = grouped['_pos_returns'].rolling(window, min_periods=max(1, window // 2)).sum() - rolling_pos_sum_sq = grouped['_pos_returns_sq'].rolling(window, min_periods=max(1, window // 2)).sum() + rolling_pos_count = ( + grouped["_is_positive"].rolling(window, min_periods=max(1, window // 2)).sum() + ) + rolling_pos_sum = ( + grouped["_pos_returns"].rolling(window, min_periods=max(1, window // 2)).sum() + ) + rolling_pos_sum_sq = ( + grouped["_pos_returns_sq"] + .rolling(window, min_periods=max(1, window // 2)) + .sum() + ) # 计算负收益日的统计量 - rolling_neg_count = grouped['_is_negative'].rolling(window, min_periods=max(1, window // 2)).sum() - rolling_neg_sum = grouped['_neg_returns'].rolling(window, min_periods=max(1, window // 2)).sum() - rolling_neg_sum_sq = grouped['_neg_returns_sq'].rolling(window, min_periods=max(1, window // 2)).sum() + rolling_neg_count = ( + grouped["_is_negative"].rolling(window, min_periods=max(1, window // 2)).sum() + ) + rolling_neg_sum = ( + grouped["_neg_returns"].rolling(window, min_periods=max(1, window // 2)).sum() + ) + rolling_neg_sum_sq = ( + grouped["_neg_returns_sq"] + .rolling(window, min_periods=max(1, window // 2)) + .sum() + ) # 5. 计算方差和标准差 pos_mean_sq = rolling_pos_sum_sq / rolling_pos_count @@ -152,66 +199,98 @@ def get_rolling_factor(df): downside_vol = np.sqrt(neg_var) # rolling 操作后结果带有 MultiIndex,需要去除股票代码层级以便合并 - df['upside_vol'] = upside_vol.reset_index(level=0, drop=True) - df['downside_vol'] = downside_vol.reset_index(level=0, drop=True) + df["upside_vol"] = upside_vol.reset_index(level=0, drop=True) + df["downside_vol"] = downside_vol.reset_index(level=0, drop=True) - df['vol_ratio'] = df['upside_vol'] / df['downside_vol'] - df['vol_ratio'] = df['vol_ratio'].replace([np.inf, -np.inf], np.nan).fillna(0) # 或 fillna(np.nan) + df["vol_ratio"] = df["upside_vol"] / df["downside_vol"] + df["vol_ratio"] = ( + df["vol_ratio"].replace([np.inf, -np.inf], np.nan).fillna(0) + ) # 或 fillna(np.nan) - df['return_skew'] = grouped['pct_chg'].rolling(window=5).skew().reset_index(0, drop=True) - df['return_kurtosis'] = grouped['pct_chg'].rolling(window=5).kurt().reset_index(0, drop=True) + df["return_skew"] = ( + grouped["pct_chg"].rolling(window=5).skew().reset_index(0, drop=True) + ) + df["return_kurtosis"] = ( + grouped["pct_chg"].rolling(window=5).kurt().reset_index(0, drop=True) + ) # 因子 1:短期成交量变化率 - df['volume_change_rate'] = ( - grouped['vol'].rolling(window=2).mean() / - grouped['vol'].rolling(window=10).mean() - 1 - ).reset_index(level=0, drop=True) # 确保索引对齐 + df["volume_change_rate"] = ( + grouped["vol"].rolling(window=2).mean() + / grouped["vol"].rolling(window=10).mean() + - 1 + ).reset_index( + level=0, drop=True + ) # 确保索引对齐 # 因子 2:成交量突破信号 - max_volume = grouped['vol'].rolling(window=5).max().reset_index(level=0, drop=True) # 确保索引对齐 - df['cat_volume_breakout'] = (df['vol'] > max_volume) + max_volume = ( + grouped["vol"].rolling(window=5).max().reset_index(level=0, drop=True) + ) # 确保索引对齐 + df["cat_volume_breakout"] = df["vol"] > max_volume # 因子 3:换手率均线偏离度 - mean_turnover = grouped['turnover_rate'].rolling(window=3).mean().reset_index(level=0, drop=True) - std_turnover = grouped['turnover_rate'].rolling(window=3).std().reset_index(level=0, drop=True) - df['turnover_deviation'] = (df['turnover_rate'] - mean_turnover) / std_turnover + mean_turnover = ( + grouped["turnover_rate"] + .rolling(window=3) + .mean() + .reset_index(level=0, drop=True) + ) + std_turnover = ( + grouped["turnover_rate"].rolling(window=3).std().reset_index(level=0, drop=True) + ) + df["turnover_deviation"] = (df["turnover_rate"] - mean_turnover) / std_turnover # 因子 4:换手率激增信号 - df['cat_turnover_spike'] = (df['turnover_rate'] > mean_turnover + 2 * std_turnover) + df["cat_turnover_spike"] = df["turnover_rate"] > mean_turnover + 2 * std_turnover # 因子 5:量比均值 - df['avg_volume_ratio'] = grouped['volume_ratio'].rolling(window=3).mean().reset_index(level=0, drop=True) + df["avg_volume_ratio"] = ( + grouped["volume_ratio"].rolling(window=3).mean().reset_index(level=0, drop=True) + ) # 因子 6:量比突破信号 - max_volume_ratio = grouped['volume_ratio'].rolling(window=5).max().reset_index(level=0, drop=True) - df['cat_volume_ratio_breakout'] = (df['volume_ratio'] > max_volume_ratio) - - df['vol_spike'] = grouped.apply( - lambda x: pd.Series(x['vol'].rolling(20).mean(), index=x.index) + max_volume_ratio = ( + grouped["volume_ratio"].rolling(window=5).max().reset_index(level=0, drop=True) ) - df['vol_std_5'] = grouped['vol'].pct_change().rolling(window=5).std() + df["cat_volume_ratio_breakout"] = df["volume_ratio"] > max_volume_ratio + + df["vol_spike"] = grouped.apply( + lambda x: pd.Series(x["vol"].rolling(20).mean(), index=x.index) + ) + df["vol_std_5"] = grouped["vol"].pct_change().rolling(window=5).std() # 计算 ATR - df['atr_14'] = grouped.apply( - lambda x: pd.Series(talib.ATR(x['high'].values, x['low'].values, x['close'].values, timeperiod=14), - index=x.index) + df["atr_14"] = grouped.apply( + lambda x: pd.Series( + talib.ATR( + x["high"].values, x["low"].values, x["close"].values, timeperiod=14 + ), + index=x.index, + ) ) - df['atr_6'] = grouped.apply( - lambda x: pd.Series(talib.ATR(x['high'].values, x['low'].values, x['close'].values, timeperiod=6), - index=x.index) + df["atr_6"] = grouped.apply( + lambda x: pd.Series( + talib.ATR( + x["high"].values, x["low"].values, x["close"].values, timeperiod=6 + ), + index=x.index, + ) ) # 计算 OBV 及其均线 - df['obv'] = grouped.apply( - lambda x: pd.Series(talib.OBV(x['close'].values, x['vol'].values), index=x.index) + df["obv"] = grouped.apply( + lambda x: pd.Series( + talib.OBV(x["close"].values, x["vol"].values), index=x.index + ) ) print(df.columns) - df['maobv_6'] = grouped.apply( - lambda x: pd.Series(talib.SMA(x['obv'].values, timeperiod=6), index=x.index) + df["maobv_6"] = grouped.apply( + lambda x: pd.Series(talib.SMA(x["obv"].values, timeperiod=6), index=x.index) ) - df['rsi_3'] = grouped.apply( - lambda x: pd.Series(talib.RSI(x['close'].values, timeperiod=3), index=x.index) + df["rsi_3"] = grouped.apply( + lambda x: pd.Series(talib.RSI(x["close"].values, timeperiod=3), index=x.index) ) # df['rsi_6'] = grouped.apply( # lambda x: pd.Series(talib.RSI(x['close'].values, timeperiod=6), index=x.index) @@ -221,53 +300,65 @@ def get_rolling_factor(df): # ) # 计算 return_10 和 return_20 - df['return_5'] = grouped['close'].apply(lambda x: x / x.shift(5) - 1) + df["return_5"] = grouped["close"].apply(lambda x: x / x.shift(5) - 1) # df['return_10'] = grouped['close'].apply(lambda x: x / x.shift(10) - 1) - df['return_20'] = grouped['close'].apply(lambda x: x / x.shift(20) - 1) + df["return_20"] = grouped["close"].apply(lambda x: x / x.shift(20) - 1) # df['avg_close_5'] = grouped['close'].apply(lambda x: x.rolling(window=5).mean() / x) # 计算标准差指标 - df['std_return_5'] = grouped['close'].apply(lambda x: x.pct_change().rolling(window=5).std()) + df["std_return_5"] = grouped["close"].apply( + lambda x: x.pct_change().rolling(window=5).std() + ) # df['std_return_15'] = grouped['close'].apply(lambda x: x.pct_change().rolling(window=15).std()) # df['std_return_25'] = grouped['close'].apply(lambda x: x.pct_change().rolling(window=25).std()) - df['std_return_90'] = grouped['close'].apply(lambda x: x.pct_change().rolling(window=90).std()) - df['std_return_90_2'] = grouped['close'].apply(lambda x: x.shift(10).pct_change().rolling(window=90).std()) + df["std_return_90"] = grouped["close"].apply( + lambda x: x.pct_change().rolling(window=90).std() + ) + df["std_return_90_2"] = grouped["close"].apply( + lambda x: x.shift(10).pct_change().rolling(window=90).std() + ) # 计算 EMA 指标 - df['_ema_5'] = grouped['close'].apply( + df["_ema_5"] = grouped["close"].apply( lambda x: pd.Series(talib.EMA(x.values, timeperiod=5), index=x.index) ) - df['_ema_13'] = grouped['close'].apply( + df["_ema_13"] = grouped["close"].apply( lambda x: pd.Series(talib.EMA(x.values, timeperiod=13), index=x.index) ) - df['_ema_20'] = grouped['close'].apply( + df["_ema_20"] = grouped["close"].apply( lambda x: pd.Series(talib.EMA(x.values, timeperiod=20), index=x.index) ) - df['_ema_60'] = grouped['close'].apply( + df["_ema_60"] = grouped["close"].apply( lambda x: pd.Series(talib.EMA(x.values, timeperiod=60), index=x.index) ) # 计算 act_factor1, act_factor2, act_factor3, act_factor4 - df['act_factor1'] = grouped['_ema_5'].apply( + df["act_factor1"] = grouped["_ema_5"].apply( lambda x: np.arctan((x / x.shift(1) - 1) * 100) * 57.3 / 50 ) - df['act_factor2'] = grouped['_ema_13'].apply( + df["act_factor2"] = grouped["_ema_13"].apply( lambda x: np.arctan((x / x.shift(1) - 1) * 100) * 57.3 / 40 ) - df['act_factor3'] = grouped['_ema_20'].apply( + df["act_factor3"] = grouped["_ema_20"].apply( lambda x: np.arctan((x / x.shift(1) - 1) * 100) * 57.3 / 21 ) - df['act_factor4'] = grouped['_ema_60'].apply( + df["act_factor4"] = grouped["_ema_60"].apply( lambda x: np.arctan((x / x.shift(1) - 1) * 100) * 57.3 / 10 ) # 根据 trade_date 截面计算排名 - df['rank_act_factor1'] = df.groupby('trade_date', group_keys=False)['act_factor1'].rank(ascending=False, pct=True) - df['rank_act_factor2'] = df.groupby('trade_date', group_keys=False)['act_factor2'].rank(ascending=False, pct=True) - df['rank_act_factor3'] = df.groupby('trade_date', group_keys=False)['act_factor3'].rank(ascending=False, pct=True) + df["rank_act_factor1"] = df.groupby("trade_date", group_keys=False)[ + "act_factor1" + ].rank(ascending=False, pct=True) + df["rank_act_factor2"] = df.groupby("trade_date", group_keys=False)[ + "act_factor2" + ].rank(ascending=False, pct=True) + df["rank_act_factor3"] = df.groupby("trade_date", group_keys=False)[ + "act_factor3" + ].rank(ascending=False, pct=True) - df['log_circ_mv'] = np.log(df['circ_mv']) + df["log_circ_mv"] = np.log(df["circ_mv"]) window_high_volume = 5 window_close_stddev = 20 @@ -275,105 +366,99 @@ def get_rolling_factor(df): # 计算每只股票的滚动协方差 def calculate_rolling_cov(group): - return group['high'].rolling(window_high_volume).cov(group['vol']) + return group["high"].rolling(window_high_volume).cov(group["vol"]) - df['cov'] = grouped.apply(calculate_rolling_cov) + df["cov"] = grouped.apply(calculate_rolling_cov) # 计算每只股票的协方差差分 def calculate_delta_cov(group): - return group['cov'].diff(period_delta) + return group["cov"].diff(period_delta) - df['delta_cov'] = grouped.apply(calculate_delta_cov) + df["delta_cov"] = grouped.apply(calculate_delta_cov) # 计算每只股票的滚动标准差 def calculate_stddev_close(group): - return group['close'].rolling(window_close_stddev).std() + return group["close"].rolling(window_close_stddev).std() - df['_stddev_close'] = grouped.apply(calculate_stddev_close) - df['_rank_stddev'] = df.groupby('trade_date')['_stddev_close'].rank(pct=True) - df['alpha_22_improved'] = -1 * df['delta_cov'] * df['_rank_stddev'] + df["_stddev_close"] = grouped.apply(calculate_stddev_close) + df["_rank_stddev"] = df.groupby("trade_date")["_stddev_close"].rank(pct=True) + df["alpha_22_improved"] = -1 * df["delta_cov"] * df["_rank_stddev"] - df['alpha_003'] = np.where(df['high'] != df['low'], - (df['close'] - df['open']) / (df['high'] - df['low']), - 0) - - df['alpha_007'] = grouped.apply(lambda x: x['close'].rolling(5).corr(x['vol'])) - df['alpha_007'] = df.groupby('trade_date', group_keys=False)['alpha_007'].rank(ascending=True, pct=True) - - df['alpha_013'] = grouped['close'].transform(lambda x: x.rolling(5).sum() - x.rolling(20).sum()) - df['alpha_013'] = df.groupby('trade_date', group_keys=False)['alpha_013'].rank(ascending=True, pct=True) - - df['cat_up_limit'] = (df['close'] == df['up_limit']) # 是否涨停(1表示涨停,0表示未涨停) - df['cat_down_limit'] = (df['close'] == df['down_limit']) # 是否跌停(1表示跌停,0表示未跌停) - df['up_limit_count_10d'] = grouped['cat_up_limit'].rolling(window=10, min_periods=1).sum().reset_index(level=0, - drop=True) - df['down_limit_count_10d'] = grouped['cat_down_limit'].rolling(window=10, min_periods=1).sum().reset_index(level=0, - drop=True) - - # 3. 最近连续涨跌停天数 - def calculate_consecutive_limits(series): - """ - 计算连续涨停/跌停天数。 - """ - consecutive_up = series * (series.groupby((series != series.shift()).cumsum()).cumcount() + 1) - consecutive_down = series * (series.groupby((series != series.shift()).cumsum()).cumcount() + 1) - return consecutive_up, consecutive_down - - # 连续涨停天数 - df['consecutive_up_limit'] = grouped['cat_up_limit'].apply( - lambda x: calculate_consecutive_limits(x)[0] + df["alpha_003"] = np.where( + df["high"] != df["low"], + (df["close"] - df["open"]) / (df["high"] - df["low"]), + 0, ) - df['vol_break'] = np.where((df['close'] > df['cost_85pct']) & (df['volume_ratio'] > 2), 1, 0) + df["alpha_007"] = grouped.apply(lambda x: x["close"].rolling(5).corr(x["vol"])) + df["alpha_007"] = df.groupby("trade_date", group_keys=False)["alpha_007"].rank( + ascending=True, pct=True + ) - df['weight_roc5'] = grouped['weight_avg'].apply(lambda x: x.pct_change(5)) + df["alpha_013"] = grouped["close"].transform( + lambda x: x.rolling(5).sum() - x.rolling(20).sum() + ) + df["alpha_013"] = df.groupby("trade_date", group_keys=False)["alpha_013"].rank( + ascending=True, pct=True + ) + + + df["vol_break"] = np.where( + (df["close"] > df["cost_85pct"]) & (df["volume_ratio"] > 2), 1, 0 + ) + + df["weight_roc5"] = grouped["weight_avg"].apply(lambda x: x.pct_change(5)) def rolling_corr(group): - roc_close = group['close'].pct_change() - roc_weight = group['weight_avg'].pct_change() + roc_close = group["close"].pct_change() + roc_weight = group["weight_avg"].pct_change() return roc_close.rolling(10).corr(roc_weight) - df['price_cost_divergence'] = grouped.apply(rolling_corr) + df["price_cost_divergence"] = grouped.apply(rolling_corr) - df['smallcap_concentration'] = (1 / df['log_circ_mv']) * (df['cost_85pct'] - df['cost_15pct']) + df["smallcap_concentration"] = (1 / df["log_circ_mv"]) * ( + df["cost_85pct"] - df["cost_15pct"] + ) # 16. 筹码稳定性指数 (20日波动率) - df['weight_std20'] = grouped['weight_avg'].apply(lambda x: x.rolling(20).std()) - df['cost_stability'] = df['weight_std20'] / grouped['weight_avg'].transform(lambda x: x.rolling(20).mean()) + df["weight_std20"] = grouped["weight_avg"].apply(lambda x: x.rolling(20).std()) + df["cost_stability"] = df["weight_std20"] / grouped["weight_avg"].transform( + lambda x: x.rolling(20).mean() + ) # 17. 成本区间突破标记 - df['high_cost_break_days'] = grouped.apply(lambda g: g['close'].gt(g['cost_95pct']).rolling(5).sum()) + df["high_cost_break_days"] = grouped.apply( + lambda g: g["close"].gt(g["cost_95pct"]).rolling(5).sum() + ) # 20. 筹码-流动性风险 - df['liquidity_risk'] = (df['cost_95pct'] - df['cost_5pct']) * ( - 1 / grouped['vol'].transform(lambda x: x.rolling(10).mean())) + df["liquidity_risk"] = (df["cost_95pct"] - df["cost_5pct"]) * ( + 1 / grouped["vol"].transform(lambda x: x.rolling(10).mean()) + ) # 7. 市值波动率因子 (使用 grouped) - df['turnover_std'] = grouped['turnover_rate'].transform(lambda x: x.rolling(window=20).std()) - df['mv_volatility'] = grouped.apply(lambda x: x['turnover_std'] / x['log_circ_mv']) + df["turnover_std"] = grouped["turnover_rate"].transform( + lambda x: x.rolling(window=20).std() + ) + df["mv_volatility"] = grouped.apply(lambda x: x["turnover_std"] / x["log_circ_mv"]) # 8. 市值成长性因子 - df['volume_growth'] = grouped['vol'].pct_change(periods=20) - df['mv_growth'] = df['volume_growth'] / df['log_circ_mv'] + df["volume_growth"] = grouped["vol"].pct_change(periods=20) + df["mv_growth"] = df["volume_growth"] / df["log_circ_mv"] - # AR 指标 - df["ar"] = grouped.apply( - lambda x: (x["high"].div(x["open"]).rolling(3).sum()) / (x["open"].div(x["low"]).rolling(3).sum()) * 100) - - # BR 指标 - df["pre_close"] = grouped["close"].shift(1) - df["br_up"] = (df["high"] - df["pre_close"]).clip(lower=0) - df["br_down"] = (df["pre_close"] - df["low"]).clip(lower=0) - df["br"] = grouped.apply(lambda x: (x["br_up"].rolling(3).sum()) / (x["br_down"].rolling(3).sum()) * 100) - - # ARBR - df['arbr'] = df['ar'] - df['br'] - df.drop(columns=["pre_close", "br_up", "br_down", 'ar', 'br'], inplace=True) - - df.drop(columns=['weight_std20'], inplace=True, errors='ignore') + df.drop(columns=["weight_std20"], inplace=True, errors="ignore") df.drop( - columns=['_is_positive', '_is_negative', '_pos_returns', '_neg_returns', '_pos_returns_sq', '_neg_returns_sq'], - inplace=True, errors='ignore') + columns=[ + "_is_positive", + "_is_negative", + "_pos_returns", + "_neg_returns", + "_pos_returns_sq", + "_neg_returns_sq", + ], + inplace=True, + errors="ignore", + ) new_columns = [col for col in df.columns.tolist()[:] if col not in old_columns] return df, new_columns @@ -381,80 +466,100 @@ def get_rolling_factor(df): def get_simple_factor(df): old_columns = df.columns.tolist()[:] - df = df.sort_values(by=['ts_code', 'trade_date']) + df = df.sort_values(by=["ts_code", "trade_date"]) alpha = 0.5 - df['momentum_factor'] = df['volume_change_rate'] + alpha * df['turnover_deviation'] - df['resonance_factor'] = df['volume_ratio'] * df['pct_chg'] - df['log_close'] = np.log(df['close']) + df["momentum_factor"] = df["volume_change_rate"] + alpha * df["turnover_deviation"] + df["resonance_factor"] = df["volume_ratio"] * df["pct_chg"] + df["log_close"] = np.log(df["close"]) - df['cat_vol_spike'] = df['vol'] > 2 * df['vol_spike'] + df["cat_vol_spike"] = df["vol"] > 2 * df["vol_spike"] - df['up'] = (df['high'] - df[['close', 'open']].max(axis=1)) / df['close'] - df['down'] = (df[['close', 'open']].min(axis=1) - df['low']) / df['close'] + df["up"] = (df["high"] - df[["close", "open"]].max(axis=1)) / df["close"] + df["down"] = (df[["close", "open"]].min(axis=1) - df["low"]) / df["close"] - df['obv_maobv_6'] = df['obv'] - df['maobv_6'] + df["obv_maobv_6"] = df["obv"] - df["maobv_6"] # 计算比值指标 - df['std_return_5_over_std_return_90'] = df['std_return_5'] / df['std_return_90'] + df["std_return_5_over_std_return_90"] = df["std_return_5"] / df["std_return_90"] # df['std_return_5 / std_return_25'] = df['std_return_5'] / df['std_return_25'] # 计算标准差差值 - df['std_return_90_minus_std_return_90_2'] = df['std_return_90'] - df['std_return_90_2'] + df["std_return_90_minus_std_return_90_2"] = ( + df["std_return_90"] - df["std_return_90_2"] + ) # df['cat_af1'] = df['act_factor1'] > 0 - df['cat_af2'] = df['act_factor2'] > df['act_factor1'] - df['cat_af3'] = df['act_factor3'] > df['act_factor2'] - df['cat_af4'] = df['act_factor4'] > df['act_factor3'] + df["cat_af2"] = df["act_factor2"] > df["act_factor1"] + df["cat_af3"] = df["act_factor3"] > df["act_factor2"] + df["cat_af4"] = df["act_factor4"] > df["act_factor3"] # 计算 act_factor5 和 act_factor6 - df['act_factor5'] = df['act_factor1'] + df['act_factor2'] + df['act_factor3'] + df['act_factor4'] - df['act_factor6'] = (df['act_factor1'] - df['act_factor2']) / np.sqrt( - df['act_factor1'] ** 2 + df['act_factor2'] ** 2) + df["act_factor5"] = ( + df["act_factor1"] + df["act_factor2"] + df["act_factor3"] + df["act_factor4"] + ) + df["act_factor6"] = (df["act_factor1"] - df["act_factor2"]) / np.sqrt( + df["act_factor1"] ** 2 + df["act_factor2"] ** 2 + ) - df['active_buy_volume_large'] = df['buy_lg_vol'] / df['net_mf_vol'] - df['active_buy_volume_big'] = df['buy_elg_vol'] / df['net_mf_vol'] - df['active_buy_volume_small'] = df['buy_sm_vol'] / df['net_mf_vol'] + df["active_buy_volume_large"] = df["buy_lg_vol"] / df["net_mf_vol"] + df["active_buy_volume_big"] = df["buy_elg_vol"] / df["net_mf_vol"] + df["active_buy_volume_small"] = df["buy_sm_vol"] / df["net_mf_vol"] - df['buy_lg_vol_minus_sell_lg_vol'] = (df['buy_lg_vol'] - df['sell_lg_vol']) / df['net_mf_vol'] - df['buy_elg_vol_minus_sell_elg_vol'] = (df['buy_elg_vol'] - df['sell_elg_vol']) / df['net_mf_vol'] + df["buy_lg_vol_minus_sell_lg_vol"] = (df["buy_lg_vol"] - df["sell_lg_vol"]) / df[ + "net_mf_vol" + ] + df["buy_elg_vol_minus_sell_elg_vol"] = ( + df["buy_elg_vol"] - df["sell_elg_vol"] + ) / df["net_mf_vol"] - df['log_circ_mv'] = np.log(df['circ_mv']) + df["log_circ_mv"] = np.log(df["circ_mv"]) - df['ctrl_strength'] = (df['cost_85pct'] - df['cost_15pct']) / (df['his_high'] - df['his_low']) + df["ctrl_strength"] = (df["cost_85pct"] - df["cost_15pct"]) / ( + df["his_high"] - df["his_low"] + ) - df['low_cost_dev'] = (df['close'] - df['cost_5pct']) / (df['cost_50pct'] - df['cost_5pct']) + df["low_cost_dev"] = (df["close"] - df["cost_5pct"]) / ( + df["cost_50pct"] - df["cost_5pct"] + ) - df['asymmetry'] = (df['cost_95pct'] - df['cost_50pct']) / (df['cost_50pct'] - df['cost_5pct']) + df["asymmetry"] = (df["cost_95pct"] - df["cost_50pct"]) / ( + df["cost_50pct"] - df["cost_5pct"] + ) - df['lock_factor'] = df['turnover_rate'] * ( - 1 - (df['cost_95pct'] - df['cost_5pct']) / (df['his_high'] - df['his_low'])) + df["lock_factor"] = df["turnover_rate"] * ( + 1 - (df["cost_95pct"] - df["cost_5pct"]) / (df["his_high"] - df["his_low"]) + ) - df['cat_vol_break'] = (df['close'] > df['cost_85pct']) & (df['volume_ratio'] > 2) + df["cat_vol_break"] = (df["close"] > df["cost_85pct"]) & (df["volume_ratio"] > 2) - df['cost_atr_adj'] = (df['cost_95pct'] - df['cost_5pct']) / df['atr_14'] + df["cost_atr_adj"] = (df["cost_95pct"] - df["cost_5pct"]) / df["atr_14"] # 12. 小盘股筹码集中度 - df['smallcap_concentration'] = (1 / df['log_circ_mv']) * (df['cost_85pct'] - df['cost_15pct']) + df["smallcap_concentration"] = (1 / df["log_circ_mv"]) * ( + df["cost_85pct"] - df["cost_15pct"] + ) - df['cat_golden_resonance'] = ((df['close'] > df['weight_avg']) & - (df['volume_ratio'] > 1.5) & - (df['winner_rate'] > 0.7)) + df["cat_golden_resonance"] = ( + (df["close"] > df["weight_avg"]) + & (df["volume_ratio"] > 1.5) + & (df["winner_rate"] > 0.7) + ) - df['mv_turnover_ratio'] = df['turnover_rate'] / df['log_circ_mv'] + df["mv_turnover_ratio"] = df["turnover_rate"] / df["log_circ_mv"] - df['mv_adjusted_volume'] = df['vol'] / df['log_circ_mv'] + df["mv_adjusted_volume"] = df["vol"] / df["log_circ_mv"] - df['mv_weighted_turnover'] = df['turnover_rate'] * (1 / df['log_circ_mv']) + df["mv_weighted_turnover"] = df["turnover_rate"] * (1 / df["log_circ_mv"]) - df['nonlinear_mv_volume'] = df['vol'] / df['log_circ_mv'] + df["nonlinear_mv_volume"] = df["vol"] / df["log_circ_mv"] - df['mv_volume_ratio'] = df['volume_ratio'] / df['log_circ_mv'] + df["mv_volume_ratio"] = df["volume_ratio"] / df["log_circ_mv"] - df['mv_momentum'] = df['turnover_rate'] * df['volume_ratio'] / df['log_circ_mv'] + df["mv_momentum"] = df["turnover_rate"] * df["volume_ratio"] / df["log_circ_mv"] - drop_columns = [col for col in df.columns if col.startswith('_')] - df.drop(columns=drop_columns, inplace=True, errors='ignore') + drop_columns = [col for col in df.columns if col.startswith("_")] + df.drop(columns=drop_columns, inplace=True, errors="ignore") new_columns = [col for col in df.columns.tolist()[:] if col not in old_columns] return df, new_columns @@ -462,44 +567,64 @@ def get_simple_factor(df): import pandas as pd import numpy as np -from scipy.stats import linregress # For factor 4 (if implementing slope directly) +from scipy.stats import linregress # For factor 4 (if implementing slope directly) + # from hurst import compute_Hc # For factor 18, needs pip install hurst # import statsmodels.api as sm # For factor 16, needs pip install statsmodels # --- Constants --- -epsilon = 1e-10 # Prevent division by zero +epsilon = 1e-10 # Prevent division by zero + # --- Helper Functions --- def _safe_divide(a, b, default_val=0): """Safe division, returns default_val for division by zero or NaN/inf results.""" - with np.errstate(divide='ignore', invalid='ignore'): + with np.errstate(divide="ignore", invalid="ignore"): result = a / b # Replace NaN, Inf, -Inf resulting from division or invalid ops result[~np.isfinite(result)] = default_val return result + # --- Factor Calculation Functions (In-Place Modification) --- + # Category 1: Large Player Intent & Behavior -def lg_flow_mom_corr(df: pd.DataFrame, N: int = 20, M: int = 60, factor_name: str = None): +def lg_flow_mom_corr( + df: pd.DataFrame, N: int = 20, M: int = 60, factor_name: str = None +): """ Calculates Factor 1: Large Flow & Price Momentum Concordance (In-place). WARNING: Modifies df in-place. """ if factor_name is None: - factor_name = f'lg_flow_mom_corr_{N}_{M}' + factor_name = f"lg_flow_mom_corr_{N}_{M}" print(f"Calculating {factor_name}...") - _temp_cols = ['_net_lg_flow_val', '_rolling_net_lg_flow', '_price_mom'] + _temp_cols = ["_net_lg_flow_val", "_rolling_net_lg_flow", "_price_mom"] try: - df['_net_lg_flow_val'] = (df['buy_lg_vol'] + df['buy_elg_vol'] - df['sell_lg_vol'] - df['sell_elg_vol']) * df['close'] - df['_rolling_net_lg_flow'] = df.groupby('ts_code')['_net_lg_flow_val'].rolling(N, min_periods=max(1, N // 2)).sum().reset_index(level=0, drop=True) - df['_price_mom'] = df.groupby('ts_code')['close'].pct_change(N) + df["_net_lg_flow_val"] = ( + df["buy_lg_vol"] + + df["buy_elg_vol"] + - df["sell_lg_vol"] + - df["sell_elg_vol"] + ) * df["close"] + df["_rolling_net_lg_flow"] = ( + df.groupby("ts_code")["_net_lg_flow_val"] + .rolling(N, min_periods=max(1, N // 2)) + .sum() + .reset_index(level=0, drop=True) + ) + df["_price_mom"] = df.groupby("ts_code")["close"].pct_change(N) # Calculate correlation on the temporary Series to handle alignment - factor_series = df['_rolling_net_lg_flow'].rolling(M, min_periods=max(1, M // 2)).corr(df['_price_mom']) + factor_series = ( + df["_rolling_net_lg_flow"] + .rolling(M, min_periods=max(1, M // 2)) + .corr(df["_price_mom"]) + ) df[factor_name] = factor_series except Exception as e: print(f"Error calculating {factor_name}: {e}") - df[factor_name] = np.nan # Assign NaN on error + df[factor_name] = np.nan # Assign NaN on error finally: # Cleanup intermediate columns cols_to_drop = [col for col in _temp_cols if col in df.columns] @@ -507,24 +632,51 @@ def lg_flow_mom_corr(df: pd.DataFrame, N: int = 20, M: int = 60, factor_name: st df.drop(columns=cols_to_drop, inplace=True) print(f"Finished {factor_name}.") -def lg_buy_consolidation(df: pd.DataFrame, N: int = 20, vol_quantile: float = 0.2, factor_name: str = None): + +def lg_buy_consolidation( + df: pd.DataFrame, N: int = 20, vol_quantile: float = 0.2, factor_name: str = None +): """ Calculates Factor 2: Large Buying during Consolidation (In-place). WARNING: Modifies df in-place. """ if factor_name is None: - factor_name = f'lg_buy_consolidation_{N}' + factor_name = f"lg_buy_consolidation_{N}" print(f"Calculating {factor_name}...") - _temp_cols = ['_rolling_std', '_net_lg_flow_ratio', '_rolling_net_lg_flow_ratio_mean', '_std_threshold'] + _temp_cols = [ + "_rolling_std", + "_net_lg_flow_ratio", + "_rolling_net_lg_flow_ratio_mean", + "_std_threshold", + ] try: - df['_rolling_std'] = df.groupby('ts_code')['close'].rolling(N, min_periods=max(1, N // 2)).std().reset_index(level=0, drop=True) - df['_net_lg_flow_ratio'] = _safe_divide( - (df['buy_lg_vol'] + df['buy_elg_vol'] - df['sell_lg_vol'] - df['sell_elg_vol']), - df['vol'] + df["_rolling_std"] = ( + df.groupby("ts_code")["close"] + .rolling(N, min_periods=max(1, N // 2)) + .std() + .reset_index(level=0, drop=True) + ) + df["_net_lg_flow_ratio"] = _safe_divide( + ( + df["buy_lg_vol"] + + df["buy_elg_vol"] + - df["sell_lg_vol"] + - df["sell_elg_vol"] + ), + df["vol"], + ) + df["_rolling_net_lg_flow_ratio_mean"] = ( + df.groupby("ts_code")["_net_lg_flow_ratio"] + .rolling(N, min_periods=max(1, N // 2)) + .mean() + .reset_index(level=0, drop=True) + ) + df["_std_threshold"] = df.groupby("trade_date")["_rolling_std"].transform( + lambda x: x.quantile(vol_quantile) + ) + df[factor_name] = df["_rolling_net_lg_flow_ratio_mean"].where( + df["_rolling_std"] < df["_std_threshold"] ) - df['_rolling_net_lg_flow_ratio_mean'] = df.groupby('ts_code')['_net_lg_flow_ratio'].rolling(N, min_periods=max(1, N // 2)).mean().reset_index(level=0, drop=True) - df['_std_threshold'] = df.groupby('trade_date')['_rolling_std'].transform(lambda x: x.quantile(vol_quantile)) - df[factor_name] = df['_rolling_net_lg_flow_ratio_mean'].where(df['_rolling_std'] < df['_std_threshold']) except Exception as e: print(f"Error calculating {factor_name}: {e}") df[factor_name] = np.nan @@ -534,16 +686,22 @@ def lg_buy_consolidation(df: pd.DataFrame, N: int = 20, vol_quantile: float = 0. df.drop(columns=cols_to_drop, inplace=True) print(f"Finished {factor_name}.") -def lg_flow_accel(df: pd.DataFrame, factor_name: str = 'lg_flow_accel'): + +def lg_flow_accel(df: pd.DataFrame, factor_name: str = "lg_flow_accel"): """ Calculates Factor 3: Large Flow Acceleration (In-place). WARNING: Modifies df in-place. """ print(f"Calculating {factor_name}...") - _temp_cols = ['_net_lg_flow_vol'] + _temp_cols = ["_net_lg_flow_vol"] try: - df['_net_lg_flow_vol'] = df['buy_lg_vol'] + df['buy_elg_vol'] - df['sell_lg_vol'] - df['sell_elg_vol'] - df[factor_name] = df.groupby('ts_code')['_net_lg_flow_vol'].diff(1).diff(1) + df["_net_lg_flow_vol"] = ( + df["buy_lg_vol"] + + df["buy_elg_vol"] + - df["sell_lg_vol"] + - df["sell_elg_vol"] + ) + df[factor_name] = df.groupby("ts_code")["_net_lg_flow_vol"].diff(1).diff(1) except Exception as e: print(f"Error calculating {factor_name}: {e}") df[factor_name] = np.nan @@ -553,6 +711,7 @@ def lg_flow_accel(df: pd.DataFrame, factor_name: str = 'lg_flow_accel'): df.drop(columns=cols_to_drop, inplace=True) print(f"Finished {factor_name}.") + def intraday_lg_flow_corr(df: pd.DataFrame, N: int = 20, factor_name: str = None): """ Calculates Factor 4: (Approx) Intraday Trend & Large Flow Correlation (In-place). @@ -561,24 +720,30 @@ def intraday_lg_flow_corr(df: pd.DataFrame, N: int = 20, factor_name: str = None WARNING: Modifies df in-place. Placeholder implementation returns NaN. """ if factor_name is None: - factor_name = f'intraday_lg_flow_corr_{N}' + factor_name = f"intraday_lg_flow_corr_{N}" print(f"Calculating {factor_name} (Placeholder - complex implementation)...") - df[factor_name] = np.nan # Placeholder, see previous thought process for detailed logic needed + df[factor_name] = ( + np.nan + ) # Placeholder, see previous thought process for detailed logic needed print(f"Finished {factor_name} (Placeholder).") # Category 2: Cost Basis & PnL Status -def profit_pressure(df: pd.DataFrame, factor_name: str = 'profit_pressure'): +def profit_pressure(df: pd.DataFrame, factor_name: str = "profit_pressure"): """ Calculates Factor 5: Profit Pressure Index (In-place). WARNING: Modifies df in-place. """ print(f"Calculating {factor_name}...") - _temp_cols = ['_profit_margin_85', '_profit_margin_95'] + _temp_cols = ["_profit_margin_85", "_profit_margin_95"] try: - df['_profit_margin_85'] = _safe_divide(df['close'], df['cost_85pct']) - 1 - df['_profit_margin_95'] = _safe_divide(df['close'], df['cost_95pct']) - 1 - df[factor_name] = df['winner_rate'] * 0.5 * (df['_profit_margin_85'] + df['_profit_margin_95']) + df["_profit_margin_85"] = _safe_divide(df["close"], df["cost_85pct"]) - 1 + df["_profit_margin_95"] = _safe_divide(df["close"], df["cost_95pct"]) - 1 + df[factor_name] = ( + df["winner_rate"] + * 0.5 + * (df["_profit_margin_85"] + df["_profit_margin_95"]) + ) except Exception as e: print(f"Error calculating {factor_name}: {e}") df[factor_name] = np.nan @@ -588,17 +753,20 @@ def profit_pressure(df: pd.DataFrame, factor_name: str = 'profit_pressure'): df.drop(columns=cols_to_drop, inplace=True) print(f"Finished {factor_name}.") -def underwater_resistance(df: pd.DataFrame, factor_name: str = 'underwater_resistance'): + +def underwater_resistance(df: pd.DataFrame, factor_name: str = "underwater_resistance"): """ Calculates Factor 6: Resistance from Underwater Positions (In-place). WARNING: Modifies df in-place. """ print(f"Calculating {factor_name}...") - _temp_cols = ['_underwater_ratio', '_dist_to_cost_15'] + _temp_cols = ["_underwater_ratio", "_dist_to_cost_15"] try: - df['_underwater_ratio'] = 1.0 - df['winner_rate'] - df['_dist_to_cost_15'] = np.maximum(0, df['cost_15pct'] - df['close']) / (df['close'] + epsilon) - df[factor_name] = df['_underwater_ratio'] * df['_dist_to_cost_15'] + df["_underwater_ratio"] = 1.0 - df["winner_rate"] + df["_dist_to_cost_15"] = np.maximum(0, df["cost_15pct"] - df["close"]) / ( + df["close"] + epsilon + ) + df[factor_name] = df["_underwater_ratio"] * df["_dist_to_cost_15"] except Exception as e: print(f"Error calculating {factor_name}: {e}") df[factor_name] = np.nan @@ -608,22 +776,27 @@ def underwater_resistance(df: pd.DataFrame, factor_name: str = 'underwater_resis df.drop(columns=cols_to_drop, inplace=True) print(f"Finished {factor_name}.") + def cost_conc_std(df: pd.DataFrame, N: int = 20, factor_name: str = None): """ Calculates Factor 7: Cost Concentration Change (Std Dev) (In-place). WARNING: Modifies df in-place. """ if factor_name is None: - factor_name = f'cost_conc_std_{N}' + factor_name = f"cost_conc_std_{N}" print(f"Calculating {factor_name}...") - _temp_cols = ['_cost_range_norm'] + _temp_cols = ["_cost_range_norm"] try: - df['_cost_range_norm'] = _safe_divide( - (df['cost_85pct'] - df['cost_15pct']), - (df['weight_avg'] + epsilon) + df["_cost_range_norm"] = _safe_divide( + (df["cost_85pct"] - df["cost_15pct"]), (df["weight_avg"] + epsilon) ) # Need to calculate rolling std on the temp col before dropping it - factor_series = df.groupby('ts_code')['_cost_range_norm'].rolling(N, min_periods=max(1, N//2)).std().reset_index(level=0, drop=True) + factor_series = ( + df.groupby("ts_code")["_cost_range_norm"] + .rolling(N, min_periods=max(1, N // 2)) + .std() + .reset_index(level=0, drop=True) + ) df[factor_name] = factor_series except Exception as e: print(f"Error calculating {factor_name}: {e}") @@ -634,19 +807,22 @@ def cost_conc_std(df: pd.DataFrame, N: int = 20, factor_name: str = None): df.drop(columns=cols_to_drop, inplace=True) print(f"Finished {factor_name}.") + def profit_decay(df: pd.DataFrame, N: int = 20, factor_name: str = None): """ Calculates Factor 8: Profit Expectation Decay (In-place). WARNING: Modifies df in-place. """ if factor_name is None: - factor_name = f'profit_decay_{N}' + factor_name = f"profit_decay_{N}" print(f"Calculating {factor_name}...") - _temp_cols = ['_ret_N', '_winner_rate_change_N'] + _temp_cols = ["_ret_N", "_winner_rate_change_N"] try: - df['_ret_N'] = _safe_divide(df['close'], df.groupby('ts_code')['close'].shift(N)) - 1 - df['_winner_rate_change_N'] = df.groupby('ts_code')['winner_rate'].diff(N) - df[factor_name] = _safe_divide(df['_ret_N'], df['_winner_rate_change_N']) + df["_ret_N"] = ( + _safe_divide(df["close"], df.groupby("ts_code")["close"].shift(N)) - 1 + ) + df["_winner_rate_change_N"] = df.groupby("ts_code")["winner_rate"].diff(N) + df[factor_name] = _safe_divide(df["_ret_N"], df["_winner_rate_change_N"]) except Exception as e: print(f"Error calculating {factor_name}: {e}") df[factor_name] = np.nan @@ -664,13 +840,20 @@ def vol_amp_loss(df: pd.DataFrame, N: int = 20, factor_name: str = None): WARNING: Modifies df in-place. """ if factor_name is None: - factor_name = f'vol_amp_loss_{N}' + factor_name = f"vol_amp_loss_{N}" print(f"Calculating {factor_name}...") - _temp_cols = ['_vol_N', '_loss_degree'] + _temp_cols = ["_vol_N", "_loss_degree"] try: - df['_vol_N'] = df.groupby('ts_code')['pct_chg'].rolling(N, min_periods=max(1, N // 2)).std().reset_index(level=0, drop=True) - df['_loss_degree'] = np.maximum(0, df['weight_avg'] - df['close']) / (df['close'] + epsilon) - df[factor_name] = df['_vol_N'] * df['_loss_degree'] + df["_vol_N"] = ( + df.groupby("ts_code")["pct_chg"] + .rolling(N, min_periods=max(1, N // 2)) + .std() + .reset_index(level=0, drop=True) + ) + df["_loss_degree"] = np.maximum(0, df["weight_avg"] - df["close"]) / ( + df["close"] + epsilon + ) + df[factor_name] = df["_vol_N"] * df["_loss_degree"] except Exception as e: print(f"Error calculating {factor_name}: {e}") df[factor_name] = np.nan @@ -680,23 +863,59 @@ def vol_amp_loss(df: pd.DataFrame, N: int = 20, factor_name: str = None): df.drop(columns=cols_to_drop, inplace=True) print(f"Finished {factor_name}.") -def vol_drop_profit_cnt(df: pd.DataFrame, N: int = 20, M: int = 5, profit_thresh: float = 0.1, drop_thresh: float = -0.03, vol_multiple: float = 2.0, factor_name: str = None): + +def vol_drop_profit_cnt( + df: pd.DataFrame, + N: int = 20, + M: int = 5, + profit_thresh: float = 0.1, + drop_thresh: float = -0.03, + vol_multiple: float = 2.0, + factor_name: str = None, +): """ Calculates Factor 10: High Volume Drop when Profitable (Count over M days) (In-place). WARNING: Modifies df in-place. """ if factor_name is None: - factor_name = f'vol_drop_profit_cnt_{M}' + factor_name = f"vol_drop_profit_cnt_{M}" print(f"Calculating {factor_name}...") - _temp_cols = ['_is_profitable', '_is_dropping', '_rolling_mean_vol', '_rolling_std_vol', '_is_high_vol', '_event'] + _temp_cols = [ + "_is_profitable", + "_is_dropping", + "_rolling_mean_vol", + "_rolling_std_vol", + "_is_high_vol", + "_event", + ] try: - df['_is_profitable'] = df['close'] > df['weight_avg'] * (1 + profit_thresh) - df['_is_dropping'] = df['pct_chg'] < drop_thresh - df['_rolling_mean_vol'] = df.groupby('ts_code')['vol'].rolling(N, min_periods=1).mean().reset_index(level=0, drop=True) - df['_rolling_std_vol'] = df.groupby('ts_code')['vol'].rolling(N, min_periods=2).std().reset_index(level=0, drop=True).fillna(0) - df['_is_high_vol'] = df['vol'] > (df['_rolling_mean_vol'] + vol_multiple * df['_rolling_std_vol']) - df['_event'] = (df['_is_profitable'] & df['_is_dropping'] & df['_is_high_vol']).astype(int) - factor_series = df.groupby('ts_code')['_event'].rolling(M, min_periods=1).sum().reset_index(level=0, drop=True) + df["_is_profitable"] = df["close"] > df["weight_avg"] * (1 + profit_thresh) + df["_is_dropping"] = df["pct_chg"] < drop_thresh + df["_rolling_mean_vol"] = ( + df.groupby("ts_code")["vol"] + .rolling(N, min_periods=1) + .mean() + .reset_index(level=0, drop=True) + ) + df["_rolling_std_vol"] = ( + df.groupby("ts_code")["vol"] + .rolling(N, min_periods=2) + .std() + .reset_index(level=0, drop=True) + .fillna(0) + ) + df["_is_high_vol"] = df["vol"] > ( + df["_rolling_mean_vol"] + vol_multiple * df["_rolling_std_vol"] + ) + df["_event"] = ( + df["_is_profitable"] & df["_is_dropping"] & df["_is_high_vol"] + ).astype(int) + factor_series = ( + df.groupby("ts_code")["_event"] + .rolling(M, min_periods=1) + .sum() + .reset_index(level=0, drop=True) + ) df[factor_name] = factor_series except Exception as e: print(f"Error calculating {factor_name}: {e}") @@ -707,22 +926,46 @@ def vol_drop_profit_cnt(df: pd.DataFrame, N: int = 20, M: int = 5, profit_thresh df.drop(columns=cols_to_drop, inplace=True) print(f"Finished {factor_name}.") + def lg_flow_vol_interact(df: pd.DataFrame, N: int = 20, factor_name: str = None): """ Calculates Factor 11: Large Flow Driven Volatility (Interaction Term) (In-place). WARNING: Modifies df in-place. """ if factor_name is None: - factor_name = f'lg_flow_vol_interact_{N}' + factor_name = f"lg_flow_vol_interact_{N}" print(f"Calculating {factor_name}...") - _temp_cols = ['_vol_N', '_net_lg_flow_val', '_total_val', '_abs_net_lg_flow_ratio', '_abs_net_lg_flow_ratio_N'] + _temp_cols = [ + "_vol_N", + "_net_lg_flow_val", + "_total_val", + "_abs_net_lg_flow_ratio", + "_abs_net_lg_flow_ratio_N", + ] try: - df['_vol_N'] = df.groupby('ts_code')['pct_chg'].rolling(N, min_periods=max(1, N // 2)).std().reset_index(level=0, drop=True) - df['_net_lg_flow_val'] = (df['buy_lg_vol'] + df['buy_elg_vol'] - df['sell_lg_vol'] - df['sell_elg_vol']) * df['close'] - df['_total_val'] = df['vol'] * df['close'] - df['_abs_net_lg_flow_ratio'] = abs(df['_net_lg_flow_val']) / (df['_total_val'] + epsilon) - df['_abs_net_lg_flow_ratio_N'] = df.groupby('ts_code')['_abs_net_lg_flow_ratio'].rolling(N, min_periods=max(1, N // 2)).mean().reset_index(level=0, drop=True) - df[factor_name] = df['_vol_N'] * df['_abs_net_lg_flow_ratio_N'] + df["_vol_N"] = ( + df.groupby("ts_code")["pct_chg"] + .rolling(N, min_periods=max(1, N // 2)) + .std() + .reset_index(level=0, drop=True) + ) + df["_net_lg_flow_val"] = ( + df["buy_lg_vol"] + + df["buy_elg_vol"] + - df["sell_lg_vol"] + - df["sell_elg_vol"] + ) * df["close"] + df["_total_val"] = df["vol"] * df["close"] + df["_abs_net_lg_flow_ratio"] = abs(df["_net_lg_flow_val"]) / ( + df["_total_val"] + epsilon + ) + df["_abs_net_lg_flow_ratio_N"] = ( + df.groupby("ts_code")["_abs_net_lg_flow_ratio"] + .rolling(N, min_periods=max(1, N // 2)) + .mean() + .reset_index(level=0, drop=True) + ) + df[factor_name] = df["_vol_N"] * df["_abs_net_lg_flow_ratio_N"] except Exception as e: print(f"Error calculating {factor_name}: {e}") df[factor_name] = np.nan @@ -732,25 +975,47 @@ def lg_flow_vol_interact(df: pd.DataFrame, N: int = 20, factor_name: str = None) df.drop(columns=cols_to_drop, inplace=True) print(f"Finished {factor_name}.") + def cost_break_confirm_cnt(df: pd.DataFrame, M: int = 5, factor_name: str = None): """ Calculates Factor 12: Cost Breakout Confirmation Count (In-place). WARNING: Modifies df in-place. """ if factor_name is None: - factor_name = f'cost_break_confirm_cnt_{M}' + factor_name = f"cost_break_confirm_cnt_{M}" print(f"Calculating {factor_name}...") - _temp_cols = ['_prev_cost_85', '_prev_cost_15', '_break_up', '_break_down', '_net_lg_flow_vol', '_confirm_up', '_confirm_down', '_net_confirm'] + _temp_cols = [ + "_prev_cost_85", + "_prev_cost_15", + "_break_up", + "_break_down", + "_net_lg_flow_vol", + "_confirm_up", + "_confirm_down", + "_net_confirm", + ] try: - df['_prev_cost_85'] = df.groupby('ts_code')['cost_85pct'].shift(1) - df['_prev_cost_15'] = df.groupby('ts_code')['cost_15pct'].shift(1) - df['_break_up'] = df['close'] > df['_prev_cost_85'] - df['_break_down'] = df['close'] < df['_prev_cost_15'] - df['_net_lg_flow_vol'] = df['buy_lg_vol'] + df['buy_elg_vol'] - df['sell_lg_vol'] - df['sell_elg_vol'] - df['_confirm_up'] = (df['_break_up'] & (df['_net_lg_flow_vol'] > 0)).astype(int) - df['_confirm_down'] = (df['_break_down'] & (df['_net_lg_flow_vol'] < 0)).astype(int) - df['_net_confirm'] = df['_confirm_up'] - df['_confirm_down'] - factor_series = df.groupby('ts_code')['_net_confirm'].rolling(M, min_periods=1).sum().reset_index(level=0, drop=True) + df["_prev_cost_85"] = df.groupby("ts_code")["cost_85pct"].shift(1) + df["_prev_cost_15"] = df.groupby("ts_code")["cost_15pct"].shift(1) + df["_break_up"] = df["close"] > df["_prev_cost_85"] + df["_break_down"] = df["close"] < df["_prev_cost_15"] + df["_net_lg_flow_vol"] = ( + df["buy_lg_vol"] + + df["buy_elg_vol"] + - df["sell_lg_vol"] + - df["sell_elg_vol"] + ) + df["_confirm_up"] = (df["_break_up"] & (df["_net_lg_flow_vol"] > 0)).astype(int) + df["_confirm_down"] = (df["_break_down"] & (df["_net_lg_flow_vol"] < 0)).astype( + int + ) + df["_net_confirm"] = df["_confirm_up"] - df["_confirm_down"] + factor_series = ( + df.groupby("ts_code")["_net_confirm"] + .rolling(M, min_periods=1) + .sum() + .reset_index(level=0, drop=True) + ) df[factor_name] = factor_series except Exception as e: print(f"Error calculating {factor_name}: {e}") @@ -769,18 +1034,36 @@ def atr_norm_channel_pos(df: pd.DataFrame, N: int = 14, factor_name: str = None) WARNING: Modifies df in-place. """ if factor_name is None: - factor_name = f'atr_norm_channel_pos_{N}' + factor_name = f"atr_norm_channel_pos_{N}" print(f"Calculating {factor_name}...") - _temp_cols = ['_prev_close', '_h_l', '_h_pc', '_l_pc', '_tr', '_atr_N', '_roll_low_N'] + _temp_cols = [ + "_prev_close", + "_h_l", + "_h_pc", + "_l_pc", + "_tr", + "_atr_N", + "_roll_low_N", + ] try: - df['_prev_close'] = df.groupby('ts_code')['close'].shift(1) - df['_h_l'] = df['high'] - df['low'] - df['_h_pc'] = abs(df['high'] - df['_prev_close']) - df['_l_pc'] = abs(df['low'] - df['_prev_close']) - df['_tr'] = df[['_h_l', '_h_pc', '_l_pc']].max(axis=1) - df['_atr_N'] = df.groupby('ts_code')['_tr'].rolling(N, min_periods=max(1, N//2)).mean().reset_index(level=0, drop=True) - df['_roll_low_N'] = df.groupby('ts_code')['low'].rolling(N, min_periods=max(1, N//2)).min().reset_index(level=0, drop=True) - df[factor_name] = _safe_divide((df['close'] - df['_roll_low_N']), df['_atr_N']) + df["_prev_close"] = df.groupby("ts_code")["close"].shift(1) + df["_h_l"] = df["high"] - df["low"] + df["_h_pc"] = abs(df["high"] - df["_prev_close"]) + df["_l_pc"] = abs(df["low"] - df["_prev_close"]) + df["_tr"] = df[["_h_l", "_h_pc", "_l_pc"]].max(axis=1) + df["_atr_N"] = ( + df.groupby("ts_code")["_tr"] + .rolling(N, min_periods=max(1, N // 2)) + .mean() + .reset_index(level=0, drop=True) + ) + df["_roll_low_N"] = ( + df.groupby("ts_code")["low"] + .rolling(N, min_periods=max(1, N // 2)) + .min() + .reset_index(level=0, drop=True) + ) + df[factor_name] = _safe_divide((df["close"] - df["_roll_low_N"]), df["_atr_N"]) except Exception as e: print(f"Error calculating {factor_name}: {e}") df[factor_name] = np.nan @@ -790,19 +1073,25 @@ def atr_norm_channel_pos(df: pd.DataFrame, N: int = 14, factor_name: str = None) df.drop(columns=cols_to_drop, inplace=True) print(f"Finished {factor_name}.") + def turnover_diff_skew(df: pd.DataFrame, N: int = 20, factor_name: str = None): """ Calculates Factor 14: Skewness of Turnover Rate Change (In-place). WARNING: Modifies df in-place. """ if factor_name is None: - factor_name = f'turnover_diff_skew_{N}' + factor_name = f"turnover_diff_skew_{N}" print(f"Calculating {factor_name}...") - _temp_cols = ['_turnover_diff'] + _temp_cols = ["_turnover_diff"] try: # Assuming turnover_rate is in percentage points, diff is fine - df['_turnover_diff'] = df.groupby('ts_code')['turnover_rate'].diff(1) - factor_series = df.groupby('ts_code')['_turnover_diff'].rolling(N, min_periods=max(3, N//2)).skew().reset_index(level=0, drop=True) + df["_turnover_diff"] = df.groupby("ts_code")["turnover_rate"].diff(1) + factor_series = ( + df.groupby("ts_code")["_turnover_diff"] + .rolling(N, min_periods=max(3, N // 2)) + .skew() + .reset_index(level=0, drop=True) + ) df[factor_name] = factor_series except Exception as e: print(f"Error calculating {factor_name}: {e}") @@ -813,27 +1102,47 @@ def turnover_diff_skew(df: pd.DataFrame, N: int = 20, factor_name: str = None): df.drop(columns=cols_to_drop, inplace=True) print(f"Finished {factor_name}.") + def lg_sm_flow_diverge(df: pd.DataFrame, N: int = 20, factor_name: str = None): """ Calculates Factor 15: Divergence between Large and Small Flow (In-place). WARNING: Modifies df in-place. """ if factor_name is None: - factor_name = f'lg_sm_flow_diverge_{N}' + factor_name = f"lg_sm_flow_diverge_{N}" print(f"Calculating {factor_name}...") - _temp_cols = ['_lg_flow_ratio', '_sm_flow_ratio', '_lg_flow_ratio_N', '_sm_flow_ratio_N'] + _temp_cols = [ + "_lg_flow_ratio", + "_sm_flow_ratio", + "_lg_flow_ratio_N", + "_sm_flow_ratio_N", + ] try: - df['_lg_flow_ratio'] = _safe_divide( - (df['buy_lg_vol'] + df['buy_elg_vol'] - df['sell_lg_vol'] - df['sell_elg_vol']), - df['vol'] + df["_lg_flow_ratio"] = _safe_divide( + ( + df["buy_lg_vol"] + + df["buy_elg_vol"] + - df["sell_lg_vol"] + - df["sell_elg_vol"] + ), + df["vol"], ) - df['_sm_flow_ratio'] = _safe_divide( - (df['buy_sm_vol'] - df['sell_sm_vol']), - df['vol'] + df["_sm_flow_ratio"] = _safe_divide( + (df["buy_sm_vol"] - df["sell_sm_vol"]), df["vol"] ) - df['_lg_flow_ratio_N'] = df.groupby('ts_code')['_lg_flow_ratio'].rolling(N, min_periods=max(1, N // 2)).mean().reset_index(level=0, drop=True) - df['_sm_flow_ratio_N'] = df.groupby('ts_code')['_sm_flow_ratio'].rolling(N, min_periods=max(1, N // 2)).mean().reset_index(level=0, drop=True) - df[factor_name] = df['_lg_flow_ratio_N'] - df['_sm_flow_ratio_N'] + df["_lg_flow_ratio_N"] = ( + df.groupby("ts_code")["_lg_flow_ratio"] + .rolling(N, min_periods=max(1, N // 2)) + .mean() + .reset_index(level=0, drop=True) + ) + df["_sm_flow_ratio_N"] = ( + df.groupby("ts_code")["_sm_flow_ratio"] + .rolling(N, min_periods=max(1, N // 2)) + .mean() + .reset_index(level=0, drop=True) + ) + df[factor_name] = df["_lg_flow_ratio_N"] - df["_sm_flow_ratio_N"] except Exception as e: print(f"Error calculating {factor_name}: {e}") df[factor_name] = np.nan @@ -844,7 +1153,9 @@ def lg_sm_flow_diverge(df: pd.DataFrame, N: int = 20, factor_name: str = None): print(f"Finished {factor_name}.") -def cap_neutral_cost_metric(df: pd.DataFrame, factor_name: str = 'cap_neutral_cost_metric'): +def cap_neutral_cost_metric( + df: pd.DataFrame, factor_name: str = "cap_neutral_cost_metric" +): """ Calculates Factor 16: Market Cap Neutralized Cost Metric (Placeholder). Requires statsmodels and complex implementation. @@ -855,20 +1166,35 @@ def cap_neutral_cost_metric(df: pd.DataFrame, factor_name: str = 'cap_neutral_co print(f"Finished {factor_name} (Placeholder).") -def pullback_strong(df: pd.DataFrame, N: int = 20, M: int = 20, gain_thresh: float = 0.2, factor_name: str = None): +def pullback_strong( + df: pd.DataFrame, + N: int = 20, + M: int = 20, + gain_thresh: float = 0.2, + factor_name: str = None, +): """ Calculates Factor 17: Pullback Depth from Recent High for Strong Stocks (In-place). WARNING: Modifies df in-place. """ if factor_name is None: - factor_name = f'pullback_strong_{N}_{M}' + factor_name = f"pullback_strong_{N}_{M}" print(f"Calculating {factor_name}...") - _temp_cols = ['_high_N', '_pullback_depth', '_recent_gain_M'] + _temp_cols = ["_high_N", "_pullback_depth", "_recent_gain_M"] try: - df['_high_N'] = df.groupby('ts_code')['high'].rolling(N, min_periods=max(1, N // 2)).max().reset_index(level=0, drop=True) - df['_pullback_depth'] = _safe_divide((df['_high_N'] - df['close']), df['_high_N']) - df['_recent_gain_M'] = _safe_divide(df['close'], df.groupby('ts_code')['close'].shift(M)) - 1 - df[factor_name] = _safe_divide(df['_pullback_depth'], df['_recent_gain_M']) + df["_high_N"] = ( + df.groupby("ts_code")["high"] + .rolling(N, min_periods=max(1, N // 2)) + .max() + .reset_index(level=0, drop=True) + ) + df["_pullback_depth"] = _safe_divide( + (df["_high_N"] - df["close"]), df["_high_N"] + ) + df["_recent_gain_M"] = ( + _safe_divide(df["close"], df.groupby("ts_code")["close"].shift(M)) - 1 + ) + df[factor_name] = _safe_divide(df["_pullback_depth"], df["_recent_gain_M"]) except Exception as e: print(f"Error calculating {factor_name}: {e}") df[factor_name] = np.nan @@ -878,23 +1204,27 @@ def pullback_strong(df: pd.DataFrame, N: int = 20, M: int = 20, gain_thresh: flo df.drop(columns=cols_to_drop, inplace=True) print(f"Finished {factor_name}.") -def hurst_exponent_flow(df: pd.DataFrame, N: int = 60, flow_col: str = 'net_mf_vol', factor_name: str = None): + +def hurst_exponent_flow( + df: pd.DataFrame, N: int = 60, flow_col: str = "net_mf_vol", factor_name: str = None +): """ Calculates Factor 18: Hurst Exponent of Money Flow (Placeholder). Requires 'hurst' library and potentially slow rolling apply. WARNING: Modifies df in-place. Placeholder implementation returns NaN. """ if factor_name is None: - factor_name = f'hurst_{flow_col}_{N}' + factor_name = f"hurst_{flow_col}_{N}" print(f"Calculating {factor_name} (Placeholder - requires hurst library)...") try: from hurst import compute_Hc + # Logic would go here, likely using rolling().apply() which is slow # factor_series = df.groupby('ts_code')[flow_col]....apply(hurst_calc_func...) - df[factor_name] = np.nan # Placeholder + df[factor_name] = np.nan # Placeholder except ImportError: - print("Error: 'hurst' library not installed. Cannot calculate factor.") - df[factor_name] = np.nan + print("Error: 'hurst' library not installed. Cannot calculate factor.") + df[factor_name] = np.nan except Exception as e: print(f"Error calculating {factor_name}: {e}") df[factor_name] = np.nan @@ -907,14 +1237,21 @@ def vol_wgt_hist_pos(df: pd.DataFrame, N: int = 20, factor_name: str = None): WARNING: Modifies df in-place. """ if factor_name is None: - factor_name = f'vol_wgt_hist_pos_{N}' + factor_name = f"vol_wgt_hist_pos_{N}" print(f"Calculating {factor_name}...") - _temp_cols = ['_hist_pos', '_rolling_mean_vol', '_vol_rel_strength'] + _temp_cols = ["_hist_pos", "_rolling_mean_vol", "_vol_rel_strength"] try: - df['_hist_pos'] = _safe_divide((df['close'] - df['his_low']), (df['his_high'] - df['his_low'])).clip(0, 1) - df['_rolling_mean_vol'] = df.groupby('ts_code')['vol'].rolling(N, min_periods=max(1, N // 2)).mean().reset_index(level=0, drop=True) - df['_vol_rel_strength'] = _safe_divide(df['vol'], df['_rolling_mean_vol']) - df[factor_name] = df['_hist_pos'] * df['_vol_rel_strength'] + df["_hist_pos"] = _safe_divide( + (df["close"] - df["his_low"]), (df["his_high"] - df["his_low"]) + ).clip(0, 1) + df["_rolling_mean_vol"] = ( + df.groupby("ts_code")["vol"] + .rolling(N, min_periods=max(1, N // 2)) + .mean() + .reset_index(level=0, drop=True) + ) + df["_vol_rel_strength"] = _safe_divide(df["vol"], df["_rolling_mean_vol"]) + df[factor_name] = df["_hist_pos"] * df["_vol_rel_strength"] except Exception as e: print(f"Error calculating {factor_name}: {e}") df[factor_name] = np.nan @@ -924,19 +1261,28 @@ def vol_wgt_hist_pos(df: pd.DataFrame, N: int = 20, factor_name: str = None): df.drop(columns=cols_to_drop, inplace=True) print(f"Finished {factor_name}.") + def vol_adj_roc(df: pd.DataFrame, N: int = 20, factor_name: str = None): """ Calculates Factor 20: Volatility-Adjusted ROC (In-place). WARNING: Modifies df in-place. """ if factor_name is None: - factor_name = f'vol_adj_roc_{N}' + factor_name = f"vol_adj_roc_{N}" print(f"Calculating {factor_name}...") - _temp_cols = ['_roc_N', '_vol_N'] + _temp_cols = ["_roc_N", "_vol_N"] try: - df['_roc_N'] = _safe_divide(df['close'], df.groupby('ts_code')['close'].shift(N)) - 1 - df['_vol_N'] = df.groupby('ts_code')['pct_chg'].rolling(N, min_periods=max(2, N // 2)).std().reset_index(level=0, drop=True).fillna(0) - df[factor_name] = _safe_divide(df['_roc_N'], df['_vol_N']) + df["_roc_N"] = ( + _safe_divide(df["close"], df.groupby("ts_code")["close"].shift(N)) - 1 + ) + df["_vol_N"] = ( + df.groupby("ts_code")["pct_chg"] + .rolling(N, min_periods=max(2, N // 2)) + .std() + .reset_index(level=0, drop=True) + .fillna(0) + ) + df[factor_name] = _safe_divide(df["_roc_N"], df["_vol_N"]) except Exception as e: print(f"Error calculating {factor_name}: {e}") df[factor_name] = np.nan @@ -946,7 +1292,10 @@ def vol_adj_roc(df: pd.DataFrame, N: int = 20, factor_name: str = None): df.drop(columns=cols_to_drop, inplace=True) print(f"Finished {factor_name}.") -def calculate_complex_factor(df: pd.DataFrame, factor_name: str = "complex_factor_deap_1"): + +def calculate_complex_factor( + df: pd.DataFrame, factor_name: str = "complex_factor_deap_1" +): """ 表达式: sub(protected_div_torch(A, B), C) 其中 A, B, C 及内部组件依赖于多个预计算因子列。 @@ -959,60 +1308,71 @@ def calculate_complex_factor(df: pd.DataFrame, factor_name: str = "complex_facto 如果在计算过程中缺少任何必需的列,将打印错误并填充 NaN。 """ print(f"开始计算因子: {factor_name} (原地修改)...") - _temp_cols_list = [] # 用于记录中间计算列的名称 + _temp_cols_list = [] # 用于记录中间计算列的名称 try: # --- 分解计算表达式的各个部分 --- # 计算组件 D # D = sub(mul(pullback_strong_20_20, div(log_close, industry_return_5)), div(add(vol_adj_roc_20, vol_drop_profit_cnt_5), sub(nonlinear_mv_volume, alpha_007))) - _temp_d_term1_div = _safe_divide(df['log_close'], df['industry_return_5']) - _temp_d_term1 = df['pullback_strong_20_20'] * _temp_d_term1_div - _temp_d_term2_sub = df['nonlinear_mv_volume'] - df['alpha_007'] - _temp_d_term2_add = df['vol_adj_roc_20'] + df['vol_drop_profit_cnt_5'] + _temp_d_term1_div = _safe_divide(df["log_close"], df["industry_return_5"]) + _temp_d_term1 = df["pullback_strong_20_20"] * _temp_d_term1_div + _temp_d_term2_sub = df["nonlinear_mv_volume"] - df["alpha_007"] + _temp_d_term2_add = df["vol_adj_roc_20"] + df["vol_drop_profit_cnt_5"] _temp_d_term2 = _safe_divide(_temp_d_term2_add, _temp_d_term2_sub) - df['_temp_D'] = _temp_d_term1 - _temp_d_term2 - _temp_cols_list.extend(['_temp_D', '_temp_d_term1_div', '_temp_d_term1', '_temp_d_term2_sub', '_temp_d_term2_add', '_temp_d_term2']) + df["_temp_D"] = _temp_d_term1 - _temp_d_term2 + _temp_cols_list.extend( + [ + "_temp_D", + "_temp_d_term1_div", + "_temp_d_term1", + "_temp_d_term2_sub", + "_temp_d_term2_add", + "_temp_d_term2", + ] + ) # 计算组件 A # A = add(add(mul(D, lg_buy_consolidation_20), lg_buy_consolidation_20), pullback_strong_20_20) - _temp_a_term1 = df['_temp_D'] * df['lg_buy_consolidation_20'] - _temp_a_term2 = _temp_a_term1 + df['lg_buy_consolidation_20'] - df['_temp_A'] = _temp_a_term2 + df['pullback_strong_20_20'] - _temp_cols_list.extend(['_temp_A', '_temp_a_term1', '_temp_a_term2']) + _temp_a_term1 = df["_temp_D"] * df["lg_buy_consolidation_20"] + _temp_a_term2 = _temp_a_term1 + df["lg_buy_consolidation_20"] + df["_temp_A"] = _temp_a_term2 + df["pullback_strong_20_20"] + _temp_cols_list.extend(["_temp_A", "_temp_a_term1", "_temp_a_term2"]) # 计算组件 F # F = mul(add(net_mf_vol, std_return_5), sub(arbr, industry_act_factor5)) - _temp_f_term1 = df['net_mf_vol'] + df['std_return_5'] - _temp_f_term2 = df['arbr'] - df['industry_act_factor5'] - df['_temp_F'] = _temp_f_term1 * _temp_f_term2 - _temp_cols_list.extend(['_temp_F', '_temp_f_term1', '_temp_f_term2']) + _temp_f_term1 = df["net_mf_vol"] + df["std_return_5"] + _temp_f_term2 = df["arbr"] - df["industry_act_factor5"] + df["_temp_F"] = _temp_f_term1 * _temp_f_term2 + _temp_cols_list.extend(["_temp_F", "_temp_f_term1", "_temp_f_term2"]) # 计算组件 H # H = add(add(industry_act_factor1, low_cost_dev), mul(mv_weighted_turnover, act_factor4)) - _temp_h_term1 = df['industry_act_factor1'] + df['low_cost_dev'] - _temp_h_term2 = df['mv_weighted_turnover'] * df['act_factor4'] - df['_temp_H'] = _temp_h_term1 + _temp_h_term2 - _temp_cols_list.extend(['_temp_H', '_temp_h_term1', '_temp_h_term2']) + _temp_h_term1 = df["industry_act_factor1"] + df["low_cost_dev"] + _temp_h_term2 = df["mv_weighted_turnover"] * df["act_factor4"] + df["_temp_H"] = _temp_h_term1 + _temp_h_term2 + _temp_cols_list.extend(["_temp_H", "_temp_h_term1", "_temp_h_term2"]) # 计算组件 B # B = div(add(add(F, vol), H), lg_elg_buy_prop) - _temp_b_term1 = df['_temp_F'] + df['vol'] - _temp_b_term2 = _temp_b_term1 + df['_temp_H'] - df['_temp_B'] = _safe_divide(_temp_b_term2, df['lg_elg_buy_prop']) - _temp_cols_list.extend(['_temp_B', '_temp_b_term1', '_temp_b_term2']) + _temp_b_term1 = df["_temp_F"] + df["vol"] + _temp_b_term2 = _temp_b_term1 + df["_temp_H"] + df["_temp_B"] = _safe_divide(_temp_b_term2, df["lg_elg_buy_prop"]) + _temp_cols_list.extend(["_temp_B", "_temp_b_term1", "_temp_b_term2"]) # 计算组件 C # C = div(div(intraday_lg_flow_corr_20, lg_elg_buy_prop), lg_elg_buy_prop) # 注意: intraday_lg_flow_corr_20 可能本身就是 NaN 或需要特殊处理 - _temp_c_term1 = _safe_divide(df.get('intraday_lg_flow_corr_20', np.nan), df['lg_elg_buy_prop']) # 使用 .get 处理可能不存在的列 - df['_temp_C'] = _safe_divide(_temp_c_term1, df['lg_elg_buy_prop']) - _temp_cols_list.extend(['_temp_C', '_temp_c_term1']) + _temp_c_term1 = _safe_divide( + df.get("intraday_lg_flow_corr_20", np.nan), df["lg_elg_buy_prop"] + ) # 使用 .get 处理可能不存在的列 + df["_temp_C"] = _safe_divide(_temp_c_term1, df["lg_elg_buy_prop"]) + _temp_cols_list.extend(["_temp_C", "_temp_c_term1"]) # --- 计算最终表达式 --- # final = sub(div(A, B), C) - _temp_final_term1 = _safe_divide(df['_temp_A'], df['_temp_B']) - final_factor_series = _temp_final_term1 - df['_temp_C'] + _temp_final_term1 = _safe_divide(df["_temp_A"], df["_temp_B"]) + final_factor_series = _temp_final_term1 - df["_temp_C"] # --- 将最终结果赋值给 df 的新列 (原地修改) --- df[factor_name] = final_factor_series @@ -1024,12 +1384,12 @@ def calculate_complex_factor(df: pd.DataFrame, factor_name: str = "complex_facto print(f"错误: 计算 {factor_name} 时缺少必需的列: {e}") print("请确保输入的 DataFrame 包含所有表达式中引用的因子列。") print("将为因子 {factor_name} 填充 NaN。") - df[factor_name] = np.nan # 出错时填充 NaN + df[factor_name] = np.nan # 出错时填充 NaN except Exception as e: # 捕获其他可能的计算错误 print(f"错误: 计算 {factor_name} 时发生意外错误: {e}") print(f"将为因子 {factor_name} 填充 NaN。") - df[factor_name] = np.nan # 出错时填充 NaN + df[factor_name] = np.nan # 出错时填充 NaN finally: # --- 清理所有中间计算列 --- cols_to_drop = [col for col in _temp_cols_list if col in df.columns] @@ -1039,13 +1399,16 @@ def calculate_complex_factor(df: pd.DataFrame, factor_name: str = "complex_facto print(f"因子 {factor_name} 计算流程结束。") # 函数不返回任何值,因为 df 是原地修改的 + import pandas as pd import numpy as np + # from scipy.stats import rankdata # rankdata is not needed if using pandas rank # import statsmodels.api as sm # Needed for factor 19 # --- Constants --- -epsilon = 1e-10 # Prevent division by zero +epsilon = 1e-10 # Prevent division by zero + # --- Helper Functions --- def _safe_divide(numerator, denominator, default_val=0): @@ -1060,40 +1423,53 @@ def _safe_divide(numerator, denominator, default_val=0): Returns: pd.Series: 除法结果. """ - with np.errstate(divide='ignore', invalid='ignore'): + with np.errstate(divide="ignore", invalid="ignore"): # Convert inputs to numeric, coercing errors to NaN before division - num = pd.to_numeric(numerator, errors='coerce') - den = pd.to_numeric(denominator, errors='coerce') + num = pd.to_numeric(numerator, errors="coerce") + den = pd.to_numeric(denominator, errors="coerce") # Perform division where denominator is not close to zero and inputs are valid numbers result = np.where(np.abs(den) > epsilon, num / den, default_val) # Ensure result is float, handle potential NaNs from coercion or division - result = pd.to_numeric(result, errors='coerce') + result = pd.to_numeric(result, errors="coerce") # Fill remaining NaNs if necessary - result = np.nan_to_num(result, nan=default_val, posinf=default_val, neginf=default_val) + result = np.nan_to_num( + result, nan=default_val, posinf=default_val, neginf=default_val + ) # Ensure result index matches numerator's index if numerator is a Series if isinstance(numerator, pd.Series): return pd.Series(result, index=numerator.index) else: - return pd.Series(result) # Fallback if numerator is not a Series (less likely) + return pd.Series(result) # Fallback if numerator is not a Series (less likely) + # --- Cross-Sectional Factor Calculation Functions (In-Place Modification) --- + # Category 1: Cross-Sectional Flow & Behavior Strength -def cs_rank_net_lg_flow_val(df: pd.DataFrame, factor_name: str = 'cs_rank_net_lg_flow_val'): +def cs_rank_net_lg_flow_val( + df: pd.DataFrame, factor_name: str = "cs_rank_net_lg_flow_val" +): """ Factor 1: 大单净额截面排序 (In-place). WARNING: Modifies df in-place. """ print(f"Calculating {factor_name}...") - _temp_cols = ['_net_lg_flow_val'] + _temp_cols = ["_net_lg_flow_val"] try: - df['_net_lg_flow_val'] = (df['buy_lg_vol'] + df['buy_elg_vol'] - df['sell_lg_vol'] - df['sell_elg_vol']) * df['close'] - df[factor_name] = df.groupby('trade_date')['_net_lg_flow_val'].rank(pct=True) + df["_net_lg_flow_val"] = ( + df["buy_lg_vol"] + + df["buy_elg_vol"] + - df["sell_lg_vol"] + - df["sell_elg_vol"] + ) * df["close"] + df[factor_name] = df.groupby("trade_date")["_net_lg_flow_val"].rank(pct=True) except KeyError as e: print(f"Error calculating {factor_name}: Missing column {e}. Assigning NaN.") df[factor_name] = np.nan except Exception as e: - print(f"An unexpected error occurred calculating {factor_name}: {e}. Assigning NaN.") + print( + f"An unexpected error occurred calculating {factor_name}: {e}. Assigning NaN." + ) df[factor_name] = np.nan finally: cols_to_drop = [col for col in _temp_cols if col in df.columns] @@ -1101,29 +1477,38 @@ def cs_rank_net_lg_flow_val(df: pd.DataFrame, factor_name: str = 'cs_rank_net_lg df.drop(columns=cols_to_drop, inplace=True) print(f"Finished {factor_name}.") -def cs_rank_flow_divergence(df: pd.DataFrame, factor_name: str = 'cs_rank_flow_divergence'): + +def cs_rank_flow_divergence( + df: pd.DataFrame, factor_name: str = "cs_rank_flow_divergence" +): """ Factor 2: 大小单流向背离度截面排序 (In-place). WARNING: Modifies df in-place. """ print(f"Calculating {factor_name}...") - _temp_cols = ['_lg_ratio', '_sm_ratio', '_divergence'] + _temp_cols = ["_lg_ratio", "_sm_ratio", "_divergence"] try: - df['_lg_ratio'] = _safe_divide( - (df['buy_lg_vol'] + df['buy_elg_vol'] - df['sell_lg_vol'] - df['sell_elg_vol']), - df['vol'] + df["_lg_ratio"] = _safe_divide( + ( + df["buy_lg_vol"] + + df["buy_elg_vol"] + - df["sell_lg_vol"] + - df["sell_elg_vol"] + ), + df["vol"], ) - df['_sm_ratio'] = _safe_divide( - (df['buy_sm_vol'] - df['sell_sm_vol']), - df['vol'] + df["_sm_ratio"] = _safe_divide( + (df["buy_sm_vol"] - df["sell_sm_vol"]), df["vol"] ) - df['_divergence'] = df['_lg_ratio'] - df['_sm_ratio'] - df[factor_name] = df.groupby('trade_date')['_divergence'].rank(pct=True) + df["_divergence"] = df["_lg_ratio"] - df["_sm_ratio"] + df[factor_name] = df.groupby("trade_date")["_divergence"].rank(pct=True) except KeyError as e: print(f"Error calculating {factor_name}: Missing column {e}. Assigning NaN.") df[factor_name] = np.nan except Exception as e: - print(f"An unexpected error occurred calculating {factor_name}: {e}. Assigning NaN.") + print( + f"An unexpected error occurred calculating {factor_name}: {e}. Assigning NaN." + ) df[factor_name] = np.nan finally: cols_to_drop = [col for col in _temp_cols if col in df.columns] @@ -1131,27 +1516,43 @@ def cs_rank_flow_divergence(df: pd.DataFrame, factor_name: str = 'cs_rank_flow_d df.drop(columns=cols_to_drop, inplace=True) print(f"Finished {factor_name}.") -def cs_rank_industry_adj_lg_flow(df: pd.DataFrame, factor_name: str = 'cs_rank_ind_adj_lg_flow'): + +def cs_rank_industry_adj_lg_flow( + df: pd.DataFrame, factor_name: str = "cs_rank_ind_adj_lg_flow" +): """ Factor 3: 行业内大单流强度排序 (In-place). Requires 'cat_l2_code'. WARNING: Modifies df in-place. """ print(f"Calculating {factor_name}...") - _temp_cols = ['_net_lg_flow_vol', '_industry_avg_flow', '_deviation'] - if 'cat_l2_code' not in df.columns: - print(f"Error calculating {factor_name}: Missing 'cat_l2_code' column. Assigning NaN.") + _temp_cols = ["_net_lg_flow_vol", "_industry_avg_flow", "_deviation"] + if "cat_l2_code" not in df.columns: + print( + f"Error calculating {factor_name}: Missing 'cat_l2_code' column. Assigning NaN." + ) df[factor_name] = np.nan return try: - df['_net_lg_flow_vol'] = (df['buy_lg_vol'] + df['buy_elg_vol'] - df['sell_lg_vol'] - df['sell_elg_vol']) * df['close'] # Or use vol - df['_industry_avg_flow'] = df.groupby(['trade_date', 'cat_l2_code'])['_net_lg_flow_vol'].transform('mean') - df['_deviation'] = df['_net_lg_flow_vol'] - df['_industry_avg_flow'] - df[factor_name] = df.groupby('trade_date')['_deviation'].rank(pct=True) + df["_net_lg_flow_vol"] = ( + df["buy_lg_vol"] + + df["buy_elg_vol"] + - df["sell_lg_vol"] + - df["sell_elg_vol"] + ) * df[ + "close" + ] # Or use vol + df["_industry_avg_flow"] = df.groupby(["trade_date", "cat_l2_code"])[ + "_net_lg_flow_vol" + ].transform("mean") + df["_deviation"] = df["_net_lg_flow_vol"] - df["_industry_avg_flow"] + df[factor_name] = df.groupby("trade_date")["_deviation"].rank(pct=True) except KeyError as e: print(f"Error calculating {factor_name}: Missing column {e}. Assigning NaN.") df[factor_name] = np.nan except Exception as e: - print(f"An unexpected error occurred calculating {factor_name}: {e}. Assigning NaN.") + print( + f"An unexpected error occurred calculating {factor_name}: {e}. Assigning NaN." + ) df[factor_name] = np.nan finally: cols_to_drop = [col for col in _temp_cols if col in df.columns] @@ -1159,21 +1560,24 @@ def cs_rank_industry_adj_lg_flow(df: pd.DataFrame, factor_name: str = 'cs_rank_i df.drop(columns=cols_to_drop, inplace=True) print(f"Finished {factor_name}.") -def cs_rank_elg_buy_ratio(df: pd.DataFrame, factor_name: str = 'cs_rank_elg_buy_ratio'): + +def cs_rank_elg_buy_ratio(df: pd.DataFrame, factor_name: str = "cs_rank_elg_buy_ratio"): """ Factor 4: 超大单买入占比排序 (In-place). WARNING: Modifies df in-place. """ print(f"Calculating {factor_name}...") - _temp_cols = ['_elg_buy_ratio'] + _temp_cols = ["_elg_buy_ratio"] try: - df['_elg_buy_ratio'] = _safe_divide(df['buy_elg_vol'], df['vol']) - df[factor_name] = df.groupby('trade_date')['_elg_buy_ratio'].rank(pct=True) + df["_elg_buy_ratio"] = _safe_divide(df["buy_elg_vol"], df["vol"]) + df[factor_name] = df.groupby("trade_date")["_elg_buy_ratio"].rank(pct=True) except KeyError as e: print(f"Error calculating {factor_name}: Missing column {e}. Assigning NaN.") df[factor_name] = np.nan except Exception as e: - print(f"An unexpected error occurred calculating {factor_name}: {e}. Assigning NaN.") + print( + f"An unexpected error occurred calculating {factor_name}: {e}. Assigning NaN." + ) df[factor_name] = np.nan finally: cols_to_drop = [col for col in _temp_cols if col in df.columns] @@ -1181,22 +1585,29 @@ def cs_rank_elg_buy_ratio(df: pd.DataFrame, factor_name: str = 'cs_rank_elg_buy_ df.drop(columns=cols_to_drop, inplace=True) print(f"Finished {factor_name}.") + # Category 2: Cross-Sectional Cost Basis & PnL Status -def cs_rank_rel_profit_margin(df: pd.DataFrame, factor_name: str = 'cs_rank_rel_profit_margin'): +def cs_rank_rel_profit_margin( + df: pd.DataFrame, factor_name: str = "cs_rank_rel_profit_margin" +): """ Factor 5: 相对盈利幅度排序 (In-place). WARNING: Modifies df in-place. """ print(f"Calculating {factor_name}...") - _temp_cols = ['_profit_margin'] + _temp_cols = ["_profit_margin"] try: - df['_profit_margin'] = _safe_divide((df['close'] - df['weight_avg']), df['close']) - df[factor_name] = df.groupby('trade_date')['_profit_margin'].rank(pct=True) + df["_profit_margin"] = _safe_divide( + (df["close"] - df["weight_avg"]), df["close"] + ) + df[factor_name] = df.groupby("trade_date")["_profit_margin"].rank(pct=True) except KeyError as e: print(f"Error calculating {factor_name}: Missing column {e}. Assigning NaN.") df[factor_name] = np.nan except Exception as e: - print(f"An unexpected error occurred calculating {factor_name}: {e}. Assigning NaN.") + print( + f"An unexpected error occurred calculating {factor_name}: {e}. Assigning NaN." + ) df[factor_name] = np.nan finally: cols_to_drop = [col for col in _temp_cols if col in df.columns] @@ -1204,21 +1615,26 @@ def cs_rank_rel_profit_margin(df: pd.DataFrame, factor_name: str = 'cs_rank_rel_ df.drop(columns=cols_to_drop, inplace=True) print(f"Finished {factor_name}.") -def cs_rank_cost_breadth(df: pd.DataFrame, factor_name: str = 'cs_rank_cost_breadth'): + +def cs_rank_cost_breadth(df: pd.DataFrame, factor_name: str = "cs_rank_cost_breadth"): """ Factor 6: 成本分布宽度截面排序 (In-place). WARNING: Modifies df in-place. """ print(f"Calculating {factor_name}...") - _temp_cols = ['_cost_breadth'] + _temp_cols = ["_cost_breadth"] try: - df['_cost_breadth'] = _safe_divide((df['cost_85pct'] - df['cost_15pct']), df['weight_avg']) - df[factor_name] = df.groupby('trade_date')['_cost_breadth'].rank(pct=True) + df["_cost_breadth"] = _safe_divide( + (df["cost_85pct"] - df["cost_15pct"]), df["weight_avg"] + ) + df[factor_name] = df.groupby("trade_date")["_cost_breadth"].rank(pct=True) except KeyError as e: print(f"Error calculating {factor_name}: Missing column {e}. Assigning NaN.") df[factor_name] = np.nan except Exception as e: - print(f"An unexpected error occurred calculating {factor_name}: {e}. Assigning NaN.") + print( + f"An unexpected error occurred calculating {factor_name}: {e}. Assigning NaN." + ) df[factor_name] = np.nan finally: cols_to_drop = [col for col in _temp_cols if col in df.columns] @@ -1226,21 +1642,26 @@ def cs_rank_cost_breadth(df: pd.DataFrame, factor_name: str = 'cs_rank_cost_brea df.drop(columns=cols_to_drop, inplace=True) print(f"Finished {factor_name}.") -def cs_rank_dist_to_upper_cost(df: pd.DataFrame, factor_name: str = 'cs_rank_dist_to_upper_cost'): + +def cs_rank_dist_to_upper_cost( + df: pd.DataFrame, factor_name: str = "cs_rank_dist_to_upper_cost" +): """ Factor 7: 股价相对高成本位距离排序 (In-place). WARNING: Modifies df in-place. """ print(f"Calculating {factor_name}...") - _temp_cols = ['_dist_to_95'] + _temp_cols = ["_dist_to_95"] try: - df['_dist_to_95'] = _safe_divide(df['close'], df['cost_95pct']) - df[factor_name] = df.groupby('trade_date')['_dist_to_95'].rank(pct=True) + df["_dist_to_95"] = _safe_divide(df["close"], df["cost_95pct"]) + df[factor_name] = df.groupby("trade_date")["_dist_to_95"].rank(pct=True) except KeyError as e: print(f"Error calculating {factor_name}: Missing column {e}. Assigning NaN.") df[factor_name] = np.nan except Exception as e: - print(f"An unexpected error occurred calculating {factor_name}: {e}. Assigning NaN.") + print( + f"An unexpected error occurred calculating {factor_name}: {e}. Assigning NaN." + ) df[factor_name] = np.nan finally: cols_to_drop = [col for col in _temp_cols if col in df.columns] @@ -1248,40 +1669,47 @@ def cs_rank_dist_to_upper_cost(df: pd.DataFrame, factor_name: str = 'cs_rank_dis df.drop(columns=cols_to_drop, inplace=True) print(f"Finished {factor_name}.") -def cs_rank_winner_rate(df: pd.DataFrame, factor_name: str = 'cs_rank_winner_rate'): + +def cs_rank_winner_rate(df: pd.DataFrame, factor_name: str = "cs_rank_winner_rate"): """ Factor 8: 获利盘比例截面排序 (In-place). WARNING: Modifies df in-place. """ print(f"Calculating {factor_name}...") try: - df[factor_name] = df.groupby('trade_date')['winner_rate'].rank(pct=True) + df[factor_name] = df.groupby("trade_date")["winner_rate"].rank(pct=True) except KeyError as e: print(f"Error calculating {factor_name}: Missing column {e}. Assigning NaN.") df[factor_name] = np.nan except Exception as e: - print(f"An unexpected error occurred calculating {factor_name}: {e}. Assigning NaN.") + print( + f"An unexpected error occurred calculating {factor_name}: {e}. Assigning NaN." + ) df[factor_name] = np.nan finally: print(f"Finished {factor_name}.") # Category 3: Cross-Sectional Price Action & Volatility -def cs_rank_intraday_range(df: pd.DataFrame, factor_name: str = 'cs_rank_intraday_range'): +def cs_rank_intraday_range( + df: pd.DataFrame, factor_name: str = "cs_rank_intraday_range" +): """ Factor 9: 日内相对振幅排序 (In-place). WARNING: Modifies df in-place. """ print(f"Calculating {factor_name}...") - _temp_cols = ['_norm_range'] + _temp_cols = ["_norm_range"] try: - df['_norm_range'] = _safe_divide((df['high'] - df['low']), df['close']) - df[factor_name] = df.groupby('trade_date')['_norm_range'].rank(pct=True) + df["_norm_range"] = _safe_divide((df["high"] - df["low"]), df["close"]) + df[factor_name] = df.groupby("trade_date")["_norm_range"].rank(pct=True) except KeyError as e: print(f"Error calculating {factor_name}: Missing column {e}. Assigning NaN.") df[factor_name] = np.nan except Exception as e: - print(f"An unexpected error occurred calculating {factor_name}: {e}. Assigning NaN.") + print( + f"An unexpected error occurred calculating {factor_name}: {e}. Assigning NaN." + ) df[factor_name] = np.nan finally: cols_to_drop = [col for col in _temp_cols if col in df.columns] @@ -1289,21 +1717,28 @@ def cs_rank_intraday_range(df: pd.DataFrame, factor_name: str = 'cs_rank_intrada df.drop(columns=cols_to_drop, inplace=True) print(f"Finished {factor_name}.") -def cs_rank_close_pos_in_range(df: pd.DataFrame, factor_name: str = 'cs_rank_close_pos_in_range'): + +def cs_rank_close_pos_in_range( + df: pd.DataFrame, factor_name: str = "cs_rank_close_pos_in_range" +): """ Factor 10: 收盘价在日内位置排序 (In-place). WARNING: Modifies df in-place. """ print(f"Calculating {factor_name}...") - _temp_cols = ['_close_pos'] + _temp_cols = ["_close_pos"] try: - df['_close_pos'] = _safe_divide((df['close'] - df['low']), (df['high'] - df['low']), default_val=0.5) # Assign 0.5 if high==low - df[factor_name] = df.groupby('trade_date')['_close_pos'].rank(pct=True) + df["_close_pos"] = _safe_divide( + (df["close"] - df["low"]), (df["high"] - df["low"]), default_val=0.5 + ) # Assign 0.5 if high==low + df[factor_name] = df.groupby("trade_date")["_close_pos"].rank(pct=True) except KeyError as e: print(f"Error calculating {factor_name}: Missing column {e}. Assigning NaN.") df[factor_name] = np.nan except Exception as e: - print(f"An unexpected error occurred calculating {factor_name}: {e}. Assigning NaN.") + print( + f"An unexpected error occurred calculating {factor_name}: {e}. Assigning NaN." + ) df[factor_name] = np.nan finally: cols_to_drop = [col for col in _temp_cols if col in df.columns] @@ -1311,25 +1746,32 @@ def cs_rank_close_pos_in_range(df: pd.DataFrame, factor_name: str = 'cs_rank_clo df.drop(columns=cols_to_drop, inplace=True) print(f"Finished {factor_name}.") -def cs_rank_opening_gap(df: pd.DataFrame, factor_name: str = 'cs_rank_opening_gap'): + +def cs_rank_opening_gap(df: pd.DataFrame, factor_name: str = "cs_rank_opening_gap"): """ Factor 11: 开盘相对跳空幅度排序 (In-place). Needs pre_close. WARNING: Modifies df in-place. Assumes 'pre_close' exists. """ print(f"Calculating {factor_name}...") - _temp_cols = ['_gap'] - if 'pre_close' not in df.columns: - print(f"Error calculating {factor_name}: Missing 'pre_close' column. Assigning NaN.") + _temp_cols = ["_gap"] + if "pre_close" not in df.columns: + print( + f"Error calculating {factor_name}: Missing 'pre_close' column. Assigning NaN." + ) df[factor_name] = np.nan return try: - df['_gap'] = _safe_divide(df['open'], df['pre_close']) - 1 - df[factor_name] = df.groupby('trade_date')['_gap'].rank(pct=True) + df["_gap"] = _safe_divide(df["open"], df["pre_close"]) - 1 + df[factor_name] = df.groupby("trade_date")["_gap"].rank(pct=True) except KeyError as e: - print(f"Error calculating {factor_name}: Missing column {e} (likely 'open'). Assigning NaN.") + print( + f"Error calculating {factor_name}: Missing column {e} (likely 'open'). Assigning NaN." + ) df[factor_name] = np.nan except Exception as e: - print(f"An unexpected error occurred calculating {factor_name}: {e}. Assigning NaN.") + print( + f"An unexpected error occurred calculating {factor_name}: {e}. Assigning NaN." + ) df[factor_name] = np.nan finally: cols_to_drop = [col for col in _temp_cols if col in df.columns] @@ -1337,21 +1779,30 @@ def cs_rank_opening_gap(df: pd.DataFrame, factor_name: str = 'cs_rank_opening_ga df.drop(columns=cols_to_drop, inplace=True) print(f"Finished {factor_name}.") -def cs_rank_pos_in_hist_range(df: pd.DataFrame, factor_name: str = 'cs_rank_pos_in_hist_range'): + +def cs_rank_pos_in_hist_range( + df: pd.DataFrame, factor_name: str = "cs_rank_pos_in_hist_range" +): """ Factor 12: 相对历史波动位置排序 (In-place). WARNING: Modifies df in-place. """ print(f"Calculating {factor_name}...") - _temp_cols = ['_hist_pos'] + _temp_cols = ["_hist_pos"] try: - df['_hist_pos'] = _safe_divide((df['close'] - df['his_low']), (df['his_high'] - df['his_low'])).clip(0, 1) # Clip to 0-1 range - df[factor_name] = df.groupby('trade_date')['_hist_pos'].rank(pct=True) + df["_hist_pos"] = _safe_divide( + (df["close"] - df["his_low"]), (df["his_high"] - df["his_low"]) + ).clip( + 0, 1 + ) # Clip to 0-1 range + df[factor_name] = df.groupby("trade_date")["_hist_pos"].rank(pct=True) except KeyError as e: print(f"Error calculating {factor_name}: Missing column {e}. Assigning NaN.") df[factor_name] = np.nan except Exception as e: - print(f"An unexpected error occurred calculating {factor_name}: {e}. Assigning NaN.") + print( + f"An unexpected error occurred calculating {factor_name}: {e}. Assigning NaN." + ) df[factor_name] = np.nan finally: cols_to_drop = [col for col in _temp_cols if col in df.columns] @@ -1361,23 +1812,29 @@ def cs_rank_pos_in_hist_range(df: pd.DataFrame, factor_name: str = 'cs_rank_pos_ # Category 4: Cross-Sectional Interaction & Composite Indicators -def cs_rank_vol_x_profit_margin(df: pd.DataFrame, factor_name: str = 'cs_rank_vol_x_profit_margin'): +def cs_rank_vol_x_profit_margin( + df: pd.DataFrame, factor_name: str = "cs_rank_vol_x_profit_margin" +): """ Factor 13: 波动率与盈亏状态交互排序 (In-place). WARNING: Modifies df in-place. """ print(f"Calculating {factor_name}...") - _temp_cols = ['_daily_vol', '_profit_margin', '_interaction'] + _temp_cols = ["_daily_vol", "_profit_margin", "_interaction"] try: - df['_daily_vol'] = abs(df['pct_chg']) - df['_profit_margin'] = _safe_divide((df['close'] - df['weight_avg']), df['close']) - df['_interaction'] = df['_daily_vol'] * df['_profit_margin'] - df[factor_name] = df.groupby('trade_date')['_interaction'].rank(pct=True) + df["_daily_vol"] = abs(df["pct_chg"]) + df["_profit_margin"] = _safe_divide( + (df["close"] - df["weight_avg"]), df["close"] + ) + df["_interaction"] = df["_daily_vol"] * df["_profit_margin"] + df[factor_name] = df.groupby("trade_date")["_interaction"].rank(pct=True) except KeyError as e: print(f"Error calculating {factor_name}: Missing column {e}. Assigning NaN.") df[factor_name] = np.nan except Exception as e: - print(f"An unexpected error occurred calculating {factor_name}: {e}. Assigning NaN.") + print( + f"An unexpected error occurred calculating {factor_name}: {e}. Assigning NaN." + ) df[factor_name] = np.nan finally: cols_to_drop = [col for col in _temp_cols if col in df.columns] @@ -1385,22 +1842,32 @@ def cs_rank_vol_x_profit_margin(df: pd.DataFrame, factor_name: str = 'cs_rank_vo df.drop(columns=cols_to_drop, inplace=True) print(f"Finished {factor_name}.") -def cs_rank_lg_flow_price_concordance(df: pd.DataFrame, factor_name: str = 'cs_rank_lg_flow_price_concordance'): + +def cs_rank_lg_flow_price_concordance( + df: pd.DataFrame, factor_name: str = "cs_rank_lg_flow_price_concordance" +): """ Factor 14: 大单流向与价格变动一致性排序 (In-place). WARNING: Modifies df in-place. """ print(f"Calculating {factor_name}...") - _temp_cols = ['_net_lg_flow_vol', '_concordance'] + _temp_cols = ["_net_lg_flow_vol", "_concordance"] try: - df['_net_lg_flow_vol'] = df['buy_lg_vol'] + df['buy_elg_vol'] - df['sell_lg_vol'] - df['sell_elg_vol'] - df['_concordance'] = df['_net_lg_flow_vol'] * df['pct_chg'] - df[factor_name] = df.groupby('trade_date')['_concordance'].rank(pct=True) + df["_net_lg_flow_vol"] = ( + df["buy_lg_vol"] + + df["buy_elg_vol"] + - df["sell_lg_vol"] + - df["sell_elg_vol"] + ) + df["_concordance"] = df["_net_lg_flow_vol"] * df["pct_chg"] + df[factor_name] = df.groupby("trade_date")["_concordance"].rank(pct=True) except KeyError as e: print(f"Error calculating {factor_name}: Missing column {e}. Assigning NaN.") df[factor_name] = np.nan except Exception as e: - print(f"An unexpected error occurred calculating {factor_name}: {e}. Assigning NaN.") + print( + f"An unexpected error occurred calculating {factor_name}: {e}. Assigning NaN." + ) df[factor_name] = np.nan finally: cols_to_drop = [col for col in _temp_cols if col in df.columns] @@ -1408,21 +1875,30 @@ def cs_rank_lg_flow_price_concordance(df: pd.DataFrame, factor_name: str = 'cs_r df.drop(columns=cols_to_drop, inplace=True) print(f"Finished {factor_name}.") -def cs_rank_turnover_per_winner(df: pd.DataFrame, factor_name: str = 'cs_rank_turnover_per_winner'): + +def cs_rank_turnover_per_winner( + df: pd.DataFrame, factor_name: str = "cs_rank_turnover_per_winner" +): """ Factor 15: 高换手获利盘占比排序 (In-place). WARNING: Modifies df in-place. """ print(f"Calculating {factor_name}...") - _temp_cols = ['_turnover_per_winner'] + _temp_cols = ["_turnover_per_winner"] try: - df['_turnover_per_winner'] = _safe_divide(df['turnover_rate'], df['winner_rate']) - df[factor_name] = df.groupby('trade_date')['_turnover_per_winner'].rank(pct=True) + df["_turnover_per_winner"] = _safe_divide( + df["turnover_rate"], df["winner_rate"] + ) + df[factor_name] = df.groupby("trade_date")["_turnover_per_winner"].rank( + pct=True + ) except KeyError as e: print(f"Error calculating {factor_name}: Missing column {e}. Assigning NaN.") df[factor_name] = np.nan except Exception as e: - print(f"An unexpected error occurred calculating {factor_name}: {e}. Assigning NaN.") + print( + f"An unexpected error occurred calculating {factor_name}: {e}. Assigning NaN." + ) df[factor_name] = np.nan finally: cols_to_drop = [col for col in _temp_cols if col in df.columns] @@ -1430,7 +1906,10 @@ def cs_rank_turnover_per_winner(df: pd.DataFrame, factor_name: str = 'cs_rank_tu df.drop(columns=cols_to_drop, inplace=True) print(f"Finished {factor_name}.") -def cs_rank_ind_cap_neutral_pe(df: pd.DataFrame, factor_name: str = 'cs_rank_ind_cap_neutral_pe'): + +def cs_rank_ind_cap_neutral_pe( + df: pd.DataFrame, factor_name: str = "cs_rank_ind_cap_neutral_pe" +): """ Factor 16: 行业市值中性化PE排序 (Placeholder). Requires statsmodels and complex cross-sectional regression implementation. @@ -1440,7 +1919,8 @@ def cs_rank_ind_cap_neutral_pe(df: pd.DataFrame, factor_name: str = 'cs_rank_ind df[factor_name] = np.nan print(f"Finished {factor_name} (Placeholder).") -def cs_rank_volume_ratio(df: pd.DataFrame, factor_name: str = 'cs_rank_volume_ratio'): + +def cs_rank_volume_ratio(df: pd.DataFrame, factor_name: str = "cs_rank_volume_ratio"): """ Factor 17: 成交量相对强度排序 (In-place). WARNING: Modifies df in-place. @@ -1448,31 +1928,38 @@ def cs_rank_volume_ratio(df: pd.DataFrame, factor_name: str = 'cs_rank_volume_ra print(f"Calculating {factor_name}...") try: # Assumes 'volume_ratio' (量比) column already exists - df[factor_name] = df.groupby('trade_date')['volume_ratio'].rank(pct=True) + df[factor_name] = df.groupby("trade_date")["volume_ratio"].rank(pct=True) except KeyError as e: print(f"Error calculating {factor_name}: Missing column {e}. Assigning NaN.") df[factor_name] = np.nan except Exception as e: - print(f"An unexpected error occurred calculating {factor_name}: {e}. Assigning NaN.") + print( + f"An unexpected error occurred calculating {factor_name}: {e}. Assigning NaN." + ) df[factor_name] = np.nan finally: print(f"Finished {factor_name}.") -def cs_rank_elg_buy_sell_sm_ratio(df: pd.DataFrame, factor_name: str = 'cs_rank_elg_buy_sell_sm_ratio'): + +def cs_rank_elg_buy_sell_sm_ratio( + df: pd.DataFrame, factor_name: str = "cs_rank_elg_buy_sell_sm_ratio" +): """ Factor 18: 超大单买入与小单卖出比排序 (In-place). WARNING: Modifies df in-place. """ print(f"Calculating {factor_name}...") - _temp_cols = ['_ratio'] + _temp_cols = ["_ratio"] try: - df['_ratio'] = _safe_divide(df['buy_elg_vol'], df['sell_sm_vol']) - df[factor_name] = df.groupby('trade_date')['_ratio'].rank(pct=True) + df["_ratio"] = _safe_divide(df["buy_elg_vol"], df["sell_sm_vol"]) + df[factor_name] = df.groupby("trade_date")["_ratio"].rank(pct=True) except KeyError as e: print(f"Error calculating {factor_name}: Missing column {e}. Assigning NaN.") df[factor_name] = np.nan except Exception as e: - print(f"An unexpected error occurred calculating {factor_name}: {e}. Assigning NaN.") + print( + f"An unexpected error occurred calculating {factor_name}: {e}. Assigning NaN." + ) df[factor_name] = np.nan finally: cols_to_drop = [col for col in _temp_cols if col in df.columns] @@ -1480,26 +1967,33 @@ def cs_rank_elg_buy_sell_sm_ratio(df: pd.DataFrame, factor_name: str = 'cs_rank_ df.drop(columns=cols_to_drop, inplace=True) print(f"Finished {factor_name}.") -def cs_rank_cost_dist_vol_ratio(df: pd.DataFrame, factor_name: str = 'cs_rank_cost_dist_vol_ratio'): + +def cs_rank_cost_dist_vol_ratio( + df: pd.DataFrame, factor_name: str = "cs_rank_cost_dist_vol_ratio" +): """ Factor 19: 价格偏离成本程度与成交量放大交互排序 (In-place). WARNING: Modifies df in-place. """ print(f"Calculating {factor_name}...") - _temp_cols = ['_dist', '_interaction'] - if 'volume_ratio' not in df.columns: - print(f"Error calculating {factor_name}: Missing 'volume_ratio' column. Assigning NaN.") - df[factor_name] = np.nan - return + _temp_cols = ["_dist", "_interaction"] + if "volume_ratio" not in df.columns: + print( + f"Error calculating {factor_name}: Missing 'volume_ratio' column. Assigning NaN." + ) + df[factor_name] = np.nan + return try: - df['_dist'] = abs(df['close'] - df['weight_avg']) / (df['close'] + epsilon) - df['_interaction'] = df['_dist'] * df['volume_ratio'] - df[factor_name] = df.groupby('trade_date')['_interaction'].rank(pct=True) + df["_dist"] = abs(df["close"] - df["weight_avg"]) / (df["close"] + epsilon) + df["_interaction"] = df["_dist"] * df["volume_ratio"] + df[factor_name] = df.groupby("trade_date")["_interaction"].rank(pct=True) except KeyError as e: print(f"Error calculating {factor_name}: Missing column {e}. Assigning NaN.") df[factor_name] = np.nan except Exception as e: - print(f"An unexpected error occurred calculating {factor_name}: {e}. Assigning NaN.") + print( + f"An unexpected error occurred calculating {factor_name}: {e}. Assigning NaN." + ) df[factor_name] = np.nan finally: cols_to_drop = [col for col in _temp_cols if col in df.columns] @@ -1507,22 +2001,25 @@ def cs_rank_cost_dist_vol_ratio(df: pd.DataFrame, factor_name: str = 'cs_rank_co df.drop(columns=cols_to_drop, inplace=True) print(f"Finished {factor_name}.") -def cs_rank_size(df: pd.DataFrame, factor_name: str = 'cs_rank_size'): + +def cs_rank_size(df: pd.DataFrame, factor_name: str = "cs_rank_size"): """ Factor 20: 市值因子暴露度排序 (Log of circ_mv) (In-place). WARNING: Modifies df in-place. """ print(f"Calculating {factor_name}...") - _temp_cols = ['_log_circ_mv'] + _temp_cols = ["_log_circ_mv"] try: # Use log1p for stability if circ_mv can be zero or very small - df['_log_circ_mv'] = np.log1p(df['circ_mv']) - df[factor_name] = df.groupby('trade_date')['_log_circ_mv'].rank(pct=True) + df["_log_circ_mv"] = np.log1p(df["circ_mv"]) + df[factor_name] = df.groupby("trade_date")["_log_circ_mv"].rank(pct=True) except KeyError as e: print(f"Error calculating {factor_name}: Missing column {e}. Assigning NaN.") df[factor_name] = np.nan except Exception as e: - print(f"An unexpected error occurred calculating {factor_name}: {e}. Assigning NaN.") + print( + f"An unexpected error occurred calculating {factor_name}: {e}. Assigning NaN." + ) df[factor_name] = np.nan finally: cols_to_drop = [col for col in _temp_cols if col in df.columns] @@ -1530,3 +2027,523 @@ def cs_rank_size(df: pd.DataFrame, factor_name: str = 'cs_rank_size'): df.drop(columns=cols_to_drop, inplace=True) print(f"Finished {factor_name}.") + +def add_financial_factor( + main_df: pd.DataFrame, + financial_df: pd.DataFrame, + ts_code_col: str = "ts_code", + trade_date_col: str = "trade_date", + ann_date_col: str = "ann_date", # 公告日期 + f_ann_date_col: str = "f_ann_date", # 实际公告日期 (优先使用) + factor_value_col: str = "undist_profit_ps", # 财务指标值所在的列 + new_factor_col_name: str = "retained_profit_per_share", # 新因子列的名称 +) -> pd.DataFrame: + """ + 将财务指标数据(如每股未分配利润)作为因子添加到主时间序列 DataFrame 中。 + + 使用 merge_asof 根据股票代码和公告日期,将最新的财务指标值匹配到每个交易日。 + + Args: + main_df: 包含时间序列交易数据的主 DataFrame (至少包含 ts_code_col 和 trade_date_col)。 + financial_df: 包含财务指标数据的 DataFrame (至少包含 ts_code_col, + ann_date_col 或 f_ann_date_col, 以及 factor_value_col)。 + ts_code_col: 股票代码列在两个 DataFrame 中的名称。默认为 'ts_code'。 + trade_date_col: 交易日期列在 main_df 中的名称。默认为 'trade_date'。 + ann_date_col: 公告日期列在 financial_df 中的名称(作为 f_ann_date_col 的备选)。默认为 'ann_date'。 + f_ann_date_col: 实际公告日期列在 financial_df 中的名称(优先使用)。默认为 'f_ann_date'。 + factor_value_col: 财务指标值(即要添加的因子值)在 financial_df 中的列名。默认为 'undistr_pft_ps'。 + new_factor_col_name: 添加到 main_df 中的新因子列的名称。默认为 'retained_profit_per_share'。 + + Returns: + 包含新因子列的 main_df DataFrame。 + """ + # --- 数据校验 --- + required_main_cols = [ts_code_col, trade_date_col] + if not all(col in main_df.columns for col in required_main_cols): + raise ValueError(f"主 DataFrame 必须包含列: {required_main_cols}") + + required_financial_cols = [ts_code_col, factor_value_col] + if f_ann_date_col and f_ann_date_col in financial_df.columns: + effective_date_col = f_ann_date_col + elif ann_date_col and ann_date_col in financial_df.columns: + effective_date_col = ann_date_col + else: + raise ValueError( + f"财务指标 DataFrame 必须包含列 '{f_ann_date_col}' 或 '{ann_date_col}' 作为数据生效日期" + ) + required_financial_cols.append(effective_date_col) + + if not all(col in financial_df.columns for col in required_financial_cols): + raise ValueError(f"财务指标 DataFrame 必须包含列: {required_financial_cols}") + + # --- 数据预处理 --- + + # 复制 main_df 避免修改原始 DataFrame + main_df = main_df.copy() + + # 确保日期列是 datetime 类型 + main_df[trade_date_col] = pd.to_datetime(main_df[trade_date_col]) + financial_df[effective_date_col] = pd.to_datetime(financial_df[effective_date_col]) + + # 确保股票代码是字符串类型,以便合并时类型一致 + main_df[ts_code_col] = main_df[ts_code_col].astype(str) + financial_df[ts_code_col] = financial_df[ts_code_col].astype(str) + + # 选取 financial_df 中需要合并的列,并为 merge_asof 准备日期列 + financial_data_subset = financial_df[ + [ts_code_col, effective_date_col, factor_value_col] + ].copy() + # 重命名 effective_date_col 为一个统一的名称,方便 merge_asof + # merge_asof 需要 right_on 参数,使用原始列名即可,不需要重命名 + + # 为了使用 merge_asof,两个 DataFrame 都必须按合并键 (ts_code) 和日期列排序 + main_df = main_df.sort_values(by=[ts_code_col, trade_date_col]) + financial_data_subset = financial_data_subset.sort_values( + by=[ts_code_col, effective_date_col] + ) + + # --- 使用 merge_asof 计算因子 --- + + # 执行 as-of 合并 + df_with_factor = pd.merge_asof( + main_df, + financial_data_subset, + left_on=trade_date_col, # main_df 中用于匹配的日期列 + right_on=effective_date_col, # financial_data_subset 中用于匹配的日期列 + by=ts_code_col, # 按股票代码进行分组匹配 + direction="backward", # 匹配方向:向后查找(即找 <= trade_date 的最近数据) + # 如果您需要容忍日期上的微小差异,可以使用 tolerance 参数 + # tolerance=pd.Timedelta('1 days') + ) + + # 清理:移除用于匹配的 effective_date_col,以及原始 financial_df 中可能带来的其他重复列 + # merge_asof 默认不会带上 right DataFrame 中用于合并的 key 列,但如果名称不同可能会带上 + # 这里的清理主要针对 effective_date_col + if ( + effective_date_col in df_with_factor.columns + and effective_date_col != trade_date_col + ): + # 确保不是trade_date_col本身被意外重命名 + df_with_factor = df_with_factor.drop(columns=[effective_date_col]) + + # 重命名新加入的因子列 + # merge_asof 会将 factor_value_col 直接带入,名称不变 + # 我们将其重命名为 new_factor_col_name + if factor_value_col != new_factor_col_name: + if factor_value_col in df_with_factor.columns: + df_with_factor = df_with_factor.rename( + columns={factor_value_col: new_factor_col_name} + ) + else: + print( + f"警告: 合并后未找到列 '{factor_value_col}',无法重命名为 '{new_factor_col_name}'。" + ) + + # --- 返回结果 --- + return df_with_factor + + +# --- ARBR 因子计算函数 --- + + +def calculate_arbr(df: pd.DataFrame, N: int = 26): + """ + 计算 AR 和 BR 指标,并将结果原地添加到 DataFrame 中。 + + Args: + df (pd.DataFrame): 输入的 DataFrame,必须包含 'ts_code', 'trade_date', + 'open', 'high', 'low', 'close' 列。 + 建议预先按 ts_code, trade_date 排序。 + N (int): 计算 AR, BR 的窗口期,默认为 26。 + + WARNING: 此函数会原地修改输入的 DataFrame 'df'。 + """ + ar_col_name = 'AR' + br_col_name = 'BR' + print(f"开始计算因子: {ar_col_name}, {br_col_name} (原地修改)...") + + _temp_cols = [] # 记录中间列 + + try: + # 0. 确保排序 (虽然 groupby 会处理,但有序更保险) + # df.sort_values(['ts_code', 'trade_date'], inplace=True) # 如果不确定df已排序 + + # 1. 计算所需中间值 + df["_h_minus_o"] = df["high"] - df["open"] + df["_o_minus_l"] = df["open"] - df["low"] + df["_prev_close"] = df.groupby("ts_code")["close"].shift(1) + # BR 计算需要 max(0, H-PC) 和 max(0, PC-L) + df["_h_minus_pc_pos"] = np.maximum(0, df["high"] - df["_prev_close"]) + df["_pc_minus_l_pos"] = np.maximum(0, df["_prev_close"] - df["low"]) + _temp_cols.extend( + [ + "_h_minus_o", + "_o_minus_l", + "_prev_close", + "_h_minus_pc_pos", + "_pc_minus_l_pos", + ] + ) + + # 2. 计算滚动和 + # 使用 min_periods=N 确保有完整的窗口数据才计算,也可以用 N//2 等 + min_p = N # 严格要求 N 天数据 + grouped = df.groupby("ts_code") + + sum_h_minus_o = ( + grouped["_h_minus_o"] + .rolling(N, min_periods=min_p) + .sum() + .reset_index(level=0, drop=True) + ) + sum_o_minus_l = ( + grouped["_o_minus_l"] + .rolling(N, min_periods=min_p) + .sum() + .reset_index(level=0, drop=True) + ) + sum_h_minus_pc_pos = ( + grouped["_h_minus_pc_pos"] + .rolling(N, min_periods=min_p) + .sum() + .reset_index(level=0, drop=True) + ) + sum_pc_minus_l_pos = ( + grouped["_pc_minus_l_pos"] + .rolling(N, min_periods=min_p) + .sum() + .reset_index(level=0, drop=True) + ) + + # 3. 计算 AR 和 BR + df[ar_col_name] = ( + _safe_divide(sum_h_minus_o, sum_o_minus_l, default_val=np.nan) * 100 + ) # AR 通常乘以 100 + df[br_col_name] = ( + _safe_divide(sum_h_minus_pc_pos, sum_pc_minus_l_pos, default_val=np.nan) + * 100 + ) # BR 通常乘以 100 + df[f'{ar_col_name}_{br_col_name}'] = df[ar_col_name] - df[br_col_name] + + print(f"因子 {ar_col_name}, {br_col_name} 计算成功。") + + except KeyError as e: + print(f"错误: 计算 ARBR 时缺少必需的列: {e}") + print(f"将为因子 {ar_col_name}, {br_col_name} 填充 NaN。") + if ar_col_name not in df.columns: + df[ar_col_name] = np.nan + if br_col_name not in df.columns: + df[br_col_name] = np.nan + except Exception as e: + print(f"错误: 计算 ARBR 时发生意外错误: {e}") + print(f"将为因子 {ar_col_name}, {br_col_name} 填充 NaN。") + if ar_col_name not in df.columns: + df[ar_col_name] = np.nan + if br_col_name not in df.columns: + df[br_col_name] = np.nan + finally: + # 4. 清理中间列 + cols_to_drop = [col for col in _temp_cols if col in df.columns] + if cols_to_drop: + df.drop(columns=cols_to_drop, inplace=True) + print(f"因子 {ar_col_name}, {br_col_name} 计算流程结束。") + +def add_financial_factor( + main_df: pd.DataFrame, + financial_df: pd.DataFrame, + factor_value_col: str, # 财务指标值所在的列 + ts_code_col: str = 'ts_code', + trade_date_col: str = 'trade_date', + ann_date_col: str = 'ann_date', # 公告日期 + f_ann_date_col: str = 'f_ann_date', # 实际公告日期 (优先使用) +) -> pd.DataFrame: + """ + 将财务指标数据(如每股未分配利润)作为因子添加到主时间序列 DataFrame 中。 + + 使用 merge_asof 根据股票代码和公告日期,将最新的财务指标值匹配到每个交易日。 + + Args: + main_df: 包含时间序列交易数据的主 DataFrame (至少包含 ts_code_col 和 trade_date_col)。 + financial_df: 包含财务指标数据的 DataFrame (至少包含 ts_code_col, + ann_date_col 或 f_ann_date_col, 以及 factor_value_col)。 + ts_code_col: 股票代码列在两个 DataFrame 中的名称。默认为 'ts_code'。 + trade_date_col: 交易日期列在 main_df 中的名称。默认为 'trade_date'。 + ann_date_col: 公告日期列在 financial_df 中的名称(作为 f_ann_date_col 的备选)。默认为 'ann_date'。 + f_ann_date_col: 实际公告日期列在 financial_df 中的名称(优先使用)。默认为 'f_ann_date'。 + factor_value_col: 财务指标值(即要添加的因子值)在 financial_df 中的列名。默认为 'undistr_pft_ps'。 + new_factor_col_name: 添加到 main_df 中的新因子列的名称。默认为 'undist_profit_ps'。 + + Returns: + 包含新因子列的 main_df DataFrame。 + """ + if factor_value_col in main_df.columns: + return main_df + new_factor_col_name = factor_value_col + # --- 数据校验 --- + required_main_cols = [ts_code_col, trade_date_col] + if not all(col in main_df.columns for col in required_main_cols): + raise ValueError(f"主 DataFrame 必须包含列: {required_main_cols}") + + required_financial_cols = [ts_code_col, factor_value_col] + if f_ann_date_col and f_ann_date_col in financial_df.columns: + effective_date_col = f_ann_date_col + print(f"使用 '{f_ann_date_col}' 作为财务数据生效日期。") + elif ann_date_col and ann_date_col in financial_df.columns: + effective_date_col = ann_date_col + print(f"使用 '{ann_date_col}' 作为财务数据生效日期。") + else: + raise ValueError(f"财务指标 DataFrame 必须包含列 '{f_ann_date_col}' 或 '{ann_date_col}' 作为数据生效日期") + required_financial_cols.append(effective_date_col) + + if not all(col in financial_df.columns for col in required_financial_cols): + raise ValueError(f"财务指标 DataFrame 必须包含列: {required_financial_cols}") + + # --- 数据准备和清理 --- + # 确保日期列是 datetime 类型 + # 使用 .copy() 避免 SettingWithCopyWarning + main_df = main_df.copy() + financial_df = financial_df.copy() + main_df[trade_date_col] = pd.to_datetime(main_df[trade_date_col], errors='coerce') + financial_df[effective_date_col] = pd.to_datetime(financial_df[effective_date_col], errors='coerce') + + # 确保股票代码是字符串类型 + main_df[ts_code_col] = main_df[ts_code_col].astype(str) + financial_df[ts_code_col] = financial_df[ts_code_col].astype(str) + + # 选取 financial_df 中需要合并的列 + financial_data_subset = financial_df[[ts_code_col, effective_date_col, factor_value_col]].copy() + + # *** 新增:处理右表合并键中的空值 *** + initial_rows_financial = len(financial_data_subset) + financial_data_subset = financial_data_subset.dropna(subset=[ts_code_col, effective_date_col]) + rows_dropped = initial_rows_financial - len(financial_data_subset) + if rows_dropped > 0: + print(f"警告: 从 financial_data_subset 中移除了 {rows_dropped} 行,因为其 '{ts_code_col}' 或 '{effective_date_col}' 列存在空值。") + + if financial_data_subset.empty: + print(f"警告: 清理空值后 financial_data_subset 为空,无法添加因子 '{new_factor_col_name}'。将填充 NaN。") + main_df[new_factor_col_name] = np.nan + return main_df + + + # *** 修改:修正排序顺序以满足 merge_asof 要求 *** + # 先按 ts_code 排序,再按日期排序 + # main_df = main_df.sort_values(by=[ts_code_col, trade_date_col]) + # financial_data_subset = financial_data_subset.sort_values(by=[ts_code_col, effective_date_col]) + main_df = main_df.sort_values(by=[trade_date_col, ts_code_col]) + financial_data_subset = financial_data_subset.sort_values(by=[effective_date_col, ts_code_col]) + + # --- 使用 merge_asof 计算因子 --- + try: + df_with_factor = pd.merge_asof( + main_df, + financial_data_subset, + left_on=trade_date_col, + right_on=effective_date_col, + by=ts_code_col, + direction='backward' + ) + except Exception as e: + print(f"merge_asof 执行失败: {e}") + # 根据需要决定如何处理错误,这里填充 NaN + main_df[new_factor_col_name] = np.nan + return main_df + + + # --- 清理与重命名 --- + # 移除右表的日期列(如果它与左表日期列名称不同) + if effective_date_col in df_with_factor.columns and effective_date_col != trade_date_col: + df_with_factor = df_with_factor.drop(columns=[effective_date_col]) + + # 重命名新加入的因子列 + if factor_value_col != new_factor_col_name: + if factor_value_col in df_with_factor.columns: + df_with_factor = df_with_factor.rename(columns={factor_value_col: new_factor_col_name}) + else: + # 这种情况理论上不应发生,因为 merge_asof 应该会把右表的非 key 列带过来 + print(f"警告: 合并后未找到原始因子列 '{factor_value_col}',无法重命名。") + # 如果 factor_value_col 已是目标名称,则无需重命名 + if new_factor_col_name not in df_with_factor.columns: + # 如果目标名称也不存在,则可能合并失败或列名有问题 + df_with_factor[new_factor_col_name] = np.nan + + + # 如果 factor_value_col 就是目标名称,确保该列存在 + elif new_factor_col_name not in df_with_factor.columns: + print(f"警告: 合并后未找到目标因子列 '{new_factor_col_name}'。填充 NaN。") + df_with_factor[new_factor_col_name] = np.nan + + + return df_with_factor + + +def calculate_cashflow_to_ev_factor(df: pd.DataFrame, cashflow_df: pd.DataFrame, balancesheet_df: pd.DataFrame, market_cap_col: str = 'total_mv', date_col: str = 'trade_date', ts_code_col: str = 'ts_code') -> pd.DataFrame: + """ + 计算经营活动产生的现金流量净额TTM / 企业价值因子。 + 企业价值 = 司市值 + 负债合计 - 货币资金。 + + 重要提示:本代码假设 add_financial_factor 能够将财务数据正确地合并到主数据框。 + 如果您使用 add_financial_factor 只获取单季度数据,那么 + n_cashflow_act 将不是 TTM 值,这将导致最终因子计算不准确。 + + Args: + df (pd.DataFrame): 包含市场数据(需有市值列)和日期、股票代码的主数据框。 + cashflow_df (pd.DataFrame): Tushare 现金流量表数据。 + balancesheet_df (pd.DataFrame): Tushare 资产负债表数据。 + market_cap_col (str): DataFrame 中代表公司总市值的列名,默认为 'total_mv'。 + date_col (str): DataFrame 中的日期列名,默认为 'trade_date'。 + ts_code_col (str): DataFrame 中的股票代码列名,默认为 'ts_code'。 + + Returns: + pd.DataFrame: 添加了 'cashflow_to_ev_factor' 列的 DataFrame。 + """ + df_factor = df.copy() # 创建副本以避免修改原始 DataFrame + + # 0. 确保必要的市场市值列存在 + if market_cap_col not in df_factor.columns: + print(f"错误: DataFrame 中缺少市值列 '{market_cap_col}'。无法计算因子。") + # 添加一个空的因子列并返回 + df_factor['cashflow_to_ev_factor'] = np.nan + return df_factor + + # 1. 获取经营活动产生的现金流量净额 (TTM - **注意这里的潜在不准确性**) + # 如果 add_financial_factor 只获取单季度,这里的 n_cashflow_act 将不是 TTM + df_factor = add_financial_factor(df_factor, cashflow_df, 'n_cashflow_act') + # 如果 add_financial_factor 能够正确处理 TTM,那么上面的调用是正确的。 + # 否则,您需要在 add_financial_factor 内部实现 TTM 逻辑,或者在调用 add_financial_factor + # 获取多个季度数据后,在这里手动进行 TTM 求和。 + # 为了符合您的描述,我们暂时假设 add_financial_factor 已经处理了 TTM 或我们接受单季度的值 + # 并命名为 ttm_n_cashflow_act 以示期望 + + # 重新命名获取的现金流列以便后续计算 + cashflow_col_name = 'n_cashflow_act' # 获取的列名 + ttm_cashflow_col = 'ttm_n_cashflow_act' # 因子计算中使用的列名 + if cashflow_col_name in df_factor.columns: + df_factor = df_factor.rename(columns={cashflow_col_name: ttm_cashflow_col}) + else: + # 如果 add_financial_factor 没成功添加列 + print(f"错误: add_financial_factor 未能成功添加 '{cashflow_col_name}' 列。") + df_factor['cashflow_to_ev_factor'] = np.nan + return df_factor + + + # 2. 获取负债合计 + df_factor = add_financial_factor(df_factor, balancesheet_df, 'total_liab') + liab_col_name = 'total_liab' + if liab_col_name not in df_factor.columns: + print(f"错误: add_financial_factor 未能成功添加 '{liab_col_name}' 列。") + df_factor['cashflow_to_ev_factor'] = np.nan + return df_factor + + + # 3. 获取货币资金 + df_factor = add_financial_factor(df_factor, balancesheet_df, 'money_cap') + money_col_name = 'money_cap' + if money_col_name not in df_factor.columns: + print(f"错误: add_financial_factor 未能成功添加 '{money_col_name}' 列。") + df_factor['cashflow_to_ev_factor'] = np.nan + return df_factor + + + # 4. 计算企业价值 (Enterprise Value) + # 确保参与计算的列是数值类型,并处理 NaN (NaN + X = NaN, NaN - X = NaN) + enterprise_value = df_factor[market_cap_col].astype(float) * 10000 + df_factor[liab_col_name].astype(float) - df_factor[money_col_name].astype(float) + + # 5. 计算最终因子:经营活动产生的现金流量净额TTM / 企业价值 + # 使用之前定义的安全除法 + df_factor['cashflow_to_ev_factor'] = _safe_divide(df_factor[ttm_cashflow_col], enterprise_value) + + # 6. 删除临时添加的财务数据列 + cols_to_drop = [ttm_cashflow_col, liab_col_name, money_col_name] + df_factor = df_factor.drop(columns=[col for col in cols_to_drop if col in df_factor.columns]) + + + return df_factor + + + +def caculate_book_to_price_ratio(df: pd.DataFrame, fina_indicator_df: pd.DataFrame) -> pd.DataFrame: + if 'bps' not in df.columns: + df = add_financial_factor(df, fina_indicator_df, factor_value_col='bps') + df['book_to_price_ratio'] = df['bps'] / df['close'] + df = df.drop(columns=['bps']) + return df + + +def turnover_rate_n(df: pd.DataFrame, n: int) -> pd.DataFrame: + df[f'turnover_rate_mean_{n}'] = df.groupby('ts_code', group_keys=False)['turnover_rate'].rolling(n).mean().reset_index(level=0, drop=True) + return df + +def variance_n(df: pd.DataFrame, n: int) -> pd.DataFrame: + df[f'variance_{n}'] = df.groupby('ts_code', group_keys=False)['pct_chg'].rolling(n).var().reset_index(level=0, drop=True) + + return df + +def bbi_ratio_factor(df: pd.DataFrame) -> pd.DataFrame: + df_factor = df + + # 确保数据按股票代码和日期排序,这对滚动计算非常重要 + df_factor = df_factor.sort_values(by=['ts_code', 'trade_date']) + + # 获取收盘价列 + close_prices = df_factor['close'] + + # 1. 根据 ts_code 分组计算各周期的简单移动平均线 (SMA) + grouped = df_factor.groupby('ts_code', group_keys=False) + + # 计算不同周期的 SMA,并使用 reset_index 展平索引 + sma3 = grouped['close'].rolling(3).mean().reset_index(level=0, drop=True) + sma6 = grouped['close'].rolling(6).mean().reset_index(level=0, drop=True) + sma12 = grouped['close'].rolling(12).mean().reset_index(level=0, drop=True) + sma24 = grouped['close'].rolling(24).mean().reset_index(level=0, drop=True) + + # 2. 计算 BBI = (SMA3 + SMA6 + SMA12 + SMA24) / 4 + print("计算 BBI...") + # 注意:如果任何一个 SMA 在某个位置是 NaN (例如,数据点不足),那么它们的和也将是 NaN + bbi = (sma3 + sma6 + sma12 + sma24) / 4 + + # 3. 计算最终因子 = BBI / 收盘价 (使用安全除法) + df_factor['bbi_ratio_factor'] = _safe_divide(bbi, close_prices) + + return df_factor + + +def limit_factor(df: pd.DataFrame) -> pd.DataFrame: + grouped = df.groupby('ts_code', group_keys=False) + df["cat_up_limit"] = ( + df["close"] == df["up_limit"] + ) # 是否涨停(1表示涨停,0表示未涨停) + df["cat_down_limit"] = ( + df["close"] == df["down_limit"] + ) # 是否跌停(1表示跌停,0表示未跌停) + df["up_limit_count_10d"] = ( + grouped["cat_up_limit"] + .rolling(window=10, min_periods=1) + .sum() + .reset_index(level=0, drop=True) + ) + df["down_limit_count_10d"] = ( + grouped["cat_down_limit"] + .rolling(window=10, min_periods=1) + .sum() + .reset_index(level=0, drop=True) + ) + + # 3. 最近连续涨跌停天数 + def calculate_consecutive_limits(series): + """ + 计算连续涨停/跌停天数。 + """ + consecutive_up = series * ( + series.groupby((series != series.shift()).cumsum()).cumcount() + 1 + ) + consecutive_down = series * ( + series.groupby((series != series.shift()).cumsum()).cumcount() + 1 + ) + return consecutive_up, consecutive_down + + # 连续涨停天数 + df["consecutive_up_limit"] = grouped["cat_up_limit"].apply( + lambda x: calculate_consecutive_limits(x)[0] + ) + return df diff --git a/main/factor/factor.txt b/main/factor/factor.txt new file mode 100644 index 0000000..fdf1950 --- /dev/null +++ b/main/factor/factor.txt @@ -0,0 +1,63 @@ +序号 因子名称 (Factor Name / Column Name) 因子类别 (Factor Category) 简要说明 +1 pe_ttm 价值类因子 (Value) 市盈率 TTM +2 return_5, return_20 动量类因子 (Momentum) 过去5日/20日收益率 +3 act_factor1 to act_factor4 动量类 / 技术类因子 (Momentum / Technical) 基于不同周期EMA斜率计算的动量/趋势因子 +4 std_return_5, std_return_90, std_return_90_2 波动率类因子 (Volatility) 不同窗口期或延迟窗口期的滚动收益率标准差 +5 upside_vol, downside_vol 波动率类因子 (Volatility) N日滚动上/下行波动率 +6 vol_ratio 波动率类因子 (Volatility) 上行波动率 / 下行波动率 +7 std_return_5 / std_return_90 波动率类因子 (Volatility) 短期波动率 / 长期波动率 比率 +8 std_return_90 - std_return_90_2 波动率类因子 (Volatility) 长期波动率与其10日前值的差值(波动变化) +9 volatility (来自指数计算) 波动率类 / 市场因子 (Volatility / Market) 指数(或个股)的20日滚动收益率标准差 +10 log(circ_mv) (或 log_circ_mv) 市值类因子 (Size) 流通市值的对数值 +11 cs_rank_size 市值类因子 (Size) 对数流通市值的截面排序 +12 vol 流动性类因子 (Liquidity) 成交量 (通常需要与其他指标结合或处理) +13 turnover_rate 流动性类因子 (Liquidity) 换手率 +14 volume_ratio 流动性类因子 (Liquidity) 量比 +15 turnover_deviation 流动性类因子 (Liquidity) 换手率与其3日滚动均值的标准差倍数偏离 +16 cat_turnover_spike 流动性类 / 分类因子 (Liquidity / Categorical) 换手率是否显著高于近期均值 +17 volume_change_rate 流动性类因子 (Liquidity) 短期滚动成交量均值 / 长期滚动成交量均值 - 1 +18 cat_volume_breakout 流动性类 / 分类因子 (Liquidity / Categorical) 当日成交量是否大于过去5日最大成交量 +19 avg_volume_ratio 流动性类因子 (Liquidity) 3日滚动量比均值 +20 cat_volume_ratio_breakout 流动性类 / 分类因子 (Liquidity / Categorical) 当日量比是否大于过去5日最大量比 +21 vol_spike (Rolling Mean Vol) 流动性类因子 (Liquidity) 20日滚动成交量均值 +22 vol_std_5 流动性类 / 波动率因子 (Liquidity / Volatility) 成交量日变化率的5日滚动标准差 +23 volume_growth 流动性类因子 (Liquidity) 20日成交量变化率 +24 turnover_std 流动性类 / 波动率因子 (Liquidity / Volatility) 换手率的20日滚动标准差 +25 flow_lg_elg_intensity 资金流 / 流动性类因子 (Money Flow / Liquidity) (大单+超大单)净买入量 / 总成交量 +26 flow_divergence_diff, flow_divergence_ratio 资金流 / 情绪类因子 (Money Flow / Sentiment) 散户与主力资金流的差异或比率 +27 lg_elg_buy_prop 资金流 / 流动性类因子 (Money Flow / Liquidity) (大单+超大单)买入量 / 总买入量 +28 flow_struct_buy_change 资金流 / 流动性类因子 (Money Flow / Liquidity) 主力买入占比的日变化 +29 flow_lg_elg_accel 资金流 / 动量类因子 (Money Flow / Momentum) 主力资金流加速度 +30 active_buy_volume_large/big/small 资金流 / 流动性类因子 (Money Flow / Liquidity) 不同规模主动买入量 / 净流入量 +31 buy_lg/elg_vol_minus_sell_lg/elg_vol 资金流 / 流动性类因子 (Money Flow / Liquidity) 不同规模净买入量 / 总净流入量 +32 cs_rank_net_lg_flow_val, cs_rank_elg_buy_ratio, cs_rank_lg_sm_flow_diverge, cs_rank_elg_buy_sell_sm_ratio 资金流 / 复合因子 (截面排序) 各种资金流指标的截面排序 +33 cs_rank_ind_adj_lg_flow 资金流 / 复合因子 (行业调整+截面排序) 行业调整后的大单净流入截面排序 +34 chip_concentration_range, chip_skewness, cost_support_15pct_change, weight_roc5, cost_stability, ctrl_strength, low_cost_dev, asymmetry, cost_conc_std_N, profit_pressure, underwater_resistance, cs_rank_rel_profit_margin, cs_rank_cost_breadth, cs_rank_dist_to_upper_cost 定位类因子 (Positioning) / 技术类 基于持仓成本分布 (cost_*, weight_avg) 计算的各种指标及其截面排序 +35 winner_rate, cs_rank_winner_rate 定位类因子 (Positioning) / 技术类 获利盘比例及其截面排序 +36 floating_chip_proxy, price_cost_divergence, high_cost_break_days, liquidity_risk, lock_factor, cost_atr_adj, smallcap_concentration, cat_golden_resonance 定位类因子 (Positioning) / 复合因子 结合持仓成本与其他信息(价格、成交、波动率、市值)的复合指标 +37 cat_winner_price_zone 定位类 / 分类因子 (Positioning / Categorical) 基于成本和获利盘划分的区域类别 +38 flow_chip_consistency, profit_taking_vs_absorb, vol_amp_loss, vol_drop_profit_cnt, cost_break_confirm_cnt, vol_wgt_hist_pos, cs_rank_vol_x_profit_margin, cs_rank_cost_dist_vol_ratio 定位类因子 (Positioning) / 复合因子 进一步结合定位、资金流、量价的复杂交互因子 +39 return_skew, return_kurtosis 技术类 / 统计特征 (Technical / Stats) 滚动收益率的偏度与峰度 +40 rsi_3 技术类 / 动量类因子 (Technical / Momentum) 3日相对强弱指数 +41 obv, maobv_6, obv-maobv_6 技术类 / 量价因子 (Technical / Volume) 能量潮及其均线、差离 +42 atr_14, atr_6 技术类 / 波动率类因子 (Technical / Volatility) 平均真实波幅 +43 log_close 技术类 / 量价因子 (Technical / Price) 收盘价对数 +44 up, down 技术类 / 量价因子 (Technical / Price Action) 标准化上影线、下影线长度 +45 alpha_22_improved, alpha_003, alpha_007, alpha_013 技术类 / Alpha因子 (Technical / Alpha) WorldQuant Alpha 因子实现 +46 atr_norm_channel_pos 技术类 / 量价因子 (Technical / Price Action) ATR 标准化的价格通道位置 +47 turnover_diff_skew 技术类 / 流动性类 (Technical / Liquidity) 换手率变化率的偏度 +48 pullback_strong_N_M 技术类 / 动量类因子 (Technical / Momentum) 近期强势股的回调幅度 +49 vol_adj_roc 技术类 / 复合因子 (动量+波动率) 波动率调整后的 N 日变化率 +50 ar, br, arbr 情绪类 / 技术类因子 (Sentiment / Technical) ARBR 人气意愿指标 +51 up_ratio_20d (来自指数计算) 情绪类 / 市场因子 (Sentiment / Market) 指数(或个股)过去20天上涨天数比例 +52 cat_up_limit, cat_down_limit, up_limit_count_10d, down_limit_count_10d, consecutive_up_limit 事件驱动 / 市场状态因子 (Event / Market State) 涨跌停相关状态和计数 +53 momentum_factor, resonance_factor 复合因子 (量价) (Composite - P/V) 基于量、价、换手率等的简单复合 +54 cat_af2, cat_af3, cat_af4 复合因子 / 分类因子 (Composite / Cat.) act_factor 之间的比较 +55 act_factor5, act_factor6 复合因子 (技术类) (Composite - Technical) act_factor 1-4 的组合 +56 mv_volatility, mv_growth, mv_turnover_ratio, mv_adjusted_volume, mv_weighted_turnover, nonlinear_mv_volume, mv_volume_ratio, mv_momentum 复合因子 (市值+流动性/量价) 考虑了市值影响的量价、流动性或动量指标 +57 cap_neutral_cost_metric (占位符) 复合因子 / Alpha因子 (占位符) 市值行业中性化的成本指标(需实现) +58 hurst_exponent_flow (占位符) 资金流 / 统计因子 (占位符) 资金流的 Hurst 指数(需实现) +59 intraday_lg_flow_corr_N (占位符) 复合因子 (价格行为+资金流) (占位符) 日内趋势与大单流相关性(需实现) +60 industry_* (来自 industry_df) 行业因子 (Industry) 对应行业的各种指标(如行业收益率、行业动量等) +61 *_deviation (来自 create_deviation_within_dates) 复合因子 (相对行业) 个股因子相对于行业均值的偏离 +62 complex_factor_gplearn_1 复合因子 (GP生成) DEAP/GP 找到的因子表达式 1 \ No newline at end of file diff --git a/main/train/Classify2.ipynb b/main/train/Classify2.ipynb new file mode 100644 index 0000000..35b0692 --- /dev/null +++ b/main/train/Classify2.ipynb @@ -0,0 +1,1903 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "79a7758178bafdd3", + "metadata": { + "ExecuteTime": { + "end_time": "2025-04-03T12:46:06.987506Z", + "start_time": "2025-04-03T12:46:06.259551Z" + }, + "jupyter": { + "source_hidden": true + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "e:\\PyProject\\NewStock\\main\\train\n" + ] + } + ], + "source": [ + "%load_ext autoreload\n", + "%autoreload 2\n", + "\n", + "import gc\n", + "import os\n", + "import sys\n", + "sys.path.append('../../')\n", + "print(os.getcwd())\n", + "import pandas as pd\n", + "from main.factor.factor import get_rolling_factor, get_simple_factor\n", + "from main.utils.factor import read_industry_data\n", + "from main.utils.factor_processor import calculate_score\n", + "from main.utils.utils import read_and_merge_h5_data, merge_with_industry_data\n", + "\n", + "import warnings\n", + "\n", + "warnings.filterwarnings(\"ignore\")" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "a79cafb06a7e0e43", + "metadata": { + "ExecuteTime": { + "end_time": "2025-04-03T12:47:00.212859Z", + "start_time": "2025-04-03T12:46:06.998047Z" + }, + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "daily data\n", + "daily basic\n", + "inner merge on ['ts_code', 'trade_date']\n", + "stk limit\n", + "left merge on ['ts_code', 'trade_date']\n", + "money flow\n", + "left merge on ['ts_code', 'trade_date']\n", + "cyq perf\n", + "left merge on ['ts_code', 'trade_date']\n", + "\n", + "RangeIndex: 8509852 entries, 0 to 8509851\n", + "Data columns (total 32 columns):\n", + " # Column Dtype \n", + "--- ------ ----- \n", + " 0 ts_code object \n", + " 1 trade_date datetime64[ns]\n", + " 2 open float64 \n", + " 3 close float64 \n", + " 4 high float64 \n", + " 5 low float64 \n", + " 6 vol float64 \n", + " 7 pct_chg float64 \n", + " 8 turnover_rate float64 \n", + " 9 pe_ttm float64 \n", + " 10 circ_mv float64 \n", + " 11 total_mv float64 \n", + " 12 volume_ratio float64 \n", + " 13 is_st bool \n", + " 14 up_limit float64 \n", + " 15 down_limit float64 \n", + " 16 buy_sm_vol float64 \n", + " 17 sell_sm_vol float64 \n", + " 18 buy_lg_vol float64 \n", + " 19 sell_lg_vol float64 \n", + " 20 buy_elg_vol float64 \n", + " 21 sell_elg_vol float64 \n", + " 22 net_mf_vol float64 \n", + " 23 his_low float64 \n", + " 24 his_high float64 \n", + " 25 cost_5pct float64 \n", + " 26 cost_15pct float64 \n", + " 27 cost_50pct float64 \n", + " 28 cost_85pct float64 \n", + " 29 cost_95pct float64 \n", + " 30 weight_avg float64 \n", + " 31 winner_rate float64 \n", + "dtypes: bool(1), datetime64[ns](1), float64(29), object(1)\n", + "memory usage: 2.0+ GB\n", + "None\n" + ] + } + ], + "source": [ + "from main.utils.utils import read_and_merge_h5_data\n", + "\n", + "print('daily data')\n", + "df = read_and_merge_h5_data('../../data/daily_data.h5', key='daily_data',\n", + " columns=['ts_code', 'trade_date', 'open', 'close', 'high', 'low', 'vol', 'pct_chg'],\n", + " df=None)\n", + "\n", + "print('daily basic')\n", + "df = read_and_merge_h5_data('../../data/daily_basic.h5', key='daily_basic',\n", + " columns=['ts_code', 'trade_date', 'turnover_rate', 'pe_ttm', 'circ_mv', 'total_mv', 'volume_ratio',\n", + " 'is_st'], df=df, join='inner')\n", + "\n", + "print('stk limit')\n", + "df = read_and_merge_h5_data('../../data/stk_limit.h5', key='stk_limit',\n", + " columns=['ts_code', 'trade_date', 'pre_close', 'up_limit', 'down_limit'],\n", + " df=df)\n", + "print('money flow')\n", + "df = read_and_merge_h5_data('../../data/money_flow.h5', key='money_flow',\n", + " columns=['ts_code', 'trade_date', 'buy_sm_vol', 'sell_sm_vol', 'buy_lg_vol', 'sell_lg_vol',\n", + " 'buy_elg_vol', 'sell_elg_vol', 'net_mf_vol'],\n", + " df=df)\n", + "print('cyq perf')\n", + "df = read_and_merge_h5_data('../../data/cyq_perf.h5', key='cyq_perf',\n", + " columns=['ts_code', 'trade_date', 'his_low', 'his_high', 'cost_5pct', 'cost_15pct',\n", + " 'cost_50pct',\n", + " 'cost_85pct', 'cost_95pct', 'weight_avg', 'winner_rate'],\n", + " df=df)\n", + "print(df.info())" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "cac01788dac10678", + "metadata": { + "ExecuteTime": { + "end_time": "2025-04-03T12:47:10.527104Z", + "start_time": "2025-04-03T12:47:00.488715Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "industry\n" + ] + } + ], + "source": [ + "print('industry')\n", + "industry_df = read_and_merge_h5_data('../../data/industry_data.h5', key='industry_data',\n", + " columns=['ts_code', 'l2_code', 'in_date'],\n", + " df=None, on=['ts_code'], join='left')\n", + "\n", + "\n", + "def merge_with_industry_data(df, industry_df):\n", + " # 确保日期字段是 datetime 类型\n", + " df['trade_date'] = pd.to_datetime(df['trade_date'])\n", + " industry_df['in_date'] = pd.to_datetime(industry_df['in_date'])\n", + "\n", + " # 对 industry_df 按 ts_code 和 in_date 排序\n", + " industry_df_sorted = industry_df.sort_values(['in_date', 'ts_code'])\n", + "\n", + " # 对原始 df 按 ts_code 和 trade_date 排序\n", + " df_sorted = df.sort_values(['trade_date', 'ts_code'])\n", + "\n", + " # 使用 merge_asof 进行向后合并\n", + " merged = pd.merge_asof(\n", + " df_sorted,\n", + " industry_df_sorted,\n", + " by='ts_code', # 按 ts_code 分组\n", + " left_on='trade_date',\n", + " right_on='in_date',\n", + " direction='backward'\n", + " )\n", + "\n", + " # 获取每个 ts_code 的最早 in_date 记录\n", + " min_in_date_per_ts = (industry_df_sorted\n", + " .groupby('ts_code')\n", + " .first()\n", + " .reset_index()[['ts_code', 'l2_code']])\n", + "\n", + " # 填充未匹配到的记录(trade_date 早于所有 in_date 的情况)\n", + " merged['l2_code'] = merged['l2_code'].fillna(\n", + " merged['ts_code'].map(min_in_date_per_ts.set_index('ts_code')['l2_code'])\n", + " )\n", + "\n", + " # 保留需要的列并重置索引\n", + " result = merged.reset_index(drop=True)\n", + " return result\n", + "\n", + "\n", + "# 使用示例\n", + "df = merge_with_industry_data(df, industry_df)\n", + "# print(mdf[mdf['ts_code'] == '600751.SH'][['ts_code', 'trade_date', 'l2_code']])" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "c4e9e1d31da6dba6", + "metadata": { + "ExecuteTime": { + "end_time": "2025-04-03T12:47:10.719252Z", + "start_time": "2025-04-03T12:47:10.541247Z" + }, + "jupyter": { + "source_hidden": true + } + }, + "outputs": [], + "source": [ + "def calculate_indicators(df):\n", + " \"\"\"\n", + " 计算四个指标:当日涨跌幅、5日移动平均、RSI、MACD。\n", + " \"\"\"\n", + " df = df.sort_values('trade_date')\n", + " df['daily_return'] = (df['close'] - df['pre_close']) / df['pre_close'] * 100\n", + " # df['5_day_ma'] = df['close'].rolling(window=5).mean()\n", + " delta = df['close'].diff()\n", + " gain = delta.where(delta > 0, 0)\n", + " loss = -delta.where(delta < 0, 0)\n", + " avg_gain = gain.rolling(window=14).mean()\n", + " avg_loss = loss.rolling(window=14).mean()\n", + " rs = avg_gain / avg_loss\n", + " df['RSI'] = 100 - (100 / (1 + rs))\n", + "\n", + " # 计算MACD\n", + " ema12 = df['close'].ewm(span=12, adjust=False).mean()\n", + " ema26 = df['close'].ewm(span=26, adjust=False).mean()\n", + " df['MACD'] = ema12 - ema26\n", + " df['Signal_line'] = df['MACD'].ewm(span=9, adjust=False).mean()\n", + " df['MACD_hist'] = df['MACD'] - df['Signal_line']\n", + "\n", + " # 4. 情绪因子1:市场上涨比例(Up Ratio)\n", + " df['up_ratio'] = df['daily_return'].apply(lambda x: 1 if x > 0 else 0)\n", + " df['up_ratio_20d'] = df['up_ratio'].rolling(window=20).mean() # 过去20天上涨比例\n", + "\n", + " # 5. 情绪因子2:成交量变化率(Volume Change Rate)\n", + " df['volume_mean'] = df['vol'].rolling(window=20).mean() # 过去20天的平均成交量\n", + " df['volume_change_rate'] = (df['vol'] - df['volume_mean']) / df['volume_mean'] * 100 # 成交量变化率\n", + "\n", + " # 6. 情绪因子3:波动率(Volatility)\n", + " df['volatility'] = df['daily_return'].rolling(window=20).std() # 过去20天的日收益率标准差\n", + "\n", + " # 7. 情绪因子4:成交额变化率(Amount Change Rate)\n", + " df['amount_mean'] = df['amount'].rolling(window=20).mean() # 过去20天的平均成交额\n", + " df['amount_change_rate'] = (df['amount'] - df['amount_mean']) / df['amount_mean'] * 100 # 成交额变化率\n", + "\n", + " return df\n", + "\n", + "\n", + "def generate_index_indicators(h5_filename):\n", + " df = pd.read_hdf(h5_filename, key='index_data')\n", + " df['trade_date'] = pd.to_datetime(df['trade_date'], format='%Y%m%d')\n", + " df = df.sort_values('trade_date')\n", + "\n", + " # 计算每个ts_code的相关指标\n", + " df_indicators = []\n", + " for ts_code in df['ts_code'].unique():\n", + " df_index = df[df['ts_code'] == ts_code].copy()\n", + " df_index = calculate_indicators(df_index)\n", + " df_indicators.append(df_index)\n", + "\n", + " # 合并所有指数的结果\n", + " df_all_indicators = pd.concat(df_indicators, ignore_index=True)\n", + "\n", + " # 保留trade_date列,并将同一天的数据按ts_code合并成一行\n", + " df_final = df_all_indicators.pivot_table(\n", + " index='trade_date',\n", + " columns='ts_code',\n", + " values=['daily_return', 'RSI', 'MACD', 'Signal_line',\n", + " 'MACD_hist', 'up_ratio_20d', 'volume_change_rate', 'volatility',\n", + " 'amount_change_rate', 'amount_mean'],\n", + " aggfunc='last'\n", + " )\n", + "\n", + " df_final.columns = [f\"{col[1]}_{col[0]}\" for col in df_final.columns]\n", + " df_final = df_final.reset_index()\n", + "\n", + " return df_final\n", + "\n", + "\n", + "# 使用函数\n", + "h5_filename = '../../data/index_data.h5'\n", + "index_data = generate_index_indicators(h5_filename)\n", + "index_data = index_data.dropna()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "a735bc02ceb4d872", + "metadata": { + "ExecuteTime": { + "end_time": "2025-04-03T12:47:10.821169Z", + "start_time": "2025-04-03T12:47:10.751831Z" + } + }, + "outputs": [], + "source": [ + "import talib\n", + "import numpy as np" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "53f86ddc0677a6d7", + "metadata": { + "ExecuteTime": { + "end_time": "2025-04-03T12:47:15.944254Z", + "start_time": "2025-04-03T12:47:10.826179Z" + }, + "jupyter": { + "source_hidden": true + }, + "scrolled": true + }, + "outputs": [], + "source": [ + "from main.utils.factor import get_act_factor\n", + "\n", + "\n", + "def read_industry_data(h5_filename):\n", + " # 读取 H5 文件中所有的行业数据\n", + " industry_data = pd.read_hdf(h5_filename, key='sw_daily', columns=[\n", + " 'ts_code', 'trade_date', 'open', 'close', 'high', 'low', 'pe', 'pb', 'vol'\n", + " ]) # 假设 H5 文件的键是 'industry_data'\n", + " industry_data = industry_data.sort_values(by=['ts_code', 'trade_date'])\n", + " industry_data = industry_data.reindex()\n", + " industry_data['trade_date'] = pd.to_datetime(industry_data['trade_date'], format='%Y%m%d')\n", + "\n", + " grouped = industry_data.groupby('ts_code', group_keys=False)\n", + " industry_data['obv'] = grouped.apply(\n", + " lambda x: pd.Series(talib.OBV(x['close'].values, x['vol'].values), index=x.index)\n", + " )\n", + " industry_data['return_5'] = grouped['close'].apply(lambda x: x / x.shift(5) - 1)\n", + " industry_data['return_20'] = grouped['close'].apply(lambda x: x / x.shift(20) - 1)\n", + "\n", + " industry_data = get_act_factor(industry_data, cat=False)\n", + " industry_data = industry_data.sort_values(by=['trade_date', 'ts_code'])\n", + "\n", + " # # 计算每天每个 ts_code 的因子和当天所有 ts_code 的中位数的偏差\n", + " # factor_columns = ['obv', 'return_5', 'return_20', 'act_factor1', 'act_factor2', 'act_factor3', 'act_factor4'] # 因子列\n", + " # \n", + " # for factor in factor_columns:\n", + " # if factor in industry_data.columns:\n", + " # # 计算每天每个 ts_code 的因子值与当天所有 ts_code 的中位数的偏差\n", + " # industry_data[f'{factor}_deviation'] = industry_data.groupby('trade_date')[factor].transform(\n", + " # lambda x: x - x.mean())\n", + "\n", + " industry_data['return_5_percentile'] = industry_data.groupby('trade_date')['return_5'].transform(\n", + " lambda x: x.rank(pct=True))\n", + " industry_data['return_20_percentile'] = industry_data.groupby('trade_date')['return_20'].transform(\n", + " lambda x: x.rank(pct=True))\n", + " industry_data = industry_data.drop(columns=['open', 'close', 'high', 'low', 'pe', 'pb', 'vol'])\n", + "\n", + " industry_data = industry_data.rename(\n", + " columns={col: f'industry_{col}' for col in industry_data.columns if col not in ['ts_code', 'trade_date']})\n", + "\n", + " industry_data = industry_data.rename(columns={'ts_code': 'cat_l2_code'})\n", + " return industry_data\n", + "\n", + "\n", + "industry_df = read_industry_data('../../data/sw_daily.h5')\n" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "dbe2fd8021b9417f", + "metadata": { + "ExecuteTime": { + "end_time": "2025-04-03T12:47:15.969344Z", + "start_time": "2025-04-03T12:47:15.963327Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['ts_code', 'open', 'close', 'high', 'low', 'circ_mv', 'total_mv', 'is_st', 'up_limit', 'down_limit', 'buy_sm_vol', 'sell_sm_vol', 'buy_lg_vol', 'sell_lg_vol', 'buy_elg_vol', 'sell_elg_vol', 'net_mf_vol', 'his_low', 'his_high', 'cost_5pct', 'cost_15pct', 'cost_50pct', 'cost_85pct', 'cost_95pct', 'weight_avg', 'in_date']\n" + ] + } + ], + "source": [ + "origin_columns = df.columns.tolist()\n", + "origin_columns = [col for col in origin_columns if\n", + " col not in ['turnover_rate', 'pe_ttm', 'volume_ratio', 'vol', 'pct_chg', 'l2_code', 'winner_rate']]\n", + "origin_columns = [col for col in origin_columns if col not in index_data.columns]\n", + "origin_columns = [col for col in origin_columns if 'cyq' not in col]\n", + "print(origin_columns)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "85c3e3d0235ffffa", + "metadata": { + "ExecuteTime": { + "end_time": "2025-04-03T12:47:16.089879Z", + "start_time": "2025-04-03T12:47:15.990101Z" + } + }, + "outputs": [], + "source": [ + "fina_indicator_df = read_and_merge_h5_data('../../data/fina_indicator.h5', key='fina_indicator',\n", + " columns=['ts_code', 'ann_date', 'undist_profit_ps', 'ocfps', 'bps'],\n", + " df=None)\n", + "cashflow_df = read_and_merge_h5_data('../../data/cashflow.h5', key='cashflow',\n", + " columns=['ts_code', 'ann_date', 'n_cashflow_act'],\n", + " df=None)\n", + "balancesheet_df = read_and_merge_h5_data('../../data/balancesheet.h5', key='balancesheet',\n", + " columns=['ts_code', 'ann_date', 'money_cap', 'total_liab'],\n", + " df=None)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "a1c5858e", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Index(['ts_code', 'ann_date', 'money_cap', 'total_liab'], dtype='object')\n" + ] + } + ], + "source": [ + "print(balancesheet_df.columns)" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "id": "92d84ce15a562ec6", + "metadata": { + "ExecuteTime": { + "end_time": "2025-04-03T13:08:01.612695Z", + "start_time": "2025-04-03T12:47:16.121802Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "开始计算因子: AR, BR (原地修改)...\n", + "因子 AR, BR 计算成功。\n", + "因子 AR, BR 计算流程结束。\n", + "使用 'ann_date' 作为财务数据生效日期。\n", + "使用 'ann_date' 作为财务数据生效日期。\n", + "使用 'ann_date' 作为财务数据生效日期。\n", + "使用 'ann_date' 作为财务数据生效日期。\n", + "警告: 从 financial_data_subset 中移除了 366 行,因为其 'ts_code' 或 'ann_date' 列存在空值。\n", + "计算 BBI...\n", + "Index(['ts_code', 'trade_date', 'open', 'close', 'high', 'low', 'vol',\n", + " 'pct_chg', 'turnover_rate', 'pe_ttm', 'circ_mv', 'total_mv',\n", + " 'volume_ratio', 'is_st', 'up_limit', 'down_limit', 'buy_sm_vol',\n", + " 'sell_sm_vol', 'buy_lg_vol', 'sell_lg_vol', 'buy_elg_vol',\n", + " 'sell_elg_vol', 'net_mf_vol', 'his_low', 'his_high', 'cost_5pct',\n", + " 'cost_15pct', 'cost_50pct', 'cost_85pct', 'cost_95pct', 'weight_avg',\n", + " 'winner_rate', 'cat_l2_code', 'undist_profit_ps', 'ocfps', 'AR', 'BR',\n", + " 'AR_BR', 'log_circ_mv', 'cashflow_to_ev_factor', 'book_to_price_ratio',\n", + " 'turnover_rate_mean_5', 'variance_20', 'bbi_ratio_factor',\n", + " 'future_return', 'cat_up_limit', 'label', 'lg_elg_net_buy_vol',\n", + " 'flow_lg_elg_intensity', 'sm_net_buy_vol', 'flow_divergence_diff',\n", + " 'flow_divergence_ratio', 'total_buy_vol', 'lg_elg_buy_prop',\n", + " 'flow_struct_buy_change', 'lg_elg_net_buy_vol_change',\n", + " 'flow_lg_elg_accel', 'chip_concentration_range', 'chip_skewness',\n", + " 'floating_chip_proxy', 'cost_support_15pct_change',\n", + " 'cat_winner_price_zone', 'flow_chip_consistency',\n", + " 'profit_taking_vs_absorb', '_is_positive', '_is_negative',\n", + " 'cat_is_positive', '_pos_returns', '_neg_returns', '_pos_returns_sq',\n", + " '_neg_returns_sq', 'upside_vol', 'downside_vol', 'vol_ratio',\n", + " 'return_skew', 'return_kurtosis', 'volume_change_rate',\n", + " 'cat_volume_breakout', 'turnover_deviation', 'cat_turnover_spike',\n", + " 'avg_volume_ratio', 'cat_volume_ratio_breakout', 'vol_spike',\n", + " 'vol_std_5', 'atr_14', 'atr_6', 'obv'],\n", + " dtype='object')\n", + "\n", + "Index: 4450396 entries, 0 to 4450395\n", + "Columns: 118 entries, ts_code to mv_growth\n", + "dtypes: bool(5), datetime64[ns](1), float64(106), int32(4), object(2)\n", + "memory usage: 3.7+ GB\n", + "None\n", + "['ts_code', 'trade_date', 'open', 'close', 'high', 'low', 'vol', 'pct_chg', 'turnover_rate', 'pe_ttm', 'circ_mv', 'total_mv', 'volume_ratio', 'is_st', 'up_limit', 'down_limit', 'buy_sm_vol', 'sell_sm_vol', 'buy_lg_vol', 'sell_lg_vol', 'buy_elg_vol', 'sell_elg_vol', 'net_mf_vol', 'his_low', 'his_high', 'cost_5pct', 'cost_15pct', 'cost_50pct', 'cost_85pct', 'cost_95pct', 'weight_avg', 'winner_rate', 'cat_l2_code', 'undist_profit_ps', 'ocfps', 'AR', 'BR', 'AR_BR', 'log_circ_mv', 'cashflow_to_ev_factor', 'book_to_price_ratio', 'turnover_rate_mean_5', 'variance_20', 'bbi_ratio_factor', 'future_return', 'cat_up_limit', 'label', 'lg_elg_net_buy_vol', 'flow_lg_elg_intensity', 'sm_net_buy_vol', 'flow_divergence_diff', 'flow_divergence_ratio', 'total_buy_vol', 'lg_elg_buy_prop', 'flow_struct_buy_change', 'lg_elg_net_buy_vol_change', 'flow_lg_elg_accel', 'chip_concentration_range', 'chip_skewness', 'floating_chip_proxy', 'cost_support_15pct_change', 'cat_winner_price_zone', 'flow_chip_consistency', 'profit_taking_vs_absorb', 'cat_is_positive', 'upside_vol', 'downside_vol', 'vol_ratio', 'return_skew', 'return_kurtosis', 'volume_change_rate', 'cat_volume_breakout', 'turnover_deviation', 'cat_turnover_spike', 'avg_volume_ratio', 'cat_volume_ratio_breakout', 'vol_spike', 'vol_std_5', 'atr_14', 'atr_6', 'obv', 'maobv_6', 'rsi_3', 'return_5', 'return_20', 'std_return_5', 'std_return_90', 'std_return_90_2', '_ema_5', '_ema_13', '_ema_20', '_ema_60', 'act_factor1', 'act_factor2', 'act_factor3', 'act_factor4', 'rank_act_factor1', 'rank_act_factor2', 'rank_act_factor3', 'cov', 'delta_cov', '_stddev_close', '_rank_stddev', 'alpha_22_improved', 'alpha_003', 'alpha_007', 'alpha_013', 'vol_break', 'weight_roc5', 'price_cost_divergence', 'smallcap_concentration', 'cost_stability', 'high_cost_break_days', 'liquidity_risk', 'turnover_std', 'mv_volatility', 'volume_growth', 'mv_growth']\n" + ] + } + ], + "source": [ + "\n", + "import numpy as np\n", + "from main.factor.factor import *\n", + "\n", + "def filter_data(df):\n", + " # df = df.groupby('trade_date').apply(lambda x: x.nlargest(1000, 'act_factor1'))\n", + " df = df[~df['is_st']]\n", + " df = df[~df['ts_code'].str.endswith('BJ')]\n", + " df = df[~df['ts_code'].str.startswith('30')]\n", + " df = df[~df['ts_code'].str.startswith('68')]\n", + " df = df[~df['ts_code'].str.startswith('8')]\n", + " df = df[df['trade_date'] >= '2019-01-01']\n", + " if 'in_date' in df.columns:\n", + " df = df.drop(columns=['in_date'])\n", + " df = df.reset_index(drop=True)\n", + " return df\n", + "\n", + "gc.collect()\n", + "\n", + "df = filter_data(df)\n", + "df = df.sort_values(by=['ts_code', 'trade_date'])\n", + "df = add_financial_factor(df, fina_indicator_df, factor_value_col='undist_profit_ps')\n", + "df = add_financial_factor(df, fina_indicator_df, factor_value_col='ocfps')\n", + "calculate_arbr(df, N=26)\n", + "df['log_circ_mv'] = np.log(df['circ_mv'])\n", + "df = calculate_cashflow_to_ev_factor(df, cashflow_df, balancesheet_df)\n", + "df = caculate_book_to_price_ratio(df, fina_indicator_df)\n", + "df = turnover_rate_n(df, n=5)\n", + "df = variance_n(df, n=20)\n", + "df = bbi_ratio_factor(df)\n", + "df, _ = get_rolling_factor(df)\n", + "\n", + "# lg_flow_mom_corr(df, N=20, M=60)\n", + "# lg_flow_accel(df)\n", + "# profit_pressure(df)\n", + "# underwater_resistance(df)\n", + "# cost_conc_std(df, N=20)\n", + "# profit_decay(df, N=20)\n", + "# vol_amp_loss(df, N=20)\n", + "# vol_drop_profit_cnt(df, N=20, M=5)\n", + "# lg_flow_vol_interact(df, N=20)\n", + "# cost_break_confirm_cnt(df, M=5)\n", + "# atr_norm_channel_pos(df, N=14)\n", + "# turnover_diff_skew(df, N=20)\n", + "# lg_sm_flow_diverge(df, N=20)\n", + "# pullback_strong(df, N=20, M=20)\n", + "# vol_wgt_hist_pos(df, N=20)\n", + "# vol_adj_roc(df, N=20)\n", + "\n", + "df = df.rename(columns={'l1_code': 'cat_l1_code'})\n", + "df = df.rename(columns={'l2_code': 'cat_l2_code'})\n", + "\n", + "# df = df.merge(index_data, on='trade_date', how='left')\n", + "\n", + "print(df.info())\n", + "print(df.columns.tolist())" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "id": "b87b938028afa206", + "metadata": { + "ExecuteTime": { + "end_time": "2025-04-03T13:08:03.658725Z", + "start_time": "2025-04-03T13:08:02.469611Z" + } + }, + "outputs": [], + "source": [ + "from scipy.stats import ks_2samp, wasserstein_distance\n", + "\n", + "\n", + "def remove_shifted_features(train_data, test_data, feature_columns, ks_threshold=0.05, wasserstein_threshold=0.1,\n", + " importance_threshold=0.05):\n", + " dropped_features = []\n", + "\n", + " # **统计数据漂移**\n", + " numeric_columns = train_data.select_dtypes(include=['float64', 'int64']).columns\n", + " numeric_columns = [col for col in numeric_columns if col in feature_columns]\n", + " for feature in numeric_columns:\n", + " ks_stat, p_value = ks_2samp(train_data[feature], test_data[feature])\n", + " wasserstein_dist = wasserstein_distance(train_data[feature], test_data[feature])\n", + "\n", + " if p_value < ks_threshold or wasserstein_dist > wasserstein_threshold:\n", + " dropped_features.append(feature)\n", + "\n", + " print(f\"检测到 {len(dropped_features)} 个可能漂移的特征: {dropped_features}\")\n", + "\n", + " # **应用阈值进行最终筛选**\n", + " filtered_features = [f for f in feature_columns if f not in dropped_features]\n", + "\n", + " return filtered_features, dropped_features\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "id": "f4f16d63ad18d1bc", + "metadata": { + "ExecuteTime": { + "end_time": "2025-04-03T13:08:03.670700Z", + "start_time": "2025-04-03T13:08:03.665739Z" + } + }, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "import statsmodels.api as sm # 用于中性化回归\n", + "from tqdm import tqdm # 可选,用于显示进度条\n", + "\n", + "# --- 常量 ---\n", + "epsilon = 1e-10 # 防止除零\n", + "\n", + "# --- 1. 中位数去极值 (MAD) ---\n", + "\n", + "def cs_mad_filter(df: pd.DataFrame,\n", + " features: list,\n", + " k: float = 3.0,\n", + " scale_factor: float = 1.4826):\n", + " \"\"\"\n", + " 对指定特征列进行截面 MAD 去极值处理 (原地修改)。\n", + "\n", + " 方法: 对每日截面数据,计算 median 和 MAD,\n", + " 将超出 [median - k * scale * MAD, median + k * scale * MAD] 范围的值\n", + " 替换为边界值 (Winsorization)。\n", + " scale_factor=1.4826 使得 MAD 约等于正态分布的标准差。\n", + "\n", + " Args:\n", + " df (pd.DataFrame): 输入 DataFrame,需包含 'trade_date' 和 features 列。\n", + " features (list): 需要处理的特征列名列表。\n", + " k (float): MAD 的倍数,用于确定边界。默认为 3.0。\n", + " scale_factor (float): MAD 的缩放因子。默认为 1.4826。\n", + "\n", + " WARNING: 此函数会原地修改输入的 DataFrame 'df'。\n", + " \"\"\"\n", + " print(f\"开始截面 MAD 去极值处理 (k={k})...\")\n", + " if not all(col in df.columns for col in features):\n", + " missing = [col for col in features if col not in df.columns]\n", + " print(f\"错误: DataFrame 中缺少以下特征列: {missing}。跳过去极值处理。\")\n", + " return\n", + "\n", + " grouped = df.groupby('trade_date')\n", + "\n", + " for col in tqdm(features, desc=\"MAD Filtering\"):\n", + " try:\n", + " # 计算截面中位数\n", + " median = grouped[col].transform('median')\n", + " # 计算截面 MAD (Median Absolute Deviation from Median)\n", + " mad = (df[col] - median).abs().groupby(df['trade_date']).transform('median')\n", + "\n", + " # 计算上下边界\n", + " lower_bound = median - k * scale_factor * mad\n", + " upper_bound = median + k * scale_factor * mad\n", + "\n", + " # 原地应用 clip\n", + " df[col] = np.clip(df[col], lower_bound, upper_bound)\n", + "\n", + " except KeyError:\n", + " print(f\"警告: 列 '{col}' 可能不存在或在分组中出错,跳过此列的 MAD 处理。\")\n", + " except Exception as e:\n", + " print(f\"警告: 处理列 '{col}' 时发生错误: {e},跳过此列的 MAD 处理。\")\n", + "\n", + " print(\"截面 MAD 去极值处理完成。\")\n", + "\n", + "\n", + "# --- 2. 行业市值中性化 ---\n", + "\n", + "def cs_neutralize_industry_cap(df: pd.DataFrame,\n", + " features: list,\n", + " industry_col: str = 'cat_l2_code',\n", + " market_cap_col: str = 'circ_mv'):\n", + " \"\"\"\n", + " 对指定特征列进行截面行业和对数市值中性化 (原地修改)。\n", + " 使用 OLS 回归: feature ~ 1 + log(market_cap) + C(industry)\n", + " 将回归残差写回原特征列。\n", + "\n", + " Args:\n", + " df (pd.DataFrame): 输入 DataFrame,需包含 'trade_date', features 列,\n", + " industry_col, market_cap_col。\n", + " features (list): 需要处理的特征列名列表。\n", + " industry_col (str): 行业分类列名。\n", + " market_cap_col (str): 流通市值列名。\n", + "\n", + " WARNING: 此函数会原地修改输入的 DataFrame 'df' 的 features 列。\n", + " 计算量较大,可能耗时较长。\n", + " 需要安装 statsmodels 库 (pip install statsmodels)。\n", + " \"\"\"\n", + " print(\"开始截面行业市值中性化...\")\n", + " required_cols = features + ['trade_date', industry_col, market_cap_col]\n", + " if not all(col in df.columns for col in required_cols):\n", + " missing = [col for col in required_cols if col not in df.columns]\n", + " print(f\"错误: DataFrame 中缺少必需列: {missing}。无法进行中性化。\")\n", + " return\n", + "\n", + " # 预处理:计算 log 市值,处理 industry code 可能的 NaN\n", + " log_cap_col = '_log_market_cap'\n", + " df[log_cap_col] = np.log1p(df[market_cap_col]) # log1p 处理 0 值\n", + " # df[industry_col] = df[industry_col].cat.add_categories('UnknownIndustry')\n", + " # df[industry_col] = df[industry_col].fillna('UnknownIndustry') # 填充行业 NaN\n", + " # df[industry_col] = df[industry_col].astype('category') # 转为类别,ols 会自动处理\n", + "\n", + " dates = df['trade_date'].unique()\n", + " all_residuals = [] # 用于收集所有日期的残差\n", + "\n", + " for date in tqdm(dates, desc=\"Neutralizing\"):\n", + " daily_data = df.loc[df['trade_date'] == date, features + [log_cap_col, industry_col]].copy() # 使用 .loc 获取副本\n", + "\n", + " # 准备自变量 X (常数项 + log市值 + 行业哑变量)\n", + " X = daily_data[[log_cap_col]]\n", + " X = sm.add_constant(X, prepend=True) # 添加常数项\n", + " # 创建行业哑变量 (drop_first=True 避免共线性)\n", + " industry_dummies = pd.get_dummies(daily_data[industry_col], prefix=industry_col, drop_first=True)\n", + " industry_dummies = industry_dummies.astype(int)\n", + " X = pd.concat([X, industry_dummies], axis=1)\n", + "\n", + " daily_residuals = daily_data[[col for col in features]].copy() # 创建用于存储残差的df\n", + "\n", + " for col in features:\n", + " Y = daily_data[col]\n", + "\n", + " # 处理 NaN 值,确保 X 和 Y 在相同位置有有效值\n", + " valid_mask = Y.notna() & X.notna().all(axis=1)\n", + " if valid_mask.sum() < (X.shape[1] + 1): # 数据点不足以估计模型\n", + " print(f\"警告: 日期 {date}, 特征 {col} 有效数据不足 ({valid_mask.sum()}个),无法中性化,填充 NaN。\")\n", + " daily_residuals[col] = np.nan\n", + " continue\n", + "\n", + " Y_valid = Y[valid_mask]\n", + " X_valid = X[valid_mask]\n", + "\n", + " # 执行 OLS 回归\n", + " try:\n", + " model = sm.OLS(Y_valid.to_numpy(), X_valid.to_numpy())\n", + " results = model.fit()\n", + " # 将残差填回对应位置\n", + " daily_residuals.loc[valid_mask, col] = results.resid\n", + " daily_residuals.loc[~valid_mask, col] = np.nan # 原本无效的位置填充 NaN\n", + " except Exception as e:\n", + " print(f\"警告: 日期 {date}, 特征 {col} 回归失败: {e},填充 NaN。\")\n", + " daily_residuals[col] = np.nan\n", + " break\n", + "\n", + " all_residuals.append(daily_residuals)\n", + "\n", + " # 合并所有日期的残差结果\n", + " if all_residuals:\n", + " residuals_df = pd.concat(all_residuals)\n", + " # 将残差结果更新回原始 df (原地修改)\n", + " # 使用 update 比 merge 更适合基于索引的原地更新\n", + " # 确保 residuals_df 的索引与 df 中对应部分一致\n", + " df.update(residuals_df)\n", + " else:\n", + " print(\"没有有效的残差结果可以合并。\")\n", + "\n", + "\n", + " # 清理临时列\n", + " df.drop(columns=[log_cap_col], inplace=True)\n", + " print(\"截面行业市值中性化完成。\")\n", + "\n", + "\n", + "# --- 3. Z-Score 标准化 ---\n", + "\n", + "def cs_zscore_standardize(df: pd.DataFrame, features: list, epsilon: float = 1e-10):\n", + " \"\"\"\n", + " 对指定特征列进行截面 Z-Score 标准化 (原地修改)。\n", + " 方法: Z = (value - cross_sectional_mean) / (cross_sectional_std + epsilon)\n", + "\n", + " Args:\n", + " df (pd.DataFrame): 输入 DataFrame,需包含 'trade_date' 和 features 列。\n", + " features (list): 需要处理的特征列名列表。\n", + " epsilon (float): 防止除以零的小常数。\n", + "\n", + " WARNING: 此函数会原地修改输入的 DataFrame 'df'。\n", + " \"\"\"\n", + " print(\"开始截面 Z-Score 标准化...\")\n", + " if not all(col in df.columns for col in features):\n", + " missing = [col for col in features if col not in df.columns]\n", + " print(f\"错误: DataFrame 中缺少以下特征列: {missing}。跳过标准化处理。\")\n", + " return\n", + "\n", + " grouped = df.groupby('trade_date')\n", + "\n", + " for col in tqdm(features, desc=\"Standardizing\"):\n", + " try:\n", + " # 使用 transform 计算截面均值和标准差\n", + " mean = grouped[col].transform('mean')\n", + " std = grouped[col].transform('std')\n", + "\n", + " # 计算 Z-Score 并原地赋值\n", + " df[col] = (df[col] - mean) / (std + epsilon)\n", + "\n", + " except KeyError:\n", + " print(f\"警告: 列 '{col}' 可能不存在或在分组中出错,跳过此列的标准化处理。\")\n", + " except Exception as e:\n", + " print(f\"警告: 处理列 '{col}' 时发生错误: {e},跳过此列的标准化处理。\")\n", + "\n", + " print(\"截面 Z-Score 标准化完成。\")\n", + "\n", + "def fill_nan_with_daily_median(df: pd.DataFrame, feature_columns: list[str]) -> pd.DataFrame:\n", + " \"\"\"\n", + " 对指定特征列进行每日截面中位数填充缺失值 (NaN)。\n", + "\n", + " 参数:\n", + " df (pd.DataFrame): 包含多日数据的DataFrame,需要包含 'trade_date' 和 feature_columns 中的列。\n", + " feature_columns (list[str]): 需要进行缺失值填充的特征列名称列表。\n", + "\n", + " 返回:\n", + " pd.DataFrame: 包含缺失值填充后特征列的DataFrame。在输入DataFrame的副本上操作。\n", + " \"\"\"\n", + " processed_df = df.copy() # 在副本上操作,保留原始数据\n", + "\n", + " # 确保 trade_date 是 datetime 类型以便正确分组\n", + " processed_df['trade_date'] = pd.to_datetime(processed_df['trade_date'])\n", + "\n", + " def _fill_daily_nan(group):\n", + " # group 是某一个交易日的 DataFrame\n", + "\n", + " # 遍历指定的特征列\n", + " for feature_col in feature_columns:\n", + " # 检查列是否存在于当前分组中\n", + " if feature_col in group.columns:\n", + " # 计算当日该特征的中位数\n", + " median_val = group[feature_col].median()\n", + "\n", + " # 使用当日中位数填充该特征列的 NaN 值\n", + " # inplace=True 会直接修改 group DataFrame\n", + " group[feature_col].fillna(median_val, inplace=True)\n", + " else:\n", + " print(f\"Warning: Feature column '{feature_col}' not found in daily group for {group['trade_date'].iloc[0]}. Skipping.\")\n", + "\n", + " return group\n", + "\n", + " # 按交易日期分组,并应用每日填充函数\n", + " # group_keys=False 避免将分组键添加到结果索引中\n", + " filled_df = processed_df.groupby('trade_date', group_keys=False).apply(_fill_daily_nan)\n", + "\n", + " return filled_df" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "id": "40e6b68a91b30c79", + "metadata": { + "ExecuteTime": { + "end_time": "2025-04-03T13:08:04.694262Z", + "start_time": "2025-04-03T13:08:03.694904Z" + } + }, + "outputs": [], + "source": [ + "import pandas as pd\n", + "\n", + "\n", + "def remove_outliers_label_percentile(label: pd.Series, lower_percentile: float = 0.01, upper_percentile: float = 0.99,\n", + " log=True):\n", + " if not (0 <= lower_percentile < upper_percentile <= 1):\n", + " raise ValueError(\"Percentile values must satisfy 0 <= lower_percentile < upper_percentile <= 1.\")\n", + "\n", + " # Calculate lower and upper bounds based on percentiles\n", + " lower_bound = label.quantile(lower_percentile)\n", + " upper_bound = label.quantile(upper_percentile)\n", + "\n", + " # Filter out values outside the bounds\n", + " filtered_label = label[(label >= lower_bound) & (label <= upper_bound)]\n", + "\n", + " # Print the number of removed outliers\n", + " if log:\n", + " print(f\"Removed {len(label) - len(filtered_label)} outliers.\")\n", + " return filtered_label\n", + "\n", + "\n", + "def calculate_risk_adjusted_target(df, days=5):\n", + " df = df.sort_values(by=['ts_code', 'trade_date'])\n", + "\n", + " df['future_close'] = df.groupby('ts_code')['close'].shift(-days)\n", + " df['future_open'] = df.groupby('ts_code')['open'].shift(-1)\n", + " df['future_return'] = (df['future_close'] - df['future_open']) / df['future_open']\n", + "\n", + " df['future_volatility'] = df.groupby('ts_code')['future_return'].rolling(days, min_periods=1).std().reset_index(\n", + " level=0, drop=True)\n", + " sharpe_ratio = df['future_return'] * df['future_volatility']\n", + " sharpe_ratio.replace([np.inf, -np.inf], np.nan, inplace=True)\n", + "\n", + " return sharpe_ratio\n", + "\n", + "\n", + "def calculate_score(df, days=5, lambda_param=1.0):\n", + " def calculate_max_drawdown(prices):\n", + " peak = prices.iloc[0] # 初始化峰值\n", + " max_drawdown = 0 # 初始化最大回撤\n", + "\n", + " for price in prices:\n", + " if price > peak:\n", + " peak = price # 更新峰值\n", + " else:\n", + " drawdown = (peak - price) / peak # 计算当前回撤\n", + " max_drawdown = max(max_drawdown, drawdown) # 更新最大回撤\n", + "\n", + " return max_drawdown\n", + "\n", + " def compute_stock_score(stock_df):\n", + " stock_df = stock_df.sort_values(by=['trade_date'])\n", + " future_return = stock_df['future_return']\n", + " # 使用已有的 pct_chg 字段计算波动率\n", + " volatility = stock_df['pct_chg'].rolling(days).std().shift(-days)\n", + " max_drawdown = stock_df['close'].rolling(days).apply(calculate_max_drawdown, raw=False).shift(-days)\n", + " score = future_return - lambda_param * max_drawdown\n", + " return score\n", + "\n", + " # # 确保 DataFrame 按照股票代码和交易日期排序\n", + " # df = df.sort_values(by=['ts_code', 'trade_date'])\n", + "\n", + " # 对每个股票分别计算 score\n", + " df['score'] = df.groupby('ts_code').apply(compute_stock_score).reset_index(level=0, drop=True)\n", + "\n", + " return df['score']\n", + "\n", + "\n", + "def remove_highly_correlated_features(df, feature_columns, threshold=0.9):\n", + " numeric_features = df[feature_columns].select_dtypes(include=[np.number]).columns.tolist()\n", + " if not numeric_features:\n", + " raise ValueError(\"No numeric features found in the provided data.\")\n", + "\n", + " corr_matrix = df[numeric_features].corr().abs()\n", + " upper = corr_matrix.where(np.triu(np.ones(corr_matrix.shape), k=1).astype(bool))\n", + " to_drop = [column for column in upper.columns if any(upper[column] > threshold)]\n", + " remaining_features = [col for col in feature_columns if col not in to_drop\n", + " or 'act' in col or 'af' in col]\n", + " return remaining_features\n", + "\n", + "\n", + "def cross_sectional_standardization(df, features):\n", + " df_sorted = df.sort_values(by='trade_date') # 按时间排序\n", + " df_standardized = df_sorted.copy()\n", + "\n", + " for date in df_sorted['trade_date'].unique():\n", + " # 获取当前时间点的数据\n", + " current_data = df_standardized[df_standardized['trade_date'] == date]\n", + "\n", + " # 只对指定特征进行标准化\n", + " scaler = StandardScaler()\n", + " standardized_values = scaler.fit_transform(current_data[features])\n", + "\n", + " # 将标准化结果重新赋值回去\n", + " df_standardized.loc[df_standardized['trade_date'] == date, features] = standardized_values\n", + "\n", + " return df_standardized\n", + "\n", + "\n", + "import numpy as np\n", + "import pandas as pd\n", + "\n", + "\n", + "def neutralize_manual_revised(df: pd.DataFrame, features: list, industry_col: str, mkt_cap_col: str) -> pd.DataFrame:\n", + " \"\"\"\n", + " 手动实现简单回归以提升速度,通过构建 Series 确保索引对齐。\n", + " 对特征在行业内部进行市值中性化。\n", + "\n", + " Args:\n", + " df: 输入的 DataFrame,包含特征、行业分类和市值列。\n", + " features: 需要进行中性化的特征列名列表。\n", + " industry_col: 行业分类列的列名。\n", + " mkt_cap_col: 市值列的列名。\n", + "\n", + " Returns:\n", + " 中性化后的 DataFrame。\n", + " \"\"\"\n", + "\n", + " df[mkt_cap_col] = pd.to_numeric(df[mkt_cap_col], errors='coerce')\n", + " df_cleaned = df.dropna(subset=[mkt_cap_col]).copy()\n", + " df_cleaned = df_cleaned[df_cleaned[mkt_cap_col] > 0].copy()\n", + "\n", + " if df_cleaned.empty:\n", + " print(\"警告: 清理市值异常值后 DataFrame 为空。\")\n", + " return df # 返回原始或空df,取决于清理前的状态\n", + "\n", + " processed_df = df\n", + "\n", + " for col in features:\n", + " if col not in df_cleaned.columns:\n", + " print(f\"警告: 特征列 '{col}' 不存在于清理后的 DataFrame 中,已跳过。\")\n", + " # 对于原始 df 中该列不存在的,在结果 df 中也保持原样(可能全是NaN)\n", + " processed_df[col] = df[col] if col in df.columns else np.nan\n", + " continue\n", + "\n", + " # 跳过对控制变量本身进行中性化\n", + " if col == mkt_cap_col or col == industry_col:\n", + " print(f\"警告: 特征列 '{col}' 是控制变量或内部使用的列,跳过中性化。\")\n", + " # 在结果 df 中也保持原样\n", + " processed_df[col] = df[col] if col in df.columns else np.nan\n", + " continue\n", + "\n", + " residual_series = pd.Series(index=df_cleaned.index, dtype=float)\n", + "\n", + " # 在分组前处理特征列的 NaN,只对有因子值的行进行回归计算\n", + " df_subset_factor = df_cleaned.dropna(subset=[col]).copy()\n", + "\n", + " if not df_subset_factor.empty:\n", + " for industry, group in df_subset_factor.groupby(industry_col):\n", + " x = group[mkt_cap_col] # 市值对数\n", + " y = group[col] # 因子值\n", + "\n", + " # 确保有足够的数据点 (>1) 且市值对数有方差 (>0) 进行回归计算\n", + " # 检查 np.var > 一个很小的正数,避免浮点数误差导致的零方差判断问题\n", + " if len(group) > 1 and np.var(x) > 1e-9:\n", + " try:\n", + " beta = np.cov(y, x)[0, 1] / np.var(x)\n", + " alpha = np.mean(y) - beta * np.mean(x)\n", + "\n", + " # 计算残差\n", + " resid = y - (alpha + beta * x)\n", + "\n", + " # 将计算出的残差存储到 residual_series 中,通过索引自动对齐\n", + " residual_series.loc[resid.index] = resid\n", + "\n", + " except Exception as e:\n", + " # 捕获可能的计算异常,例如np.cov或np.var因为极端数据报错\n", + " print(f\"警告: 在行业 {industry} 计算回归时发生错误: {e}。该组残差将设为原始值或 NaN。\")\n", + " # 此时该组的残差会保持 residual_series 初始化时的 NaN 或后续处理\n", + " # 也可以选择保留原始值:residual_series.loc[group.index] = group[col]\n", + "\n", + " else:\n", + " residual_series.loc[group.index] = group[col] # 保留原始因子值\n", + " processed_df.loc[residual_series.index, col] = residual_series\n", + "\n", + "\n", + " else:\n", + " processed_df[col] = np.nan # 或 df[col] if col in df.columns else np.nan\n", + "\n", + " return processed_df\n", + "\n", + "\n", + "import gc\n", + "\n", + "gc.collect()\n", + "\n", + "\n", + "def mad_filter(df, features, n=3):\n", + " for col in features:\n", + " median = df[col].median()\n", + " mad = np.median(np.abs(df[col] - median))\n", + " upper = median + n * mad\n", + " lower = median - n * mad\n", + " df[col] = np.clip(df[col], lower, upper) # 截断极值\n", + " return df\n", + "\n", + "\n", + "def percentile_filter(df, features, lower_percentile=0.01, upper_percentile=0.99):\n", + " for col in features:\n", + " # 按日期分组计算上下百分位数\n", + " lower_bound = df.groupby('trade_date')[col].transform(\n", + " lambda x: x.quantile(lower_percentile)\n", + " )\n", + " upper_bound = df.groupby('trade_date')[col].transform(\n", + " lambda x: x.quantile(upper_percentile)\n", + " )\n", + " # 截断超出范围的值\n", + " df[col] = np.clip(df[col], lower_bound, upper_bound)\n", + " return df\n", + "\n", + "\n", + "from scipy.stats import iqr\n", + "\n", + "\n", + "def iqr_filter(df, features):\n", + " for col in features:\n", + " df[col] = df.groupby('trade_date')[col].transform(\n", + " lambda x: (x - x.median()) / iqr(x) if iqr(x) != 0 else x\n", + " )\n", + " return df\n", + "\n", + "\n", + "def quantile_filter(df, features, lower_quantile=0.01, upper_quantile=0.99, window=60):\n", + " df = df.copy()\n", + " for col in features:\n", + " # 计算 rolling 统计量,需要按日期进行 groupby\n", + " rolling_lower = df.groupby('trade_date')[col].transform(lambda x: x.rolling(window=min(len(x), window)).quantile(lower_quantile))\n", + " rolling_upper = df.groupby('trade_date')[col].transform(lambda x: x.rolling(window=min(len(x), window)).quantile(upper_quantile))\n", + "\n", + " # 对数据进行裁剪\n", + " df[col] = np.clip(df[col], rolling_lower, rolling_upper)\n", + " \n", + " return df\n", + "\n", + "def select_top_features_by_rankic(df: pd.DataFrame, feature_columns: list, n: int, target_column: str = 'future_return') -> list:\n", + " \"\"\"\n", + " 计算给定特征与目标列的 RankIC,并返回 RankIC 绝对值最高的 n 个特征。\n", + "\n", + " Args:\n", + " df: 包含特征列和目标列的 Pandas DataFrame。\n", + " feature_columns: 包含所有待评估特征列名的列表。\n", + " n: 希望选取的 RankIC 绝对值最高的特征数量。\n", + " target_column: 目标列的名称,用于计算 RankIC。默认为 'future_return'。\n", + "\n", + " Returns:\n", + " 包含 RankIC 绝对值最高的 n 个特征列名的列表。\n", + " \"\"\"\n", + " numeric_columns = df.select_dtypes(include=['float64', 'int64']).columns\n", + " numeric_columns = [col for col in numeric_columns if col in feature_columns]\n", + " if target_column not in df.columns:\n", + " raise ValueError(f\"目标列 '{target_column}' 不存在于 DataFrame 中。\")\n", + "\n", + " rankic_scores = {}\n", + " for feature in numeric_columns:\n", + " if feature not in df.columns:\n", + " print(f\"警告: 特征列 '{feature}' 不存在于 DataFrame 中,已跳过。\")\n", + " continue\n", + "\n", + " # 计算特征与目标列的 RankIC (斯皮尔曼相关系数)\n", + " # dropna() 是为了处理缺失值,确保相关性计算不失败\n", + " valid_data = df[[feature, target_column]].dropna()\n", + " if len(valid_data) > 1: # 确保有足够的数据点进行相关性计算\n", + " # 计算斯皮尔曼相关性\n", + " correlation = valid_data[feature].corr(valid_data[target_column], method='spearman')\n", + " rankic_scores[feature] = abs(correlation) # 使用绝对值来衡量相关性强度\n", + " else:\n", + " rankic_scores[feature] = 0 # 数据不足,RankIC设为0或跳过\n", + "\n", + " # 将 RankIC 分数转换为 Series 便于排序\n", + " rankic_series = pd.Series(rankic_scores)\n", + "\n", + " # 按 RankIC 绝对值降序排序,选取前 n 个特征\n", + " # handle case where n might be larger than available features\n", + " n_actual = min(n, len(rankic_series))\n", + " top_features = rankic_series.sort_values(ascending=False).head(n_actual).index.tolist()\n", + " top_features = [col for col in feature_columns if col in top_features or col not in numeric_columns]\n", + " return top_features" + ] + }, + { + "cell_type": "code", + "execution_count": 69, + "id": "47c12bb34062ae7a", + "metadata": { + "ExecuteTime": { + "end_time": "2025-04-03T14:57:50.841165Z", + "start_time": "2025-04-03T14:49:25.889057Z" + } + }, + "outputs": [], + "source": [ + "days = 2\n", + "validation_days = 120\n", + "\n", + "import gc\n", + "\n", + "gc.collect()\n", + "\n", + "df = df.sort_values(by=['ts_code', 'trade_date'])\n", + "df['future_return'] = df.groupby('ts_code', group_keys=False)['close'].apply(lambda x: x.shift(-days) / x - 1)\n", + "# df['future_return'] = (df.groupby('ts_code')['close'].shift(-days) - df.groupby('ts_code')['open'].shift(-1)) / \\\n", + "# df.groupby('ts_code')['open'].shift(-1)\n", + "\n", + "df['cat_up_limit'] = df['pct_chg'] > 5\n", + "df['label'] = df.groupby('ts_code')['cat_up_limit'].rolling(window=5, min_periods=1).max().shift(-5).fillna(0).astype(int).reset_index(level=0, drop=True)\n", + "\n", + "filter_index = df['future_return'].between(df['future_return'].quantile(0.01), df['future_return'].quantile(0.99))\n", + "\n", + "# for col in [col for col in df.columns]:\n", + "# train_data[col] = train_data[col].astype('str')\n", + "# test_data[col] = test_data[col].astype('str')" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "id": "b76ea08a", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " ts_code trade_date log_circ_mv\n", + "0 000001.SZ 2019-01-02 16.574219\n", + "2738 000001.SZ 2019-01-03 16.583965\n", + "5477 000001.SZ 2019-01-04 16.633371\n", + "['undist_profit_ps', 'AR_BR', 'pe_ttm', 'alpha_22_improved', 'alpha_003', 'alpha_007', 'alpha_013', 'cat_up_limit', 'vol_break', 'weight_roc5', 'price_cost_divergence', 'smallcap_concentration', 'cost_stability', 'high_cost_break_days', 'liquidity_risk', 'turnover_std', 'mv_volatility', 'volume_growth', 'mv_growth', 'cashflow_to_ev_factor', 'ocfps', 'book_to_price_ratio', 'turnover_rate_mean_5', 'variance_20', 'bbi_ratio_factor']\n", + "去除极值\n", + "开始截面 MAD 去极值处理 (k=3.0)...\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "MAD Filtering: 100%|██████████| 24/24 [00:04<00:00, 5.00it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "截面 MAD 去极值处理完成。\n", + "开始截面 MAD 去极值处理 (k=3.0)...\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "MAD Filtering: 100%|██████████| 24/24 [00:03<00:00, 6.27it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "截面 MAD 去极值处理完成。\n", + "开始截面 MAD 去极值处理 (k=3.0)...\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "MAD Filtering: 0it [00:00, ?it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "截面 MAD 去极值处理完成。\n", + "开始截面 MAD 去极值处理 (k=3.0)...\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "MAD Filtering: 0it [00:00, ?it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "截面 MAD 去极值处理完成。\n", + "feature_columns: ['undist_profit_ps', 'AR_BR', 'pe_ttm', 'alpha_22_improved', 'alpha_003', 'alpha_007', 'alpha_013', 'cat_up_limit', 'vol_break', 'weight_roc5', 'price_cost_divergence', 'smallcap_concentration', 'cost_stability', 'high_cost_break_days', 'liquidity_risk', 'turnover_std', 'mv_volatility', 'volume_growth', 'mv_growth', 'cashflow_to_ev_factor', 'ocfps', 'book_to_price_ratio', 'turnover_rate_mean_5', 'variance_20', 'bbi_ratio_factor']\n", + "df最小日期: 2019-01-02\n", + "df最大日期: 2025-04-09\n", + "2058298\n", + "train_data最小日期: 2020-01-02\n", + "train_data最大日期: 2022-12-30\n", + "1678529\n", + "test_data最小日期: 2023-01-03\n", + "test_data最大日期: 2025-04-09\n", + " ts_code trade_date log_circ_mv\n", + "0 000001.SZ 2019-01-02 16.574219\n", + "2738 000001.SZ 2019-01-03 16.583965\n", + "5477 000001.SZ 2019-01-04 16.633371\n" + ] + } + ], + "source": [ + "train_data = df[filter_index & (df['trade_date'] <= '2023-01-01') & (df['trade_date'] >= '2020-01-01')]\n", + "test_data = df[(df['trade_date'] >= '2023-01-01')]\n", + "\n", + "print(df[['ts_code', 'trade_date', 'log_circ_mv']].head(3))\n", + "\n", + "industry_df = industry_df.sort_values(by=['trade_date'])\n", + "index_data = index_data.sort_values(by=['trade_date'])\n", + "\n", + "# train_data = train_data.merge(industry_df, on=['cat_l2_code', 'trade_date'], how='left')\n", + "# train_data = train_data.merge(index_data, on='trade_date', how='left')\n", + "# test_data = test_data.merge(industry_df, on=['cat_l2_code', 'trade_date'], how='left')\n", + "# test_data = test_data.merge(index_data, on='trade_date', how='left')\n", + "\n", + "train_data, test_data = train_data.replace([np.inf, -np.inf], np.nan), test_data.replace([np.inf, -np.inf], np.nan)\n", + "\n", + "# feature_columns_new = feature_columns[:]\n", + "# train_data, _ = create_deviation_within_dates(train_data, feature_columns)\n", + "# test_data, _ = create_deviation_within_dates(test_data, feature_columns)\n", + "\n", + "feature_columns = [\n", + " 'undist_profit_ps', \n", + " 'AR_BR', \n", + " 'pe_ttm',\n", + " 'alpha_22_improved', \n", + " 'alpha_003', \n", + " 'alpha_007', \n", + " 'alpha_013', \n", + " 'cat_up_limit', \n", + " 'cat_down_limit', \n", + " 'up_limit_count_10d', \n", + " 'down_limit_count_10d', \n", + " 'consecutive_up_limit', \n", + " 'vol_break', \n", + " 'weight_roc5', \n", + " 'price_cost_divergence', \n", + " 'smallcap_concentration', \n", + " 'cost_stability', \n", + " 'high_cost_break_days', \n", + " 'liquidity_risk', \n", + " 'turnover_std', \n", + " 'mv_volatility', \n", + " 'volume_growth', \n", + " 'mv_growth', \n", + " 'lg_flow_mom_corr_20_60', \n", + " 'lg_flow_accel', \n", + " 'profit_pressure', \n", + " 'underwater_resistance', \n", + " 'cost_conc_std_20', \n", + " 'profit_decay_20', \n", + " 'vol_amp_loss_20', \n", + " 'vol_drop_profit_cnt_5', \n", + " 'lg_flow_vol_interact_20', \n", + " 'cost_break_confirm_cnt_5', \n", + " 'atr_norm_channel_pos_14', \n", + " 'turnover_diff_skew_20', \n", + " 'lg_sm_flow_diverge_20', \n", + " 'pullback_strong_20_20', \n", + " 'vol_wgt_hist_pos_20', \n", + " 'vol_adj_roc_20',\n", + " 'cashflow_to_ev_factor',\n", + " 'ocfps',\n", + " 'book_to_price_ratio',\n", + " 'turnover_rate_mean_5',\n", + " 'variance_20',\n", + " 'bbi_ratio_factor'\n", + "]\n", + "feature_columns = [col for col in feature_columns if col in train_data.columns]\n", + "feature_columns = [col for col in feature_columns if not col.startswith('_')]\n", + "numeric_columns = df.select_dtypes(include=['float64', 'int64']).columns\n", + "numeric_columns = [col for col in numeric_columns if col in feature_columns]\n", + "# feature_columns = select_top_features_by_rankic(df, numeric_columns, n=10)\n", + "print(feature_columns)\n", + "\n", + "train_data = fill_nan_with_daily_median(train_data, feature_columns)\n", + "test_data = fill_nan_with_daily_median(test_data, feature_columns)\n", + "\n", + "train_data = train_data.dropna(subset=feature_columns)\n", + "train_data = train_data.dropna(subset=['label'])\n", + "train_data = train_data.reset_index(drop=True)\n", + "# print(test_data.tail())\n", + "test_data = test_data.dropna(subset=feature_columns)\n", + "# test_data = test_data.dropna(subset=['label'])\n", + "test_data = test_data.reset_index(drop=True)\n", + "\n", + "transform_feature_columns = feature_columns\n", + "transform_feature_columns = [col for col in transform_feature_columns if col in feature_columns and not col.startswith('cat')]\n", + "# transform_feature_columns.remove('undist_profit_ps')\n", + "print('去除极值')\n", + "cs_mad_filter(train_data, transform_feature_columns)\n", + "# print('中性化')\n", + "# cs_neutralize_industry_cap(train_data, transform_feature_columns)\n", + "# print('标准化')\n", + "# cs_zscore_standardize(train_data, transform_feature_columns)\n", + "\n", + "cs_mad_filter(test_data, transform_feature_columns)\n", + "# cs_neutralize_industry_cap(test_data, transform_feature_columns)\n", + "# cs_zscore_standardize(test_data, transform_feature_columns)\n", + "\n", + "mad_filter_feature_columns = [col for col in feature_columns if col not in transform_feature_columns and not col.startswith('cat')]\n", + "cs_mad_filter(train_data, mad_filter_feature_columns)\n", + "cs_mad_filter(test_data, mad_filter_feature_columns)\n", + "\n", + "\n", + "print(f'feature_columns: {feature_columns}')\n", + "\n", + "\n", + "print(f\"df最小日期: {df['trade_date'].min().strftime('%Y-%m-%d')}\")\n", + "print(f\"df最大日期: {df['trade_date'].max().strftime('%Y-%m-%d')}\")\n", + "print(len(train_data))\n", + "print(f\"train_data最小日期: {train_data['trade_date'].min().strftime('%Y-%m-%d')}\")\n", + "print(f\"train_data最大日期: {train_data['trade_date'].max().strftime('%Y-%m-%d')}\")\n", + "print(len(test_data))\n", + "print(f\"test_data最小日期: {test_data['trade_date'].min().strftime('%Y-%m-%d')}\")\n", + "print(f\"test_data最大日期: {test_data['trade_date'].max().strftime('%Y-%m-%d')}\")\n", + "\n", + "cat_columns = [col for col in feature_columns if col.startswith('cat')]\n", + "for col in cat_columns:\n", + " train_data[col] = train_data[col].astype('category')\n", + " test_data[col] = test_data[col].astype('category')\n", + "\n", + "print(df[['ts_code', 'trade_date', 'log_circ_mv']].head(3))\n" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "id": "e23d1759", + "metadata": {}, + "outputs": [], + "source": [ + "feature_columns = [\n", + " 'undist_profit_ps', \n", + " 'AR_BR', \n", + " 'pe_ttm',\n", + " 'alpha_22_improved', \n", + " 'alpha_003', \n", + " 'alpha_007', \n", + " 'alpha_013', \n", + " 'cat_up_limit', \n", + " 'cat_down_limit', \n", + " 'up_limit_count_10d', \n", + " 'down_limit_count_10d', \n", + " 'consecutive_up_limit', \n", + " 'vol_break', \n", + " 'weight_roc5', \n", + " 'price_cost_divergence', \n", + " 'smallcap_concentration', \n", + " 'cost_stability', \n", + " 'high_cost_break_days', \n", + " 'liquidity_risk', \n", + " 'turnover_std', \n", + " 'mv_volatility', \n", + " 'volume_growth', \n", + " 'mv_growth', \n", + " 'lg_flow_mom_corr_20_60', \n", + " 'lg_flow_accel', \n", + " 'profit_pressure', \n", + " 'underwater_resistance', \n", + " 'cost_conc_std_20', \n", + " 'profit_decay_20', \n", + " 'vol_amp_loss_20', \n", + " 'vol_drop_profit_cnt_5', \n", + " 'lg_flow_vol_interact_20', \n", + " 'cost_break_confirm_cnt_5', \n", + " 'atr_norm_channel_pos_14', \n", + " 'turnover_diff_skew_20', \n", + " 'lg_sm_flow_diverge_20', \n", + " 'pullback_strong_20_20', \n", + " 'vol_wgt_hist_pos_20', \n", + " 'vol_adj_roc_20',\n", + " 'cashflow_to_ev_factor',\n", + " 'ocfps',\n", + " 'book_to_price_ratio',\n", + " 'turnover_rate_mean_5',\n", + " 'variance_20',\n", + " 'bbi_ratio_factor'\n", + "]\n", + "feature_columns = [col for col in feature_columns if col in train_data.columns]" + ] + }, + { + "cell_type": "code", + "execution_count": 106, + "id": "8f134d435f71e9e2", + "metadata": { + "ExecuteTime": { + "end_time": "2025-04-03T14:57:51.050696Z", + "start_time": "2025-04-03T14:57:51.034030Z" + }, + "jupyter": { + "source_hidden": true + } + }, + "outputs": [], + "source": [ + "from sklearn.preprocessing import StandardScaler\n", + "from sklearn.linear_model import LogisticRegression\n", + "import matplotlib.pyplot as plt # 保持 matplotlib 导入,尽管LightGBM的绘图功能已移除\n", + "from sklearn.decomposition import PCA\n", + "import pandas as pd\n", + "import numpy as np\n", + "import datetime # 用于日期计算\n", + "from catboost import CatBoostClassifier\n", + "from catboost import Pool\n", + "\n", + "\n", + "def train_model(train_data_df, feature_columns,\n", + " print_info=True, # 调整参数名,更通用\n", + " validation_days=180, use_pca=False, split_date=None,\n", + " target_column='label'): # 增加目标列参数\n", + "\n", + " print('train data size: ', len(train_data_df))\n", + "\n", + " # 确保数据按时间排序\n", + " train_data_df = train_data_df.sort_values(by='trade_date')\n", + "\n", + " # 识别数值型特征列\n", + " numeric_feature_columns = train_data_df[feature_columns].select_dtypes(include=['float64', 'int64']).columns.tolist()\n", + "\n", + " # 去除标签为空的样本\n", + " initial_len = len(train_data_df)\n", + " train_data_df = train_data_df.dropna(subset=[target_column])\n", + "\n", + " if print_info:\n", + " print(f'原始样本数: {initial_len}, 去除标签为空后样本数: {len(train_data_df)}')\n", + "\n", + " train_data_split = train_data_df\n", + "\n", + " # 提取特征和标签,只取数值型特征用于线性回归\n", + " \n", + " if split_date is None:\n", + " all_dates = train_data_df['trade_date'].unique() # 获取所有唯一的 trade_date\n", + " split_date = all_dates[-validation_days] # 划分点为倒数第 validation_days 天\n", + " train_data_split = train_data_df[train_data_df['trade_date'] < split_date] # 训练集\n", + " val_data_split = train_data_df[train_data_df['trade_date'] >= split_date] # 验证集\n", + " \n", + " X_train = train_data_split[feature_columns]\n", + " y_train = train_data_split[target_column]\n", + " \n", + " X_val = val_data_split[feature_columns]\n", + " y_val = val_data_split['label']\n", + "\n", + " # # 标准化数值特征 (使用 StandardScaler 对训练集fit并transform, 对验证集只transform)\n", + " scaler = StandardScaler()\n", + " # X_train = scaler.fit_transform(X_train)\n", + "\n", + " # 训练线性回归模型\n", + " # model = LogisticRegression(random_state=42)\n", + " \n", + " # # 使用处理后的特征和样本权重进行训练\n", + " # model.fit(X_train, y_train)\n", + " \n", + " \n", + " cat_features = [i for i, col in enumerate(feature_columns) if col.startswith('cat')]\n", + " print(f'cat_features: {cat_features}')\n", + " # cat_features = []\n", + "\n", + " params = {\n", + " 'loss_function': 'CrossEntropy', # 适用于二分类\n", + " 'eval_metric': 'Precision', # 评估指标\n", + " 'iterations': 500,\n", + " 'learning_rate': 0.03,\n", + " 'depth': 8, # 控制模型复杂度\n", + " 'l2_leaf_reg': 1, # L2 正则化\n", + " 'verbose': 500,\n", + " 'early_stopping_rounds': 50,\n", + " # 'one_hot_max_size': 50,\n", + " # 'class_weights': [0.6, 1.2]\n", + " 'task_type': 'GPU'\n", + " }\n", + "\n", + " train_pool = Pool(data=X_train, label=y_train, cat_features=cat_features)\n", + " val_pool = Pool(data=X_val, label=y_val, cat_features=cat_features)\n", + "\n", + "\n", + " model = CatBoostClassifier(**params)\n", + " model.fit(train_pool,\n", + " eval_set=val_pool, plot=True, use_best_model=True)\n", + "\n", + "\n", + " return model, scaler, None # 返回训练好的模型、scaler 和 pca 对象" + ] + }, + { + "cell_type": "code", + "execution_count": 107, + "id": "c6eb5cd4-e714-420a-ac48-39af3e11ee81", + "metadata": { + "ExecuteTime": { + "end_time": "2025-04-03T15:03:18.426481Z", + "start_time": "2025-04-03T15:02:19.926352Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "train data size: 363894\n", + "原始样本数: 363894, 去除标签为空后样本数: 363894\n", + "cat_features: [7]\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "2c891d9511d34cd69044024e529641fc", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "MetricVisualizer(layout=Layout(align_self='stretch', height='500px'))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0:\tlearn: 0.6250000\ttest: 0.0000000\tbest: 0.0000000 (0)\ttotal: 11.5ms\tremaining: 5.74s\n", + "bestTest = 0.5761589404\n", + "bestIteration = 1\n", + "Shrink model to first 2 iterations.\n" + ] + } + ], + "source": [ + "\n", + "gc.collect()\n", + "\n", + "use_pca = False\n", + "# feature_contri = [2 if feat.startswith('act_factor') or 'buy' in feat or 'sell' in feat else 1 for feat in feature_columns]\n", + "# light_params['feature_contri'] = feature_contri\n", + "# print(f'feature_contri: {feature_contri}')\n", + "model, scaler, pca = train_model(train_data.dropna(subset=['label']).groupby('trade_date', group_keys=False).apply(lambda x: x.nsmallest(500, 'total_mv')), feature_columns)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 108, + "id": "5d1522a7538db91b", + "metadata": { + "ExecuteTime": { + "end_time": "2025-04-03T15:04:39.656944Z", + "start_time": "2025-04-03T15:04:39.298483Z" + } + }, + "outputs": [], + "source": [ + "# train_data = train_data.sort_values(by='trade_date')\n", + "# all_dates = train_data['trade_date'].unique() # 获取所有唯一的 trade_date\n", + "# split_date = all_dates[-120] # 划分点为倒数第 validation_days 天\n", + "# print(split_date)\n", + "# print(all_dates)\n", + "# val_data_split = train_data[train_data['trade_date'] >= split_date] # 验证集\n", + "\n", + "score_df = test_data\n", + "score_df = fill_nan_with_daily_median(score_df, ['pe_ttm'])\n", + "score_df = score_df[score_df['pe_ttm'] > 0]\n", + "# score_df = score_df.groupby('trade_date', group_keys=False).apply(lambda x: x.nsmallest(50, 'total_mv')).reset_index()\n", + "numeric_columns = score_df.select_dtypes(include=['float64', 'int64']).columns\n", + "numeric_columns = [col for col in feature_columns if col in numeric_columns]\n", + "# score_df.loc[:, numeric_columns] = scaler.transform(score_df[numeric_columns])\n", + "# score_df = cross_sectional_standardization(score_df, numeric_columns)\n", + "\n", + "score_df['score'] = model.predict_proba(score_df[feature_columns])[:, 1]\n", + "score_df['score_ranks'] = score_df.groupby('trade_date')['score'].rank(ascending=True)\n", + "\n", + "score_df = score_df.groupby('trade_date', group_keys=False).apply(\n", + " lambda x: x[x['score'] >= x['score'].quantile(0.90)] # 计算90%分位数作为阈值,筛选分数>=阈值的行\n", + ").reset_index(drop=True) # drop=True 避免添加旧索引列\n", + "# save_df = score_df.groupby('trade_date', group_keys=False).apply(lambda x: x.nlargest(1, 'score')).reset_index()\n", + "save_df = score_df.groupby('trade_date', group_keys=False).apply(lambda x: x.nsmallest(1, 'total_mv')).reset_index()\n", + "save_df[['trade_date', 'score', 'ts_code']].to_csv('predictions_test.tsv', index=False)\n", + "# " + ] + }, + { + "cell_type": "code", + "execution_count": 109, + "id": "340a82b9", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "59971\n", + "0 10.03\n", + "1 8.26\n", + "2 10.03\n", + "3 6.06\n", + "4 6.06\n", + " ... \n", + "179989 -0.82\n", + "179990 5.03\n", + "179991 5.78\n", + "179992 5.44\n", + "179993 2.34\n", + "Name: pct_chg, Length: 179994, dtype: float64\n" + ] + } + ], + "source": [ + "print(len(score_df[score_df['label'] == 1]))\n", + "print(score_df['pct_chg'])" + ] + }, + { + "cell_type": "code", + "execution_count": 110, + "id": "7e9023cc", + "metadata": {}, + "outputs": [], + "source": [ + "def analyze_factors(\n", + " df: pd.DataFrame,\n", + " feature_columns: list[str],\n", + " target_column: str = 'target', # 假设目标列默认为 'target'\n", + " trade_date_col: str = 'trade_date', # 假设日期列默认为 'trade_date'\n", + " mcap_col: str = 'total_mv', # 新增: 市值列名称\n", + " mcap_bins: int = 5 # 新增: 市值分位数的数量 (例如 5 表示五分位数)\n", + ") -> pd.DataFrame:\n", + " \"\"\"\n", + " 分析DataFrame中指定特征列的各种指标,包括基本统计、相关性、日间IC、ICIR以及在不同市值分位数上的IC。\n", + "\n", + " Args:\n", + " df (pd.DataFrame): 包含日期、目标列、特征列和市值列的DataFrame。\n", + " 需要包含 trade_date_col, target_column, feature_columns 和 mcap_col 中的所有列。\n", + " feature_columns (list[str]): 需要分析的特征列名称列表。\n", + " target_column (str): 目标变量列的名称。\n", + " trade_date_col (str): 交易日期列的名称。\n", + " mcap_col (str): 市值列的名称。\n", + " mcap_bins (int): 市值分位数的数量 (例如 5 表示五分位数)。\n", + "\n", + " Returns:\n", + " pd.DataFrame: 包含各个因子分析指标的汇总DataFrame。\n", + " 同时打印因子在不同市值分位数上的平均IC表格。\n", + " 如果输入数据或列有问题,可能返回空或包含NaN的DataFrame。\n", + " \"\"\"\n", + "\n", + " # --- 数据校验 ---\n", + " required_cols = [trade_date_col, target_column, mcap_col] + feature_columns\n", + " if not all(col in df.columns for col in required_cols):\n", + " missing = [col for col in required_cols if col not in df.columns]\n", + " print(f\"错误: 输入DataFrame缺少必需的列: {missing}\")\n", + " return pd.DataFrame() # 返回空DataFrame\n", + "\n", + " # 确保日期列是 datetime 类型\n", + " df = df.copy() # 在副本上操作\n", + " df[trade_date_col] = pd.to_datetime(df[trade_date_col], errors='coerce')\n", + " df.dropna(subset=[trade_date_col], inplace=True) # 移除日期转换失败的行\n", + "\n", + " # 过滤掉那些在 feature_columns, target_column, mcap_col 上有 NaN 的行,以确保后续计算是在完整数据上\n", + " # 直接在 df 副本上进行清洗\n", + " initial_rows_before_clean = len(df)\n", + " df.dropna(subset=feature_columns + [target_column, mcap_col], inplace=True)\n", + " rows_dropped_clean = initial_rows_before_clean - len(df)\n", + " if rows_dropped_clean > 0:\n", + " print(f\"警告: 移除了 {rows_dropped_clean} 行,因为其特征、目标或市值列存在空值。\")\n", + "\n", + " if df.empty:\n", + " print(\"错误: 清理缺失值后数据为空,无法进行因子分析。\")\n", + " return pd.DataFrame() # 返回空DataFrame\n", + "\n", + "\n", + " print(f\"开始分析 {len(feature_columns)} 个因子指标...\")\n", + "\n", + " # --- 1. 基本因子统计量 ---\n", + " basic_stats = df[feature_columns].describe().T\n", + "\n", + " print(\"\\n--- 基本因子统计量 ---\")\n", + " print(basic_stats)\n", + "\n", + " # --- 2. 因子与目标变量的整体相关性 ---\n", + " overall_correlation = {}\n", + " for feature in feature_columns:\n", + " # 在清理后的 df 上计算相关性\n", + " if df[[feature, target_column]].dropna().shape[0] > 1: # 确保至少有两个有效数据点\n", + " overall_correlation[feature] = {\n", + " 'Pearson_Correlation_with_Target': df[feature].corr(df[target_column], method='pearson'),\n", + " 'Spearman_Correlation_with_Target': df[feature].corr(df[target_column], method='spearman')\n", + " }\n", + " else:\n", + " overall_correlation[feature] = {\n", + " 'Pearson_Correlation_with_Target': np.nan,\n", + " 'Spearman_Correlation_with_Target': np.nan\n", + " }\n", + " overall_corr_df = pd.DataFrame.from_dict(overall_correlation, orient='index')\n", + "\n", + " print(\"\\n--- 因子与目标变量的整体相关性 ---\")\n", + " print(overall_corr_df)\n", + "\n", + " # --- 3. 因子之间的相关性矩阵 ---\n", + " # 在清理后的 df 上计算相关性\n", + " factor_correlation_matrix = df[feature_columns].corr(method='spearman') # 改回 Spearman\n", + "\n", + " print(\"\\n--- 因子之间的相关性矩阵 (Spearman) ---\") # 修正打印信息\n", + " print(factor_correlation_matrix)\n", + "\n", + " # --- 4. 日间 IC 和 ICIR ---\n", + " print(\"\\n--- 计算日间 IC (Spearman 相关性) 和 ICIR ---\")\n", + "\n", + " # 直接在清理后的 df 上计算每日 IC\n", + " if df.empty: # 理论上上面已经检查过,这里再检查一次更安全\n", + " daily_ic_series = pd.Series(dtype=float) # 空 Series\n", + " ic_stats = pd.DataFrame({\n", + " 'Mean_IC (Spearman)': np.nan, 'Std_Dev_IC': np.nan, 'ICIR': np.nan\n", + " }, index=feature_columns)\n", + " else:\n", + " daily_ic_series = df.groupby(trade_date_col).apply(\n", + " lambda day_group: {\n", + " feature: day_group[feature].corr(day_group[target_column], method='spearman')\n", + " for feature in feature_columns if day_group.shape[0] > 1 # 确保每日数据点多于1才能计算相关性\n", + " }\n", + " ).apply(pd.Series) # 将字典结果转换为 DataFrame\n", + "\n", + " # 计算 IC 的统计量\n", + " if not daily_ic_series.empty:\n", + " ic_mean = daily_ic_series.mean()\n", + " ic_std = daily_ic_series.std()\n", + " # 避免除以零\n", + " ic_ir = ic_mean / ic_std.replace(0, np.nan) # 使用 replace 0 为 NaN\n", + "\n", + " ic_stats = pd.DataFrame({\n", + " 'Mean_IC (Spearman)': ic_mean,\n", + " 'Std_Dev_IC': ic_std,\n", + " 'ICIR': ic_ir\n", + " })\n", + " print(\"\\n--- 日间 IC 和 ICIR (Spearman) ---\")\n", + " print(ic_stats)\n", + " else:\n", + " ic_stats = pd.DataFrame({\n", + " 'Mean_IC (Spearman)': np.nan, 'Std_Dev_IC': np.nan, 'ICIR': np.nan\n", + " }, index=feature_columns)\n", + "\n", + "\n", + " # --- 5. 因子在不同市值分位数上的平均 IC ---\n", + " print(f\"\\n--- 计算因子在 {mcap_bins} 个市值分位数上的平均 IC (Spearman) ---\")\n", + "\n", + " # 在清理后的 df 上计算每日市值分位数,直接添加到 df 中\n", + " # 使用 transform() 和 qcut() 在每个日期分组内计算分位数\n", + " # labels=False 返回整数 0 to mcap_bins-1\n", + " # duplicates='drop' 处理在某些日期股票数量少于 bins 导致分位数边缘重复的情况,会返回 NaN\n", + " # 添加一个临时列来存储分位数\n", + " mcap_bin_col_name = f'_mcap_bin_{mcap_bins}'\n", + " df[mcap_bin_col_name] = df.groupby(trade_date_col)[mcap_col].transform(\n", + " lambda x: pd.qcut(x, q=mcap_bins, labels=False, duplicates='drop') if len(x) >= mcap_bins else np.nan # 确保股票数量足够进行分位数划分\n", + " )\n", + "\n", + " # 过滤掉无法划分分位数 (NaN) 的行,进行分位数 IC 计算\n", + " # 创建一个临时 DataFrame df_binned_analysis\n", + " df_binned_analysis = df.dropna(subset=[mcap_bin_col_name]).copy()\n", + "\n", + " if df_binned_analysis.empty:\n", + " print(\"错误: 划分市值分位数后数据为空,无法计算分位数上的 IC。\")\n", + " avg_ic_by_bin = pd.DataFrame(index=range(mcap_bins), columns=feature_columns) # Placeholder\n", + " else:\n", + " # 按日期和市值分位数分组,计算每个分组内的因子与目标变量的截面相关性 (分位数IC)\n", + " binned_ic_by_day = df_binned_analysis.groupby([trade_date_col, mcap_bin_col_name]).apply(\n", + " lambda group: {\n", + " feature: group[feature].corr(group[target_column], method='spearman')\n", + " for feature in feature_columns if group.shape[0] > 1 # 确保分位数组内数据点多于1\n", + " }\n", + " ).apply(pd.Series) # 将嵌套结果转为 DataFrame\n", + "\n", + " # 对每个分位数组的每日 IC 求平均\n", + " # unstack(level=mcap_bin_col_name) 将 mcap_bin 作为列\n", + " # mean(axis=0) 对日期索引求平均\n", + " avg_ic_by_bin = binned_ic_by_day.unstack(level=mcap_bin_col_name).mean(axis=0).unstack()\n", + "\n", + " # 重命名索引和列,使表格更清晰\n", + " if not avg_ic_by_bin.empty:\n", + " # Index name will be the original column name used for grouping ('_mcap_bin_X')\n", + " # Rename the index name explicitly\n", + " avg_ic_by_bin.index.name = 'MarketCap_Bin'\n", + " avg_ic_by_bin.columns.name = 'Feature'\n", + " # 可以根据需要对分位数 bin 索引进行排序 (虽然 pd.qcut labels=False usually sorts)\n", + " avg_ic_by_bin = avg_ic_by_bin.sort_index()\n", + "\n", + " print(avg_ic_by_bin)\n", + "\n", + "\n", + " # --- 6. 汇总所有指标 ---\n", + " # 将基本统计、整体相关性、IC/ICIR 合并到一个 DataFrame\n", + " # 注意:合并时需要根据索引进行对齐 (因子名称)\n", + " summary_df = basic_stats\n", + " summary_df = summary_df.merge(overall_corr_df, left_index=True, right_index=True, how='left')\n", + " summary_df = summary_df.merge(ic_stats, left_index=True, right_index=True, how='left')\n", + "\n", + " # print(\"\\n--- 因子分析汇总报告 ---\")\n", + " # print(summary_df)\n", + "\n", + " # --- 清理临时列 'mcap_bin' ---\n", + " # 修正:在函数结束时从我们一直在操作的 df 副本中删除临时列\n", + " if mcap_bin_col_name in df.columns:\n", + " df.drop(columns=[mcap_bin_col_name], inplace=True)\n", + "\n", + "\n", + " return summary_df # 主要返回汇总报告,分位数IC单独打印\n", + "\n", + "# # 运行分析函数\n", + "# factor_analysis_report = analyze_factors(test_data.copy(), feature_columns, 'future_return')\n", + "\n", + "# print(\"\\n--- 最终汇总报告 DataFrame ---\")\n", + "# print(factor_analysis_report)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "new_trader", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.11" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/main/train/LinearRegression.ipynb b/main/train/LinearRegression.ipynb new file mode 100644 index 0000000..fbf9a81 --- /dev/null +++ b/main/train/LinearRegression.ipynb @@ -0,0 +1,1929 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "79a7758178bafdd3", + "metadata": { + "ExecuteTime": { + "end_time": "2025-04-03T12:46:06.987506Z", + "start_time": "2025-04-03T12:46:06.259551Z" + }, + "jupyter": { + "source_hidden": true + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "e:\\PyProject\\NewStock\\main\\train\n" + ] + } + ], + "source": [ + "%load_ext autoreload\n", + "%autoreload 2\n", + "\n", + "import gc\n", + "import os\n", + "import sys\n", + "sys.path.append('../../')\n", + "print(os.getcwd())\n", + "import pandas as pd\n", + "from main.factor.factor import get_rolling_factor, get_simple_factor\n", + "from main.utils.factor import read_industry_data\n", + "from main.utils.factor_processor import calculate_score\n", + "from main.utils.utils import read_and_merge_h5_data, merge_with_industry_data\n", + "\n", + "import warnings\n", + "\n", + "warnings.filterwarnings(\"ignore\")" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "a79cafb06a7e0e43", + "metadata": { + "ExecuteTime": { + "end_time": "2025-04-03T12:47:00.212859Z", + "start_time": "2025-04-03T12:46:06.998047Z" + }, + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "daily data\n", + "daily basic\n", + "inner merge on ['ts_code', 'trade_date']\n", + "stk limit\n", + "left merge on ['ts_code', 'trade_date']\n", + "money flow\n", + "left merge on ['ts_code', 'trade_date']\n", + "cyq perf\n", + "left merge on ['ts_code', 'trade_date']\n", + "\n", + "RangeIndex: 8509852 entries, 0 to 8509851\n", + "Data columns (total 32 columns):\n", + " # Column Dtype \n", + "--- ------ ----- \n", + " 0 ts_code object \n", + " 1 trade_date datetime64[ns]\n", + " 2 open float64 \n", + " 3 close float64 \n", + " 4 high float64 \n", + " 5 low float64 \n", + " 6 vol float64 \n", + " 7 pct_chg float64 \n", + " 8 turnover_rate float64 \n", + " 9 pe_ttm float64 \n", + " 10 circ_mv float64 \n", + " 11 total_mv float64 \n", + " 12 volume_ratio float64 \n", + " 13 is_st bool \n", + " 14 up_limit float64 \n", + " 15 down_limit float64 \n", + " 16 buy_sm_vol float64 \n", + " 17 sell_sm_vol float64 \n", + " 18 buy_lg_vol float64 \n", + " 19 sell_lg_vol float64 \n", + " 20 buy_elg_vol float64 \n", + " 21 sell_elg_vol float64 \n", + " 22 net_mf_vol float64 \n", + " 23 his_low float64 \n", + " 24 his_high float64 \n", + " 25 cost_5pct float64 \n", + " 26 cost_15pct float64 \n", + " 27 cost_50pct float64 \n", + " 28 cost_85pct float64 \n", + " 29 cost_95pct float64 \n", + " 30 weight_avg float64 \n", + " 31 winner_rate float64 \n", + "dtypes: bool(1), datetime64[ns](1), float64(29), object(1)\n", + "memory usage: 2.0+ GB\n", + "None\n" + ] + } + ], + "source": [ + "from main.utils.utils import read_and_merge_h5_data\n", + "\n", + "print('daily data')\n", + "df = read_and_merge_h5_data('../../data/daily_data.h5', key='daily_data',\n", + " columns=['ts_code', 'trade_date', 'open', 'close', 'high', 'low', 'vol', 'pct_chg'],\n", + " df=None)\n", + "\n", + "print('daily basic')\n", + "df = read_and_merge_h5_data('../../data/daily_basic.h5', key='daily_basic',\n", + " columns=['ts_code', 'trade_date', 'turnover_rate', 'pe_ttm', 'circ_mv', 'total_mv', 'volume_ratio',\n", + " 'is_st'], df=df, join='inner')\n", + "\n", + "print('stk limit')\n", + "df = read_and_merge_h5_data('../../data/stk_limit.h5', key='stk_limit',\n", + " columns=['ts_code', 'trade_date', 'pre_close', 'up_limit', 'down_limit'],\n", + " df=df)\n", + "print('money flow')\n", + "df = read_and_merge_h5_data('../../data/money_flow.h5', key='money_flow',\n", + " columns=['ts_code', 'trade_date', 'buy_sm_vol', 'sell_sm_vol', 'buy_lg_vol', 'sell_lg_vol',\n", + " 'buy_elg_vol', 'sell_elg_vol', 'net_mf_vol'],\n", + " df=df)\n", + "print('cyq perf')\n", + "df = read_and_merge_h5_data('../../data/cyq_perf.h5', key='cyq_perf',\n", + " columns=['ts_code', 'trade_date', 'his_low', 'his_high', 'cost_5pct', 'cost_15pct',\n", + " 'cost_50pct',\n", + " 'cost_85pct', 'cost_95pct', 'weight_avg', 'winner_rate'],\n", + " df=df)\n", + "print(df.info())" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "cac01788dac10678", + "metadata": { + "ExecuteTime": { + "end_time": "2025-04-03T12:47:10.527104Z", + "start_time": "2025-04-03T12:47:00.488715Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "industry\n" + ] + } + ], + "source": [ + "print('industry')\n", + "industry_df = read_and_merge_h5_data('../../data/industry_data.h5', key='industry_data',\n", + " columns=['ts_code', 'l2_code', 'in_date'],\n", + " df=None, on=['ts_code'], join='left')\n", + "\n", + "\n", + "def merge_with_industry_data(df, industry_df):\n", + " # 确保日期字段是 datetime 类型\n", + " df['trade_date'] = pd.to_datetime(df['trade_date'])\n", + " industry_df['in_date'] = pd.to_datetime(industry_df['in_date'])\n", + "\n", + " # 对 industry_df 按 ts_code 和 in_date 排序\n", + " industry_df_sorted = industry_df.sort_values(['in_date', 'ts_code'])\n", + "\n", + " # 对原始 df 按 ts_code 和 trade_date 排序\n", + " df_sorted = df.sort_values(['trade_date', 'ts_code'])\n", + "\n", + " # 使用 merge_asof 进行向后合并\n", + " merged = pd.merge_asof(\n", + " df_sorted,\n", + " industry_df_sorted,\n", + " by='ts_code', # 按 ts_code 分组\n", + " left_on='trade_date',\n", + " right_on='in_date',\n", + " direction='backward'\n", + " )\n", + "\n", + " # 获取每个 ts_code 的最早 in_date 记录\n", + " min_in_date_per_ts = (industry_df_sorted\n", + " .groupby('ts_code')\n", + " .first()\n", + " .reset_index()[['ts_code', 'l2_code']])\n", + "\n", + " # 填充未匹配到的记录(trade_date 早于所有 in_date 的情况)\n", + " merged['l2_code'] = merged['l2_code'].fillna(\n", + " merged['ts_code'].map(min_in_date_per_ts.set_index('ts_code')['l2_code'])\n", + " )\n", + "\n", + " # 保留需要的列并重置索引\n", + " result = merged.reset_index(drop=True)\n", + " return result\n", + "\n", + "\n", + "# 使用示例\n", + "df = merge_with_industry_data(df, industry_df)\n", + "# print(mdf[mdf['ts_code'] == '600751.SH'][['ts_code', 'trade_date', 'l2_code']])" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "c4e9e1d31da6dba6", + "metadata": { + "ExecuteTime": { + "end_time": "2025-04-03T12:47:10.719252Z", + "start_time": "2025-04-03T12:47:10.541247Z" + }, + "jupyter": { + "source_hidden": true + } + }, + "outputs": [], + "source": [ + "def calculate_indicators(df):\n", + " \"\"\"\n", + " 计算四个指标:当日涨跌幅、5日移动平均、RSI、MACD。\n", + " \"\"\"\n", + " df = df.sort_values('trade_date')\n", + " df['daily_return'] = (df['close'] - df['pre_close']) / df['pre_close'] * 100\n", + " # df['5_day_ma'] = df['close'].rolling(window=5).mean()\n", + " delta = df['close'].diff()\n", + " gain = delta.where(delta > 0, 0)\n", + " loss = -delta.where(delta < 0, 0)\n", + " avg_gain = gain.rolling(window=14).mean()\n", + " avg_loss = loss.rolling(window=14).mean()\n", + " rs = avg_gain / avg_loss\n", + " df['RSI'] = 100 - (100 / (1 + rs))\n", + "\n", + " # 计算MACD\n", + " ema12 = df['close'].ewm(span=12, adjust=False).mean()\n", + " ema26 = df['close'].ewm(span=26, adjust=False).mean()\n", + " df['MACD'] = ema12 - ema26\n", + " df['Signal_line'] = df['MACD'].ewm(span=9, adjust=False).mean()\n", + " df['MACD_hist'] = df['MACD'] - df['Signal_line']\n", + "\n", + " # 4. 情绪因子1:市场上涨比例(Up Ratio)\n", + " df['up_ratio'] = df['daily_return'].apply(lambda x: 1 if x > 0 else 0)\n", + " df['up_ratio_20d'] = df['up_ratio'].rolling(window=20).mean() # 过去20天上涨比例\n", + "\n", + " # 5. 情绪因子2:成交量变化率(Volume Change Rate)\n", + " df['volume_mean'] = df['vol'].rolling(window=20).mean() # 过去20天的平均成交量\n", + " df['volume_change_rate'] = (df['vol'] - df['volume_mean']) / df['volume_mean'] * 100 # 成交量变化率\n", + "\n", + " # 6. 情绪因子3:波动率(Volatility)\n", + " df['volatility'] = df['daily_return'].rolling(window=20).std() # 过去20天的日收益率标准差\n", + "\n", + " # 7. 情绪因子4:成交额变化率(Amount Change Rate)\n", + " df['amount_mean'] = df['amount'].rolling(window=20).mean() # 过去20天的平均成交额\n", + " df['amount_change_rate'] = (df['amount'] - df['amount_mean']) / df['amount_mean'] * 100 # 成交额变化率\n", + "\n", + " return df\n", + "\n", + "\n", + "def generate_index_indicators(h5_filename):\n", + " df = pd.read_hdf(h5_filename, key='index_data')\n", + " df['trade_date'] = pd.to_datetime(df['trade_date'], format='%Y%m%d')\n", + " df = df.sort_values('trade_date')\n", + "\n", + " # 计算每个ts_code的相关指标\n", + " df_indicators = []\n", + " for ts_code in df['ts_code'].unique():\n", + " df_index = df[df['ts_code'] == ts_code].copy()\n", + " df_index = calculate_indicators(df_index)\n", + " df_indicators.append(df_index)\n", + "\n", + " # 合并所有指数的结果\n", + " df_all_indicators = pd.concat(df_indicators, ignore_index=True)\n", + "\n", + " # 保留trade_date列,并将同一天的数据按ts_code合并成一行\n", + " df_final = df_all_indicators.pivot_table(\n", + " index='trade_date',\n", + " columns='ts_code',\n", + " values=['daily_return', 'RSI', 'MACD', 'Signal_line',\n", + " 'MACD_hist', 'up_ratio_20d', 'volume_change_rate', 'volatility',\n", + " 'amount_change_rate', 'amount_mean'],\n", + " aggfunc='last'\n", + " )\n", + "\n", + " df_final.columns = [f\"{col[1]}_{col[0]}\" for col in df_final.columns]\n", + " df_final = df_final.reset_index()\n", + "\n", + " return df_final\n", + "\n", + "\n", + "# 使用函数\n", + "h5_filename = '../../data/index_data.h5'\n", + "index_data = generate_index_indicators(h5_filename)\n", + "index_data = index_data.dropna()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "a735bc02ceb4d872", + "metadata": { + "ExecuteTime": { + "end_time": "2025-04-03T12:47:10.821169Z", + "start_time": "2025-04-03T12:47:10.751831Z" + } + }, + "outputs": [], + "source": [ + "import talib\n", + "import numpy as np" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "53f86ddc0677a6d7", + "metadata": { + "ExecuteTime": { + "end_time": "2025-04-03T12:47:15.944254Z", + "start_time": "2025-04-03T12:47:10.826179Z" + }, + "jupyter": { + "source_hidden": true + }, + "scrolled": true + }, + "outputs": [], + "source": [ + "from main.utils.factor import get_act_factor\n", + "\n", + "\n", + "def read_industry_data(h5_filename):\n", + " # 读取 H5 文件中所有的行业数据\n", + " industry_data = pd.read_hdf(h5_filename, key='sw_daily', columns=[\n", + " 'ts_code', 'trade_date', 'open', 'close', 'high', 'low', 'pe', 'pb', 'vol'\n", + " ]) # 假设 H5 文件的键是 'industry_data'\n", + " industry_data = industry_data.sort_values(by=['ts_code', 'trade_date'])\n", + " industry_data = industry_data.reindex()\n", + " industry_data['trade_date'] = pd.to_datetime(industry_data['trade_date'], format='%Y%m%d')\n", + "\n", + " grouped = industry_data.groupby('ts_code', group_keys=False)\n", + " industry_data['obv'] = grouped.apply(\n", + " lambda x: pd.Series(talib.OBV(x['close'].values, x['vol'].values), index=x.index)\n", + " )\n", + " industry_data['return_5'] = grouped['close'].apply(lambda x: x / x.shift(5) - 1)\n", + " industry_data['return_20'] = grouped['close'].apply(lambda x: x / x.shift(20) - 1)\n", + "\n", + " industry_data = get_act_factor(industry_data, cat=False)\n", + " industry_data = industry_data.sort_values(by=['trade_date', 'ts_code'])\n", + "\n", + " # # 计算每天每个 ts_code 的因子和当天所有 ts_code 的中位数的偏差\n", + " # factor_columns = ['obv', 'return_5', 'return_20', 'act_factor1', 'act_factor2', 'act_factor3', 'act_factor4'] # 因子列\n", + " # \n", + " # for factor in factor_columns:\n", + " # if factor in industry_data.columns:\n", + " # # 计算每天每个 ts_code 的因子值与当天所有 ts_code 的中位数的偏差\n", + " # industry_data[f'{factor}_deviation'] = industry_data.groupby('trade_date')[factor].transform(\n", + " # lambda x: x - x.mean())\n", + "\n", + " industry_data['return_5_percentile'] = industry_data.groupby('trade_date')['return_5'].transform(\n", + " lambda x: x.rank(pct=True))\n", + " industry_data['return_20_percentile'] = industry_data.groupby('trade_date')['return_20'].transform(\n", + " lambda x: x.rank(pct=True))\n", + " industry_data = industry_data.drop(columns=['open', 'close', 'high', 'low', 'pe', 'pb', 'vol'])\n", + "\n", + " industry_data = industry_data.rename(\n", + " columns={col: f'industry_{col}' for col in industry_data.columns if col not in ['ts_code', 'trade_date']})\n", + "\n", + " industry_data = industry_data.rename(columns={'ts_code': 'cat_l2_code'})\n", + " return industry_data\n", + "\n", + "\n", + "industry_df = read_industry_data('../../data/sw_daily.h5')\n" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "dbe2fd8021b9417f", + "metadata": { + "ExecuteTime": { + "end_time": "2025-04-03T12:47:15.969344Z", + "start_time": "2025-04-03T12:47:15.963327Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['ts_code', 'open', 'close', 'high', 'low', 'circ_mv', 'total_mv', 'is_st', 'up_limit', 'down_limit', 'buy_sm_vol', 'sell_sm_vol', 'buy_lg_vol', 'sell_lg_vol', 'buy_elg_vol', 'sell_elg_vol', 'net_mf_vol', 'his_low', 'his_high', 'cost_5pct', 'cost_15pct', 'cost_50pct', 'cost_85pct', 'cost_95pct', 'weight_avg', 'in_date']\n" + ] + } + ], + "source": [ + "origin_columns = df.columns.tolist()\n", + "origin_columns = [col for col in origin_columns if\n", + " col not in ['turnover_rate', 'pe_ttm', 'volume_ratio', 'vol', 'pct_chg', 'l2_code', 'winner_rate']]\n", + "origin_columns = [col for col in origin_columns if col not in index_data.columns]\n", + "origin_columns = [col for col in origin_columns if 'cyq' not in col]\n", + "print(origin_columns)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "85c3e3d0235ffffa", + "metadata": { + "ExecuteTime": { + "end_time": "2025-04-03T12:47:16.089879Z", + "start_time": "2025-04-03T12:47:15.990101Z" + } + }, + "outputs": [], + "source": [ + "fina_indicator_df = read_and_merge_h5_data('../../data/fina_indicator.h5', key='fina_indicator',\n", + " columns=['ts_code', 'ann_date', 'undist_profit_ps', 'ocfps', 'bps'],\n", + " df=None)\n", + "cashflow_df = read_and_merge_h5_data('../../data/cashflow.h5', key='cashflow',\n", + " columns=['ts_code', 'ann_date', 'n_cashflow_act'],\n", + " df=None)\n", + "balancesheet_df = read_and_merge_h5_data('../../data/balancesheet.h5', key='balancesheet',\n", + " columns=['ts_code', 'ann_date', 'money_cap', 'total_liab'],\n", + " df=None)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "a1c5858e", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Index(['ts_code', 'ann_date', 'money_cap', 'total_liab'], dtype='object')\n" + ] + } + ], + "source": [ + "print(balancesheet_df.columns)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "92d84ce15a562ec6", + "metadata": { + "ExecuteTime": { + "end_time": "2025-04-03T13:08:01.612695Z", + "start_time": "2025-04-03T12:47:16.121802Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "开始计算因子: AR, BR (原地修改)...\n", + "因子 AR, BR 计算成功。\n", + "因子 AR, BR 计算流程结束。\n", + "使用 'ann_date' 作为财务数据生效日期。\n", + "使用 'ann_date' 作为财务数据生效日期。\n", + "使用 'ann_date' 作为财务数据生效日期。\n", + "使用 'ann_date' 作为财务数据生效日期。\n", + "警告: 从 financial_data_subset 中移除了 366 行,因为其 'ts_code' 或 'ann_date' 列存在空值。\n", + "计算 BBI...\n", + "Index(['ts_code', 'trade_date', 'open', 'close', 'high', 'low', 'vol',\n", + " 'pct_chg', 'turnover_rate', 'pe_ttm', 'circ_mv', 'total_mv',\n", + " 'volume_ratio', 'is_st', 'up_limit', 'down_limit', 'buy_sm_vol',\n", + " 'sell_sm_vol', 'buy_lg_vol', 'sell_lg_vol', 'buy_elg_vol',\n", + " 'sell_elg_vol', 'net_mf_vol', 'his_low', 'his_high', 'cost_5pct',\n", + " 'cost_15pct', 'cost_50pct', 'cost_85pct', 'cost_95pct', 'weight_avg',\n", + " 'winner_rate', 'cat_l2_code', 'undist_profit_ps', 'ocfps', 'AR', 'BR',\n", + " 'AR_BR', 'log_circ_mv', 'cashflow_to_ev_factor', 'book_to_price_ratio',\n", + " 'turnover_rate_mean_5', 'variance_20', 'bbi_ratio_factor',\n", + " 'future_return', 'future_volatility', 'label', 'lg_elg_net_buy_vol',\n", + " 'flow_lg_elg_intensity', 'sm_net_buy_vol', 'flow_divergence_diff',\n", + " 'flow_divergence_ratio', 'total_buy_vol', 'lg_elg_buy_prop',\n", + " 'flow_struct_buy_change', 'lg_elg_net_buy_vol_change',\n", + " 'flow_lg_elg_accel', 'chip_concentration_range', 'chip_skewness',\n", + " 'floating_chip_proxy', 'cost_support_15pct_change',\n", + " 'cat_winner_price_zone', 'flow_chip_consistency',\n", + " 'profit_taking_vs_absorb', '_is_positive', '_is_negative',\n", + " 'cat_is_positive', '_pos_returns', '_neg_returns', '_pos_returns_sq',\n", + " '_neg_returns_sq', 'upside_vol', 'downside_vol', 'vol_ratio',\n", + " 'return_skew', 'return_kurtosis', 'volume_change_rate',\n", + " 'cat_volume_breakout', 'turnover_deviation', 'cat_turnover_spike',\n", + " 'avg_volume_ratio', 'cat_volume_ratio_breakout', 'vol_spike',\n", + " 'vol_std_5', 'atr_14', 'atr_6', 'obv'],\n", + " dtype='object')\n", + "\n", + "Index: 4450396 entries, 0 to 4450395\n", + "Columns: 123 entries, ts_code to mv_growth\n", + "dtypes: bool(6), datetime64[ns](1), float64(110), int32(3), int64(1), object(2)\n", + "memory usage: 3.9+ GB\n", + "None\n", + "['ts_code', 'trade_date', 'open', 'close', 'high', 'low', 'vol', 'pct_chg', 'turnover_rate', 'pe_ttm', 'circ_mv', 'total_mv', 'volume_ratio', 'is_st', 'up_limit', 'down_limit', 'buy_sm_vol', 'sell_sm_vol', 'buy_lg_vol', 'sell_lg_vol', 'buy_elg_vol', 'sell_elg_vol', 'net_mf_vol', 'his_low', 'his_high', 'cost_5pct', 'cost_15pct', 'cost_50pct', 'cost_85pct', 'cost_95pct', 'weight_avg', 'winner_rate', 'cat_l2_code', 'undist_profit_ps', 'ocfps', 'AR', 'BR', 'AR_BR', 'log_circ_mv', 'cashflow_to_ev_factor', 'book_to_price_ratio', 'turnover_rate_mean_5', 'variance_20', 'bbi_ratio_factor', 'future_return', 'future_volatility', 'label', 'lg_elg_net_buy_vol', 'flow_lg_elg_intensity', 'sm_net_buy_vol', 'flow_divergence_diff', 'flow_divergence_ratio', 'total_buy_vol', 'lg_elg_buy_prop', 'flow_struct_buy_change', 'lg_elg_net_buy_vol_change', 'flow_lg_elg_accel', 'chip_concentration_range', 'chip_skewness', 'floating_chip_proxy', 'cost_support_15pct_change', 'cat_winner_price_zone', 'flow_chip_consistency', 'profit_taking_vs_absorb', 'cat_is_positive', 'upside_vol', 'downside_vol', 'vol_ratio', 'return_skew', 'return_kurtosis', 'volume_change_rate', 'cat_volume_breakout', 'turnover_deviation', 'cat_turnover_spike', 'avg_volume_ratio', 'cat_volume_ratio_breakout', 'vol_spike', 'vol_std_5', 'atr_14', 'atr_6', 'obv', 'maobv_6', 'rsi_3', 'return_5', 'return_20', 'std_return_5', 'std_return_90', 'std_return_90_2', '_ema_5', '_ema_13', '_ema_20', '_ema_60', 'act_factor1', 'act_factor2', 'act_factor3', 'act_factor4', 'rank_act_factor1', 'rank_act_factor2', 'rank_act_factor3', 'cov', 'delta_cov', '_stddev_close', '_rank_stddev', 'alpha_22_improved', 'alpha_003', 'alpha_007', 'alpha_013', 'cat_up_limit', 'cat_down_limit', 'up_limit_count_10d', 'down_limit_count_10d', 'consecutive_up_limit', 'vol_break', 'weight_roc5', 'price_cost_divergence', 'smallcap_concentration', 'cost_stability', 'high_cost_break_days', 'liquidity_risk', 'turnover_std', 'mv_volatility', 'volume_growth', 'mv_growth']\n" + ] + } + ], + "source": [ + "\n", + "import numpy as np\n", + "from main.factor.factor import *\n", + "\n", + "def filter_data(df):\n", + " # df = df.groupby('trade_date').apply(lambda x: x.nlargest(1000, 'act_factor1'))\n", + " df = df[~df['is_st']]\n", + " df = df[~df['ts_code'].str.endswith('BJ')]\n", + " df = df[~df['ts_code'].str.startswith('30')]\n", + " df = df[~df['ts_code'].str.startswith('68')]\n", + " df = df[~df['ts_code'].str.startswith('8')]\n", + " df = df[df['trade_date'] >= '2019-01-01']\n", + " if 'in_date' in df.columns:\n", + " df = df.drop(columns=['in_date'])\n", + " df = df.reset_index(drop=True)\n", + " return df\n", + "\n", + "gc.collect()\n", + "\n", + "df = filter_data(df)\n", + "df = df.sort_values(by=['ts_code', 'trade_date'])\n", + "df = add_financial_factor(df, fina_indicator_df, factor_value_col='undist_profit_ps')\n", + "df = add_financial_factor(df, fina_indicator_df, factor_value_col='ocfps')\n", + "calculate_arbr(df, N=26)\n", + "df['log_circ_mv'] = np.log(df['circ_mv'])\n", + "df = calculate_cashflow_to_ev_factor(df, cashflow_df, balancesheet_df)\n", + "df = caculate_book_to_price_ratio(df, fina_indicator_df)\n", + "df = turnover_rate_n(df, n=5)\n", + "df = variance_n(df, n=20)\n", + "df = bbi_ratio_factor(df)\n", + "# df, _ = get_rolling_factor(df)\n", + "\n", + "# lg_flow_mom_corr(df, N=20, M=60)\n", + "# lg_flow_accel(df)\n", + "# profit_pressure(df)\n", + "# underwater_resistance(df)\n", + "# cost_conc_std(df, N=20)\n", + "# profit_decay(df, N=20)\n", + "# vol_amp_loss(df, N=20)\n", + "# vol_drop_profit_cnt(df, N=20, M=5)\n", + "# lg_flow_vol_interact(df, N=20)\n", + "# cost_break_confirm_cnt(df, M=5)\n", + "# atr_norm_channel_pos(df, N=14)\n", + "# turnover_diff_skew(df, N=20)\n", + "# lg_sm_flow_diverge(df, N=20)\n", + "# pullback_strong(df, N=20, M=20)\n", + "# vol_wgt_hist_pos(df, N=20)\n", + "# vol_adj_roc(df, N=20)\n", + "\n", + "df = df.rename(columns={'l1_code': 'cat_l1_code'})\n", + "df = df.rename(columns={'l2_code': 'cat_l2_code'})\n", + "\n", + "# df = df.merge(index_data, on='trade_date', how='left')\n", + "\n", + "print(df.info())\n", + "print(df.columns.tolist())" + ] + }, + { + "cell_type": "code", + "execution_count": 90, + "id": "b87b938028afa206", + "metadata": { + "ExecuteTime": { + "end_time": "2025-04-03T13:08:03.658725Z", + "start_time": "2025-04-03T13:08:02.469611Z" + } + }, + "outputs": [], + "source": [ + "from scipy.stats import ks_2samp, wasserstein_distance\n", + "\n", + "\n", + "def remove_shifted_features(train_data, test_data, feature_columns, ks_threshold=0.05, wasserstein_threshold=0.1,\n", + " importance_threshold=0.05):\n", + " dropped_features = []\n", + "\n", + " # **统计数据漂移**\n", + " numeric_columns = train_data.select_dtypes(include=['float64', 'int64']).columns\n", + " numeric_columns = [col for col in numeric_columns if col in feature_columns]\n", + " for feature in numeric_columns:\n", + " ks_stat, p_value = ks_2samp(train_data[feature], test_data[feature])\n", + " wasserstein_dist = wasserstein_distance(train_data[feature], test_data[feature])\n", + "\n", + " if p_value < ks_threshold or wasserstein_dist > wasserstein_threshold:\n", + " dropped_features.append(feature)\n", + "\n", + " print(f\"检测到 {len(dropped_features)} 个可能漂移的特征: {dropped_features}\")\n", + "\n", + " # **应用阈值进行最终筛选**\n", + " filtered_features = [f for f in feature_columns if f not in dropped_features]\n", + "\n", + " return filtered_features, dropped_features\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 91, + "id": "f4f16d63ad18d1bc", + "metadata": { + "ExecuteTime": { + "end_time": "2025-04-03T13:08:03.670700Z", + "start_time": "2025-04-03T13:08:03.665739Z" + } + }, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "import statsmodels.api as sm # 用于中性化回归\n", + "from tqdm import tqdm # 可选,用于显示进度条\n", + "\n", + "# --- 常量 ---\n", + "epsilon = 1e-10 # 防止除零\n", + "\n", + "# --- 1. 中位数去极值 (MAD) ---\n", + "\n", + "def cs_mad_filter(df: pd.DataFrame,\n", + " features: list,\n", + " k: float = 3.0,\n", + " scale_factor: float = 1.4826):\n", + " \"\"\"\n", + " 对指定特征列进行截面 MAD 去极值处理 (原地修改)。\n", + "\n", + " 方法: 对每日截面数据,计算 median 和 MAD,\n", + " 将超出 [median - k * scale * MAD, median + k * scale * MAD] 范围的值\n", + " 替换为边界值 (Winsorization)。\n", + " scale_factor=1.4826 使得 MAD 约等于正态分布的标准差。\n", + "\n", + " Args:\n", + " df (pd.DataFrame): 输入 DataFrame,需包含 'trade_date' 和 features 列。\n", + " features (list): 需要处理的特征列名列表。\n", + " k (float): MAD 的倍数,用于确定边界。默认为 3.0。\n", + " scale_factor (float): MAD 的缩放因子。默认为 1.4826。\n", + "\n", + " WARNING: 此函数会原地修改输入的 DataFrame 'df'。\n", + " \"\"\"\n", + " print(f\"开始截面 MAD 去极值处理 (k={k})...\")\n", + " if not all(col in df.columns for col in features):\n", + " missing = [col for col in features if col not in df.columns]\n", + " print(f\"错误: DataFrame 中缺少以下特征列: {missing}。跳过去极值处理。\")\n", + " return\n", + "\n", + " grouped = df.groupby('trade_date')\n", + "\n", + " for col in tqdm(features, desc=\"MAD Filtering\"):\n", + " try:\n", + " # 计算截面中位数\n", + " median = grouped[col].transform('median')\n", + " # 计算截面 MAD (Median Absolute Deviation from Median)\n", + " mad = (df[col] - median).abs().groupby(df['trade_date']).transform('median')\n", + "\n", + " # 计算上下边界\n", + " lower_bound = median - k * scale_factor * mad\n", + " upper_bound = median + k * scale_factor * mad\n", + "\n", + " # 原地应用 clip\n", + " df[col] = np.clip(df[col], lower_bound, upper_bound)\n", + "\n", + " except KeyError:\n", + " print(f\"警告: 列 '{col}' 可能不存在或在分组中出错,跳过此列的 MAD 处理。\")\n", + " except Exception as e:\n", + " print(f\"警告: 处理列 '{col}' 时发生错误: {e},跳过此列的 MAD 处理。\")\n", + "\n", + " print(\"截面 MAD 去极值处理完成。\")\n", + "\n", + "\n", + "# --- 2. 行业市值中性化 ---\n", + "\n", + "def cs_neutralize_industry_cap(df: pd.DataFrame,\n", + " features: list,\n", + " industry_col: str = 'cat_l2_code',\n", + " market_cap_col: str = 'circ_mv'):\n", + " \"\"\"\n", + " 对指定特征列进行截面行业和对数市值中性化 (原地修改)。\n", + " 使用 OLS 回归: feature ~ 1 + log(market_cap) + C(industry)\n", + " 将回归残差写回原特征列。\n", + "\n", + " Args:\n", + " df (pd.DataFrame): 输入 DataFrame,需包含 'trade_date', features 列,\n", + " industry_col, market_cap_col。\n", + " features (list): 需要处理的特征列名列表。\n", + " industry_col (str): 行业分类列名。\n", + " market_cap_col (str): 流通市值列名。\n", + "\n", + " WARNING: 此函数会原地修改输入的 DataFrame 'df' 的 features 列。\n", + " 计算量较大,可能耗时较长。\n", + " 需要安装 statsmodels 库 (pip install statsmodels)。\n", + " \"\"\"\n", + " print(\"开始截面行业市值中性化...\")\n", + " required_cols = features + ['trade_date', industry_col, market_cap_col]\n", + " if not all(col in df.columns for col in required_cols):\n", + " missing = [col for col in required_cols if col not in df.columns]\n", + " print(f\"错误: DataFrame 中缺少必需列: {missing}。无法进行中性化。\")\n", + " return\n", + "\n", + " # 预处理:计算 log 市值,处理 industry code 可能的 NaN\n", + " log_cap_col = '_log_market_cap'\n", + " df[log_cap_col] = np.log1p(df[market_cap_col]) # log1p 处理 0 值\n", + " # df[industry_col] = df[industry_col].cat.add_categories('UnknownIndustry')\n", + " # df[industry_col] = df[industry_col].fillna('UnknownIndustry') # 填充行业 NaN\n", + " # df[industry_col] = df[industry_col].astype('category') # 转为类别,ols 会自动处理\n", + "\n", + " dates = df['trade_date'].unique()\n", + " all_residuals = [] # 用于收集所有日期的残差\n", + "\n", + " for date in tqdm(dates, desc=\"Neutralizing\"):\n", + " daily_data = df.loc[df['trade_date'] == date, features + [log_cap_col, industry_col]].copy() # 使用 .loc 获取副本\n", + "\n", + " # 准备自变量 X (常数项 + log市值 + 行业哑变量)\n", + " X = daily_data[[log_cap_col]]\n", + " X = sm.add_constant(X, prepend=True) # 添加常数项\n", + " # 创建行业哑变量 (drop_first=True 避免共线性)\n", + " industry_dummies = pd.get_dummies(daily_data[industry_col], prefix=industry_col, drop_first=True)\n", + " industry_dummies = industry_dummies.astype(int)\n", + " X = pd.concat([X, industry_dummies], axis=1)\n", + "\n", + " daily_residuals = daily_data[[col for col in features]].copy() # 创建用于存储残差的df\n", + "\n", + " for col in features:\n", + " Y = daily_data[col]\n", + "\n", + " # 处理 NaN 值,确保 X 和 Y 在相同位置有有效值\n", + " valid_mask = Y.notna() & X.notna().all(axis=1)\n", + " if valid_mask.sum() < (X.shape[1] + 1): # 数据点不足以估计模型\n", + " print(f\"警告: 日期 {date}, 特征 {col} 有效数据不足 ({valid_mask.sum()}个),无法中性化,填充 NaN。\")\n", + " daily_residuals[col] = np.nan\n", + " continue\n", + "\n", + " Y_valid = Y[valid_mask]\n", + " X_valid = X[valid_mask]\n", + "\n", + " # 执行 OLS 回归\n", + " try:\n", + " model = sm.OLS(Y_valid.to_numpy(), X_valid.to_numpy())\n", + " results = model.fit()\n", + " # 将残差填回对应位置\n", + " daily_residuals.loc[valid_mask, col] = results.resid\n", + " daily_residuals.loc[~valid_mask, col] = np.nan # 原本无效的位置填充 NaN\n", + " except Exception as e:\n", + " print(f\"警告: 日期 {date}, 特征 {col} 回归失败: {e},填充 NaN。\")\n", + " daily_residuals[col] = np.nan\n", + " break\n", + "\n", + " all_residuals.append(daily_residuals)\n", + "\n", + " # 合并所有日期的残差结果\n", + " if all_residuals:\n", + " residuals_df = pd.concat(all_residuals)\n", + " # 将残差结果更新回原始 df (原地修改)\n", + " # 使用 update 比 merge 更适合基于索引的原地更新\n", + " # 确保 residuals_df 的索引与 df 中对应部分一致\n", + " df.update(residuals_df)\n", + " else:\n", + " print(\"没有有效的残差结果可以合并。\")\n", + "\n", + "\n", + " # 清理临时列\n", + " df.drop(columns=[log_cap_col], inplace=True)\n", + " print(\"截面行业市值中性化完成。\")\n", + "\n", + "\n", + "# --- 3. Z-Score 标准化 ---\n", + "\n", + "def cs_zscore_standardize(df: pd.DataFrame, features: list, epsilon: float = 1e-10):\n", + " \"\"\"\n", + " 对指定特征列进行截面 Z-Score 标准化 (原地修改)。\n", + " 方法: Z = (value - cross_sectional_mean) / (cross_sectional_std + epsilon)\n", + "\n", + " Args:\n", + " df (pd.DataFrame): 输入 DataFrame,需包含 'trade_date' 和 features 列。\n", + " features (list): 需要处理的特征列名列表。\n", + " epsilon (float): 防止除以零的小常数。\n", + "\n", + " WARNING: 此函数会原地修改输入的 DataFrame 'df'。\n", + " \"\"\"\n", + " print(\"开始截面 Z-Score 标准化...\")\n", + " if not all(col in df.columns for col in features):\n", + " missing = [col for col in features if col not in df.columns]\n", + " print(f\"错误: DataFrame 中缺少以下特征列: {missing}。跳过标准化处理。\")\n", + " return\n", + "\n", + " grouped = df.groupby('trade_date')\n", + "\n", + " for col in tqdm(features, desc=\"Standardizing\"):\n", + " try:\n", + " # 使用 transform 计算截面均值和标准差\n", + " mean = grouped[col].transform('mean')\n", + " std = grouped[col].transform('std')\n", + "\n", + " # 计算 Z-Score 并原地赋值\n", + " df[col] = (df[col] - mean) / (std + epsilon)\n", + "\n", + " except KeyError:\n", + " print(f\"警告: 列 '{col}' 可能不存在或在分组中出错,跳过此列的标准化处理。\")\n", + " except Exception as e:\n", + " print(f\"警告: 处理列 '{col}' 时发生错误: {e},跳过此列的标准化处理。\")\n", + "\n", + " print(\"截面 Z-Score 标准化完成。\")\n", + "\n", + "def fill_nan_with_daily_median(df: pd.DataFrame, feature_columns: list[str]) -> pd.DataFrame:\n", + " \"\"\"\n", + " 对指定特征列进行每日截面中位数填充缺失值 (NaN)。\n", + "\n", + " 参数:\n", + " df (pd.DataFrame): 包含多日数据的DataFrame,需要包含 'trade_date' 和 feature_columns 中的列。\n", + " feature_columns (list[str]): 需要进行缺失值填充的特征列名称列表。\n", + "\n", + " 返回:\n", + " pd.DataFrame: 包含缺失值填充后特征列的DataFrame。在输入DataFrame的副本上操作。\n", + " \"\"\"\n", + " processed_df = df.copy() # 在副本上操作,保留原始数据\n", + "\n", + " # 确保 trade_date 是 datetime 类型以便正确分组\n", + " processed_df['trade_date'] = pd.to_datetime(processed_df['trade_date'])\n", + "\n", + " def _fill_daily_nan(group):\n", + " # group 是某一个交易日的 DataFrame\n", + "\n", + " # 遍历指定的特征列\n", + " for feature_col in feature_columns:\n", + " # 检查列是否存在于当前分组中\n", + " if feature_col in group.columns:\n", + " # 计算当日该特征的中位数\n", + " median_val = group[feature_col].median()\n", + "\n", + " # 使用当日中位数填充该特征列的 NaN 值\n", + " # inplace=True 会直接修改 group DataFrame\n", + " group[feature_col].fillna(median_val, inplace=True)\n", + " else:\n", + " print(f\"Warning: Feature column '{feature_col}' not found in daily group for {group['trade_date'].iloc[0]}. Skipping.\")\n", + "\n", + " return group\n", + "\n", + " # 按交易日期分组,并应用每日填充函数\n", + " # group_keys=False 避免将分组键添加到结果索引中\n", + " filled_df = processed_df.groupby('trade_date', group_keys=False).apply(_fill_daily_nan)\n", + "\n", + " return filled_df" + ] + }, + { + "cell_type": "code", + "execution_count": 92, + "id": "40e6b68a91b30c79", + "metadata": { + "ExecuteTime": { + "end_time": "2025-04-03T13:08:04.694262Z", + "start_time": "2025-04-03T13:08:03.694904Z" + } + }, + "outputs": [], + "source": [ + "import pandas as pd\n", + "\n", + "\n", + "def remove_outliers_label_percentile(label: pd.Series, lower_percentile: float = 0.01, upper_percentile: float = 0.99,\n", + " log=True):\n", + " if not (0 <= lower_percentile < upper_percentile <= 1):\n", + " raise ValueError(\"Percentile values must satisfy 0 <= lower_percentile < upper_percentile <= 1.\")\n", + "\n", + " # Calculate lower and upper bounds based on percentiles\n", + " lower_bound = label.quantile(lower_percentile)\n", + " upper_bound = label.quantile(upper_percentile)\n", + "\n", + " # Filter out values outside the bounds\n", + " filtered_label = label[(label >= lower_bound) & (label <= upper_bound)]\n", + "\n", + " # Print the number of removed outliers\n", + " if log:\n", + " print(f\"Removed {len(label) - len(filtered_label)} outliers.\")\n", + " return filtered_label\n", + "\n", + "\n", + "def calculate_risk_adjusted_target(df, days=5):\n", + " df = df.sort_values(by=['ts_code', 'trade_date'])\n", + "\n", + " df['future_close'] = df.groupby('ts_code')['close'].shift(-days)\n", + " df['future_open'] = df.groupby('ts_code')['open'].shift(-1)\n", + " df['future_return'] = (df['future_close'] - df['future_open']) / df['future_open']\n", + "\n", + " df['future_volatility'] = df.groupby('ts_code')['future_return'].rolling(days, min_periods=1).std().reset_index(\n", + " level=0, drop=True)\n", + " sharpe_ratio = df['future_return'] * df['future_volatility']\n", + " sharpe_ratio.replace([np.inf, -np.inf], np.nan, inplace=True)\n", + "\n", + " return sharpe_ratio\n", + "\n", + "\n", + "def calculate_score(df, days=5, lambda_param=1.0):\n", + " def calculate_max_drawdown(prices):\n", + " peak = prices.iloc[0] # 初始化峰值\n", + " max_drawdown = 0 # 初始化最大回撤\n", + "\n", + " for price in prices:\n", + " if price > peak:\n", + " peak = price # 更新峰值\n", + " else:\n", + " drawdown = (peak - price) / peak # 计算当前回撤\n", + " max_drawdown = max(max_drawdown, drawdown) # 更新最大回撤\n", + "\n", + " return max_drawdown\n", + "\n", + " def compute_stock_score(stock_df):\n", + " stock_df = stock_df.sort_values(by=['trade_date'])\n", + " future_return = stock_df['future_return']\n", + " # 使用已有的 pct_chg 字段计算波动率\n", + " volatility = stock_df['pct_chg'].rolling(days).std().shift(-days)\n", + " max_drawdown = stock_df['close'].rolling(days).apply(calculate_max_drawdown, raw=False).shift(-days)\n", + " score = future_return - lambda_param * max_drawdown\n", + " return score\n", + "\n", + " # # 确保 DataFrame 按照股票代码和交易日期排序\n", + " # df = df.sort_values(by=['ts_code', 'trade_date'])\n", + "\n", + " # 对每个股票分别计算 score\n", + " df['score'] = df.groupby('ts_code').apply(compute_stock_score).reset_index(level=0, drop=True)\n", + "\n", + " return df['score']\n", + "\n", + "\n", + "def remove_highly_correlated_features(df, feature_columns, threshold=0.9):\n", + " numeric_features = df[feature_columns].select_dtypes(include=[np.number]).columns.tolist()\n", + " if not numeric_features:\n", + " raise ValueError(\"No numeric features found in the provided data.\")\n", + "\n", + " corr_matrix = df[numeric_features].corr().abs()\n", + " upper = corr_matrix.where(np.triu(np.ones(corr_matrix.shape), k=1).astype(bool))\n", + " to_drop = [column for column in upper.columns if any(upper[column] > threshold)]\n", + " remaining_features = [col for col in feature_columns if col not in to_drop\n", + " or 'act' in col or 'af' in col]\n", + " return remaining_features\n", + "\n", + "\n", + "def cross_sectional_standardization(df, features):\n", + " df_sorted = df.sort_values(by='trade_date') # 按时间排序\n", + " df_standardized = df_sorted.copy()\n", + "\n", + " for date in df_sorted['trade_date'].unique():\n", + " # 获取当前时间点的数据\n", + " current_data = df_standardized[df_standardized['trade_date'] == date]\n", + "\n", + " # 只对指定特征进行标准化\n", + " scaler = StandardScaler()\n", + " standardized_values = scaler.fit_transform(current_data[features])\n", + "\n", + " # 将标准化结果重新赋值回去\n", + " df_standardized.loc[df_standardized['trade_date'] == date, features] = standardized_values\n", + "\n", + " return df_standardized\n", + "\n", + "\n", + "import numpy as np\n", + "import pandas as pd\n", + "\n", + "\n", + "def neutralize_manual_revised(df: pd.DataFrame, features: list, industry_col: str, mkt_cap_col: str) -> pd.DataFrame:\n", + " \"\"\"\n", + " 手动实现简单回归以提升速度,通过构建 Series 确保索引对齐。\n", + " 对特征在行业内部进行市值中性化。\n", + "\n", + " Args:\n", + " df: 输入的 DataFrame,包含特征、行业分类和市值列。\n", + " features: 需要进行中性化的特征列名列表。\n", + " industry_col: 行业分类列的列名。\n", + " mkt_cap_col: 市值列的列名。\n", + "\n", + " Returns:\n", + " 中性化后的 DataFrame。\n", + " \"\"\"\n", + "\n", + " df[mkt_cap_col] = pd.to_numeric(df[mkt_cap_col], errors='coerce')\n", + " df_cleaned = df.dropna(subset=[mkt_cap_col]).copy()\n", + " df_cleaned = df_cleaned[df_cleaned[mkt_cap_col] > 0].copy()\n", + "\n", + " if df_cleaned.empty:\n", + " print(\"警告: 清理市值异常值后 DataFrame 为空。\")\n", + " return df # 返回原始或空df,取决于清理前的状态\n", + "\n", + " processed_df = df\n", + "\n", + " for col in features:\n", + " if col not in df_cleaned.columns:\n", + " print(f\"警告: 特征列 '{col}' 不存在于清理后的 DataFrame 中,已跳过。\")\n", + " # 对于原始 df 中该列不存在的,在结果 df 中也保持原样(可能全是NaN)\n", + " processed_df[col] = df[col] if col in df.columns else np.nan\n", + " continue\n", + "\n", + " # 跳过对控制变量本身进行中性化\n", + " if col == mkt_cap_col or col == industry_col:\n", + " print(f\"警告: 特征列 '{col}' 是控制变量或内部使用的列,跳过中性化。\")\n", + " # 在结果 df 中也保持原样\n", + " processed_df[col] = df[col] if col in df.columns else np.nan\n", + " continue\n", + "\n", + " residual_series = pd.Series(index=df_cleaned.index, dtype=float)\n", + "\n", + " # 在分组前处理特征列的 NaN,只对有因子值的行进行回归计算\n", + " df_subset_factor = df_cleaned.dropna(subset=[col]).copy()\n", + "\n", + " if not df_subset_factor.empty:\n", + " for industry, group in df_subset_factor.groupby(industry_col):\n", + " x = group[mkt_cap_col] # 市值对数\n", + " y = group[col] # 因子值\n", + "\n", + " # 确保有足够的数据点 (>1) 且市值对数有方差 (>0) 进行回归计算\n", + " # 检查 np.var > 一个很小的正数,避免浮点数误差导致的零方差判断问题\n", + " if len(group) > 1 and np.var(x) > 1e-9:\n", + " try:\n", + " beta = np.cov(y, x)[0, 1] / np.var(x)\n", + " alpha = np.mean(y) - beta * np.mean(x)\n", + "\n", + " # 计算残差\n", + " resid = y - (alpha + beta * x)\n", + "\n", + " # 将计算出的残差存储到 residual_series 中,通过索引自动对齐\n", + " residual_series.loc[resid.index] = resid\n", + "\n", + " except Exception as e:\n", + " # 捕获可能的计算异常,例如np.cov或np.var因为极端数据报错\n", + " print(f\"警告: 在行业 {industry} 计算回归时发生错误: {e}。该组残差将设为原始值或 NaN。\")\n", + " # 此时该组的残差会保持 residual_series 初始化时的 NaN 或后续处理\n", + " # 也可以选择保留原始值:residual_series.loc[group.index] = group[col]\n", + "\n", + " else:\n", + " residual_series.loc[group.index] = group[col] # 保留原始因子值\n", + " processed_df.loc[residual_series.index, col] = residual_series\n", + "\n", + "\n", + " else:\n", + " processed_df[col] = np.nan # 或 df[col] if col in df.columns else np.nan\n", + "\n", + " return processed_df\n", + "\n", + "\n", + "import gc\n", + "\n", + "gc.collect()\n", + "\n", + "\n", + "def mad_filter(df, features, n=3):\n", + " for col in features:\n", + " median = df[col].median()\n", + " mad = np.median(np.abs(df[col] - median))\n", + " upper = median + n * mad\n", + " lower = median - n * mad\n", + " df[col] = np.clip(df[col], lower, upper) # 截断极值\n", + " return df\n", + "\n", + "\n", + "def percentile_filter(df, features, lower_percentile=0.01, upper_percentile=0.99):\n", + " for col in features:\n", + " # 按日期分组计算上下百分位数\n", + " lower_bound = df.groupby('trade_date')[col].transform(\n", + " lambda x: x.quantile(lower_percentile)\n", + " )\n", + " upper_bound = df.groupby('trade_date')[col].transform(\n", + " lambda x: x.quantile(upper_percentile)\n", + " )\n", + " # 截断超出范围的值\n", + " df[col] = np.clip(df[col], lower_bound, upper_bound)\n", + " return df\n", + "\n", + "\n", + "from scipy.stats import iqr\n", + "\n", + "\n", + "def iqr_filter(df, features):\n", + " for col in features:\n", + " df[col] = df.groupby('trade_date')[col].transform(\n", + " lambda x: (x - x.median()) / iqr(x) if iqr(x) != 0 else x\n", + " )\n", + " return df\n", + "\n", + "\n", + "def quantile_filter(df, features, lower_quantile=0.01, upper_quantile=0.99, window=60):\n", + " df = df.copy()\n", + " for col in features:\n", + " # 计算 rolling 统计量,需要按日期进行 groupby\n", + " rolling_lower = df.groupby('trade_date')[col].transform(lambda x: x.rolling(window=min(len(x), window)).quantile(lower_quantile))\n", + " rolling_upper = df.groupby('trade_date')[col].transform(lambda x: x.rolling(window=min(len(x), window)).quantile(upper_quantile))\n", + "\n", + " # 对数据进行裁剪\n", + " df[col] = np.clip(df[col], rolling_lower, rolling_upper)\n", + " \n", + " return df\n", + "\n", + "def select_top_features_by_rankic(df: pd.DataFrame, feature_columns: list, n: int, target_column: str = 'future_return') -> list:\n", + " \"\"\"\n", + " 计算给定特征与目标列的 RankIC,并返回 RankIC 绝对值最高的 n 个特征。\n", + "\n", + " Args:\n", + " df: 包含特征列和目标列的 Pandas DataFrame。\n", + " feature_columns: 包含所有待评估特征列名的列表。\n", + " n: 希望选取的 RankIC 绝对值最高的特征数量。\n", + " target_column: 目标列的名称,用于计算 RankIC。默认为 'future_return'。\n", + "\n", + " Returns:\n", + " 包含 RankIC 绝对值最高的 n 个特征列名的列表。\n", + " \"\"\"\n", + " numeric_columns = df.select_dtypes(include=['float64', 'int64']).columns\n", + " numeric_columns = [col for col in numeric_columns if col in feature_columns]\n", + " if target_column not in df.columns:\n", + " raise ValueError(f\"目标列 '{target_column}' 不存在于 DataFrame 中。\")\n", + "\n", + " rankic_scores = {}\n", + " for feature in numeric_columns:\n", + " if feature not in df.columns:\n", + " print(f\"警告: 特征列 '{feature}' 不存在于 DataFrame 中,已跳过。\")\n", + " continue\n", + "\n", + " # 计算特征与目标列的 RankIC (斯皮尔曼相关系数)\n", + " # dropna() 是为了处理缺失值,确保相关性计算不失败\n", + " valid_data = df[[feature, target_column]].dropna()\n", + " if len(valid_data) > 1: # 确保有足够的数据点进行相关性计算\n", + " # 计算斯皮尔曼相关性\n", + " correlation = valid_data[feature].corr(valid_data[target_column], method='spearman')\n", + " rankic_scores[feature] = abs(correlation) # 使用绝对值来衡量相关性强度\n", + " else:\n", + " rankic_scores[feature] = 0 # 数据不足,RankIC设为0或跳过\n", + "\n", + " # 将 RankIC 分数转换为 Series 便于排序\n", + " rankic_series = pd.Series(rankic_scores)\n", + "\n", + " # 按 RankIC 绝对值降序排序,选取前 n 个特征\n", + " # handle case where n might be larger than available features\n", + " n_actual = min(n, len(rankic_series))\n", + " top_features = rankic_series.sort_values(ascending=False).head(n_actual).index.tolist()\n", + " top_features = [col for col in feature_columns if col in top_features or col not in numeric_columns]\n", + " return top_features" + ] + }, + { + "cell_type": "code", + "execution_count": 93, + "id": "dd3018e3", + "metadata": {}, + "outputs": [], + "source": [ + "# transform_feature_columns = ['ARBR']\n", + "# df = df[df['trade_date'] >= '2020-01-01']\n", + "# print('去除极值')\n", + "# cs_mad_filter(df, transform_feature_columns)\n", + "# print('中性化')\n", + "# cs_neutralize_industry_cap(df, transform_feature_columns)\n", + "# print('标准化')\n", + "# cs_zscore_standardize(df, transform_feature_columns)\n", + "\n", + "# cs_mad_filter(test_data, transform_feature_columns)\n", + "# cs_neutralize_industry_cap(test_data, transform_feature_columns)\n", + "# cs_zscore_standardize(test_data, transform_feature_columns)\n", + "\n", + "# print(f'feature_columns: {feature_columns}')\n" + ] + }, + { + "cell_type": "code", + "execution_count": 94, + "id": "47c12bb34062ae7a", + "metadata": { + "ExecuteTime": { + "end_time": "2025-04-03T14:57:50.841165Z", + "start_time": "2025-04-03T14:49:25.889057Z" + } + }, + "outputs": [], + "source": [ + "days = 5\n", + "validation_days = 120\n", + "\n", + "import gc\n", + "\n", + "gc.collect()\n", + "\n", + "df = df.sort_values(by=['ts_code', 'trade_date'])\n", + "df['future_return'] = df.groupby('ts_code', group_keys=False)['close'].apply(lambda x: x.shift(-days) / x - 1)\n", + "# df['future_return'] = (df.groupby('ts_code')['close'].shift(-days) - df.groupby('ts_code')['open'].shift(-1)) / \\\n", + "# df.groupby('ts_code')['open'].shift(-1)\n", + "df['future_volatility'] = (\n", + " df.groupby('ts_code')['pct_chg']\n", + " .transform(lambda x: x.rolling(days).std().shift(-days))\n", + ")\n", + "\n", + "# df['future_score'] = calculate_score(df, days=2, lambda_param=0.3)\n", + "\n", + "filter_index = df['future_return'].between(df['future_return'].quantile(0.01), df['future_return'].quantile(0.99))\n", + "\n", + "# df['label'] = df.groupby('trade_date', group_keys=False)['future_volatility'].transform(\n", + "# lambda x: pd.qcut(x, q=30, labels=False, duplicates='drop')\n", + "# )\n", + "\n", + "df['label'] = df['future_return']\n", + "\n", + "def symmetric_log_transform(values):\n", + " return np.sign(values) * np.log1p(np.abs(values))\n", + "\n", + "# for col in [col for col in df.columns]:\n", + "# train_data[col] = train_data[col].astype('str')\n", + "# test_data[col] = test_data[col].astype('str')" + ] + }, + { + "cell_type": "code", + "execution_count": 95, + "id": "b76ea08a", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " ts_code trade_date log_circ_mv\n", + "0 000001.SZ 2019-01-02 16.574219\n", + "2738 000001.SZ 2019-01-03 16.583965\n", + "5477 000001.SZ 2019-01-04 16.633371\n", + "['undist_profit_ps', 'AR_BR', 'pe_ttm', 'alpha_22_improved', 'alpha_003', 'alpha_007', 'alpha_013', 'cat_up_limit', 'cat_down_limit', 'up_limit_count_10d', 'down_limit_count_10d', 'consecutive_up_limit', 'vol_break', 'weight_roc5', 'price_cost_divergence', 'smallcap_concentration', 'cost_stability', 'high_cost_break_days', 'liquidity_risk', 'turnover_std', 'mv_volatility', 'volume_growth', 'mv_growth', 'cashflow_to_ev_factor', 'ocfps', 'book_to_price_ratio', 'turnover_rate_mean_5', 'variance_20', 'bbi_ratio_factor']\n", + "去除极值\n", + "开始截面 MAD 去极值处理 (k=3.0)...\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "MAD Filtering: 100%|██████████| 27/27 [00:05<00:00, 4.91it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "截面 MAD 去极值处理完成。\n", + "开始截面 MAD 去极值处理 (k=3.0)...\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "MAD Filtering: 100%|██████████| 27/27 [00:04<00:00, 6.18it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "截面 MAD 去极值处理完成。\n", + "开始截面 MAD 去极值处理 (k=3.0)...\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "MAD Filtering: 0it [00:00, ?it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "截面 MAD 去极值处理完成。\n", + "开始截面 MAD 去极值处理 (k=3.0)...\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "MAD Filtering: 0it [00:00, ?it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "截面 MAD 去极值处理完成。\n", + "feature_columns: ['undist_profit_ps', 'AR_BR', 'pe_ttm', 'alpha_22_improved', 'alpha_003', 'alpha_007', 'alpha_013', 'cat_up_limit', 'cat_down_limit', 'up_limit_count_10d', 'down_limit_count_10d', 'consecutive_up_limit', 'vol_break', 'weight_roc5', 'price_cost_divergence', 'smallcap_concentration', 'cost_stability', 'high_cost_break_days', 'liquidity_risk', 'turnover_std', 'mv_volatility', 'volume_growth', 'mv_growth', 'cashflow_to_ev_factor', 'ocfps', 'book_to_price_ratio', 'turnover_rate_mean_5', 'variance_20', 'bbi_ratio_factor']\n", + "df最小日期: 2019-01-02\n", + "df最大日期: 2025-04-09\n", + "2060133\n", + "train_data最小日期: 2020-01-02\n", + "train_data最大日期: 2022-12-30\n", + "1678529\n", + "test_data最小日期: 2023-01-03\n", + "test_data最大日期: 2025-04-09\n", + " ts_code trade_date log_circ_mv\n", + "0 000001.SZ 2019-01-02 16.574219\n", + "2738 000001.SZ 2019-01-03 16.583965\n", + "5477 000001.SZ 2019-01-04 16.633371\n" + ] + } + ], + "source": [ + "train_data = df[filter_index & (df['trade_date'] <= '2023-01-01') & (df['trade_date'] >= '2020-01-01')]\n", + "test_data = df[(df['trade_date'] >= '2023-01-01')]\n", + "\n", + "print(df[['ts_code', 'trade_date', 'log_circ_mv']].head(3))\n", + "\n", + "industry_df = industry_df.sort_values(by=['trade_date'])\n", + "index_data = index_data.sort_values(by=['trade_date'])\n", + "\n", + "# train_data = train_data.merge(industry_df, on=['cat_l2_code', 'trade_date'], how='left')\n", + "# train_data = train_data.merge(index_data, on='trade_date', how='left')\n", + "# test_data = test_data.merge(industry_df, on=['cat_l2_code', 'trade_date'], how='left')\n", + "# test_data = test_data.merge(index_data, on='trade_date', how='left')\n", + "\n", + "train_data, test_data = train_data.replace([np.inf, -np.inf], np.nan), test_data.replace([np.inf, -np.inf], np.nan)\n", + "\n", + "# feature_columns_new = feature_columns[:]\n", + "# train_data, _ = create_deviation_within_dates(train_data, feature_columns)\n", + "# test_data, _ = create_deviation_within_dates(test_data, feature_columns)\n", + "\n", + "feature_columns = [\n", + " 'undist_profit_ps', \n", + " 'AR_BR', \n", + " 'pe_ttm',\n", + " 'alpha_22_improved', \n", + " 'alpha_003', \n", + " 'alpha_007', \n", + " 'alpha_013', \n", + " 'cat_up_limit', \n", + " 'cat_down_limit', \n", + " 'up_limit_count_10d', \n", + " 'down_limit_count_10d', \n", + " 'consecutive_up_limit', \n", + " 'vol_break', \n", + " 'weight_roc5', \n", + " 'price_cost_divergence', \n", + " 'smallcap_concentration', \n", + " 'cost_stability', \n", + " 'high_cost_break_days', \n", + " 'liquidity_risk', \n", + " 'turnover_std', \n", + " 'mv_volatility', \n", + " 'volume_growth', \n", + " 'mv_growth', \n", + " 'lg_flow_mom_corr_20_60', \n", + " 'lg_flow_accel', \n", + " 'profit_pressure', \n", + " 'underwater_resistance', \n", + " 'cost_conc_std_20', \n", + " 'profit_decay_20', \n", + " 'vol_amp_loss_20', \n", + " 'vol_drop_profit_cnt_5', \n", + " 'lg_flow_vol_interact_20', \n", + " 'cost_break_confirm_cnt_5', \n", + " 'atr_norm_channel_pos_14', \n", + " 'turnover_diff_skew_20', \n", + " 'lg_sm_flow_diverge_20', \n", + " 'pullback_strong_20_20', \n", + " 'vol_wgt_hist_pos_20', \n", + " 'vol_adj_roc_20',\n", + " 'cashflow_to_ev_factor',\n", + " 'ocfps',\n", + " 'book_to_price_ratio',\n", + " 'turnover_rate_mean_5',\n", + " 'variance_20',\n", + " 'bbi_ratio_factor'\n", + "]\n", + "feature_columns = [col for col in feature_columns if col in train_data.columns]\n", + "feature_columns = [col for col in feature_columns if not col.startswith('_')]\n", + "numeric_columns = df.select_dtypes(include=['float64', 'int64']).columns\n", + "numeric_columns = [col for col in numeric_columns if col in feature_columns]\n", + "# feature_columns = select_top_features_by_rankic(df, numeric_columns, n=10)\n", + "print(feature_columns)\n", + "\n", + "train_data = fill_nan_with_daily_median(train_data, feature_columns)\n", + "test_data = fill_nan_with_daily_median(test_data, feature_columns)\n", + "\n", + "train_data = train_data.dropna(subset=feature_columns)\n", + "train_data = train_data.dropna(subset=['label'])\n", + "train_data = train_data.reset_index(drop=True)\n", + "# print(test_data.tail())\n", + "test_data = test_data.dropna(subset=feature_columns)\n", + "# test_data = test_data.dropna(subset=['label'])\n", + "test_data = test_data.reset_index(drop=True)\n", + "\n", + "transform_feature_columns = feature_columns\n", + "transform_feature_columns = [col for col in transform_feature_columns if col in feature_columns and not col.startswith('cat')]\n", + "# transform_feature_columns.remove('undist_profit_ps')\n", + "print('去除极值')\n", + "cs_mad_filter(train_data, transform_feature_columns)\n", + "# print('中性化')\n", + "# cs_neutralize_industry_cap(train_data, transform_feature_columns)\n", + "# print('标准化')\n", + "# cs_zscore_standardize(train_data, transform_feature_columns)\n", + "\n", + "cs_mad_filter(test_data, transform_feature_columns)\n", + "# cs_neutralize_industry_cap(test_data, transform_feature_columns)\n", + "# cs_zscore_standardize(test_data, transform_feature_columns)\n", + "\n", + "mad_filter_feature_columns = [col for col in feature_columns if col not in transform_feature_columns and not col.startswith('cat')]\n", + "cs_mad_filter(train_data, mad_filter_feature_columns)\n", + "cs_mad_filter(test_data, mad_filter_feature_columns)\n", + "\n", + "\n", + "print(f'feature_columns: {feature_columns}')\n", + "\n", + "\n", + "print(f\"df最小日期: {df['trade_date'].min().strftime('%Y-%m-%d')}\")\n", + "print(f\"df最大日期: {df['trade_date'].max().strftime('%Y-%m-%d')}\")\n", + "print(len(train_data))\n", + "print(f\"train_data最小日期: {train_data['trade_date'].min().strftime('%Y-%m-%d')}\")\n", + "print(f\"train_data最大日期: {train_data['trade_date'].max().strftime('%Y-%m-%d')}\")\n", + "print(len(test_data))\n", + "print(f\"test_data最小日期: {test_data['trade_date'].min().strftime('%Y-%m-%d')}\")\n", + "print(f\"test_data最大日期: {test_data['trade_date'].max().strftime('%Y-%m-%d')}\")\n", + "\n", + "cat_columns = [col for col in feature_columns if col.startswith('cat')]\n", + "for col in cat_columns:\n", + " train_data[col] = train_data[col].astype('category')\n", + " test_data[col] = test_data[col].astype('category')\n", + "\n", + "print(df[['ts_code', 'trade_date', 'log_circ_mv']].head(3))\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e23d1759", + "metadata": {}, + "outputs": [], + "source": [ + "feature_columns = [\n", + " 'undist_profit_ps', \n", + " 'AR_BR', \n", + " # 'pe_ttm',\n", + " # 'alpha_22_improved', \n", + " # 'alpha_003', \n", + " # 'alpha_007', \n", + " # 'alpha_013', \n", + " # 'cat_up_limit', \n", + " # 'cat_down_limit', \n", + " # 'up_limit_count_10d', \n", + " # 'down_limit_count_10d', \n", + " # 'consecutive_up_limit', \n", + " # 'vol_break', \n", + " # 'weight_roc5', \n", + " # 'price_cost_divergence', \n", + " # 'smallcap_concentration', \n", + " # 'cost_stability', \n", + " # 'high_cost_break_days', \n", + " # 'liquidity_risk', \n", + " # 'turnover_std', \n", + " # 'mv_volatility', \n", + " # 'volume_growth', \n", + " # 'mv_growth', \n", + " # 'lg_flow_mom_corr_20_60', \n", + " # 'lg_flow_accel', \n", + " # 'profit_pressure', \n", + " # 'underwater_resistance', \n", + " # 'cost_conc_std_20', \n", + " # 'profit_decay_20', \n", + " # 'vol_amp_loss_20', \n", + " # 'vol_drop_profit_cnt_5', \n", + " # 'lg_flow_vol_interact_20', \n", + " # 'cost_break_confirm_cnt_5', \n", + " # 'atr_norm_channel_pos_14', \n", + " # 'turnover_diff_skew_20', \n", + " # 'lg_sm_flow_diverge_20', \n", + " # 'pullback_strong_20_20', \n", + " # 'vol_wgt_hist_pos_20', \n", + " # 'vol_adj_roc_20',\n", + " 'cashflow_to_ev_factor',\n", + " 'ocfps',\n", + " 'book_to_price_ratio',\n", + " 'turnover_rate_mean_5',\n", + " 'variance_20',\n", + " 'bbi_ratio_factor'\n", + "]\n", + "feature_columns = [col for col in feature_columns if col in train_data.columns]" + ] + }, + { + "cell_type": "code", + "execution_count": 103, + "id": "8f134d435f71e9e2", + "metadata": { + "ExecuteTime": { + "end_time": "2025-04-03T14:57:51.050696Z", + "start_time": "2025-04-03T14:57:51.034030Z" + }, + "jupyter": { + "source_hidden": true + } + }, + "outputs": [], + "source": [ + "from sklearn.preprocessing import StandardScaler\n", + "from sklearn.linear_model import LinearRegression, BayesianRidge\n", + "import matplotlib.pyplot as plt # 保持 matplotlib 导入,尽管LightGBM的绘图功能已移除\n", + "from sklearn.decomposition import PCA\n", + "import pandas as pd\n", + "import numpy as np\n", + "import datetime # 用于日期计算\n", + "\n", + "\n", + "def train_model(train_data_df, feature_columns,\n", + " print_info=True, # 调整参数名,更通用\n", + " validation_days=180, use_pca=False, split_date=None,\n", + " target_column='label'): # 增加目标列参数\n", + "\n", + " print('train data size: ', len(train_data_df))\n", + "\n", + " # 确保数据按时间排序\n", + " train_data_df = train_data_df.sort_values(by='trade_date')\n", + "\n", + " # 识别数值型特征列\n", + " numeric_feature_columns = train_data_df[feature_columns].select_dtypes(include=['float64', 'int64']).columns.tolist()\n", + " \n", + " # 对数值特征进行横截面标准化(如果您的函数是这样实现的)\n", + " # 假设 cross_sectional_standardization 接受 DataFrame 和 列名列表\n", + " # if numeric_feature_columns: # 只对存在数值特征的列进行标准化\n", + " # train_data_df = cross_sectional_standardization(train_data_df, numeric_feature_columns)\n", + " # elif print_info:\n", + " # print(\"警告: 没有找到数值型特征列用于标准化。\")\n", + "\n", + "\n", + " # 去除标签为空的样本\n", + " initial_len = len(train_data_df)\n", + " train_data_df = train_data_df.dropna(subset=[target_column])\n", + "\n", + " if print_info:\n", + " print(f'原始样本数: {initial_len}, 去除标签为空后样本数: {len(train_data_df)}')\n", + "\n", + " train_data_split = train_data_df\n", + "\n", + " # 提取特征和标签,只取数值型特征用于线性回归\n", + " X_train = train_data_split[numeric_feature_columns]\n", + " y_train = train_data_split[target_column]\n", + "\n", + " # # 标准化数值特征 (使用 StandardScaler 对训练集fit并transform, 对验证集只transform)\n", + " scaler = StandardScaler()\n", + " # X_train = scaler.fit_transform(X_train)\n", + "\n", + " # 训练线性回归模型\n", + " # model = LinearRegression()\n", + " model = BayesianRidge()\n", + " \n", + " # 使用处理后的特征和样本权重进行训练\n", + " model.fit(X_train, y_train)\n", + "\n", + "\n", + " return model, scaler, None # 返回训练好的模型、scaler 和 pca 对象" + ] + }, + { + "cell_type": "code", + "execution_count": 104, + "id": "c6eb5cd4-e714-420a-ac48-39af3e11ee81", + "metadata": { + "ExecuteTime": { + "end_time": "2025-04-03T15:03:18.426481Z", + "start_time": "2025-04-03T15:02:19.926352Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "train data size: 36400\n", + "原始样本数: 36400, 去除标签为空后样本数: 36400\n" + ] + } + ], + "source": [ + "\n", + "gc.collect()\n", + "\n", + "use_pca = False\n", + "# feature_contri = [2 if feat.startswith('act_factor') or 'buy' in feat or 'sell' in feat else 1 for feat in feature_columns]\n", + "# light_params['feature_contri'] = feature_contri\n", + "# print(f'feature_contri: {feature_contri}')\n", + "model, scaler, pca = train_model(train_data.dropna(subset=['label']).groupby('trade_date', group_keys=False).apply(lambda x: x.nsmallest(50, 'total_mv')), feature_columns)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 105, + "id": "5d1522a7538db91b", + "metadata": { + "ExecuteTime": { + "end_time": "2025-04-03T15:04:39.656944Z", + "start_time": "2025-04-03T15:04:39.298483Z" + } + }, + "outputs": [], + "source": [ + "# train_data = train_data.sort_values(by='trade_date')\n", + "# all_dates = train_data['trade_date'].unique() # 获取所有唯一的 trade_date\n", + "# split_date = all_dates[-120] # 划分点为倒数第 validation_days 天\n", + "# print(split_date)\n", + "# print(all_dates)\n", + "# val_data_split = train_data[train_data['trade_date'] >= split_date] # 验证集\n", + "\n", + "score_df = test_data\n", + "score_df = fill_nan_with_daily_median(score_df, ['pe_ttm'])\n", + "score_df = score_df[score_df['pe_ttm'] > 0]\n", + "# score_df = score_df.groupby('trade_date', group_keys=False).apply(lambda x: x.nsmallest(50, 'total_mv')).reset_index()\n", + "numeric_columns = score_df.select_dtypes(include=['float64', 'int64']).columns\n", + "numeric_columns = [col for col in feature_columns if col in numeric_columns]\n", + "# score_df.loc[:, numeric_columns] = scaler.transform(score_df[numeric_columns])\n", + "# score_df = cross_sectional_standardization(score_df, numeric_columns)\n", + "\n", + "score_df['score'] = model.predict(score_df[numeric_columns])\n", + "score_df['score_ranks'] = score_df.groupby('trade_date')['score'].rank(ascending=True)\n", + "\n", + "score_df = score_df.groupby('trade_date', group_keys=False).apply(\n", + " lambda x: x[x['score'] >= x['score'].quantile(0.90)] # 计算90%分位数作为阈值,筛选分数>=阈值的行\n", + ").reset_index(drop=True) # drop=True 避免添加旧索引列\n", + "# save_df = score_df.groupby('trade_date', group_keys=False).apply(lambda x: x.nlargest(1, 'score')).reset_index()\n", + "save_df = score_df.groupby('trade_date', group_keys=False).apply(lambda x: x.nsmallest(1, 'total_mv')).reset_index()\n", + "save_df[['trade_date', 'score', 'ts_code']].to_csv('predictions_test.tsv', index=False)\n", + "# " + ] + }, + { + "cell_type": "code", + "execution_count": 106, + "id": "340a82b9", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " ts_code trade_date AR_BR undist_profit_ps score \\\n", + "0 000100.SZ 2023-01-03 11.934320 1.4785 0.010065 \n", + "1 000166.SZ 2023-01-03 1.216701 1.3199 0.009441 \n", + "2 000518.SZ 2023-01-03 -15.537010 -0.5179 0.009575 \n", + "3 000533.SZ 2023-01-03 6.648137 -0.1828 0.009428 \n", + "4 000536.SZ 2023-01-03 -8.622002 -2.6896 0.016490 \n", + "... ... ... ... ... ... \n", + "168082 605208.SH 2025-04-09 89.845359 2.7720 0.026423 \n", + "168083 605228.SH 2025-04-09 9.234756 0.9922 0.027368 \n", + "168084 605488.SH 2025-04-09 38.082408 1.7606 0.028328 \n", + "168085 605555.SH 2025-04-09 47.834082 2.9659 0.030038 \n", + "168086 605577.SH 2025-04-09 30.978777 4.7919 0.029345 \n", + "\n", + " AR BR \n", + "0 67.759563 55.825243 \n", + "1 92.622951 91.406250 \n", + "2 90.694444 106.231454 \n", + "3 101.730104 95.081967 \n", + "4 70.720721 79.342723 \n", + "... ... ... \n", + "168082 177.835588 87.375312 \n", + "168083 94.088176 84.853420 \n", + "168084 107.369795 69.287387 \n", + "168085 98.648649 50.814566 \n", + "168086 114.000000 83.021223 \n", + "\n", + "[168087 rows x 7 columns]\n" + ] + } + ], + "source": [ + "print(score_df[['ts_code', 'trade_date', 'AR_BR', 'undist_profit_ps', 'score', 'AR', 'BR']])" + ] + }, + { + "cell_type": "code", + "execution_count": 107, + "id": "fb2263ce", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "线性回归模型截距 (Intercept):\n", + "-0.0821873954475609\n", + "\n", + "线性回归模型系数 (Coefficients):\n", + "[-6.62598705e-05 -2.63806648e-05 -2.57090964e-05 1.14891132e-08\n", + " 1.14960472e-03 2.26826386e-03 7.33817048e-03 4.86240923e-15\n", + " 2.33841866e-15 -2.88389337e-15 -2.37944451e-01 -1.22219539e-04\n", + " -2.67783556e-02 9.18323390e-02 -4.07814304e-15 -7.28200346e-06\n", + " -2.50383369e-02 2.66757338e-01 -1.89189144e-02 2.41573603e-01\n", + " 4.69728616e-02 -1.97148056e-03 -1.14382817e-03 -8.75750113e-04\n", + " 4.21106078e-04 8.52579791e-02]\n" + ] + } + ], + "source": [ + "print(\"线性回归模型截距 (Intercept):\")\n", + "print(model.intercept_)\n", + "\n", + "print(\"\\n线性回归模型系数 (Coefficients):\")\n", + "# 打印系数数组\n", + "print(model.coef_)" + ] + }, + { + "cell_type": "code", + "execution_count": 108, + "id": "7e9023cc", + "metadata": {}, + "outputs": [], + "source": [ + "def analyze_factors(\n", + " df: pd.DataFrame,\n", + " feature_columns: list[str],\n", + " target_column: str = 'target', # 假设目标列默认为 'target'\n", + " trade_date_col: str = 'trade_date', # 假设日期列默认为 'trade_date'\n", + " mcap_col: str = 'total_mv', # 新增: 市值列名称\n", + " mcap_bins: int = 5 # 新增: 市值分位数的数量 (例如 5 表示五分位数)\n", + ") -> pd.DataFrame:\n", + " \"\"\"\n", + " 分析DataFrame中指定特征列的各种指标,包括基本统计、相关性、日间IC、ICIR以及在不同市值分位数上的IC。\n", + "\n", + " Args:\n", + " df (pd.DataFrame): 包含日期、目标列、特征列和市值列的DataFrame。\n", + " 需要包含 trade_date_col, target_column, feature_columns 和 mcap_col 中的所有列。\n", + " feature_columns (list[str]): 需要分析的特征列名称列表。\n", + " target_column (str): 目标变量列的名称。\n", + " trade_date_col (str): 交易日期列的名称。\n", + " mcap_col (str): 市值列的名称。\n", + " mcap_bins (int): 市值分位数的数量 (例如 5 表示五分位数)。\n", + "\n", + " Returns:\n", + " pd.DataFrame: 包含各个因子分析指标的汇总DataFrame。\n", + " 同时打印因子在不同市值分位数上的平均IC表格。\n", + " 如果输入数据或列有问题,可能返回空或包含NaN的DataFrame。\n", + " \"\"\"\n", + "\n", + " # --- 数据校验 ---\n", + " required_cols = [trade_date_col, target_column, mcap_col] + feature_columns\n", + " if not all(col in df.columns for col in required_cols):\n", + " missing = [col for col in required_cols if col not in df.columns]\n", + " print(f\"错误: 输入DataFrame缺少必需的列: {missing}\")\n", + " return pd.DataFrame() # 返回空DataFrame\n", + "\n", + " # 确保日期列是 datetime 类型\n", + " df = df.copy() # 在副本上操作\n", + " df[trade_date_col] = pd.to_datetime(df[trade_date_col], errors='coerce')\n", + " df.dropna(subset=[trade_date_col], inplace=True) # 移除日期转换失败的行\n", + "\n", + " # 过滤掉那些在 feature_columns, target_column, mcap_col 上有 NaN 的行,以确保后续计算是在完整数据上\n", + " # 直接在 df 副本上进行清洗\n", + " initial_rows_before_clean = len(df)\n", + " df.dropna(subset=feature_columns + [target_column, mcap_col], inplace=True)\n", + " rows_dropped_clean = initial_rows_before_clean - len(df)\n", + " if rows_dropped_clean > 0:\n", + " print(f\"警告: 移除了 {rows_dropped_clean} 行,因为其特征、目标或市值列存在空值。\")\n", + "\n", + " if df.empty:\n", + " print(\"错误: 清理缺失值后数据为空,无法进行因子分析。\")\n", + " return pd.DataFrame() # 返回空DataFrame\n", + "\n", + "\n", + " print(f\"开始分析 {len(feature_columns)} 个因子指标...\")\n", + "\n", + " # --- 1. 基本因子统计量 ---\n", + " basic_stats = df[feature_columns].describe().T\n", + "\n", + " print(\"\\n--- 基本因子统计量 ---\")\n", + " print(basic_stats)\n", + "\n", + " # --- 2. 因子与目标变量的整体相关性 ---\n", + " overall_correlation = {}\n", + " for feature in feature_columns:\n", + " # 在清理后的 df 上计算相关性\n", + " if df[[feature, target_column]].dropna().shape[0] > 1: # 确保至少有两个有效数据点\n", + " overall_correlation[feature] = {\n", + " 'Pearson_Correlation_with_Target': df[feature].corr(df[target_column], method='pearson'),\n", + " 'Spearman_Correlation_with_Target': df[feature].corr(df[target_column], method='spearman')\n", + " }\n", + " else:\n", + " overall_correlation[feature] = {\n", + " 'Pearson_Correlation_with_Target': np.nan,\n", + " 'Spearman_Correlation_with_Target': np.nan\n", + " }\n", + " overall_corr_df = pd.DataFrame.from_dict(overall_correlation, orient='index')\n", + "\n", + " print(\"\\n--- 因子与目标变量的整体相关性 ---\")\n", + " print(overall_corr_df)\n", + "\n", + " # --- 3. 因子之间的相关性矩阵 ---\n", + " # 在清理后的 df 上计算相关性\n", + " factor_correlation_matrix = df[feature_columns].corr(method='spearman') # 改回 Spearman\n", + "\n", + " print(\"\\n--- 因子之间的相关性矩阵 (Spearman) ---\") # 修正打印信息\n", + " print(factor_correlation_matrix)\n", + "\n", + " # --- 4. 日间 IC 和 ICIR ---\n", + " print(\"\\n--- 计算日间 IC (Spearman 相关性) 和 ICIR ---\")\n", + "\n", + " # 直接在清理后的 df 上计算每日 IC\n", + " if df.empty: # 理论上上面已经检查过,这里再检查一次更安全\n", + " daily_ic_series = pd.Series(dtype=float) # 空 Series\n", + " ic_stats = pd.DataFrame({\n", + " 'Mean_IC (Spearman)': np.nan, 'Std_Dev_IC': np.nan, 'ICIR': np.nan\n", + " }, index=feature_columns)\n", + " else:\n", + " daily_ic_series = df.groupby(trade_date_col).apply(\n", + " lambda day_group: {\n", + " feature: day_group[feature].corr(day_group[target_column], method='spearman')\n", + " for feature in feature_columns if day_group.shape[0] > 1 # 确保每日数据点多于1才能计算相关性\n", + " }\n", + " ).apply(pd.Series) # 将字典结果转换为 DataFrame\n", + "\n", + " # 计算 IC 的统计量\n", + " if not daily_ic_series.empty:\n", + " ic_mean = daily_ic_series.mean()\n", + " ic_std = daily_ic_series.std()\n", + " # 避免除以零\n", + " ic_ir = ic_mean / ic_std.replace(0, np.nan) # 使用 replace 0 为 NaN\n", + "\n", + " ic_stats = pd.DataFrame({\n", + " 'Mean_IC (Spearman)': ic_mean,\n", + " 'Std_Dev_IC': ic_std,\n", + " 'ICIR': ic_ir\n", + " })\n", + " print(\"\\n--- 日间 IC 和 ICIR (Spearman) ---\")\n", + " print(ic_stats)\n", + " else:\n", + " ic_stats = pd.DataFrame({\n", + " 'Mean_IC (Spearman)': np.nan, 'Std_Dev_IC': np.nan, 'ICIR': np.nan\n", + " }, index=feature_columns)\n", + "\n", + "\n", + " # --- 5. 因子在不同市值分位数上的平均 IC ---\n", + " print(f\"\\n--- 计算因子在 {mcap_bins} 个市值分位数上的平均 IC (Spearman) ---\")\n", + "\n", + " # 在清理后的 df 上计算每日市值分位数,直接添加到 df 中\n", + " # 使用 transform() 和 qcut() 在每个日期分组内计算分位数\n", + " # labels=False 返回整数 0 to mcap_bins-1\n", + " # duplicates='drop' 处理在某些日期股票数量少于 bins 导致分位数边缘重复的情况,会返回 NaN\n", + " # 添加一个临时列来存储分位数\n", + " mcap_bin_col_name = f'_mcap_bin_{mcap_bins}'\n", + " df[mcap_bin_col_name] = df.groupby(trade_date_col)[mcap_col].transform(\n", + " lambda x: pd.qcut(x, q=mcap_bins, labels=False, duplicates='drop') if len(x) >= mcap_bins else np.nan # 确保股票数量足够进行分位数划分\n", + " )\n", + "\n", + " # 过滤掉无法划分分位数 (NaN) 的行,进行分位数 IC 计算\n", + " # 创建一个临时 DataFrame df_binned_analysis\n", + " df_binned_analysis = df.dropna(subset=[mcap_bin_col_name]).copy()\n", + "\n", + " if df_binned_analysis.empty:\n", + " print(\"错误: 划分市值分位数后数据为空,无法计算分位数上的 IC。\")\n", + " avg_ic_by_bin = pd.DataFrame(index=range(mcap_bins), columns=feature_columns) # Placeholder\n", + " else:\n", + " # 按日期和市值分位数分组,计算每个分组内的因子与目标变量的截面相关性 (分位数IC)\n", + " binned_ic_by_day = df_binned_analysis.groupby([trade_date_col, mcap_bin_col_name]).apply(\n", + " lambda group: {\n", + " feature: group[feature].corr(group[target_column], method='spearman')\n", + " for feature in feature_columns if group.shape[0] > 1 # 确保分位数组内数据点多于1\n", + " }\n", + " ).apply(pd.Series) # 将嵌套结果转为 DataFrame\n", + "\n", + " # 对每个分位数组的每日 IC 求平均\n", + " # unstack(level=mcap_bin_col_name) 将 mcap_bin 作为列\n", + " # mean(axis=0) 对日期索引求平均\n", + " avg_ic_by_bin = binned_ic_by_day.unstack(level=mcap_bin_col_name).mean(axis=0).unstack()\n", + "\n", + " # 重命名索引和列,使表格更清晰\n", + " if not avg_ic_by_bin.empty:\n", + " # Index name will be the original column name used for grouping ('_mcap_bin_X')\n", + " # Rename the index name explicitly\n", + " avg_ic_by_bin.index.name = 'MarketCap_Bin'\n", + " avg_ic_by_bin.columns.name = 'Feature'\n", + " # 可以根据需要对分位数 bin 索引进行排序 (虽然 pd.qcut labels=False usually sorts)\n", + " avg_ic_by_bin = avg_ic_by_bin.sort_index()\n", + "\n", + " print(avg_ic_by_bin)\n", + "\n", + "\n", + " # --- 6. 汇总所有指标 ---\n", + " # 将基本统计、整体相关性、IC/ICIR 合并到一个 DataFrame\n", + " # 注意:合并时需要根据索引进行对齐 (因子名称)\n", + " summary_df = basic_stats\n", + " summary_df = summary_df.merge(overall_corr_df, left_index=True, right_index=True, how='left')\n", + " summary_df = summary_df.merge(ic_stats, left_index=True, right_index=True, how='left')\n", + "\n", + " # print(\"\\n--- 因子分析汇总报告 ---\")\n", + " # print(summary_df)\n", + "\n", + " # --- 清理临时列 'mcap_bin' ---\n", + " # 修正:在函数结束时从我们一直在操作的 df 副本中删除临时列\n", + " if mcap_bin_col_name in df.columns:\n", + " df.drop(columns=[mcap_bin_col_name], inplace=True)\n", + "\n", + "\n", + " return summary_df # 主要返回汇总报告,分位数IC单独打印\n", + "\n", + "# # 运行分析函数\n", + "# factor_analysis_report = analyze_factors(test_data.copy(), feature_columns, 'future_return')\n", + "\n", + "# print(\"\\n--- 最终汇总报告 DataFrame ---\")\n", + "# print(factor_analysis_report)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "new_trader", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.11" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/main/train/RollingRankCopy.ipynb b/main/train/RollingRankCopy.ipynb index 2d520fd..beb7f6b 100644 --- a/main/train/RollingRankCopy.ipynb +++ b/main/train/RollingRankCopy.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 113, + "execution_count": 1, "id": "79a7758178bafdd3", "metadata": { "ExecuteTime": { @@ -44,7 +44,7 @@ }, { "cell_type": "code", - "execution_count": 114, + "execution_count": 2, "id": "a79cafb06a7e0e43", "metadata": { "ExecuteTime": { @@ -143,7 +143,7 @@ }, { "cell_type": "code", - "execution_count": 115, + "execution_count": 3, "id": "cac01788dac10678", "metadata": { "ExecuteTime": { @@ -211,7 +211,7 @@ }, { "cell_type": "code", - "execution_count": 116, + "execution_count": 4, "id": "c4e9e1d31da6dba6", "metadata": { "ExecuteTime": { @@ -221,6 +221,8 @@ }, "outputs": [], "source": [ + "import talib\n", + "\n", "def calculate_indicators(df):\n", " \"\"\"\n", " 计算四个指标:当日涨跌幅、5日移动平均、RSI、MACD。\n", @@ -300,7 +302,7 @@ }, { "cell_type": "code", - "execution_count": 117, + "execution_count": 5, "id": "53f86ddc0677a6d7", "metadata": { "ExecuteTime": { @@ -360,7 +362,7 @@ }, { "cell_type": "code", - "execution_count": 118, + "execution_count": 6, "id": "dbe2fd8021b9417f", "metadata": { "ExecuteTime": { @@ -388,7 +390,7 @@ }, { "cell_type": "code", - "execution_count": 119, + "execution_count": 7, "id": "da6e43bd", "metadata": {}, "outputs": [], @@ -852,7 +854,7 @@ }, { "cell_type": "code", - "execution_count": 120, + "execution_count": 8, "id": "85c3e3d0235ffffa", "metadata": { "ExecuteTime": { @@ -895,6 +897,8 @@ } ], "source": [ + "import numpy as np\n", + "\n", "def filter_data(df):\n", " # df = df.groupby('trade_date').apply(lambda x: x.nlargest(1000, 'act_factor1'))\n", " df = df[~df['is_st']]\n", @@ -928,7 +932,7 @@ }, { "cell_type": "code", - "execution_count": 121, + "execution_count": 9, "id": "f4f16d63ad18d1bc", "metadata": { "ExecuteTime": { @@ -980,7 +984,7 @@ }, { "cell_type": "code", - "execution_count": 122, + "execution_count": 35, "id": "40e6b68a91b30c79", "metadata": { "ExecuteTime": { @@ -1239,12 +1243,56 @@ " upper_bound = grouped[col].transform(lambda x: x.quantile(upper_quantile))\n", " # 应用 clip\n", " df[col] = np.clip(df[col], lower_bound, upper_bound)\n", - " return df" + " return df\n", + "\n", + "def select_top_features_by_rankic(df: pd.DataFrame, feature_columns: list, n: int, target_column: str = 'future_return') -> list:\n", + " \"\"\"\n", + " 计算给定特征与目标列的 RankIC,并返回 RankIC 绝对值最高的 n 个特征。\n", + "\n", + " Args:\n", + " df: 包含特征列和目标列的 Pandas DataFrame。\n", + " feature_columns: 包含所有待评估特征列名的列表。\n", + " n: 希望选取的 RankIC 绝对值最高的特征数量。\n", + " target_column: 目标列的名称,用于计算 RankIC。默认为 'future_return'。\n", + "\n", + " Returns:\n", + " 包含 RankIC 绝对值最高的 n 个特征列名的列表。\n", + " \"\"\"\n", + " numeric_columns = df.select_dtypes(include=['float64', 'int64']).columns\n", + " numeric_columns = [col for col in numeric_columns if col in feature_columns]\n", + " if target_column not in df.columns:\n", + " raise ValueError(f\"目标列 '{target_column}' 不存在于 DataFrame 中。\")\n", + "\n", + " rankic_scores = {}\n", + " for feature in numeric_columns:\n", + " if feature not in df.columns:\n", + " print(f\"警告: 特征列 '{feature}' 不存在于 DataFrame 中,已跳过。\")\n", + " continue\n", + "\n", + " # 计算特征与目标列的 RankIC (斯皮尔曼相关系数)\n", + " # dropna() 是为了处理缺失值,确保相关性计算不失败\n", + " valid_data = df[[feature, target_column]].dropna()\n", + " if len(valid_data) > 1: # 确保有足够的数据点进行相关性计算\n", + " # 计算斯皮尔曼相关性\n", + " correlation = valid_data[feature].corr(valid_data[target_column], method='spearman')\n", + " rankic_scores[feature] = abs(correlation) # 使用绝对值来衡量相关性强度\n", + " else:\n", + " rankic_scores[feature] = 0 # 数据不足,RankIC设为0或跳过\n", + "\n", + " # 将 RankIC 分数转换为 Series 便于排序\n", + " rankic_series = pd.Series(rankic_scores)\n", + "\n", + " # 按 RankIC 绝对值降序排序,选取前 n 个特征\n", + " # handle case where n might be larger than available features\n", + " n_actual = min(n, len(rankic_series))\n", + " top_features = rankic_series.sort_values(ascending=False).head(n_actual).index.tolist()\n", + " top_features = [col for col in feature_columns if col in top_features or col not in numeric_columns]\n", + " return top_features" ] }, { "cell_type": "code", - "execution_count": 123, + "execution_count": 11, "id": "1c46817a-b5dd-4bec-8bb4-e6e80bfd9d66", "metadata": { "ExecuteTime": { @@ -1259,7 +1307,7 @@ }, { "cell_type": "code", - "execution_count": 124, + "execution_count": 12, "id": "da2bb202843d9275", "metadata": { "ExecuteTime": { @@ -1369,7 +1417,7 @@ }, { "cell_type": "code", - "execution_count": 125, + "execution_count": 13, "id": "ff19e3f1e051a489", "metadata": { "ExecuteTime": { @@ -1405,7 +1453,7 @@ }, { "cell_type": "code", - "execution_count": 126, + "execution_count": 57, "id": "27dba27b2e108316", "metadata": { "ExecuteTime": { @@ -1425,7 +1473,7 @@ "source": [ "def select_pre_zt_stocks_dynamic(stock_df):\n", " def select_stocks(group):\n", - " max_stocks = 500\n", + " max_stocks = 1500\n", " return group.nsmallest(max_stocks, 'log_circ_mv')\n", "\n", " stock_df = stock_df.groupby('trade_date', group_keys=False).apply(select_stocks)\n", @@ -1442,7 +1490,7 @@ }, { "cell_type": "code", - "execution_count": 127, + "execution_count": 58, "id": "ca96fb81e17c4a90", "metadata": { "ExecuteTime": { @@ -1489,7 +1537,7 @@ }, { "cell_type": "code", - "execution_count": 128, + "execution_count": 59, "id": "81d4570663ae21d7", "metadata": { "ExecuteTime": { @@ -1511,7 +1559,7 @@ }, { "cell_type": "code", - "execution_count": 129, + "execution_count": 60, "id": "92428d543f4727ad", "metadata": { "ExecuteTime": { @@ -1523,10 +1571,10 @@ { "data": { "text/plain": [ - "0" + "14" ] }, - "execution_count": 129, + "execution_count": 60, "metadata": {}, "output_type": "execute_result" } @@ -1567,7 +1615,7 @@ }, { "cell_type": "code", - "execution_count": 142, + "execution_count": 61, "id": "8f134d435f71e9e2", "metadata": { "ExecuteTime": { @@ -1588,7 +1636,7 @@ " n = len(unique_dates)\n", "\n", " # 2. 计算需要跳过的天数,使后续窗口对齐\n", - " extra_days = (n - train_days) % test_days\n", + " extra_days = (n - train_days) % test_days + days\n", " start_index = extra_days # 从此索引开始滚动\n", "\n", " predictions_list = []\n", @@ -1609,6 +1657,8 @@ " # feature_columns, _ = remove_shifted_features(train_data, feature_columns_origin, size=0.8, log=False,\n", " # val_data=df[filter_index & (df['trade_date'] ==\n", " # unique_dates[start + train_days - days + 1])])\n", + " feature_columns = feature_columns_origin\n", + " # feature_columns = select_top_features_by_rankic(train_data, feature_columns, n=50)\n", "\n", " train_data = train_data.dropna(subset=feature_columns)\n", " train_data = train_data.dropna(subset=['label'])\n", @@ -1644,9 +1694,10 @@ " lgb.callback.record_evaluation(evals),\n", " # lgb.early_stopping(100, first_metric_only=True)\n", " ], evals,\n", - " num_boost_round=24, validation_days=validation_days,\n", + " num_boost_round=36, validation_days=validation_days,\n", " print_feature_importance=False, use_pca=False)\n", " except Exception as e:\n", + " print(e)\n", " print(train_data['label'].unique().tolist())\n", "\n", " score_df = test_data.copy()\n", @@ -1656,8 +1707,9 @@ " # predictions_list.append(score_df)\n", " # score_df['score'] = score_df['log_circ_mv']\n", " top_stock_ = score_df.nlargest(1, columns='score').reset_index(level=0)\n", - " final_selection = top_stock_[['trade_date', 'score', 'ts_code']]\n", - " predictions_list.append(final_selection)\n", + " final_selection = top_stock_\n", + " # final_selection = final_selection.sort_values(['log_circ_mv']).head(1)\n", + " predictions_list.append(final_selection[['trade_date', 'score', 'ts_code']])\n", "\n", " final_predictions = pd.concat(predictions_list, ignore_index=True)\n", " return final_predictions\n", @@ -1666,7 +1718,7 @@ }, { "cell_type": "code", - "execution_count": 143, + "execution_count": 62, "id": "63235069-dc59-48fb-961a-e80373e41a61", "metadata": { "ExecuteTime": { @@ -1686,1700 +1738,2347 @@ "output_type": "stream", "text": [ "finish\n", - "train_data最大日期: 2022-12-01, 训练天数1\n", + "train_data最大日期: 2022-01-11, 训练天数5\n", + "test_data最大日期: 2022-01-18\n", + "划分后的训练集大小: 6946, 验证集大小: 1391\n", + "train_data最大日期: 2022-01-12, 训练天数5\n", + "test_data最大日期: 2022-01-19\n", + "划分后的训练集大小: 6946, 验证集大小: 1390\n", + "train_data最大日期: 2022-01-13, 训练天数5\n", + "test_data最大日期: 2022-01-20\n", + "划分后的训练集大小: 6943, 验证集大小: 1387\n", + "train_data最大日期: 2022-01-14, 训练天数5\n", + "test_data最大日期: 2022-01-21\n", + "划分后的训练集大小: 6932, 验证集大小: 1377\n", + "train_data最大日期: 2022-01-17, 训练天数5\n", + "test_data最大日期: 2022-01-24\n", + "划分后的训练集大小: 6931, 验证集大小: 1386\n", + "train_data最大日期: 2022-01-18, 训练天数5\n", + "test_data最大日期: 2022-01-25\n", + "划分后的训练集大小: 6928, 验证集大小: 1388\n", + "train_data最大日期: 2022-01-19, 训练天数5\n", + "test_data最大日期: 2022-01-26\n", + "划分后的训练集大小: 6915, 验证集大小: 1377\n", + "train_data最大日期: 2022-01-20, 训练天数5\n", + "test_data最大日期: 2022-01-27\n", + "划分后的训练集大小: 6894, 验证集大小: 1366\n", + "train_data最大日期: 2022-01-21, 训练天数5\n", + "test_data最大日期: 2022-01-28\n", + "划分后的训练集大小: 6904, 验证集大小: 1387\n", + "train_data最大日期: 2022-01-24, 训练天数5\n", + "test_data最大日期: 2022-02-07\n", + "划分后的训练集大小: 6910, 验证集大小: 1392\n", + "train_data最大日期: 2022-01-25, 训练天数5\n", + "test_data最大日期: 2022-02-08\n", + "划分后的训练集大小: 6918, 验证集大小: 1396\n", + "train_data最大日期: 2022-01-26, 训练天数5\n", + "test_data最大日期: 2022-02-09\n", + "划分后的训练集大小: 6939, 验证集大小: 1398\n", + "train_data最大日期: 2022-01-27, 训练天数5\n", + "test_data最大日期: 2022-02-10\n", + "划分后的训练集大小: 6949, 验证集大小: 1376\n", + "train_data最大日期: 2022-01-28, 训练天数5\n", + "test_data最大日期: 2022-02-11\n", + "划分后的训练集大小: 6950, 验证集大小: 1388\n", + "train_data最大日期: 2022-02-07, 训练天数5\n", + "test_data最大日期: 2022-02-14\n", + "划分后的训练集大小: 6947, 验证集大小: 1389\n", + "train_data最大日期: 2022-02-08, 训练天数5\n", + "test_data最大日期: 2022-02-15\n", + "划分后的训练集大小: 6940, 验证集大小: 1389\n", + "train_data最大日期: 2022-02-09, 训练天数5\n", + "test_data最大日期: 2022-02-16\n", + "划分后的训练集大小: 6933, 验证集大小: 1391\n", + "train_data最大日期: 2022-02-10, 训练天数5\n", + "test_data最大日期: 2022-02-17\n", + "划分后的训练集大小: 6960, 验证集大小: 1403\n", + "train_data最大日期: 2022-02-11, 训练天数5\n", + "test_data最大日期: 2022-02-18\n", + "划分后的训练集大小: 6978, 验证集大小: 1406\n", + "train_data最大日期: 2022-02-14, 训练天数5\n", + "test_data最大日期: 2022-02-21\n", + "划分后的训练集大小: 6991, 验证集大小: 1402\n", + "train_data最大日期: 2022-02-15, 训练天数5\n", + "test_data最大日期: 2022-02-22\n", + "划分后的训练集大小: 6997, 验证集大小: 1395\n", + "train_data最大日期: 2022-02-16, 训练天数5\n", + "test_data最大日期: 2022-02-23\n", + "划分后的训练集大小: 7003, 验证集大小: 1397\n", + "train_data最大日期: 2022-02-17, 训练天数5\n", + "test_data最大日期: 2022-02-24\n", + "划分后的训练集大小: 7001, 验证集大小: 1401\n", + "train_data最大日期: 2022-02-18, 训练天数5\n", + "test_data最大日期: 2022-02-25\n", + "划分后的训练集大小: 6996, 验证集大小: 1401\n", + "train_data最大日期: 2022-02-21, 训练天数5\n", + "test_data最大日期: 2022-02-28\n", + "划分后的训练集大小: 6990, 验证集大小: 1396\n", + "train_data最大日期: 2022-02-22, 训练天数5\n", + "test_data最大日期: 2022-03-01\n", + "划分后的训练集大小: 6989, 验证集大小: 1394\n", + "train_data最大日期: 2022-02-23, 训练天数5\n", + "test_data最大日期: 2022-03-02\n", + "划分后的训练集大小: 6996, 验证集大小: 1404\n", + "train_data最大日期: 2022-02-24, 训练天数5\n", + "test_data最大日期: 2022-03-03\n", + "划分后的训练集大小: 6987, 验证集大小: 1392\n", + "train_data最大日期: 2022-02-25, 训练天数5\n", + "test_data最大日期: 2022-03-04\n", + "划分后的训练集大小: 6989, 验证集大小: 1403\n", + "train_data最大日期: 2022-02-28, 训练天数5\n", + "test_data最大日期: 2022-03-07\n", + "划分后的训练集大小: 6988, 验证集大小: 1395\n", + "train_data最大日期: 2022-03-01, 训练天数5\n", + "test_data最大日期: 2022-03-08\n", + "划分后的训练集大小: 6993, 验证集大小: 1399\n", + "train_data最大日期: 2022-03-02, 训练天数5\n", + "test_data最大日期: 2022-03-09\n", + "划分后的训练集大小: 6985, 验证集大小: 1396\n", + "train_data最大日期: 2022-03-03, 训练天数5\n", + "test_data最大日期: 2022-03-10\n", + "划分后的训练集大小: 6979, 验证集大小: 1386\n", + "train_data最大日期: 2022-03-04, 训练天数5\n", + "test_data最大日期: 2022-03-11\n", + "划分后的训练集大小: 6976, 验证集大小: 1400\n", + "train_data最大日期: 2022-03-07, 训练天数5\n", + "test_data最大日期: 2022-03-14\n", + "划分后的训练集大小: 6976, 验证集大小: 1395\n", + "train_data最大日期: 2022-03-08, 训练天数5\n", + "test_data最大日期: 2022-03-15\n", + "划分后的训练集大小: 6964, 验证集大小: 1387\n", + "train_data最大日期: 2022-03-09, 训练天数5\n", + "test_data最大日期: 2022-03-16\n", + "划分后的训练集大小: 6963, 验证集大小: 1395\n", + "train_data最大日期: 2022-03-10, 训练天数5\n", + "test_data最大日期: 2022-03-17\n", + "划分后的训练集大小: 6978, 验证集大小: 1401\n", + "train_data最大日期: 2022-03-11, 训练天数5\n", + "test_data最大日期: 2022-03-18\n", + "划分后的训练集大小: 6987, 验证集大小: 1409\n", + "train_data最大日期: 2022-03-14, 训练天数5\n", + "test_data最大日期: 2022-03-21\n", + "划分后的训练集大小: 6996, 验证集大小: 1404\n", + "train_data最大日期: 2022-03-15, 训练天数5\n", + "test_data最大日期: 2022-03-22\n", + "划分后的训练集大小: 6994, 验证集大小: 1385\n", + "train_data最大日期: 2022-03-16, 训练天数5\n", + "test_data最大日期: 2022-03-23\n", + "划分后的训练集大小: 7002, 验证集大小: 1403\n", + "train_data最大日期: 2022-03-17, 训练天数5\n", + "test_data最大日期: 2022-03-24\n", + "划分后的训练集大小: 7005, 验证集大小: 1404\n", + "train_data最大日期: 2022-03-18, 训练天数5\n", + "test_data最大日期: 2022-03-25\n", + "划分后的训练集大小: 6999, 验证集大小: 1403\n", + "train_data最大日期: 2022-03-21, 训练天数5\n", + "test_data最大日期: 2022-03-28\n", + "划分后的训练集大小: 6992, 验证集大小: 1397\n", + "train_data最大日期: 2022-03-22, 训练天数5\n", + "test_data最大日期: 2022-03-29\n", + "划分后的训练集大小: 7018, 验证集大小: 1411\n", + "train_data最大日期: 2022-03-23, 训练天数5\n", + "test_data最大日期: 2022-03-30\n", + "划分后的训练集大小: 7022, 验证集大小: 1407\n", + "train_data最大日期: 2022-03-24, 训练天数5\n", + "test_data最大日期: 2022-03-31\n", + "划分后的训练集大小: 7024, 验证集大小: 1406\n", + "train_data最大日期: 2022-03-25, 训练天数5\n", + "test_data最大日期: 2022-04-01\n", + "划分后的训练集大小: 7015, 验证集大小: 1394\n", + "train_data最大日期: 2022-03-28, 训练天数5\n", + "test_data最大日期: 2022-04-06\n", + "划分后的训练集大小: 7018, 验证集大小: 1400\n", + "train_data最大日期: 2022-03-29, 训练天数5\n", + "test_data最大日期: 2022-04-07\n", + "划分后的训练集大小: 7016, 验证集大小: 1409\n", + "train_data最大日期: 2022-03-30, 训练天数5\n", + "test_data最大日期: 2022-04-08\n", + "划分后的训练集大小: 7011, 验证集大小: 1402\n", + "train_data最大日期: 2022-03-31, 训练天数5\n", + "test_data最大日期: 2022-04-11\n", + "划分后的训练集大小: 7009, 验证集大小: 1404\n", + "train_data最大日期: 2022-04-01, 训练天数5\n", + "test_data最大日期: 2022-04-12\n", + "划分后的训练集大小: 7017, 验证集大小: 1402\n", + "train_data最大日期: 2022-04-06, 训练天数5\n", + "test_data最大日期: 2022-04-13\n", + "划分后的训练集大小: 7001, 验证集大小: 1384\n", + "train_data最大日期: 2022-04-07, 训练天数5\n", + "test_data最大日期: 2022-04-14\n", + "划分后的训练集大小: 6992, 验证集大小: 1400\n", + "train_data最大日期: 2022-04-08, 训练天数5\n", + "test_data最大日期: 2022-04-15\n", + "划分后的训练集大小: 6989, 验证集大小: 1399\n", + "train_data最大日期: 2022-04-11, 训练天数5\n", + "test_data最大日期: 2022-04-18\n", + "划分后的训练集大小: 6985, 验证集大小: 1400\n", + "train_data最大日期: 2022-04-12, 训练天数5\n", + "test_data最大日期: 2022-04-19\n", + "划分后的训练集大小: 6981, 验证集大小: 1398\n", + "train_data最大日期: 2022-04-13, 训练天数5\n", + "test_data最大日期: 2022-04-20\n", + "划分后的训练集大小: 6998, 验证集大小: 1401\n", + "train_data最大日期: 2022-04-14, 训练天数5\n", + "test_data最大日期: 2022-04-21\n", + "划分后的训练集大小: 6987, 验证集大小: 1389\n", + "train_data最大日期: 2022-04-15, 训练天数5\n", + "test_data最大日期: 2022-04-22\n", + "划分后的训练集大小: 6985, 验证集大小: 1397\n", + "train_data最大日期: 2022-04-18, 训练天数5\n", + "test_data最大日期: 2022-04-25\n", + "划分后的训练集大小: 6821, 验证集大小: 1236\n", + "train_data最大日期: 2022-04-19, 训练天数5\n", + "test_data最大日期: 2022-04-26\n", + "划分后的训练集大小: 6232, 验证集大小: 809\n", + "train_data最大日期: 2022-04-20, 训练天数5\n", + "test_data最大日期: 2022-04-27\n", + "划分后的训练集大小: 5968, 验证集大小: 1137\n", + "train_data最大日期: 2022-04-21, 训练天数5\n", + "test_data最大日期: 2022-04-28\n", + "划分后的训练集大小: 5774, 验证集大小: 1195\n", + "train_data最大日期: 2022-04-22, 训练天数5\n", + "test_data最大日期: 2022-04-29\n", + "划分后的训练集大小: 5727, 验证集大小: 1350\n", + "train_data最大日期: 2022-04-25, 训练天数5\n", + "test_data最大日期: 2022-05-05\n", + "划分后的训练集大小: 5877, 验证集大小: 1386\n", + "train_data最大日期: 2022-04-26, 训练天数5\n", + "test_data最大日期: 2022-05-06\n", + "划分后的训练集大小: 6423, 验证集大小: 1355\n", + "train_data最大日期: 2022-04-27, 训练天数5\n", + "test_data最大日期: 2022-05-09\n", + "划分后的训练集大小: 6661, 验证集大小: 1375\n", + "train_data最大日期: 2022-04-28, 训练天数5\n", + "test_data最大日期: 2022-05-10\n", + "划分后的训练集大小: 6830, 验证集大小: 1364\n", + "train_data最大日期: 2022-04-29, 训练天数5\n", + "test_data最大日期: 2022-05-11\n", + "划分后的训练集大小: 6869, 验证集大小: 1389\n", + "train_data最大日期: 2022-05-05, 训练天数5\n", + "test_data最大日期: 2022-05-12\n", + "划分后的训练集大小: 6886, 验证集大小: 1403\n", + "train_data最大日期: 2022-05-06, 训练天数5\n", + "test_data最大日期: 2022-05-13\n", + "划分后的训练集大小: 6929, 验证集大小: 1398\n", + "train_data最大日期: 2022-05-09, 训练天数5\n", + "test_data最大日期: 2022-05-16\n", + "划分后的训练集大小: 6959, 验证集大小: 1405\n", + "train_data最大日期: 2022-05-10, 训练天数5\n", + "test_data最大日期: 2022-05-17\n", + "划分后的训练集大小: 7000, 验证集大小: 1405\n", + "train_data最大日期: 2022-05-11, 训练天数5\n", + "test_data最大日期: 2022-05-18\n", + "划分后的训练集大小: 7006, 验证集大小: 1395\n", + "train_data最大日期: 2022-05-12, 训练天数5\n", + "test_data最大日期: 2022-05-19\n", + "划分后的训练集大小: 7002, 验证集大小: 1399\n", + "train_data最大日期: 2022-05-13, 训练天数5\n", + "test_data最大日期: 2022-05-20\n", + "划分后的训练集大小: 7005, 验证集大小: 1401\n", + "train_data最大日期: 2022-05-16, 训练天数5\n", + "test_data最大日期: 2022-05-23\n", + "划分后的训练集大小: 6995, 验证集大小: 1395\n", + "train_data最大日期: 2022-05-17, 训练天数5\n", + "test_data最大日期: 2022-05-24\n", + "划分后的训练集大小: 6984, 验证集大小: 1394\n", + "train_data最大日期: 2022-05-18, 训练天数5\n", + "test_data最大日期: 2022-05-25\n", + "划分后的训练集大小: 6975, 验证集大小: 1386\n", + "train_data最大日期: 2022-05-19, 训练天数5\n", + "test_data最大日期: 2022-05-26\n", + "划分后的训练集大小: 6980, 验证集大小: 1404\n", + "train_data最大日期: 2022-05-20, 训练天数5\n", + "test_data最大日期: 2022-05-27\n", + "划分后的训练集大小: 6978, 验证集大小: 1399\n", + "train_data最大日期: 2022-05-23, 训练天数5\n", + "test_data最大日期: 2022-05-30\n", + "划分后的训练集大小: 6984, 验证集大小: 1401\n", + "train_data最大日期: 2022-05-24, 训练天数5\n", + "test_data最大日期: 2022-05-31\n", + "划分后的训练集大小: 6987, 验证集大小: 1397\n", + "train_data最大日期: 2022-05-25, 训练天数5\n", + "test_data最大日期: 2022-06-01\n", + "划分后的训练集大小: 6999, 验证集大小: 1398\n", + "train_data最大日期: 2022-05-26, 训练天数5\n", + "test_data最大日期: 2022-06-02\n", + "划分后的训练集大小: 6989, 验证集大小: 1394\n", + "train_data最大日期: 2022-05-27, 训练天数5\n", + "test_data最大日期: 2022-06-06\n", + "划分后的训练集大小: 6991, 验证集大小: 1401\n", + "train_data最大日期: 2022-05-30, 训练天数5\n", + "test_data最大日期: 2022-06-07\n", + "划分后的训练集大小: 6990, 验证集大小: 1400\n", + "train_data最大日期: 2022-05-31, 训练天数5\n", + "test_data最大日期: 2022-06-08\n", + "划分后的训练集大小: 6992, 验证集大小: 1399\n", + "train_data最大日期: 2022-06-01, 训练天数5\n", + "test_data最大日期: 2022-06-09\n", + "划分后的训练集大小: 6992, 验证集大小: 1398\n", + "train_data最大日期: 2022-06-02, 训练天数5\n", + "test_data最大日期: 2022-06-10\n", + "划分后的训练集大小: 6997, 验证集大小: 1399\n", + "train_data最大日期: 2022-06-06, 训练天数5\n", + "test_data最大日期: 2022-06-13\n", + "划分后的训练集大小: 6990, 验证集大小: 1394\n", + "train_data最大日期: 2022-06-07, 训练天数5\n", + "test_data最大日期: 2022-06-14\n", + "划分后的训练集大小: 6980, 验证集大小: 1390\n", + "train_data最大日期: 2022-06-08, 训练天数5\n", + "test_data最大日期: 2022-06-15\n", + "划分后的训练集大小: 6974, 验证集大小: 1393\n", + "train_data最大日期: 2022-06-09, 训练天数5\n", + "test_data最大日期: 2022-06-16\n", + "划分后的训练集大小: 6964, 验证集大小: 1388\n", + "train_data最大日期: 2022-06-10, 训练天数5\n", + "test_data最大日期: 2022-06-17\n", + "划分后的训练集大小: 6953, 验证集大小: 1388\n", + "train_data最大日期: 2022-06-13, 训练天数5\n", + "test_data最大日期: 2022-06-20\n", + "划分后的训练集大小: 6945, 验证集大小: 1386\n", + "train_data最大日期: 2022-06-14, 训练天数5\n", + "test_data最大日期: 2022-06-21\n", + "划分后的训练集大小: 6948, 验证集大小: 1393\n", + "train_data最大日期: 2022-06-15, 训练天数5\n", + "test_data最大日期: 2022-06-22\n", + "划分后的训练集大小: 6942, 验证集大小: 1387\n", + "train_data最大日期: 2022-06-16, 训练天数5\n", + "test_data最大日期: 2022-06-23\n", + "划分后的训练集大小: 6940, 验证集大小: 1386\n", + "train_data最大日期: 2022-06-17, 训练天数5\n", + "test_data最大日期: 2022-06-24\n", + "划分后的训练集大小: 6940, 验证集大小: 1388\n", + "train_data最大日期: 2022-06-20, 训练天数5\n", + "test_data最大日期: 2022-06-27\n", + "划分后的训练集大小: 6942, 验证集大小: 1388\n", + "train_data最大日期: 2022-06-21, 训练天数5\n", + "test_data最大日期: 2022-06-28\n", + "划分后的训练集大小: 6933, 验证集大小: 1384\n", + "train_data最大日期: 2022-06-22, 训练天数5\n", + "test_data最大日期: 2022-06-29\n", + "划分后的训练集大小: 6934, 验证集大小: 1388\n", + "train_data最大日期: 2022-06-23, 训练天数5\n", + "test_data最大日期: 2022-06-30\n", + "划分后的训练集大小: 6923, 验证集大小: 1375\n", + "train_data最大日期: 2022-06-24, 训练天数5\n", + "test_data最大日期: 2022-07-01\n", + "划分后的训练集大小: 6932, 验证集大小: 1397\n", + "train_data最大日期: 2022-06-27, 训练天数5\n", + "test_data最大日期: 2022-07-04\n", + "划分后的训练集大小: 6944, 验证集大小: 1400\n", + "train_data最大日期: 2022-06-28, 训练天数5\n", + "test_data最大日期: 2022-07-05\n", + "划分后的训练集大小: 6953, 验证集大小: 1393\n", + "train_data最大日期: 2022-06-29, 训练天数5\n", + "test_data最大日期: 2022-07-06\n", + "划分后的训练集大小: 6963, 验证集大小: 1398\n", + "train_data最大日期: 2022-06-30, 训练天数5\n", + "test_data最大日期: 2022-07-07\n", + "划分后的训练集大小: 6991, 验证集大小: 1403\n", + "train_data最大日期: 2022-07-01, 训练天数5\n", + "test_data最大日期: 2022-07-08\n", + "划分后的训练集大小: 6995, 验证集大小: 1401\n", + "train_data最大日期: 2022-07-04, 训练天数5\n", + "test_data最大日期: 2022-07-11\n", + "划分后的训练集大小: 7001, 验证集大小: 1406\n", + "train_data最大日期: 2022-07-05, 训练天数5\n", + "test_data最大日期: 2022-07-12\n", + "划分后的训练集大小: 7014, 验证集大小: 1406\n", + "train_data最大日期: 2022-07-06, 训练天数5\n", + "test_data最大日期: 2022-07-13\n", + "划分后的训练集大小: 7021, 验证集大小: 1405\n", + "train_data最大日期: 2022-07-07, 训练天数5\n", + "test_data最大日期: 2022-07-14\n", + "划分后的训练集大小: 7028, 验证集大小: 1410\n", + "train_data最大日期: 2022-07-08, 训练天数5\n", + "test_data最大日期: 2022-07-15\n", + "划分后的训练集大小: 7035, 验证集大小: 1408\n", + "train_data最大日期: 2022-07-11, 训练天数5\n", + "test_data最大日期: 2022-07-18\n", + "划分后的训练集大小: 7037, 验证集大小: 1408\n", + "train_data最大日期: 2022-07-12, 训练天数5\n", + "test_data最大日期: 2022-07-19\n", + "划分后的训练集大小: 7023, 验证集大小: 1392\n", + "train_data最大日期: 2022-07-13, 训练天数5\n", + "test_data最大日期: 2022-07-20\n", + "划分后的训练集大小: 7009, 验证集大小: 1391\n", + "train_data最大日期: 2022-07-14, 训练天数5\n", + "test_data最大日期: 2022-07-21\n", + "划分后的训练集大小: 6999, 验证集大小: 1400\n", + "train_data最大日期: 2022-07-15, 训练天数5\n", + "test_data最大日期: 2022-07-22\n", + "划分后的训练集大小: 6986, 验证集大小: 1395\n", + "train_data最大日期: 2022-07-18, 训练天数5\n", + "test_data最大日期: 2022-07-25\n", + "划分后的训练集大小: 6988, 验证集大小: 1410\n", + "train_data最大日期: 2022-07-19, 训练天数5\n", + "test_data最大日期: 2022-07-26\n", + "划分后的训练集大小: 7009, 验证集大小: 1413\n", + "train_data最大日期: 2022-07-20, 训练天数5\n", + "test_data最大日期: 2022-07-27\n", + "划分后的训练集大小: 7029, 验证集大小: 1411\n", + "train_data最大日期: 2022-07-21, 训练天数5\n", + "test_data最大日期: 2022-07-28\n", + "划分后的训练集大小: 7038, 验证集大小: 1409\n", + "train_data最大日期: 2022-07-22, 训练天数5\n", + "test_data最大日期: 2022-07-29\n", + "划分后的训练集大小: 7054, 验证集大小: 1411\n", + "train_data最大日期: 2022-07-25, 训练天数5\n", + "test_data最大日期: 2022-08-01\n", + "划分后的训练集大小: 7049, 验证集大小: 1405\n", + "train_data最大日期: 2022-07-26, 训练天数5\n", + "test_data最大日期: 2022-08-02\n", + "划分后的训练集大小: 7040, 验证集大小: 1404\n", + "train_data最大日期: 2022-07-27, 训练天数5\n", + "test_data最大日期: 2022-08-03\n", + "划分后的训练集大小: 7031, 验证集大小: 1402\n", + "train_data最大日期: 2022-07-28, 训练天数5\n", + "test_data最大日期: 2022-08-04\n", + "划分后的训练集大小: 7029, 验证集大小: 1407\n", + "train_data最大日期: 2022-07-29, 训练天数5\n", + "test_data最大日期: 2022-08-05\n", + "划分后的训练集大小: 7019, 验证集大小: 1401\n", + "train_data最大日期: 2022-08-01, 训练天数5\n", + "test_data最大日期: 2022-08-08\n", + "划分后的训练集大小: 7025, 验证集大小: 1411\n", + "train_data最大日期: 2022-08-02, 训练天数5\n", + "test_data最大日期: 2022-08-09\n", + "划分后的训练集大小: 7025, 验证集大小: 1404\n", + "train_data最大日期: 2022-08-03, 训练天数5\n", + "test_data最大日期: 2022-08-10\n", + "划分后的训练集大小: 7027, 验证集大小: 1404\n", + "train_data最大日期: 2022-08-04, 训练天数5\n", + "test_data最大日期: 2022-08-11\n", + "划分后的训练集大小: 7027, 验证集大小: 1407\n", + "train_data最大日期: 2022-08-05, 训练天数5\n", + "test_data最大日期: 2022-08-12\n", + "划分后的训练集大小: 7031, 验证集大小: 1405\n", + "train_data最大日期: 2022-08-08, 训练天数5\n", + "test_data最大日期: 2022-08-15\n", + "划分后的训练集大小: 7026, 验证集大小: 1406\n", + "train_data最大日期: 2022-08-09, 训练天数5\n", + "test_data最大日期: 2022-08-16\n", + "划分后的训练集大小: 7028, 验证集大小: 1406\n", + "train_data最大日期: 2022-08-10, 训练天数5\n", + "test_data最大日期: 2022-08-17\n", + "划分后的训练集大小: 7035, 验证集大小: 1411\n", + "train_data最大日期: 2022-08-11, 训练天数5\n", + "test_data最大日期: 2022-08-18\n", + "划分后的训练集大小: 7032, 验证集大小: 1404\n", + "train_data最大日期: 2022-08-12, 训练天数5\n", + "test_data最大日期: 2022-08-19\n", + "划分后的训练集大小: 7032, 验证集大小: 1405\n", + "train_data最大日期: 2022-08-15, 训练天数5\n", + "test_data最大日期: 2022-08-22\n", + "划分后的训练集大小: 7035, 验证集大小: 1409\n", + "train_data最大日期: 2022-08-16, 训练天数5\n", + "test_data最大日期: 2022-08-23\n", + "划分后的训练集大小: 7036, 验证集大小: 1407\n", + "train_data最大日期: 2022-08-17, 训练天数5\n", + "test_data最大日期: 2022-08-24\n", + "划分后的训练集大小: 7036, 验证集大小: 1411\n", + "train_data最大日期: 2022-08-18, 训练天数5\n", + "test_data最大日期: 2022-08-25\n", + "划分后的训练集大小: 7027, 验证集大小: 1395\n", + "train_data最大日期: 2022-08-19, 训练天数5\n", + "test_data最大日期: 2022-08-26\n", + "划分后的训练集大小: 7025, 验证集大小: 1403\n", + "train_data最大日期: 2022-08-22, 训练天数5\n", + "test_data最大日期: 2022-08-29\n", + "划分后的训练集大小: 7025, 验证集大小: 1409\n", + "train_data最大日期: 2022-08-23, 训练天数5\n", + "test_data最大日期: 2022-08-30\n", + "划分后的训练集大小: 7011, 验证集大小: 1393\n", + "train_data最大日期: 2022-08-24, 训练天数5\n", + "test_data最大日期: 2022-08-31\n", + "划分后的训练集大小: 6984, 验证集大小: 1384\n", + "train_data最大日期: 2022-08-25, 训练天数5\n", + "test_data最大日期: 2022-09-01\n", + "划分后的训练集大小: 6971, 验证集大小: 1382\n", + "train_data最大日期: 2022-08-26, 训练天数5\n", + "test_data最大日期: 2022-09-02\n", + "划分后的训练集大小: 6977, 验证集大小: 1409\n", + "train_data最大日期: 2022-08-29, 训练天数5\n", + "test_data最大日期: 2022-09-05\n", + "划分后的训练集大小: 6970, 验证集大小: 1402\n", + "train_data最大日期: 2022-08-30, 训练天数5\n", + "test_data最大日期: 2022-09-06\n", + "划分后的训练集大小: 6982, 验证集大小: 1405\n", + "train_data最大日期: 2022-08-31, 训练天数5\n", + "test_data最大日期: 2022-09-07\n", + "划分后的训练集大小: 7000, 验证集大小: 1402\n", + "train_data最大日期: 2022-09-01, 训练天数5\n", + "test_data最大日期: 2022-09-08\n", + "划分后的训练集大小: 7020, 验证集大小: 1402\n", + "train_data最大日期: 2022-09-02, 训练天数5\n", + "test_data最大日期: 2022-09-09\n", + "划分后的训练集大小: 7021, 验证集大小: 1410\n", + "train_data最大日期: 2022-09-05, 训练天数5\n", + "test_data最大日期: 2022-09-13\n", + "划分后的训练集大小: 7027, 验证集大小: 1408\n", + "train_data最大日期: 2022-09-06, 训练天数5\n", + "test_data最大日期: 2022-09-14\n", + "划分后的训练集大小: 7019, 验证集大小: 1397\n", + "train_data最大日期: 2022-09-07, 训练天数5\n", + "test_data最大日期: 2022-09-15\n", + "划分后的训练集大小: 7008, 验证集大小: 1391\n", + "train_data最大日期: 2022-09-08, 训练天数5\n", + "test_data最大日期: 2022-09-16\n", + "划分后的训练集大小: 7000, 验证集大小: 1394\n", + "train_data最大日期: 2022-09-09, 训练天数5\n", + "test_data最大日期: 2022-09-19\n", + "划分后的训练集大小: 6991, 验证集大小: 1401\n", + "train_data最大日期: 2022-09-13, 训练天数5\n", + "test_data最大日期: 2022-09-20\n", + "划分后的训练集大小: 6989, 验证集大小: 1406\n", + "train_data最大日期: 2022-09-14, 训练天数5\n", + "test_data最大日期: 2022-09-21\n", + "划分后的训练集大小: 6998, 验证集大小: 1406\n", + "train_data最大日期: 2022-09-15, 训练天数5\n", + "test_data最大日期: 2022-09-22\n", + "划分后的训练集大小: 7014, 验证集大小: 1407\n", + "train_data最大日期: 2022-09-16, 训练天数5\n", + "test_data最大日期: 2022-09-23\n", + "划分后的训练集大小: 7028, 验证集大小: 1408\n", + "train_data最大日期: 2022-09-19, 训练天数5\n", + "test_data最大日期: 2022-09-26\n", + "划分后的训练集大小: 7031, 验证集大小: 1404\n", + "train_data最大日期: 2022-09-20, 训练天数5\n", + "test_data最大日期: 2022-09-27\n", + "划分后的训练集大小: 7029, 验证集大小: 1404\n", + "train_data最大日期: 2022-09-21, 训练天数5\n", + "test_data最大日期: 2022-09-28\n", + "划分后的训练集大小: 7014, 验证集大小: 1391\n", + "train_data最大日期: 2022-09-22, 训练天数5\n", + "test_data最大日期: 2022-09-29\n", + "划分后的训练集大小: 6996, 验证集大小: 1389\n", + "train_data最大日期: 2022-09-23, 训练天数5\n", + "test_data最大日期: 2022-09-30\n", + "划分后的训练集大小: 6980, 验证集大小: 1392\n", + "train_data最大日期: 2022-09-26, 训练天数5\n", + "test_data最大日期: 2022-10-10\n", + "划分后的训练集大小: 6952, 验证集大小: 1376\n", + "train_data最大日期: 2022-09-27, 训练天数5\n", + "test_data最大日期: 2022-10-11\n", + "划分后的训练集大小: 6921, 验证集大小: 1373\n", + "train_data最大日期: 2022-09-28, 训练天数5\n", + "test_data最大日期: 2022-10-12\n", + "划分后的训练集大小: 6919, 验证集大小: 1389\n", + "train_data最大日期: 2022-09-29, 训练天数5\n", + "test_data最大日期: 2022-10-13\n", + "划分后的训练集大小: 6925, 验证集大小: 1395\n", + "train_data最大日期: 2022-09-30, 训练天数5\n", + "test_data最大日期: 2022-10-14\n", + "划分后的训练集大小: 6930, 验证集大小: 1397\n", + "train_data最大日期: 2022-10-10, 训练天数5\n", + "test_data最大日期: 2022-10-17\n", + "划分后的训练集大小: 6936, 验证集大小: 1382\n", + "train_data最大日期: 2022-10-11, 训练天数5\n", + "test_data最大日期: 2022-10-18\n", + "划分后的训练集大小: 6946, 验证集大小: 1383\n", + "train_data最大日期: 2022-10-12, 训练天数5\n", + "test_data最大日期: 2022-10-19\n", + "划分后的训练集大小: 6946, 验证集大小: 1389\n", + "train_data最大日期: 2022-10-13, 训练天数5\n", + "test_data最大日期: 2022-10-20\n", + "划分后的训练集大小: 6947, 验证集大小: 1396\n", + "train_data最大日期: 2022-10-14, 训练天数5\n", + "test_data最大日期: 2022-10-21\n", + "划分后的训练集大小: 6956, 验证集大小: 1406\n", + "train_data最大日期: 2022-10-17, 训练天数5\n", + "test_data最大日期: 2022-10-24\n", + "划分后的训练集大小: 6977, 验证集大小: 1403\n", + "train_data最大日期: 2022-10-18, 训练天数5\n", + "test_data最大日期: 2022-10-25\n", + "划分后的训练集大小: 6986, 验证集大小: 1392\n", + "train_data最大日期: 2022-10-19, 训练天数5\n", + "test_data最大日期: 2022-10-26\n", + "划分后的训练集大小: 6998, 验证集大小: 1401\n", + "train_data最大日期: 2022-10-20, 训练天数5\n", + "test_data最大日期: 2022-10-27\n", + "划分后的训练集大小: 7009, 验证集大小: 1407\n", + "train_data最大日期: 2022-10-21, 训练天数5\n", + "test_data最大日期: 2022-10-28\n", + "划分后的训练集大小: 7002, 验证集大小: 1399\n", + "train_data最大日期: 2022-10-24, 训练天数5\n", + "test_data最大日期: 2022-10-31\n", + "划分后的训练集大小: 7001, 验证集大小: 1402\n", + "train_data最大日期: 2022-10-25, 训练天数5\n", + "test_data最大日期: 2022-11-01\n", + "划分后的训练集大小: 7007, 验证集大小: 1398\n", + "train_data最大日期: 2022-10-26, 训练天数5\n", + "test_data最大日期: 2022-11-02\n", + "划分后的训练集大小: 7004, 验证集大小: 1398\n", + "train_data最大日期: 2022-10-27, 训练天数5\n", + "test_data最大日期: 2022-11-03\n", + "划分后的训练集大小: 6999, 验证集大小: 1402\n", + "train_data最大日期: 2022-10-28, 训练天数5\n", + "test_data最大日期: 2022-11-04\n", + "划分后的训练集大小: 7000, 验证集大小: 1400\n", + "train_data最大日期: 2022-10-31, 训练天数5\n", + "test_data最大日期: 2022-11-07\n", + "划分后的训练集大小: 6995, 验证集大小: 1397\n", + "train_data最大日期: 2022-11-01, 训练天数5\n", + "test_data最大日期: 2022-11-08\n", + "划分后的训练集大小: 6996, 验证集大小: 1399\n", + "train_data最大日期: 2022-11-02, 训练天数5\n", + "test_data最大日期: 2022-11-09\n", + "划分后的训练集大小: 6984, 验证集大小: 1386\n", + "train_data最大日期: 2022-11-03, 训练天数5\n", + "test_data最大日期: 2022-11-10\n", + "划分后的训练集大小: 6974, 验证集大小: 1392\n", + "train_data最大日期: 2022-11-04, 训练天数5\n", + "test_data最大日期: 2022-11-11\n", + "划分后的训练集大小: 6971, 验证集大小: 1397\n", + "train_data最大日期: 2022-11-07, 训练天数5\n", + "test_data最大日期: 2022-11-14\n", + "划分后的训练集大小: 6968, 验证集大小: 1394\n", + "train_data最大日期: 2022-11-08, 训练天数5\n", + "test_data最大日期: 2022-11-15\n", + "划分后的训练集大小: 6962, 验证集大小: 1393\n", + "train_data最大日期: 2022-11-09, 训练天数5\n", + "test_data最大日期: 2022-11-16\n", + "划分后的训练集大小: 6982, 验证集大小: 1406\n", + "train_data最大日期: 2022-11-10, 训练天数5\n", + "test_data最大日期: 2022-11-17\n", + "划分后的训练集大小: 6992, 验证集大小: 1402\n", + "train_data最大日期: 2022-11-11, 训练天数5\n", + "test_data最大日期: 2022-11-18\n", + "划分后的训练集大小: 6992, 验证集大小: 1397\n", + "train_data最大日期: 2022-11-14, 训练天数5\n", + "test_data最大日期: 2022-11-21\n", + "划分后的训练集大小: 7001, 验证集大小: 1403\n", + "train_data最大日期: 2022-11-15, 训练天数5\n", + "test_data最大日期: 2022-11-22\n", + "划分后的训练集大小: 7006, 验证集大小: 1398\n", + "train_data最大日期: 2022-11-16, 训练天数5\n", + "test_data最大日期: 2022-11-23\n", + "划分后的训练集大小: 7002, 验证集大小: 1402\n", + "train_data最大日期: 2022-11-17, 训练天数5\n", + "test_data最大日期: 2022-11-24\n", + "划分后的训练集大小: 7003, 验证集大小: 1403\n", + "train_data最大日期: 2022-11-18, 训练天数5\n", + "test_data最大日期: 2022-11-25\n", + "划分后的训练集大小: 7013, 验证集大小: 1407\n", + "train_data最大日期: 2022-11-21, 训练天数5\n", + "test_data最大日期: 2022-11-28\n", + "划分后的训练集大小: 7015, 验证集大小: 1405\n", + "train_data最大日期: 2022-11-22, 训练天数5\n", + "test_data最大日期: 2022-11-29\n", + "划分后的训练集大小: 7020, 验证集大小: 1403\n", + "train_data最大日期: 2022-11-23, 训练天数5\n", + "test_data最大日期: 2022-11-30\n", + "划分后的训练集大小: 7014, 验证集大小: 1396\n", + "train_data最大日期: 2022-11-24, 训练天数5\n", + "test_data最大日期: 2022-12-01\n", + "划分后的训练集大小: 7013, 验证集大小: 1402\n", + "train_data最大日期: 2022-11-25, 训练天数5\n", + "test_data最大日期: 2022-12-02\n", + "划分后的训练集大小: 7001, 验证集大小: 1395\n", + "train_data最大日期: 2022-11-28, 训练天数5\n", + "test_data最大日期: 2022-12-05\n", + "划分后的训练集大小: 6998, 验证集大小: 1402\n", + "train_data最大日期: 2022-11-29, 训练天数5\n", + "test_data最大日期: 2022-12-06\n", + "划分后的训练集大小: 7002, 验证集大小: 1407\n", + "train_data最大日期: 2022-11-30, 训练天数5\n", + "test_data最大日期: 2022-12-07\n", + "划分后的训练集大小: 7017, 验证集大小: 1411\n", + "train_data最大日期: 2022-12-01, 训练天数5\n", "test_data最大日期: 2022-12-08\n", - "划分后的训练集大小: 451, 验证集大小: 451\n", - "train_data最大日期: 2022-12-02, 训练天数2\n", + "划分后的训练集大小: 7019, 验证集大小: 1404\n", + "train_data最大日期: 2022-12-02, 训练天数5\n", "test_data最大日期: 2022-12-09\n", - "划分后的训练集大小: 901, 验证集大小: 450\n", - "train_data最大日期: 2022-12-05, 训练天数3\n", + "划分后的训练集大小: 7034, 验证集大小: 1410\n", + "train_data最大日期: 2022-12-05, 训练天数5\n", "test_data最大日期: 2022-12-12\n", - "划分后的训练集大小: 1348, 验证集大小: 447\n", - "train_data最大日期: 2022-12-06, 训练天数4\n", + "划分后的训练集大小: 7029, 验证集大小: 1397\n", + "train_data最大日期: 2022-12-06, 训练天数5\n", "test_data最大日期: 2022-12-13\n", - "划分后的训练集大小: 1798, 验证集大小: 450\n", + "划分后的训练集大小: 7026, 验证集大小: 1404\n", "train_data最大日期: 2022-12-07, 训练天数5\n", "test_data最大日期: 2022-12-14\n", - "划分后的训练集大小: 2246, 验证集大小: 448\n", + "划分后的训练集大小: 7020, 验证集大小: 1405\n", "train_data最大日期: 2022-12-08, 训练天数5\n", "test_data最大日期: 2022-12-15\n", - "划分后的训练集大小: 2241, 验证集大小: 446\n", + "划分后的训练集大小: 7020, 验证集大小: 1404\n", "train_data最大日期: 2022-12-09, 训练天数5\n", "test_data最大日期: 2022-12-16\n", - "划分后的训练集大小: 2241, 验证集大小: 450\n", + "划分后的训练集大小: 7014, 验证集大小: 1404\n", "train_data最大日期: 2022-12-12, 训练天数5\n", "test_data最大日期: 2022-12-19\n", - "划分后的训练集大小: 2243, 验证集大小: 449\n", + "划分后的训练集大小: 7016, 验证集大小: 1399\n", "train_data最大日期: 2022-12-13, 训练天数5\n", "test_data最大日期: 2022-12-20\n", - "划分后的训练集大小: 2244, 验证集大小: 451\n", + "划分后的训练集大小: 7018, 验证集大小: 1406\n", "train_data最大日期: 2022-12-14, 训练天数5\n", "test_data最大日期: 2022-12-21\n", - "划分后的训练集大小: 2245, 验证集大小: 449\n", + "划分后的训练集大小: 7020, 验证集大小: 1407\n", "train_data最大日期: 2022-12-15, 训练天数5\n", "test_data最大日期: 2022-12-22\n", - "划分后的训练集大小: 2247, 验证集大小: 448\n", + "划分后的训练集大小: 7018, 验证集大小: 1402\n", "train_data最大日期: 2022-12-16, 训练天数5\n", "test_data最大日期: 2022-12-23\n", - "划分后的训练集大小: 2247, 验证集大小: 450\n", + "划分后的训练集大小: 7019, 验证集大小: 1405\n", "train_data最大日期: 2022-12-19, 训练天数5\n", "test_data最大日期: 2022-12-26\n", - "划分后的训练集大小: 2248, 验证集大小: 450\n", + "划分后的训练集大小: 7029, 验证集大小: 1409\n", "train_data最大日期: 2022-12-20, 训练天数5\n", "test_data最大日期: 2022-12-27\n", - "划分后的训练集大小: 2247, 验证集大小: 450\n", + "划分后的训练集大小: 7030, 验证集大小: 1407\n", "train_data最大日期: 2022-12-21, 训练天数5\n", "test_data最大日期: 2022-12-28\n", - "划分后的训练集大小: 2246, 验证集大小: 448\n", + "划分后的训练集大小: 7027, 验证集大小: 1404\n", "train_data最大日期: 2022-12-22, 训练天数5\n", "test_data最大日期: 2022-12-29\n", - "划分后的训练集大小: 2249, 验证集大小: 451\n", + "划分后的训练集大小: 7034, 验证集大小: 1409\n", "train_data最大日期: 2022-12-23, 训练天数5\n", "test_data最大日期: 2022-12-30\n", - "划分后的训练集大小: 2251, 验证集大小: 452\n", + "划分后的训练集大小: 7035, 验证集大小: 1406\n", "train_data最大日期: 2022-12-26, 训练天数5\n", "test_data最大日期: 2023-01-03\n", - "划分后的训练集大小: 2254, 验证集大小: 453\n", + "划分后的训练集大小: 7034, 验证集大小: 1408\n", "train_data最大日期: 2022-12-27, 训练天数5\n", "test_data最大日期: 2023-01-04\n", - "划分后的训练集大小: 2259, 验证集大小: 455\n", + "划分后的训练集大小: 7037, 验证集大小: 1410\n", "train_data最大日期: 2022-12-28, 训练天数5\n", "test_data最大日期: 2023-01-05\n", - "划分后的训练集大小: 2264, 验证集大小: 453\n", + "划分后的训练集大小: 7037, 验证集大小: 1404\n", "train_data最大日期: 2022-12-29, 训练天数5\n", "test_data最大日期: 2023-01-06\n", - "划分后的训练集大小: 2267, 验证集大小: 454\n", + "划分后的训练集大小: 7037, 验证集大小: 1409\n", "train_data最大日期: 2022-12-30, 训练天数5\n", "test_data最大日期: 2023-01-09\n", - "划分后的训练集大小: 2270, 验证集大小: 455\n", + "划分后的训练集大小: 7043, 验证集大小: 1412\n", "train_data最大日期: 2023-01-03, 训练天数5\n", "test_data最大日期: 2023-01-10\n", - "划分后的训练集大小: 2271, 验证集大小: 454\n", + "划分后的训练集大小: 7048, 验证集大小: 1413\n", "train_data最大日期: 2023-01-04, 训练天数5\n", "test_data最大日期: 2023-01-11\n", - "划分后的训练集大小: 2268, 验证集大小: 452\n", + "划分后的训练集大小: 7042, 验证集大小: 1404\n", "train_data最大日期: 2023-01-05, 训练天数5\n", "test_data最大日期: 2023-01-12\n", - "划分后的训练集大小: 2270, 验证集大小: 455\n", + "划分后的训练集大小: 7051, 验证集大小: 1413\n", "train_data最大日期: 2023-01-06, 训练天数5\n", "test_data最大日期: 2023-01-13\n", - "划分后的训练集大小: 2272, 验证集大小: 456\n", + "划分后的训练集大小: 7058, 验证集大小: 1416\n", "train_data最大日期: 2023-01-09, 训练天数5\n", "test_data最大日期: 2023-01-16\n", - "划分后的训练集大小: 2274, 验证集大小: 457\n", + "划分后的训练集大小: 7055, 验证集大小: 1409\n", "train_data最大日期: 2023-01-10, 训练天数5\n", "test_data最大日期: 2023-01-17\n", - "划分后的训练集大小: 2274, 验证集大小: 454\n", + "划分后的训练集大小: 7048, 验证集大小: 1406\n", "train_data最大日期: 2023-01-11, 训练天数5\n", "test_data最大日期: 2023-01-18\n", - "划分后的训练集大小: 2277, 验证集大小: 455\n", + "划分后的训练集大小: 7055, 验证集大小: 1411\n", "train_data最大日期: 2023-01-12, 训练天数5\n", "test_data最大日期: 2023-01-19\n", - "划分后的训练集大小: 2279, 验证集大小: 457\n", + "划分后的训练集大小: 7054, 验证集大小: 1412\n", "train_data最大日期: 2023-01-13, 训练天数5\n", "test_data最大日期: 2023-01-20\n", - "划分后的训练集大小: 2279, 验证集大小: 456\n", + "划分后的训练集大小: 7050, 验证集大小: 1412\n", "train_data最大日期: 2023-01-16, 训练天数5\n", "test_data最大日期: 2023-01-30\n", - "划分后的训练集大小: 2277, 验证集大小: 455\n", + "划分后的训练集大小: 7052, 验证集大小: 1411\n", "train_data最大日期: 2023-01-17, 训练天数5\n", "test_data最大日期: 2023-01-31\n", - "划分后的训练集大小: 2277, 验证集大小: 454\n", + "划分后的训练集大小: 7058, 验证集大小: 1412\n", "train_data最大日期: 2023-01-18, 训练天数5\n", "test_data最大日期: 2023-02-01\n", - "划分后的训练集大小: 2275, 验证集大小: 453\n", + "划分后的训练集大小: 7053, 验证集大小: 1406\n", "train_data最大日期: 2023-01-19, 训练天数5\n", "test_data最大日期: 2023-02-02\n", - "划分后的训练集大小: 2268, 验证集大小: 450\n", + "划分后的训练集大小: 7047, 验证集大小: 1406\n", "train_data最大日期: 2023-01-20, 训练天数5\n", "test_data最大日期: 2023-02-03\n", - "划分后的训练集大小: 2268, 验证集大小: 456\n", + "划分后的训练集大小: 7045, 验证集大小: 1410\n", "train_data最大日期: 2023-01-30, 训练天数5\n", "test_data最大日期: 2023-02-06\n", - "划分后的训练集大小: 2266, 验证集大小: 453\n", + "划分后的训练集大小: 7039, 验证集大小: 1405\n", "train_data最大日期: 2023-01-31, 训练天数5\n", "test_data最大日期: 2023-02-07\n", - "划分后的训练集大小: 2263, 验证集大小: 451\n", + "划分后的训练集大小: 7030, 验证集大小: 1403\n", "train_data最大日期: 2023-02-01, 训练天数5\n", "test_data最大日期: 2023-02-08\n", - "划分后的训练集大小: 2265, 验证集大小: 455\n", + "划分后的训练集大小: 7025, 验证集大小: 1401\n", "train_data最大日期: 2023-02-02, 训练天数5\n", "test_data最大日期: 2023-02-09\n", - "划分后的训练集大小: 2269, 验证集大小: 454\n", + "划分后的训练集大小: 7028, 验证集大小: 1409\n", "train_data最大日期: 2023-02-03, 训练天数5\n", "test_data最大日期: 2023-02-10\n", - "划分后的训练集大小: 2275, 验证集大小: 462\n", + "划分后的训练集大小: 7036, 验证集大小: 1418\n", "train_data最大日期: 2023-02-06, 训练天数5\n", "test_data最大日期: 2023-02-13\n", - "划分后的训练集大小: 2284, 验证集大小: 462\n", + "划分后的训练集大小: 7053, 验证集大小: 1422\n", "train_data最大日期: 2023-02-07, 训练天数5\n", "test_data最大日期: 2023-02-14\n", - "划分后的训练集大小: 2294, 验证集大小: 461\n", + "划分后的训练集大小: 7072, 验证集大小: 1422\n", "train_data最大日期: 2023-02-08, 训练天数5\n", "test_data最大日期: 2023-02-15\n", - "划分后的训练集大小: 2300, 验证集大小: 461\n", + "划分后的训练集大小: 7091, 验证集大小: 1420\n", "train_data最大日期: 2023-02-09, 训练天数5\n", "test_data最大日期: 2023-02-16\n", - "划分后的训练集大小: 2308, 验证集大小: 462\n", + "划分后的训练集大小: 7104, 验证集大小: 1422\n", "train_data最大日期: 2023-02-10, 训练天数5\n", "test_data最大日期: 2023-02-17\n", - "划分后的训练集大小: 2307, 验证集大小: 461\n", + "划分后的训练集大小: 7108, 验证集大小: 1422\n", "train_data最大日期: 2023-02-13, 训练天数5\n", "test_data最大日期: 2023-02-20\n", - "划分后的训练集大小: 2309, 验证集大小: 464\n", + "划分后的训练集大小: 7111, 验证集大小: 1425\n", "train_data最大日期: 2023-02-14, 训练天数5\n", "test_data最大日期: 2023-02-21\n", - "划分后的训练集大小: 2312, 验证集大小: 464\n", + "划分后的训练集大小: 7109, 验证集大小: 1420\n", "train_data最大日期: 2023-02-15, 训练天数5\n", "test_data最大日期: 2023-02-22\n", - "划分后的训练集大小: 2314, 验证集大小: 463\n", + "划分后的训练集大小: 7112, 验证集大小: 1423\n", "train_data最大日期: 2023-02-16, 训练天数5\n", "test_data最大日期: 2023-02-23\n", - "划分后的训练集大小: 2311, 验证集大小: 459\n", + "划分后的训练集大小: 7109, 验证集大小: 1419\n", "train_data最大日期: 2023-02-17, 训练天数5\n", "test_data最大日期: 2023-02-24\n", - "划分后的训练集大小: 2307, 验证集大小: 457\n", + "划分后的训练集大小: 7105, 验证集大小: 1418\n", "train_data最大日期: 2023-02-20, 训练天数5\n", "test_data最大日期: 2023-02-27\n", - "划分后的训练集大小: 2301, 验证集大小: 458\n", + "划分后的训练集大小: 7100, 验证集大小: 1420\n", "train_data最大日期: 2023-02-21, 训练天数5\n", "test_data最大日期: 2023-02-28\n", - "划分后的训练集大小: 2298, 验证集大小: 461\n", + "划分后的训练集大小: 7101, 验证集大小: 1421\n", "train_data最大日期: 2023-02-22, 训练天数5\n", "test_data最大日期: 2023-03-01\n", - "划分后的训练集大小: 2294, 验证集大小: 459\n", + "划分后的训练集大小: 7096, 验证集大小: 1418\n", "train_data最大日期: 2023-02-23, 训练天数5\n", "test_data最大日期: 2023-03-02\n", - "划分后的训练集大小: 2292, 验证集大小: 457\n", + "划分后的训练集大小: 7096, 验证集大小: 1419\n", "train_data最大日期: 2023-02-24, 训练天数5\n", "test_data最大日期: 2023-03-03\n", - "划分后的训练集大小: 2292, 验证集大小: 457\n", + "划分后的训练集大小: 7098, 验证集大小: 1420\n", "train_data最大日期: 2023-02-27, 训练天数5\n", "test_data最大日期: 2023-03-06\n", - "划分后的训练集大小: 2294, 验证集大小: 460\n", + "划分后的训练集大小: 7097, 验证集大小: 1419\n", "train_data最大日期: 2023-02-28, 训练天数5\n", "test_data最大日期: 2023-03-07\n", - "划分后的训练集大小: 2293, 验证集大小: 460\n", + "划分后的训练集大小: 7093, 验证集大小: 1417\n", "train_data最大日期: 2023-03-01, 训练天数5\n", "test_data最大日期: 2023-03-08\n", - "划分后的训练集大小: 2292, 验证集大小: 458\n", + "划分后的训练集大小: 7094, 验证集大小: 1419\n", "train_data最大日期: 2023-03-02, 训练天数5\n", "test_data最大日期: 2023-03-09\n", - "划分后的训练集大小: 2291, 验证集大小: 456\n", + "划分后的训练集大小: 7089, 验证集大小: 1414\n", "train_data最大日期: 2023-03-03, 训练天数5\n", "test_data最大日期: 2023-03-10\n", - "划分后的训练集大小: 2292, 验证集大小: 458\n", + "划分后的训练集大小: 7083, 验证集大小: 1414\n", "train_data最大日期: 2023-03-06, 训练天数5\n", "test_data最大日期: 2023-03-13\n", - "划分后的训练集大小: 2290, 验证集大小: 458\n", + "划分后的训练集大小: 7080, 验证集大小: 1416\n", "train_data最大日期: 2023-03-07, 训练天数5\n", "test_data最大日期: 2023-03-14\n", - "划分后的训练集大小: 2287, 验证集大小: 457\n", + "划分后的训练集大小: 7074, 验证集大小: 1411\n", "train_data最大日期: 2023-03-08, 训练天数5\n", "test_data最大日期: 2023-03-15\n", - "划分后的训练集大小: 2284, 验证集大小: 455\n", + "划分后的训练集大小: 7065, 验证集大小: 1410\n", "train_data最大日期: 2023-03-09, 训练天数5\n", "test_data最大日期: 2023-03-16\n", - "划分后的训练集大小: 2287, 验证集大小: 459\n", + "划分后的训练集大小: 7063, 验证集大小: 1412\n", "train_data最大日期: 2023-03-10, 训练天数5\n", "test_data最大日期: 2023-03-17\n", - "划分后的训练集大小: 2286, 验证集大小: 457\n", + "划分后的训练集大小: 7060, 验证集大小: 1411\n", "train_data最大日期: 2023-03-13, 训练天数5\n", "test_data最大日期: 2023-03-20\n", - "划分后的训练集大小: 2286, 验证集大小: 458\n", + "划分后的训练集大小: 7057, 验证集大小: 1413\n", "train_data最大日期: 2023-03-14, 训练天数5\n", "test_data最大日期: 2023-03-21\n", - "划分后的训练集大小: 2288, 验证集大小: 459\n", + "划分后的训练集大小: 7060, 验证集大小: 1414\n", "train_data最大日期: 2023-03-15, 训练天数5\n", "test_data最大日期: 2023-03-22\n", - "划分后的训练集大小: 2289, 验证集大小: 456\n", + "划分后的训练集大小: 7061, 验证集大小: 1411\n", "train_data最大日期: 2023-03-16, 训练天数5\n", "test_data最大日期: 2023-03-23\n", - "划分后的训练集大小: 2286, 验证集大小: 456\n", + "划分后的训练集大小: 7055, 验证集大小: 1406\n", "train_data最大日期: 2023-03-17, 训练天数5\n", "test_data最大日期: 2023-03-24\n", - "划分后的训练集大小: 2287, 验证集大小: 458\n", + "划分后的训练集大小: 7055, 验证集大小: 1411\n", "train_data最大日期: 2023-03-20, 训练天数5\n", "test_data最大日期: 2023-03-27\n", - "划分后的训练集大小: 2288, 验证集大小: 459\n", + "划分后的训练集大小: 7056, 验证集大小: 1414\n", "train_data最大日期: 2023-03-21, 训练天数5\n", "test_data最大日期: 2023-03-28\n", - "划分后的训练集大小: 2285, 验证集大小: 456\n", + "划分后的训练集大小: 7052, 验证集大小: 1410\n", "train_data最大日期: 2023-03-22, 训练天数5\n", "test_data最大日期: 2023-03-29\n", - "划分后的训练集大小: 2289, 验证集大小: 460\n", + "划分后的训练集大小: 7059, 验证集大小: 1418\n", "train_data最大日期: 2023-03-23, 训练天数5\n", "test_data最大日期: 2023-03-30\n", - "划分后的训练集大小: 2293, 验证集大小: 460\n", + "划分后的训练集大小: 7072, 验证集大小: 1419\n", "train_data最大日期: 2023-03-24, 训练天数5\n", "test_data最大日期: 2023-03-31\n", - "划分后的训练集大小: 2295, 验证集大小: 460\n", + "划分后的训练集大小: 7078, 验证集大小: 1417\n", "train_data最大日期: 2023-03-27, 训练天数5\n", "test_data最大日期: 2023-04-03\n", - "划分后的训练集大小: 2294, 验证集大小: 458\n", + "划分后的训练集大小: 7081, 验证集大小: 1417\n", "train_data最大日期: 2023-03-28, 训练天数5\n", "test_data最大日期: 2023-04-04\n", - "划分后的训练集大小: 2297, 验证集大小: 459\n", + "划分后的训练集大小: 7088, 验证集大小: 1417\n", "train_data最大日期: 2023-03-29, 训练天数5\n", "test_data最大日期: 2023-04-06\n", - "划分后的训练集大小: 2294, 验证集大小: 457\n", + "划分后的训练集大小: 7085, 验证集大小: 1415\n", "train_data最大日期: 2023-03-30, 训练天数5\n", "test_data最大日期: 2023-04-07\n", - "划分后的训练集大小: 2294, 验证集大小: 460\n", + "划分后的训练集大小: 7083, 验证集大小: 1417\n", "train_data最大日期: 2023-03-31, 训练天数5\n", "test_data最大日期: 2023-04-10\n", - "划分后的训练集大小: 2294, 验证集大小: 460\n", + "划分后的训练集大小: 7082, 验证集大小: 1416\n", "train_data最大日期: 2023-04-03, 训练天数5\n", "test_data最大日期: 2023-04-11\n", - "划分后的训练集大小: 2296, 验证集大小: 460\n", + "划分后的训练集大小: 7081, 验证集大小: 1416\n", "train_data最大日期: 2023-04-04, 训练天数5\n", "test_data最大日期: 2023-04-12\n", - "划分后的训练集大小: 2296, 验证集大小: 459\n", + "划分后的训练集大小: 7076, 验证集大小: 1412\n", "train_data最大日期: 2023-04-06, 训练天数5\n", "test_data最大日期: 2023-04-13\n", - "划分后的训练集大小: 2301, 验证集大小: 462\n", + "划分后的训练集大小: 7075, 验证集大小: 1414\n", "train_data最大日期: 2023-04-07, 训练天数5\n", "test_data最大日期: 2023-04-14\n", - "划分后的训练集大小: 2303, 验证集大小: 462\n", + "划分后的训练集大小: 7076, 验证集大小: 1418\n", "train_data最大日期: 2023-04-10, 训练天数5\n", "test_data最大日期: 2023-04-17\n", - "划分后的训练集大小: 2302, 验证集大小: 459\n", + "划分后的训练集大小: 7067, 验证集大小: 1407\n", "train_data最大日期: 2023-04-11, 训练天数5\n", "test_data最大日期: 2023-04-18\n", - "划分后的训练集大小: 2297, 验证集大小: 455\n", + "划分后的训练集大小: 7062, 验证集大小: 1411\n", "train_data最大日期: 2023-04-12, 训练天数5\n", "test_data最大日期: 2023-04-19\n", - "划分后的训练集大小: 2294, 验证集大小: 456\n", + "划分后的训练集大小: 7061, 验证集大小: 1411\n", "train_data最大日期: 2023-04-13, 训练天数5\n", "test_data最大日期: 2023-04-20\n", - "划分后的训练集大小: 2287, 验证集大小: 455\n", + "划分后的训练集大小: 7052, 验证集大小: 1405\n", "train_data最大日期: 2023-04-14, 训练天数5\n", "test_data最大日期: 2023-04-21\n", - "划分后的训练集大小: 2279, 验证集大小: 454\n", + "划分后的训练集大小: 7038, 验证集大小: 1404\n", "train_data最大日期: 2023-04-17, 训练天数5\n", "test_data最大日期: 2023-04-24\n", - "划分后的训练集大小: 2275, 验证集大小: 455\n", + "划分后的训练集大小: 7036, 验证集大小: 1405\n", "train_data最大日期: 2023-04-18, 训练天数5\n", "test_data最大日期: 2023-04-25\n", - "划分后的训练集大小: 2273, 验证集大小: 453\n", + "划分后的训练集大小: 7027, 验证集大小: 1402\n", "train_data最大日期: 2023-04-19, 训练天数5\n", "test_data最大日期: 2023-04-26\n", - "划分后的训练集大小: 2270, 验证集大小: 453\n", + "划分后的训练集大小: 7016, 验证集大小: 1400\n", "train_data最大日期: 2023-04-20, 训练天数5\n", "test_data最大日期: 2023-04-27\n", - "划分后的训练集大小: 2263, 验证集大小: 448\n", + "划分后的训练集大小: 7005, 验证集大小: 1394\n", "train_data最大日期: 2023-04-21, 训练天数5\n", "test_data最大日期: 2023-04-28\n", - "划分后的训练集大小: 2259, 验证集大小: 450\n", + "划分后的训练集大小: 6996, 验证集大小: 1395\n", "train_data最大日期: 2023-04-24, 训练天数5\n", "test_data最大日期: 2023-05-04\n", - "划分后的训练集大小: 2252, 验证集大小: 448\n", + "划分后的训练集大小: 6980, 验证集大小: 1389\n", "train_data最大日期: 2023-04-25, 训练天数5\n", "test_data最大日期: 2023-05-05\n", - "划分后的训练集大小: 2247, 验证集大小: 448\n", + "划分后的训练集大小: 6968, 验证集大小: 1390\n", "train_data最大日期: 2023-04-26, 训练天数5\n", "test_data最大日期: 2023-05-08\n", - "划分后的训练集大小: 2241, 验证集大小: 447\n", + "划分后的训练集大小: 6957, 验证集大小: 1389\n", "train_data最大日期: 2023-04-27, 训练天数5\n", "test_data最大日期: 2023-05-09\n", - "划分后的训练集大小: 2244, 验证集大小: 451\n", + "划分后的训练集大小: 6963, 验证集大小: 1400\n", "train_data最大日期: 2023-04-28, 训练天数5\n", "test_data最大日期: 2023-05-10\n", - "划分后的训练集大小: 2248, 验证集大小: 454\n", + "划分后的训练集大小: 6972, 验证集大小: 1404\n", "train_data最大日期: 2023-05-04, 训练天数5\n", "test_data最大日期: 2023-05-11\n", - "划分后的训练集大小: 2264, 验证集大小: 464\n", + "划分后的训练集大小: 7010, 验证集大小: 1427\n", "train_data最大日期: 2023-05-05, 训练天数5\n", "test_data最大日期: 2023-05-12\n", - "划分后的训练集大小: 2280, 验证集大小: 464\n", + "划分后的训练集大小: 7051, 验证集大小: 1431\n", "train_data最大日期: 2023-05-08, 训练天数5\n", "test_data最大日期: 2023-05-15\n", - "划分后的训练集大小: 2299, 验证集大小: 466\n", + "划分后的训练集大小: 7095, 验证集大小: 1433\n", "train_data最大日期: 2023-05-09, 训练天数5\n", "test_data最大日期: 2023-05-16\n", - "划分后的训练集大小: 2314, 验证集大小: 466\n", + "划分后的训练集大小: 7129, 验证集大小: 1434\n", "train_data最大日期: 2023-05-10, 训练天数5\n", "test_data最大日期: 2023-05-17\n", - "划分后的训练集大小: 2326, 验证集大小: 466\n", + "划分后的训练集大小: 7161, 验证集大小: 1436\n", "train_data最大日期: 2023-05-11, 训练天数5\n", "test_data最大日期: 2023-05-18\n", - "划分后的训练集大小: 2328, 验证集大小: 466\n", + "划分后的训练集大小: 7167, 验证集大小: 1433\n", "train_data最大日期: 2023-05-12, 训练天数5\n", "test_data最大日期: 2023-05-19\n", - "划分后的训练集大小: 2330, 验证集大小: 466\n", + "划分后的训练集大小: 7166, 验证集大小: 1430\n", "train_data最大日期: 2023-05-15, 训练天数5\n", "test_data最大日期: 2023-05-22\n", - "划分后的训练集大小: 2331, 验证集大小: 467\n", + "划分后的训练集大小: 7163, 验证集大小: 1430\n", "train_data最大日期: 2023-05-16, 训练天数5\n", "test_data最大日期: 2023-05-23\n", - "划分后的训练集大小: 2332, 验证集大小: 467\n", + "划分后的训练集大小: 7158, 验证集大小: 1429\n", "train_data最大日期: 2023-05-17, 训练天数5\n", "test_data最大日期: 2023-05-24\n", - "划分后的训练集大小: 2332, 验证集大小: 466\n", + "划分后的训练集大小: 7153, 验证集大小: 1431\n", "train_data最大日期: 2023-05-18, 训练天数5\n", "test_data最大日期: 2023-05-25\n", - "划分后的训练集大小: 2331, 验证集大小: 465\n", + "划分后的训练集大小: 7149, 验证集大小: 1429\n", "train_data最大日期: 2023-05-19, 训练天数5\n", "test_data最大日期: 2023-05-26\n", - "划分后的训练集大小: 2330, 验证集大小: 465\n", + "划分后的训练集大小: 7150, 验证集大小: 1431\n", "train_data最大日期: 2023-05-22, 训练天数5\n", "test_data最大日期: 2023-05-29\n", - "划分后的训练集大小: 2329, 验证集大小: 466\n", + "划分后的训练集大小: 7150, 验证集大小: 1430\n", "train_data最大日期: 2023-05-23, 训练天数5\n", "test_data最大日期: 2023-05-30\n", - "划分后的训练集大小: 2327, 验证集大小: 465\n", + "划分后的训练集大小: 7146, 验证集大小: 1425\n", "train_data最大日期: 2023-05-24, 训练天数5\n", "test_data最大日期: 2023-05-31\n", - "划分后的训练集大小: 2326, 验证集大小: 465\n", + "划分后的训练集大小: 7142, 验证集大小: 1427\n", "train_data最大日期: 2023-05-25, 训练天数5\n", "test_data最大日期: 2023-06-01\n", - "划分后的训练集大小: 2323, 验证集大小: 462\n", + "划分后的训练集大小: 7136, 验证集大小: 1423\n", "train_data最大日期: 2023-05-26, 训练天数5\n", "test_data最大日期: 2023-06-02\n", - "划分后的训练集大小: 2319, 验证集大小: 461\n", + "划分后的训练集大小: 7133, 验证集大小: 1428\n", "train_data最大日期: 2023-05-29, 训练天数5\n", "test_data最大日期: 2023-06-05\n", - "划分后的训练集大小: 2314, 验证集大小: 461\n", + "划分后的训练集大小: 7128, 验证集大小: 1425\n", "train_data最大日期: 2023-05-30, 训练天数5\n", "test_data最大日期: 2023-06-06\n", - "划分后的训练集大小: 2310, 验证集大小: 461\n", + "划分后的训练集大小: 7127, 验证集大小: 1424\n", "train_data最大日期: 2023-05-31, 训练天数5\n", "test_data最大日期: 2023-06-07\n", - "划分后的训练集大小: 2302, 验证集大小: 457\n", + "划分后的训练集大小: 7118, 验证集大小: 1418\n", "train_data最大日期: 2023-06-01, 训练天数5\n", "test_data最大日期: 2023-06-08\n", - "划分后的训练集大小: 2296, 验证集大小: 456\n", + "划分后的训练集大小: 7112, 验证集大小: 1417\n", "train_data最大日期: 2023-06-02, 训练天数5\n", "test_data最大日期: 2023-06-09\n", - "划分后的训练集大小: 2293, 验证集大小: 458\n", + "划分后的训练集大小: 7105, 验证集大小: 1421\n", "train_data最大日期: 2023-06-05, 训练天数5\n", "test_data最大日期: 2023-06-12\n", - "划分后的训练集大小: 2287, 验证集大小: 455\n", + "划分后的训练集大小: 7099, 验证集大小: 1419\n", "train_data最大日期: 2023-06-06, 训练天数5\n", "test_data最大日期: 2023-06-13\n", - "划分后的训练集大小: 2285, 验证集大小: 459\n", + "划分后的训练集大小: 7099, 验证集大小: 1424\n", "train_data最大日期: 2023-06-07, 训练天数5\n", "test_data最大日期: 2023-06-14\n", - "划分后的训练集大小: 2284, 验证集大小: 456\n", + "划分后的训练集大小: 7102, 验证集大小: 1421\n", "train_data最大日期: 2023-06-08, 训练天数5\n", "test_data最大日期: 2023-06-15\n", - "划分后的训练集大小: 2287, 验证集大小: 459\n", + "划分后的训练集大小: 7113, 验证集大小: 1428\n", "train_data最大日期: 2023-06-09, 训练天数5\n", "test_data最大日期: 2023-06-16\n", - "划分后的训练集大小: 2290, 验证集大小: 461\n", + "划分后的训练集大小: 7118, 验证集大小: 1426\n", "train_data最大日期: 2023-06-12, 训练天数5\n", "test_data最大日期: 2023-06-19\n", - "划分后的训练集大小: 2294, 验证集大小: 459\n", + "划分后的训练集大小: 7125, 验证集大小: 1426\n", "train_data最大日期: 2023-06-13, 训练天数5\n", "test_data最大日期: 2023-06-20\n", - "划分后的训练集大小: 2289, 验证集大小: 454\n", + "划分后的训练集大小: 7122, 验证集大小: 1421\n", "train_data最大日期: 2023-06-14, 训练天数5\n", "test_data最大日期: 2023-06-21\n", - "划分后的训练集大小: 2286, 验证集大小: 453\n", + "划分后的训练集大小: 7117, 验证集大小: 1416\n", "train_data最大日期: 2023-06-15, 训练天数5\n", "test_data最大日期: 2023-06-26\n", - "划分后的训练集大小: 2279, 验证集大小: 452\n", + "划分后的训练集大小: 7109, 验证集大小: 1420\n", "train_data最大日期: 2023-06-16, 训练天数5\n", "test_data最大日期: 2023-06-27\n", - "划分后的训练集大小: 2269, 验证集大小: 451\n", + "划分后的训练集大小: 7101, 验证集大小: 1418\n", "train_data最大日期: 2023-06-19, 训练天数5\n", "test_data最大日期: 2023-06-28\n", - "划分后的训练集大小: 2262, 验证集大小: 452\n", + "划分后的训练集大小: 7094, 验证集大小: 1419\n", "train_data最大日期: 2023-06-20, 训练天数5\n", "test_data最大日期: 2023-06-29\n", - "划分后的训练集大小: 2260, 验证集大小: 452\n", + "划分后的训练集大小: 7092, 验证集大小: 1419\n", "train_data最大日期: 2023-06-21, 训练天数5\n", "test_data最大日期: 2023-06-30\n", - "划分后的训练集大小: 2262, 验证集大小: 455\n", + "划分后的训练集大小: 7100, 验证集大小: 1424\n", "train_data最大日期: 2023-06-26, 训练天数5\n", "test_data最大日期: 2023-07-03\n", - "划分后的训练集大小: 2266, 验证集大小: 456\n", + "划分后的训练集大小: 7101, 验证集大小: 1421\n", "train_data最大日期: 2023-06-27, 训练天数5\n", "test_data最大日期: 2023-07-04\n", - "划分后的训练集大小: 2272, 验证集大小: 457\n", + "划分后的训练集大小: 7106, 验证集大小: 1423\n", "train_data最大日期: 2023-06-28, 训练天数5\n", "test_data最大日期: 2023-07-05\n", - "划分后的训练集大小: 2276, 验证集大小: 456\n", + "划分后的训练集大小: 7115, 验证集大小: 1428\n", "train_data最大日期: 2023-06-29, 训练天数5\n", "test_data最大日期: 2023-07-06\n", - "划分后的训练集大小: 2279, 验证集大小: 455\n", + "划分后的训练集大小: 7124, 验证集大小: 1428\n", "train_data最大日期: 2023-06-30, 训练天数5\n", "test_data最大日期: 2023-07-07\n", - "划分后的训练集大小: 2277, 验证集大小: 453\n", + "划分后的训练集大小: 7127, 验证集大小: 1427\n", "train_data最大日期: 2023-07-03, 训练天数5\n", "test_data最大日期: 2023-07-10\n", - "划分后的训练集大小: 2275, 验证集大小: 454\n", + "划分后的训练集大小: 7133, 验证集大小: 1427\n", "train_data最大日期: 2023-07-04, 训练天数5\n", "test_data最大日期: 2023-07-11\n", - "划分后的训练集大小: 2271, 验证集大小: 453\n", + "划分后的训练集大小: 7134, 验证集大小: 1424\n", "train_data最大日期: 2023-07-05, 训练天数5\n", "test_data最大日期: 2023-07-12\n", - "划分后的训练集大小: 2270, 验证集大小: 455\n", + "划分后的训练集大小: 7130, 验证集大小: 1424\n", "train_data最大日期: 2023-07-06, 训练天数5\n", "test_data最大日期: 2023-07-13\n", - "划分后的训练集大小: 2274, 验证集大小: 459\n", + "划分后的训练集大小: 7132, 验证集大小: 1430\n", "train_data最大日期: 2023-07-07, 训练天数5\n", "test_data最大日期: 2023-07-14\n", - "划分后的训练集大小: 2279, 验证集大小: 458\n", + "划分后的训练集大小: 7136, 验证集大小: 1431\n", "train_data最大日期: 2023-07-10, 训练天数5\n", "test_data最大日期: 2023-07-17\n", - "划分后的训练集大小: 2284, 验证集大小: 459\n", + "划分后的训练集大小: 7139, 验证集大小: 1430\n", "train_data最大日期: 2023-07-11, 训练天数5\n", "test_data最大日期: 2023-07-18\n", - "划分后的训练集大小: 2291, 验证集大小: 460\n", + "划分后的训练集大小: 7146, 验证集大小: 1431\n", "train_data最大日期: 2023-07-12, 训练天数5\n", "test_data最大日期: 2023-07-19\n", - "划分后的训练集大小: 2299, 验证集大小: 463\n", + "划分后的训练集大小: 7157, 验证集大小: 1435\n", "train_data最大日期: 2023-07-13, 训练天数5\n", "test_data最大日期: 2023-07-20\n", - "划分后的训练集大小: 2304, 验证集大小: 464\n", + "划分后的训练集大小: 7161, 验证集大小: 1434\n", "train_data最大日期: 2023-07-14, 训练天数5\n", "test_data最大日期: 2023-07-21\n", - "划分后的训练集大小: 2311, 验证集大小: 465\n", + "划分后的训练集大小: 7164, 验证集大小: 1434\n", "train_data最大日期: 2023-07-17, 训练天数5\n", "test_data最大日期: 2023-07-24\n", - "划分后的训练集大小: 2318, 验证集大小: 466\n", + "划分后的训练集大小: 7167, 验证集大小: 1433\n", "train_data最大日期: 2023-07-18, 训练天数5\n", "test_data最大日期: 2023-07-25\n", - "划分后的训练集大小: 2320, 验证集大小: 462\n", + "划分后的训练集大小: 7166, 验证集大小: 1430\n", "train_data最大日期: 2023-07-19, 训练天数5\n", "test_data最大日期: 2023-07-26\n", - "划分后的训练集大小: 2319, 验证集大小: 462\n", + "划分后的训练集大小: 7161, 验证集大小: 1430\n", "train_data最大日期: 2023-07-20, 训练天数5\n", "test_data最大日期: 2023-07-27\n", - "划分后的训练集大小: 2321, 验证集大小: 466\n", + "划分后的训练集大小: 7163, 验证集大小: 1436\n", "train_data最大日期: 2023-07-21, 训练天数5\n", "test_data最大日期: 2023-07-28\n", - "划分后的训练集大小: 2324, 验证集大小: 468\n", + "划分后的训练集大小: 7168, 验证集大小: 1439\n", "train_data最大日期: 2023-07-24, 训练天数5\n", "test_data最大日期: 2023-07-31\n", - "划分后的训练集大小: 2324, 验证集大小: 466\n", + "划分后的训练集大小: 7172, 验证集大小: 1437\n", "train_data最大日期: 2023-07-25, 训练天数5\n", "test_data最大日期: 2023-08-01\n", - "划分后的训练集大小: 2328, 验证集大小: 466\n", + "划分后的训练集大小: 7180, 验证集大小: 1438\n", "train_data最大日期: 2023-07-26, 训练天数5\n", "test_data最大日期: 2023-08-02\n", - "划分后的训练集大小: 2333, 验证集大小: 467\n", + "划分后的训练集大小: 7188, 验证集大小: 1438\n", "train_data最大日期: 2023-07-27, 训练天数5\n", "test_data最大日期: 2023-08-03\n", - "划分后的训练集大小: 2336, 验证集大小: 469\n", + "划分后的训练集大小: 7189, 验证集大小: 1437\n", "train_data最大日期: 2023-07-28, 训练天数5\n", "test_data最大日期: 2023-08-04\n", - "划分后的训练集大小: 2336, 验证集大小: 468\n", + "划分后的训练集大小: 7188, 验证集大小: 1438\n", "train_data最大日期: 2023-07-31, 训练天数5\n", "test_data最大日期: 2023-08-07\n", - "划分后的训练集大小: 2342, 验证集大小: 472\n", + "划分后的训练集大小: 7192, 验证集大小: 1441\n", "train_data最大日期: 2023-08-01, 训练天数5\n", "test_data最大日期: 2023-08-08\n", - "划分后的训练集大小: 2345, 验证集大小: 469\n", + "划分后的训练集大小: 7189, 验证集大小: 1435\n", "train_data最大日期: 2023-08-02, 训练天数5\n", "test_data最大日期: 2023-08-09\n", - "划分后的训练集大小: 2350, 验证集大小: 472\n", + "划分后的训练集大小: 7192, 验证集大小: 1441\n", "train_data最大日期: 2023-08-03, 训练天数5\n", "test_data最大日期: 2023-08-10\n", - "划分后的训练集大小: 2354, 验证集大小: 473\n", + "划分后的训练集大小: 7196, 验证集大小: 1441\n", "train_data最大日期: 2023-08-04, 训练天数5\n", "test_data最大日期: 2023-08-11\n", - "划分后的训练集大小: 2357, 验证集大小: 471\n", + "划分后的训练集大小: 7204, 验证集大小: 1446\n", "train_data最大日期: 2023-08-07, 训练天数5\n", "test_data最大日期: 2023-08-14\n", - "划分后的训练集大小: 2356, 验证集大小: 471\n", + "划分后的训练集大小: 7206, 验证集大小: 1443\n", "train_data最大日期: 2023-08-08, 训练天数5\n", "test_data最大日期: 2023-08-15\n", - "划分后的训练集大小: 2357, 验证集大小: 470\n", + "划分后的训练集大小: 7218, 验证集大小: 1447\n", "train_data最大日期: 2023-08-09, 训练天数5\n", "test_data最大日期: 2023-08-16\n", - "划分后的训练集大小: 2359, 验证集大小: 474\n", + "划分后的训练集大小: 7227, 验证集大小: 1450\n", "train_data最大日期: 2023-08-10, 训练天数5\n", "test_data最大日期: 2023-08-17\n", - "划分后的训练集大小: 2361, 验证集大小: 475\n", + "划分后的训练集大小: 7237, 验证集大小: 1451\n", "train_data最大日期: 2023-08-11, 训练天数5\n", "test_data最大日期: 2023-08-18\n", - "划分后的训练集大小: 2365, 验证集大小: 475\n", + "划分后的训练集大小: 7240, 验证集大小: 1449\n", "train_data最大日期: 2023-08-14, 训练天数5\n", "test_data最大日期: 2023-08-21\n", - "划分后的训练集大小: 2370, 验证集大小: 476\n", + "划分后的训练集大小: 7248, 验证集大小: 1451\n", "train_data最大日期: 2023-08-15, 训练天数5\n", "test_data最大日期: 2023-08-22\n", - "划分后的训练集大小: 2374, 验证集大小: 474\n", + "划分后的训练集大小: 7247, 验证集大小: 1446\n", "train_data最大日期: 2023-08-16, 训练天数5\n", "test_data最大日期: 2023-08-23\n", - "划分后的训练集大小: 2374, 验证集大小: 474\n", + "划分后的训练集大小: 7244, 验证集大小: 1447\n", "train_data最大日期: 2023-08-17, 训练天数5\n", "test_data最大日期: 2023-08-24\n", - "划分后的训练集大小: 2372, 验证集大小: 473\n", + "划分后的训练集大小: 7239, 验证集大小: 1446\n", "train_data最大日期: 2023-08-18, 训练天数5\n", "test_data最大日期: 2023-08-25\n", - "划分后的训练集大小: 2369, 验证集大小: 472\n", + "划分后的训练集大小: 7231, 验证集大小: 1441\n", "train_data最大日期: 2023-08-21, 训练天数5\n", "test_data最大日期: 2023-08-28\n", - "划分后的训练集大小: 2367, 验证集大小: 474\n", + "划分后的训练集大小: 7226, 验证集大小: 1446\n", "train_data最大日期: 2023-08-22, 训练天数5\n", "test_data最大日期: 2023-08-29\n", - "划分后的训练集大小: 2370, 验证集大小: 477\n", + "划分后的训练集大小: 7230, 验证集大小: 1450\n", "train_data最大日期: 2023-08-23, 训练天数5\n", "test_data最大日期: 2023-08-30\n", - "划分后的训练集大小: 2374, 验证集大小: 478\n", + "划分后的训练集大小: 7234, 验证集大小: 1451\n", "train_data最大日期: 2023-08-24, 训练天数5\n", "test_data最大日期: 2023-08-31\n", - "划分后的训练集大小: 2378, 验证集大小: 477\n", + "划分后的训练集大小: 7239, 验证集大小: 1451\n", "train_data最大日期: 2023-08-25, 训练天数5\n", "test_data最大日期: 2023-09-01\n", - "划分后的训练集大小: 2384, 验证集大小: 478\n", + "划分后的训练集大小: 7248, 验证集大小: 1450\n", "train_data最大日期: 2023-08-28, 训练天数5\n", "test_data最大日期: 2023-09-04\n", - "划分后的训练集大小: 2386, 验证集大小: 476\n", + "划分后的训练集大小: 7248, 验证集大小: 1446\n", "train_data最大日期: 2023-08-29, 训练天数5\n", "test_data最大日期: 2023-09-05\n", - "划分后的训练集大小: 2386, 验证集大小: 477\n", + "划分后的训练集大小: 7240, 验证集大小: 1442\n", "train_data最大日期: 2023-08-30, 训练天数5\n", "test_data最大日期: 2023-09-06\n", - "划分后的训练集大小: 2378, 验证集大小: 470\n", + "划分后的训练集大小: 7208, 验证集大小: 1419\n", "train_data最大日期: 2023-08-31, 训练天数5\n", "test_data最大日期: 2023-09-07\n", - "划分后的训练集大小: 2379, 验证集大小: 478\n", + "划分后的训练集大小: 7208, 验证集大小: 1451\n", "train_data最大日期: 2023-09-01, 训练天数5\n", "test_data最大日期: 2023-09-08\n", - "划分后的训练集大小: 2376, 验证集大小: 475\n", + "划分后的训练集大小: 7203, 验证集大小: 1445\n", "train_data最大日期: 2023-09-04, 训练天数5\n", "test_data最大日期: 2023-09-11\n", - "划分后的训练集大小: 2384, 验证集大小: 484\n", + "划分后的训练集大小: 7212, 验证集大小: 1455\n", "train_data最大日期: 2023-09-05, 训练天数5\n", "test_data最大日期: 2023-09-12\n", - "划分后的训练集大小: 2389, 验证集大小: 482\n", + "划分后的训练集大小: 7226, 验证集大小: 1456\n", "train_data最大日期: 2023-09-06, 训练天数5\n", "test_data最大日期: 2023-09-13\n", - "划分后的训练集大小: 2401, 验证集大小: 482\n", + "划分后的训练集大小: 7262, 验证集大小: 1455\n", "train_data最大日期: 2023-09-07, 训练天数5\n", "test_data最大日期: 2023-09-14\n", - "划分后的训练集大小: 2406, 验证集大小: 483\n", + "划分后的训练集大小: 7267, 验证集大小: 1456\n", "train_data最大日期: 2023-09-08, 训练天数5\n", "test_data最大日期: 2023-09-15\n", - "划分后的训练集大小: 2413, 验证集大小: 482\n", + "划分后的训练集大小: 7273, 验证集大小: 1451\n", "train_data最大日期: 2023-09-11, 训练天数5\n", "test_data最大日期: 2023-09-18\n", - "划分后的训练集大小: 2411, 验证集大小: 482\n", + "划分后的训练集大小: 7271, 验证集大小: 1453\n", "train_data最大日期: 2023-09-12, 训练天数5\n", "test_data最大日期: 2023-09-19\n", - "划分后的训练集大小: 2412, 验证集大小: 483\n", + "划分后的训练集大小: 7269, 验证集大小: 1454\n", "train_data最大日期: 2023-09-13, 训练天数5\n", "test_data最大日期: 2023-09-20\n", - "划分后的训练集大小: 2412, 验证集大小: 482\n", + "划分后的训练集大小: 7269, 验证集大小: 1455\n", "train_data最大日期: 2023-09-14, 训练天数5\n", "test_data最大日期: 2023-09-21\n", - "划分后的训练集大小: 2413, 验证集大小: 484\n", + "划分后的训练集大小: 7275, 验证集大小: 1462\n", "train_data最大日期: 2023-09-15, 训练天数5\n", "test_data最大日期: 2023-09-22\n", - "划分后的训练集大小: 2413, 验证集大小: 482\n", + "划分后的训练集大小: 7278, 验证集大小: 1454\n", "train_data最大日期: 2023-09-18, 训练天数5\n", "test_data最大日期: 2023-09-25\n", - "划分后的训练集大小: 2414, 验证集大小: 483\n", + "划分后的训练集大小: 7281, 验证集大小: 1456\n", "train_data最大日期: 2023-09-19, 训练天数5\n", "test_data最大日期: 2023-09-26\n", - "划分后的训练集大小: 2415, 验证集大小: 484\n", + "划分后的训练集大小: 7284, 验证集大小: 1457\n", "train_data最大日期: 2023-09-20, 训练天数5\n", "test_data最大日期: 2023-09-27\n", - "划分后的训练集大小: 2417, 验证集大小: 484\n", + "划分后的训练集大小: 7287, 验证集大小: 1458\n", "train_data最大日期: 2023-09-21, 训练天数5\n", "test_data最大日期: 2023-09-28\n", - "划分后的训练集大小: 2415, 验证集大小: 482\n", + "划分后的训练集大小: 7279, 验证集大小: 1454\n", "train_data最大日期: 2023-09-22, 训练天数5\n", "test_data最大日期: 2023-10-09\n", - "划分后的训练集大小: 2413, 验证集大小: 480\n", + "划分后的训练集大小: 7279, 验证集大小: 1454\n", "train_data最大日期: 2023-09-25, 训练天数5\n", "test_data最大日期: 2023-10-10\n", - "划分后的训练集大小: 2410, 验证集大小: 480\n", + "划分后的训练集大小: 7275, 验证集大小: 1452\n", "train_data最大日期: 2023-09-26, 训练天数5\n", "test_data最大日期: 2023-10-11\n", - "划分后的训练集大小: 2409, 验证集大小: 483\n", + "划分后的训练集大小: 7267, 验证集大小: 1449\n", "train_data最大日期: 2023-09-27, 训练天数5\n", "test_data最大日期: 2023-10-12\n", - "划分后的训练集大小: 2409, 验证集大小: 484\n", + "划分后的训练集大小: 7259, 验证集大小: 1450\n", "train_data最大日期: 2023-09-28, 训练天数5\n", "test_data最大日期: 2023-10-13\n", - "划分后的训练集大小: 2411, 验证集大小: 484\n", + "划分后的训练集大小: 7259, 验证集大小: 1454\n", "train_data最大日期: 2023-10-09, 训练天数5\n", "test_data最大日期: 2023-10-16\n", - "划分后的训练集大小: 2415, 验证集大小: 484\n", + "划分后的训练集大小: 7260, 验证集大小: 1455\n", "train_data最大日期: 2023-10-10, 训练天数5\n", "test_data最大日期: 2023-10-17\n", - "划分后的训练集大小: 2417, 验证集大小: 482\n", + "划分后的训练集大小: 7260, 验证集大小: 1452\n", "train_data最大日期: 2023-10-11, 训练天数5\n", "test_data最大日期: 2023-10-18\n", - "划分后的训练集大小: 2417, 验证集大小: 483\n", + "划分后的训练集大小: 7269, 验证集大小: 1458\n", "train_data最大日期: 2023-10-12, 训练天数5\n", "test_data最大日期: 2023-10-19\n", - "划分后的训练集大小: 2414, 验证集大小: 481\n", + "划分后的训练集大小: 7270, 验证集大小: 1451\n", "train_data最大日期: 2023-10-13, 训练天数5\n", "test_data最大日期: 2023-10-20\n", - "划分后的训练集大小: 2412, 验证集大小: 482\n", + "划分后的训练集大小: 7268, 验证集大小: 1452\n", "train_data最大日期: 2023-10-16, 训练天数5\n", "test_data最大日期: 2023-10-23\n", - "划分后的训练集大小: 2408, 验证集大小: 480\n", + "划分后的训练集大小: 7259, 验证集大小: 1446\n", "train_data最大日期: 2023-10-17, 训练天数5\n", "test_data最大日期: 2023-10-24\n", - "划分后的训练集大小: 2407, 验证集大小: 481\n", + "划分后的训练集大小: 7257, 验证集大小: 1450\n", "train_data最大日期: 2023-10-18, 训练天数5\n", "test_data最大日期: 2023-10-25\n", - "划分后的训练集大小: 2407, 验证集大小: 483\n", + "划分后的训练集大小: 7246, 验证集大小: 1447\n", "train_data最大日期: 2023-10-19, 训练天数5\n", "test_data最大日期: 2023-10-26\n", - "划分后的训练集大小: 2409, 验证集大小: 483\n", + "划分后的训练集大小: 7244, 验证集大小: 1449\n", "train_data最大日期: 2023-10-20, 训练天数5\n", "test_data最大日期: 2023-10-27\n", - "划分后的训练集大小: 2409, 验证集大小: 482\n", + "划分后的训练集大小: 7239, 验证集大小: 1447\n", "train_data最大日期: 2023-10-23, 训练天数5\n", "test_data最大日期: 2023-10-30\n", - "划分后的训练集大小: 2415, 验证集大小: 486\n", + "划分后的训练集大小: 7245, 验证集大小: 1452\n", "train_data最大日期: 2023-10-24, 训练天数5\n", "test_data最大日期: 2023-10-31\n", - "划分后的训练集大小: 2420, 验证集大小: 486\n", + "划分后的训练集大小: 7251, 验证集大小: 1456\n", "train_data最大日期: 2023-10-25, 训练天数5\n", "test_data最大日期: 2023-11-01\n", - "划分后的训练集大小: 2419, 验证集大小: 482\n", + "划分后的训练集大小: 7257, 验证集大小: 1453\n", "train_data最大日期: 2023-10-26, 训练天数5\n", "test_data最大日期: 2023-11-02\n", - "划分后的训练集大小: 2417, 验证集大小: 481\n", + "划分后的训练集大小: 7258, 验证集大小: 1450\n", "train_data最大日期: 2023-10-27, 训练天数5\n", "test_data最大日期: 2023-11-03\n", - "划分后的训练集大小: 2420, 验证集大小: 485\n", + "划分后的训练集大小: 7261, 验证集大小: 1450\n", "train_data最大日期: 2023-10-30, 训练天数5\n", "test_data最大日期: 2023-11-06\n", - "划分后的训练集大小: 2418, 验证集大小: 484\n", + "划分后的训练集大小: 7264, 验证集大小: 1455\n", "train_data最大日期: 2023-10-31, 训练天数5\n", "test_data最大日期: 2023-11-07\n", - "划分后的训练集大小: 2415, 验证集大小: 483\n", + "划分后的训练集大小: 7258, 验证集大小: 1450\n", "train_data最大日期: 2023-11-01, 训练天数5\n", "test_data最大日期: 2023-11-08\n", - "划分后的训练集大小: 2417, 验证集大小: 484\n", + "划分后的训练集大小: 7253, 验证集大小: 1448\n", "train_data最大日期: 2023-11-02, 训练天数5\n", "test_data最大日期: 2023-11-09\n", - "划分后的训练集大小: 2418, 验证集大小: 482\n", + "划分后的训练集大小: 7251, 验证集大小: 1448\n", "train_data最大日期: 2023-11-03, 训练天数5\n", "test_data最大日期: 2023-11-10\n", - "划分后的训练集大小: 2419, 验证集大小: 486\n", + "划分后的训练集大小: 7256, 验证集大小: 1455\n", "train_data最大日期: 2023-11-06, 训练天数5\n", "test_data最大日期: 2023-11-13\n", - "划分后的训练集大小: 2419, 验证集大小: 484\n", + "划分后的训练集大小: 7254, 验证集大小: 1453\n", "train_data最大日期: 2023-11-07, 训练天数5\n", "test_data最大日期: 2023-11-14\n", - "划分后的训练集大小: 2416, 验证集大小: 480\n", + "划分后的训练集大小: 7240, 验证集大小: 1436\n", "train_data最大日期: 2023-11-08, 训练天数5\n", "test_data最大日期: 2023-11-15\n", - "划分后的训练集大小: 2412, 验证集大小: 480\n", + "划分后的训练集大小: 7229, 验证集大小: 1437\n", "train_data最大日期: 2023-11-09, 训练天数5\n", "test_data最大日期: 2023-11-16\n", - "划分后的训练集大小: 2410, 验证集大小: 480\n", + "划分后的训练集大小: 7228, 验证集大小: 1447\n", "train_data最大日期: 2023-11-10, 训练天数5\n", "test_data最大日期: 2023-11-17\n", - "划分后的训练集大小: 2404, 验证集大小: 480\n", + "划分后的训练集大小: 7221, 验证集大小: 1448\n", "train_data最大日期: 2023-11-13, 训练天数5\n", "test_data最大日期: 2023-11-20\n", - "划分后的训练集大小: 2398, 验证集大小: 478\n", + "划分后的训练集大小: 7211, 验证集大小: 1443\n", "train_data最大日期: 2023-11-14, 训练天数5\n", "test_data最大日期: 2023-11-21\n", - "划分后的训练集大小: 2393, 验证集大小: 475\n", + "划分后的训练集大小: 7218, 验证集大小: 1443\n", "train_data最大日期: 2023-11-15, 训练天数5\n", "test_data最大日期: 2023-11-22\n", - "划分后的训练集大小: 2384, 验证集大小: 471\n", + "划分后的训练集大小: 7215, 验证集大小: 1434\n", "train_data最大日期: 2023-11-16, 训练天数5\n", "test_data最大日期: 2023-11-23\n", - "划分后的训练集大小: 2380, 验证集大小: 476\n", + "划分后的训练集大小: 7212, 验证集大小: 1444\n", "train_data最大日期: 2023-11-17, 训练天数5\n", "test_data最大日期: 2023-11-24\n", - "划分后的训练集大小: 2378, 验证集大小: 478\n", + "划分后的训练集大小: 7212, 验证集大小: 1448\n", "train_data最大日期: 2023-11-20, 训练天数5\n", "test_data最大日期: 2023-11-27\n", - "划分后的训练集大小: 2378, 验证集大小: 478\n", + "划分后的训练集大小: 7215, 验证集大小: 1446\n", "train_data最大日期: 2023-11-21, 训练天数5\n", "test_data最大日期: 2023-11-28\n", - "划分后的训练集大小: 2378, 验证集大小: 475\n", + "划分后的训练集大小: 7213, 验证集大小: 1441\n", "train_data最大日期: 2023-11-22, 训练天数5\n", "test_data最大日期: 2023-11-29\n", - "划分后的训练集大小: 2380, 验证集大小: 473\n", + "划分后的训练集大小: 7216, 验证集大小: 1437\n", "train_data最大日期: 2023-11-23, 训练天数5\n", "test_data最大日期: 2023-11-30\n", - "划分后的训练集大小: 2379, 验证集大小: 475\n", + "划分后的训练集大小: 7220, 验证集大小: 1448\n", "train_data最大日期: 2023-11-24, 训练天数5\n", "test_data最大日期: 2023-12-01\n", - "划分后的训练集大小: 2378, 验证集大小: 477\n", + "划分后的训练集大小: 7222, 验证集大小: 1450\n", "train_data最大日期: 2023-11-27, 训练天数5\n", "test_data最大日期: 2023-12-04\n", - "划分后的训练集大小: 2375, 验证集大小: 475\n", + "划分后的训练集大小: 7217, 验证集大小: 1441\n", "train_data最大日期: 2023-11-28, 训练天数5\n", "test_data最大日期: 2023-12-05\n", - "划分后的训练集大小: 2378, 验证集大小: 478\n", + "划分后的训练集大小: 7222, 验证集大小: 1446\n", "train_data最大日期: 2023-11-29, 训练天数5\n", "test_data最大日期: 2023-12-06\n", - "划分后的训练集大小: 2380, 验证集大小: 475\n", + "划分后的训练集大小: 7229, 验证集大小: 1444\n", "train_data最大日期: 2023-11-30, 训练天数5\n", "test_data最大日期: 2023-12-07\n", - "划分后的训练集大小: 2380, 验证集大小: 475\n", + "划分后的训练集大小: 7222, 验证集大小: 1441\n", "train_data最大日期: 2023-12-01, 训练天数5\n", "test_data最大日期: 2023-12-08\n", - "划分后的训练集大小: 2379, 验证集大小: 476\n", + "划分后的训练集大小: 7222, 验证集大小: 1450\n", "train_data最大日期: 2023-12-04, 训练天数5\n", "test_data最大日期: 2023-12-11\n", - "划分后的训练集大小: 2382, 验证集大小: 478\n", + "划分后的训练集大小: 7229, 验证集大小: 1448\n", "train_data最大日期: 2023-12-05, 训练天数5\n", "test_data最大日期: 2023-12-12\n", - "划分后的训练集大小: 2380, 验证集大小: 476\n", + "划分后的训练集大小: 7224, 验证集大小: 1441\n", "train_data最大日期: 2023-12-06, 训练天数5\n", "test_data最大日期: 2023-12-13\n", - "划分后的训练集大小: 2383, 验证集大小: 478\n", + "划分后的训练集大小: 7217, 验证集大小: 1437\n", "train_data最大日期: 2023-12-07, 训练天数5\n", "test_data最大日期: 2023-12-14\n", - "划分后的训练集大小: 2385, 验证集大小: 477\n", + "划分后的训练集大小: 7219, 验证集大小: 1443\n", "train_data最大日期: 2023-12-08, 训练天数5\n", "test_data最大日期: 2023-12-15\n", - "划分后的训练集大小: 2382, 验证集大小: 473\n", + "划分后的训练集大小: 7206, 验证集大小: 1437\n", "train_data最大日期: 2023-12-11, 训练天数5\n", "test_data最大日期: 2023-12-18\n", - "划分后的训练集大小: 2376, 验证集大小: 472\n", + "划分后的训练集大小: 7194, 验证集大小: 1436\n", "train_data最大日期: 2023-12-12, 训练天数5\n", "test_data最大日期: 2023-12-19\n", - "划分后的训练集大小: 2375, 验证集大小: 475\n", + "划分后的训练集大小: 7199, 验证集大小: 1446\n", "train_data最大日期: 2023-12-13, 训练天数5\n", "test_data最大日期: 2023-12-20\n", - "划分后的训练集大小: 2372, 验证集大小: 475\n", + "划分后的训练集大小: 7202, 验证集大小: 1440\n", "train_data最大日期: 2023-12-14, 训练天数5\n", "test_data最大日期: 2023-12-21\n", - "划分后的训练集大小: 2371, 验证集大小: 476\n", + "划分后的训练集大小: 7195, 验证集大小: 1436\n", "train_data最大日期: 2023-12-15, 训练天数5\n", "test_data最大日期: 2023-12-22\n", - "划分后的训练集大小: 2370, 验证集大小: 472\n", + "划分后的训练集大小: 7189, 验证集大小: 1431\n", "train_data最大日期: 2023-12-18, 训练天数5\n", "test_data最大日期: 2023-12-25\n", - "划分后的训练集大小: 2369, 验证集大小: 471\n", + "划分后的训练集大小: 7185, 验证集大小: 1432\n", "train_data最大日期: 2023-12-19, 训练天数5\n", "test_data最大日期: 2023-12-26\n", - "划分后的训练集大小: 2368, 验证集大小: 474\n", + "划分后的训练集大小: 7170, 验证集大小: 1431\n", "train_data最大日期: 2023-12-20, 训练天数5\n", "test_data最大日期: 2023-12-27\n", - "划分后的训练集大小: 2362, 验证集大小: 469\n", + "划分后的训练集大小: 7165, 验证集大小: 1435\n", "train_data最大日期: 2023-12-21, 训练天数5\n", "test_data最大日期: 2023-12-28\n", - "划分后的训练集大小: 2359, 验证集大小: 473\n", + "划分后的训练集大小: 7168, 验证集大小: 1439\n", "train_data最大日期: 2023-12-22, 训练天数5\n", "test_data最大日期: 2023-12-29\n", - "划分后的训练集大小: 2360, 验证集大小: 473\n", + "划分后的训练集大小: 7180, 验证集大小: 1443\n", "train_data最大日期: 2023-12-25, 训练天数5\n", "test_data最大日期: 2024-01-02\n", - "划分后的训练集大小: 2359, 验证集大小: 470\n", + "划分后的训练集大小: 7182, 验证集大小: 1434\n", "train_data最大日期: 2023-12-26, 训练天数5\n", "test_data最大日期: 2024-01-03\n", - "划分后的训练集大小: 2351, 验证集大小: 466\n", + "划分后的训练集大小: 7179, 验证集大小: 1428\n", "train_data最大日期: 2023-12-27, 训练天数5\n", "test_data最大日期: 2024-01-04\n", - "划分后的训练集大小: 2349, 验证集大小: 467\n", + "划分后的训练集大小: 7179, 验证集大小: 1435\n", "train_data最大日期: 2023-12-28, 训练天数5\n", "test_data最大日期: 2024-01-05\n", - "划分后的训练集大小: 2349, 验证集大小: 473\n", + "划分后的训练集大小: 7184, 验证集大小: 1444\n", "train_data最大日期: 2023-12-29, 训练天数5\n", "test_data最大日期: 2024-01-08\n", - "划分后的训练集大小: 2345, 验证集大小: 469\n", + "划分后的训练集大小: 7177, 验证集大小: 1436\n", "train_data最大日期: 2024-01-02, 训练天数5\n", "test_data最大日期: 2024-01-09\n", - "划分后的训练集大小: 2348, 验证集大小: 473\n", + "划分后的训练集大小: 7184, 验证集大小: 1441\n", "train_data最大日期: 2024-01-03, 训练天数5\n", "test_data最大日期: 2024-01-10\n", - "划分后的训练集大小: 2358, 验证集大小: 476\n", + "划分后的训练集大小: 7194, 验证集大小: 1438\n", "train_data最大日期: 2024-01-04, 训练天数5\n", "test_data最大日期: 2024-01-11\n", - "划分后的训练集大小: 2363, 验证集大小: 472\n", + "划分后的训练集大小: 7198, 验证集大小: 1439\n", "train_data最大日期: 2024-01-05, 训练天数5\n", "test_data最大日期: 2024-01-12\n", - "划分后的训练集大小: 2364, 验证集大小: 474\n", + "划分后的训练集大小: 7197, 验证集大小: 1443\n", "train_data最大日期: 2024-01-08, 训练天数5\n", "test_data最大日期: 2024-01-15\n", - "划分后的训练集大小: 2365, 验证集大小: 470\n", + "划分后的训练集大小: 7200, 验证集大小: 1439\n", "train_data最大日期: 2024-01-09, 训练天数5\n", "test_data最大日期: 2024-01-16\n", - "划分后的训练集大小: 2362, 验证集大小: 470\n", + "划分后的训练集大小: 7197, 验证集大小: 1438\n", "train_data最大日期: 2024-01-10, 训练天数5\n", "test_data最大日期: 2024-01-17\n", - "划分后的训练集大小: 2357, 验证集大小: 471\n", + "划分后的训练集大小: 7201, 验证集大小: 1442\n", "train_data最大日期: 2024-01-11, 训练天数5\n", "test_data最大日期: 2024-01-18\n", - "划分后的训练集大小: 2352, 验证集大小: 467\n", + "划分后的训练集大小: 7199, 验证集大小: 1437\n", "train_data最大日期: 2024-01-12, 训练天数5\n", "test_data最大日期: 2024-01-19\n", - "划分后的训练集大小: 2345, 验证集大小: 467\n", + "划分后的训练集大小: 7192, 验证集大小: 1436\n", "train_data最大日期: 2024-01-15, 训练天数5\n", "test_data最大日期: 2024-01-22\n", - "划分后的训练集大小: 2325, 验证集大小: 450\n", + "划分后的训练集大小: 7141, 验证集大小: 1388\n", "train_data最大日期: 2024-01-16, 训练天数5\n", "test_data最大日期: 2024-01-23\n", - "划分后的训练集大小: 2304, 验证集大小: 449\n", + "划分后的训练集大小: 7085, 验证集大小: 1382\n", "train_data最大日期: 2024-01-17, 训练天数5\n", "test_data最大日期: 2024-01-24\n", - "划分后的训练集大小: 2294, 验证集大小: 461\n", + "划分后的训练集大小: 7075, 验证集大小: 1432\n", "train_data最大日期: 2024-01-18, 训练天数5\n", "test_data最大日期: 2024-01-25\n", - "划分后的训练集大小: 2296, 验证集大小: 469\n", + "划分后的训练集大小: 7072, 验证集大小: 1434\n", "train_data最大日期: 2024-01-19, 训练天数5\n", "test_data最大日期: 2024-01-26\n", - "划分后的训练集大小: 2298, 验证集大小: 469\n", + "划分后的训练集大小: 7067, 验证集大小: 1431\n", "train_data最大日期: 2024-01-22, 训练天数5\n", "test_data最大日期: 2024-01-29\n", - "划分后的训练集大小: 2312, 验证集大小: 464\n", + "划分后的训练集大小: 7110, 验证集大小: 1431\n", "train_data最大日期: 2024-01-23, 训练天数5\n", "test_data最大日期: 2024-01-30\n", - "划分后的训练集大小: 2329, 验证集大小: 466\n", + "划分后的训练集大小: 7162, 验证集大小: 1434\n", "train_data最大日期: 2024-01-24, 训练天数5\n", "test_data最大日期: 2024-01-31\n", - "划分后的训练集大小: 2321, 验证集大小: 453\n", + "划分后的训练集大小: 7128, 验证集大小: 1398\n", "train_data最大日期: 2024-01-25, 训练天数5\n", "test_data最大日期: 2024-02-01\n", - "划分后的训练集大小: 2247, 验证集大小: 395\n", + "划分后的训练集大小: 6927, 验证集大小: 1233\n", "train_data最大日期: 2024-01-26, 训练天数5\n", "test_data最大日期: 2024-02-02\n", - "划分后的训练集大小: 1931, 验证集大小: 153\n", + "划分后的训练集大小: 6116, 验证集大小: 620\n", "train_data最大日期: 2024-01-29, 训练天数5\n", "test_data最大日期: 2024-02-05\n", - "划分后的训练集大小: 1522, 验证集大小: 55\n", + "划分后的训练集大小: 4913, 验证集大小: 228\n", "train_data最大日期: 2024-01-30, 训练天数5\n", "test_data最大日期: 2024-02-06\n", - "划分后的训练集大小: 1142, 验证集大小: 86\n", + "划分后的训练集大小: 3941, 验证集大小: 462\n", "train_data最大日期: 2024-01-31, 训练天数5\n", "test_data最大日期: 2024-02-07\n", - "划分后的训练集大小: 792, 验证集大小: 103\n", - "[2.0, 6.0, 9.0, 4.0, 7.0, 3.0, 5.0, 1.0, 19.0, 8.0, 12.0, 17.0, 10.0, 14.0, 13.0, 18.0, 11.0, 16.0, 15.0]\n", + "划分后的训练集大小: 3112, 验证集大小: 569\n", + "Label 19 is not less than the number of label mappings (19)\n", + "[2.0, 5.0, 11.0, 7.0, 3.0, 14.0, 15.0, 4.0, 8.0, 16.0, 12.0, 13.0, 10.0, 9.0, 19.0, 6.0, 1.0, 17.0, 18.0]\n", "train_data最大日期: 2024-02-01, 训练天数5\n", "test_data最大日期: 2024-02-08\n", - "划分后的训练集大小: 637, 验证集大小: 240\n", - "[6.0, 10.0, 19.0, 8.0, 9.0, 11.0, 16.0, 7.0, 13.0, 12.0, 5.0, 15.0, 17.0, 14.0, 18.0, 4.0, 3.0, 2.0]\n", + "划分后的训练集大小: 2889, 验证集大小: 1010\n", + "Label 19 is not less than the number of label mappings (18)\n", + "[8.0, 13.0, 7.0, 9.0, 11.0, 14.0, 16.0, 10.0, 6.0, 19.0, 18.0, 12.0, 15.0, 17.0, 4.0, 5.0, 3.0, 2.0]\n", "train_data最大日期: 2024-02-02, 训练天数5\n", "test_data最大日期: 2024-02-19\n", - "划分后的训练集大小: 914, 验证集大小: 430\n", + "划分后的训练集大小: 3643, 验证集大小: 1374\n", "train_data最大日期: 2024-02-05, 训练天数5\n", "test_data最大日期: 2024-02-20\n", - "划分后的训练集大小: 1319, 验证集大小: 460\n", + "划分后的训练集大小: 4770, 验证集大小: 1355\n", "train_data最大日期: 2024-02-06, 训练天数5\n", "test_data最大日期: 2024-02-21\n", - "划分后的训练集大小: 1694, 验证集大小: 461\n", + "划分后的训练集大小: 5710, 验证集大小: 1402\n", "train_data最大日期: 2024-02-07, 训练天数5\n", "test_data最大日期: 2024-02-22\n", - "划分后的训练集大小: 1807, 验证集大小: 216\n", + "划分后的训练集大小: 6030, 验证集大小: 889\n", "train_data最大日期: 2024-02-08, 训练天数5\n", "test_data最大日期: 2024-02-23\n", - "划分后的训练集大小: 1925, 验证集大小: 358\n", + "划分后的训练集大小: 6240, 验证集大小: 1220\n", "train_data最大日期: 2024-02-19, 训练天数5\n", "test_data最大日期: 2024-02-26\n", - "划分后的训练集大小: 1912, 验证集大小: 417\n", + "划分后的训练集大小: 6188, 验证集大小: 1322\n", "train_data最大日期: 2024-02-20, 训练天数5\n", "test_data最大日期: 2024-02-27\n", - "划分后的训练集大小: 1843, 验证集大小: 391\n", + "划分后的训练集大小: 6110, 验证集大小: 1277\n", "train_data最大日期: 2024-02-21, 训练天数5\n", "test_data最大日期: 2024-02-28\n", - "划分后的训练集大小: 1841, 验证集大小: 459\n", + "划分后的训练集大小: 6117, 验证集大小: 1409\n", "train_data最大日期: 2024-02-22, 训练天数5\n", "test_data最大日期: 2024-02-29\n", - "划分后的训练集大小: 2087, 验证集大小: 462\n", + "划分后的训练集大小: 6647, 验证集大小: 1419\n", "train_data最大日期: 2024-02-23, 训练天数5\n", "test_data最大日期: 2024-03-01\n", - "划分后的训练集大小: 2192, 验证集大小: 463\n", + "划分后的训练集大小: 6861, 验证集大小: 1434\n", "train_data最大日期: 2024-02-26, 训练天数5\n", "test_data最大日期: 2024-03-04\n", - "划分后的训练集大小: 2236, 验证集大小: 461\n", + "划分后的训练集大小: 6960, 验证集大小: 1421\n", "train_data最大日期: 2024-02-27, 训练天数5\n", "test_data最大日期: 2024-03-05\n", - "划分后的训练集大小: 2312, 验证集大小: 467\n", + "划分后的训练集大小: 7116, 验证集大小: 1433\n", "train_data最大日期: 2024-02-28, 训练天数5\n", "test_data最大日期: 2024-03-06\n", - "划分后的训练集大小: 2312, 验证集大小: 459\n", + "划分后的训练集大小: 7113, 验证集大小: 1406\n", "train_data最大日期: 2024-02-29, 训练天数5\n", "test_data最大日期: 2024-03-07\n", - "划分后的训练集大小: 2317, 验证集大小: 467\n", + "划分后的训练集大小: 7131, 验证集大小: 1437\n", "train_data最大日期: 2024-03-01, 训练天数5\n", "test_data最大日期: 2024-03-08\n", - "划分后的训练集大小: 2317, 验证集大小: 463\n", + "划分后的训练集大小: 7130, 验证集大小: 1433\n", "train_data最大日期: 2024-03-04, 训练天数5\n", "test_data最大日期: 2024-03-11\n", - "划分后的训练集大小: 2320, 验证集大小: 464\n", + "划分后的训练集大小: 7147, 验证集大小: 1438\n", "train_data最大日期: 2024-03-05, 训练天数5\n", "test_data最大日期: 2024-03-12\n", - "划分后的训练集大小: 2314, 验证集大小: 461\n", + "划分后的训练集大小: 7140, 验证集大小: 1426\n", "train_data最大日期: 2024-03-06, 训练天数5\n", "test_data最大日期: 2024-03-13\n", - "划分后的训练集大小: 2321, 验证集大小: 466\n", + "划分后的训练集大小: 7167, 验证集大小: 1433\n", "train_data最大日期: 2024-03-07, 训练天数5\n", "test_data最大日期: 2024-03-14\n", - "划分后的训练集大小: 2319, 验证集大小: 465\n", + "划分后的训练集大小: 7162, 验证集大小: 1432\n", "train_data最大日期: 2024-03-08, 训练天数5\n", "test_data最大日期: 2024-03-15\n", - "划分后的训练集大小: 2313, 验证集大小: 457\n", + "划分后的训练集大小: 7160, 验证集大小: 1431\n", "train_data最大日期: 2024-03-11, 训练天数5\n", "test_data最大日期: 2024-03-18\n", - "划分后的训练集大小: 2308, 验证集大小: 459\n", + "划分后的训练集大小: 7149, 验证集大小: 1427\n", "train_data最大日期: 2024-03-12, 训练天数5\n", "test_data最大日期: 2024-03-19\n", - "划分后的训练集大小: 2308, 验证集大小: 461\n", + "划分后的训练集大小: 7154, 验证集大小: 1431\n", "train_data最大日期: 2024-03-13, 训练天数5\n", "test_data最大日期: 2024-03-20\n", - "划分后的训练集大小: 2299, 验证集大小: 457\n", + "划分后的训练集大小: 7139, 验证集大小: 1418\n", "train_data最大日期: 2024-03-14, 训练天数5\n", "test_data最大日期: 2024-03-21\n", - "划分后的训练集大小: 2292, 验证集大小: 458\n", + "划分后的训练集大小: 7123, 验证集大小: 1416\n", "train_data最大日期: 2024-03-15, 训练天数5\n", "test_data最大日期: 2024-03-22\n", - "划分后的训练集大小: 2295, 验证集大小: 460\n", + "划分后的训练集大小: 7114, 验证集大小: 1422\n", "train_data最大日期: 2024-03-18, 训练天数5\n", "test_data最大日期: 2024-03-25\n", - "划分后的训练集大小: 2299, 验证集大小: 463\n", + "划分后的训练集大小: 7117, 验证集大小: 1430\n", "train_data最大日期: 2024-03-19, 训练天数5\n", "test_data最大日期: 2024-03-26\n", - "划分后的训练集大小: 2298, 验证集大小: 460\n", + "划分后的训练集大小: 7117, 验证集大小: 1431\n", "train_data最大日期: 2024-03-20, 训练天数5\n", "test_data最大日期: 2024-03-27\n", - "划分后的训练集大小: 2295, 验证集大小: 454\n", + "划分后的训练集大小: 7108, 验证集大小: 1409\n", "train_data最大日期: 2024-03-21, 训练天数5\n", "test_data最大日期: 2024-03-28\n", - "划分后的训练集大小: 2300, 验证集大小: 463\n", + "划分后的训练集大小: 7119, 验证集大小: 1427\n", "train_data最大日期: 2024-03-22, 训练天数5\n", "test_data最大日期: 2024-03-29\n", - "划分后的训练集大小: 2303, 验证集大小: 463\n", + "划分后的训练集大小: 7132, 验证集大小: 1435\n", "train_data最大日期: 2024-03-25, 训练天数5\n", "test_data最大日期: 2024-04-01\n", - "划分后的训练集大小: 2302, 验证集大小: 462\n", + "划分后的训练集大小: 7134, 验证集大小: 1432\n", "train_data最大日期: 2024-03-26, 训练天数5\n", "test_data最大日期: 2024-04-02\n", - "划分后的训练集大小: 2303, 验证集大小: 461\n", + "划分后的训练集大小: 7134, 验证集大小: 1431\n", "train_data最大日期: 2024-03-27, 训练天数5\n", "test_data最大日期: 2024-04-03\n", - "划分后的训练集大小: 2303, 验证集大小: 454\n", + "划分后的训练集大小: 7139, 验证集大小: 1414\n", "train_data最大日期: 2024-03-28, 训练天数5\n", "test_data最大日期: 2024-04-08\n", - "划分后的训练集大小: 2297, 验证集大小: 457\n", + "划分后的训练集大小: 7134, 验证集大小: 1422\n", "train_data最大日期: 2024-03-29, 训练天数5\n", "test_data最大日期: 2024-04-09\n", - "划分后的训练集大小: 2299, 验证集大小: 465\n", + "划分后的训练集大小: 7132, 验证集大小: 1433\n", "train_data最大日期: 2024-04-01, 训练天数5\n", "test_data最大日期: 2024-04-10\n", - "划分后的训练集大小: 2290, 验证集大小: 453\n", + "划分后的训练集大小: 7105, 验证集大小: 1405\n", "train_data最大日期: 2024-04-02, 训练天数5\n", "test_data最大日期: 2024-04-11\n", - "划分后的训练集大小: 2279, 验证集大小: 450\n", + "划分后的训练集大小: 7084, 验证集大小: 1410\n", "train_data最大日期: 2024-04-03, 训练天数5\n", "test_data最大日期: 2024-04-12\n", - "划分后的训练集大小: 2282, 验证集大小: 457\n", + "划分后的训练集大小: 7093, 验证集大小: 1423\n", "train_data最大日期: 2024-04-08, 训练天数5\n", "test_data最大日期: 2024-04-15\n", - "划分后的训练集大小: 2282, 验证集大小: 457\n", + "划分后的训练集大小: 7091, 验证集大小: 1420\n", "train_data最大日期: 2024-04-09, 训练天数5\n", "test_data最大日期: 2024-04-16\n", - "划分后的训练集大小: 2076, 验证集大小: 259\n", + "划分后的训练集大小: 6564, 验证集大小: 906\n", "train_data最大日期: 2024-04-10, 训练天数5\n", "test_data最大日期: 2024-04-17\n", - "划分后的训练集大小: 2070, 验证集大小: 447\n", + "划分后的训练集大小: 6561, 验证集大小: 1402\n", "train_data最大日期: 2024-04-11, 训练天数5\n", "test_data最大日期: 2024-04-18\n", - "划分后的训练集大小: 2054, 验证集大小: 434\n", + "划分后的训练集大小: 6525, 验证集大小: 1374\n", "train_data最大日期: 2024-04-12, 训练天数5\n", "test_data最大日期: 2024-04-19\n", - "划分后的训练集大小: 2044, 验证集大小: 447\n", + "划分后的训练集大小: 6501, 验证集大小: 1399\n", "train_data最大日期: 2024-04-15, 训练天数5\n", "test_data最大日期: 2024-04-22\n", - "划分后的训练集大小: 2053, 验证集大小: 466\n", + "划分后的训练集大小: 6517, 验证集大小: 1436\n", "train_data最大日期: 2024-04-16, 训练天数5\n", "test_data最大日期: 2024-04-23\n", - "划分后的训练集大小: 2255, 验证集大小: 461\n", + "划分后的训练集大小: 7039, 验证集大小: 1428\n", "train_data最大日期: 2024-04-17, 训练天数5\n", "test_data最大日期: 2024-04-24\n", - "划分后的训练集大小: 2276, 验证集大小: 468\n", + "划分后的训练集大小: 7077, 验证集大小: 1440\n", "train_data最大日期: 2024-04-18, 训练天数5\n", "test_data最大日期: 2024-04-25\n", - "划分后的训练集大小: 2310, 验证集大小: 468\n", + "划分后的训练集大小: 7144, 验证集大小: 1441\n", "train_data最大日期: 2024-04-19, 训练天数5\n", "test_data最大日期: 2024-04-26\n", - "划分后的训练集大小: 2326, 验证集大小: 463\n", + "划分后的训练集大小: 7181, 验证集大小: 1436\n", "train_data最大日期: 2024-04-22, 训练天数5\n", "test_data最大日期: 2024-04-29\n", - "划分后的训练集大小: 2319, 验证集大小: 459\n", + "划分后的训练集大小: 7170, 验证集大小: 1425\n", "train_data最大日期: 2024-04-23, 训练天数5\n", "test_data最大日期: 2024-04-30\n", - "划分后的训练集大小: 2309, 验证集大小: 451\n", + "划分后的训练集大小: 7141, 验证集大小: 1399\n", "train_data最大日期: 2024-04-24, 训练天数5\n", "test_data最大日期: 2024-05-06\n", - "划分后的训练集大小: 2289, 验证集大小: 448\n", + "划分后的训练集大小: 7096, 验证集大小: 1395\n", "train_data最大日期: 2024-04-25, 训练天数5\n", "test_data最大日期: 2024-05-07\n", - "划分后的训练集大小: 2265, 验证集大小: 444\n", + "划分后的训练集大小: 7044, 验证集大小: 1389\n", "train_data最大日期: 2024-04-26, 训练天数5\n", "test_data最大日期: 2024-05-08\n", - "划分后的训练集大小: 2258, 验证集大小: 456\n", + "划分后的训练集大小: 7009, 验证集大小: 1401\n", "train_data最大日期: 2024-04-29, 训练天数5\n", "test_data最大日期: 2024-05-09\n", - "划分后的训练集大小: 2258, 验证集大小: 459\n", + "划分后的训练集大小: 7005, 验证集大小: 1421\n", "train_data最大日期: 2024-04-30, 训练天数5\n", "test_data最大日期: 2024-05-10\n", - "划分后的训练集大小: 2285, 验证集大小: 478\n", + "划分后的训练集大小: 7066, 验证集大小: 1460\n", "train_data最大日期: 2024-05-06, 训练天数5\n", "test_data最大日期: 2024-05-13\n", - "划分后的训练集大小: 2309, 验证集大小: 472\n", + "划分后的训练集大小: 7107, 验证集大小: 1436\n", "train_data最大日期: 2024-05-07, 训练天数5\n", "test_data最大日期: 2024-05-14\n", - "划分后的训练集大小: 2342, 验证集大小: 477\n", + "划分后的训练集大小: 7174, 验证集大小: 1456\n", "train_data最大日期: 2024-05-08, 训练天数5\n", "test_data最大日期: 2024-05-15\n", - "划分后的训练集大小: 2364, 验证集大小: 478\n", + "划分后的训练集大小: 7225, 验证集大小: 1452\n", "train_data最大日期: 2024-05-09, 训练天数5\n", "test_data最大日期: 2024-05-16\n", - "划分后的训练集大小: 2379, 验证集大小: 474\n", + "划分后的训练集大小: 7257, 验证集大小: 1453\n", "train_data最大日期: 2024-05-10, 训练天数5\n", "test_data最大日期: 2024-05-17\n", - "划分后的训练集大小: 2376, 验证集大小: 475\n", + "划分后的训练集大小: 7254, 验证集大小: 1457\n", "train_data最大日期: 2024-05-13, 训练天数5\n", "test_data最大日期: 2024-05-20\n", - "划分后的训练集大小: 2377, 验证集大小: 473\n", + "划分后的训练集大小: 7273, 验证集大小: 1455\n", "train_data最大日期: 2024-05-14, 训练天数5\n", "test_data最大日期: 2024-05-21\n", - "划分后的训练集大小: 2376, 验证集大小: 476\n", + "划分后的训练集大小: 7278, 验证集大小: 1461\n", "train_data最大日期: 2024-05-15, 训练天数5\n", "test_data最大日期: 2024-05-22\n", - "划分后的训练集大小: 2375, 验证集大小: 477\n", + "划分后的训练集大小: 7289, 验证集大小: 1463\n", "train_data最大日期: 2024-05-16, 训练天数5\n", "test_data最大日期: 2024-05-23\n", - "划分后的训练集大小: 2375, 验证集大小: 474\n", + "划分后的训练集大小: 7300, 验证集大小: 1464\n", "train_data最大日期: 2024-05-17, 训练天数5\n", "test_data最大日期: 2024-05-24\n", - "划分后的训练集大小: 2374, 验证集大小: 474\n", + "划分后的训练集大小: 7304, 验证集大小: 1461\n", "train_data最大日期: 2024-05-20, 训练天数5\n", "test_data最大日期: 2024-05-27\n", - "划分后的训练集大小: 2373, 验证集大小: 472\n", + "划分后的训练集大小: 7301, 验证集大小: 1452\n", "train_data最大日期: 2024-05-21, 训练天数5\n", "test_data最大日期: 2024-05-28\n", - "划分后的训练集大小: 2376, 验证集大小: 479\n", + "划分后的训练集大小: 7298, 验证集大小: 1458\n", "train_data最大日期: 2024-05-22, 训练天数5\n", "test_data最大日期: 2024-05-29\n", - "划分后的训练集大小: 2377, 验证集大小: 478\n", + "划分后的训练集大小: 7291, 验证集大小: 1456\n", "train_data最大日期: 2024-05-23, 训练天数5\n", "test_data最大日期: 2024-05-30\n", - "划分后的训练集大小: 2385, 验证集大小: 482\n", + "划分后的训练集大小: 7287, 验证集大小: 1460\n", "train_data最大日期: 2024-05-24, 训练天数5\n", "test_data最大日期: 2024-05-31\n", - "划分后的训练集大小: 2392, 验证集大小: 481\n", + "划分后的训练集大小: 7292, 验证集大小: 1466\n", "train_data最大日期: 2024-05-27, 训练天数5\n", "test_data最大日期: 2024-06-03\n", - "划分后的训练集大小: 2400, 验证集大小: 480\n", + "划分后的训练集大小: 7302, 验证集大小: 1462\n", "train_data最大日期: 2024-05-28, 训练天数5\n", "test_data最大日期: 2024-06-04\n", - "划分后的训练集大小: 2401, 验证集大小: 480\n", + "划分后的训练集大小: 7304, 验证集大小: 1460\n", "train_data最大日期: 2024-05-29, 训练天数5\n", "test_data最大日期: 2024-06-05\n", - "划分后的训练集大小: 2397, 验证集大小: 474\n", + "划分后的训练集大小: 7297, 验证集大小: 1449\n", "train_data最大日期: 2024-05-30, 训练天数5\n", "test_data最大日期: 2024-06-06\n", - "划分后的训练集大小: 2349, 验证集大小: 434\n", + "划分后的训练集大小: 7225, 验证集大小: 1388\n", "train_data最大日期: 2024-05-31, 训练天数5\n", "test_data最大日期: 2024-06-07\n", - "划分后的训练集大小: 2342, 验证集大小: 474\n", + "划分后的训练集大小: 7211, 验证集大小: 1452\n", "train_data最大日期: 2024-06-03, 训练天数5\n", "test_data最大日期: 2024-06-11\n", - "划分后的训练集大小: 2342, 验证集大小: 480\n", + "划分后的训练集大小: 7214, 验证集大小: 1465\n", "train_data最大日期: 2024-06-04, 训练天数5\n", "test_data最大日期: 2024-06-12\n", - "划分后的训练集大小: 2344, 验证集大小: 482\n", + "划分后的训练集大小: 7226, 验证集大小: 1472\n", "train_data最大日期: 2024-06-05, 训练天数5\n", "test_data最大日期: 2024-06-13\n", - "划分后的训练集大小: 2349, 验证集大小: 479\n", + "划分后的训练集大小: 7243, 验证集大小: 1466\n", "train_data最大日期: 2024-06-06, 训练天数5\n", "test_data最大日期: 2024-06-14\n", - "划分后的训练集大小: 2389, 验证集大小: 474\n", + "划分后的训练集大小: 7314, 验证集大小: 1459\n", "train_data最大日期: 2024-06-07, 训练天数5\n", "test_data最大日期: 2024-06-17\n", - "划分后的训练集大小: 2389, 验证集大小: 474\n", + "划分后的训练集大小: 7322, 验证集大小: 1460\n", "train_data最大日期: 2024-06-11, 训练天数5\n", "test_data最大日期: 2024-06-18\n", - "划分后的训练集大小: 2386, 验证集大小: 477\n", + "划分后的训练集大小: 7320, 验证集大小: 1463\n", "train_data最大日期: 2024-06-12, 训练天数5\n", "test_data最大日期: 2024-06-19\n", - "划分后的训练集大小: 2381, 验证集大小: 477\n", + "划分后的训练集大小: 7309, 验证集大小: 1461\n", "train_data最大日期: 2024-06-13, 训练天数5\n", "test_data最大日期: 2024-06-20\n", - "划分后的训练集大小: 2378, 验证集大小: 476\n", + "划分后的训练集大小: 7306, 验证集大小: 1463\n", "train_data最大日期: 2024-06-14, 训练天数5\n", "test_data最大日期: 2024-06-21\n", - "划分后的训练集大小: 2378, 验证集大小: 474\n", + "划分后的训练集大小: 7308, 验证集大小: 1461\n", "train_data最大日期: 2024-06-17, 训练天数5\n", "test_data最大日期: 2024-06-24\n", - "划分后的训练集大小: 2380, 验证集大小: 476\n", + "划分后的训练集大小: 7309, 验证集大小: 1461\n", "train_data最大日期: 2024-06-18, 训练天数5\n", "test_data最大日期: 2024-06-25\n", - "划分后的训练集大小: 2380, 验证集大小: 477\n", + "划分后的训练集大小: 7308, 验证集大小: 1462\n", "train_data最大日期: 2024-06-19, 训练天数5\n", "test_data最大日期: 2024-06-26\n", - "划分后的训练集大小: 2381, 验证集大小: 478\n", + "划分后的训练集大小: 7310, 验证集大小: 1463\n", "train_data最大日期: 2024-06-20, 训练天数5\n", "test_data最大日期: 2024-06-27\n", - "划分后的训练集大小: 2381, 验证集大小: 476\n", + "划分后的训练集大小: 7310, 验证集大小: 1463\n", "train_data最大日期: 2024-06-21, 训练天数5\n", "test_data最大日期: 2024-06-28\n", - "划分后的训练集大小: 2383, 验证集大小: 476\n", + "划分后的训练集大小: 7315, 验证集大小: 1466\n", "train_data最大日期: 2024-06-24, 训练天数5\n", "test_data最大日期: 2024-07-01\n", - "划分后的训练集大小: 2385, 验证集大小: 478\n", + "划分后的训练集大小: 7321, 验证集大小: 1467\n", "train_data最大日期: 2024-06-25, 训练天数5\n", "test_data最大日期: 2024-07-02\n", - "划分后的训练集大小: 2387, 验证集大小: 479\n", + "划分后的训练集大小: 7327, 验证集大小: 1468\n", "train_data最大日期: 2024-06-26, 训练天数5\n", "test_data最大日期: 2024-07-03\n", - "划分后的训练集大小: 2386, 验证集大小: 477\n", + "划分后的训练集大小: 7327, 验证集大小: 1463\n", "train_data最大日期: 2024-06-27, 训练天数5\n", "test_data最大日期: 2024-07-04\n", - "划分后的训练集大小: 2390, 验证集大小: 480\n", + "划分后的训练集大小: 7330, 验证集大小: 1466\n", "train_data最大日期: 2024-06-28, 训练天数5\n", "test_data最大日期: 2024-07-05\n", - "划分后的训练集大小: 2394, 验证集大小: 480\n", + "划分后的训练集大小: 7334, 验证集大小: 1470\n", "train_data最大日期: 2024-07-01, 训练天数5\n", "test_data最大日期: 2024-07-08\n", - "划分后的训练集大小: 2397, 验证集大小: 481\n", + "划分后的训练集大小: 7335, 验证集大小: 1468\n", "train_data最大日期: 2024-07-02, 训练天数5\n", "test_data最大日期: 2024-07-09\n", - "划分后的训练集大小: 2402, 验证集大小: 484\n", + "划分后的训练集大小: 7334, 验证集大小: 1467\n", "train_data最大日期: 2024-07-03, 训练天数5\n", "test_data最大日期: 2024-07-10\n", - "划分后的训练集大小: 2407, 验证集大小: 482\n", + "划分后的训练集大小: 7335, 验证集大小: 1464\n", "train_data最大日期: 2024-07-04, 训练天数5\n", "test_data最大日期: 2024-07-11\n", - "划分后的训练集大小: 2410, 验证集大小: 483\n", + "划分后的训练集大小: 7340, 验证集大小: 1471\n", "train_data最大日期: 2024-07-05, 训练天数5\n", "test_data最大日期: 2024-07-12\n", - "划分后的训练集大小: 2413, 验证集大小: 483\n", + "划分后的训练集大小: 7340, 验证集大小: 1470\n", "train_data最大日期: 2024-07-08, 训练天数5\n", "test_data最大日期: 2024-07-15\n", - "划分后的训练集大小: 2414, 验证集大小: 482\n", + "划分后的训练集大小: 7345, 验证集大小: 1473\n", "train_data最大日期: 2024-07-09, 训练天数5\n", "test_data最大日期: 2024-07-16\n", - "划分后的训练集大小: 2416, 验证集大小: 486\n", + "划分后的训练集大小: 7350, 验证集大小: 1472\n", "train_data最大日期: 2024-07-10, 训练天数5\n", "test_data最大日期: 2024-07-17\n", - "划分后的训练集大小: 2417, 验证集大小: 483\n", + "划分后的训练集大小: 7358, 验证集大小: 1472\n", "train_data最大日期: 2024-07-11, 训练天数5\n", "test_data最大日期: 2024-07-18\n", - "划分后的训练集大小: 2420, 验证集大小: 486\n", + "划分后的训练集大小: 7356, 验证集大小: 1469\n", "train_data最大日期: 2024-07-12, 训练天数5\n", "test_data最大日期: 2024-07-19\n", - "划分后的训练集大小: 2421, 验证集大小: 484\n", + "划分后的训练集大小: 7353, 验证集大小: 1467\n", "train_data最大日期: 2024-07-15, 训练天数5\n", "test_data最大日期: 2024-07-22\n", - "划分后的训练集大小: 2423, 验证集大小: 484\n", + "划分后的训练集大小: 7349, 验证集大小: 1469\n", "train_data最大日期: 2024-07-16, 训练天数5\n", "test_data最大日期: 2024-07-23\n", - "划分后的训练集大小: 2421, 验证集大小: 484\n", + "划分后的训练集大小: 7352, 验证集大小: 1475\n", "train_data最大日期: 2024-07-17, 训练天数5\n", "test_data最大日期: 2024-07-24\n", - "划分后的训练集大小: 2420, 验证集大小: 482\n", + "划分后的训练集大小: 7349, 验证集大小: 1469\n", "train_data最大日期: 2024-07-18, 训练天数5\n", "test_data最大日期: 2024-07-25\n", - "划分后的训练集大小: 2418, 验证集大小: 484\n", + "划分后的训练集大小: 7346, 验证集大小: 1466\n", "train_data最大日期: 2024-07-19, 训练天数5\n", "test_data最大日期: 2024-07-26\n", - "划分后的训练集大小: 2418, 验证集大小: 484\n", + "划分后的训练集大小: 7349, 验证集大小: 1470\n", "train_data最大日期: 2024-07-22, 训练天数5\n", "test_data最大日期: 2024-07-29\n", - "划分后的训练集大小: 2414, 验证集大小: 480\n", + "划分后的训练集大小: 7343, 验证集大小: 1463\n", "train_data最大日期: 2024-07-23, 训练天数5\n", "test_data最大日期: 2024-07-30\n", - "划分后的训练集大小: 2410, 验证集大小: 480\n", + "划分后的训练集大小: 7333, 验证集大小: 1465\n", "train_data最大日期: 2024-07-24, 训练天数5\n", "test_data最大日期: 2024-07-31\n", - "划分后的训练集大小: 2410, 验证集大小: 482\n", + "划分后的训练集大小: 7327, 验证集大小: 1463\n", "train_data最大日期: 2024-07-25, 训练天数5\n", "test_data最大日期: 2024-08-01\n", - "划分后的训练集大小: 2405, 验证集大小: 479\n", + "划分后的训练集大小: 7318, 验证集大小: 1457\n", "train_data最大日期: 2024-07-26, 训练天数5\n", "test_data最大日期: 2024-08-02\n", - "划分后的训练集大小: 2401, 验证集大小: 480\n", + "划分后的训练集大小: 7304, 验证集大小: 1456\n", "train_data最大日期: 2024-07-29, 训练天数5\n", "test_data最大日期: 2024-08-05\n", - "划分后的训练集大小: 2399, 验证集大小: 478\n", + "划分后的训练集大小: 7299, 验证集大小: 1458\n", "train_data最大日期: 2024-07-30, 训练天数5\n", "test_data最大日期: 2024-08-06\n", - "划分后的训练集大小: 2398, 验证集大小: 479\n", + "划分后的训练集大小: 7286, 验证集大小: 1452\n", "train_data最大日期: 2024-07-31, 训练天数5\n", "test_data最大日期: 2024-08-07\n", - "划分后的训练集大小: 2396, 验证集大小: 480\n", + "划分后的训练集大小: 7286, 验证集大小: 1463\n", "train_data最大日期: 2024-08-01, 训练天数5\n", "test_data最大日期: 2024-08-08\n", - "划分后的训练集大小: 2396, 验证集大小: 479\n", + "划分后的训练集大小: 7292, 验证集大小: 1463\n", "train_data最大日期: 2024-08-02, 训练天数5\n", "test_data最大日期: 2024-08-09\n", - "划分后的训练集大小: 2395, 验证集大小: 479\n", + "划分后的训练集大小: 7301, 验证集大小: 1465\n", "train_data最大日期: 2024-08-05, 训练天数5\n", "test_data最大日期: 2024-08-12\n", - "划分后的训练集大小: 2394, 验证集大小: 477\n", + "划分后的训练集大小: 7306, 验证集大小: 1463\n", "train_data最大日期: 2024-08-06, 训练天数5\n", "test_data最大日期: 2024-08-13\n", - "划分后的训练集大小: 2396, 验证集大小: 481\n", + "划分后的训练集大小: 7323, 验证集大小: 1469\n", "train_data最大日期: 2024-08-07, 训练天数5\n", "test_data最大日期: 2024-08-14\n", - "划分后的训练集大小: 2398, 验证集大小: 482\n", + "划分后的训练集大小: 7331, 验证集大小: 1471\n", "train_data最大日期: 2024-08-08, 训练天数5\n", "test_data最大日期: 2024-08-15\n", - "划分后的训练集大小: 2401, 验证集大小: 482\n", + "划分后的训练集大小: 7336, 验证集大小: 1468\n", "train_data最大日期: 2024-08-09, 训练天数5\n", "test_data最大日期: 2024-08-16\n", - "划分后的训练集大小: 2405, 验证集大小: 483\n", + "划分后的训练集大小: 7342, 验证集大小: 1471\n", "train_data最大日期: 2024-08-12, 训练天数5\n", "test_data最大日期: 2024-08-19\n", - "划分后的训练集大小: 2407, 验证集大小: 479\n", + "划分后的训练集大小: 7343, 验证集大小: 1464\n", "train_data最大日期: 2024-08-13, 训练天数5\n", "test_data最大日期: 2024-08-20\n", - "划分后的训练集大小: 2408, 验证集大小: 482\n", + "划分后的训练集大小: 7341, 验证集大小: 1467\n", "train_data最大日期: 2024-08-14, 训练天数5\n", "test_data最大日期: 2024-08-21\n", - "划分后的训练集大小: 2408, 验证集大小: 482\n", + "划分后的训练集大小: 7338, 验证集大小: 1468\n", "train_data最大日期: 2024-08-15, 训练天数5\n", "test_data最大日期: 2024-08-22\n", - "划分后的训练集大小: 2408, 验证集大小: 482\n", + "划分后的训练集大小: 7340, 验证集大小: 1470\n", "train_data最大日期: 2024-08-16, 训练天数5\n", "test_data最大日期: 2024-08-23\n", - "划分后的训练集大小: 2407, 验证集大小: 482\n", + "划分后的训练集大小: 7335, 验证集大小: 1466\n", "train_data最大日期: 2024-08-19, 训练天数5\n", "test_data最大日期: 2024-08-26\n", - "划分后的训练集大小: 2409, 验证集大小: 481\n", + "划分后的训练集大小: 7340, 验证集大小: 1469\n", "train_data最大日期: 2024-08-20, 训练天数5\n", "test_data最大日期: 2024-08-27\n", - "划分后的训练集大小: 2410, 验证集大小: 483\n", + "划分后的训练集大小: 7345, 验证集大小: 1472\n", "train_data最大日期: 2024-08-21, 训练天数5\n", "test_data最大日期: 2024-08-28\n", - "划分后的训练集大小: 2412, 验证集大小: 484\n", + "划分后的训练集大小: 7348, 验证集大小: 1471\n", "train_data最大日期: 2024-08-22, 训练天数5\n", "test_data最大日期: 2024-08-29\n", - "划分后的训练集大小: 2416, 验证集大小: 486\n", + "划分后的训练集大小: 7350, 验证集大小: 1472\n", "train_data最大日期: 2024-08-23, 训练天数5\n", "test_data最大日期: 2024-08-30\n", - "划分后的训练集大小: 2420, 验证集大小: 486\n", + "划分后的训练集大小: 7354, 验证集大小: 1470\n", "train_data最大日期: 2024-08-26, 训练天数5\n", "test_data最大日期: 2024-09-02\n", - "划分后的训练集大小: 2424, 验证集大小: 485\n", + "划分后的训练集大小: 7356, 验证集大小: 1471\n", "train_data最大日期: 2024-08-27, 训练天数5\n", "test_data最大日期: 2024-09-03\n", - "划分后的训练集大小: 2424, 验证集大小: 483\n", + "划分后的训练集大小: 7349, 验证集大小: 1465\n", "train_data最大日期: 2024-08-28, 训练天数5\n", "test_data最大日期: 2024-09-04\n", - "划分后的训练集大小: 2425, 验证集大小: 485\n", + "划分后的训练集大小: 7346, 验证集大小: 1468\n", "train_data最大日期: 2024-08-29, 训练天数5\n", "test_data最大日期: 2024-09-05\n", - "划分后的训练集大小: 2421, 验证集大小: 482\n", + "划分后的训练集大小: 7345, 验证集大小: 1471\n", "train_data最大日期: 2024-08-30, 训练天数5\n", "test_data最大日期: 2024-09-06\n", - "划分后的训练集大小: 2417, 验证集大小: 482\n", + "划分后的训练集大小: 7346, 验证集大小: 1471\n", "train_data最大日期: 2024-09-02, 训练天数5\n", "test_data最大日期: 2024-09-09\n", - "划分后的训练集大小: 2413, 验证集大小: 481\n", + "划分后的训练集大小: 7341, 验证集大小: 1466\n", "train_data最大日期: 2024-09-03, 训练天数5\n", "test_data最大日期: 2024-09-10\n", - "划分后的训练集大小: 2408, 验证集大小: 478\n", + "划分后的训练集大小: 7342, 验证集大小: 1466\n", "train_data最大日期: 2024-09-04, 训练天数5\n", "test_data最大日期: 2024-09-11\n", - "划分后的训练集大小: 2400, 验证集大小: 477\n", + "划分后的训练集大小: 7341, 验证集大小: 1467\n", "train_data最大日期: 2024-09-05, 训练天数5\n", "test_data最大日期: 2024-09-12\n", - "划分后的训练集大小: 2397, 验证集大小: 479\n", + "划分后的训练集大小: 7335, 验证集大小: 1465\n", "train_data最大日期: 2024-09-06, 训练天数5\n", "test_data最大日期: 2024-09-13\n", - "划分后的训练集大小: 2393, 验证集大小: 478\n", + "划分后的训练集大小: 7329, 验证集大小: 1465\n", "train_data最大日期: 2024-09-09, 训练天数5\n", "test_data最大日期: 2024-09-18\n", - "划分后的训练集大小: 2388, 验证集大小: 476\n", + "划分后的训练集大小: 7323, 验证集大小: 1460\n", "train_data最大日期: 2024-09-10, 训练天数5\n", "test_data最大日期: 2024-09-19\n", - "划分后的训练集大小: 2389, 验证集大小: 479\n", + "划分后的训练集大小: 7319, 验证集大小: 1462\n", "train_data最大日期: 2024-09-11, 训练天数5\n", "test_data最大日期: 2024-09-20\n", - "划分后的训练集大小: 2386, 验证集大小: 474\n", + "划分后的训练集大小: 7309, 验证集大小: 1457\n", "train_data最大日期: 2024-09-12, 训练天数5\n", "test_data最大日期: 2024-09-23\n", - "划分后的训练集大小: 2384, 验证集大小: 477\n", + "划分后的训练集大小: 7299, 验证集大小: 1455\n", "train_data最大日期: 2024-09-13, 训练天数5\n", "test_data最大日期: 2024-09-24\n", - "划分后的训练集大小: 2381, 验证集大小: 475\n", + "划分后的训练集大小: 7284, 验证集大小: 1450\n", "train_data最大日期: 2024-09-18, 训练天数5\n", "test_data最大日期: 2024-09-25\n", - "划分后的训练集大小: 2381, 验证集大小: 476\n", + "划分后的训练集大小: 7279, 验证集大小: 1455\n", "train_data最大日期: 2024-09-19, 训练天数5\n", "test_data最大日期: 2024-09-26\n", - "划分后的训练集大小: 2380, 验证集大小: 478\n", + "划分后的训练集大小: 7273, 验证集大小: 1456\n", "train_data最大日期: 2024-09-20, 训练天数5\n", "test_data最大日期: 2024-09-27\n", - "划分后的训练集大小: 2375, 验证集大小: 469\n", + "划分后的训练集大小: 7234, 验证集大小: 1418\n", "train_data最大日期: 2024-09-23, 训练天数5\n", "test_data最大日期: 2024-09-30\n", - "划分后的训练集大小: 2310, 验证集大小: 412\n", + "划分后的训练集大小: 6899, 验证集大小: 1120\n", "train_data最大日期: 2024-09-24, 训练天数5\n", "test_data最大日期: 2024-10-08\n", - "划分后的训练集大小: 2197, 验证集大小: 362\n", + "划分后的训练集大小: 6396, 验证集大小: 947\n", "train_data最大日期: 2024-09-25, 训练天数5\n", "test_data最大日期: 2024-10-09\n", - "划分后的训练集大小: 2173, 验证集大小: 452\n", + "划分后的训练集大小: 6316, 验证集大小: 1375\n", "train_data最大日期: 2024-09-26, 训练天数5\n", "test_data最大日期: 2024-10-10\n", - "划分后的训练集大小: 2150, 验证集大小: 455\n", + "划分后的训练集大小: 6254, 验证集大小: 1394\n", "train_data最大日期: 2024-09-27, 训练天数5\n", "test_data最大日期: 2024-10-11\n", - "划分后的训练集大小: 2144, 验证集大小: 463\n", + "划分后的训练集大小: 6248, 验证集大小: 1412\n", "train_data最大日期: 2024-09-30, 训练天数5\n", "test_data最大日期: 2024-10-14\n", - "划分后的训练集大小: 2190, 验证集大小: 458\n", + "划分后的训练集大小: 6461, 验证集大小: 1333\n", "train_data最大日期: 2024-10-08, 训练天数5\n", "test_data最大日期: 2024-10-15\n", - "划分后的训练集大小: 2219, 验证集大小: 391\n", + "划分后的训练集大小: 6615, 验证集大小: 1101\n", "train_data最大日期: 2024-10-09, 训练天数5\n", "test_data最大日期: 2024-10-16\n", - "划分后的训练集大小: 2246, 验证集大小: 479\n", + "划分后的训练集大小: 6699, 验证集大小: 1459\n", "train_data最大日期: 2024-10-10, 训练天数5\n", "test_data最大日期: 2024-10-17\n", - "划分后的训练集大小: 2268, 验证集大小: 477\n", + "划分后的训练集大小: 6763, 验证集大小: 1458\n", "train_data最大日期: 2024-10-11, 训练天数5\n", "test_data最大日期: 2024-10-18\n", - "划分后的训练集大小: 2280, 验证集大小: 475\n", + "划分后的训练集大小: 6804, 验证集大小: 1453\n", "train_data最大日期: 2024-10-14, 训练天数5\n", "test_data最大日期: 2024-10-21\n", - "划分后的训练集大小: 2298, 验证集大小: 476\n", + "划分后的训练集大小: 6921, 验证集大小: 1450\n", "train_data最大日期: 2024-10-15, 训练天数5\n", "test_data最大日期: 2024-10-22\n", - "划分后的训练集大小: 2381, 验证集大小: 474\n", + "划分后的训练集大小: 7256, 验证集大小: 1436\n", "train_data最大日期: 2024-10-16, 训练天数5\n", "test_data最大日期: 2024-10-23\n", - "划分后的训练集大小: 2382, 验证集大小: 480\n", + "划分后的训练集大小: 7241, 验证集大小: 1444\n", "train_data最大日期: 2024-10-17, 训练天数5\n", "test_data最大日期: 2024-10-24\n", - "划分后的训练集大小: 2377, 验证集大小: 472\n", + "划分后的训练集大小: 7209, 验证集大小: 1426\n", "train_data最大日期: 2024-10-18, 训练天数5\n", "test_data最大日期: 2024-10-25\n", - "划分后的训练集大小: 2370, 验证集大小: 468\n", + "划分后的训练集大小: 7175, 验证集大小: 1419\n", "train_data最大日期: 2024-10-21, 训练天数5\n", "test_data最大日期: 2024-10-28\n", - "划分后的训练集大小: 2351, 验证集大小: 457\n", + "划分后的训练集大小: 7110, 验证集大小: 1385\n", "train_data最大日期: 2024-10-22, 训练天数5\n", "test_data最大日期: 2024-10-29\n", - "划分后的训练集大小: 2347, 验证集大小: 470\n", + "划分后的训练集大小: 7089, 验证集大小: 1415\n", "train_data最大日期: 2024-10-23, 训练天数5\n", "test_data最大日期: 2024-10-30\n", - "划分后的训练集大小: 2336, 验证集大小: 469\n", + "划分后的训练集大小: 7054, 验证集大小: 1409\n", "train_data最大日期: 2024-10-24, 训练天数5\n", "test_data最大日期: 2024-10-31\n", - "划分后的训练集大小: 2334, 验证集大小: 470\n", + "划分后的训练集大小: 7031, 验证集大小: 1403\n", "train_data最大日期: 2024-10-25, 训练天数5\n", "test_data最大日期: 2024-11-01\n", - "划分后的训练集大小: 2341, 验证集大小: 475\n", + "划分后的训练集大小: 7050, 验证集大小: 1438\n", "train_data最大日期: 2024-10-28, 训练天数5\n", "test_data最大日期: 2024-11-04\n", - "划分后的训练集大小: 2360, 验证集大小: 476\n", + "划分后的训练集大小: 7107, 验证集大小: 1442\n", "train_data最大日期: 2024-10-29, 训练天数5\n", "test_data最大日期: 2024-11-05\n", - "划分后的训练集大小: 2357, 验证集大小: 467\n", + "划分后的训练集大小: 7104, 验证集大小: 1412\n", "train_data最大日期: 2024-10-30, 训练天数5\n", "test_data最大日期: 2024-11-06\n", - "划分后的训练集大小: 2362, 验证集大小: 474\n", + "划分后的训练集大小: 7126, 验证集大小: 1431\n", "train_data最大日期: 2024-10-31, 训练天数5\n", "test_data最大日期: 2024-11-07\n", - "划分后的训练集大小: 2368, 验证集大小: 476\n", + "划分后的训练集大小: 7157, 验证集大小: 1434\n", "train_data最大日期: 2024-11-01, 训练天数5\n", "test_data最大日期: 2024-11-08\n", - "划分后的训练集大小: 2366, 验证集大小: 473\n", + "划分后的训练集大小: 7147, 验证集大小: 1428\n", "train_data最大日期: 2024-11-04, 训练天数5\n", "test_data最大日期: 2024-11-11\n", - "划分后的训练集大小: 2366, 验证集大小: 476\n", + "划分后的训练集大小: 7130, 验证集大小: 1425\n", "train_data最大日期: 2024-11-05, 训练天数5\n", "test_data最大日期: 2024-11-12\n", - "划分后的训练集大小: 2378, 验证集大小: 479\n", + "划分后的训练集大小: 7172, 验证集大小: 1454\n", "train_data最大日期: 2024-11-06, 训练天数5\n", "test_data最大日期: 2024-11-13\n", - "划分后的训练集大小: 2380, 验证集大小: 476\n", + "划分后的训练集大小: 7186, 验证集大小: 1445\n", "train_data最大日期: 2024-11-07, 训练天数5\n", "test_data最大日期: 2024-11-14\n", - "划分后的训练集大小: 2382, 验证集大小: 478\n", + "划分后的训练集大小: 7204, 验证集大小: 1452\n", "train_data最大日期: 2024-11-08, 训练天数5\n", "test_data最大日期: 2024-11-15\n", - "划分后的训练集大小: 2386, 验证集大小: 477\n", + "划分后的训练集大小: 7226, 验证集大小: 1450\n", "train_data最大日期: 2024-11-11, 训练天数5\n", "test_data最大日期: 2024-11-18\n", - "划分后的训练集大小: 2387, 验证集大小: 477\n", + "划分后的训练集大小: 7235, 验证集大小: 1434\n", "train_data最大日期: 2024-11-12, 训练天数5\n", "test_data最大日期: 2024-11-19\n", - "划分后的训练集大小: 2389, 验证集大小: 481\n", + "划分后的训练集大小: 7234, 验证集大小: 1453\n", "train_data最大日期: 2024-11-13, 训练天数5\n", "test_data最大日期: 2024-11-20\n", - "划分后的训练集大小: 2393, 验证集大小: 480\n", + "划分后的训练集大小: 7247, 验证集大小: 1458\n", "train_data最大日期: 2024-11-14, 训练天数5\n", "test_data最大日期: 2024-11-21\n", - "划分后的训练集大小: 2394, 验证集大小: 479\n", + "划分后的训练集大小: 7241, 验证集大小: 1446\n", "train_data最大日期: 2024-11-15, 训练天数5\n", "test_data最大日期: 2024-11-22\n", - "划分后的训练集大小: 2395, 验证集大小: 478\n", + "划分后的训练集大小: 7234, 验证集大小: 1443\n", "train_data最大日期: 2024-11-18, 训练天数5\n", "test_data最大日期: 2024-11-25\n", - "划分后的训练集大小: 2382, 验证集大小: 464\n", + "划分后的训练集大小: 7227, 验证集大小: 1427\n", "train_data最大日期: 2024-11-19, 训练天数5\n", "test_data最大日期: 2024-11-26\n", - "划分后的训练集大小: 2375, 验证集大小: 474\n", + "划分后的训练集大小: 7222, 验证集大小: 1448\n", "train_data最大日期: 2024-11-20, 训练天数5\n", "test_data最大日期: 2024-11-27\n", - "划分后的训练集大小: 2370, 验证集大小: 475\n", + "划分后的训练集大小: 7214, 验证集大小: 1450\n", "train_data最大日期: 2024-11-21, 训练天数5\n", "test_data最大日期: 2024-11-28\n", - "划分后的训练集大小: 2367, 验证集大小: 476\n", + "划分后的训练集大小: 7210, 验证集大小: 1442\n", "train_data最大日期: 2024-11-22, 训练天数5\n", "test_data最大日期: 2024-11-29\n", - "划分后的训练集大小: 2361, 验证集大小: 472\n", + "划分后的训练集大小: 7200, 验证集大小: 1433\n", "train_data最大日期: 2024-11-25, 训练天数5\n", "test_data最大日期: 2024-12-02\n", - "划分后的训练集大小: 2374, 验证集大小: 477\n", + "划分后的训练集大小: 7215, 验证集大小: 1442\n", "train_data最大日期: 2024-11-26, 训练天数5\n", "test_data最大日期: 2024-12-03\n", - "划分后的训练集大小: 2374, 验证集大小: 474\n", + "划分后的训练集大小: 7196, 验证集大小: 1429\n", "train_data最大日期: 2024-11-27, 训练天数5\n", "test_data最大日期: 2024-12-04\n", - "划分后的训练集大小: 2373, 验证集大小: 474\n", + "划分后的训练集大小: 7185, 验证集大小: 1439\n", "train_data最大日期: 2024-11-28, 训练天数5\n", "test_data最大日期: 2024-12-05\n", - "划分后的训练集大小: 2371, 验证集大小: 474\n", + "划分后的训练集大小: 7178, 验证集大小: 1435\n", "train_data最大日期: 2024-11-29, 训练天数5\n", "test_data最大日期: 2024-12-06\n", - "划分后的训练集大小: 2373, 验证集大小: 474\n", + "划分后的训练集大小: 7186, 验证集大小: 1441\n", "train_data最大日期: 2024-12-02, 训练天数5\n", "test_data最大日期: 2024-12-09\n", - "划分后的训练集大小: 2375, 验证集大小: 479\n", + "划分后的训练集大小: 7196, 验证集大小: 1452\n", "train_data最大日期: 2024-12-03, 训练天数5\n", "test_data最大日期: 2024-12-10\n", - "划分后的训练集大小: 2382, 验证集大小: 481\n", + "划分后的训练集大小: 7214, 验证集大小: 1447\n", "train_data最大日期: 2024-12-04, 训练天数5\n", "test_data最大日期: 2024-12-11\n", - "划分后的训练集大小: 2381, 验证集大小: 473\n", + "划分后的训练集大小: 7199, 验证集大小: 1424\n", "train_data最大日期: 2024-12-05, 训练天数5\n", "test_data最大日期: 2024-12-12\n", - "划分后的训练集大小: 2383, 验证集大小: 476\n", + "划分后的训练集大小: 7198, 验证集大小: 1434\n", "train_data最大日期: 2024-12-06, 训练天数5\n", "test_data最大日期: 2024-12-13\n", - "划分后的训练集大小: 2380, 验证集大小: 471\n", + "划分后的训练集大小: 7194, 验证集大小: 1437\n", "train_data最大日期: 2024-12-09, 训练天数5\n", "test_data最大日期: 2024-12-16\n", - "划分后的训练集大小: 2375, 验证集大小: 474\n", + "划分后的训练集大小: 7175, 验证集大小: 1433\n", "train_data最大日期: 2024-12-10, 训练天数5\n", "test_data最大日期: 2024-12-17\n", - "划分后的训练集大小: 2375, 验证集大小: 481\n", + "划分后的训练集大小: 7184, 验证集大小: 1456\n", "train_data最大日期: 2024-12-11, 训练天数5\n", "test_data最大日期: 2024-12-18\n", - "划分后的训练集大小: 2385, 验证集大小: 483\n", + "划分后的训练集大小: 7210, 验证集大小: 1450\n", "train_data最大日期: 2024-12-12, 训练天数5\n", "test_data最大日期: 2024-12-19\n", - "划分后的训练集大小: 2394, 验证集大小: 485\n", + "划分后的训练集大小: 7215, 验证集大小: 1439\n", "train_data最大日期: 2024-12-13, 训练天数5\n", "test_data最大日期: 2024-12-20\n", - "划分后的训练集大小: 2406, 验证集大小: 483\n", + "划分后的训练集大小: 7222, 验证集大小: 1444\n", "train_data最大日期: 2024-12-16, 训练天数5\n", "test_data最大日期: 2024-12-23\n", - "划分后的训练集大小: 2399, 验证集大小: 467\n", + "划分后的训练集大小: 7167, 验证集大小: 1378\n", "train_data最大日期: 2024-12-17, 训练天数5\n", "test_data最大日期: 2024-12-24\n", - "划分后的训练集大小: 2400, 验证集大小: 482\n", + "划分后的训练集大小: 7153, 验证集大小: 1442\n", "train_data最大日期: 2024-12-18, 训练天数5\n", "test_data最大日期: 2024-12-25\n", - "划分后的训练集大小: 2386, 验证集大小: 469\n", + "划分后的训练集大小: 7117, 验证集大小: 1414\n", "train_data最大日期: 2024-12-19, 训练天数5\n", "test_data最大日期: 2024-12-26\n", - "划分后的训练集大小: 2376, 验证集大小: 475\n", + "划分后的训练集大小: 7117, 验证集大小: 1439\n", "train_data最大日期: 2024-12-20, 训练天数5\n", "test_data最大日期: 2024-12-27\n", - "划分后的训练集大小: 2374, 验证集大小: 481\n", + "划分后的训练集大小: 7128, 验证集大小: 1455\n", "train_data最大日期: 2024-12-23, 训练天数5\n", "test_data最大日期: 2024-12-30\n", - "划分后的训练集大小: 2394, 验证集大小: 487\n", + "划分后的训练集大小: 7212, 验证集大小: 1462\n", "train_data最大日期: 2024-12-24, 训练天数5\n", "test_data最大日期: 2024-12-31\n", - "划分后的训练集大小: 2396, 验证集大小: 484\n", + "划分后的训练集大小: 7224, 验证集大小: 1454\n", "train_data最大日期: 2024-12-25, 训练天数5\n", "test_data最大日期: 2025-01-02\n", - "划分后的训练集大小: 2412, 验证集大小: 485\n", + "划分后的训练集大小: 7269, 验证集大小: 1459\n", "train_data最大日期: 2024-12-26, 训练天数5\n", "test_data最大日期: 2025-01-03\n", - "划分后的训练集大小: 2418, 验证集大小: 481\n", + "划分后的训练集大小: 7258, 验证集大小: 1428\n", "train_data最大日期: 2024-12-27, 训练天数5\n", "test_data最大日期: 2025-01-06\n", - "划分后的训练集大小: 2414, 验证集大小: 477\n", + "划分后的训练集大小: 7207, 验证集大小: 1404\n", "train_data最大日期: 2024-12-30, 训练天数5\n", "test_data最大日期: 2025-01-07\n", - "划分后的训练集大小: 2406, 验证集大小: 479\n", + "划分后的训练集大小: 7188, 验证集大小: 1443\n", "train_data最大日期: 2024-12-31, 训练天数5\n", "test_data最大日期: 2025-01-08\n", - "划分后的训练集大小: 2400, 验证集大小: 478\n", + "划分后的训练集大小: 7183, 验证集大小: 1449\n", "train_data最大日期: 2025-01-02, 训练天数5\n", "test_data最大日期: 2025-01-09\n", - "划分后的训练集大小: 2398, 验证集大小: 483\n", + "划分后的训练集大小: 7180, 验证集大小: 1456\n", "train_data最大日期: 2025-01-03, 训练天数5\n", "test_data最大日期: 2025-01-10\n", - "划分后的训练集大小: 2398, 验证集大小: 481\n", + "划分后的训练集大小: 7213, 验证集大小: 1461\n", "train_data最大日期: 2025-01-06, 训练天数5\n", "test_data最大日期: 2025-01-13\n", - "划分后的训练集大小: 2400, 验证集大小: 479\n", + "划分后的训练集大小: 7263, 验证集大小: 1454\n", "train_data最大日期: 2025-01-07, 训练天数5\n", "test_data最大日期: 2025-01-14\n", - "划分后的训练集大小: 2400, 验证集大小: 479\n", + "划分后的训练集大小: 7278, 验证集大小: 1458\n", "train_data最大日期: 2025-01-08, 训练天数5\n", "test_data最大日期: 2025-01-15\n", - "划分后的训练集大小: 2406, 验证集大小: 484\n", + "划分后的训练集大小: 7293, 验证集大小: 1464\n", "train_data最大日期: 2025-01-09, 训练天数5\n", "test_data最大日期: 2025-01-16\n", - "划分后的训练集大小: 2404, 验证集大小: 481\n", + "划分后的训练集大小: 7298, 验证集大小: 1461\n", "train_data最大日期: 2025-01-10, 训练天数5\n", "test_data最大日期: 2025-01-17\n", - "划分后的训练集大小: 2400, 验证集大小: 477\n", + "划分后的训练集大小: 7293, 验证集大小: 1456\n", "train_data最大日期: 2025-01-13, 训练天数5\n", "test_data最大日期: 2025-01-20\n", - "划分后的训练集大小: 2399, 验证集大小: 478\n", + "划分后的训练集大小: 7302, 验证集大小: 1463\n", "train_data最大日期: 2025-01-14, 训练天数5\n", "test_data最大日期: 2025-01-21\n", - "划分后的训练集大小: 2400, 验证集大小: 480\n", + "划分后的训练集大小: 7306, 验证集大小: 1462\n", "train_data最大日期: 2025-01-15, 训练天数5\n", "test_data最大日期: 2025-01-22\n", - "划分后的训练集大小: 2390, 验证集大小: 474\n", + "划分后的训练集大小: 7293, 验证集大小: 1451\n", "train_data最大日期: 2025-01-16, 训练天数5\n", "test_data最大日期: 2025-01-23\n", - "划分后的训练集大小: 2377, 验证集大小: 468\n", + "划分后的训练集大小: 7270, 验证集大小: 1438\n", "train_data最大日期: 2025-01-17, 训练天数5\n", "test_data最大日期: 2025-01-24\n", - "划分后的训练集大小: 2373, 验证集大小: 473\n", + "划分后的训练集大小: 7266, 验证集大小: 1452\n", "train_data最大日期: 2025-01-20, 训练天数5\n", "test_data最大日期: 2025-01-27\n", - "划分后的训练集大小: 2371, 验证集大小: 476\n", + "划分后的训练集大小: 7262, 验证集大小: 1459\n", "train_data最大日期: 2025-01-21, 训练天数5\n", "test_data最大日期: 2025-02-05\n", - "划分后的训练集大小: 2374, 验证集大小: 483\n", + "划分后的训练集大小: 7261, 验证集大小: 1461\n", "train_data最大日期: 2025-01-22, 训练天数5\n", "test_data最大日期: 2025-02-06\n", - "划分后的训练集大小: 2385, 验证集大小: 485\n", + "划分后的训练集大小: 7281, 验证集大小: 1471\n", "train_data最大日期: 2025-01-23, 训练天数5\n", "test_data最大日期: 2025-02-07\n", - "划分后的训练集大小: 2399, 验证集大小: 482\n", + "划分后的训练集大小: 7307, 验证集大小: 1464\n", "train_data最大日期: 2025-01-24, 训练天数5\n", "test_data最大日期: 2025-02-10\n", - "划分后的训练集大小: 2404, 验证集大小: 478\n", + "划分后的训练集大小: 7311, 验证集大小: 1456\n", "train_data最大日期: 2025-01-27, 训练天数5\n", "test_data最大日期: 2025-02-11\n", - "划分后的训练集大小: 2407, 验证集大小: 479\n", + "划分后的训练集大小: 7301, 验证集大小: 1449\n", "train_data最大日期: 2025-02-05, 训练天数5\n", "test_data最大日期: 2025-02-12\n", - "划分后的训练集大小: 2407, 验证集大小: 483\n", + "划分后的训练集大小: 7294, 验证集大小: 1454\n", "train_data最大日期: 2025-02-06, 训练天数5\n", "test_data最大日期: 2025-02-13\n", - "划分后的训练集大小: 2407, 验证集大小: 485\n", + "划分后的训练集大小: 7284, 验证集大小: 1461\n", "train_data最大日期: 2025-02-07, 训练天数5\n", "test_data最大日期: 2025-02-14\n", - "划分后的训练集大小: 2412, 验证集大小: 487\n", + "划分后的训练集大小: 7289, 验证集大小: 1469\n", "train_data最大日期: 2025-02-10, 训练天数5\n", "test_data最大日期: 2025-02-17\n", - "划分后的训练集大小: 2421, 验证集大小: 487\n", + "划分后的训练集大小: 7302, 验证集大小: 1469\n", "train_data最大日期: 2025-02-11, 训练天数5\n", "test_data最大日期: 2025-02-18\n", - "划分后的训练集大小: 2426, 验证集大小: 484\n", + "划分后的训练集大小: 7317, 验证集大小: 1464\n", "train_data最大日期: 2025-02-12, 训练天数5\n", "test_data最大日期: 2025-02-19\n", - "划分后的训练集大小: 2423, 验证集大小: 480\n", + "划分后的训练集大小: 7327, 验证集大小: 1464\n", "train_data最大日期: 2025-02-13, 训练天数5\n", "test_data最大日期: 2025-02-20\n", - "划分后的训练集大小: 2421, 验证集大小: 483\n", + "划分后的训练集大小: 7331, 验证集大小: 1465\n", "train_data最大日期: 2025-02-14, 训练天数5\n", "test_data最大日期: 2025-02-21\n", - "划分后的训练集大小: 2416, 验证集大小: 482\n", + "划分后的训练集大小: 7322, 验证集大小: 1460\n", "train_data最大日期: 2025-02-17, 训练天数5\n", "test_data最大日期: 2025-02-24\n", - "划分后的训练集大小: 2413, 验证集大小: 484\n", + "划分后的训练集大小: 7317, 验证集大小: 1464\n", "train_data最大日期: 2025-02-18, 训练天数5\n", "test_data最大日期: 2025-02-25\n", - "划分后的训练集大小: 2410, 验证集大小: 481\n", + "划分后的训练集大小: 7310, 验证集大小: 1457\n", "train_data最大日期: 2025-02-19, 训练天数5\n", "test_data最大日期: 2025-02-26\n", - "划分后的训练集大小: 2411, 验证集大小: 481\n", + "划分后的训练集大小: 7302, 验证集大小: 1456\n", "train_data最大日期: 2025-02-20, 训练天数5\n", "test_data最大日期: 2025-02-27\n", - "划分后的训练集大小: 2404, 验证集大小: 476\n", + "划分后的训练集大小: 7288, 验证集大小: 1451\n", "train_data最大日期: 2025-02-21, 训练天数5\n", "test_data最大日期: 2025-02-28\n", - "划分后的训练集大小: 2406, 验证集大小: 484\n", + "划分后的训练集大小: 7287, 验证集大小: 1459\n", "train_data最大日期: 2025-02-24, 训练天数5\n", "test_data最大日期: 2025-03-03\n", - "划分后的训练集大小: 2406, 验证集大小: 484\n", + "划分后的训练集大小: 7289, 验证集大小: 1466\n", "train_data最大日期: 2025-02-25, 训练天数5\n", "test_data最大日期: 2025-03-04\n", - "划分后的训练集大小: 2407, 验证集大小: 482\n", + "划分后的训练集大小: 7299, 验证集大小: 1467\n", "train_data最大日期: 2025-02-26, 训练天数5\n", "test_data最大日期: 2025-03-05\n", - "划分后的训练集大小: 2407, 验证集大小: 481\n", + "划分后的训练集大小: 7304, 验证集大小: 1461\n", "train_data最大日期: 2025-02-27, 训练天数5\n", "test_data最大日期: 2025-03-06\n", - "划分后的训练集大小: 2412, 验证集大小: 481\n", + "划分后的训练集大小: 7314, 验证集大小: 1461\n", "train_data最大日期: 2025-02-28, 训练天数5\n", "test_data最大日期: 2025-03-07\n", - "划分后的训练集大小: 2410, 验证集大小: 482\n", + "划分后的训练集大小: 7312, 验证集大小: 1457\n", "train_data最大日期: 2025-03-03, 训练天数5\n", "test_data最大日期: 2025-03-10\n", - "划分后的训练集大小: 2408, 验证集大小: 482\n", + "划分后的训练集大小: 7300, 验证集大小: 1454\n", "train_data最大日期: 2025-03-04, 训练天数5\n", "test_data最大日期: 2025-03-11\n", - "划分后的训练集大小: 2405, 验证集大小: 479\n", + "划分后的训练集大小: 7294, 验证集大小: 1461\n", "train_data最大日期: 2025-03-05, 训练天数5\n", "test_data最大日期: 2025-03-12\n", - "划分后的训练集大小: 2403, 验证集大小: 479\n", + "划分后的训练集大小: 7290, 验证集大小: 1457\n", "train_data最大日期: 2025-03-06, 训练天数5\n", "test_data最大日期: 2025-03-13\n", - "划分后的训练集大小: 2404, 验证集大小: 482\n", + "划分后的训练集大小: 7289, 验证集大小: 1460\n", "train_data最大日期: 2025-03-07, 训练天数5\n", "test_data最大日期: 2025-03-14\n", - "划分后的训练集大小: 2405, 验证集大小: 483\n", + "划分后的训练集大小: 7298, 验证集大小: 1466\n", "train_data最大日期: 2025-03-10, 训练天数5\n", "test_data最大日期: 2025-03-17\n", - "划分后的训练集大小: 2404, 验证集大小: 481\n", + "划分后的训练集大小: 7304, 验证集大小: 1460\n", "train_data最大日期: 2025-03-11, 训练天数5\n", "test_data最大日期: 2025-03-18\n", - "划分后的训练集大小: 2406, 验证集大小: 481\n", + "划分后的训练集大小: 7305, 验证集大小: 1462\n", "train_data最大日期: 2025-03-12, 训练天数5\n", "test_data最大日期: 2025-03-19\n", - "划分后的训练集大小: 2404, 验证集大小: 477\n", + "划分后的训练集大小: 7306, 验证集大小: 1458\n", "train_data最大日期: 2025-03-13, 训练天数5\n", "test_data最大日期: 2025-03-20\n", - "划分后的训练集大小: 2401, 验证集大小: 479\n", + "划分后的训练集大小: 7294, 验证集大小: 1448\n", "train_data最大日期: 2025-03-14, 训练天数5\n", "test_data最大日期: 2025-03-21\n", - "划分后的训练集大小: 2396, 验证集大小: 478\n", + "划分后的训练集大小: 7277, 验证集大小: 1449\n", "train_data最大日期: 2025-03-17, 训练天数5\n", "test_data最大日期: 2025-03-24\n", - "划分后的训练集大小: 2397, 验证集大小: 482\n", + "划分后的训练集大小: 7272, 验证集大小: 1455\n", "train_data最大日期: 2025-03-18, 训练天数5\n", "test_data最大日期: 2025-03-25\n", - "划分后的训练集大小: 2397, 验证集大小: 481\n", + "划分后的训练集大小: 7253, 验证集大小: 1443\n", "train_data最大日期: 2025-03-19, 训练天数5\n", "test_data最大日期: 2025-03-26\n", - "划分后的训练集大小: 2402, 验证集大小: 482\n", + "划分后的训练集大小: 7248, 验证集大小: 1453\n", "train_data最大日期: 2025-03-20, 训练天数5\n", "test_data最大日期: 2025-03-27\n", - "划分后的训练集大小: 2403, 验证集大小: 480\n", + "划分后的训练集大小: 7241, 验证集大小: 1441\n", "train_data最大日期: 2025-03-21, 训练天数5\n", "test_data最大日期: 2025-03-28\n", - "划分后的训练集大小: 2403, 验证集大小: 478\n", + "划分后的训练集大小: 7238, 验证集大小: 1446\n", "train_data最大日期: 2025-03-24, 训练天数5\n", "test_data最大日期: 2025-03-31\n", - "划分后的训练集大小: 2403, 验证集大小: 482\n", + "划分后的训练集大小: 7237, 验证集大小: 1454\n", "train_data最大日期: 2025-03-25, 训练天数5\n", "test_data最大日期: 2025-04-01\n", - "划分后的训练集大小: 2404, 验证集大小: 482\n", + "划分后的训练集大小: 7252, 验证集大小: 1458\n", "train_data最大日期: 2025-03-26, 训练天数5\n", "test_data最大日期: 2025-04-02\n", - "划分后的训练集大小: 2407, 验证集大小: 485\n", + "划分后的训练集大小: 7261, 验证集大小: 1462\n", "train_data最大日期: 2025-03-27, 训练天数5\n", "test_data最大日期: 2025-04-03\n", - "划分后的训练集大小: 2413, 验证集大小: 486\n", + "划分后的训练集大小: 7281, 验证集大小: 1461\n", "train_data最大日期: 2025-03-28, 训练天数5\n", "test_data最大日期: 2025-04-07\n", - "划分后的训练集大小: 2417, 验证集大小: 482\n", + "划分后的训练集大小: 7274, 验证集大小: 1439\n", "train_data最大日期: 2025-03-31, 训练天数5\n", "test_data最大日期: 2025-04-08\n", - "划分后的训练集大小: 2373, 验证集大小: 438\n", + "划分后的训练集大小: 7083, 验证集大小: 1263\n", "train_data最大日期: 2025-04-01, 训练天数5\n", "test_data最大日期: 2025-04-09\n", - "划分后的训练集大小: 2349, 验证集大小: 458\n" + "划分后的训练集大小: 6969, 验证集大小: 1344\n" ] } ], @@ -3391,14 +4090,14 @@ "# qdf = qdf[qdf['trade_date'] >= '2022-01-01']\n", "\n", "final_predictions = rolling_train_predict(\n", - " pdf[(pdf['trade_date'] >= '2022-12-01') & (pdf['trade_date'] <= '2029-03-26')], 5, 1, feature_columns,\n", + " pdf[(pdf['trade_date'] >= '2022-01-01') & (pdf['trade_date'] <= '2029-03-26')], 5, 1, feature_columns,\n", " days=days, validation_days=0, filter_index=filter_index, params=light_params)\n", "final_predictions.to_csv('predictions_test.tsv', index=False)\n" ] }, { "cell_type": "code", - "execution_count": 144, + "execution_count": 63, "id": "0dc75517-c857-4f1d-8815-e807400a6d33", "metadata": { "ExecuteTime": { @@ -3456,7 +4155,7 @@ }, { "cell_type": "code", - "execution_count": 145, + "execution_count": 64, "id": "8299a6f461097f14", "metadata": { "ExecuteTime": { @@ -3478,7 +4177,7 @@ }, { "cell_type": "code", - "execution_count": 146, + "execution_count": 65, "id": "3f5079aa2c937c22", "metadata": { "ExecuteTime": { @@ -3501,7 +4200,7 @@ }, { "cell_type": "code", - "execution_count": 147, + "execution_count": 66, "id": "199b12e7e20e4e6a", "metadata": { "ExecuteTime": { diff --git a/main/train/catboost_info/catboost_training.json b/main/train/catboost_info/catboost_training.json index b4e25f8..84c5869 100644 --- a/main/train/catboost_info/catboost_training.json +++ b/main/train/catboost_info/catboost_training.json @@ -1,5004 +1,56 @@ { -"meta":{"test_sets":["test"],"test_metrics":[{"best_value":"Min","name":"Logloss"}],"learn_metrics":[{"best_value":"Min","name":"Logloss"}],"launch_mode":"Train","parameters":"","iteration_count":5000,"learn_sets":["learn"],"name":"experiment"}, +"meta":{"test_sets":["test"],"test_metrics":[{"best_value":"Max","name":"Precision"},{"best_value":"Min","name":"CrossEntropy"}],"learn_metrics":[{"best_value":"Max","name":"Precision"},{"best_value":"Min","name":"CrossEntropy"}],"launch_mode":"Train","parameters":"","iteration_count":500,"learn_sets":["learn"],"name":"experiment"}, "iterations":[ -{"learn":[0.6863319056],"iteration":0,"passed_time":0.009045906858,"remaining_time":45.22048838,"test":[0.6861052887]}, -{"learn":[0.6746464163],"iteration":1,"passed_time":0.01726818031,"remaining_time":43.1531826,"test":[0.6743600161]}, -{"learn":[0.6714135204],"iteration":2,"passed_time":0.03751901195,"remaining_time":62.49416756,"test":[0.6710211431]}, -{"learn":[0.6654025119],"iteration":3,"passed_time":0.04790668852,"remaining_time":59.83545396,"test":[0.6648334068]}, -{"learn":[0.6550456697],"iteration":4,"passed_time":0.05639761763,"remaining_time":56.34122001,"test":[0.6541856344]}, -{"learn":[0.6495618046],"iteration":5,"passed_time":0.06656880896,"remaining_time":55.40743866,"test":[0.6488011302]}, -{"learn":[0.6443816251],"iteration":6,"passed_time":0.07787554353,"remaining_time":55.54751269,"test":[0.6434835621]}, -{"learn":[0.6393367482],"iteration":7,"passed_time":0.08895888724,"remaining_time":55.51034564,"test":[0.6384988858]}, -{"learn":[0.6367666558],"iteration":8,"passed_time":0.102197345,"remaining_time":56.67410545,"test":[0.6359470921]}, -{"learn":[0.6282967176],"iteration":9,"passed_time":0.1102894093,"remaining_time":55.03441524,"test":[0.6275708523]}, -{"learn":[0.6203324055],"iteration":10,"passed_time":0.1188073071,"remaining_time":53.88451412,"test":[0.6193913675]}, -{"learn":[0.6181289413],"iteration":11,"passed_time":0.1306591505,"remaining_time":54.31065356,"test":[0.6171219209]}, -{"learn":[0.6140690906],"iteration":12,"passed_time":0.1403750633,"remaining_time":53.85003389,"test":[0.613084422]}, -{"learn":[0.6101612317],"iteration":13,"passed_time":0.1536624638,"remaining_time":54.72578891,"test":[0.6092213262]}, -{"learn":[0.6033519383],"iteration":14,"passed_time":0.1606154474,"remaining_time":53.37786701,"test":[0.6024870154]}, -{"learn":[0.5970112566],"iteration":15,"passed_time":0.1685976469,"remaining_time":52.518167,"test":[0.5959876065]}, -{"learn":[0.5936951526],"iteration":16,"passed_time":0.1817380558,"remaining_time":53.27063131,"test":[0.592715908]}, -{"learn":[0.5919957051],"iteration":17,"passed_time":0.1927152696,"remaining_time":53.33930405,"test":[0.5909668695]}, -{"learn":[0.5863674776],"iteration":18,"passed_time":0.2010480976,"remaining_time":52.70634601,"test":[0.585207929]}, -{"learn":[0.5848179955],"iteration":19,"passed_time":0.213677116,"remaining_time":53.20560189,"test":[0.5836811562]}, -{"learn":[0.5819472573],"iteration":20,"passed_time":0.2259615588,"remaining_time":53.57440957,"test":[0.5808259152]}, -{"learn":[0.5791733171],"iteration":21,"passed_time":0.2398580824,"remaining_time":54.27334245,"test":[0.5781049635]}, -{"learn":[0.5764731078],"iteration":22,"passed_time":0.2494760858,"remaining_time":53.98445561,"test":[0.5754473715]}, -{"learn":[0.5757696538],"iteration":23,"passed_time":0.2644498185,"remaining_time":54.82926236,"test":[0.5747250825]}, -{"learn":[0.5732078465],"iteration":24,"passed_time":0.2758456111,"remaining_time":54.89327662,"test":[0.5721040878]}, -{"learn":[0.5706889545],"iteration":25,"passed_time":0.2887502146,"remaining_time":55.24013721,"test":[0.569590143]}, -{"learn":[0.5694201506],"iteration":26,"passed_time":0.3054317045,"remaining_time":56.25599505,"test":[0.5682790198]}, -{"learn":[0.5670772711],"iteration":27,"passed_time":0.3166576308,"remaining_time":56.22934787,"test":[0.5659677904]}, -{"learn":[0.5648007912],"iteration":28,"passed_time":0.3264353887,"remaining_time":55.95552819,"test":[0.5636375471]}, -{"learn":[0.5625560805],"iteration":29,"passed_time":0.3377864993,"remaining_time":55.95996338,"test":[0.5614650772]}, -{"learn":[0.5603164363],"iteration":30,"passed_time":0.3483265771,"remaining_time":55.83337941,"test":[0.5593268801]}, -{"learn":[0.5592399169],"iteration":31,"passed_time":0.3596423589,"remaining_time":55.83447622,"test":[0.5582264592]}, -{"learn":[0.5571749738],"iteration":32,"passed_time":0.3712376656,"remaining_time":55.87689349,"test":[0.5562307768]}, -{"learn":[0.5551205808],"iteration":33,"passed_time":0.3805667424,"remaining_time":55.58513068,"test":[0.5542727048]}, -{"learn":[0.5532485183],"iteration":34,"passed_time":0.393262766,"remaining_time":55.78713238,"test":[0.5524353322]}, -{"learn":[0.5529965099],"iteration":35,"passed_time":0.4090690755,"remaining_time":56.4060803,"test":[0.5521891651]}, -{"learn":[0.551144713],"iteration":36,"passed_time":0.4184817117,"remaining_time":56.13310095,"test":[0.5503484547]}, -{"learn":[0.5493430436],"iteration":37,"passed_time":0.4284407689,"remaining_time":55.94534461,"test":[0.5486041846]}, -{"learn":[0.5475753489],"iteration":38,"passed_time":0.4374942984,"remaining_time":55.65151832,"test":[0.5468421523]}, -{"learn":[0.5458887165],"iteration":39,"passed_time":0.449741565,"remaining_time":55.76795406,"test":[0.5452386683]}, -{"learn":[0.5442331381],"iteration":40,"passed_time":0.4585131827,"remaining_time":55.45772861,"test":[0.5435912557]}, -{"learn":[0.5438234754],"iteration":41,"passed_time":0.4833268369,"remaining_time":57.05558231,"test":[0.5431712814]}, -{"learn":[0.5423470685],"iteration":42,"passed_time":0.5076181967,"remaining_time":58.51775352,"test":[0.5416659067]}, -{"learn":[0.5408106398],"iteration":43,"passed_time":0.5178368247,"remaining_time":58.32725689,"test":[0.5402145338]}, -{"learn":[0.5404284548],"iteration":44,"passed_time":0.5391230816,"remaining_time":59.36344155,"test":[0.5398402167]}, -{"learn":[0.5390064074],"iteration":45,"passed_time":0.5555773138,"remaining_time":59.83326115,"test":[0.5384712173]}, -{"learn":[0.5376043275],"iteration":46,"passed_time":0.565772384,"remaining_time":59.62277911,"test":[0.5371311263]}, -{"learn":[0.5369070128],"iteration":47,"passed_time":0.578892919,"remaining_time":59.72245281,"test":[0.5364143805]}, -{"learn":[0.5355806904],"iteration":48,"passed_time":0.5914974143,"remaining_time":59.7653816,"test":[0.5351482588]}, -{"learn":[0.5342982967],"iteration":49,"passed_time":0.6061481352,"remaining_time":60.00866538,"test":[0.5339118798]}, -{"learn":[0.5336524208],"iteration":50,"passed_time":0.6196813782,"remaining_time":60.13339492,"test":[0.5332699378]}, -{"learn":[0.5324246845],"iteration":51,"passed_time":0.6297194824,"remaining_time":59.92023075,"test":[0.5320975146]}, -{"learn":[0.532112535],"iteration":52,"passed_time":0.6556950563,"remaining_time":61.20232912,"test":[0.5317879281]}, -{"learn":[0.5315086208],"iteration":53,"passed_time":0.6711941261,"remaining_time":61.47641015,"test":[0.5312035643]}, -{"learn":[0.5303441846],"iteration":54,"passed_time":0.6813798614,"remaining_time":61.2622439,"test":[0.5300915205]}, -{"learn":[0.529215988],"iteration":55,"passed_time":0.704510059,"remaining_time":62.19817378,"test":[0.5290267433]}, -{"learn":[0.5286510553],"iteration":56,"passed_time":0.7193165897,"remaining_time":62.37862987,"test":[0.5284817781]}, -{"learn":[0.5276323524],"iteration":57,"passed_time":0.7358391638,"remaining_time":62.69857151,"test":[0.5274432865]}, -{"learn":[0.5258330076],"iteration":58,"passed_time":0.7556930191,"remaining_time":63.28608826,"test":[0.5256061523]}, -{"learn":[0.5253324478],"iteration":59,"passed_time":0.7704990239,"remaining_time":63.43775297,"test":[0.5251191228]}, -{"learn":[0.524365601],"iteration":60,"passed_time":0.7810764163,"remaining_time":63.24158066,"test":[0.5242018671]}, -{"learn":[0.5238870354],"iteration":61,"passed_time":0.8021233766,"remaining_time":63.8852457,"test":[0.5237296791]}, -{"learn":[0.5229702565],"iteration":62,"passed_time":0.8141561855,"remaining_time":63.80141409,"test":[0.5228649351]}, -{"learn":[0.5220944855],"iteration":63,"passed_time":0.8284241083,"remaining_time":63.89220935,"test":[0.5220193837]}, -{"learn":[0.5212760542],"iteration":64,"passed_time":0.8651045422,"remaining_time":65.6813987,"test":[0.5211784814]}, -{"learn":[0.5204511856],"iteration":65,"passed_time":0.8781953625,"remaining_time":65.65175634,"test":[0.5204109525]}, -{"learn":[0.5196508742],"iteration":66,"passed_time":0.8937646668,"remaining_time":65.80509106,"test":[0.5196581459]}, -{"learn":[0.5188702918],"iteration":67,"passed_time":0.9114889757,"remaining_time":66.10975924,"test":[0.51892334]}, -{"learn":[0.518487332],"iteration":68,"passed_time":0.9242062569,"remaining_time":66.04726164,"test":[0.5185553409]}, -{"learn":[0.5182865836],"iteration":69,"passed_time":0.9416504378,"remaining_time":66.31909512,"test":[0.5183632352]}, -{"learn":[0.5179097035],"iteration":70,"passed_time":0.9580501611,"remaining_time":66.51027104,"test":[0.5179789045]}, -{"learn":[0.517207084],"iteration":71,"passed_time":0.9721569374,"remaining_time":66.53874149,"test":[0.5172910074]}, -{"learn":[0.5170208195],"iteration":72,"passed_time":0.987561747,"remaining_time":66.6536538,"test":[0.5170997957]}, -{"learn":[0.5163317899],"iteration":73,"passed_time":1.000610455,"remaining_time":66.60820409,"test":[0.5164391379]}, -{"learn":[0.5161491613],"iteration":74,"passed_time":1.020258048,"remaining_time":66.99694515,"test":[0.5162684898]}, -{"learn":[0.5154723507],"iteration":75,"passed_time":1.037319128,"remaining_time":67.20736033,"test":[0.5156210046]}, -{"learn":[0.5153072458],"iteration":76,"passed_time":1.072078123,"remaining_time":68.54338441,"test":[0.5154632312]}, -{"learn":[0.5146507603],"iteration":77,"passed_time":1.083482231,"remaining_time":68.37050695,"test":[0.5148310048]}, -{"learn":[0.5140464289],"iteration":78,"passed_time":1.095494906,"remaining_time":68.23962575,"test":[0.5142572505]}, -{"learn":[0.5134396537],"iteration":79,"passed_time":1.10454925,"remaining_time":67.92977889,"test":[0.5136657341]}, -{"learn":[0.5128630384],"iteration":80,"passed_time":1.117967476,"remaining_time":67.89237054,"test":[0.5131060465]}, -{"learn":[0.5127128348],"iteration":81,"passed_time":1.137916239,"remaining_time":68.24722031,"test":[0.5129601344]}, -{"learn":[0.5121799693],"iteration":82,"passed_time":1.152363105,"remaining_time":68.26710105,"test":[0.5124644026]}, -{"learn":[0.511661707],"iteration":83,"passed_time":1.164848011,"remaining_time":68.17134315,"test":[0.5119830356]}, -{"learn":[0.5113931881],"iteration":84,"passed_time":1.178292041,"remaining_time":68.13300447,"test":[0.5117207752]}, -{"learn":[0.5108606206],"iteration":85,"passed_time":1.193347105,"remaining_time":68.18729851,"test":[0.5112189637]}, -{"learn":[0.5107277619],"iteration":86,"passed_time":1.216152922,"remaining_time":68.67769319,"test":[0.5110930787]}, -{"learn":[0.5105955588],"iteration":87,"passed_time":1.248343882,"remaining_time":69.68028576,"test":[0.5109636771]}, -{"learn":[0.5103445041],"iteration":88,"passed_time":1.262043362,"remaining_time":69.63926913,"test":[0.5107209074]}, -{"learn":[0.5101026285],"iteration":89,"passed_time":1.279721902,"remaining_time":69.8159393,"test":[0.5104983436]}, -{"learn":[0.5095970023],"iteration":90,"passed_time":1.288428576,"remaining_time":69.50435032,"test":[0.510032891]}, -{"learn":[0.5091182579],"iteration":91,"passed_time":1.298691839,"remaining_time":69.28238638,"test":[0.5095928896]}, -{"learn":[0.5088828195],"iteration":92,"passed_time":1.313548386,"remaining_time":69.30733258,"test":[0.5093747366]}, -{"learn":[0.5086695542],"iteration":93,"passed_time":1.335021383,"remaining_time":69.6767543,"test":[0.5091772069]}, -{"learn":[0.5082198968],"iteration":94,"passed_time":1.351552127,"remaining_time":69.78277034,"test":[0.5087631334]}, -{"learn":[0.5081071248],"iteration":95,"passed_time":1.377802863,"remaining_time":70.38276292,"test":[0.5086563219]}, -{"learn":[0.5080476394],"iteration":96,"passed_time":1.405369662,"remaining_time":71.0363655,"test":[0.5085980882]}, -{"learn":[0.5076298109],"iteration":97,"passed_time":1.416399593,"remaining_time":70.84888578,"test":[0.5082021346]}, -{"learn":[0.5074109426],"iteration":98,"passed_time":1.430380276,"remaining_time":70.81104781,"test":[0.5079899421]}, -{"learn":[0.5072070352],"iteration":99,"passed_time":1.448655296,"remaining_time":70.98410949,"test":[0.5077845445]}, -{"learn":[0.5071077934],"iteration":100,"passed_time":1.477146557,"remaining_time":71.64892062,"test":[0.5076948395]}, -{"learn":[0.5066896073],"iteration":101,"passed_time":1.48756307,"remaining_time":71.43219528,"test":[0.507296919]}, -{"learn":[0.506310641],"iteration":102,"passed_time":1.504692222,"remaining_time":71.53861951,"test":[0.506916701]}, -{"learn":[0.5059526556],"iteration":103,"passed_time":1.515434835,"remaining_time":71.34200916,"test":[0.5065873853]}, -{"learn":[0.5055950277],"iteration":104,"passed_time":1.53536511,"remaining_time":71.57725919,"test":[0.5062502019]}, -{"learn":[0.505503475],"iteration":105,"passed_time":1.549360808,"remaining_time":71.53369617,"test":[0.5061634772]}, -{"learn":[0.5053069585],"iteration":106,"passed_time":1.560333264,"remaining_time":71.35243608,"test":[0.5059745901]}, -{"learn":[0.5052574867],"iteration":107,"passed_time":1.583090759,"remaining_time":71.7081481,"test":[0.5059302442]}, -{"learn":[0.5051662916],"iteration":108,"passed_time":1.599433254,"remaining_time":71.76906464,"test":[0.5058471554]}, -{"learn":[0.5050759905],"iteration":109,"passed_time":1.616156714,"remaining_time":71.8455121,"test":[0.5057612651]}, -{"learn":[0.5047369594],"iteration":110,"passed_time":1.631663127,"remaining_time":71.86667594,"test":[0.5054527515]}, -{"learn":[0.5044177169],"iteration":111,"passed_time":1.650895527,"remaining_time":72.04979765,"test":[0.505156278]}, -{"learn":[0.5042372341],"iteration":112,"passed_time":1.663643344,"remaining_time":71.94889401,"test":[0.5049940938]}, -{"learn":[0.5040756459],"iteration":113,"passed_time":1.675907244,"remaining_time":71.82879642,"test":[0.5048360223]}, -{"learn":[0.5039881463],"iteration":114,"passed_time":1.697758008,"remaining_time":72.11780756,"test":[0.5047534699]}, -{"learn":[0.5039064283],"iteration":115,"passed_time":1.71623529,"remaining_time":72.25942375,"test":[0.5046803946]}, -{"learn":[0.5036249752],"iteration":116,"passed_time":1.728637874,"remaining_time":72.14477553,"test":[0.5044246907]}, -{"learn":[0.5035439129],"iteration":117,"passed_time":1.745435873,"remaining_time":72.21371129,"test":[0.5043525095]}, -{"learn":[0.5032693144],"iteration":118,"passed_time":1.755604622,"remaining_time":72.00929547,"test":[0.5040934081]}, -{"learn":[0.5031213757],"iteration":119,"passed_time":1.772291714,"remaining_time":72.07319637,"test":[0.5039513106]}, -{"learn":[0.5030503269],"iteration":120,"passed_time":1.793423068,"remaining_time":72.31496819,"test":[0.5038821693]}, -{"learn":[0.5028955933],"iteration":121,"passed_time":1.806237263,"remaining_time":72.21988009,"test":[0.5037341709]}, -{"learn":[0.5027516481],"iteration":122,"passed_time":1.833837509,"remaining_time":72.71240269,"test":[0.5035891529]}, -{"learn":[0.5026203987],"iteration":123,"passed_time":1.850145429,"remaining_time":72.75249282,"test":[0.5034659501]}, -{"learn":[0.5024843809],"iteration":124,"passed_time":1.87013637,"remaining_time":72.93531844,"test":[0.5033391114]}, -{"learn":[0.5024173257],"iteration":125,"passed_time":1.901347199,"remaining_time":73.54893849,"test":[0.503279924]}, -{"learn":[0.50234884],"iteration":126,"passed_time":1.916607155,"remaining_time":73.54036744,"test":[0.5032169219]}, -{"learn":[0.5022772548],"iteration":127,"passed_time":1.93178506,"remaining_time":73.52856886,"test":[0.5031536814]}, -{"learn":[0.5021438596],"iteration":128,"passed_time":1.94671592,"remaining_time":73.5073895,"test":[0.5030316707]}, -{"learn":[0.5020679233],"iteration":129,"passed_time":1.972920905,"remaining_time":73.90865237,"test":[0.502961218]}, -{"learn":[0.5020014045],"iteration":130,"passed_time":1.999951489,"remaining_time":74.33407482,"test":[0.5028993484]}, -{"learn":[0.5018748043],"iteration":131,"passed_time":2.015853265,"remaining_time":74.34222494,"test":[0.50278604]}, -{"learn":[0.5017527936],"iteration":132,"passed_time":2.036945453,"remaining_time":74.53995126,"test":[0.5026774999]}, -{"learn":[0.5016272662],"iteration":133,"passed_time":2.052325156,"remaining_time":74.52697171,"test":[0.5025590059]}, -{"learn":[0.5015503166],"iteration":134,"passed_time":2.067939693,"remaining_time":74.52241931,"test":[0.5024892089]}, -{"learn":[0.5014282463],"iteration":135,"passed_time":2.098940981,"remaining_time":75.06800683,"test":[0.5023759601]}, -{"learn":[0.5011702179],"iteration":136,"passed_time":2.107697238,"remaining_time":74.81555964,"test":[0.5021478531]}, -{"learn":[0.5011679529],"iteration":137,"passed_time":2.146208144,"remaining_time":75.61495649,"test":[0.502145767]}, -{"learn":[0.5009546875],"iteration":138,"passed_time":2.156720435,"remaining_time":75.42315131,"test":[0.5019521711]}, -{"learn":[0.5008937119],"iteration":139,"passed_time":2.183761389,"remaining_time":75.80771679,"test":[0.5018984077]}, -{"learn":[0.5007730722],"iteration":140,"passed_time":2.21333197,"remaining_time":76.27361731,"test":[0.5017865298]}, -{"learn":[0.5007432102],"iteration":141,"passed_time":2.23550653,"remaining_time":76.47951214,"test":[0.5017575023]}, -{"learn":[0.5006886124],"iteration":142,"passed_time":2.253643794,"remaining_time":76.54509025,"test":[0.5017072556]}, -{"learn":[0.5006811618],"iteration":143,"passed_time":2.288310069,"remaining_time":77.16690064,"test":[0.5017002223]}, -{"learn":[0.5006771683],"iteration":144,"passed_time":2.325001214,"remaining_time":77.84745445,"test":[0.5016967652]}, -{"learn":[0.5006639957],"iteration":145,"passed_time":2.359681722,"remaining_time":78.45133614,"test":[0.5016850827]}, -{"learn":[0.5004658698],"iteration":146,"passed_time":2.370863828,"remaining_time":78.27076299,"test":[0.5015010832]}, -{"learn":[0.5003433823],"iteration":147,"passed_time":2.383565925,"remaining_time":78.14230991,"test":[0.5013890861]}, -{"learn":[0.5002898574],"iteration":148,"passed_time":2.421212153,"remaining_time":78.82751783,"test":[0.5013409255]}, -{"learn":[0.5001757741],"iteration":149,"passed_time":2.435108508,"remaining_time":78.73517509,"test":[0.5012378691]}, -{"learn":[0.5000739098],"iteration":150,"passed_time":2.448730862,"remaining_time":78.6350725,"test":[0.5011476277]}, -{"learn":[0.5000602007],"iteration":151,"passed_time":2.48155769,"remaining_time":79.14862947,"test":[0.5011351107]}, -{"learn":[0.4999499619],"iteration":152,"passed_time":2.502420042,"remaining_time":79.27601271,"test":[0.5010340213]}, -{"learn":[0.4998520017],"iteration":153,"passed_time":2.515082986,"remaining_time":79.14345551,"test":[0.5009437202]}, -{"learn":[0.4997453988],"iteration":154,"passed_time":2.530150053,"remaining_time":79.08759358,"test":[0.5008438825]}, -{"learn":[0.499689579],"iteration":155,"passed_time":2.545728475,"remaining_time":79.0481329,"test":[0.5007910131]}, -{"learn":[0.4995792211],"iteration":156,"passed_time":2.572308665,"remaining_time":79.34834945,"test":[0.5006897449]}, -{"learn":[0.4995249212],"iteration":157,"passed_time":2.587603192,"remaining_time":79.29857376,"test":[0.5006380676]}, -{"learn":[0.4994656742],"iteration":158,"passed_time":2.603341082,"remaining_time":79.26273069,"test":[0.5005837082]}, -{"learn":[0.4994621874],"iteration":159,"passed_time":2.640339329,"remaining_time":79.87026471,"test":[0.5005804896]}, -{"learn":[0.499378264],"iteration":160,"passed_time":2.657797671,"remaining_time":79.88250268,"test":[0.5005035996]}, -{"learn":[0.4993743599],"iteration":161,"passed_time":2.694376018,"remaining_time":80.46537763,"test":[0.5005005597]}, -{"learn":[0.4993709029],"iteration":162,"passed_time":2.730727755,"remaining_time":81.03392731,"test":[0.5004976391]}, -{"learn":[0.4993678034],"iteration":163,"passed_time":2.767238338,"remaining_time":81.59978415,"test":[0.5004948377]}, -{"learn":[0.49927786],"iteration":164,"passed_time":2.78105378,"remaining_time":81.49330318,"test":[0.5004137158]}, -{"learn":[0.4992254377],"iteration":165,"passed_time":2.798318553,"remaining_time":81.48838485,"test":[0.5003654956]}, -{"learn":[0.4992223681],"iteration":166,"passed_time":2.836742751,"remaining_time":82.09567493,"test":[0.5003629326]}, -{"learn":[0.4992173315],"iteration":167,"passed_time":2.872402024,"remaining_time":82.61575346,"test":[0.5003586411]}, -{"learn":[0.4992145301],"iteration":168,"passed_time":2.908982323,"remaining_time":83.15558343,"test":[0.5003558993]}, -{"learn":[0.4992130996],"iteration":169,"passed_time":2.947848471,"remaining_time":83.75357715,"test":[0.5003545284]}, -{"learn":[0.4991566838],"iteration":170,"passed_time":2.96266033,"remaining_time":83.66483469,"test":[0.500302732]}, -{"learn":[0.4991008044],"iteration":171,"passed_time":2.990313294,"remaining_time":83.93739874,"test":[0.5002501607]}, -{"learn":[0.4990954698],"iteration":172,"passed_time":3.024789542,"remaining_time":84.39687352,"test":[0.5002449751]}, -{"learn":[0.49907434],"iteration":173,"passed_time":3.056779756,"remaining_time":84.78171899,"test":[0.5002244115]}, -{"learn":[0.4990627171],"iteration":174,"passed_time":3.08981889,"remaining_time":85.19072081,"test":[0.5002135038]}, -{"learn":[0.4990564586],"iteration":175,"passed_time":3.123389278,"remaining_time":85.60926067,"test":[0.5002083182]}, -{"learn":[0.4990507961],"iteration":176,"passed_time":3.157790922,"remaining_time":86.04534247,"test":[0.500203371]}, -{"learn":[0.49904418],"iteration":177,"passed_time":3.193960139,"remaining_time":86.5240213,"test":[0.5001974702]}, -{"learn":[0.4990413488],"iteration":178,"passed_time":3.230941166,"remaining_time":87.01881208,"test":[0.500195086]}, -{"learn":[0.4990353287],"iteration":179,"passed_time":3.266560894,"remaining_time":87.47124172,"test":[0.5001891851]}, -{"learn":[0.4990299047],"iteration":180,"passed_time":3.301264659,"remaining_time":87.89389167,"test":[0.5001838803]}, -{"learn":[0.4989496471],"iteration":181,"passed_time":3.332687357,"remaining_time":88.22465762,"test":[0.5001099706]}, -{"learn":[0.4989442529],"iteration":182,"passed_time":3.369755686,"remaining_time":88.70007179,"test":[0.5001051426]}, -{"learn":[0.4989383222],"iteration":183,"passed_time":3.40545162,"remaining_time":89.13399458,"test":[0.5000992417]}, -{"learn":[0.4989352526],"iteration":184,"passed_time":3.442609756,"remaining_time":89.60089716,"test":[0.5000965595]}, -{"learn":[0.4989276828],"iteration":185,"passed_time":3.478488028,"remaining_time":90.02925466,"test":[0.5000902414]}, -{"learn":[0.4989216329],"iteration":186,"passed_time":3.51470251,"remaining_time":90.46130043,"test":[0.500085175]}, -{"learn":[0.4989200832],"iteration":187,"passed_time":3.553722171,"remaining_time":90.96016536,"test":[0.5000839829]}, -{"learn":[0.4988994004],"iteration":188,"passed_time":3.587129916,"remaining_time":91.31048692,"test":[0.5000645518]}, -{"learn":[0.4988967182],"iteration":189,"passed_time":3.624164625,"remaining_time":91.74858868,"test":[0.500062108]}, -{"learn":[0.4988905789],"iteration":190,"passed_time":3.659872972,"remaining_time":92.14832002,"test":[0.5000562668]}, -{"learn":[0.4987948836],"iteration":191,"passed_time":3.681049683,"remaining_time":92.17961914,"test":[0.4999675751]}, -{"learn":[0.4987855257],"iteration":192,"passed_time":3.714294,"remaining_time":92.51093915,"test":[0.4999595881]}, -{"learn":[0.498783678],"iteration":193,"passed_time":3.751676681,"remaining_time":92.94102128,"test":[0.4999580979]}, -{"learn":[0.4987823667],"iteration":194,"passed_time":3.790123374,"remaining_time":93.39252723,"test":[0.4999566972]}, -{"learn":[0.4987795652],"iteration":195,"passed_time":3.825726134,"remaining_time":93.76932831,"test":[0.499954313]}, -{"learn":[0.4987739624],"iteration":196,"passed_time":3.86092174,"remaining_time":94.13201584,"test":[0.4999490678]}, -{"learn":[0.4987724723],"iteration":197,"passed_time":3.899571292,"remaining_time":94.57445124,"test":[0.4999477267]}, -{"learn":[0.4987698497],"iteration":198,"passed_time":3.935901988,"remaining_time":94.95610775,"test":[0.4999453127]}, -{"learn":[0.4987647535],"iteration":199,"passed_time":3.973961909,"remaining_time":95.37508582,"test":[0.4999409914]}, -{"learn":[0.4987556638],"iteration":200,"passed_time":4.006701093,"remaining_time":95.66248032,"test":[0.499932915]}, -{"learn":[0.4987495245],"iteration":201,"passed_time":4.04196641,"remaining_time":96.00670711,"test":[0.4999271035]}, -{"learn":[0.4987429382],"iteration":202,"passed_time":4.076557807,"remaining_time":96.33126994,"test":[0.4999213219]}, -{"learn":[0.4987189771],"iteration":203,"passed_time":4.109945899,"remaining_time":96.62402222,"test":[0.4998993576]}, -{"learn":[0.4987161757],"iteration":204,"passed_time":4.145878974,"remaining_time":96.9731204,"test":[0.499897182]}, -{"learn":[0.4987033309],"iteration":205,"passed_time":4.179290359,"remaining_time":97.25979604,"test":[0.4998852313]}, -{"learn":[0.4986981453],"iteration":206,"passed_time":4.214404408,"remaining_time":97.58280351,"test":[0.4998806417]}, -{"learn":[0.4986965062],"iteration":207,"passed_time":4.252050622,"remaining_time":97.96070471,"test":[0.4998791814]}, -{"learn":[0.4986910524],"iteration":208,"passed_time":4.286967573,"remaining_time":98.27206527,"test":[0.4998748303]}, -{"learn":[0.4986521603],"iteration":209,"passed_time":4.317347051,"remaining_time":98.47663035,"test":[0.4998385012]}, -{"learn":[0.4986418785],"iteration":210,"passed_time":4.350223995,"remaining_time":98.73565267,"test":[0.4998287559]}, -{"learn":[0.4986402394],"iteration":211,"passed_time":4.387755491,"remaining_time":99.09704383,"test":[0.4998273254]}, -{"learn":[0.4985870423],"iteration":212,"passed_time":4.418424973,"remaining_time":99.3004711,"test":[0.4997788072]}, -{"learn":[0.4985841514],"iteration":213,"passed_time":4.453719631,"remaining_time":99.60515025,"test":[0.4997758568]}, -{"learn":[0.4985826017],"iteration":214,"passed_time":4.492278308,"remaining_time":99.97931026,"test":[0.4997746349]}, -{"learn":[0.4985793831],"iteration":215,"passed_time":4.529106829,"remaining_time":100.311329,"test":[0.4997720421]}, -{"learn":[0.4985767307],"iteration":216,"passed_time":4.565081314,"remaining_time":100.6211241,"test":[0.4997698963]}, -{"learn":[0.4985714258],"iteration":217,"passed_time":4.601161475,"remaining_time":100.930065,"test":[0.4997651577]}, -{"learn":[0.498565972],"iteration":218,"passed_time":4.63510174,"remaining_time":101.1891389,"test":[0.4997605682]}, -{"learn":[0.4985425176],"iteration":219,"passed_time":4.667554659,"remaining_time":101.4132331,"test":[0.4997393191]}, -{"learn":[0.4985390903],"iteration":220,"passed_time":4.704907166,"remaining_time":101.7409563,"test":[0.4997361005]}, -{"learn":[0.49853763],"iteration":221,"passed_time":4.74281666,"remaining_time":102.0773784,"test":[0.4997347892]}, -{"learn":[0.4985321762],"iteration":222,"passed_time":4.7774803,"remaining_time":102.3409121,"test":[0.4997301996]}, -{"learn":[0.4985293748],"iteration":223,"passed_time":4.813866905,"remaining_time":102.6385194,"test":[0.4997277558]}, -{"learn":[0.4985060694],"iteration":224,"passed_time":4.846966657,"remaining_time":102.8634035,"test":[0.4997065962]}, -{"learn":[0.498416871],"iteration":225,"passed_time":4.880190962,"remaining_time":103.0886356,"test":[0.499627024]}, -{"learn":[0.4984138014],"iteration":226,"passed_time":4.918414666,"remaining_time":103.4167101,"test":[0.4996247888]}, -{"learn":[0.4984113576],"iteration":227,"passed_time":4.954553798,"remaining_time":103.6979418,"test":[0.4996222556]}, -{"learn":[0.4983705284],"iteration":228,"passed_time":4.985881338,"remaining_time":103.8761566,"test":[0.4995842577]}, -{"learn":[0.4983645381],"iteration":229,"passed_time":5.019896845,"remaining_time":104.1082954,"test":[0.4995788634]}, -{"learn":[0.4983524384],"iteration":230,"passed_time":5.052814724,"remaining_time":104.3154693,"test":[0.4995679856]}, -{"learn":[0.4983429911],"iteration":231,"passed_time":5.0881889,"remaining_time":104.5710546,"test":[0.4995595813]}, -{"learn":[0.4983403387],"iteration":232,"passed_time":5.124788893,"remaining_time":104.8492217,"test":[0.4995572866]}, -{"learn":[0.49833712],"iteration":233,"passed_time":5.160309294,"remaining_time":105.1027098,"test":[0.4995544553]}, -{"learn":[0.4982506039],"iteration":234,"passed_time":5.191337243,"remaining_time":105.2626466,"test":[0.4994786084]}, -{"learn":[0.4982476237],"iteration":235,"passed_time":5.227241985,"remaining_time":105.5194102,"test":[0.4994761944]}, -{"learn":[0.4982452991],"iteration":236,"passed_time":5.263578454,"remaining_time":105.7823805,"test":[0.4994740189]}, -{"learn":[0.4982439282],"iteration":237,"passed_time":5.302586248,"remaining_time":106.0962845,"test":[0.4994728864]}, -{"learn":[0.4982410075],"iteration":238,"passed_time":5.338808553,"remaining_time":106.3517469,"test":[0.4994704128]}, -{"learn":[0.4982385041],"iteration":239,"passed_time":5.375106121,"remaining_time":106.6062714,"test":[0.4994683266]}, -{"learn":[0.4982292654],"iteration":240,"passed_time":5.408219516,"remaining_time":106.7955049,"test":[0.4994595349]}, -{"learn":[0.4982266726],"iteration":241,"passed_time":5.445065199,"remaining_time":107.0562819,"test":[0.499457121]}, -{"learn":[0.4982198181],"iteration":242,"passed_time":5.479509424,"remaining_time":107.2675981,"test":[0.4994512499]}, -{"learn":[0.4982087614],"iteration":243,"passed_time":5.51438563,"remaining_time":107.4853199,"test":[0.4994410575]}, -{"learn":[0.4981828632],"iteration":244,"passed_time":5.546310659,"remaining_time":107.6437028,"test":[0.4994173051]}, -{"learn":[0.4981814923],"iteration":245,"passed_time":5.585416146,"remaining_time":107.9393023,"test":[0.4994161428]}, -{"learn":[0.4981699886],"iteration":246,"passed_time":5.618382423,"remaining_time":108.1140553,"test":[0.4994054139]}, -{"learn":[0.498164952],"iteration":247,"passed_time":5.653337925,"remaining_time":108.3252493,"test":[0.4994009138]}, -{"learn":[0.4981603327],"iteration":248,"passed_time":5.689302719,"remaining_time":108.5537238,"test":[0.4993968607]}, -{"learn":[0.4981560709],"iteration":249,"passed_time":5.724574459,"remaining_time":108.7669147,"test":[0.4993925393]}, -{"learn":[0.498153806],"iteration":250,"passed_time":5.761170311,"remaining_time":109.0031785,"test":[0.4993904532]}, -{"learn":[0.4981445076],"iteration":251,"passed_time":5.795075579,"remaining_time":109.1865827,"test":[0.4993819297]}, -{"learn":[0.4981399181],"iteration":252,"passed_time":5.830009086,"remaining_time":109.3875618,"test":[0.4993779064]}, -{"learn":[0.4981348517],"iteration":253,"passed_time":5.865629118,"remaining_time":109.599511,"test":[0.4993733764]}, -{"learn":[0.4981333616],"iteration":254,"passed_time":5.903284245,"remaining_time":109.8473872,"test":[0.4993721545]}, -{"learn":[0.4981164934],"iteration":255,"passed_time":5.936048854,"remaining_time":110.0024053,"test":[0.4993561507]}, -{"learn":[0.4981142881],"iteration":256,"passed_time":5.974295499,"remaining_time":110.2571344,"test":[0.4993542434]}, -{"learn":[0.4981113376],"iteration":257,"passed_time":6.010099323,"remaining_time":110.4646938,"test":[0.4993516804]}, -{"learn":[0.4981052282],"iteration":258,"passed_time":6.045621792,"remaining_time":110.6652236,"test":[0.4993463457]}, -{"learn":[0.4981036188],"iteration":259,"passed_time":6.084180034,"remaining_time":110.9192822,"test":[0.4993448258]}, -{"learn":[0.4980181458],"iteration":260,"passed_time":6.116280088,"remaining_time":111.0538365,"test":[0.4992679954]}, -{"learn":[0.4980132582],"iteration":261,"passed_time":6.151895261,"remaining_time":111.2506861,"test":[0.4992632569]}, -{"learn":[0.4980118873],"iteration":262,"passed_time":6.191518527,"remaining_time":111.5179592,"test":[0.4992621244]}, -{"learn":[0.4980103972],"iteration":263,"passed_time":6.229740598,"remaining_time":111.7577707,"test":[0.4992607535]}, -{"learn":[0.498000622],"iteration":264,"passed_time":6.2649494,"remaining_time":111.941643,"test":[0.499252379]}, -{"learn":[0.4979993703],"iteration":265,"passed_time":6.302956707,"remaining_time":112.1736731,"test":[0.4992510677]}, -{"learn":[0.4979943337],"iteration":266,"passed_time":6.337184062,"remaining_time":112.3366748,"test":[0.4992465974]}, -{"learn":[0.4979897442],"iteration":267,"passed_time":6.373615495,"remaining_time":112.5371214,"test":[0.4992427231]}, -{"learn":[0.4979805651],"iteration":268,"passed_time":6.408915193,"remaining_time":112.7159025,"test":[0.4992345572]}, -{"learn":[0.4979773464],"iteration":269,"passed_time":6.445893943,"remaining_time":112.9225124,"test":[0.4992324711]}, -{"learn":[0.4979729655],"iteration":270,"passed_time":6.482568097,"remaining_time":113.1220093,"test":[0.4992279411]}, -{"learn":[0.4979685547],"iteration":271,"passed_time":6.51855948,"remaining_time":113.3079015,"test":[0.4992239774]}, -{"learn":[0.497967303],"iteration":272,"passed_time":6.557398949,"remaining_time":113.5414829,"test":[0.4992228151]}, -{"learn":[0.4979647698],"iteration":273,"passed_time":6.593261028,"remaining_time":113.7217212,"test":[0.4992203713]}, -{"learn":[0.4979621472],"iteration":274,"passed_time":6.630857291,"remaining_time":113.9301844,"test":[0.4992178679]}, -{"learn":[0.4979391697],"iteration":275,"passed_time":6.663513819,"remaining_time":114.0523162,"test":[0.4991967083]}, -{"learn":[0.4979370537],"iteration":276,"passed_time":6.700641252,"remaining_time":114.2495619,"test":[0.4991943539]}, -{"learn":[0.4979355338],"iteration":277,"passed_time":6.739106149,"remaining_time":114.467839,"test":[0.4991930426]}, -{"learn":[0.497930825],"iteration":278,"passed_time":6.776072879,"remaining_time":114.658925,"test":[0.4991889895]}, -{"learn":[0.4979284706],"iteration":279,"passed_time":6.814523232,"remaining_time":114.8733916,"test":[0.4991869629]}, -{"learn":[0.4979247453],"iteration":280,"passed_time":6.849510267,"remaining_time":115.0278966,"test":[0.4991835059]}, -{"learn":[0.4979223015],"iteration":281,"passed_time":6.886876703,"remaining_time":115.2208663,"test":[0.4991813303]}, -{"learn":[0.4979187551],"iteration":282,"passed_time":6.923665612,"remaining_time":115.402582,"test":[0.4991786779]}, -{"learn":[0.497915745],"iteration":283,"passed_time":6.960018705,"remaining_time":115.5755219,"test":[0.4991762341]}, -{"learn":[0.4979142549],"iteration":284,"passed_time":6.998193247,"remaining_time":115.7771269,"test":[0.4991749824]}, -{"learn":[0.4979132118],"iteration":285,"passed_time":7.036606712,"remaining_time":115.9809932,"test":[0.4991737605]}, -{"learn":[0.4978962543],"iteration":286,"passed_time":7.069627355,"remaining_time":116.0946123,"test":[0.4991573096]}, -{"learn":[0.4978929463],"iteration":287,"passed_time":7.105887378,"remaining_time":116.2602129,"test":[0.4991545976]}, -{"learn":[0.4978915455],"iteration":288,"passed_time":7.144845089,"remaining_time":116.4683917,"test":[0.4991534949]}, -{"learn":[0.4978891018],"iteration":289,"passed_time":7.181417032,"remaining_time":116.636118,"test":[0.4991511704]}, -{"learn":[0.4978877309],"iteration":290,"passed_time":7.22084058,"remaining_time":116.8485852,"test":[0.4991500081]}, -{"learn":[0.4978789392],"iteration":291,"passed_time":7.256043613,"remaining_time":116.9912785,"test":[0.4991423489]}, -{"learn":[0.4978763464],"iteration":292,"passed_time":7.292532483,"remaining_time":117.1534143,"test":[0.4991398753]}, -{"learn":[0.4978751841],"iteration":293,"passed_time":7.332028006,"remaining_time":117.3623258,"test":[0.4991387726]}, -{"learn":[0.4978739026],"iteration":294,"passed_time":7.370533922,"remaining_time":117.5537698,"test":[0.4991375507]}, -{"learn":[0.4978711906],"iteration":295,"passed_time":7.407551491,"remaining_time":117.7200075,"test":[0.4991350473]}, -{"learn":[0.4978683295],"iteration":296,"passed_time":7.445621178,"remaining_time":117.9015367,"test":[0.4991327227]}, -{"learn":[0.4978625479],"iteration":297,"passed_time":7.482276849,"remaining_time":118.059281,"test":[0.4991277159]}, -{"learn":[0.4978570941],"iteration":298,"passed_time":7.517534443,"remaining_time":118.1937439,"test":[0.4991225601]}, -{"learn":[0.4978522661],"iteration":299,"passed_time":7.554435857,"remaining_time":118.3528284,"test":[0.4991184474]}, -{"learn":[0.4978494051],"iteration":300,"passed_time":7.590800205,"remaining_time":118.5022265,"test":[0.4991159738]}, -{"learn":[0.4978402558],"iteration":301,"passed_time":7.62515081,"remaining_time":118.6190679,"test":[0.4991076888]}, -{"learn":[0.4978379014],"iteration":302,"passed_time":7.663128074,"remaining_time":118.7911306,"test":[0.499105692]}, -{"learn":[0.4978331926],"iteration":303,"passed_time":7.69964266,"remaining_time":118.9392169,"test":[0.4991015197]}, -{"learn":[0.4978306594],"iteration":304,"passed_time":7.737825245,"remaining_time":119.1117689,"test":[0.4990993143]}, -{"learn":[0.4978264573],"iteration":305,"passed_time":7.773416122,"remaining_time":119.2431872,"test":[0.499095291]}, -{"learn":[0.4978251162],"iteration":306,"passed_time":7.812773059,"remaining_time":119.4310878,"test":[0.4990941287]}, -{"learn":[0.4978226426],"iteration":307,"passed_time":7.849398718,"remaining_time":119.5759051,"test":[0.4990918041]}, -{"learn":[0.4978186193],"iteration":308,"passed_time":7.886052784,"remaining_time":119.7199793,"test":[0.499088049]}, -{"learn":[0.4978170099],"iteration":309,"passed_time":7.925026742,"remaining_time":119.8979852,"test":[0.4990868271]}, -{"learn":[0.4978140297],"iteration":310,"passed_time":7.962422353,"remaining_time":120.0507987,"test":[0.499084592]}, -{"learn":[0.4978126886],"iteration":311,"passed_time":8.000145493,"remaining_time":120.2073143,"test":[0.4990833403]}, -{"learn":[0.4978096488],"iteration":312,"passed_time":8.037875726,"remaining_time":120.362695,"test":[0.4990808667]}, -{"learn":[0.4978074434],"iteration":313,"passed_time":8.075470746,"remaining_time":120.5148278,"test":[0.4990787805]}, -{"learn":[0.4978048208],"iteration":314,"passed_time":8.112473092,"remaining_time":120.6569411,"test":[0.4990763069]}, -{"learn":[0.4977385106],"iteration":315,"passed_time":8.1430228,"remaining_time":120.7022747,"test":[0.4990148247]}, -{"learn":[0.4977359774],"iteration":316,"passed_time":8.179590399,"remaining_time":120.836031,"test":[0.4990127088]}, -{"learn":[0.4977345171],"iteration":317,"passed_time":8.217375398,"remaining_time":120.9866403,"test":[0.4990114869]}, -{"learn":[0.4977296892],"iteration":318,"passed_time":8.253232624,"remaining_time":121.1077803,"test":[0.4990074934]}, -{"learn":[0.4977250996],"iteration":319,"passed_time":8.289320916,"remaining_time":121.2313184,"test":[0.4990032912]}, -{"learn":[0.4977225664],"iteration":320,"passed_time":8.325403663,"remaining_time":121.3537811,"test":[0.4990012945]}, -{"learn":[0.4977184835],"iteration":321,"passed_time":8.362449827,"remaining_time":121.4892556,"test":[0.4989974202]}, -{"learn":[0.4977139535],"iteration":322,"passed_time":8.398368625,"remaining_time":121.6073376,"test":[0.4989938737]}, -{"learn":[0.4977083209],"iteration":323,"passed_time":8.434379719,"remaining_time":121.7258011,"test":[0.4989887477]}, -{"learn":[0.4977059069],"iteration":324,"passed_time":8.471523769,"remaining_time":121.8596111,"test":[0.4989868106]}, -{"learn":[0.4977038207],"iteration":325,"passed_time":8.508674782,"remaining_time":121.9924722,"test":[0.4989845158]}, -{"learn":[0.4976999166],"iteration":326,"passed_time":8.545865025,"remaining_time":122.124854,"test":[0.4989807905]}, -{"learn":[0.4976964],"iteration":327,"passed_time":8.581805337,"remaining_time":122.238398,"test":[0.4989782573]}, -{"learn":[0.4976922574],"iteration":328,"passed_time":8.617731236,"remaining_time":122.3508286,"test":[0.498974383]}, -{"learn":[0.497689605],"iteration":329,"passed_time":8.654483233,"remaining_time":122.4740506,"test":[0.4989721776]}, -{"learn":[0.4976846877],"iteration":330,"passed_time":8.691069419,"remaining_time":122.5939671,"test":[0.4989679457]}, -{"learn":[0.4976831975],"iteration":331,"passed_time":8.730442175,"remaining_time":122.7521207,"test":[0.4989667536]}, -{"learn":[0.4976820949],"iteration":332,"passed_time":8.769187315,"remaining_time":122.9002919,"test":[0.4989656509]}, -{"learn":[0.4976716938],"iteration":333,"passed_time":8.803522804,"remaining_time":122.9857407,"test":[0.498956144]}, -{"learn":[0.4976611736],"iteration":334,"passed_time":8.837380982,"remaining_time":123.0638277,"test":[0.4989466668]}, -{"learn":[0.4976597729],"iteration":335,"passed_time":8.876499604,"remaining_time":123.2142683,"test":[0.4989455046]}, -{"learn":[0.4976548257],"iteration":336,"passed_time":8.911600981,"remaining_time":123.3079981,"test":[0.4989413918]}, -{"learn":[0.4976505938],"iteration":337,"passed_time":8.94756698,"remaining_time":123.4128913,"test":[0.4989376963]}, -{"learn":[0.4976464215],"iteration":338,"passed_time":8.983377349,"remaining_time":123.5148136,"test":[0.4989337326]}, -{"learn":[0.4976360503],"iteration":339,"passed_time":9.016216029,"remaining_time":123.5751962,"test":[0.4989241959]}, -{"learn":[0.4976272884],"iteration":340,"passed_time":9.050651287,"remaining_time":123.6568456,"test":[0.4989164771]}, -{"learn":[0.49761951],"iteration":341,"passed_time":9.085503971,"remaining_time":123.7435015,"test":[0.4989092649]}, -{"learn":[0.4976182583],"iteration":342,"passed_time":9.12434932,"remaining_time":123.8836583,"test":[0.4989081026]}, -{"learn":[0.4976137283],"iteration":343,"passed_time":9.161699303,"remaining_time":124.0025347,"test":[0.4989043774]}, -{"learn":[0.497612417],"iteration":344,"passed_time":9.198761921,"remaining_time":124.1166282,"test":[0.4989031555]}, -{"learn":[0.4976034763],"iteration":345,"passed_time":9.231967587,"remaining_time":124.1779686,"test":[0.4988955559]}, -{"learn":[0.4976022246],"iteration":346,"passed_time":9.271164719,"remaining_time":124.319105,"test":[0.4988943936]}, -{"learn":[0.4975981715],"iteration":347,"passed_time":9.306120241,"remaining_time":124.4025039,"test":[0.4988905491]}, -{"learn":[0.4975936416],"iteration":348,"passed_time":9.341116722,"remaining_time":124.4857704,"test":[0.4988864662]}, -{"learn":[0.497589201],"iteration":349,"passed_time":9.377648654,"remaining_time":124.5887607,"test":[0.4988827409]}, -{"learn":[0.4975849691],"iteration":350,"passed_time":9.412603757,"remaining_time":124.6700708,"test":[0.4988789262]}, -{"learn":[0.4975761178],"iteration":351,"passed_time":9.445662171,"remaining_time":124.7256755,"test":[0.4988708497]}, -{"learn":[0.4975735548],"iteration":352,"passed_time":9.482776872,"remaining_time":124.834176,"test":[0.4988683762]}, -{"learn":[0.4975696805],"iteration":353,"passed_time":9.51855012,"remaining_time":124.9242482,"test":[0.4988649191]}, -{"learn":[0.4975683096],"iteration":354,"passed_time":9.555534233,"remaining_time":125.029455,"test":[0.4988636972]}, -{"learn":[0.4975657764],"iteration":355,"passed_time":9.592857773,"remaining_time":125.1382907,"test":[0.4988614024]}, -{"learn":[0.497563273],"iteration":356,"passed_time":9.629203053,"remaining_time":125.2335848,"test":[0.498859197]}, -{"learn":[0.4975618127],"iteration":357,"passed_time":9.667437,"remaining_time":125.3526328,"test":[0.4988581242]}, -{"learn":[0.4975602928],"iteration":358,"passed_time":9.705787743,"remaining_time":125.4723145,"test":[0.4988570513]}, -{"learn":[0.4975578192],"iteration":359,"passed_time":9.741942872,"remaining_time":125.5628192,"test":[0.4988549055]}, -{"learn":[0.4975565079],"iteration":360,"passed_time":9.781258026,"remaining_time":125.6932299,"test":[0.4988535644]}, -{"learn":[0.4975538257],"iteration":361,"passed_time":9.818797372,"remaining_time":125.7999509,"test":[0.4988515974]}, -{"learn":[0.4975509646],"iteration":362,"passed_time":9.85644236,"remaining_time":125.9072265,"test":[0.4988491239]}, -{"learn":[0.4975486103],"iteration":363,"passed_time":9.893501676,"remaining_time":126.0062466,"test":[0.4988470377]}, -{"learn":[0.4975473288],"iteration":364,"passed_time":9.931547699,"remaining_time":126.1170509,"test":[0.4988458456]}, -{"learn":[0.4975451532],"iteration":365,"passed_time":9.96778512,"remaining_time":126.2041427,"test":[0.4988438488]}, -{"learn":[0.4975428584],"iteration":366,"passed_time":10.00559966,"remaining_time":126.3104721,"test":[0.4988417031]}, -{"learn":[0.4975414279],"iteration":367,"passed_time":10.0436578,"remaining_time":126.4190841,"test":[0.4988405408]}, -{"learn":[0.4975399676],"iteration":368,"passed_time":10.08242923,"remaining_time":126.535853,"test":[0.4988393785]}, -{"learn":[0.4975383285],"iteration":369,"passed_time":10.12003301,"remaining_time":126.6371698,"test":[0.4988375009]}, -{"learn":[0.4975370768],"iteration":370,"passed_time":10.15883726,"remaining_time":126.7527161,"test":[0.4988365473]}, -{"learn":[0.4975344542],"iteration":371,"passed_time":10.19636797,"remaining_time":126.8515886,"test":[0.4988344015]}, -{"learn":[0.4975331131],"iteration":372,"passed_time":10.23514726,"remaining_time":126.9652182,"test":[0.4988332988]}, -{"learn":[0.4975318018],"iteration":373,"passed_time":10.2730627,"remaining_time":127.0673477,"test":[0.4988320471]}, -{"learn":[0.4975302818],"iteration":374,"passed_time":10.31094303,"remaining_time":127.1682974,"test":[0.4988309444]}, -{"learn":[0.4975261095],"iteration":375,"passed_time":10.3481114,"remaining_time":127.259753,"test":[0.498827249]}, -{"learn":[0.4975240532],"iteration":376,"passed_time":10.38524838,"remaining_time":127.3501413,"test":[0.4988255204]}, -{"learn":[0.4975216988],"iteration":377,"passed_time":10.42297851,"remaining_time":127.4471076,"test":[0.4988234939]}, -{"learn":[0.4975175264],"iteration":378,"passed_time":10.45807753,"remaining_time":127.511283,"test":[0.4988195302]}, -{"learn":[0.4975149932],"iteration":379,"passed_time":10.49623273,"remaining_time":127.6120927,"test":[0.4988171162]}, -{"learn":[0.4975135627],"iteration":380,"passed_time":10.53484307,"remaining_time":127.7176907,"test":[0.4988160433]}, -{"learn":[0.4975121918],"iteration":381,"passed_time":10.57282569,"remaining_time":127.8149451,"test":[0.4988149108]}, -{"learn":[0.4975109401],"iteration":382,"passed_time":10.61166545,"remaining_time":127.9218261,"test":[0.4988137485]}, -{"learn":[0.4975097182],"iteration":383,"passed_time":10.65088341,"remaining_time":128.0324944,"test":[0.4988126756]}, -{"learn":[0.4975073639],"iteration":384,"passed_time":10.68851827,"remaining_time":128.1234073,"test":[0.4988107385]}, -{"learn":[0.4975056055],"iteration":385,"passed_time":10.72597485,"remaining_time":128.2115233,"test":[0.498809457]}, -{"learn":[0.497504026],"iteration":386,"passed_time":10.76466444,"remaining_time":128.3136876,"test":[0.4988085033]}, -{"learn":[0.4975024167],"iteration":387,"passed_time":10.80310724,"remaining_time":128.4121923,"test":[0.4988066555]}, -{"learn":[0.4974998537],"iteration":388,"passed_time":10.83924613,"remaining_time":128.4826835,"test":[0.4988045396]}, -{"learn":[0.4974974397],"iteration":389,"passed_time":10.87550702,"remaining_time":128.5540702,"test":[0.4988024236]}, -{"learn":[0.497496337],"iteration":390,"passed_time":10.91416433,"remaining_time":128.6531545,"test":[0.4988012911]}, -{"learn":[0.4974915388],"iteration":391,"passed_time":10.95023442,"remaining_time":128.721123,"test":[0.4987974764]}, -{"learn":[0.4974902275],"iteration":392,"passed_time":10.98949515,"remaining_time":128.8259647,"test":[0.4987963141]}, -{"learn":[0.497485936],"iteration":393,"passed_time":11.02503968,"remaining_time":128.8866314,"test":[0.4987925293]}, -{"learn":[0.497480363],"iteration":394,"passed_time":11.05922427,"remaining_time":128.9309564,"test":[0.4987873734]}, -{"learn":[0.4974758032],"iteration":395,"passed_time":11.09398212,"remaining_time":128.9815496,"test":[0.4987835886]}, -{"learn":[0.4974746409],"iteration":396,"passed_time":11.13185852,"remaining_time":129.067871,"test":[0.4987825157]}, -{"learn":[0.4974732998],"iteration":397,"passed_time":11.17165048,"remaining_time":129.1757173,"test":[0.498781264]}, -{"learn":[0.4974718097],"iteration":398,"passed_time":11.20992444,"remaining_time":129.2653192,"test":[0.4987802209]}, -{"learn":[0.4974568191],"iteration":399,"passed_time":11.24242312,"remaining_time":129.2878658,"test":[0.4987666608]}, -{"learn":[0.497455478],"iteration":400,"passed_time":11.27990837,"remaining_time":129.3673281,"test":[0.4987652899]}, -{"learn":[0.4974539581],"iteration":401,"passed_time":11.31797971,"remaining_time":129.4529122,"test":[0.498764217]}, -{"learn":[0.4974528554],"iteration":402,"passed_time":11.35639665,"remaining_time":129.5418248,"test":[0.4987631144]}, -{"learn":[0.4974519613],"iteration":403,"passed_time":11.39574085,"remaining_time":129.6406558,"test":[0.4987620415]}, -{"learn":[0.4974493983],"iteration":404,"passed_time":11.43377393,"remaining_time":129.7239289,"test":[0.4987598361]}, -{"learn":[0.4974472824],"iteration":405,"passed_time":11.47084197,"remaining_time":129.7956848,"test":[0.4987580778]}, -{"learn":[0.4974393252],"iteration":406,"passed_time":11.50737037,"remaining_time":129.860816,"test":[0.4987511338]}, -{"learn":[0.4974383119],"iteration":407,"passed_time":11.54684708,"remaining_time":129.9586319,"test":[0.4987498821]}, -{"learn":[0.4974360171],"iteration":408,"passed_time":11.58513501,"remaining_time":130.0424324,"test":[0.4987477364]}, -{"learn":[0.4974347654],"iteration":409,"passed_time":11.62459186,"remaining_time":130.1387235,"test":[0.4987466933]}, -{"learn":[0.4974320534],"iteration":410,"passed_time":11.66096403,"remaining_time":130.1999123,"test":[0.4987445475]}, -{"learn":[0.4974280897],"iteration":411,"passed_time":11.69776533,"remaining_time":130.2654062,"test":[0.498741001]}, -{"learn":[0.4974269572],"iteration":412,"passed_time":11.73756199,"remaining_time":130.3636727,"test":[0.4987399282]}, -{"learn":[0.4974259141],"iteration":413,"passed_time":11.77578556,"remaining_time":130.4438468,"test":[0.4987387063]}, -{"learn":[0.4974246028],"iteration":414,"passed_time":11.81384315,"remaining_time":130.5216165,"test":[0.498737842]}, -{"learn":[0.4974201623],"iteration":415,"passed_time":11.84984335,"remaining_time":130.5761585,"test":[0.4987341167]}, -{"learn":[0.4974155131],"iteration":416,"passed_time":11.88538523,"remaining_time":130.625229,"test":[0.4987301828]}, -{"learn":[0.4974106255],"iteration":417,"passed_time":11.91993493,"remaining_time":130.6630188,"test":[0.498725474]}, -{"learn":[0.497409195],"iteration":418,"passed_time":11.9591684,"remaining_time":130.7516716,"test":[0.4987241329]}, -{"learn":[0.497406632],"iteration":419,"passed_time":11.99763963,"remaining_time":130.8314036,"test":[0.4987221958]}, -{"learn":[0.4974044266],"iteration":420,"passed_time":12.03429901,"remaining_time":130.8908673,"test":[0.4987199904]}, -{"learn":[0.4973958138],"iteration":421,"passed_time":12.06772923,"remaining_time":130.9148446,"test":[0.4987118246]}, -{"learn":[0.4973920885],"iteration":422,"passed_time":12.10459878,"remaining_time":130.9757651,"test":[0.4987084569]}, -{"learn":[0.497388542],"iteration":423,"passed_time":12.14015106,"remaining_time":131.0220077,"test":[0.4987052979]}, -{"learn":[0.4973824325],"iteration":424,"passed_time":12.17669802,"remaining_time":131.0785728,"test":[0.4987004997]}, -{"learn":[0.4973801378],"iteration":425,"passed_time":12.21262063,"remaining_time":131.1279971,"test":[0.4986981453]}, -{"learn":[0.4973777536],"iteration":426,"passed_time":12.24978646,"remaining_time":131.1903361,"test":[0.4986962082]}, -{"learn":[0.4973765317],"iteration":427,"passed_time":12.28788241,"remaining_time":131.2621458,"test":[0.4986951651]}, -{"learn":[0.4973738495],"iteration":428,"passed_time":12.32541654,"remaining_time":131.3274569,"test":[0.4986928107]}, -{"learn":[0.4973726872],"iteration":429,"passed_time":12.3646098,"remaining_time":131.4099228,"test":[0.4986916782]}, -{"learn":[0.497362763],"iteration":430,"passed_time":12.40014736,"remaining_time":131.4530703,"test":[0.4986826779]}, -{"learn":[0.4973613325],"iteration":431,"passed_time":12.43990838,"remaining_time":131.5405127,"test":[0.4986816348]}, -{"learn":[0.4973602298],"iteration":432,"passed_time":12.47932861,"remaining_time":131.6237731,"test":[0.4986805023]}, -{"learn":[0.4973549846],"iteration":433,"passed_time":12.51451664,"remaining_time":131.6619424,"test":[0.4986760916]}, -{"learn":[0.4973506633],"iteration":434,"passed_time":12.54997948,"remaining_time":131.7026582,"test":[0.4986719789]}, -{"learn":[0.4973494116],"iteration":435,"passed_time":12.59011626,"remaining_time":131.791951,"test":[0.4986709358]}, -{"learn":[0.4973480705],"iteration":436,"passed_time":12.6287436,"remaining_time":131.8648903,"test":[0.4986697437]}, -{"learn":[0.4973446432],"iteration":437,"passed_time":12.66434235,"remaining_time":131.9057758,"test":[0.4986667337]}, -{"learn":[0.4973430935],"iteration":438,"passed_time":12.70314495,"remaining_time":131.9795994,"test":[0.4986655416]}, -{"learn":[0.4973414841],"iteration":439,"passed_time":12.74130461,"remaining_time":132.0462478,"test":[0.4986643495]}, -{"learn":[0.4973390404],"iteration":440,"passed_time":12.77782051,"remaining_time":132.0954279,"test":[0.4986623825]}, -{"learn":[0.4973380569],"iteration":441,"passed_time":12.81759467,"remaining_time":132.1778202,"test":[0.4986613394]}, -{"learn":[0.4973365966],"iteration":442,"passed_time":12.85566461,"remaining_time":132.2421301,"test":[0.4986601772]}, -{"learn":[0.497334421],"iteration":443,"passed_time":12.89210947,"remaining_time":132.2893035,"test":[0.4986582698]}, -{"learn":[0.4973272684],"iteration":444,"passed_time":12.92559047,"remaining_time":132.3057632,"test":[0.4986517729]}, -{"learn":[0.4973245862],"iteration":445,"passed_time":12.96265398,"remaining_time":132.358579,"test":[0.4986494185]}, -{"learn":[0.4973225597],"iteration":446,"passed_time":13.00007814,"remaining_time":132.4146662,"test":[0.4986475112]}, -{"learn":[0.4973195794],"iteration":447,"passed_time":13.03677378,"remaining_time":132.4629335,"test":[0.498645127]}, -{"learn":[0.4973141256],"iteration":448,"passed_time":13.07254237,"remaining_time":132.5014261,"test":[0.4986405076]}, -{"learn":[0.4973119202],"iteration":449,"passed_time":13.11036589,"remaining_time":132.5603662,"test":[0.4986385407]}, -{"learn":[0.4973096851],"iteration":450,"passed_time":13.1486546,"remaining_time":132.6235693,"test":[0.4986366333]}, -{"learn":[0.497308493],"iteration":451,"passed_time":13.18758548,"remaining_time":132.6927849,"test":[0.4986354412]}, -{"learn":[0.497305632],"iteration":452,"passed_time":13.22349479,"remaining_time":132.7311939,"test":[0.4986335041]}, -{"learn":[0.4973035458],"iteration":453,"passed_time":13.26042968,"remaining_time":132.7795447,"test":[0.4986312689]}, -{"learn":[0.4972983006],"iteration":454,"passed_time":13.29579139,"remaining_time":132.8118063,"test":[0.4986265005]}, -{"learn":[0.4972969595],"iteration":455,"passed_time":13.33348012,"remaining_time":132.8669598,"test":[0.4986251594]}, -{"learn":[0.4972957674],"iteration":456,"passed_time":13.37239027,"remaining_time":132.933849,"test":[0.4986242654]}, -{"learn":[0.4972942177],"iteration":457,"passed_time":13.41250426,"remaining_time":133.0122147,"test":[0.4986230137]}, -{"learn":[0.4972926083],"iteration":458,"passed_time":13.45059704,"remaining_time":133.0700679,"test":[0.4986217024]}, -{"learn":[0.4972915951],"iteration":459,"passed_time":13.4881762,"remaining_time":133.1224347,"test":[0.4986205401]}, -{"learn":[0.4972889427],"iteration":460,"passed_time":13.52538878,"remaining_time":133.1708019,"test":[0.4986182453]}, -{"learn":[0.4972865287],"iteration":461,"passed_time":13.56299261,"remaining_time":133.2226417,"test":[0.4986161889]}, -{"learn":[0.4972848895],"iteration":462,"passed_time":13.60257919,"remaining_time":133.2935243,"test":[0.4986150564]}, -{"learn":[0.4972766045],"iteration":463,"passed_time":13.63688832,"remaining_time":133.3123392,"test":[0.4986080827]}, -{"learn":[0.4972591403],"iteration":464,"passed_time":13.67044949,"remaining_time":133.3236311,"test":[0.4985929431]}, -{"learn":[0.4972555045],"iteration":465,"passed_time":13.70643389,"remaining_time":133.3583074,"test":[0.4985895159]}, -{"learn":[0.4972509447],"iteration":466,"passed_time":13.74248776,"remaining_time":133.3933555,"test":[0.4985854627]}, -{"learn":[0.4972469512],"iteration":467,"passed_time":13.77749384,"remaining_time":133.4179532,"test":[0.4985819461]}, -{"learn":[0.4972427789],"iteration":468,"passed_time":13.8145339,"remaining_time":133.4619469,"test":[0.4985782804]}, -{"learn":[0.4972386065],"iteration":469,"passed_time":13.84963438,"remaining_time":133.4869016,"test":[0.4985747935]}, -{"learn":[0.4972345534],"iteration":470,"passed_time":13.88493364,"remaining_time":133.5135126,"test":[0.4985710086]}, -{"learn":[0.4972304407],"iteration":471,"passed_time":13.92227237,"remaining_time":133.5594265,"test":[0.4985677006]}, -{"learn":[0.4972290996],"iteration":472,"passed_time":13.96089777,"remaining_time":133.6173028,"test":[0.4985665085]}, -{"learn":[0.4972264174],"iteration":473,"passed_time":13.99663479,"remaining_time":133.6471921,"test":[0.4985641541]}, -{"learn":[0.4972237948],"iteration":474,"passed_time":14.03412425,"remaining_time":133.6934995,"test":[0.4985620977]}, -{"learn":[0.4972216192],"iteration":475,"passed_time":14.07117027,"remaining_time":133.7352401,"test":[0.4985601904]}, -{"learn":[0.4972203377],"iteration":476,"passed_time":14.10985304,"remaining_time":133.7921704,"test":[0.4985592367]}, -{"learn":[0.4972183708],"iteration":477,"passed_time":14.14771574,"remaining_time":133.8409426,"test":[0.4985571803]}, -{"learn":[0.4972171787],"iteration":478,"passed_time":14.1887031,"remaining_time":133.9188449,"test":[0.498556018]}, -{"learn":[0.4972136918],"iteration":479,"passed_time":14.22514974,"remaining_time":133.9534934,"test":[0.4985528888]}, -{"learn":[0.4972099069],"iteration":480,"passed_time":14.26139987,"remaining_time":133.9860001,"test":[0.4985495509]}, -{"learn":[0.4972071949],"iteration":481,"passed_time":14.298954,"remaining_time":134.0304443,"test":[0.4985471668]}, -{"learn":[0.4972058538],"iteration":482,"passed_time":14.33744275,"remaining_time":134.0832896,"test":[0.4985461237]}, -{"learn":[0.4972004],"iteration":483,"passed_time":14.37232239,"remaining_time":134.1020825,"test":[0.4985415937]}, -{"learn":[0.4971989993],"iteration":484,"passed_time":14.41154567,"remaining_time":134.1610901,"test":[0.4985403718]}, -{"learn":[0.4971946779],"iteration":485,"passed_time":14.44846929,"remaining_time":134.1983341,"test":[0.4985368552]}, -{"learn":[0.4971900288],"iteration":486,"passed_time":14.48407254,"remaining_time":134.2230377,"test":[0.4985326828]}, -{"learn":[0.4971135262],"iteration":487,"passed_time":14.51536023,"remaining_time":134.2075929,"test":[0.4984646441]}, -{"learn":[0.4971098009],"iteration":488,"passed_time":14.55165309,"remaining_time":134.2382558,"test":[0.4984611275]}, -{"learn":[0.4971072975],"iteration":489,"passed_time":14.58952653,"remaining_time":134.2831932,"test":[0.4984591009]}, -{"learn":[0.4971035424],"iteration":490,"passed_time":14.62576129,"remaining_time":134.3127447,"test":[0.4984559717]}, -{"learn":[0.4970997277],"iteration":491,"passed_time":14.66090858,"remaining_time":134.3320648,"test":[0.498452306]}, -{"learn":[0.4970983568],"iteration":492,"passed_time":14.69891178,"remaining_time":134.3772726,"test":[0.4984512629]}, -{"learn":[0.4970969859],"iteration":493,"passed_time":14.73762507,"remaining_time":134.4286206,"test":[0.4984502794]}, -{"learn":[0.4970948998],"iteration":494,"passed_time":14.77565768,"remaining_time":134.4734098,"test":[0.4984483125]}, -{"learn":[0.497093052],"iteration":495,"passed_time":14.81242063,"remaining_time":134.5063357,"test":[0.4984467627]}, -{"learn":[0.4970890883],"iteration":496,"passed_time":14.84876619,"remaining_time":134.5351995,"test":[0.4984432461]}, -{"learn":[0.4970848564],"iteration":497,"passed_time":14.88478678,"remaining_time":134.5608636,"test":[0.4984398486]}, -{"learn":[0.4970828298],"iteration":498,"passed_time":14.92139448,"remaining_time":134.5915762,"test":[0.4984378817]}, -{"learn":[0.4970815185],"iteration":499,"passed_time":14.95852249,"remaining_time":134.6267024,"test":[0.4984368386]}, -{"learn":[0.497079492],"iteration":500,"passed_time":14.99559776,"remaining_time":134.6610665,"test":[0.498434961]}, -{"learn":[0.4970782403],"iteration":501,"passed_time":15.0338642,"remaining_time":134.7058191,"test":[0.4984339179]}, -{"learn":[0.4970763627],"iteration":502,"passed_time":15.07099074,"remaining_time":134.7400504,"test":[0.4984319808]}, -{"learn":[0.4970736209],"iteration":503,"passed_time":15.10849836,"remaining_time":134.7773981,"test":[0.4984297754]}, -{"learn":[0.4970710281],"iteration":504,"passed_time":15.14387441,"remaining_time":134.7954762,"test":[0.4984278383]}, -{"learn":[0.4970697764],"iteration":505,"passed_time":15.182288,"remaining_time":134.8403207,"test":[0.4984265866]}, -{"learn":[0.4970684353],"iteration":506,"passed_time":15.22010092,"remaining_time":134.8795137,"test":[0.4984256031]}, -{"learn":[0.4970662299],"iteration":507,"passed_time":15.25822682,"remaining_time":134.921171,"test":[0.4984232189]}, -{"learn":[0.497064859],"iteration":508,"passed_time":15.29676305,"remaining_time":134.9661353,"test":[0.498422295]}, -{"learn":[0.497059733],"iteration":509,"passed_time":15.332211,"remaining_time":134.9835831,"test":[0.4984172286]}, -{"learn":[0.4970581833],"iteration":510,"passed_time":15.3699084,"remaining_time":135.0205848,"test":[0.4984163048]}, -{"learn":[0.4970557991],"iteration":511,"passed_time":15.40674779,"remaining_time":135.0497736,"test":[0.4984140398]}, -{"learn":[0.4970534149],"iteration":512,"passed_time":15.44619179,"remaining_time":135.1014864,"test":[0.4984116854]}, -{"learn":[0.4970512394],"iteration":513,"passed_time":15.48429374,"remaining_time":135.1411317,"test":[0.4984098377]}, -{"learn":[0.4970489446],"iteration":514,"passed_time":15.52260428,"remaining_time":135.1822917,"test":[0.4984079601]}, -{"learn":[0.4970468882],"iteration":515,"passed_time":15.56067515,"remaining_time":135.2210608,"test":[0.4984059038]}, -{"learn":[0.4970454577],"iteration":516,"passed_time":15.59871973,"remaining_time":135.2593048,"test":[0.4984048905]}, -{"learn":[0.4970441464],"iteration":517,"passed_time":15.63830478,"remaining_time":135.3105831,"test":[0.4984037878]}, -{"learn":[0.4970402423],"iteration":518,"passed_time":15.67432616,"remaining_time":135.3307428,"test":[0.4984005692]}, -{"learn":[0.4970381561],"iteration":519,"passed_time":15.71162177,"remaining_time":135.3616645,"test":[0.4983986916]}, -{"learn":[0.4970223013],"iteration":520,"passed_time":15.74464663,"remaining_time":135.3556089,"test":[0.4983834924]}, -{"learn":[0.4970201853],"iteration":521,"passed_time":15.78201474,"remaining_time":135.3867088,"test":[0.4983815851]}, -{"learn":[0.4970159534],"iteration":522,"passed_time":15.81658648,"remaining_time":135.3936094,"test":[0.4983777406]}, -{"learn":[0.4970138077],"iteration":523,"passed_time":15.85453195,"remaining_time":135.4291699,"test":[0.4983759226]}, -{"learn":[0.4970123473],"iteration":524,"passed_time":15.89304576,"remaining_time":135.4692948,"test":[0.4983748199]}, -{"learn":[0.4970083836],"iteration":525,"passed_time":15.92849284,"remaining_time":135.4830361,"test":[0.4983704986]}, -{"learn":[0.4970069233],"iteration":526,"passed_time":15.96685071,"remaining_time":135.5212964,"test":[0.4983694853]}, -{"learn":[0.4970042709],"iteration":527,"passed_time":16.00227598,"remaining_time":135.5344284,"test":[0.4983673098]}, -{"learn":[0.4970028404],"iteration":528,"passed_time":16.04132768,"remaining_time":135.5780266,"test":[0.4983664157]}, -{"learn":[0.4970005456],"iteration":529,"passed_time":16.07927017,"remaining_time":135.6119578,"test":[0.4983643295]}, -{"learn":[0.4969983999],"iteration":530,"passed_time":16.11669088,"remaining_time":135.641227,"test":[0.498362452]}, -{"learn":[0.4969935421],"iteration":531,"passed_time":16.15138358,"remaining_time":135.6473343,"test":[0.4983580114]}, -{"learn":[0.4969899658],"iteration":532,"passed_time":16.18829009,"remaining_time":135.6718421,"test":[0.4983549418]}, -{"learn":[0.4969865683],"iteration":533,"passed_time":16.22419334,"remaining_time":135.6877293,"test":[0.4983516933]}, -{"learn":[0.4969844822],"iteration":534,"passed_time":16.26235288,"remaining_time":135.7222535,"test":[0.4983499648]}, -{"learn":[0.4969824556],"iteration":535,"passed_time":16.30092752,"remaining_time":135.7599635,"test":[0.4983482363]}, -{"learn":[0.4969784323],"iteration":536,"passed_time":16.33576537,"remaining_time":135.766333,"test":[0.4983449282]}, -{"learn":[0.4969773296],"iteration":537,"passed_time":16.37481959,"remaining_time":135.8075186,"test":[0.4983437659]}, -{"learn":[0.4969759885],"iteration":538,"passed_time":16.41431862,"remaining_time":135.8520879,"test":[0.4983427825]}, -{"learn":[0.4969747368],"iteration":539,"passed_time":16.45249609,"remaining_time":135.8854307,"test":[0.4983417692]}, -{"learn":[0.4969723526],"iteration":540,"passed_time":16.48844219,"remaining_time":135.9001178,"test":[0.4983396234]}, -{"learn":[0.4969712797],"iteration":541,"passed_time":16.52717177,"remaining_time":135.9375125,"test":[0.4983385803]}, -{"learn":[0.4969674054],"iteration":542,"passed_time":16.5620748,"remaining_time":135.943218,"test":[0.4983351531]}, -{"learn":[0.4969661537],"iteration":543,"passed_time":16.59982611,"remaining_time":135.972105,"test":[0.4983340802]}, -{"learn":[0.4969650213],"iteration":544,"passed_time":16.63704887,"remaining_time":135.996427,"test":[0.4983330073]}, -{"learn":[0.4969613258],"iteration":545,"passed_time":16.67367534,"remaining_time":136.0156592,"test":[0.4983298781]}, -{"learn":[0.4969600145],"iteration":546,"passed_time":16.71180831,"remaining_time":136.0469514,"test":[0.498328835]}, -{"learn":[0.496958733],"iteration":547,"passed_time":16.750509,"remaining_time":136.0826023,"test":[0.4983278217]}, -{"learn":[0.4969511036],"iteration":548,"passed_time":16.7838411,"remaining_time":136.0744567,"test":[0.4983213248]}, -{"learn":[0.4969498519],"iteration":549,"passed_time":16.82291211,"remaining_time":136.1126525,"test":[0.4983203115]}, -{"learn":[0.4969476167],"iteration":550,"passed_time":16.86043148,"remaining_time":136.1380393,"test":[0.4983184936]}, -{"learn":[0.4969454113],"iteration":551,"passed_time":16.89693328,"remaining_time":136.1549986,"test":[0.4983166756]}, -{"learn":[0.4969381992],"iteration":552,"passed_time":16.93137294,"remaining_time":136.1551817,"test":[0.4983097913]}, -{"learn":[0.4969371561],"iteration":553,"passed_time":16.96982457,"remaining_time":136.1874369,"test":[0.498308778]}, -{"learn":[0.4969214801],"iteration":554,"passed_time":17.00261775,"remaining_time":136.1741187,"test":[0.4982938172]}, -{"learn":[0.4969202284],"iteration":555,"passed_time":17.0417326,"remaining_time":136.2112584,"test":[0.4982928338]}, -{"learn":[0.4969150726],"iteration":556,"passed_time":17.07693793,"remaining_time":136.2169393,"test":[0.498288423]}, -{"learn":[0.496912748],"iteration":557,"passed_time":17.11454537,"remaining_time":136.241596,"test":[0.4982865455]}, -{"learn":[0.4969112877],"iteration":558,"passed_time":17.15341424,"remaining_time":136.2760512,"test":[0.4982855918]}, -{"learn":[0.4969099764],"iteration":559,"passed_time":17.19149966,"remaining_time":136.304033,"test":[0.4982844295]}, -{"learn":[0.4969089035],"iteration":560,"passed_time":17.23047678,"remaining_time":136.338835,"test":[0.4982834758]}, -{"learn":[0.4969015423],"iteration":561,"passed_time":17.26409006,"remaining_time":136.3310173,"test":[0.4982762637]}, -{"learn":[0.49689737],"iteration":562,"passed_time":17.30025469,"remaining_time":136.343215,"test":[0.4982726874]}, -{"learn":[0.4968960587],"iteration":563,"passed_time":17.33890868,"remaining_time":136.3748208,"test":[0.4982716145]}, -{"learn":[0.4968910519],"iteration":564,"passed_time":17.37329549,"remaining_time":136.3726823,"test":[0.4982674422]}, -{"learn":[0.4968889657],"iteration":565,"passed_time":17.41101457,"remaining_time":136.3965347,"test":[0.4982657435]}, -{"learn":[0.4968867008],"iteration":566,"passed_time":17.44802956,"remaining_time":136.414665,"test":[0.4982638063]}, -{"learn":[0.4968856577],"iteration":567,"passed_time":17.48637926,"remaining_time":136.4430156,"test":[0.498262793]}, -{"learn":[0.4968781475],"iteration":568,"passed_time":17.51959423,"remaining_time":136.4311459,"test":[0.4982565047]}, -{"learn":[0.4968771044],"iteration":569,"passed_time":17.55814907,"remaining_time":136.4607024,"test":[0.4982555511]}, -{"learn":[0.4968760315],"iteration":570,"passed_time":17.59607037,"remaining_time":136.4851062,"test":[0.4982544782]}, -{"learn":[0.4968734089],"iteration":571,"passed_time":17.63136462,"remaining_time":136.4889555,"test":[0.4982521834]}, -{"learn":[0.496868879],"iteration":572,"passed_time":17.6671391,"remaining_time":136.4963783,"test":[0.4982488753]}, -{"learn":[0.4968677763],"iteration":573,"passed_time":17.7051904,"remaining_time":136.5212068,"test":[0.4982478621]}, -{"learn":[0.4968658689],"iteration":574,"passed_time":17.74106059,"remaining_time":136.5290315,"test":[0.4982456269]}, -{"learn":[0.4968635146],"iteration":575,"passed_time":17.77762924,"remaining_time":136.542069,"test":[0.4982436599]}, -{"learn":[0.4968624119],"iteration":576,"passed_time":17.81522995,"remaining_time":136.5628459,"test":[0.4982427063]}, -{"learn":[0.4968605045],"iteration":577,"passed_time":17.85311503,"remaining_time":136.5855963,"test":[0.4982408585]}, -{"learn":[0.4968592528],"iteration":578,"passed_time":17.89160411,"remaining_time":136.6127492,"test":[0.498239875]}, -{"learn":[0.4968441132],"iteration":579,"passed_time":17.92477386,"remaining_time":136.5991387,"test":[0.4982262554]}, -{"learn":[0.4968422059],"iteration":580,"passed_time":17.96302758,"remaining_time":136.6241289,"test":[0.4982246759]}, -{"learn":[0.4968384806],"iteration":581,"passed_time":17.99901893,"remaining_time":136.6317279,"test":[0.4982214572]}, -{"learn":[0.4968369905],"iteration":582,"passed_time":18.03692885,"remaining_time":136.6537131,"test":[0.4982205333]}, -{"learn":[0.4968358878],"iteration":583,"passed_time":18.07517768,"remaining_time":136.6780559,"test":[0.4982196393]}, -{"learn":[0.4968336526],"iteration":584,"passed_time":18.11119588,"remaining_time":136.6853501,"test":[0.4982175233]}, -{"learn":[0.4968315367],"iteration":585,"passed_time":18.14969206,"remaining_time":136.7111617,"test":[0.498215765]}, -{"learn":[0.4968284074],"iteration":586,"passed_time":18.1858331,"remaining_time":136.7190485,"test":[0.4982127251]}, -{"learn":[0.4968273345],"iteration":587,"passed_time":18.2237633,"remaining_time":136.7402103,"test":[0.4982116523]}, -{"learn":[0.4968252484],"iteration":588,"passed_time":18.26159243,"remaining_time":136.7604146,"test":[0.4982100727]}, -{"learn":[0.4968226854],"iteration":589,"passed_time":18.29983449,"remaining_time":136.7835086,"test":[0.4982077481]}, -{"learn":[0.4968190793],"iteration":590,"passed_time":18.33499542,"remaining_time":136.7834091,"test":[0.4982050063]}, -{"learn":[0.4968172614],"iteration":591,"passed_time":18.37235639,"remaining_time":136.7995726,"test":[0.4982030692]}, -{"learn":[0.4968129102],"iteration":592,"passed_time":18.40998175,"remaining_time":136.8175203,"test":[0.4981997909]}, -{"learn":[0.4968093041],"iteration":593,"passed_time":18.44656218,"remaining_time":136.8275303,"test":[0.4981967213]}, -{"learn":[0.4968073074],"iteration":594,"passed_time":18.48342966,"remaining_time":136.8395087,"test":[0.4981947841]}, -{"learn":[0.4968060557],"iteration":595,"passed_time":18.52086685,"remaining_time":136.8555329,"test":[0.4981938305]}, -{"learn":[0.4968052212],"iteration":596,"passed_time":18.55971721,"remaining_time":136.8818004,"test":[0.498192847]}, -{"learn":[0.4968009893],"iteration":597,"passed_time":18.59483416,"remaining_time":136.8803678,"test":[0.4981894197]}, -{"learn":[0.4967991117],"iteration":598,"passed_time":18.63229709,"remaining_time":136.8960593,"test":[0.4981874826]}, -{"learn":[0.496797115],"iteration":599,"passed_time":18.6689501,"remaining_time":136.9056341,"test":[0.4981856348]}, -{"learn":[0.496794403],"iteration":600,"passed_time":18.70703212,"remaining_time":136.9255146,"test":[0.4981834593]}, -{"learn":[0.4967920486],"iteration":601,"passed_time":18.74396205,"remaining_time":136.9367859,"test":[0.4981814923]}, -{"learn":[0.4967907075],"iteration":602,"passed_time":18.78189135,"remaining_time":136.9551845,"test":[0.4981803598]}, -{"learn":[0.4967894558],"iteration":603,"passed_time":18.81990428,"remaining_time":136.9740053,"test":[0.4981794657]}, -{"learn":[0.496787012],"iteration":604,"passed_time":18.85636109,"remaining_time":136.9813338,"test":[0.4981774392]}, -{"learn":[0.496784598],"iteration":605,"passed_time":18.89253307,"remaining_time":136.9864527,"test":[0.4981752338]}, -{"learn":[0.4967812006],"iteration":606,"passed_time":18.92862129,"remaining_time":136.9908292,"test":[0.498172194]}, -{"learn":[0.4967786674],"iteration":607,"passed_time":18.96446083,"remaining_time":136.9932762,"test":[0.498170078]}, -{"learn":[0.4967749421],"iteration":608,"passed_time":18.99981469,"remaining_time":136.9920957,"test":[0.4981667402]}, -{"learn":[0.4967729453],"iteration":609,"passed_time":19.03613318,"remaining_time":136.9977453,"test":[0.4981648328]}, -{"learn":[0.4967650179],"iteration":610,"passed_time":19.06943104,"remaining_time":136.9815594,"test":[0.4981581571]}, -{"learn":[0.4967471067],"iteration":611,"passed_time":19.10111719,"remaining_time":136.9537618,"test":[0.4981392624]}, -{"learn":[0.4967451994],"iteration":612,"passed_time":19.13832618,"remaining_time":136.9654763,"test":[0.4981375637]}, -{"learn":[0.4967436198],"iteration":613,"passed_time":19.17681986,"remaining_time":136.9862083,"test":[0.4981364908]}, -{"learn":[0.4967412058],"iteration":614,"passed_time":19.21450277,"remaining_time":137.0009669,"test":[0.4981345239]}, -{"learn":[0.4967399243],"iteration":615,"passed_time":19.25339599,"remaining_time":137.0241688,"test":[0.4981335404]}, -{"learn":[0.4967388813],"iteration":616,"passed_time":19.29310577,"remaining_time":137.0529701,"test":[0.4981324675]}, -{"learn":[0.4967367653],"iteration":617,"passed_time":19.33172277,"remaining_time":137.0738013,"test":[0.498130739]}, -{"learn":[0.4967347387],"iteration":618,"passed_time":19.3697301,"remaining_time":137.0901253,"test":[0.4981286528]}, -{"learn":[0.4967337851],"iteration":619,"passed_time":19.4094663,"remaining_time":137.1184877,"test":[0.4981276991]}, -{"learn":[0.4967291061],"iteration":620,"passed_time":19.44555312,"remaining_time":137.1208972,"test":[0.4981238248]}, -{"learn":[0.4967270497],"iteration":621,"passed_time":19.48193491,"remaining_time":137.1252589,"test":[0.4981219771]}, -{"learn":[0.4967235927],"iteration":622,"passed_time":19.51851041,"remaining_time":137.1308508,"test":[0.4981188776]}, -{"learn":[0.4967215065],"iteration":623,"passed_time":19.55545016,"remaining_time":137.138862,"test":[0.4981171193]}, -{"learn":[0.496720225],"iteration":624,"passed_time":19.59367345,"remaining_time":137.1557142,"test":[0.4981161656]}, -{"learn":[0.4967189733],"iteration":625,"passed_time":19.63236792,"remaining_time":137.1756826,"test":[0.4981150927]}, -{"learn":[0.4967177216],"iteration":626,"passed_time":19.67039076,"remaining_time":137.1907796,"test":[0.4981141093]}, -{"learn":[0.496714503],"iteration":627,"passed_time":19.7068279,"remaining_time":137.1946681,"test":[0.49811098]}, -{"learn":[0.4967122976],"iteration":628,"passed_time":19.74309451,"remaining_time":137.1972434,"test":[0.4981093111]}, -{"learn":[0.4967109565],"iteration":629,"passed_time":19.78145036,"remaining_time":137.2141874,"test":[0.4981081488]}, -{"learn":[0.4967090193],"iteration":630,"passed_time":19.81870991,"remaining_time":137.2233654,"test":[0.4981065991]}, -{"learn":[0.4967059497],"iteration":631,"passed_time":19.85569871,"remaining_time":137.2305253,"test":[0.4981036188]}, -{"learn":[0.4967046682],"iteration":632,"passed_time":19.89426857,"remaining_time":137.2484532,"test":[0.4981026354]}, -{"learn":[0.4967005257],"iteration":633,"passed_time":19.93000798,"remaining_time":137.2467111,"test":[0.4980991187]}, -{"learn":[0.4966923896],"iteration":634,"passed_time":19.96453161,"remaining_time":137.2365047,"test":[0.4980925324]}, -{"learn":[0.4966901843],"iteration":635,"passed_time":20.00107003,"remaining_time":137.2400466,"test":[0.4980907442]}, -{"learn":[0.4966878895],"iteration":636,"passed_time":20.03808002,"remaining_time":137.2466925,"test":[0.4980887177]}, -{"learn":[0.4966870252],"iteration":637,"passed_time":20.07662189,"remaining_time":137.2636751,"test":[0.4980875852]}, -{"learn":[0.4966842238],"iteration":638,"passed_time":20.1125208,"remaining_time":137.2624463,"test":[0.4980856182]}, -{"learn":[0.4966825549],"iteration":639,"passed_time":20.1511367,"remaining_time":137.2796188,"test":[0.4980840685]}, -{"learn":[0.4966756109],"iteration":640,"passed_time":20.18575904,"remaining_time":137.2694597,"test":[0.4980777802]}, -{"learn":[0.4966745083],"iteration":641,"passed_time":20.2242902,"remaining_time":137.2857581,"test":[0.498076916]}, -{"learn":[0.4966721837],"iteration":642,"passed_time":20.26031241,"remaining_time":137.2848852,"test":[0.4980745616]}, -{"learn":[0.4966699485],"iteration":643,"passed_time":20.29543559,"remaining_time":137.2778221,"test":[0.498072684]}, -{"learn":[0.4966626767],"iteration":644,"passed_time":20.32940877,"remaining_time":137.2629073,"test":[0.4980656507]}, -{"learn":[0.4966589812],"iteration":645,"passed_time":20.36444004,"remaining_time":137.2550649,"test":[0.4980625215]}, -{"learn":[0.4966567759],"iteration":646,"passed_time":20.40022157,"remaining_time":137.2521862,"test":[0.4980608227]}, -{"learn":[0.4966556136],"iteration":647,"passed_time":20.43913371,"remaining_time":137.2702313,"test":[0.4980597498]}, -{"learn":[0.4966533188],"iteration":648,"passed_time":20.47640663,"remaining_time":137.2771113,"test":[0.4980576637]}, -{"learn":[0.4966519181],"iteration":649,"passed_time":20.51474408,"remaining_time":137.2909796,"test":[0.49805671]}, -{"learn":[0.49664861],"iteration":650,"passed_time":20.55247563,"remaining_time":137.3006398,"test":[0.4980537596]}, -{"learn":[0.4966032211],"iteration":651,"passed_time":20.58366138,"remaining_time":137.2665026,"test":[0.4980136754]}, -{"learn":[0.4966013734],"iteration":652,"passed_time":20.61948163,"remaining_time":137.2632261,"test":[0.4980117383]}, -{"learn":[0.4965992276],"iteration":653,"passed_time":20.65744802,"remaining_time":137.2741118,"test":[0.4980099502]}, -{"learn":[0.4965921942],"iteration":654,"passed_time":20.69247787,"remaining_time":137.2653685,"test":[0.4980041089]}, -{"learn":[0.4965906743],"iteration":655,"passed_time":20.7302538,"remaining_time":137.2747295,"test":[0.4980026784]}, -{"learn":[0.4965887372],"iteration":656,"passed_time":20.76705354,"remaining_time":137.2774939,"test":[0.4980010095]}, -{"learn":[0.4965868596],"iteration":657,"passed_time":20.80418264,"remaining_time":137.2823116,"test":[0.4979991319]}, -{"learn":[0.4965830747],"iteration":658,"passed_time":20.83867834,"remaining_time":137.269655,"test":[0.4979957047]}, -{"learn":[0.4965817336],"iteration":659,"passed_time":20.87662109,"remaining_time":137.2795993,"test":[0.4979946914]}, -{"learn":[0.4965795581],"iteration":660,"passed_time":20.91330085,"remaining_time":137.281108,"test":[0.497992486]}, -{"learn":[0.4965771739],"iteration":661,"passed_time":20.94954097,"remaining_time":137.2796205,"test":[0.4979908469]}, -{"learn":[0.4965750877],"iteration":662,"passed_time":20.98579826,"remaining_time":137.2781404,"test":[0.4979888799]}, -{"learn":[0.4965718989],"iteration":663,"passed_time":21.02034981,"remaining_time":137.2654168,"test":[0.4979860189]}, -{"learn":[0.4965698127],"iteration":664,"passed_time":21.05609242,"remaining_time":137.260392,"test":[0.4979841712]}, -{"learn":[0.4965673987],"iteration":665,"passed_time":21.09232803,"remaining_time":137.258483,"test":[0.4979823532]}, -{"learn":[0.4965637926],"iteration":666,"passed_time":21.12727557,"remaining_time":137.2481035,"test":[0.4979791942]}, -{"learn":[0.4965625409],"iteration":667,"passed_time":21.16440804,"remaining_time":137.2518198,"test":[0.4979780021]}, -{"learn":[0.4965589945],"iteration":668,"passed_time":21.19961304,"remaining_time":137.2429358,"test":[0.4979748132]}, -{"learn":[0.4965522889],"iteration":669,"passed_time":21.23402046,"remaining_time":137.2288188,"test":[0.4979690018]}, -{"learn":[0.49655062],"iteration":670,"passed_time":21.27251092,"remaining_time":137.2409832,"test":[0.4979680779]}, -{"learn":[0.4965470437],"iteration":671,"passed_time":21.30785284,"remaining_time":137.2327189,"test":[0.4979649785]}, -{"learn":[0.4965459112],"iteration":672,"passed_time":21.34714564,"remaining_time":137.2497759,"test":[0.497963995]}, -{"learn":[0.4965445701],"iteration":673,"passed_time":21.38605101,"remaining_time":137.2641791,"test":[0.4979628625]}, -{"learn":[0.4965382222],"iteration":674,"passed_time":21.42062681,"remaining_time":137.2506829,"test":[0.4979567828]}, -{"learn":[0.4965344672],"iteration":675,"passed_time":21.45657227,"remaining_time":137.2458853,"test":[0.497953743]}, -{"learn":[0.4965312783],"iteration":676,"passed_time":21.49125968,"remaining_time":137.2329624,"test":[0.497950733]}, -{"learn":[0.4965291623],"iteration":677,"passed_time":21.52884504,"remaining_time":137.2384487,"test":[0.4979491832]}, -{"learn":[0.4965280001],"iteration":678,"passed_time":21.56753561,"remaining_time":137.2508415,"test":[0.4979481998]}, -{"learn":[0.496524841],"iteration":679,"passed_time":21.60235641,"remaining_time":137.2384996,"test":[0.4979455175]}, -{"learn":[0.4965208475],"iteration":680,"passed_time":21.63660322,"remaining_time":137.2224513,"test":[0.4979419115]}, -{"learn":[0.496520013],"iteration":681,"passed_time":21.6745521,"remaining_time":137.2297888,"test":[0.4979411366]}, -{"learn":[0.49651897],"iteration":682,"passed_time":21.7112574,"remaining_time":137.2291335,"test":[0.4979400637]}, -{"learn":[0.4965176885],"iteration":683,"passed_time":21.75031111,"remaining_time":137.2431912,"test":[0.49793911]}, -{"learn":[0.4965128605],"iteration":684,"passed_time":21.78365996,"remaining_time":137.2211573,"test":[0.4979349973]}, -{"learn":[0.4965109829],"iteration":685,"passed_time":21.81931506,"remaining_time":137.2135936,"test":[0.4979332092]}, -{"learn":[0.4965090458],"iteration":686,"passed_time":21.85431928,"remaining_time":137.2018618,"test":[0.4979314509]}, -{"learn":[0.4965050821],"iteration":687,"passed_time":21.88865978,"remaining_time":137.1859026,"test":[0.497927964]}, -{"learn":[0.4965029065],"iteration":688,"passed_time":21.92406508,"remaining_time":137.1765523,"test":[0.4979260864]}, -{"learn":[0.4965007011],"iteration":689,"passed_time":21.95942046,"remaining_time":137.1668148,"test":[0.4979242387]}, -{"learn":[0.4964994494],"iteration":690,"passed_time":21.99714321,"remaining_time":137.1717657,"test":[0.497923136]}, -{"learn":[0.4964976315],"iteration":691,"passed_time":22.03535618,"remaining_time":137.1796451,"test":[0.4979216161]}, -{"learn":[0.4964951877],"iteration":692,"passed_time":22.07202564,"remaining_time":137.1777986,"test":[0.4979195001]}, -{"learn":[0.4964932804],"iteration":693,"passed_time":22.11041254,"remaining_time":137.1865078,"test":[0.4979175928]}, -{"learn":[0.4964923565],"iteration":694,"passed_time":22.14741122,"remaining_time":137.1864824,"test":[0.4979165497]}, -{"learn":[0.4964898829],"iteration":695,"passed_time":22.18386047,"remaining_time":137.1829532,"test":[0.4979145827]}, -{"learn":[0.4964877669],"iteration":696,"passed_time":22.22087115,"remaining_time":137.1827956,"test":[0.4979128542]}, -{"learn":[0.4964856808],"iteration":697,"passed_time":22.25899844,"remaining_time":137.1894145,"test":[0.4979109469]}, -{"learn":[0.4964824323],"iteration":698,"passed_time":22.29468085,"remaining_time":137.1808617,"test":[0.4979081156]}, -{"learn":[0.4964802567],"iteration":699,"passed_time":22.33051022,"remaining_time":137.1731342,"test":[0.4979062679]}, -{"learn":[0.4964765314],"iteration":700,"passed_time":22.36441052,"remaining_time":137.1534962,"test":[0.4979031088]}, -{"learn":[0.4964751307],"iteration":701,"passed_time":22.40384089,"remaining_time":137.1676754,"test":[0.4979019466]}, -{"learn":[0.4964739983],"iteration":702,"passed_time":22.44357102,"remaining_time":137.1835344,"test":[0.4979009035]}, -{"learn":[0.4964672927],"iteration":703,"passed_time":22.47803824,"remaining_time":137.1671197,"test":[0.4978951218]}, -{"learn":[0.496464998],"iteration":704,"passed_time":22.5146337,"remaining_time":137.1636195,"test":[0.4978931251]}, -{"learn":[0.4964613621],"iteration":705,"passed_time":22.54955674,"remaining_time":137.1498536,"test":[0.4978896382]}, -{"learn":[0.4964592759],"iteration":706,"passed_time":22.58639846,"remaining_time":137.1476783,"test":[0.4978880885]}, -{"learn":[0.4964561467],"iteration":707,"passed_time":22.6206227,"remaining_time":137.1295376,"test":[0.4978852871]}, -{"learn":[0.4964549546],"iteration":708,"passed_time":22.65843745,"remaining_time":137.133082,"test":[0.4978842142]}, -{"learn":[0.4964537923],"iteration":709,"passed_time":22.69519094,"remaining_time":137.1300974,"test":[0.4978832009]}, -{"learn":[0.4964507226],"iteration":710,"passed_time":22.73290744,"remaining_time":137.132827,"test":[0.4978803995]}, -{"learn":[0.4964488451],"iteration":711,"passed_time":22.77050554,"remaining_time":137.13473,"test":[0.4978790584]}, -{"learn":[0.4964469377],"iteration":712,"passed_time":22.80682389,"remaining_time":137.1288275,"test":[0.4978771808]}, -{"learn":[0.4964455966],"iteration":713,"passed_time":22.84454121,"remaining_time":137.1312375,"test":[0.4978762272]}, -{"learn":[0.4964446132],"iteration":714,"passed_time":22.8818261,"remaining_time":137.1309438,"test":[0.4978754225]}, -{"learn":[0.4964427356],"iteration":715,"passed_time":22.91770054,"remaining_time":137.1221077,"test":[0.4978736642]}, -{"learn":[0.4964404706],"iteration":716,"passed_time":22.95400848,"remaining_time":137.1157857,"test":[0.497871876]}, -{"learn":[0.4964391295],"iteration":717,"passed_time":22.99260855,"remaining_time":137.1230499,"test":[0.4978709521]}, -{"learn":[0.4964351062],"iteration":718,"passed_time":23.02806193,"remaining_time":137.1114508,"test":[0.4978671076]}, -{"learn":[0.4964340631],"iteration":719,"passed_time":23.06659366,"remaining_time":137.1180845,"test":[0.4978662136]}, -{"learn":[0.4964324836],"iteration":720,"passed_time":23.10418476,"remaining_time":137.1190105,"test":[0.4978647533]}, -{"learn":[0.4964313511],"iteration":721,"passed_time":23.14240857,"remaining_time":137.1235788,"test":[0.4978637102]}, -{"learn":[0.4964300398],"iteration":722,"passed_time":23.18111581,"remaining_time":137.1308884,"test":[0.4978627267]}, -{"learn":[0.4964289968],"iteration":723,"passed_time":23.21925594,"remaining_time":137.1347216,"test":[0.4978618028]}, -{"learn":[0.4964278643],"iteration":724,"passed_time":23.25847675,"remaining_time":137.1448112,"test":[0.4978609088]}, -{"learn":[0.4964265232],"iteration":725,"passed_time":23.29687858,"remaining_time":137.1499436,"test":[0.4978597167]}, -{"learn":[0.4964254503],"iteration":726,"passed_time":23.33515671,"remaining_time":137.1542292,"test":[0.4978589716]}, -{"learn":[0.4964234237],"iteration":727,"passed_time":23.37127259,"remaining_time":137.1457095,"test":[0.4978569451]}, -{"learn":[0.4964213674],"iteration":728,"passed_time":23.40808543,"remaining_time":137.1411973,"test":[0.4978549483]}, -{"learn":[0.4964201455],"iteration":729,"passed_time":23.44626002,"remaining_time":137.144562,"test":[0.4978540244]}, -{"learn":[0.4964178209],"iteration":730,"passed_time":23.48136109,"remaining_time":137.1298639,"test":[0.4978522959]}, -{"learn":[0.4964164798],"iteration":731,"passed_time":23.51919862,"remaining_time":137.1310652,"test":[0.4978514018]}, -{"learn":[0.4964150493],"iteration":732,"passed_time":23.5579151,"remaining_time":137.1372766,"test":[0.4978503587]}, -{"learn":[0.4964139168],"iteration":733,"passed_time":23.59636513,"remaining_time":137.1418169,"test":[0.4978493753]}, -{"learn":[0.4964102213],"iteration":734,"passed_time":23.63148883,"remaining_time":137.1269386,"test":[0.497845948]}, -{"learn":[0.4964064662],"iteration":735,"passed_time":23.66728523,"remaining_time":137.1159025,"test":[0.4978429678]}, -{"learn":[0.4964055423],"iteration":736,"passed_time":23.70630644,"remaining_time":137.1234523,"test":[0.4978421631]}, -{"learn":[0.4964029793],"iteration":737,"passed_time":23.74342549,"remaining_time":137.1198908,"test":[0.4978401365]}, -{"learn":[0.4963958864],"iteration":738,"passed_time":23.7780644,"remaining_time":137.1019383,"test":[0.4978340867]}, -{"learn":[0.4963948731],"iteration":739,"passed_time":23.81585682,"remaining_time":137.1020947,"test":[0.4978331032]}, -{"learn":[0.4963923995],"iteration":740,"passed_time":23.85216734,"remaining_time":137.0936312,"test":[0.4978312853]}, -{"learn":[0.4963907902],"iteration":741,"passed_time":23.8883324,"remaining_time":137.0842579,"test":[0.4978298249]}, -{"learn":[0.4963876609],"iteration":742,"passed_time":23.92264402,"remaining_time":137.0641933,"test":[0.4978267851]}, -{"learn":[0.4963857238],"iteration":743,"passed_time":23.95861282,"remaining_time":137.0535701,"test":[0.497824997]}, -{"learn":[0.4963838164],"iteration":744,"passed_time":23.99569652,"remaining_time":137.0492466,"test":[0.4978233876]}, -{"learn":[0.4963805084],"iteration":745,"passed_time":24.03162003,"remaining_time":137.0382193,"test":[0.4978205862]}, -{"learn":[0.4963782732],"iteration":746,"passed_time":24.0681045,"remaining_time":137.0303192,"test":[0.4978189173]}, -{"learn":[0.4963758592],"iteration":747,"passed_time":24.10497363,"remaining_time":137.0245293,"test":[0.4978170696]}, -{"learn":[0.4963744287],"iteration":748,"passed_time":24.1414649,"remaining_time":137.0165117,"test":[0.4978152516]}, -{"learn":[0.496372581],"iteration":749,"passed_time":24.18021084,"remaining_time":137.0211948,"test":[0.4978137913]}, -{"learn":[0.4963703756],"iteration":750,"passed_time":24.21722827,"remaining_time":137.0159826,"test":[0.497812033]}, -{"learn":[0.4963684682],"iteration":751,"passed_time":24.25433081,"remaining_time":137.0111666,"test":[0.497810215]}, -{"learn":[0.4963673358],"iteration":752,"passed_time":24.29350662,"remaining_time":137.0179583,"test":[0.4978093209]}, -{"learn":[0.4963656966],"iteration":753,"passed_time":24.33103295,"remaining_time":137.0153394,"test":[0.4978075328]}, -{"learn":[0.4963592295],"iteration":754,"passed_time":24.36413832,"remaining_time":136.9877711,"test":[0.4978019002]}, -{"learn":[0.4963556532],"iteration":755,"passed_time":24.40085978,"remaining_time":136.9804879,"test":[0.4977988603]}, -{"learn":[0.4963524048],"iteration":756,"passed_time":24.4363259,"remaining_time":136.9660909,"test":[0.4977960589]}, -{"learn":[0.4963504378],"iteration":757,"passed_time":24.47518519,"remaining_time":136.9706274,"test":[0.4977943602]}, -{"learn":[0.4963465933],"iteration":758,"passed_time":24.51085755,"remaining_time":136.9572422,"test":[0.4977914992]}, -{"learn":[0.4963444774],"iteration":759,"passed_time":24.54958131,"remaining_time":136.960822,"test":[0.497789562]}, -{"learn":[0.4963429575],"iteration":760,"passed_time":24.58682689,"remaining_time":136.9560568,"test":[0.4977879825]}, -{"learn":[0.4963410203],"iteration":761,"passed_time":24.62295511,"remaining_time":136.9449918,"test":[0.4977864328]}, -{"learn":[0.4963345532],"iteration":762,"passed_time":24.65845722,"remaining_time":136.9303843,"test":[0.4977802339]}, -{"learn":[0.4963321094],"iteration":763,"passed_time":24.69542671,"remaining_time":136.923858,"test":[0.4977783861]}, -{"learn":[0.4963299636],"iteration":764,"passed_time":24.73268776,"remaining_time":136.9188662,"test":[0.497776449]}, -{"learn":[0.4963262384],"iteration":765,"passed_time":24.7675799,"remaining_time":136.9006962,"test":[0.4977731409]}, -{"learn":[0.4963251059],"iteration":766,"passed_time":24.80537496,"remaining_time":136.8985035,"test":[0.4977723959]}, -{"learn":[0.4963231687],"iteration":767,"passed_time":24.84234433,"remaining_time":136.8916682,"test":[0.4977709952]}, -{"learn":[0.4963210826],"iteration":768,"passed_time":24.87813082,"remaining_time":136.8782464,"test":[0.4977691772]}, -{"learn":[0.4963197414],"iteration":769,"passed_time":24.91570281,"remaining_time":136.8745752,"test":[0.4977680745]}, -{"learn":[0.4963186388],"iteration":770,"passed_time":24.9551282,"remaining_time":136.8809821,"test":[0.4977670315]}, -{"learn":[0.4963146155],"iteration":771,"passed_time":24.99121008,"remaining_time":136.8689589,"test":[0.4977637234]}, -{"learn":[0.4963117842],"iteration":772,"passed_time":25.02667542,"remaining_time":136.8535019,"test":[0.4977609518]}, -{"learn":[0.4963105921],"iteration":773,"passed_time":25.06585965,"remaining_time":136.8582983,"test":[0.4977602365]}, -{"learn":[0.4963069265],"iteration":774,"passed_time":25.10052706,"remaining_time":136.8383572,"test":[0.4977566901]}, -{"learn":[0.4963052277],"iteration":775,"passed_time":25.13804531,"remaining_time":136.8338961,"test":[0.4977549317]}, -{"learn":[0.4963023071],"iteration":776,"passed_time":25.17348776,"remaining_time":136.818068,"test":[0.4977521303]}, -{"learn":[0.4962999229],"iteration":777,"passed_time":25.21063467,"remaining_time":136.811439,"test":[0.4977506104]}, -{"learn":[0.4962977175],"iteration":778,"passed_time":25.24771332,"remaining_time":136.8043619,"test":[0.4977488818]}, -{"learn":[0.4962956016],"iteration":779,"passed_time":25.28371859,"remaining_time":136.7914006,"test":[0.4977471533]}, -{"learn":[0.496293277],"iteration":780,"passed_time":25.32004151,"remaining_time":136.7800962,"test":[0.4977453652]}, -{"learn":[0.4962912802],"iteration":781,"passed_time":25.35858378,"remaining_time":136.7806987,"test":[0.4977432194]}, -{"learn":[0.4962845747],"iteration":782,"passed_time":25.39348836,"remaining_time":136.7616097,"test":[0.4977370503]}, -{"learn":[0.4962836508],"iteration":783,"passed_time":25.43198629,"remaining_time":136.7618038,"test":[0.4977361563]}, -{"learn":[0.4962816541],"iteration":784,"passed_time":25.46939206,"remaining_time":136.7560351,"test":[0.4977343979]}, -{"learn":[0.496280462],"iteration":785,"passed_time":25.50780182,"remaining_time":136.7555686,"test":[0.4977335337]}, -{"learn":[0.4962787633],"iteration":786,"passed_time":25.54515793,"remaining_time":136.7493651,"test":[0.4977319243]}, -{"learn":[0.4962767367],"iteration":787,"passed_time":25.58207402,"remaining_time":136.7407307,"test":[0.4977301362]}, -{"learn":[0.4962737267],"iteration":788,"passed_time":25.6173676,"remaining_time":136.723365,"test":[0.4977275732]}, -{"learn":[0.4962717597],"iteration":789,"passed_time":25.65534204,"remaining_time":136.7202405,"test":[0.4977260235]}, -{"learn":[0.4962704186],"iteration":790,"passed_time":25.69274522,"remaining_time":136.7139882,"test":[0.4977251294]}, -{"learn":[0.4962668423],"iteration":791,"passed_time":25.72830408,"remaining_time":136.697858,"test":[0.4977215829]}, -{"learn":[0.4962651734],"iteration":792,"passed_time":25.76595318,"remaining_time":136.692768,"test":[0.4977201226]}, -{"learn":[0.4962640111],"iteration":793,"passed_time":25.80352082,"remaining_time":136.6871644,"test":[0.4977192583]}, -{"learn":[0.4962606733],"iteration":794,"passed_time":25.84051327,"remaining_time":136.6784381,"test":[0.4977165463]}, -{"learn":[0.4962553982],"iteration":795,"passed_time":25.87368726,"remaining_time":136.6494739,"test":[0.4977108839]}, -{"learn":[0.4962534611],"iteration":796,"passed_time":25.91135123,"remaining_time":136.6441772,"test":[0.4977093938]}, -{"learn":[0.4962523584],"iteration":797,"passed_time":25.9494681,"remaining_time":136.6411842,"test":[0.4977084997]}, -{"learn":[0.4962455635],"iteration":798,"passed_time":25.98304874,"remaining_time":136.6142525,"test":[0.4977028075]}, -{"learn":[0.4962434475],"iteration":799,"passed_time":26.01994972,"remaining_time":136.604736,"test":[0.4977010193]}, -{"learn":[0.4962414508],"iteration":800,"passed_time":26.05651357,"remaining_time":136.5933839,"test":[0.4976993504]}, -{"learn":[0.4962405567],"iteration":801,"passed_time":26.09493583,"remaining_time":136.5916965,"test":[0.4976984861]}, -{"learn":[0.4962382321],"iteration":802,"passed_time":26.12991163,"remaining_time":136.5719042,"test":[0.4976966384]}, -{"learn":[0.4962371294],"iteration":803,"passed_time":26.16761341,"remaining_time":136.5663008,"test":[0.4976958337]}, -{"learn":[0.4962332849],"iteration":804,"passed_time":26.20288058,"remaining_time":136.5479305,"test":[0.4976921084]}, -{"learn":[0.4962306623],"iteration":805,"passed_time":26.2403241,"remaining_time":136.5408428,"test":[0.4976902905]}, -{"learn":[0.4962208574],"iteration":806,"passed_time":26.27483983,"remaining_time":136.5184676,"test":[0.4976813796]}, -{"learn":[0.4962150161],"iteration":807,"passed_time":26.30996631,"remaining_time":136.4992312,"test":[0.4976755383]}, -{"learn":[0.4962138836],"iteration":808,"passed_time":26.34882182,"remaining_time":136.4992735,"test":[0.4976746741]}, -{"learn":[0.4962116782],"iteration":809,"passed_time":26.38649435,"remaining_time":136.4931004,"test":[0.4976729157]}, -{"learn":[0.4962096517],"iteration":810,"passed_time":26.42389675,"remaining_time":136.4854543,"test":[0.4976711574]}, -{"learn":[0.4962053303],"iteration":811,"passed_time":26.45999251,"remaining_time":136.4709959,"test":[0.4976674023]}, -{"learn":[0.4962041979],"iteration":812,"passed_time":26.49875296,"remaining_time":136.4702074,"test":[0.4976666274]}, -{"learn":[0.4962022309],"iteration":813,"passed_time":26.53421127,"remaining_time":136.4523444,"test":[0.4976649585]}, -{"learn":[0.4962001149],"iteration":814,"passed_time":26.57029154,"remaining_time":136.437632,"test":[0.4976633492]}, -{"learn":[0.4961970453],"iteration":815,"passed_time":26.6056659,"remaining_time":136.4192477,"test":[0.4976606074]}, -{"learn":[0.4961950485],"iteration":816,"passed_time":26.64241004,"remaining_time":136.407835,"test":[0.4976587]}, -{"learn":[0.496192873],"iteration":817,"passed_time":26.67892124,"remaining_time":136.3951695,"test":[0.4976570013]}, -{"learn":[0.4961912339],"iteration":818,"passed_time":26.71505016,"remaining_time":136.3804942,"test":[0.4976550939]}, -{"learn":[0.4961901908],"iteration":819,"passed_time":26.75320057,"remaining_time":136.3760712,"test":[0.4976542595]}, -{"learn":[0.4961892073],"iteration":820,"passed_time":26.79209568,"remaining_time":136.3753567,"test":[0.4976533952]}, -{"learn":[0.4961880152],"iteration":821,"passed_time":26.83012159,"remaining_time":136.3701314,"test":[0.4976524415]}, -{"learn":[0.4961859588],"iteration":822,"passed_time":26.86735153,"remaining_time":136.3607866,"test":[0.4976509812]}, -{"learn":[0.4961847667],"iteration":823,"passed_time":26.90640469,"remaining_time":136.3606141,"test":[0.4976501468]}, -{"learn":[0.4961834256],"iteration":824,"passed_time":26.9439866,"remaining_time":136.3529019,"test":[0.4976492229]}, -{"learn":[0.4961825018],"iteration":825,"passed_time":26.98202891,"remaining_time":136.3474439,"test":[0.4976484778]}, -{"learn":[0.4961809819],"iteration":826,"passed_time":27.01796044,"remaining_time":136.3312562,"test":[0.4976466599]}, -{"learn":[0.4961688821],"iteration":827,"passed_time":27.04958833,"remaining_time":136.2933364,"test":[0.4976359013]}, -{"learn":[0.4961669748],"iteration":828,"passed_time":27.08543924,"remaining_time":136.2766792,"test":[0.4976343217]}, -{"learn":[0.4961653654],"iteration":829,"passed_time":27.1223668,"remaining_time":136.265385,"test":[0.4976327124]}, -{"learn":[0.4961643224],"iteration":830,"passed_time":27.16207905,"remaining_time":136.2679995,"test":[0.4976318481]}, -{"learn":[0.4961604779],"iteration":831,"passed_time":27.19861738,"remaining_time":136.2546121,"test":[0.4976290169]}, -{"learn":[0.4961585705],"iteration":832,"passed_time":27.23455062,"remaining_time":136.2381422,"test":[0.4976273182]}, -{"learn":[0.4961576168],"iteration":833,"passed_time":27.27285733,"remaining_time":136.2334816,"test":[0.4976264539]}, -{"learn":[0.4961557989],"iteration":834,"passed_time":27.31033878,"remaining_time":136.224624,"test":[0.4976248148]}, -{"learn":[0.4961541598],"iteration":835,"passed_time":27.34681252,"remaining_time":136.2106786,"test":[0.4976231757]}, -{"learn":[0.4961531167],"iteration":836,"passed_time":27.3859726,"remaining_time":136.2100405,"test":[0.4976222816]}, -{"learn":[0.496149302],"iteration":837,"passed_time":27.4207568,"remaining_time":136.1875773,"test":[0.4976191822]}, -{"learn":[0.4961427455],"iteration":838,"passed_time":27.45427227,"remaining_time":136.1587925,"test":[0.4976130727]}, -{"learn":[0.4961416428],"iteration":839,"passed_time":27.49298952,"remaining_time":136.1557576,"test":[0.4976122382]}, -{"learn":[0.4961293642],"iteration":840,"passed_time":27.52726223,"remaining_time":136.1306583,"test":[0.4976009133]}, -{"learn":[0.4961275463],"iteration":841,"passed_time":27.56445233,"remaining_time":136.1199439,"test":[0.4975994828]}, -{"learn":[0.4961264734],"iteration":842,"passed_time":27.60178116,"remaining_time":136.1098509,"test":[0.4975984993]}, -{"learn":[0.496124119],"iteration":843,"passed_time":27.63819429,"remaining_time":136.0951842,"test":[0.4975966218]}, -{"learn":[0.496123225],"iteration":844,"passed_time":27.67736179,"remaining_time":136.0940098,"test":[0.4975957277]}, -{"learn":[0.4961203043],"iteration":845,"passed_time":27.71441437,"remaining_time":136.0823609,"test":[0.4975929561]}, -{"learn":[0.4961177115],"iteration":846,"passed_time":27.75116173,"remaining_time":136.0691555,"test":[0.4975912872]}, -{"learn":[0.4961167281],"iteration":847,"passed_time":27.78950267,"remaining_time":136.063697,"test":[0.4975903037]}, -{"learn":[0.496098191],"iteration":848,"passed_time":27.82206387,"remaining_time":136.0299024,"test":[0.4975734356]}, -{"learn":[0.4960957174],"iteration":849,"passed_time":27.85887967,"remaining_time":136.0168831,"test":[0.4975717071]}, -{"learn":[0.4960924094],"iteration":850,"passed_time":27.89504004,"remaining_time":136.0006123,"test":[0.4975690547]}, -{"learn":[0.4960864489],"iteration":851,"passed_time":27.92941745,"remaining_time":135.9756145,"test":[0.4975631538]}, -{"learn":[0.4960846012],"iteration":852,"passed_time":27.96635834,"remaining_time":135.9630575,"test":[0.4975614849]}, -{"learn":[0.4960834389],"iteration":853,"passed_time":28.00586549,"remaining_time":135.962902,"test":[0.49756071]}, -{"learn":[0.4960800712],"iteration":854,"passed_time":28.04164711,"remaining_time":135.9445933,"test":[0.4975579086]}, -{"learn":[0.4960781639],"iteration":855,"passed_time":28.07862411,"remaining_time":135.9320308,"test":[0.4975561204]}, -{"learn":[0.4960763757],"iteration":856,"passed_time":28.11419147,"remaining_time":135.9125966,"test":[0.4975544813]}, -{"learn":[0.4960745876],"iteration":857,"passed_time":28.15120667,"remaining_time":135.9001143,"test":[0.4975526634]}, -{"learn":[0.4960711901],"iteration":858,"passed_time":28.186301,"remaining_time":135.8783148,"test":[0.4975499514]}, -{"learn":[0.4960699086],"iteration":859,"passed_time":28.2247419,"remaining_time":135.8725947,"test":[0.4975489381]}, -{"learn":[0.4960665708],"iteration":860,"passed_time":28.26207138,"remaining_time":135.8614558,"test":[0.4975459281]}, -{"learn":[0.4960644846],"iteration":861,"passed_time":28.2975047,"remaining_time":135.8411537,"test":[0.4975442293]}, -{"learn":[0.4960561995],"iteration":862,"passed_time":28.33020533,"remaining_time":135.8077166,"test":[0.4975365999]}, -{"learn":[0.4960542624],"iteration":863,"passed_time":28.36710982,"remaining_time":135.7944053,"test":[0.4975349012]}, -{"learn":[0.4960505669],"iteration":864,"passed_time":28.40182056,"remaining_time":135.7705526,"test":[0.4975316229]}, -{"learn":[0.4960480635],"iteration":865,"passed_time":28.43722716,"remaining_time":135.7499966,"test":[0.497529656]}, -{"learn":[0.4960420732],"iteration":866,"passed_time":28.47145293,"remaining_time":135.7237773,"test":[0.4975244108]}, -{"learn":[0.4960412388],"iteration":867,"passed_time":28.51002193,"remaining_time":135.718215,"test":[0.4975235763]}, -{"learn":[0.496038497],"iteration":868,"passed_time":28.54532398,"remaining_time":135.6970464,"test":[0.4975210431]}, -{"learn":[0.4960375135],"iteration":869,"passed_time":28.5821467,"remaining_time":135.6830642,"test":[0.4975201192]}, -{"learn":[0.4960353379],"iteration":870,"passed_time":28.61812501,"remaining_time":135.6650266,"test":[0.4975183609]}, -{"learn":[0.496033222],"iteration":871,"passed_time":28.65483101,"remaining_time":135.6503927,"test":[0.4975165132]}, -{"learn":[0.4960297053],"iteration":872,"passed_time":28.69077862,"remaining_time":135.632123,"test":[0.4975138608]}, -{"learn":[0.4960276787],"iteration":873,"passed_time":28.7272856,"remaining_time":135.6164536,"test":[0.4975119832]}, -{"learn":[0.4960263674],"iteration":874,"passed_time":28.76560843,"remaining_time":135.6092969,"test":[0.4975111786]}, -{"learn":[0.4960246091],"iteration":875,"passed_time":28.80404209,"remaining_time":135.6025908,"test":[0.4975098076]}, -{"learn":[0.4960237746],"iteration":876,"passed_time":28.84114612,"remaining_time":135.5895615,"test":[0.4975090626]}, -{"learn":[0.4960228209],"iteration":877,"passed_time":28.87852447,"remaining_time":135.5777652,"test":[0.4975081983]}, -{"learn":[0.4960218077],"iteration":878,"passed_time":28.91725977,"remaining_time":135.5722725,"test":[0.4975073937]}, -{"learn":[0.4960195129],"iteration":879,"passed_time":28.95308956,"remaining_time":135.5531011,"test":[0.4975056651]}, -{"learn":[0.4960186784],"iteration":880,"passed_time":28.99099248,"remaining_time":135.5435846,"test":[0.4975047413]}, -{"learn":[0.4960145657],"iteration":881,"passed_time":29.02505487,"remaining_time":135.5160725,"test":[0.497501165]}, -{"learn":[0.4960136418],"iteration":882,"passed_time":29.06320017,"remaining_time":135.5075822,"test":[0.4975003603]}, -{"learn":[0.4960123007],"iteration":883,"passed_time":29.10081989,"remaining_time":135.4965777,"test":[0.4974994662]}, -{"learn":[0.4960099463],"iteration":884,"passed_time":29.13646011,"remaining_time":135.4763089,"test":[0.4974979761]}, -{"learn":[0.4960068767],"iteration":885,"passed_time":29.17109937,"remaining_time":135.4513576,"test":[0.4974949065]}, -{"learn":[0.496005923],"iteration":886,"passed_time":29.20985825,"remaining_time":135.445487,"test":[0.497494072]}, -{"learn":[0.4960039263],"iteration":887,"passed_time":29.24517201,"remaining_time":135.4235893,"test":[0.4974922243]}, -{"learn":[0.4960020785],"iteration":888,"passed_time":29.28238969,"remaining_time":135.4104657,"test":[0.4974905255]}, -{"learn":[0.496000946],"iteration":889,"passed_time":29.32108459,"remaining_time":135.4041097,"test":[0.4974895421]}, -{"learn":[0.4959970121],"iteration":890,"passed_time":29.35546332,"remaining_time":135.3777764,"test":[0.497485936]}, -{"learn":[0.4959936743],"iteration":891,"passed_time":29.39139603,"remaining_time":135.3585817,"test":[0.4974832538]}, -{"learn":[0.4959916775],"iteration":892,"passed_time":29.42856573,"remaining_time":135.3450386,"test":[0.4974817637]}, -{"learn":[0.4959899192],"iteration":893,"passed_time":29.46470564,"remaining_time":135.3267129,"test":[0.4974802735]}, -{"learn":[0.4959887271],"iteration":894,"passed_time":29.5025116,"remaining_time":135.315989,"test":[0.4974794093]}, -{"learn":[0.4959865217],"iteration":895,"passed_time":29.53923558,"remaining_time":135.3002487,"test":[0.4974775019]}, -{"learn":[0.495984823],"iteration":896,"passed_time":29.57581216,"remaining_time":135.2837874,"test":[0.4974759224]}, -{"learn":[0.4959839587],"iteration":897,"passed_time":29.61351191,"remaining_time":135.2724119,"test":[0.4974751177]}, -{"learn":[0.495982111],"iteration":898,"passed_time":29.65057286,"remaining_time":135.2580637,"test":[0.4974736276]}, -{"learn":[0.4959807997],"iteration":899,"passed_time":29.68886075,"remaining_time":135.2492545,"test":[0.497472674]}, -{"learn":[0.4959791904],"iteration":900,"passed_time":29.72624277,"remaining_time":135.2362587,"test":[0.4974713627]}, -{"learn":[0.4959775512],"iteration":901,"passed_time":29.76360864,"remaining_time":135.2231355,"test":[0.4974698427]}, -{"learn":[0.4959764783],"iteration":902,"passed_time":29.80176002,"remaining_time":135.2135225,"test":[0.4974688295]}, -{"learn":[0.4959750776],"iteration":903,"passed_time":29.84079552,"remaining_time":135.2078523,"test":[0.4974678162]}, -{"learn":[0.4959740047],"iteration":904,"passed_time":29.87922451,"remaining_time":135.199364,"test":[0.4974669221]}, -{"learn":[0.4959723656],"iteration":905,"passed_time":29.91517737,"remaining_time":135.1796205,"test":[0.4974653128]}, -{"learn":[0.4959712033],"iteration":906,"passed_time":29.95411129,"remaining_time":135.1732938,"test":[0.4974644485]}, -{"learn":[0.4959702795],"iteration":907,"passed_time":29.99207957,"remaining_time":135.1625436,"test":[0.4974635544]}, -{"learn":[0.4959681337],"iteration":908,"passed_time":30.02879293,"remaining_time":135.1460857,"test":[0.4974620345]}, -{"learn":[0.4959659581],"iteration":909,"passed_time":30.06517349,"remaining_time":135.1280874,"test":[0.4974602762]}, -{"learn":[0.4959640508],"iteration":910,"passed_time":30.10132015,"remaining_time":135.108999,"test":[0.4974586073]}, -{"learn":[0.4959614878],"iteration":911,"passed_time":30.13857563,"remaining_time":135.0948434,"test":[0.4974568787]}, -{"learn":[0.4959606533],"iteration":912,"passed_time":30.17760755,"remaining_time":135.0885893,"test":[0.4974560145]}, -{"learn":[0.4959598486],"iteration":913,"passed_time":30.21570594,"remaining_time":135.0780902,"test":[0.4974552098]}, -{"learn":[0.4959569578],"iteration":914,"passed_time":30.25222523,"remaining_time":135.0604809,"test":[0.497452468]}, -{"learn":[0.4959549611],"iteration":915,"passed_time":30.29109269,"remaining_time":135.0532997,"test":[0.4974507096]}, -{"learn":[0.4959527855],"iteration":916,"passed_time":30.32681481,"remaining_time":135.0320446,"test":[0.4974489811]}, -{"learn":[0.4959518616],"iteration":917,"passed_time":30.364221,"remaining_time":135.0182463,"test":[0.4974481466]}, -{"learn":[0.495948494],"iteration":918,"passed_time":30.39992761,"remaining_time":134.9968494,"test":[0.4974452558]}, -{"learn":[0.4959468548],"iteration":919,"passed_time":30.43588135,"remaining_time":134.9765173,"test":[0.4974436763]}, -{"learn":[0.4959458416],"iteration":920,"passed_time":30.47360407,"remaining_time":134.9639859,"test":[0.4974428418]}, -{"learn":[0.4959438746],"iteration":921,"passed_time":30.51101968,"remaining_time":134.9500415,"test":[0.4974410239]}, -{"learn":[0.495940954],"iteration":922,"passed_time":30.54629445,"remaining_time":134.9265899,"test":[0.4974384907]}, -{"learn":[0.4959399407],"iteration":923,"passed_time":30.58284476,"remaining_time":134.9087394,"test":[0.4974377456]}, -{"learn":[0.4959387784],"iteration":924,"passed_time":30.62083065,"remaining_time":134.8971729,"test":[0.497436941]}, -{"learn":[0.4959365134],"iteration":925,"passed_time":30.65797167,"remaining_time":134.8818321,"test":[0.4974353018]}, -{"learn":[0.4959349339],"iteration":926,"passed_time":30.69598155,"remaining_time":134.870262,"test":[0.4974337223]}, -{"learn":[0.4959337716],"iteration":927,"passed_time":30.73433514,"remaining_time":134.860143,"test":[0.4974328581]}, -{"learn":[0.495932967],"iteration":928,"passed_time":30.77373453,"remaining_time":134.854546,"test":[0.4974321428]}, -{"learn":[0.4959318345],"iteration":929,"passed_time":30.81177655,"remaining_time":134.8429361,"test":[0.4974312189]}, -{"learn":[0.4959288244],"iteration":930,"passed_time":30.84789523,"remaining_time":134.8228633,"test":[0.4974284771]}, -{"learn":[0.4959219401],"iteration":931,"passed_time":30.88270972,"remaining_time":134.7970634,"test":[0.4974224869]}, -{"learn":[0.4959191685],"iteration":932,"passed_time":30.9194159,"remaining_time":134.7794903,"test":[0.4974199537]}, -{"learn":[0.4959170525],"iteration":933,"passed_time":30.95525563,"remaining_time":134.7581043,"test":[0.4974182549]}, -{"learn":[0.4959149962],"iteration":934,"passed_time":30.99329001,"remaining_time":134.7462288,"test":[0.4974164072]}, -{"learn":[0.4959137743],"iteration":935,"passed_time":31.03224006,"remaining_time":134.7382731,"test":[0.4974155131]}, -{"learn":[0.495912761],"iteration":936,"passed_time":31.06963951,"remaining_time":134.7235276,"test":[0.4974147979]}, -{"learn":[0.4959110623],"iteration":937,"passed_time":31.10653409,"remaining_time":134.7065474,"test":[0.4974133673]}, -{"learn":[0.495908231],"iteration":938,"passed_time":31.14316184,"remaining_time":134.6883709,"test":[0.4974109832]}, -{"learn":[0.4959065323],"iteration":939,"passed_time":31.18092994,"remaining_time":134.6750804,"test":[0.4974094334]}, -{"learn":[0.4959042673],"iteration":940,"passed_time":31.21758706,"remaining_time":134.6569457,"test":[0.4974077943]}, -{"learn":[0.4958987837],"iteration":941,"passed_time":31.25241082,"remaining_time":134.6308738,"test":[0.4974028769]}, -{"learn":[0.4958972042],"iteration":942,"passed_time":31.28985847,"remaining_time":134.6160719,"test":[0.4974015954]}, -{"learn":[0.4958951478],"iteration":943,"passed_time":31.32656781,"remaining_time":134.5980498,"test":[0.4973999563]}, -{"learn":[0.4958943133],"iteration":944,"passed_time":31.36436008,"remaining_time":134.584635,"test":[0.497399241]}, -{"learn":[0.4958931809],"iteration":945,"passed_time":31.40218349,"remaining_time":134.5713022,"test":[0.497398347]}, -{"learn":[0.4958921676],"iteration":946,"passed_time":31.44047417,"remaining_time":134.5599174,"test":[0.4973973635]}, -{"learn":[0.4958901708],"iteration":947,"passed_time":31.47690109,"remaining_time":134.5405097,"test":[0.4973956946]}, -{"learn":[0.4958880847],"iteration":948,"passed_time":31.51374306,"remaining_time":134.5228379,"test":[0.4973939958]}, -{"learn":[0.4958856111],"iteration":949,"passed_time":31.54913983,"remaining_time":134.4989645,"test":[0.4973921481]}, -{"learn":[0.4958840315],"iteration":950,"passed_time":31.58498158,"remaining_time":134.4769615,"test":[0.4973904792]}, -{"learn":[0.4958831673],"iteration":951,"passed_time":31.62241716,"remaining_time":134.4617066,"test":[0.4973897043]}, -{"learn":[0.4958819752],"iteration":952,"passed_time":31.66108344,"remaining_time":134.4516314,"test":[0.497388691]}, -{"learn":[0.4958803361],"iteration":953,"passed_time":31.69632973,"remaining_time":134.4269917,"test":[0.4973872903]}, -{"learn":[0.495879144],"iteration":954,"passed_time":31.73431113,"remaining_time":134.4139147,"test":[0.4973863962]}, -{"learn":[0.4958727067],"iteration":955,"passed_time":31.76843626,"remaining_time":134.3844731,"test":[0.4973808232]}, -{"learn":[0.495871604],"iteration":956,"passed_time":31.80520123,"remaining_time":134.366174,"test":[0.4973793033]}, -{"learn":[0.4958682959],"iteration":957,"passed_time":31.84164487,"remaining_time":134.3464808,"test":[0.4973765019]}, -{"learn":[0.495867223],"iteration":958,"passed_time":31.87918164,"remaining_time":134.3313587,"test":[0.4973756674]}, -{"learn":[0.4958654647],"iteration":959,"passed_time":31.91638457,"remaining_time":134.3147851,"test":[0.4973739687]}, -{"learn":[0.495864362],"iteration":960,"passed_time":31.95331063,"remaining_time":134.2970048,"test":[0.4973731342]}, -{"learn":[0.4958624249],"iteration":961,"passed_time":31.99000438,"remaining_time":134.2782097,"test":[0.4973714355]}, -{"learn":[0.4958601301],"iteration":962,"passed_time":32.02694596,"remaining_time":134.2604162,"test":[0.4973697964]}, -{"learn":[0.495859087],"iteration":963,"passed_time":32.06513682,"remaining_time":134.2478135,"test":[0.4973687831]}, -{"learn":[0.4958569114],"iteration":964,"passed_time":32.1017306,"remaining_time":134.2284797,"test":[0.4973673228]}, -{"learn":[0.4958552425],"iteration":965,"passed_time":32.13969957,"remaining_time":134.2148531,"test":[0.497365624]}, -{"learn":[0.4958530073],"iteration":966,"passed_time":32.17574115,"remaining_time":134.1931376,"test":[0.4973638955]}, -{"learn":[0.4958520835],"iteration":967,"passed_time":32.21422989,"remaining_time":134.1815856,"test":[0.4973630908]}, -{"learn":[0.4958510702],"iteration":968,"passed_time":32.25409146,"remaining_time":134.175689,"test":[0.497362316]}, -{"learn":[0.4958499675],"iteration":969,"passed_time":32.29350519,"remaining_time":134.1678618,"test":[0.4973614815]}, -{"learn":[0.4958481794],"iteration":970,"passed_time":32.32974053,"remaining_time":134.1467812,"test":[0.4973598424]}, -{"learn":[0.4958473449],"iteration":971,"passed_time":32.36804767,"remaining_time":134.1342551,"test":[0.4973588887]}, -{"learn":[0.4958462124],"iteration":972,"passed_time":32.40710754,"remaining_time":134.1247914,"test":[0.4973582629]}, -{"learn":[0.4958444541],"iteration":973,"passed_time":32.44573314,"remaining_time":134.1134719,"test":[0.4973566237]}, -{"learn":[0.4958428149],"iteration":974,"passed_time":32.48096459,"remaining_time":134.0880846,"test":[0.497355223]}, -{"learn":[0.4958418315],"iteration":975,"passed_time":32.51909829,"remaining_time":134.0746429,"test":[0.4973543289]}, -{"learn":[0.4958395665],"iteration":976,"passed_time":32.55481735,"remaining_time":134.051208,"test":[0.4973527196]}, -{"learn":[0.4958376889],"iteration":977,"passed_time":32.59121461,"remaining_time":134.030537,"test":[0.4973510507]}, -{"learn":[0.4958365863],"iteration":978,"passed_time":32.62928918,"remaining_time":134.016723,"test":[0.497349948]}, -{"learn":[0.4958342915],"iteration":979,"passed_time":32.66447934,"remaining_time":133.9910275,"test":[0.4973483685]}, -{"learn":[0.4958331292],"iteration":980,"passed_time":32.7020949,"remaining_time":133.9752491,"test":[0.4973474744]}, -{"learn":[0.4958322351],"iteration":981,"passed_time":32.73969944,"remaining_time":133.9593812,"test":[0.4973466399]}, -{"learn":[0.4958314007],"iteration":982,"passed_time":32.77835862,"remaining_time":133.9477788,"test":[0.4973458055]}, -{"learn":[0.4958297317],"iteration":983,"passed_time":32.8162126,"remaining_time":133.9328352,"test":[0.4973442856]}, -{"learn":[0.4958274369],"iteration":984,"passed_time":32.8520843,"remaining_time":133.9097649,"test":[0.497342408]}, -{"learn":[0.49582547],"iteration":985,"passed_time":32.89000939,"remaining_time":133.8950281,"test":[0.4973410073]}, -{"learn":[0.4958236521],"iteration":986,"passed_time":32.92661748,"remaining_time":133.8748895,"test":[0.4973393682]}, -{"learn":[0.4958200162],"iteration":987,"passed_time":32.96193443,"remaining_time":133.8494746,"test":[0.4973358813]}, -{"learn":[0.49581793],"iteration":988,"passed_time":32.99966306,"remaining_time":133.8338206,"test":[0.497334123]}, -{"learn":[0.4958157246],"iteration":989,"passed_time":33.03738777,"remaining_time":133.818106,"test":[0.4973325435]}, -{"learn":[0.4958147114],"iteration":990,"passed_time":33.07566477,"remaining_time":133.8045813,"test":[0.4973317984]}, -{"learn":[0.4958136981],"iteration":991,"passed_time":33.11523189,"remaining_time":133.7962192,"test":[0.4973309043]}, -{"learn":[0.4958117907],"iteration":992,"passed_time":33.15199857,"remaining_time":133.7764937,"test":[0.497329295]}, -{"learn":[0.4958098238],"iteration":993,"passed_time":33.18734683,"remaining_time":133.7510175,"test":[0.4973275963]}, -{"learn":[0.4958088105],"iteration":994,"passed_time":33.22579166,"remaining_time":133.7379855,"test":[0.4973267618]}, -{"learn":[0.4958076482],"iteration":995,"passed_time":33.26387578,"remaining_time":133.7234524,"test":[0.4973258975]}, -{"learn":[0.4958061283],"iteration":996,"passed_time":33.29985548,"remaining_time":133.7004227,"test":[0.4973244074]}, -{"learn":[0.495804817],"iteration":997,"passed_time":33.33748041,"remaining_time":133.6839645,"test":[0.4973234835]}, -{"learn":[0.495802701],"iteration":998,"passed_time":33.37430334,"remaining_time":133.6642519,"test":[0.4973215464]}, -{"learn":[0.4958004658],"iteration":999,"passed_time":33.41062108,"remaining_time":133.6424843,"test":[0.4973199967]}, -{"learn":[0.4957986479],"iteration":1000,"passed_time":33.44790476,"remaining_time":133.6245466,"test":[0.4973185066]}, -{"learn":[0.4957975154],"iteration":1001,"passed_time":33.48598122,"remaining_time":133.6097335,"test":[0.4973175529]}, -{"learn":[0.4957967108],"iteration":1002,"passed_time":33.52414526,"remaining_time":133.5952229,"test":[0.4973167482]}, -{"learn":[0.4957925086],"iteration":1003,"passed_time":33.55802974,"remaining_time":133.5636323,"test":[0.4973129931]}, -{"learn":[0.4957893496],"iteration":1004,"passed_time":33.59458886,"remaining_time":133.5426692,"test":[0.4973101619]}, -{"learn":[0.4957865184],"iteration":1005,"passed_time":33.62995527,"remaining_time":133.5169397,"test":[0.4973075989]}, -{"learn":[0.4957851475],"iteration":1006,"passed_time":33.66697574,"remaining_time":133.4977499,"test":[0.4973062578]}, -{"learn":[0.4957731073],"iteration":1007,"passed_time":33.69863969,"remaining_time":133.4573111,"test":[0.4972954992]}, -{"learn":[0.4957664018],"iteration":1008,"passed_time":33.73337317,"remaining_time":133.429031,"test":[0.4972898367]}, -{"learn":[0.4957605009],"iteration":1009,"passed_time":33.76778049,"remaining_time":133.3994497,"test":[0.4972847703]}, -{"learn":[0.4957595175],"iteration":1010,"passed_time":33.806047,"remaining_time":133.3850856,"test":[0.4972839657]}, -{"learn":[0.4957582658],"iteration":1011,"passed_time":33.84384093,"remaining_time":133.3688119,"test":[0.4972828928]}, -{"learn":[0.4957564776],"iteration":1012,"passed_time":33.88050382,"remaining_time":133.3480442,"test":[0.4972814921]}, -{"learn":[0.4957555836],"iteration":1013,"passed_time":33.91870403,"remaining_time":133.3332882,"test":[0.4972806278]}, -{"learn":[0.4957549279],"iteration":1014,"passed_time":33.95740837,"remaining_time":133.3204654,"test":[0.4972798828]}, -{"learn":[0.4957519179],"iteration":1015,"passed_time":33.99479201,"remaining_time":133.3024127,"test":[0.49727729]}, -{"learn":[0.4957135027],"iteration":1016,"passed_time":34.02725646,"remaining_time":133.2650565,"test":[0.4972440008]}, -{"learn":[0.4957121914],"iteration":1017,"passed_time":34.06564241,"remaining_time":133.2508724,"test":[0.4972432259]}, -{"learn":[0.4957043534],"iteration":1018,"passed_time":34.1003302,"remaining_time":133.2221929,"test":[0.4972363714]}, -{"learn":[0.4957029825],"iteration":1019,"passed_time":34.13763281,"remaining_time":133.2037045,"test":[0.497234762]}, -{"learn":[0.4957010751],"iteration":1020,"passed_time":34.17339066,"remaining_time":133.1791591,"test":[0.4972333613]}, -{"learn":[0.4957002108],"iteration":1021,"passed_time":34.21167138,"remaining_time":133.1644117,"test":[0.4972324971]}, -{"learn":[0.4956986611],"iteration":1022,"passed_time":34.24723504,"remaining_time":133.1390555,"test":[0.4972309772]}, -{"learn":[0.4956964558],"iteration":1023,"passed_time":34.28310899,"remaining_time":133.1148841,"test":[0.4972294572]}, -{"learn":[0.4956942802],"iteration":1024,"passed_time":34.32270786,"remaining_time":133.1051353,"test":[0.4972276393]}, -{"learn":[0.4956900185],"iteration":1025,"passed_time":34.35707978,"remaining_time":133.0750829,"test":[0.4972239438]}, -{"learn":[0.4956879919],"iteration":1026,"passed_time":34.39472205,"remaining_time":133.0576735,"test":[0.4972224835]}, -{"learn":[0.4956850117],"iteration":1027,"passed_time":34.43104451,"remaining_time":133.0351253,"test":[0.4972199503]}, -{"learn":[0.4956833129],"iteration":1028,"passed_time":34.46790001,"remaining_time":133.0146073,"test":[0.49721849]}, -{"learn":[0.4956815546],"iteration":1029,"passed_time":34.50480698,"remaining_time":132.994256,"test":[0.4972168807]}, -{"learn":[0.4956806009],"iteration":1030,"passed_time":34.54227987,"remaining_time":132.9760512,"test":[0.497216076]}, -{"learn":[0.4956797665],"iteration":1031,"passed_time":34.58029619,"remaining_time":132.9598985,"test":[0.4972153309]}, -{"learn":[0.4956766372],"iteration":1032,"passed_time":34.61631202,"remaining_time":132.9360211,"test":[0.4972124699]}, -{"learn":[0.4956754451],"iteration":1033,"passed_time":34.65327463,"remaining_time":132.9157516,"test":[0.4972115758]}, -{"learn":[0.4956737762],"iteration":1034,"passed_time":34.69059312,"remaining_time":132.8968132,"test":[0.4972098175]}, -{"learn":[0.495671839],"iteration":1035,"passed_time":34.72763525,"remaining_time":132.876782,"test":[0.4972081784]}, -{"learn":[0.4956681137],"iteration":1036,"passed_time":34.7625609,"remaining_time":132.8486296,"test":[0.497205377]}, -{"learn":[0.4956619745],"iteration":1037,"passed_time":34.79615814,"remaining_time":132.8153936,"test":[0.4971998039]}, -{"learn":[0.4956602161],"iteration":1038,"passed_time":34.83268605,"remaining_time":132.7933296,"test":[0.4971982244]}, -{"learn":[0.495658279],"iteration":1039,"passed_time":34.86939927,"remaining_time":132.7719434,"test":[0.4971967045]}, -{"learn":[0.4956552093],"iteration":1040,"passed_time":34.90576285,"remaining_time":132.749198,"test":[0.4971942011]}, -{"learn":[0.4956536298],"iteration":1041,"passed_time":34.94428787,"remaining_time":132.7346367,"test":[0.4971928898]}, -{"learn":[0.4956526463],"iteration":1042,"passed_time":34.98382016,"remaining_time":132.7238508,"test":[0.4971921447]}, -{"learn":[0.4956517821],"iteration":1043,"passed_time":35.02281103,"remaining_time":132.7109583,"test":[0.4971912209]}, -{"learn":[0.4956509476],"iteration":1044,"passed_time":35.06191623,"remaining_time":132.6984485,"test":[0.4971905056]}, -{"learn":[0.4956473415],"iteration":1045,"passed_time":35.09843732,"remaining_time":132.6761196,"test":[0.4971872571]}, -{"learn":[0.4956440335],"iteration":1046,"passed_time":35.13398262,"remaining_time":132.6500796,"test":[0.4971842471]}, -{"learn":[0.4956431692],"iteration":1047,"passed_time":35.17251086,"remaining_time":132.63527,"test":[0.4971835021]}, -{"learn":[0.4956422155],"iteration":1048,"passed_time":35.21177212,"remaining_time":132.623176,"test":[0.497182757]}, -{"learn":[0.4956405764],"iteration":1049,"passed_time":35.24796798,"remaining_time":132.5994986,"test":[0.4971812967]}, -{"learn":[0.4956386393],"iteration":1050,"passed_time":35.28476753,"remaining_time":132.5780656,"test":[0.4971799258]}, -{"learn":[0.4956371789],"iteration":1051,"passed_time":35.32209604,"remaining_time":132.5585886,"test":[0.4971784357]}, -{"learn":[0.4956352716],"iteration":1052,"passed_time":35.35834833,"remaining_time":132.5350436,"test":[0.4971766773]}, -{"learn":[0.4956341093],"iteration":1053,"passed_time":35.39683934,"remaining_time":132.5198558,"test":[0.4971759621]}, -{"learn":[0.4956286555],"iteration":1054,"passed_time":35.43180057,"remaining_time":132.4914249,"test":[0.4971711043]}, -{"learn":[0.4956271654],"iteration":1055,"passed_time":35.47047941,"remaining_time":132.4768663,"test":[0.4971697036]}, -{"learn":[0.4956240957],"iteration":1056,"passed_time":35.50637495,"remaining_time":132.4518793,"test":[0.497167081]}, -{"learn":[0.4956210559],"iteration":1057,"passed_time":35.54275571,"remaining_time":132.4286796,"test":[0.4971647862]}, -{"learn":[0.4956199532],"iteration":1058,"passed_time":35.58119332,"remaining_time":132.4131094,"test":[0.4971639219]}, -{"learn":[0.4956181353],"iteration":1059,"passed_time":35.6186606,"remaining_time":132.3938894,"test":[0.4971624914]}, -{"learn":[0.4956165557],"iteration":1060,"passed_time":35.65450232,"remaining_time":132.3686,"test":[0.4971608225]}, -{"learn":[0.4956130093],"iteration":1061,"passed_time":35.68981517,"remaining_time":132.3413297,"test":[0.4971577529]}, -{"learn":[0.4956102078],"iteration":1062,"passed_time":35.72669179,"remaining_time":132.3198359,"test":[0.4971553985]}, -{"learn":[0.4956094032],"iteration":1063,"passed_time":35.76486227,"remaining_time":132.3030995,"test":[0.4971544746]}, -{"learn":[0.4956081217],"iteration":1064,"passed_time":35.80347563,"remaining_time":132.2879592,"test":[0.4971536997]}, -{"learn":[0.4956069892],"iteration":1065,"passed_time":35.84138501,"remaining_time":132.2701769,"test":[0.4971529249]}, -{"learn":[0.4956059461],"iteration":1066,"passed_time":35.87990693,"remaining_time":132.2546148,"test":[0.4971520308]}, -{"learn":[0.4956000154],"iteration":1067,"passed_time":35.91391434,"remaining_time":132.2223887,"test":[0.4971469048]}, -{"learn":[0.4955969756],"iteration":1068,"passed_time":35.95061768,"remaining_time":132.2000731,"test":[0.4971441928]}, -{"learn":[0.4955949193],"iteration":1069,"passed_time":35.98678835,"remaining_time":132.1757741,"test":[0.4971425537]}, -{"learn":[0.4955937868],"iteration":1070,"passed_time":36.02585657,"remaining_time":132.1620826,"test":[0.4971418682]}, -{"learn":[0.4955909257],"iteration":1071,"passed_time":36.06137191,"remaining_time":132.1353254,"test":[0.4971387688]}, -{"learn":[0.495586962],"iteration":1072,"passed_time":36.09827428,"remaining_time":132.1136282,"test":[0.4971354011]}, -{"learn":[0.4955849653],"iteration":1073,"passed_time":36.13497575,"remaining_time":132.0911684,"test":[0.497133911]}, -{"learn":[0.4955831175],"iteration":1074,"passed_time":36.1710288,"remaining_time":132.0663145,"test":[0.4971323613]}, -{"learn":[0.4955822235],"iteration":1075,"passed_time":36.22760743,"remaining_time":132.1162933,"test":[0.497131348]}, -{"learn":[0.495581091],"iteration":1076,"passed_time":36.26609831,"remaining_time":132.1001891,"test":[0.4971307221]}, -{"learn":[0.4955800181],"iteration":1077,"passed_time":36.30471531,"remaining_time":132.0845023,"test":[0.4971300367]}, -{"learn":[0.4955782896],"iteration":1078,"passed_time":36.34117849,"remaining_time":132.0609461,"test":[0.4971283082]}, -{"learn":[0.4955724781],"iteration":1079,"passed_time":36.37505249,"remaining_time":132.0279683,"test":[0.4971235994]}, -{"learn":[0.4955688124],"iteration":1080,"passed_time":36.40959901,"remaining_time":131.997427,"test":[0.4971205894]}, -{"learn":[0.4955671137],"iteration":1081,"passed_time":36.44729807,"remaining_time":131.9782937,"test":[0.4971192185]}, -{"learn":[0.4955662196],"iteration":1082,"passed_time":36.48539181,"remaining_time":131.9605538,"test":[0.4971184138]}, -{"learn":[0.49556315],"iteration":1083,"passed_time":36.52036453,"remaining_time":131.9315014,"test":[0.4971154932]}, -{"learn":[0.495560736],"iteration":1084,"passed_time":36.55617075,"remaining_time":131.9054456,"test":[0.4971130494]}, -{"learn":[0.4955597227],"iteration":1085,"passed_time":36.59454958,"remaining_time":131.8886437,"test":[0.4971123341]}, -{"learn":[0.4955540007],"iteration":1086,"passed_time":36.62969948,"remaining_time":131.8601785,"test":[0.4971072379]}, -{"learn":[0.4955532556],"iteration":1087,"passed_time":36.66795861,"remaining_time":131.8428806,"test":[0.4971063737]}, -{"learn":[0.4955497687],"iteration":1088,"passed_time":36.70408557,"remaining_time":131.8178867,"test":[0.4971035424]}, -{"learn":[0.4955476826],"iteration":1089,"passed_time":36.73994656,"remaining_time":131.7919184,"test":[0.4971020225]}, -{"learn":[0.4955446427],"iteration":1090,"passed_time":36.77657967,"remaining_time":131.7686984,"test":[0.4970998171]}, -{"learn":[0.495543242],"iteration":1091,"passed_time":36.8136333,"remaining_time":131.7469587,"test":[0.4970984462]}, -{"learn":[0.4955416625],"iteration":1092,"passed_time":36.85224201,"remaining_time":131.7307498,"test":[0.4970971349]}, -{"learn":[0.4955359703],"iteration":1093,"passed_time":36.88697344,"remaining_time":131.7006565,"test":[0.4970920685]}, -{"learn":[0.495532394],"iteration":1094,"passed_time":36.92218143,"remaining_time":131.6722543,"test":[0.4970891181]}, -{"learn":[0.4955292945],"iteration":1095,"passed_time":36.95881512,"remaining_time":131.6489181,"test":[0.4970862571]}, -{"learn":[0.4955274468],"iteration":1096,"passed_time":36.99560908,"remaining_time":131.6261278,"test":[0.4970848564]}, -{"learn":[0.4955239301],"iteration":1097,"passed_time":37.03139507,"remaining_time":131.59973,"test":[0.4970818463]}, -{"learn":[0.4955223506],"iteration":1098,"passed_time":37.06752606,"remaining_time":131.5745397,"test":[0.4970802668]}, -{"learn":[0.4955186551],"iteration":1099,"passed_time":37.10363989,"remaining_time":131.5492687,"test":[0.4970771376]}, -{"learn":[0.4955178207],"iteration":1100,"passed_time":37.14255574,"remaining_time":131.5339008,"test":[0.4970765415]}, -{"learn":[0.4955159133],"iteration":1101,"passed_time":37.17954613,"remaining_time":131.5116795,"test":[0.4970753792]}, -{"learn":[0.4955140954],"iteration":1102,"passed_time":37.2171471,"remaining_time":131.4915886,"test":[0.4970739487]}, -{"learn":[0.495512188],"iteration":1103,"passed_time":37.25480042,"remaining_time":131.4716507,"test":[0.4970725778]}, -{"learn":[0.4955106085],"iteration":1104,"passed_time":37.29236404,"remaining_time":131.4513646,"test":[0.4970709983]}, -{"learn":[0.4955096846],"iteration":1105,"passed_time":37.33009557,"remaining_time":131.4316385,"test":[0.4970701042]}, -{"learn":[0.4955081349],"iteration":1106,"passed_time":37.36781063,"remaining_time":131.4118218,"test":[0.4970688227]}, -{"learn":[0.4955069428],"iteration":1107,"passed_time":37.40723928,"remaining_time":131.3979921,"test":[0.4970681075]}, -{"learn":[0.4955054527],"iteration":1108,"passed_time":37.44468739,"remaining_time":131.3771674,"test":[0.4970667366]}, -{"learn":[0.4955043798],"iteration":1109,"passed_time":37.48375554,"remaining_time":131.3619901,"test":[0.4970659617]}, -{"learn":[0.4955033069],"iteration":1110,"passed_time":37.52186531,"remaining_time":131.3434151,"test":[0.4970650974]}, -{"learn":[0.4955007439],"iteration":1111,"passed_time":37.55833004,"remaining_time":131.3190532,"test":[0.4970625046]}, -{"learn":[0.4954987174],"iteration":1112,"passed_time":37.59641678,"remaining_time":131.3003343,"test":[0.4970610443]}, -{"learn":[0.4954957967],"iteration":1113,"passed_time":37.63168736,"remaining_time":131.2717568,"test":[0.4970586601]}, -{"learn":[0.4954930847],"iteration":1114,"passed_time":37.66817956,"remaining_time":131.2474239,"test":[0.4970561269]}, -{"learn":[0.4954912966],"iteration":1115,"passed_time":37.70514538,"remaining_time":131.2247174,"test":[0.4970548752]}, -{"learn":[0.4954855447],"iteration":1116,"passed_time":37.73948127,"remaining_time":131.1928431,"test":[0.497049332]}, -{"learn":[0.4954844719],"iteration":1117,"passed_time":37.77773554,"remaining_time":131.1745701,"test":[0.4970486466]}, -{"learn":[0.4954826539],"iteration":1118,"passed_time":37.81454205,"remaining_time":131.1512401,"test":[0.4970470372]}, -{"learn":[0.4954814618],"iteration":1119,"passed_time":37.85342799,"remaining_time":131.1350898,"test":[0.4970461134]}, -{"learn":[0.4954795843],"iteration":1120,"passed_time":37.89045704,"remaining_time":131.1124736,"test":[0.4970446531]}, -{"learn":[0.4954787796],"iteration":1121,"passed_time":37.9301774,"remaining_time":131.0991336,"test":[0.497043908]}, -{"learn":[0.4954770511],"iteration":1122,"passed_time":37.96752147,"remaining_time":131.077543,"test":[0.4970424477]}, -{"learn":[0.495476157],"iteration":1123,"passed_time":38.00672208,"remaining_time":131.0623263,"test":[0.4970417026]}, -{"learn":[0.4954736536],"iteration":1124,"passed_time":38.04254326,"remaining_time":131.0354268,"test":[0.4970394078]}, -{"learn":[0.4954710012],"iteration":1125,"passed_time":38.07879477,"remaining_time":131.009992,"test":[0.4970369343]}, -{"learn":[0.4954697793],"iteration":1126,"passed_time":38.11781002,"remaining_time":130.9940357,"test":[0.4970361594]}, -{"learn":[0.4954687958],"iteration":1127,"passed_time":38.15614496,"remaining_time":130.9757033,"test":[0.4970354143]}, -{"learn":[0.4954660838],"iteration":1128,"passed_time":38.19294038,"remaining_time":130.9520569,"test":[0.4970330003]}, -{"learn":[0.4954642063],"iteration":1129,"passed_time":38.22883285,"remaining_time":130.9252948,"test":[0.4970315102]}, -{"learn":[0.4954581564],"iteration":1130,"passed_time":38.26458439,"remaining_time":130.8980345,"test":[0.4970264438]}, -{"learn":[0.4954545801],"iteration":1131,"passed_time":38.29983844,"remaining_time":130.8690593,"test":[0.497023702]}, -{"learn":[0.4954526728],"iteration":1132,"passed_time":38.33733357,"remaining_time":130.8477219,"test":[0.4970219139]}, -{"learn":[0.495450825],"iteration":1133,"passed_time":38.37383138,"remaining_time":130.822956,"test":[0.497020543]}, -{"learn":[0.495448262],"iteration":1134,"passed_time":38.41046851,"remaining_time":130.7986439,"test":[0.4970183972]}, -{"learn":[0.4954466527],"iteration":1135,"passed_time":38.44779904,"remaining_time":130.7766686,"test":[0.4970169667]}, -{"learn":[0.4954440301],"iteration":1136,"passed_time":38.48421825,"remaining_time":130.75157,"test":[0.4970147613]}, -{"learn":[0.4954431658],"iteration":1137,"passed_time":38.52283353,"remaining_time":130.7339043,"test":[0.4970139567]}, -{"learn":[0.49544254],"iteration":1138,"passed_time":38.5617649,"remaining_time":130.7172733,"test":[0.4970131818]}, -{"learn":[0.4954404538],"iteration":1139,"passed_time":38.59801734,"remaining_time":130.6915324,"test":[0.4970115725]}, -{"learn":[0.4954391425],"iteration":1140,"passed_time":38.63576292,"remaining_time":130.6708231,"test":[0.4970103208]}, -{"learn":[0.4954353278],"iteration":1141,"passed_time":38.67139484,"remaining_time":130.6429433,"test":[0.4970072213]}, -{"learn":[0.4954344338],"iteration":1142,"passed_time":38.71030753,"remaining_time":130.6261209,"test":[0.4970064167]}, -{"learn":[0.4954336589],"iteration":1143,"passed_time":38.74927459,"remaining_time":130.609443,"test":[0.4970058206]}, -{"learn":[0.4954326456],"iteration":1144,"passed_time":38.78818246,"remaining_time":130.592527,"test":[0.4970050458]}, -{"learn":[0.4954302912],"iteration":1145,"passed_time":38.82597905,"remaining_time":130.5718353,"test":[0.497003347]}, -{"learn":[0.4954285925],"iteration":1146,"passed_time":38.8628596,"remaining_time":130.5480367,"test":[0.4970019761]}, -{"learn":[0.4954270726],"iteration":1147,"passed_time":38.90075295,"remaining_time":130.5276135,"test":[0.4970006052]}, -{"learn":[0.4954263275],"iteration":1148,"passed_time":38.93960859,"remaining_time":130.5103853,"test":[0.4969999198]}, -{"learn":[0.4954254037],"iteration":1149,"passed_time":38.97794867,"remaining_time":130.4913934,"test":[0.4969993237]}, -{"learn":[0.4954239433],"iteration":1150,"passed_time":39.0155178,"remaining_time":130.4697898,"test":[0.4969978038]}, -{"learn":[0.4954225128],"iteration":1151,"passed_time":39.05199638,"remaining_time":130.4445157,"test":[0.4969964329]}, -{"learn":[0.4954211121],"iteration":1152,"passed_time":39.08908252,"remaining_time":130.4212493,"test":[0.4969951514]}, -{"learn":[0.4954178339],"iteration":1153,"passed_time":39.12514372,"remaining_time":130.3945431,"test":[0.4969924394]}, -{"learn":[0.4954146748],"iteration":1154,"passed_time":39.16082759,"remaining_time":130.3665646,"test":[0.496989489]}, -{"learn":[0.4954137212],"iteration":1155,"passed_time":39.19826692,"remaining_time":130.3444101,"test":[0.4969887439]}, -{"learn":[0.4954118436],"iteration":1156,"passed_time":39.23531531,"remaining_time":130.3209306,"test":[0.4969876114]}, -{"learn":[0.4954099959],"iteration":1157,"passed_time":39.27217896,"remaining_time":130.2968148,"test":[0.4969860021]}, -{"learn":[0.4954081481],"iteration":1158,"passed_time":39.30966125,"remaining_time":130.2747272,"test":[0.496984661]}, -{"learn":[0.4954065984],"iteration":1159,"passed_time":39.3460509,"remaining_time":130.2489961,"test":[0.4969832305]}, -{"learn":[0.4954039162],"iteration":1160,"passed_time":39.38194882,"remaining_time":130.2216206,"test":[0.4969810549]}, -{"learn":[0.4954017704],"iteration":1161,"passed_time":39.41824124,"remaining_time":130.1955335,"test":[0.4969794158]}, -{"learn":[0.495398969],"iteration":1162,"passed_time":39.45393818,"remaining_time":130.1674641,"test":[0.4969771806]}, -{"learn":[0.495396555],"iteration":1163,"passed_time":39.49069485,"remaining_time":130.1428741,"test":[0.4969750348]}, -{"learn":[0.4953955715],"iteration":1164,"passed_time":39.52946172,"remaining_time":130.1248804,"test":[0.4969742898]}, -{"learn":[0.4953945881],"iteration":1165,"passed_time":39.56795666,"remaining_time":130.105957,"test":[0.4969734553]}, -{"learn":[0.495391727],"iteration":1166,"passed_time":39.60451171,"remaining_time":130.0806284,"test":[0.4969706241]}, -{"learn":[0.4953883594],"iteration":1167,"passed_time":39.64020828,"remaining_time":130.0524641,"test":[0.4969678525]}, -{"learn":[0.4953866606],"iteration":1168,"passed_time":39.67666223,"remaining_time":130.026769,"test":[0.4969665412]}, -{"learn":[0.4953827863],"iteration":1169,"passed_time":39.71278706,"remaining_time":129.9999782,"test":[0.4969632033]}, -{"learn":[0.4953690475],"iteration":1170,"passed_time":39.74658241,"remaining_time":129.9655543,"test":[0.4969521765]}, -{"learn":[0.495367766],"iteration":1171,"passed_time":39.7825042,"remaining_time":129.9380769,"test":[0.4969508652]}, -{"learn":[0.4953668421],"iteration":1172,"passed_time":39.82110207,"remaining_time":129.919316,"test":[0.4969500903]}, -{"learn":[0.4953642195],"iteration":1173,"passed_time":39.85820762,"remaining_time":129.8956579,"test":[0.4969478551]}, -{"learn":[0.4953624314],"iteration":1174,"passed_time":39.8957067,"remaining_time":129.873258,"test":[0.4969464246]}, -{"learn":[0.4953596597],"iteration":1175,"passed_time":39.93133149,"remaining_time":129.8447378,"test":[0.4969439212]}, -{"learn":[0.4953586465],"iteration":1176,"passed_time":39.97018872,"remaining_time":129.8267047,"test":[0.4969430868]}, -{"learn":[0.4953578716],"iteration":1177,"passed_time":40.00914941,"remaining_time":129.808972,"test":[0.4969423417]}, -{"learn":[0.4953569179],"iteration":1178,"passed_time":40.0475466,"remaining_time":129.7893771,"test":[0.4969415668]}, -{"learn":[0.4953553384],"iteration":1179,"passed_time":40.08628499,"remaining_time":129.7708548,"test":[0.4969402257]}, -{"learn":[0.495352537],"iteration":1180,"passed_time":40.12255835,"remaining_time":129.7443271,"test":[0.4969378713]}, -{"learn":[0.4953513449],"iteration":1181,"passed_time":40.16183842,"remaining_time":129.727495,"test":[0.4969372157]}, -{"learn":[0.495349527],"iteration":1182,"passed_time":40.19759659,"remaining_time":129.6992613,"test":[0.4969355766]}, -{"learn":[0.4953468448],"iteration":1183,"passed_time":40.24391574,"remaining_time":129.7050528,"test":[0.496933252]}, -{"learn":[0.4953441029],"iteration":1184,"passed_time":40.27980848,"remaining_time":129.6771893,"test":[0.4969309274]}, -{"learn":[0.4953430301],"iteration":1185,"passed_time":40.31853227,"remaining_time":129.6584166,"test":[0.4969301525]}, -{"learn":[0.4953416293],"iteration":1186,"passed_time":40.35564698,"remaining_time":129.6344414,"test":[0.4969289008]}, -{"learn":[0.4953389173],"iteration":1187,"passed_time":40.39106261,"remaining_time":129.6049922,"test":[0.4969266657]}, -{"learn":[0.4953371888],"iteration":1188,"passed_time":40.42886833,"remaining_time":129.5831936,"test":[0.4969253544]}, -{"learn":[0.4953355497],"iteration":1189,"passed_time":40.46673896,"remaining_time":129.561576,"test":[0.4969240133]}, -{"learn":[0.4953346556],"iteration":1190,"passed_time":40.50492888,"remaining_time":129.5409522,"test":[0.4969231192]}, -{"learn":[0.4953330761],"iteration":1191,"passed_time":40.54120818,"remaining_time":129.5141953,"test":[0.4969215993]}, -{"learn":[0.4953309005],"iteration":1192,"passed_time":40.57770844,"remaining_time":129.4881274,"test":[0.4969200496]}, -{"learn":[0.4953283971],"iteration":1193,"passed_time":40.61436074,"remaining_time":129.4625268,"test":[0.4969178442]}, -{"learn":[0.4953253871],"iteration":1194,"passed_time":40.6508514,"remaining_time":129.4363929,"test":[0.496915311]}, -{"learn":[0.4953244334],"iteration":1195,"passed_time":40.68978588,"remaining_time":129.4180146,"test":[0.4969144765]}, -{"learn":[0.4953233605],"iteration":1196,"passed_time":40.72805138,"remaining_time":129.3974765,"test":[0.4969137613]}, -{"learn":[0.4953223472],"iteration":1197,"passed_time":40.76819851,"remaining_time":129.3828804,"test":[0.4969131056]}, -{"learn":[0.495321483],"iteration":1198,"passed_time":40.80576826,"remaining_time":129.360071,"test":[0.4969123308]}, -{"learn":[0.4953194266],"iteration":1199,"passed_time":40.84251296,"remaining_time":129.3346244,"test":[0.4969100062]}, -{"learn":[0.4953167146],"iteration":1200,"passed_time":40.87915985,"remaining_time":129.3088495,"test":[0.4969078008]}, -{"learn":[0.4953143006],"iteration":1201,"passed_time":40.91691922,"remaining_time":129.2865717,"test":[0.4969056848]}, -{"learn":[0.4953123933],"iteration":1202,"passed_time":40.95409309,"remaining_time":129.2624202,"test":[0.4969043139]}, -{"learn":[0.4953105753],"iteration":1203,"passed_time":40.99221006,"remaining_time":129.2412204,"test":[0.4969028834]}, -{"learn":[0.495308668],"iteration":1204,"passed_time":41.02856772,"remaining_time":129.2144519,"test":[0.4969013039]}, -{"learn":[0.4953077143],"iteration":1205,"passed_time":41.06637008,"remaining_time":129.1922124,"test":[0.496900529]}, -{"learn":[0.4953025287],"iteration":1206,"passed_time":41.10220114,"remaining_time":129.1637522,"test":[0.4968957011]}, -{"learn":[0.4953013664],"iteration":1207,"passed_time":41.14097771,"remaining_time":129.1445261,"test":[0.4968948666]}, -{"learn":[0.4952997273],"iteration":1208,"passed_time":41.17930537,"remaining_time":129.1238599,"test":[0.4968934659]}, -{"learn":[0.4952971345],"iteration":1209,"passed_time":41.21660976,"remaining_time":129.0999595,"test":[0.4968914095]}, -{"learn":[0.495295853],"iteration":1210,"passed_time":41.25534406,"remaining_time":129.0805109,"test":[0.4968900386]}, -{"learn":[0.4952950483],"iteration":1211,"passed_time":41.2947169,"remaining_time":129.0630261,"test":[0.4968892638]}, -{"learn":[0.4952918297],"iteration":1212,"passed_time":41.32946069,"remaining_time":129.0310533,"test":[0.4968870286]}, -{"learn":[0.4952902501],"iteration":1213,"passed_time":41.36571684,"remaining_time":129.0037924,"test":[0.4968856279]}, -{"learn":[0.4952888494],"iteration":1214,"passed_time":41.40365456,"remaining_time":128.9817552,"test":[0.4968842272]}, -{"learn":[0.4952868229],"iteration":1215,"passed_time":41.44079061,"remaining_time":128.9571971,"test":[0.496882588]}, -{"learn":[0.4952852136],"iteration":1216,"passed_time":41.47719045,"remaining_time":128.9303299,"test":[0.4968813661]}, -{"learn":[0.4952844387],"iteration":1217,"passed_time":41.51495874,"remaining_time":128.9076962,"test":[0.4968806509]}, -{"learn":[0.4952827102],"iteration":1218,"passed_time":41.55179259,"remaining_time":128.8821393,"test":[0.4968793098]}, -{"learn":[0.4952793425],"iteration":1219,"passed_time":41.58715784,"remaining_time":128.8520136,"test":[0.496876568]}, -{"learn":[0.4952784186],"iteration":1220,"passed_time":41.62503988,"remaining_time":128.8296689,"test":[0.4968757931]}, -{"learn":[0.4952734118],"iteration":1221,"passed_time":41.66084166,"remaining_time":128.8008673,"test":[0.4968712334]}, -{"learn":[0.495272488],"iteration":1222,"passed_time":41.69902271,"remaining_time":128.7794021,"test":[0.4968706075]}, -{"learn":[0.4952716237],"iteration":1223,"passed_time":41.73637977,"remaining_time":128.7553677,"test":[0.4968698028]}, -{"learn":[0.4952708786],"iteration":1224,"passed_time":41.77600434,"remaining_time":128.7382991,"test":[0.4968690578]}, -{"learn":[0.4952651566],"iteration":1225,"passed_time":41.81090041,"remaining_time":128.706638,"test":[0.4968642]}, -{"learn":[0.4952635771],"iteration":1226,"passed_time":41.84867132,"remaining_time":128.6838116,"test":[0.4968627993]}, -{"learn":[0.4952627128],"iteration":1227,"passed_time":41.88689999,"remaining_time":128.6623671,"test":[0.4968620542]}, -{"learn":[0.4952606266],"iteration":1228,"passed_time":41.923574,"remaining_time":128.6361249,"test":[0.4968605343]}, -{"learn":[0.4952596134],"iteration":1229,"passed_time":41.96314211,"remaining_time":128.6187364,"test":[0.4968597893]}, -{"learn":[0.4952573186],"iteration":1230,"passed_time":41.99889025,"remaining_time":128.589616,"test":[0.4968576733]}, -{"learn":[0.4952563947],"iteration":1231,"passed_time":42.03731709,"remaining_time":128.5686776,"test":[0.4968567494]}, -{"learn":[0.4952505237],"iteration":1232,"passed_time":42.07143699,"remaining_time":128.5345524,"test":[0.4968518022]}, -{"learn":[0.4952485567],"iteration":1233,"passed_time":42.10862402,"remaining_time":128.5097877,"test":[0.4968502823]}, -{"learn":[0.4952476328],"iteration":1234,"passed_time":42.14793398,"remaining_time":128.4914749,"test":[0.4968495373]}, -{"learn":[0.4952459341],"iteration":1235,"passed_time":42.18501076,"remaining_time":128.4663273,"test":[0.4968481962]}, -{"learn":[0.495244295],"iteration":1236,"passed_time":42.22188606,"remaining_time":128.4405475,"test":[0.4968467061]}, -{"learn":[0.4952429241],"iteration":1237,"passed_time":42.25801071,"remaining_time":128.4124687,"test":[0.4968455438]}, -{"learn":[0.4952420598],"iteration":1238,"passed_time":42.29714516,"remaining_time":128.3935133,"test":[0.4968447987]}, -{"learn":[0.4952402419],"iteration":1239,"passed_time":42.33475635,"remaining_time":128.3699063,"test":[0.4968433682]}, -{"learn":[0.4952395266],"iteration":1240,"passed_time":42.37362246,"remaining_time":128.350078,"test":[0.4968426827]}, -{"learn":[0.4952385133],"iteration":1241,"passed_time":42.41154358,"remaining_time":128.3273597,"test":[0.4968418781]}, -{"learn":[0.4952357119],"iteration":1242,"passed_time":42.44809249,"remaining_time":128.3004694,"test":[0.4968392853]}, -{"learn":[0.4952339536],"iteration":1243,"passed_time":42.48367396,"remaining_time":128.2706426,"test":[0.4968379144]}, -{"learn":[0.4952328807],"iteration":1244,"passed_time":42.52324368,"remaining_time":128.2528354,"test":[0.4968372587]}, -{"learn":[0.4952310329],"iteration":1245,"passed_time":42.55926909,"remaining_time":128.2243147,"test":[0.496835858]}, -{"learn":[0.4952280527],"iteration":1246,"passed_time":42.59398587,"remaining_time":128.1918436,"test":[0.4968329374]}, -{"learn":[0.4952218836],"iteration":1247,"passed_time":42.62903601,"remaining_time":128.1603711,"test":[0.4968279008]}, -{"learn":[0.4952202445],"iteration":1248,"passed_time":42.66593895,"remaining_time":128.1344572,"test":[0.4968266193]}, -{"learn":[0.4952189332],"iteration":1249,"passed_time":42.70289128,"remaining_time":128.1086738,"test":[0.4968255762]}, -{"learn":[0.495215953],"iteration":1250,"passed_time":42.73870365,"remaining_time":128.0794564,"test":[0.4968229238]}, -{"learn":[0.4952152079],"iteration":1251,"passed_time":42.77785545,"remaining_time":128.0602254,"test":[0.4968222085]}, -{"learn":[0.495213986],"iteration":1252,"passed_time":42.8140004,"remaining_time":128.0319709,"test":[0.4968210165]}, -{"learn":[0.4952099925],"iteration":1253,"passed_time":42.84912348,"remaining_time":128.0006512,"test":[0.4968175296]}, -{"learn":[0.4952083534],"iteration":1254,"passed_time":42.88725218,"remaining_time":127.9782944,"test":[0.4968159799]}, -{"learn":[0.4952071315],"iteration":1255,"passed_time":42.92513612,"remaining_time":127.9551828,"test":[0.496814907]}, -{"learn":[0.4952055818],"iteration":1256,"passed_time":42.96269046,"remaining_time":127.9310663,"test":[0.4968135361]}, -{"learn":[0.4952041214],"iteration":1257,"passed_time":43.00059219,"remaining_time":127.9079618,"test":[0.4968123142]}, -{"learn":[0.4952010816],"iteration":1258,"passed_time":43.03579225,"remaining_time":127.876806,"test":[0.4968099002]}, -{"learn":[0.4951998001],"iteration":1259,"passed_time":43.07299683,"remaining_time":127.8515938,"test":[0.4968086187]}, -{"learn":[0.4951990252],"iteration":1260,"passed_time":43.11184034,"remaining_time":127.8312221,"test":[0.4968079034]}, -{"learn":[0.4951872831],"iteration":1261,"passed_time":43.14497813,"remaining_time":127.793921,"test":[0.4967976812]}, -{"learn":[0.4951855546],"iteration":1262,"passed_time":43.18248322,"remaining_time":127.7695485,"test":[0.4967963699]}, -{"learn":[0.4951831704],"iteration":1263,"passed_time":43.21971864,"remaining_time":127.7443583,"test":[0.4967947606]}, -{"learn":[0.4951820081],"iteration":1264,"passed_time":43.25752198,"remaining_time":127.7208258,"test":[0.4967935685]}, -{"learn":[0.4951812333],"iteration":1265,"passed_time":43.29590749,"remaining_time":127.6989878,"test":[0.4967928235]}, -{"learn":[0.495180071],"iteration":1266,"passed_time":43.33404479,"remaining_time":127.6763924,"test":[0.4967916314]}, -{"learn":[0.4951788789],"iteration":1267,"passed_time":43.37257212,"remaining_time":127.6549205,"test":[0.4967909161]}, -{"learn":[0.495178253],"iteration":1268,"passed_time":43.41068211,"remaining_time":127.6321946,"test":[0.4967902605]}, -{"learn":[0.4951773292],"iteration":1269,"passed_time":43.45000074,"remaining_time":127.6129943,"test":[0.496789426]}, -{"learn":[0.4951764649],"iteration":1270,"passed_time":43.48920361,"remaining_time":127.5934227,"test":[0.4967887107]}, -{"learn":[0.495170713],"iteration":1271,"passed_time":43.52321345,"remaining_time":127.5586004,"test":[0.4967837338]}, -{"learn":[0.4951688653],"iteration":1272,"passed_time":43.55956706,"remaining_time":127.5306414,"test":[0.4967821542]}, -{"learn":[0.4951673454],"iteration":1273,"passed_time":43.59688081,"remaining_time":127.5054771,"test":[0.4967810515]}, -{"learn":[0.4951657659],"iteration":1274,"passed_time":43.63344634,"remaining_time":127.4781079,"test":[0.4967797998]}, -{"learn":[0.4951648122],"iteration":1275,"passed_time":43.67299945,"remaining_time":127.4594435,"test":[0.4967791144]}, -{"learn":[0.4951639181],"iteration":1276,"passed_time":43.71311733,"remaining_time":127.442393,"test":[0.4967782799]}, -{"learn":[0.4951609975],"iteration":1277,"passed_time":43.74922419,"remaining_time":127.4136248,"test":[0.4967759553]}, -{"learn":[0.4951581663],"iteration":1278,"passed_time":43.78641096,"remaining_time":127.3879868,"test":[0.4967734818]}, -{"learn":[0.4951567656],"iteration":1279,"passed_time":43.82365459,"remaining_time":127.3624962,"test":[0.4967722301]}, -{"learn":[0.4951534575],"iteration":1280,"passed_time":43.85917346,"remaining_time":127.3319798,"test":[0.4967693392]}, -{"learn":[0.4951506561],"iteration":1281,"passed_time":43.89505565,"remaining_time":127.3025093,"test":[0.4967670743]}, -{"learn":[0.4951497322],"iteration":1282,"passed_time":43.93306573,"remaining_time":127.2791936,"test":[0.496766359]}, -{"learn":[0.4951461261],"iteration":1283,"passed_time":43.96838215,"remaining_time":127.2480592,"test":[0.4967635576]}, -{"learn":[0.4951448446],"iteration":1284,"passed_time":44.00571246,"remaining_time":127.2227407,"test":[0.4967624251]}, -{"learn":[0.495141775],"iteration":1285,"passed_time":44.04197623,"remaining_time":127.1943233,"test":[0.4967598621]}, -{"learn":[0.4951397186],"iteration":1286,"passed_time":44.07790348,"remaining_time":127.1649228,"test":[0.4967585508]}, -{"learn":[0.4951379007],"iteration":1287,"passed_time":44.11394278,"remaining_time":127.1358351,"test":[0.4967570011]}, -{"learn":[0.4951370066],"iteration":1288,"passed_time":44.15206127,"remaining_time":127.1127225,"test":[0.4967561666]}, -{"learn":[0.4951364404],"iteration":1289,"passed_time":44.19050043,"remaining_time":127.090509,"test":[0.4967555706]}, -{"learn":[0.4951350099],"iteration":1290,"passed_time":44.22651172,"remaining_time":127.0612951,"test":[0.4967543487]}, -{"learn":[0.4951334005],"iteration":1291,"passed_time":44.26386466,"remaining_time":127.0359212,"test":[0.4967529182]}, -{"learn":[0.4951277977],"iteration":1292,"passed_time":44.29831706,"remaining_time":127.002213,"test":[0.4967482094]}, -{"learn":[0.4951266652],"iteration":1293,"passed_time":44.33617107,"remaining_time":126.9782457,"test":[0.4967470769]}, -{"learn":[0.4951257711],"iteration":1294,"passed_time":44.37466735,"remaining_time":126.9560946,"test":[0.4967465107]}, -{"learn":[0.4951243704],"iteration":1295,"passed_time":44.41121048,"remaining_time":126.9283361,"test":[0.4967450503]}, -{"learn":[0.4951214498],"iteration":1296,"passed_time":44.44712819,"remaining_time":126.8987785,"test":[0.4967424873]}, -{"learn":[0.4951205855],"iteration":1297,"passed_time":44.48622052,"remaining_time":126.8782653,"test":[0.4967419211]}, -{"learn":[0.4951196617],"iteration":1298,"passed_time":44.52413508,"remaining_time":126.8543679,"test":[0.4967412058]}, -{"learn":[0.49511841],"iteration":1299,"passed_time":44.561604,"remaining_time":126.8291806,"test":[0.4967403714]}, -{"learn":[0.4951170987],"iteration":1300,"passed_time":44.59959239,"remaining_time":126.8054514,"test":[0.4967391793]}, -{"learn":[0.4951152211],"iteration":1301,"passed_time":44.63755586,"remaining_time":126.7816295,"test":[0.4967377786]}, -{"learn":[0.49511388],"iteration":1302,"passed_time":44.6746063,"remaining_time":126.7551953,"test":[0.4967363779]}, -{"learn":[0.4951130456],"iteration":1303,"passed_time":44.71210234,"remaining_time":126.7300078,"test":[0.4967356328]}, -{"learn":[0.4951122111],"iteration":1304,"passed_time":44.74999752,"remaining_time":126.7059317,"test":[0.4967349176]}, -{"learn":[0.495111466],"iteration":1305,"passed_time":44.78871253,"remaining_time":126.6841532,"test":[0.4967343215]}, -{"learn":[0.4951105124],"iteration":1306,"passed_time":44.82768545,"remaining_time":126.6630776,"test":[0.4967336063]}, -{"learn":[0.4951089328],"iteration":1307,"passed_time":44.86361683,"remaining_time":126.6333894,"test":[0.4967323546]}, -{"learn":[0.4951053864],"iteration":1308,"passed_time":44.89995382,"remaining_time":126.6048354,"test":[0.4967294041]}, -{"learn":[0.4951027638],"iteration":1309,"passed_time":44.93698708,"remaining_time":126.5782308,"test":[0.4967272286]}, -{"learn":[0.4951011544],"iteration":1310,"passed_time":44.97409779,"remaining_time":126.5518282,"test":[0.4967257384]}, -{"learn":[0.49510032],"iteration":1311,"passed_time":45.01229661,"remaining_time":126.5284679,"test":[0.4967251424]}, -{"learn":[0.4950972801],"iteration":1312,"passed_time":45.04726774,"remaining_time":126.4960214,"test":[0.4967226688]}, -{"learn":[0.4950962669],"iteration":1313,"passed_time":45.08575396,"remaining_time":126.4734316,"test":[0.4967219535]}, -{"learn":[0.4950937337],"iteration":1314,"passed_time":45.12239009,"remaining_time":126.4456331,"test":[0.4967195992]}, -{"learn":[0.4950928992],"iteration":1315,"passed_time":45.15995759,"remaining_time":126.4204284,"test":[0.4967189137]}, -{"learn":[0.4950921541],"iteration":1316,"passed_time":45.19924629,"remaining_time":126.4000183,"test":[0.4967180792]}, -{"learn":[0.4950904554],"iteration":1317,"passed_time":45.23612943,"remaining_time":126.3728593,"test":[0.4967170958]}, -{"learn":[0.4950886971],"iteration":1318,"passed_time":45.27176718,"remaining_time":126.34221,"test":[0.4967155162]}, -{"learn":[0.4950872666],"iteration":1319,"passed_time":45.30954501,"remaining_time":126.3175194,"test":[0.4967139963]}, -{"learn":[0.4950823492],"iteration":1320,"passed_time":45.34581484,"remaining_time":126.2886092,"test":[0.4967100028]}, -{"learn":[0.495080412],"iteration":1321,"passed_time":45.38260596,"remaining_time":126.2611382,"test":[0.4967087213]}, -{"learn":[0.4950788921],"iteration":1322,"passed_time":45.4193404,"remaining_time":126.2334956,"test":[0.4967076484]}, -{"learn":[0.495077253],"iteration":1323,"passed_time":45.45658791,"remaining_time":126.2072637,"test":[0.4967062775]}, -{"learn":[0.4950743323],"iteration":1324,"passed_time":45.4916669,"remaining_time":126.1750006,"test":[0.4967037145]}, -{"learn":[0.4950734085],"iteration":1325,"passed_time":45.52932453,"remaining_time":126.1498781,"test":[0.4967029695]}, -{"learn":[0.4950707263],"iteration":1326,"passed_time":45.56547638,"remaining_time":126.1205687,"test":[0.4967008237]}, -{"learn":[0.4950676566],"iteration":1327,"passed_time":45.60140967,"remaining_time":126.0906448,"test":[0.4966982011]}, -{"learn":[0.4950662559],"iteration":1328,"passed_time":45.63683325,"remaining_time":126.0593039,"test":[0.496697158]}, -{"learn":[0.4950647658],"iteration":1329,"passed_time":45.67383237,"remaining_time":126.0323044,"test":[0.4966957871]}, -{"learn":[0.4950630969],"iteration":1330,"passed_time":45.71000329,"remaining_time":126.0030068,"test":[0.4966943566]}, -{"learn":[0.4950614875],"iteration":1331,"passed_time":45.7469967,"remaining_time":125.9759639,"test":[0.4966931645]}, -{"learn":[0.4950601166],"iteration":1332,"passed_time":45.78292225,"remaining_time":125.9459684,"test":[0.496691883]}, -{"learn":[0.4950589544],"iteration":1333,"passed_time":45.82125305,"remaining_time":125.922574,"test":[0.4966911379]}, -{"learn":[0.4950568682],"iteration":1334,"passed_time":45.85857159,"remaining_time":125.8963782,"test":[0.4966895882]}, -{"learn":[0.4950555569],"iteration":1335,"passed_time":45.89690284,"remaining_time":125.8729431,"test":[0.4966886047]}, -{"learn":[0.495054633],"iteration":1336,"passed_time":45.93562931,"remaining_time":125.8505686,"test":[0.4966877405]}, -{"learn":[0.4950532025],"iteration":1337,"passed_time":45.97093228,"remaining_time":125.8187997,"test":[0.4966865484]}, -{"learn":[0.4950513846],"iteration":1338,"passed_time":46.0077875,"remaining_time":125.7912696,"test":[0.4966850881]}, -{"learn":[0.4950490898],"iteration":1339,"passed_time":46.0447934,"remaining_time":125.7641372,"test":[0.4966829125]}, -{"learn":[0.4950440234],"iteration":1340,"passed_time":46.08018092,"remaining_time":125.7325742,"test":[0.4966787104]}, -{"learn":[0.4950432187],"iteration":1341,"passed_time":46.11892677,"remaining_time":125.7101596,"test":[0.4966779951]}, -{"learn":[0.4950405663],"iteration":1342,"passed_time":46.15530269,"remaining_time":125.6812673,"test":[0.4966757003]}, -{"learn":[0.4950397021],"iteration":1343,"passed_time":46.19442414,"remaining_time":125.6598323,"test":[0.4966749255]}, -{"learn":[0.4950378245],"iteration":1344,"passed_time":46.23358337,"remaining_time":125.6384738,"test":[0.4966733758]}, -{"learn":[0.495036543],"iteration":1345,"passed_time":46.27273297,"remaining_time":125.6170626,"test":[0.4966720645]}, -{"learn":[0.4950354701],"iteration":1346,"passed_time":46.31113462,"remaining_time":125.5935967,"test":[0.4966713194]}, -{"learn":[0.4950334436],"iteration":1347,"passed_time":46.34869839,"remaining_time":125.5678387,"test":[0.4966700081]}, -{"learn":[0.4950326687],"iteration":1348,"passed_time":46.38754797,"remaining_time":125.5455431,"test":[0.4966693226]}, -{"learn":[0.4950291818],"iteration":1349,"passed_time":46.42272361,"remaining_time":125.5132898,"test":[0.4966666106]}, -{"learn":[0.4950273341],"iteration":1350,"passed_time":46.4608681,"remaining_time":125.4890508,"test":[0.4966650609]}, -{"learn":[0.4950265592],"iteration":1351,"passed_time":46.49929346,"remaining_time":125.4655492,"test":[0.4966643457]}, -{"learn":[0.4950250393],"iteration":1352,"passed_time":46.53675747,"remaining_time":125.4394342,"test":[0.4966629748]}, -{"learn":[0.4950223273],"iteration":1353,"passed_time":46.57218065,"remaining_time":125.407807,"test":[0.4966607992]}, -{"learn":[0.495021314],"iteration":1354,"passed_time":46.60987697,"remaining_time":125.382289,"test":[0.4966600541]}, -{"learn":[0.4950195259],"iteration":1355,"passed_time":46.64618626,"remaining_time":125.3530256,"test":[0.4966587428]}, -{"learn":[0.4950185722],"iteration":1356,"passed_time":46.68487151,"remaining_time":125.3301304,"test":[0.4966580276]}, -{"learn":[0.4950171417],"iteration":1357,"passed_time":46.72168651,"remaining_time":125.3021961,"test":[0.4966567461]}, -{"learn":[0.4950150257],"iteration":1358,"passed_time":46.75817095,"remaining_time":125.2733631,"test":[0.4966551069]}, -{"learn":[0.4950140423],"iteration":1359,"passed_time":46.79628798,"remaining_time":125.2488884,"test":[0.4966543023]}, -{"learn":[0.4950109726],"iteration":1360,"passed_time":46.83185506,"remaining_time":125.2175757,"test":[0.496651173]}, -{"learn":[0.4950094229],"iteration":1361,"passed_time":46.86851007,"remaining_time":125.1891627,"test":[0.4966498915]}, -{"learn":[0.495008499],"iteration":1362,"passed_time":46.9078914,"remaining_time":125.1680125,"test":[0.4966492061]}, -{"learn":[0.4950030452],"iteration":1363,"passed_time":46.94194148,"remaining_time":125.1326241,"test":[0.4966439609]}, -{"learn":[0.4950010782],"iteration":1364,"passed_time":46.98005835,"remaining_time":125.1080675,"test":[0.4966427688]}, -{"learn":[0.4949994689],"iteration":1365,"passed_time":47.01672528,"remaining_time":125.0796337,"test":[0.4966415171]}, -{"learn":[0.4949979192],"iteration":1366,"passed_time":47.05358874,"remaining_time":125.0517102,"test":[0.496640176]}, -{"learn":[0.4949965185],"iteration":1367,"passed_time":47.09084027,"remaining_time":125.024804,"test":[0.4966391031]}, -{"learn":[0.4949935979],"iteration":1368,"passed_time":47.1253851,"remaining_time":124.9907037,"test":[0.4966365401]}, -{"learn":[0.4949920183],"iteration":1369,"passed_time":47.16272662,"remaining_time":124.9640129,"test":[0.496635199]}, -{"learn":[0.494989664],"iteration":1370,"passed_time":47.19992459,"remaining_time":124.9369266,"test":[0.496633083]}, -{"learn":[0.4949883825],"iteration":1371,"passed_time":47.23680142,"remaining_time":124.9089763,"test":[0.4966317419]}, -{"learn":[0.4949874288],"iteration":1372,"passed_time":47.2750119,"remaining_time":124.8845362,"test":[0.4966311161]}, -{"learn":[0.4949863559],"iteration":1373,"passed_time":47.31188949,"remaining_time":124.8565584,"test":[0.4966301624]}, -{"learn":[0.4949847764],"iteration":1374,"passed_time":47.34824237,"remaining_time":124.8271844,"test":[0.4966288511]}, -{"learn":[0.4949834949],"iteration":1375,"passed_time":47.38573037,"remaining_time":124.8007899,"test":[0.4966276888]}, -{"learn":[0.4949798292],"iteration":1376,"passed_time":47.42194438,"remaining_time":124.7710272,"test":[0.4966245894]}, -{"learn":[0.4949781901],"iteration":1377,"passed_time":47.45973229,"remaining_time":124.7453921,"test":[0.4966234271]}, -{"learn":[0.4949773258],"iteration":1378,"passed_time":47.49800908,"remaining_time":124.7210231,"test":[0.496622831]}, -{"learn":[0.4949761933],"iteration":1379,"passed_time":47.53827315,"remaining_time":124.7018469,"test":[0.4966221754]}, -{"learn":[0.494975329],"iteration":1380,"passed_time":47.57640785,"remaining_time":124.6770601,"test":[0.4966213707]}, -{"learn":[0.494974435],"iteration":1381,"passed_time":47.61551887,"remaining_time":124.6548099,"test":[0.4966207151]}, -{"learn":[0.494972766],"iteration":1382,"passed_time":47.65446386,"remaining_time":124.6321011,"test":[0.4966191653]}, -{"learn":[0.4949712461],"iteration":1383,"passed_time":47.69135851,"remaining_time":124.6040118,"test":[0.4966178242]}, -{"learn":[0.4949703223],"iteration":1384,"passed_time":47.72897826,"remaining_time":124.5778025,"test":[0.4966169004]}, -{"learn":[0.4949683851],"iteration":1385,"passed_time":47.76632674,"remaining_time":124.5508693,"test":[0.4966158573]}, -{"learn":[0.4949655241],"iteration":1386,"passed_time":47.80313841,"remaining_time":124.5225228,"test":[0.4966136221]}, -{"learn":[0.4949648386],"iteration":1387,"passed_time":47.84118929,"remaining_time":124.4973888,"test":[0.4966130261]}, -{"learn":[0.4949632591],"iteration":1388,"passed_time":47.87869242,"remaining_time":124.4708123,"test":[0.4966116552]}, -{"learn":[0.494961918],"iteration":1389,"passed_time":47.91620245,"remaining_time":124.444238,"test":[0.4966101948]}, -{"learn":[0.4949610835],"iteration":1390,"passed_time":47.95465846,"remaining_time":124.4201024,"test":[0.4966095094]}, -{"learn":[0.4949595338],"iteration":1391,"passed_time":47.99172134,"remaining_time":124.3923352,"test":[0.4966084663]}, -{"learn":[0.4949585503],"iteration":1392,"passed_time":48.02897369,"remaining_time":124.3650453,"test":[0.4966076318]}, -{"learn":[0.4949569708],"iteration":1393,"passed_time":48.06408704,"remaining_time":124.3322079,"test":[0.4966061715]}, -{"learn":[0.4949557191],"iteration":1394,"passed_time":48.10154266,"remaining_time":124.3054203,"test":[0.4966050987]}, -{"learn":[0.4949541098],"iteration":1395,"passed_time":48.13766511,"remaining_time":124.2751755,"test":[0.4966039662]}, -{"learn":[0.4949531859],"iteration":1396,"passed_time":48.17653611,"remaining_time":124.2520112,"test":[0.4966031913]}, -{"learn":[0.494951964],"iteration":1397,"passed_time":48.21340893,"remaining_time":124.2236759,"test":[0.4966019396]}, -{"learn":[0.4949499077],"iteration":1398,"passed_time":48.25020952,"remaining_time":124.1951426,"test":[0.4965998236]}, -{"learn":[0.4949489242],"iteration":1399,"passed_time":48.28863244,"remaining_time":124.1707691,"test":[0.4965991084]}, -{"learn":[0.4949460632],"iteration":1400,"passed_time":48.32452011,"remaining_time":124.1398629,"test":[0.496597052]}, -{"learn":[0.4949445731],"iteration":1401,"passed_time":48.36219939,"remaining_time":124.1135474,"test":[0.4965958301]}, -{"learn":[0.4949424571],"iteration":1402,"passed_time":48.398238,"remaining_time":124.0830093,"test":[0.4965942804]}, -{"learn":[0.4949398345],"iteration":1403,"passed_time":48.43397551,"remaining_time":124.0516923,"test":[0.4965920452]}, -{"learn":[0.4949391192],"iteration":1404,"passed_time":48.47340501,"remaining_time":124.0298157,"test":[0.496591479]}, -{"learn":[0.4949383444],"iteration":1405,"passed_time":48.5121692,"remaining_time":124.0062135,"test":[0.4965907637]}, -{"learn":[0.4949351257],"iteration":1406,"passed_time":48.54772333,"remaining_time":123.9743923,"test":[0.496588767]}, -{"learn":[0.4949335462],"iteration":1407,"passed_time":48.58556866,"remaining_time":123.948411,"test":[0.4965875153]}, -{"learn":[0.4949318773],"iteration":1408,"passed_time":48.62274122,"remaining_time":123.9206982,"test":[0.4965860848]}, -{"learn":[0.4949311024],"iteration":1409,"passed_time":48.66080791,"remaining_time":123.8952485,"test":[0.4965853695]}, -{"learn":[0.4949303275],"iteration":1410,"passed_time":48.69879779,"remaining_time":123.8695856,"test":[0.4965846543]}, -{"learn":[0.4949279732],"iteration":1411,"passed_time":48.73515461,"remaining_time":123.8397555,"test":[0.4965825085]}, -{"learn":[0.4949265725],"iteration":1412,"passed_time":48.77308438,"remaining_time":123.8139092,"test":[0.4965811376]}, -{"learn":[0.49492544],"iteration":1413,"passed_time":48.8110761,"remaining_time":123.7882029,"test":[0.4965800349]}, -{"learn":[0.4949240393],"iteration":1414,"passed_time":48.84914688,"remaining_time":123.7626796,"test":[0.4965787534]}, -{"learn":[0.4949232942],"iteration":1415,"passed_time":48.88751117,"remaining_time":123.7378814,"test":[0.4965780381]}, -{"learn":[0.4949225789],"iteration":1416,"passed_time":48.92519879,"remaining_time":123.711353,"test":[0.4965773825]}, -{"learn":[0.4949205226],"iteration":1417,"passed_time":48.96197438,"remaining_time":123.6825051,"test":[0.4965758626]}, -{"learn":[0.4949177212],"iteration":1418,"passed_time":48.99797081,"remaining_time":123.6516797,"test":[0.4965737764]}, -{"learn":[0.4949168569],"iteration":1419,"passed_time":49.03632811,"remaining_time":123.626799,"test":[0.496573091]}, -{"learn":[0.4949160224],"iteration":1420,"passed_time":49.07534588,"remaining_time":123.6035629,"test":[0.4965724055]}, -{"learn":[0.4949149793],"iteration":1421,"passed_time":49.11421489,"remaining_time":123.5799303,"test":[0.4965716903]}, -{"learn":[0.494913668],"iteration":1422,"passed_time":49.15183416,"remaining_time":123.5531348,"test":[0.496570677]}, -{"learn":[0.4949122375],"iteration":1423,"passed_time":49.18917133,"remaining_time":123.5256156,"test":[0.4965695743]}, -{"learn":[0.4949102706],"iteration":1424,"passed_time":49.2263523,"remaining_time":123.4976908,"test":[0.4965680842]}, -{"learn":[0.4949094063],"iteration":1425,"passed_time":49.26581867,"remaining_time":123.475481,"test":[0.4965673093]}, -{"learn":[0.4949083334],"iteration":1426,"passed_time":49.30422539,"remaining_time":123.4505938,"test":[0.4965665941]}, -{"learn":[0.4949058002],"iteration":1427,"passed_time":49.34158109,"remaining_time":123.4230586,"test":[0.4965645079]}, -{"learn":[0.4949050254],"iteration":1428,"passed_time":49.3809064,"remaining_time":123.4004316,"test":[0.4965638224]}, -{"learn":[0.4949021644],"iteration":1429,"passed_time":49.415656,"remaining_time":123.366358,"test":[0.4965612892]}, -{"learn":[0.4949012703],"iteration":1430,"passed_time":49.45329313,"remaining_time":123.3394851,"test":[0.4965606336]}, -{"learn":[0.4948995119],"iteration":1431,"passed_time":49.48943347,"remaining_time":123.3088678,"test":[0.4965592627]}, -{"learn":[0.4948987967],"iteration":1432,"passed_time":49.52853596,"remaining_time":123.285616,"test":[0.496558458]}, -{"learn":[0.4948980218],"iteration":1433,"passed_time":49.56660613,"remaining_time":123.2597751,"test":[0.4965578024]}, -{"learn":[0.4948956972],"iteration":1434,"passed_time":49.60195905,"remaining_time":123.2271666,"test":[0.4965556268]}, -{"learn":[0.4948951608],"iteration":1435,"passed_time":49.64048213,"remaining_time":123.2024222,"test":[0.4965550606]}, -{"learn":[0.4948935515],"iteration":1436,"passed_time":49.67809579,"remaining_time":123.1754038,"test":[0.4965537195]}, -{"learn":[0.4948903924],"iteration":1437,"passed_time":49.7142187,"remaining_time":123.144678,"test":[0.4965517823]}, -{"learn":[0.4948889321],"iteration":1438,"passed_time":49.75212975,"remaining_time":123.1183697,"test":[0.49655062]}, -{"learn":[0.4948880083],"iteration":1439,"passed_time":49.79149537,"remaining_time":123.0956413,"test":[0.4965499048]}, -{"learn":[0.4948871142],"iteration":1440,"passed_time":49.8297764,"remaining_time":123.0702111,"test":[0.4965493981]}, -{"learn":[0.4948851472],"iteration":1441,"passed_time":49.86615814,"remaining_time":123.0400767,"test":[0.4965477888]}, -{"learn":[0.4948818988],"iteration":1442,"passed_time":49.90185192,"remaining_time":123.0082379,"test":[0.4965449278]}, -{"learn":[0.4948811239],"iteration":1443,"passed_time":49.94058535,"remaining_time":122.9838792,"test":[0.4965442125]}, -{"learn":[0.4948794252],"iteration":1444,"passed_time":49.97763159,"remaining_time":122.9553497,"test":[0.496542931]}, -{"learn":[0.4948761767],"iteration":1445,"passed_time":50.01313143,"remaining_time":122.9230077,"test":[0.49654007]}, -{"learn":[0.494874776],"iteration":1446,"passed_time":50.05067062,"remaining_time":122.8956688,"test":[0.4965387885]}, -{"learn":[0.494873882],"iteration":1447,"passed_time":50.08886073,"remaining_time":122.8699125,"test":[0.4965381924]}, -{"learn":[0.4948731071],"iteration":1448,"passed_time":50.12694692,"remaining_time":122.8438844,"test":[0.4965375368]}, -{"learn":[0.494871915],"iteration":1449,"passed_time":50.16424993,"remaining_time":122.8159222,"test":[0.4965364043]}, -{"learn":[0.4948694116],"iteration":1450,"passed_time":50.19943108,"remaining_time":122.7827574,"test":[0.4965341393]}, -{"learn":[0.4948675937],"iteration":1451,"passed_time":50.23748164,"remaining_time":122.7566011,"test":[0.4965326492]}, -{"learn":[0.4948660141],"iteration":1452,"passed_time":50.2730915,"remaining_time":122.7244704,"test":[0.4965313677]}, -{"learn":[0.4948642856],"iteration":1453,"passed_time":50.30978423,"remaining_time":122.6949759,"test":[0.4965299074]}, -{"learn":[0.4948627359],"iteration":1454,"passed_time":50.34886373,"remaining_time":122.6712866,"test":[0.4965286259]}, -{"learn":[0.4948602027],"iteration":1455,"passed_time":50.38407179,"remaining_time":122.6381528,"test":[0.4965264205]}, -{"learn":[0.4948583251],"iteration":1456,"passed_time":50.42043434,"remaining_time":122.6078235,"test":[0.4965251092]}, -{"learn":[0.4948567158],"iteration":1457,"passed_time":50.45678096,"remaining_time":122.5774473,"test":[0.4965236787]}, -{"learn":[0.4948468512],"iteration":1458,"passed_time":50.4894329,"remaining_time":122.5380959,"test":[0.4965154533]}, -{"learn":[0.4948453611],"iteration":1459,"passed_time":50.52604689,"remaining_time":122.5083603,"test":[0.4965140824]}, -{"learn":[0.4948446757],"iteration":1460,"passed_time":50.56573287,"remaining_time":122.4860566,"test":[0.4965136055]}, -{"learn":[0.4948438114],"iteration":1461,"passed_time":50.604326,"remaining_time":122.4610844,"test":[0.4965128605]}, -{"learn":[0.4948419041],"iteration":1462,"passed_time":50.64360023,"remaining_time":122.4377403,"test":[0.4965114002]}, -{"learn":[0.4948412186],"iteration":1463,"passed_time":50.68256789,"remaining_time":122.4136339,"test":[0.4965106551]}, -{"learn":[0.4948394901],"iteration":1464,"passed_time":50.71888337,"remaining_time":122.3831077,"test":[0.496509314]}, -{"learn":[0.494838596],"iteration":1465,"passed_time":50.75756874,"remaining_time":122.3582864,"test":[0.4965086583]}, -{"learn":[0.4948370165],"iteration":1466,"passed_time":50.79417309,"remaining_time":122.3284346,"test":[0.496507198]}, -{"learn":[0.494836182],"iteration":1467,"passed_time":50.83255778,"remaining_time":122.302857,"test":[0.4965064232]}, -{"learn":[0.4948299831],"iteration":1468,"passed_time":50.86821352,"remaining_time":122.2707025,"test":[0.4965022508]}, -{"learn":[0.494827748],"iteration":1469,"passed_time":50.90500037,"remaining_time":122.2412594,"test":[0.4965002243]}, -{"learn":[0.4948264367],"iteration":1470,"passed_time":50.94368437,"remaining_time":122.2163577,"test":[0.496499211]}, -{"learn":[0.4948247379],"iteration":1471,"passed_time":50.98036219,"remaining_time":122.1866289,"test":[0.4964976911]}, -{"learn":[0.4948192841],"iteration":1472,"passed_time":51.015271,"remaining_time":122.152655,"test":[0.4964931611]}, -{"learn":[0.4948184496],"iteration":1473,"passed_time":51.05272706,"remaining_time":122.1247731,"test":[0.4964924757]}, -{"learn":[0.4948171383],"iteration":1474,"passed_time":51.08949704,"remaining_time":122.0952387,"test":[0.496491224]}, -{"learn":[0.4948156482],"iteration":1475,"passed_time":51.1254581,"remaining_time":122.0637631,"test":[0.4964899723]}, -{"learn":[0.4948132342],"iteration":1476,"passed_time":51.16196011,"remaining_time":122.0335717,"test":[0.4964877669]}, -{"learn":[0.4948119229],"iteration":1477,"passed_time":51.19997061,"remaining_time":122.0069665,"test":[0.4964865152]}, -{"learn":[0.4948098964],"iteration":1478,"passed_time":51.23502327,"remaining_time":121.9733042,"test":[0.4964852933]}, -{"learn":[0.4948079294],"iteration":1479,"passed_time":51.26996844,"remaining_time":121.9393844,"test":[0.4964839522]}, -{"learn":[0.4948070652],"iteration":1480,"passed_time":51.30900213,"remaining_time":121.9151779,"test":[0.4964831774]}, -{"learn":[0.4948059625],"iteration":1481,"passed_time":51.34804488,"remaining_time":121.8909729,"test":[0.4964826409]}, -{"learn":[0.4948045618],"iteration":1482,"passed_time":51.38498957,"remaining_time":121.8617723,"test":[0.4964816276]}, -{"learn":[0.4948018497],"iteration":1483,"passed_time":51.42092209,"remaining_time":121.8301631,"test":[0.4964788858]}, -{"learn":[0.4947979754],"iteration":1484,"passed_time":51.4564194,"remaining_time":121.797518,"test":[0.4964756672]}, -{"learn":[0.4947955615],"iteration":1485,"passed_time":51.49269042,"remaining_time":121.7666986,"test":[0.4964737002]}, -{"learn":[0.4947904355],"iteration":1486,"passed_time":51.52622835,"remaining_time":121.7294151,"test":[0.4964688126]}, -{"learn":[0.4947890347],"iteration":1487,"passed_time":51.56444119,"remaining_time":121.7031703,"test":[0.4964676206]}, -{"learn":[0.4947881705],"iteration":1488,"passed_time":51.60393678,"remaining_time":121.6799342,"test":[0.4964671139]}, -{"learn":[0.4947872764],"iteration":1489,"passed_time":51.64237745,"remaining_time":121.6541912,"test":[0.4964664285]}, -{"learn":[0.4947843856],"iteration":1490,"passed_time":51.67694886,"remaining_time":121.619325,"test":[0.4964640145]}, -{"learn":[0.494782061],"iteration":1491,"passed_time":51.71223289,"remaining_time":121.5861347,"test":[0.4964619879]}, -{"learn":[0.494779647],"iteration":1492,"passed_time":51.74816989,"remaining_time":121.5544754,"test":[0.496459872]}, -{"learn":[0.4947768754],"iteration":1493,"passed_time":51.78292579,"remaining_time":121.5200387,"test":[0.4964576666]}, -{"learn":[0.4947761303],"iteration":1494,"passed_time":51.82011587,"remaining_time":121.4913084,"test":[0.4964570705]}, -{"learn":[0.4947754449],"iteration":1495,"passed_time":51.85857314,"remaining_time":121.4655349,"test":[0.4964563255]}, -{"learn":[0.4947727627],"iteration":1496,"passed_time":51.89526456,"remaining_time":121.4356124,"test":[0.4964540605]}, -{"learn":[0.494771958],"iteration":1497,"passed_time":51.93444866,"remaining_time":121.4115082,"test":[0.4964534048]}, -{"learn":[0.4947707659],"iteration":1498,"passed_time":51.9727532,"remaining_time":121.3853295,"test":[0.4964528684]}, -{"learn":[0.4947690672],"iteration":1499,"passed_time":52.00976794,"remaining_time":121.3561252,"test":[0.4964516167]}, -{"learn":[0.4947678453],"iteration":1500,"passed_time":52.04664883,"remaining_time":121.3265984,"test":[0.4964506332]}, -{"learn":[0.4947662956],"iteration":1501,"passed_time":52.08268468,"remaining_time":121.2950939,"test":[0.4964495604]}, -{"learn":[0.4947647161],"iteration":1502,"passed_time":52.11993466,"remaining_time":121.2664082,"test":[0.4964485173]}, -{"learn":[0.494761408],"iteration":1503,"passed_time":52.15698914,"remaining_time":121.2372567,"test":[0.4964457755]}, -{"learn":[0.4947600669],"iteration":1504,"passed_time":52.19513688,"remaining_time":121.2106335,"test":[0.4964446132]}, -{"learn":[0.49475658],"iteration":1505,"passed_time":52.22916748,"remaining_time":121.174443,"test":[0.4964412455]}, -{"learn":[0.4947549707],"iteration":1506,"passed_time":52.26656846,"remaining_time":121.1460674,"test":[0.4964398746]}, -{"learn":[0.49475357],"iteration":1507,"passed_time":52.30333068,"remaining_time":121.1162008,"test":[0.4964386229]}, -{"learn":[0.4947527057],"iteration":1508,"passed_time":52.34162794,"remaining_time":121.0898762,"test":[0.4964380269]}, -{"learn":[0.4947509474],"iteration":1509,"passed_time":52.3783057,"remaining_time":121.0597926,"test":[0.4964364771]}, -{"learn":[0.4947502917],"iteration":1510,"passed_time":52.41597498,"remaining_time":121.0319899,"test":[0.4964358811]}, -{"learn":[0.4947495467],"iteration":1511,"passed_time":52.45430773,"remaining_time":121.0057046,"test":[0.496435136]}, -{"learn":[0.4947490102],"iteration":1512,"passed_time":52.49343052,"remaining_time":120.9812242,"test":[0.4964345102]}, -{"learn":[0.494745583],"iteration":1513,"passed_time":52.52880822,"remaining_time":120.9481014,"test":[0.4964321856]}, -{"learn":[0.4947440929],"iteration":1514,"passed_time":52.56509505,"remaining_time":120.9170668,"test":[0.4964308445]}, -{"learn":[0.4947427219],"iteration":1515,"passed_time":52.60114393,"remaining_time":120.8854785,"test":[0.4964297418]}, -{"learn":[0.4947295493],"iteration":1516,"passed_time":52.63363022,"remaining_time":120.8457047,"test":[0.4964182679]}, -{"learn":[0.4947187311],"iteration":1517,"passed_time":52.66817057,"remaining_time":120.8106521,"test":[0.496409059]}, -{"learn":[0.4947177774],"iteration":1518,"passed_time":52.70619336,"remaining_time":120.7835807,"test":[0.4964083437]}, -{"learn":[0.494715274],"iteration":1519,"passed_time":52.74327657,"remaining_time":120.7543437,"test":[0.4964061384]}, -{"learn":[0.4947143501],"iteration":1520,"passed_time":52.7830986,"remaining_time":120.731361,"test":[0.4964056019]}, -{"learn":[0.4947133965],"iteration":1521,"passed_time":52.82276116,"remaining_time":120.7079917,"test":[0.4964048867]}, -{"learn":[0.4947123832],"iteration":1522,"passed_time":52.86038627,"remaining_time":120.6799495,"test":[0.4964043204]}, -{"learn":[0.4947100288],"iteration":1523,"passed_time":52.89555596,"remaining_time":120.6462943,"test":[0.4964019064]}, -{"learn":[0.4947087473],"iteration":1524,"passed_time":52.93318004,"remaining_time":120.6182299,"test":[0.4964008038]}, -{"learn":[0.4947070784],"iteration":1525,"passed_time":52.96789025,"remaining_time":120.5835195,"test":[0.4963993434]}, -{"learn":[0.4947056181],"iteration":1526,"passed_time":53.00560739,"remaining_time":120.555648,"test":[0.4963980917]}, -{"learn":[0.4947032637],"iteration":1527,"passed_time":53.04108918,"remaining_time":120.5226843,"test":[0.4963960354]}, -{"learn":[0.494699896],"iteration":1528,"passed_time":53.07555246,"remaining_time":120.4874052,"test":[0.4963934128]}, -{"learn":[0.4946985251],"iteration":1529,"passed_time":53.11333829,"remaining_time":120.4596627,"test":[0.4963921611]}, -{"learn":[0.494697035],"iteration":1530,"passed_time":53.14997328,"remaining_time":120.4292994,"test":[0.4963911478]}, -{"learn":[0.4946960813],"iteration":1531,"passed_time":53.18806362,"remaining_time":120.4022224,"test":[0.496390522]}, -{"learn":[0.4946945912],"iteration":1532,"passed_time":53.22396543,"remaining_time":120.3701814,"test":[0.4963895087]}, -{"learn":[0.4946931309],"iteration":1533,"passed_time":53.26159552,"remaining_time":120.3420405,"test":[0.4963881378]}, -{"learn":[0.4946916706],"iteration":1534,"passed_time":53.29846571,"remaining_time":120.3121718,"test":[0.4963872735]}, -{"learn":[0.4946907169],"iteration":1535,"passed_time":53.33749955,"remaining_time":120.2871735,"test":[0.4963866477]}, -{"learn":[0.4946897632],"iteration":1536,"passed_time":53.37572219,"remaining_time":120.2603292,"test":[0.4963858728]}, -{"learn":[0.4946891076],"iteration":1537,"passed_time":53.41473218,"remaining_time":120.2352424,"test":[0.4963853364]}, -{"learn":[0.4946866638],"iteration":1538,"passed_time":53.45015659,"remaining_time":120.202074,"test":[0.4963829522]}, -{"learn":[0.4946850545],"iteration":1539,"passed_time":53.48589342,"remaining_time":120.1696047,"test":[0.4963817899]}, -{"learn":[0.4946840412],"iteration":1540,"passed_time":53.52354462,"remaining_time":120.1414282,"test":[0.496381164]}, -{"learn":[0.494682253],"iteration":1541,"passed_time":53.56075833,"remaining_time":120.1122583,"test":[0.4963797335]}, -{"learn":[0.4946800179],"iteration":1542,"passed_time":53.59776276,"remaining_time":120.0826091,"test":[0.4963778858]}, -{"learn":[0.4946778721],"iteration":1543,"passed_time":53.63305195,"remaining_time":120.0491111,"test":[0.496375889]}, -{"learn":[0.494676531],"iteration":1544,"passed_time":53.66983895,"remaining_time":120.0189602,"test":[0.4963746969]}, -{"learn":[0.4946736998],"iteration":1545,"passed_time":53.70589149,"remaining_time":119.9871599,"test":[0.4963725214]}, -{"learn":[0.4946729845],"iteration":1546,"passed_time":53.74473709,"remaining_time":119.9615884,"test":[0.4963717465]}, -{"learn":[0.494671256],"iteration":1547,"passed_time":53.78080399,"remaining_time":119.9298032,"test":[0.496370465]}, -{"learn":[0.4946699149],"iteration":1548,"passed_time":53.81954729,"remaining_time":119.9039753,"test":[0.4963694815]}, -{"learn":[0.4946690804],"iteration":1549,"passed_time":53.85829453,"remaining_time":119.8781394,"test":[0.4963689153]}, -{"learn":[0.494666577],"iteration":1550,"passed_time":53.89289682,"remaining_time":119.8430697,"test":[0.4963667099]}, -{"learn":[0.4946657426],"iteration":1551,"passed_time":53.93145231,"remaining_time":119.8167832,"test":[0.4963661139]}, -{"learn":[0.4946649081],"iteration":1552,"passed_time":53.97030033,"remaining_time":119.7911302,"test":[0.4963654284]}, -{"learn":[0.4946631796],"iteration":1553,"passed_time":54.00654188,"remaining_time":119.7596804,"test":[0.4963641171]}, -{"learn":[0.4946616],"iteration":1554,"passed_time":54.04294204,"remaining_time":119.7285758,"test":[0.4963628952]}, -{"learn":[0.4946592755],"iteration":1555,"passed_time":54.07774611,"remaining_time":119.6939316,"test":[0.4963604812]}, -{"learn":[0.4946577853],"iteration":1556,"passed_time":54.11435922,"remaining_time":119.6632876,"test":[0.4963591997]}, -{"learn":[0.4946569807],"iteration":1557,"passed_time":54.1520534,"remaining_time":119.6350243,"test":[0.4963585739]}, -{"learn":[0.4946557886],"iteration":1558,"passed_time":54.18763512,"remaining_time":119.6020862,"test":[0.4963574712]}, -{"learn":[0.4946509904],"iteration":1559,"passed_time":54.22269549,"remaining_time":119.5679952,"test":[0.4963536565]}, -{"learn":[0.4946485168],"iteration":1560,"passed_time":54.26447719,"remaining_time":119.5487105,"test":[0.4963518087]}, -{"learn":[0.4946455664],"iteration":1561,"passed_time":54.30150671,"remaining_time":119.5189373,"test":[0.4963492457]}, -{"learn":[0.4946447021],"iteration":1562,"passed_time":54.33915554,"remaining_time":119.4905167,"test":[0.4963486199]}, -{"learn":[0.4946434802],"iteration":1563,"passed_time":54.3774314,"remaining_time":119.4634618,"test":[0.4963474874]}, -{"learn":[0.4946421391],"iteration":1564,"passed_time":54.4148168,"remaining_time":119.4344381,"test":[0.4963463549]}, -{"learn":[0.4946411854],"iteration":1565,"passed_time":54.45248388,"remaining_time":119.4060215,"test":[0.4963456099]}, -{"learn":[0.494638533],"iteration":1566,"passed_time":54.48796999,"remaining_time":119.3728149,"test":[0.4963435535]}, -{"learn":[0.4946374304],"iteration":1567,"passed_time":54.52523939,"remaining_time":119.3435087,"test":[0.4963425104]}, -{"learn":[0.4946360594],"iteration":1568,"passed_time":54.56249271,"remaining_time":119.3141571,"test":[0.4963414673]}, -{"learn":[0.4946315891],"iteration":1569,"passed_time":54.59684553,"remaining_time":119.2784587,"test":[0.4963377122]}, -{"learn":[0.4946301884],"iteration":1570,"passed_time":54.6338076,"remaining_time":119.2484572,"test":[0.4963366394]}, -{"learn":[0.4946290261],"iteration":1571,"passed_time":54.67082696,"remaining_time":119.2185718,"test":[0.4963355665]}, -{"learn":[0.4946277148],"iteration":1572,"passed_time":54.7074437,"remaining_time":119.1878001,"test":[0.4963345532]}, -{"learn":[0.4946269697],"iteration":1573,"passed_time":54.7453209,"remaining_time":119.1597646,"test":[0.4963339572]}, -{"learn":[0.4946254498],"iteration":1574,"passed_time":54.78084878,"remaining_time":119.1266077,"test":[0.4963326459]}, -{"learn":[0.4946246154],"iteration":1575,"passed_time":54.81862087,"remaining_time":119.0983235,"test":[0.4963320796]}, -{"learn":[0.4946230656],"iteration":1576,"passed_time":54.8562395,"remaining_time":119.0696942,"test":[0.4963307981]}, -{"learn":[0.494622112],"iteration":1577,"passed_time":54.89382677,"remaining_time":119.0409855,"test":[0.4963296656]}, -{"learn":[0.4946195788],"iteration":1578,"passed_time":54.9303277,"remaining_time":119.009912,"test":[0.4963276987]}, -{"learn":[0.4946185655],"iteration":1579,"passed_time":54.96984309,"remaining_time":118.9853566,"test":[0.4963271622]}, -{"learn":[0.4946170456],"iteration":1580,"passed_time":55.00785785,"remaining_time":118.957537,"test":[0.4963260297]}, -{"learn":[0.4946122176],"iteration":1581,"passed_time":55.0427386,"remaining_time":118.9229333,"test":[0.4963216786]}, -{"learn":[0.4946062571],"iteration":1582,"passed_time":55.07707811,"remaining_time":118.887161,"test":[0.496316493]}, -{"learn":[0.4946057207],"iteration":1583,"passed_time":55.11537773,"remaining_time":118.8599308,"test":[0.4963158671]}, -{"learn":[0.4946044988],"iteration":1584,"passed_time":55.1516562,"remaining_time":118.8283318,"test":[0.4963148837]}, -{"learn":[0.4946036941],"iteration":1585,"passed_time":55.19027104,"remaining_time":118.8017562,"test":[0.4963141982]}, -{"learn":[0.4946012801],"iteration":1586,"passed_time":55.22701702,"remaining_time":118.7711462,"test":[0.4963120226]}, -{"learn":[0.4946005947],"iteration":1587,"passed_time":55.26639708,"remaining_time":118.7461882,"test":[0.4963113372]}, -{"learn":[0.4945990152],"iteration":1588,"passed_time":55.30240129,"remaining_time":118.7139653,"test":[0.4963100259]}, -{"learn":[0.4945981807],"iteration":1589,"passed_time":55.34041573,"remaining_time":118.6860488,"test":[0.4963094596]}, -{"learn":[0.4945954389],"iteration":1590,"passed_time":55.37608678,"remaining_time":118.6530986,"test":[0.4963073139]}, -{"learn":[0.4945938892],"iteration":1591,"passed_time":55.41259656,"remaining_time":118.6219404,"test":[0.4963059728]}, -{"learn":[0.4945921606],"iteration":1592,"passed_time":55.44911475,"remaining_time":118.5907934,"test":[0.4963047509]}, -{"learn":[0.4945913262],"iteration":1593,"passed_time":55.48842558,"remaining_time":118.565607,"test":[0.4963041846]}, -{"learn":[0.494589538],"iteration":1594,"passed_time":55.52416269,"remaining_time":118.5327736,"test":[0.4963026647]}, -{"learn":[0.494588942],"iteration":1595,"passed_time":55.56263228,"remaining_time":118.5057646,"test":[0.4963021283]}, -{"learn":[0.4945879883],"iteration":1596,"passed_time":55.60116048,"remaining_time":118.4788661,"test":[0.4963014726]}, -{"learn":[0.4945872432],"iteration":1597,"passed_time":55.63926596,"remaining_time":118.4510531,"test":[0.4963009064]}, -{"learn":[0.4945842034],"iteration":1598,"passed_time":55.67493486,"remaining_time":118.4180447,"test":[0.496298105]}, -{"learn":[0.4945818788],"iteration":1599,"passed_time":55.71138218,"remaining_time":118.3866871,"test":[0.4962962572]}, -{"learn":[0.4945811934],"iteration":1600,"passed_time":55.75002825,"remaining_time":118.3599913,"test":[0.4962956016]}, -{"learn":[0.4945797331],"iteration":1601,"passed_time":55.78660247,"remaining_time":118.3288859,"test":[0.4962945287]}, -{"learn":[0.4945790774],"iteration":1602,"passed_time":55.82516774,"remaining_time":118.301993,"test":[0.4962938432]}, -{"learn":[0.4945781535],"iteration":1603,"passed_time":55.86398722,"remaining_time":118.2756238,"test":[0.4962933664]}, -{"learn":[0.4945767826],"iteration":1604,"passed_time":55.90254061,"remaining_time":118.2486762,"test":[0.4962921445]}, -{"learn":[0.4945751137],"iteration":1605,"passed_time":55.9397855,"remaining_time":118.2189489,"test":[0.4962910418]}, -{"learn":[0.4945730275],"iteration":1606,"passed_time":55.97702182,"remaining_time":118.1891942,"test":[0.4962890749]}, -{"learn":[0.4945725209],"iteration":1607,"passed_time":56.01493387,"remaining_time":118.1608555,"test":[0.496288598]}, -{"learn":[0.4945704645],"iteration":1608,"passed_time":56.05175492,"remaining_time":118.1302057,"test":[0.4962866311]}, -{"learn":[0.4945679313],"iteration":1609,"passed_time":56.08890011,"remaining_time":118.1002307,"test":[0.4962849323]}, -{"learn":[0.4945668585],"iteration":1610,"passed_time":56.12602991,"remaining_time":118.0702144,"test":[0.4962837999]}, -{"learn":[0.4945648021],"iteration":1611,"passed_time":56.16351841,"remaining_time":118.0409432,"test":[0.4962824587]}, -{"learn":[0.4945638484],"iteration":1612,"passed_time":56.20120547,"remaining_time":118.0120787,"test":[0.4962813263]}, -{"learn":[0.4945621497],"iteration":1613,"passed_time":56.23781561,"remaining_time":117.980944,"test":[0.4962801342]}, -{"learn":[0.4945613152],"iteration":1614,"passed_time":56.27640153,"remaining_time":117.9539438,"test":[0.4962794189]}, -{"learn":[0.4945597357],"iteration":1615,"passed_time":56.31262129,"remaining_time":117.9219743,"test":[0.4962782566]}, -{"learn":[0.494558186],"iteration":1616,"passed_time":56.35036181,"remaining_time":117.8931812,"test":[0.4962768857]}, -{"learn":[0.4945563382],"iteration":1617,"passed_time":56.38691022,"remaining_time":117.8618853,"test":[0.4962753956]}, -{"learn":[0.4945552654],"iteration":1618,"passed_time":56.42369081,"remaining_time":117.8310677,"test":[0.4962745909]}, -{"learn":[0.4945544309],"iteration":1619,"passed_time":56.46202443,"remaining_time":117.8034831,"test":[0.4962740545]}, -{"learn":[0.4945522255],"iteration":1620,"passed_time":56.49702866,"remaining_time":117.768945,"test":[0.4962718789]}, -{"learn":[0.4945508844],"iteration":1621,"passed_time":56.53377727,"remaining_time":117.7380392,"test":[0.4962706868]}, -{"learn":[0.4945492751],"iteration":1622,"passed_time":56.56895733,"remaining_time":117.7038625,"test":[0.4962696736]}, -{"learn":[0.4945474274],"iteration":1623,"passed_time":56.60446373,"remaining_time":117.670363,"test":[0.4962687199]}, -{"learn":[0.4945461757],"iteration":1624,"passed_time":56.64008509,"remaining_time":117.6370998,"test":[0.496267498]}, -{"learn":[0.4945448942],"iteration":1625,"passed_time":56.67866087,"remaining_time":117.6099642,"test":[0.4962664847]}, -{"learn":[0.4945443279],"iteration":1626,"passed_time":56.71801673,"remaining_time":117.5844317,"test":[0.4962657396]}, -{"learn":[0.4945436723],"iteration":1627,"passed_time":56.75591282,"remaining_time":117.5558587,"test":[0.496265233]}, -{"learn":[0.4945413775],"iteration":1628,"passed_time":56.79053364,"remaining_time":117.5204966,"test":[0.4962632661]}, -{"learn":[0.4945406324],"iteration":1629,"passed_time":56.82849627,"remaining_time":117.4920444,"test":[0.4962626104]}, -{"learn":[0.4945396787],"iteration":1630,"passed_time":56.8662594,"remaining_time":117.4631685,"test":[0.4962619846]}, -{"learn":[0.4945360429],"iteration":1631,"passed_time":56.89858052,"remaining_time":117.423051,"test":[0.4962596004]}, -{"learn":[0.4945352382],"iteration":1632,"passed_time":56.93605159,"remaining_time":117.3935614,"test":[0.4962590043]}, -{"learn":[0.4945343739],"iteration":1633,"passed_time":56.97387588,"remaining_time":117.3647896,"test":[0.4962584679]}, -{"learn":[0.4945330328],"iteration":1634,"passed_time":57.00943984,"remaining_time":117.3313548,"test":[0.4962569778]}, -{"learn":[0.4945305592],"iteration":1635,"passed_time":57.04598284,"remaining_time":117.2999305,"test":[0.4962548916]}, -{"learn":[0.4945295758],"iteration":1636,"passed_time":57.08322468,"remaining_time":117.2699356,"test":[0.4962539081]}, -{"learn":[0.4945276088],"iteration":1637,"passed_time":57.11917403,"remaining_time":117.237279,"test":[0.4962525074]}, -{"learn":[0.4945267445],"iteration":1638,"passed_time":57.15526125,"remaining_time":117.2049012,"test":[0.4962519114]}, -{"learn":[0.4945252246],"iteration":1639,"passed_time":57.19128959,"remaining_time":117.1723982,"test":[0.4962507193]}, -{"learn":[0.4945229894],"iteration":1640,"passed_time":57.22664528,"remaining_time":117.138514,"test":[0.4962487225]}, -{"learn":[0.4945206053],"iteration":1641,"passed_time":57.26094274,"remaining_time":117.1024639,"test":[0.496246994]}, -{"learn":[0.4945180125],"iteration":1642,"passed_time":57.30761786,"remaining_time":117.0917061,"test":[0.496244878]}, -{"learn":[0.4945170886],"iteration":1643,"passed_time":57.34535822,"remaining_time":117.0626656,"test":[0.4962443118]}, -{"learn":[0.4945160753],"iteration":1644,"passed_time":57.38178772,"remaining_time":117.0309409,"test":[0.4962432985]}, -{"learn":[0.4945153005],"iteration":1645,"passed_time":57.41956778,"remaining_time":117.0019625,"test":[0.4962424938]}, -{"learn":[0.4945146448],"iteration":1646,"passed_time":57.4566767,"remaining_time":116.9716071,"test":[0.496241868]}, -{"learn":[0.4945133335],"iteration":1647,"passed_time":57.49293263,"remaining_time":116.9395086,"test":[0.4962407355]}, -{"learn":[0.4945105917],"iteration":1648,"passed_time":57.52815629,"remaining_time":116.9053073,"test":[0.4962384705]}, -{"learn":[0.4945097572],"iteration":1649,"passed_time":57.5653911,"remaining_time":116.875188,"test":[0.4962379341]}, -{"learn":[0.4945089824],"iteration":1650,"passed_time":57.60208291,"remaining_time":116.8439586,"test":[0.4962373678]}, -{"learn":[0.4945073134],"iteration":1651,"passed_time":57.63936712,"remaining_time":116.8139232,"test":[0.4962360267]}, -{"learn":[0.4945065386],"iteration":1652,"passed_time":57.67855077,"remaining_time":116.787725,"test":[0.4962353711]}, -{"learn":[0.4945050783],"iteration":1653,"passed_time":57.71648144,"remaining_time":116.7589764,"test":[0.4962341194]}, -{"learn":[0.4945039756],"iteration":1654,"passed_time":57.7530951,"remaining_time":116.7275547,"test":[0.4962333147]}, -{"learn":[0.4945025749],"iteration":1655,"passed_time":57.78854193,"remaining_time":116.6937707,"test":[0.4962321524]}, -{"learn":[0.4945018298],"iteration":1656,"passed_time":57.82522805,"remaining_time":116.6624848,"test":[0.496231467]}, -{"learn":[0.4945003099],"iteration":1657,"passed_time":57.85934402,"remaining_time":116.6260119,"test":[0.4962300961]}, -{"learn":[0.49449727],"iteration":1658,"passed_time":57.89305699,"remaining_time":116.5887302,"test":[0.4962281291]}, -{"learn":[0.4944954521],"iteration":1659,"passed_time":57.92809302,"remaining_time":116.5541149,"test":[0.4962266092]}, -{"learn":[0.494494707],"iteration":1660,"passed_time":57.96518152,"remaining_time":116.523625,"test":[0.4962260132]}, -{"learn":[0.494493515],"iteration":1661,"passed_time":58.00005255,"remaining_time":116.4886735,"test":[0.4962248509]}, -{"learn":[0.4944911904],"iteration":1662,"passed_time":58.03462621,"remaining_time":116.4531255,"test":[0.4962227051]}, -{"learn":[0.4944887466],"iteration":1663,"passed_time":58.0692976,"remaining_time":116.4177745,"test":[0.4962207381]}, -{"learn":[0.4944878227],"iteration":1664,"passed_time":58.10829601,"remaining_time":116.3910914,"test":[0.4962202017]}, -{"learn":[0.4944863326],"iteration":1665,"passed_time":58.14560991,"remaining_time":116.3610225,"test":[0.4962191288]}, -{"learn":[0.4944856471],"iteration":1666,"passed_time":58.18323216,"remaining_time":116.3315614,"test":[0.496218503]}, -{"learn":[0.4944849021],"iteration":1667,"passed_time":58.22131856,"remaining_time":116.3030176,"test":[0.4962177281]}, -{"learn":[0.4944835908],"iteration":1668,"passed_time":58.25716766,"remaining_time":116.2699973,"test":[0.4962167446]}, -{"learn":[0.4944824285],"iteration":1669,"passed_time":58.29429097,"remaining_time":116.2395143,"test":[0.4962158506]}, -{"learn":[0.4944814748],"iteration":1670,"passed_time":58.33186026,"remaining_time":116.2099119,"test":[0.4962151949]}, -{"learn":[0.4944762594],"iteration":1671,"passed_time":58.36498364,"remaining_time":116.1714507,"test":[0.4962106054]}, -{"learn":[0.4944756038],"iteration":1672,"passed_time":58.40215094,"remaining_time":116.1410378,"test":[0.4962100093]}, -{"learn":[0.4944734282],"iteration":1673,"passed_time":58.43917533,"remaining_time":116.1103328,"test":[0.4962079231]}, -{"learn":[0.4944725341],"iteration":1674,"passed_time":58.47690562,"remaining_time":116.0810216,"test":[0.4962072377]}, -{"learn":[0.4944709248],"iteration":1675,"passed_time":58.5143208,"remaining_time":116.0510754,"test":[0.4962061648]}, -{"learn":[0.4944701201],"iteration":1676,"passed_time":58.55116866,"remaining_time":116.0199961,"test":[0.496205688]}, -{"learn":[0.4944673783],"iteration":1677,"passed_time":58.58659595,"remaining_time":115.9860976,"test":[0.4962034528]}, -{"learn":[0.4944667525],"iteration":1678,"passed_time":58.624579,"remaining_time":115.9572525,"test":[0.4962029164]}, -{"learn":[0.4944659776],"iteration":1679,"passed_time":58.66116872,"remaining_time":115.9256429,"test":[0.4962022905]}, -{"learn":[0.4944635338],"iteration":1680,"passed_time":58.69530109,"remaining_time":115.8891757,"test":[0.4962002342]}, -{"learn":[0.4944623417],"iteration":1681,"passed_time":58.73114855,"remaining_time":115.8560945,"test":[0.4961991911]}, -{"learn":[0.4944610304],"iteration":1682,"passed_time":58.7663706,"remaining_time":115.8217773,"test":[0.4961982076]}, -{"learn":[0.4944603152],"iteration":1683,"passed_time":58.8028117,"remaining_time":115.7898596,"test":[0.4961975519]}, -{"learn":[0.4944577224],"iteration":1684,"passed_time":58.83712187,"remaining_time":115.7537442,"test":[0.4961954062]}, -{"learn":[0.4944565601],"iteration":1685,"passed_time":58.87301773,"remaining_time":115.7207478,"test":[0.4961942439]}, -{"learn":[0.4944550998],"iteration":1686,"passed_time":58.90876321,"remaining_time":115.6874526,"test":[0.4961931114]}, -{"learn":[0.494452805],"iteration":1687,"passed_time":58.94361678,"remaining_time":115.6524045,"test":[0.4961911146]}, -{"learn":[0.4944521195],"iteration":1688,"passed_time":58.98181417,"remaining_time":115.6239116,"test":[0.496190608]}, -{"learn":[0.4944506294],"iteration":1689,"passed_time":59.01819724,"remaining_time":115.5918538,"test":[0.4961895053]}, -{"learn":[0.4944490797],"iteration":1690,"passed_time":59.05418998,"remaining_time":115.559027,"test":[0.4961884324]}, -{"learn":[0.4944460399],"iteration":1691,"passed_time":59.08857999,"remaining_time":115.523063,"test":[0.4961862271]}, -{"learn":[0.494443298],"iteration":1692,"passed_time":59.12334364,"remaining_time":115.4878307,"test":[0.4961841409]}, -{"learn":[0.4944427318],"iteration":1693,"passed_time":59.160293,"remaining_time":115.4568646,"test":[0.4961836045]}, -{"learn":[0.4944400198],"iteration":1694,"passed_time":59.19368735,"remaining_time":115.4189597,"test":[0.4961812501]}, -{"learn":[0.4944384105],"iteration":1695,"passed_time":59.22764081,"remaining_time":115.3821493,"test":[0.4961799388]}, -{"learn":[0.494437427],"iteration":1696,"passed_time":59.26487134,"remaining_time":115.3517207,"test":[0.4961793427]}, -{"learn":[0.4944351918],"iteration":1697,"passed_time":59.30092244,"remaining_time":115.3189905,"test":[0.4961774354]}, -{"learn":[0.4944341189],"iteration":1698,"passed_time":59.33713523,"remaining_time":115.2865706,"test":[0.4961764817]}, -{"learn":[0.4944328374],"iteration":1699,"passed_time":59.3721541,"remaining_time":115.2518286,"test":[0.4961754088]}, -{"learn":[0.4944314367],"iteration":1700,"passed_time":59.40801949,"remaining_time":115.218728,"test":[0.4961742465]}, -{"learn":[0.4944299466],"iteration":1701,"passed_time":59.44275183,"remaining_time":115.1834286,"test":[0.4961731438]}, -{"learn":[0.4944285459],"iteration":1702,"passed_time":59.47936066,"remaining_time":115.1517628,"test":[0.4961720114]}, -{"learn":[0.494427175],"iteration":1703,"passed_time":59.51611568,"remaining_time":115.120374,"test":[0.4961709087]}, -{"learn":[0.4944255359],"iteration":1704,"passed_time":59.55183415,"remaining_time":115.0869757,"test":[0.4961694484]}, -{"learn":[0.4944228835],"iteration":1705,"passed_time":59.58725133,"remaining_time":115.0529929,"test":[0.4961676006]}, -{"learn":[0.4944219894],"iteration":1706,"passed_time":59.62415515,"remaining_time":115.0218763,"test":[0.496166945]}, -{"learn":[0.4944214231],"iteration":1707,"passed_time":59.66141176,"remaining_time":114.991433,"test":[0.4961663191]}, -{"learn":[0.4944196052],"iteration":1708,"passed_time":59.69726053,"remaining_time":114.9582706,"test":[0.4961649482]}, -{"learn":[0.4944190092],"iteration":1709,"passed_time":59.73411242,"remaining_time":114.927035,"test":[0.496164382]}, -{"learn":[0.4944178171],"iteration":1710,"passed_time":59.76998328,"remaining_time":114.8939071,"test":[0.4961633985]}, -{"learn":[0.4944157905],"iteration":1711,"passed_time":59.80560588,"remaining_time":114.8602991,"test":[0.4961613719]}, -{"learn":[0.4944141216],"iteration":1712,"passed_time":59.84189239,"remaining_time":114.8279628,"test":[0.49616015]}, -{"learn":[0.4944132871],"iteration":1713,"passed_time":59.87861111,"remaining_time":114.7964505,"test":[0.4961596136]}, -{"learn":[0.4944107837],"iteration":1714,"passed_time":59.91287494,"remaining_time":114.7602298,"test":[0.4961579149]}, -{"learn":[0.4944093532],"iteration":1715,"passed_time":59.94750959,"remaining_time":114.7247211,"test":[0.496156544]}, -{"learn":[0.4944085485],"iteration":1716,"passed_time":59.98408112,"remaining_time":114.6929169,"test":[0.4961560075]}, -{"learn":[0.4944072968],"iteration":1717,"passed_time":60.01930512,"remaining_time":114.6585328,"test":[0.496154875]}, -{"learn":[0.4944054491],"iteration":1718,"passed_time":60.05391917,"remaining_time":114.6229836,"test":[0.4961536829]}, -{"learn":[0.4944047935],"iteration":1719,"passed_time":60.09146291,"remaining_time":114.5930223,"test":[0.4961529975]}, -{"learn":[0.4944039888],"iteration":1720,"passed_time":60.12747849,"remaining_time":114.5601406,"test":[0.4961523418]}, -{"learn":[0.4944028563],"iteration":1721,"passed_time":60.16390234,"remaining_time":114.5280324,"test":[0.4961513285]}, -{"learn":[0.4944023199],"iteration":1722,"passed_time":60.20146464,"remaining_time":114.4980845,"test":[0.4961508815]}, -{"learn":[0.4944006211],"iteration":1723,"passed_time":60.23618384,"remaining_time":114.4627252,"test":[0.4961495106]}, -{"learn":[0.494398982],"iteration":1724,"passed_time":60.27142526,"remaining_time":114.4283581,"test":[0.4961481695]}, -{"learn":[0.494396866],"iteration":1725,"passed_time":60.30645575,"remaining_time":114.3935899,"test":[0.4961463814]}, -{"learn":[0.494396121],"iteration":1726,"passed_time":60.34515507,"remaining_time":114.3657745,"test":[0.4961456959]}, -{"learn":[0.4943946607],"iteration":1727,"passed_time":60.38034169,"remaining_time":114.3312951,"test":[0.4961445336]}, -{"learn":[0.4943930513],"iteration":1728,"passed_time":60.41572517,"remaining_time":114.2971874,"test":[0.4961434011]}, -{"learn":[0.4943916208],"iteration":1729,"passed_time":60.45053671,"remaining_time":114.2619971,"test":[0.4961421792]}, -{"learn":[0.4943900711],"iteration":1730,"passed_time":60.48691963,"remaining_time":114.2297749,"test":[0.4961409275]}, -{"learn":[0.4943871505],"iteration":1731,"passed_time":60.52350239,"remaining_time":114.1979248,"test":[0.4961385732]}, -{"learn":[0.494385869],"iteration":1732,"passed_time":60.56025212,"remaining_time":114.1663841,"test":[0.4961376493]}, -{"learn":[0.4943845577],"iteration":1733,"passed_time":60.5960772,"remaining_time":114.1330958,"test":[0.4961364572]}, -{"learn":[0.4943824119],"iteration":1734,"passed_time":60.63148032,"remaining_time":114.0990105,"test":[0.4961347585]}, -{"learn":[0.4943810708],"iteration":1735,"passed_time":60.66707596,"remaining_time":114.0652857,"test":[0.4961335068]}, -{"learn":[0.4943795211],"iteration":1736,"passed_time":60.70290133,"remaining_time":114.0319902,"test":[0.4961322253]}, -{"learn":[0.4943780012],"iteration":1737,"passed_time":60.73827621,"remaining_time":113.9978464,"test":[0.4961309438]}, -{"learn":[0.4943756766],"iteration":1738,"passed_time":60.77235185,"remaining_time":113.9612647,"test":[0.496129096]}, -{"learn":[0.4943744249],"iteration":1739,"passed_time":60.80791451,"remaining_time":113.927472,"test":[0.4961282914]}, -{"learn":[0.4943724877],"iteration":1740,"passed_time":60.84188784,"remaining_time":113.8907022,"test":[0.4961262946]}, -{"learn":[0.4943699843],"iteration":1741,"passed_time":60.87480116,"remaining_time":113.851953,"test":[0.4961243574]}, -{"learn":[0.4943683452],"iteration":1742,"passed_time":60.91031395,"remaining_time":113.818068,"test":[0.4961230461]}, -{"learn":[0.4943669147],"iteration":1743,"passed_time":60.94573569,"remaining_time":113.7840111,"test":[0.4961220031]}, -{"learn":[0.494365216],"iteration":1744,"passed_time":60.98130125,"remaining_time":113.750221,"test":[0.4961208706]}, -{"learn":[0.4943634278],"iteration":1745,"passed_time":61.0154472,"remaining_time":113.713783,"test":[0.4961196189]}, -{"learn":[0.4943605966],"iteration":1746,"passed_time":61.04907846,"remaining_time":113.6763894,"test":[0.4961174135]}, -{"learn":[0.4943598218],"iteration":1747,"passed_time":61.08598299,"remaining_time":113.6450896,"test":[0.4961166983]}, -{"learn":[0.4943583912],"iteration":1748,"passed_time":61.12135533,"remaining_time":113.6109355,"test":[0.4961155658]}, -{"learn":[0.4943577356],"iteration":1749,"passed_time":61.15825054,"remaining_time":113.5796081,"test":[0.4961148505]}, -{"learn":[0.494354964],"iteration":1750,"passed_time":61.19342926,"remaining_time":113.5450895,"test":[0.4961125259]}, -{"learn":[0.4943541891],"iteration":1751,"passed_time":61.23060732,"remaining_time":113.5142766,"test":[0.4961119001]}, -{"learn":[0.4943534739],"iteration":1752,"passed_time":61.26815118,"remaining_time":113.484134,"test":[0.4961113636]}, -{"learn":[0.4943514175],"iteration":1753,"passed_time":61.3025224,"remaining_time":113.4481116,"test":[0.4961093073]}, -{"learn":[0.4943500466],"iteration":1754,"passed_time":61.33853144,"remaining_time":113.4151194,"test":[0.4961082642]}, -{"learn":[0.4943457849],"iteration":1755,"passed_time":61.37257107,"remaining_time":113.3784855,"test":[0.4961050455]}, -{"learn":[0.4943445034],"iteration":1756,"passed_time":61.40780288,"remaining_time":113.3440551,"test":[0.4961040025]}, -{"learn":[0.4943434603],"iteration":1757,"passed_time":61.44477509,"remaining_time":113.3128332,"test":[0.4961032872]}, -{"learn":[0.4943382151],"iteration":1758,"passed_time":61.47730233,"remaining_time":113.2734149,"test":[0.4960995917]}, -{"learn":[0.4943358309],"iteration":1759,"passed_time":61.51011976,"remaining_time":113.2345386,"test":[0.4960975652]}, -{"learn":[0.4943352646],"iteration":1760,"passed_time":61.54705144,"remaining_time":113.2032366,"test":[0.4960970883]}, -{"learn":[0.4943335659],"iteration":1761,"passed_time":61.58311357,"remaining_time":113.1703302,"test":[0.4960958366]}, -{"learn":[0.4943330593],"iteration":1762,"passed_time":61.62172611,"remaining_time":113.1421029,"test":[0.4960953002]}, -{"learn":[0.4943318374],"iteration":1763,"passed_time":61.65861141,"remaining_time":113.1106953,"test":[0.4960942571]}, -{"learn":[0.4943309433],"iteration":1764,"passed_time":61.69551485,"remaining_time":113.0793147,"test":[0.4960933034]}, -{"learn":[0.4943298108],"iteration":1765,"passed_time":61.731597,"remaining_time":113.0464239,"test":[0.49609232]}, -{"learn":[0.4943290956],"iteration":1766,"passed_time":61.76893495,"remaining_time":113.0158272,"test":[0.4960917537]}, -{"learn":[0.4943266518],"iteration":1767,"passed_time":61.80353413,"remaining_time":112.9802162,"test":[0.4960896974]}, -{"learn":[0.4943258769],"iteration":1768,"passed_time":61.84169696,"remaining_time":112.9511153,"test":[0.4960892801]}, -{"learn":[0.494324506],"iteration":1769,"passed_time":61.87722046,"remaining_time":112.9171876,"test":[0.4960881178]}, -{"learn":[0.4943231649],"iteration":1770,"passed_time":61.91316146,"remaining_time":112.8840194,"test":[0.4960867767]}, -{"learn":[0.4943221516],"iteration":1771,"passed_time":61.94971536,"remaining_time":112.8519646,"test":[0.4960863297]}, -{"learn":[0.4943215854],"iteration":1772,"passed_time":61.98605436,"remaining_time":112.8195135,"test":[0.4960855846]}, -{"learn":[0.4943202443],"iteration":1773,"passed_time":62.02143431,"remaining_time":112.785314,"test":[0.4960842137]}, -{"learn":[0.494319529],"iteration":1774,"passed_time":62.05889584,"remaining_time":112.7548953,"test":[0.4960837071]}, -{"learn":[0.4943179495],"iteration":1775,"passed_time":62.09518867,"remaining_time":112.722347,"test":[0.4960825448]}, -{"learn":[0.4943164594],"iteration":1776,"passed_time":62.12970681,"remaining_time":112.6865757,"test":[0.4960815613]}, -{"learn":[0.4943155653],"iteration":1777,"passed_time":62.16802072,"remaining_time":112.6576843,"test":[0.4960808461]}, -{"learn":[0.4943144328],"iteration":1778,"passed_time":62.20284939,"remaining_time":112.6224721,"test":[0.4960797732]}, -{"learn":[0.4943120784],"iteration":1779,"passed_time":62.23805113,"remaining_time":112.5879352,"test":[0.4960782235]}, -{"learn":[0.4943111844],"iteration":1780,"passed_time":62.27519921,"remaining_time":112.5569154,"test":[0.4960774486]}, -{"learn":[0.4943098433],"iteration":1781,"passed_time":62.3113368,"remaining_time":112.5240639,"test":[0.4960763757]}, -{"learn":[0.4943090982],"iteration":1782,"passed_time":62.34868503,"remaining_time":112.493393,"test":[0.4960757499]}, -{"learn":[0.4943082041],"iteration":1783,"passed_time":62.3860677,"remaining_time":112.4627767,"test":[0.496075273]}, -{"learn":[0.4943074889],"iteration":1784,"passed_time":62.42334398,"remaining_time":112.4319613,"test":[0.4960745578]}, -{"learn":[0.4943060286],"iteration":1785,"passed_time":62.4582356,"remaining_time":112.3968473,"test":[0.4960733359]}, -{"learn":[0.4943046875],"iteration":1786,"passed_time":62.49502846,"remaining_time":112.3651519,"test":[0.4960722332]}, -{"learn":[0.494304002],"iteration":1787,"passed_time":62.53154858,"remaining_time":112.3329609,"test":[0.4960716669]}, -{"learn":[0.4943031973],"iteration":1788,"passed_time":62.56877924,"remaining_time":112.3020403,"test":[0.4960710411]}, -{"learn":[0.4943023927],"iteration":1789,"passed_time":62.6056225,"remaining_time":112.270418,"test":[0.4960704153]}, -{"learn":[0.4943012006],"iteration":1790,"passed_time":62.64111474,"remaining_time":112.2363692,"test":[0.4960692828]}, -{"learn":[0.4943003363],"iteration":1791,"passed_time":62.67984011,"remaining_time":112.2081066,"test":[0.4960686271]}, -{"learn":[0.4942997701],"iteration":1792,"passed_time":62.71895355,"remaining_time":112.1805265,"test":[0.4960680907]}, -{"learn":[0.4942980713],"iteration":1793,"passed_time":62.75698738,"remaining_time":112.1510042,"test":[0.4960667496]}, -{"learn":[0.4942975945],"iteration":1794,"passed_time":62.79368765,"remaining_time":112.1190913,"test":[0.4960662727]}, -{"learn":[0.4942967302],"iteration":1795,"passed_time":62.831354,"remaining_time":112.0888966,"test":[0.4960656469]}, -{"learn":[0.4942955382],"iteration":1796,"passed_time":62.86849346,"remaining_time":112.0577543,"test":[0.4960646634]}, -{"learn":[0.4942947633],"iteration":1797,"passed_time":62.90516863,"remaining_time":112.0257786,"test":[0.4960640078]}, -{"learn":[0.4942932732],"iteration":1798,"passed_time":62.94048088,"remaining_time":111.9913726,"test":[0.4960629945]}, -{"learn":[0.4942925281],"iteration":1799,"passed_time":62.97782065,"remaining_time":111.96057,"test":[0.4960623984]}, -{"learn":[0.4942916639],"iteration":1800,"passed_time":63.01524673,"remaining_time":111.9299135,"test":[0.4960617428]}, -{"learn":[0.4942911274],"iteration":1801,"passed_time":63.0533512,"remaining_time":111.9004535,"test":[0.4960610573]}, -{"learn":[0.4942900247],"iteration":1802,"passed_time":63.09138334,"remaining_time":111.8708555,"test":[0.4960604911]}, -{"learn":[0.4942882664],"iteration":1803,"passed_time":63.12887321,"remaining_time":111.8402876,"test":[0.4960592394]}, -{"learn":[0.4942871637],"iteration":1804,"passed_time":63.16630031,"remaining_time":111.8096008,"test":[0.4960583155]}, -{"learn":[0.4942842133],"iteration":1805,"passed_time":63.20173933,"remaining_time":111.7753906,"test":[0.4960559313]}, -{"learn":[0.4942815609],"iteration":1806,"passed_time":63.23772473,"remaining_time":111.7421445,"test":[0.4960533385]}, -{"learn":[0.4942794151],"iteration":1807,"passed_time":63.27294521,"remaining_time":111.7075449,"test":[0.49605161]}, -{"learn":[0.4942786104],"iteration":1808,"passed_time":63.31053879,"remaining_time":111.6771306,"test":[0.4960508649]}, -{"learn":[0.4942779548],"iteration":1809,"passed_time":63.3488343,"remaining_time":111.6479455,"test":[0.4960503583]}, -{"learn":[0.4942746169],"iteration":1810,"passed_time":63.3834044,"remaining_time":111.6121903,"test":[0.4960480933]}, -{"learn":[0.4942741699],"iteration":1811,"passed_time":63.42099301,"remaining_time":111.5817471,"test":[0.4960474973]}, -{"learn":[0.4942731268],"iteration":1812,"passed_time":63.45722994,"remaining_time":111.5489199,"test":[0.4960465138]}, -{"learn":[0.4942712791],"iteration":1813,"passed_time":63.49124939,"remaining_time":111.5121944,"test":[0.4960452919]}, -{"learn":[0.4942691333],"iteration":1814,"passed_time":63.52580946,"remaining_time":111.4764205,"test":[0.496043623]}, -{"learn":[0.4942683286],"iteration":1815,"passed_time":63.5625118,"remaining_time":111.444404,"test":[0.4960429375]}, -{"learn":[0.4942661829],"iteration":1816,"passed_time":63.59676728,"remaining_time":111.4080959,"test":[0.4960412984]}, -{"learn":[0.494265408],"iteration":1817,"passed_time":63.63440638,"remaining_time":111.3777124,"test":[0.4960408215]}, -{"learn":[0.4942642755],"iteration":1818,"passed_time":63.6695249,"remaining_time":111.342913,"test":[0.4960398083]}, -{"learn":[0.4942636497],"iteration":1819,"passed_time":63.70696929,"remaining_time":111.3121771,"test":[0.4960392718]}, -{"learn":[0.494262845],"iteration":1820,"passed_time":63.74507119,"remaining_time":111.2825817,"test":[0.4960385268]}, -{"learn":[0.4942581064],"iteration":1821,"passed_time":63.77811056,"remaining_time":111.2441467,"test":[0.4960343544]}, -{"learn":[0.4942571528],"iteration":1822,"passed_time":63.81450329,"remaining_time":111.2115617,"test":[0.4960336392]}, -{"learn":[0.4942549772],"iteration":1823,"passed_time":63.849648,"remaining_time":111.1767994,"test":[0.4960317914]}, -{"learn":[0.4942539937],"iteration":1824,"passed_time":63.88543176,"remaining_time":111.1431484,"test":[0.4960310166]}, -{"learn":[0.494252444],"iteration":1825,"passed_time":63.92102397,"remaining_time":111.1091621,"test":[0.4960299139]}, -{"learn":[0.4942512817],"iteration":1826,"passed_time":63.9566505,"remaining_time":111.0752337,"test":[0.496028841]}, -{"learn":[0.4942488677],"iteration":1827,"passed_time":63.99019894,"remaining_time":111.0376975,"test":[0.4960270231]}, -{"learn":[0.4942466623],"iteration":1828,"passed_time":64.02411388,"remaining_time":111.0008011,"test":[0.4960250263]}, -{"learn":[0.4942459173],"iteration":1829,"passed_time":64.06101334,"remaining_time":110.9690778,"test":[0.4960243707]}, -{"learn":[0.4942435033],"iteration":1830,"passed_time":64.09544153,"remaining_time":110.9330717,"test":[0.4960225825]}, -{"learn":[0.4942421026],"iteration":1831,"passed_time":64.13228949,"remaining_time":110.9012517,"test":[0.4960216289]}, -{"learn":[0.4942404337],"iteration":1832,"passed_time":64.16783401,"remaining_time":110.8671742,"test":[0.4960202281]}, -{"learn":[0.4942398078],"iteration":1833,"passed_time":64.20551045,"remaining_time":110.8367754,"test":[0.4960197513]}, -{"learn":[0.4942384667],"iteration":1834,"passed_time":64.24212869,"remaining_time":110.8045435,"test":[0.4960182612]}, -{"learn":[0.4942359931],"iteration":1835,"passed_time":64.27887694,"remaining_time":110.7725308,"test":[0.4960164433]}, -{"learn":[0.4942349202],"iteration":1836,"passed_time":64.3143965,"remaining_time":110.7383975,"test":[0.4960157876]}, -{"learn":[0.4942334897],"iteration":1837,"passed_time":64.35068739,"remaining_time":110.7055895,"test":[0.4960146551]}, -{"learn":[0.4942319102],"iteration":1838,"passed_time":64.38685392,"remaining_time":110.672564,"test":[0.496013612]}, -{"learn":[0.4942305393],"iteration":1839,"passed_time":64.42183183,"remaining_time":110.6374938,"test":[0.4960123603]}, -{"learn":[0.4942297644],"iteration":1840,"passed_time":64.45911547,"remaining_time":110.6063801,"test":[0.4960118537]}, -{"learn":[0.4942289896],"iteration":1841,"passed_time":64.4961788,"remaining_time":110.574882,"test":[0.4960113173]}, -{"learn":[0.4942269928],"iteration":1842,"passed_time":64.53190283,"remaining_time":110.5410837,"test":[0.4960094695]}, -{"learn":[0.4942255921],"iteration":1843,"passed_time":64.56875347,"remaining_time":110.5092115,"test":[0.4960085456]}, -{"learn":[0.4942249663],"iteration":1844,"passed_time":64.60543755,"remaining_time":110.477049,"test":[0.49600789]}, -{"learn":[0.494224251],"iteration":1845,"passed_time":64.6435248,"remaining_time":110.4472791,"test":[0.4960073833]}, -{"learn":[0.4942236252],"iteration":1846,"passed_time":64.6813675,"remaining_time":110.4170827,"test":[0.4960068767]}, -{"learn":[0.4942229993],"iteration":1847,"passed_time":64.71854586,"remaining_time":110.3857449,"test":[0.4960061615]}, -{"learn":[0.4942215688],"iteration":1848,"passed_time":64.75520993,"remaining_time":110.3535243,"test":[0.4960051184]}, -{"learn":[0.4942199893],"iteration":1849,"passed_time":64.79190681,"remaining_time":110.3213548,"test":[0.4960039859]}, -{"learn":[0.4942187376],"iteration":1850,"passed_time":64.82747704,"remaining_time":110.2872638,"test":[0.496002764]}, -{"learn":[0.4942176945],"iteration":1851,"passed_time":64.86449076,"remaining_time":110.2556247,"test":[0.4960021977]}, -{"learn":[0.4942165024],"iteration":1852,"passed_time":64.90001397,"remaining_time":110.2214484,"test":[0.4960009162]}, -{"learn":[0.4942158468],"iteration":1853,"passed_time":64.93748155,"remaining_time":110.1905701,"test":[0.4960003798]}, -{"learn":[0.4942150719],"iteration":1854,"passed_time":64.97412254,"remaining_time":110.1582832,"test":[0.4959997241]}, -{"learn":[0.4942137308],"iteration":1855,"passed_time":65.00899723,"remaining_time":110.1229996,"test":[0.4959985619]}, -{"learn":[0.4942117042],"iteration":1856,"passed_time":65.04490046,"remaining_time":110.0894573,"test":[0.4959972208]}, -{"learn":[0.4942100353],"iteration":1857,"passed_time":65.07969872,"remaining_time":110.0540438,"test":[0.4959958797]}, -{"learn":[0.494209022],"iteration":1858,"passed_time":65.1150569,"remaining_time":110.019577,"test":[0.495994926]}, -{"learn":[0.4942065484],"iteration":1859,"passed_time":65.15042281,"remaining_time":109.9851224,"test":[0.4959931378]}, -{"learn":[0.4942052371],"iteration":1860,"passed_time":65.18649632,"remaining_time":109.9518603,"test":[0.4959918563]}, -{"learn":[0.4942036874],"iteration":1861,"passed_time":65.22188046,"remaining_time":109.9174333,"test":[0.4959908729]}, -{"learn":[0.4942024059],"iteration":1862,"passed_time":65.2715952,"remaining_time":109.9071359,"test":[0.4959898]}, -{"learn":[0.4942013032],"iteration":1863,"passed_time":65.3082833,"remaining_time":109.8748801,"test":[0.4959888165]}, -{"learn":[0.4941985912],"iteration":1864,"passed_time":65.34248973,"remaining_time":109.8384479,"test":[0.4959870582]}, -{"learn":[0.4941978163],"iteration":1865,"passed_time":65.38029421,"remaining_time":109.8080611,"test":[0.4959864621]}, -{"learn":[0.4941958494],"iteration":1866,"passed_time":65.41643043,"remaining_time":109.7748669,"test":[0.495984674]}, -{"learn":[0.4941949255],"iteration":1867,"passed_time":65.45344177,"remaining_time":109.7431368,"test":[0.4959839289]}, -{"learn":[0.4941939718],"iteration":1868,"passed_time":65.48942445,"remaining_time":109.7096779,"test":[0.4959829454]}, -{"learn":[0.4941929884],"iteration":1869,"passed_time":65.52603426,"remaining_time":109.6772659,"test":[0.4959823494]}, -{"learn":[0.4941877432],"iteration":1870,"passed_time":65.5582598,"remaining_time":109.6375173,"test":[0.4959783559]}, -{"learn":[0.4941867299],"iteration":1871,"passed_time":65.59226293,"remaining_time":109.600747,"test":[0.495977432]}, -{"learn":[0.4941860742],"iteration":1872,"passed_time":65.62961986,"remaining_time":109.5695789,"test":[0.4959768658]}, -{"learn":[0.4941846139],"iteration":1873,"passed_time":65.66560774,"remaining_time":109.5361205,"test":[0.4959757929]}, -{"learn":[0.4941831238],"iteration":1874,"passed_time":65.70086235,"remaining_time":109.5014373,"test":[0.4959748988]}, -{"learn":[0.4941807694],"iteration":1875,"passed_time":65.73596718,"remaining_time":109.466504,"test":[0.4959729915]}, -{"learn":[0.4941791899],"iteration":1876,"passed_time":65.77198219,"remaining_time":109.4330849,"test":[0.4959720378]}, -{"learn":[0.4941774614],"iteration":1877,"passed_time":65.80803364,"remaining_time":109.3997237,"test":[0.4959709053]}, -{"learn":[0.4941764183],"iteration":1878,"passed_time":65.84542382,"remaining_time":109.3685832,"test":[0.4959703689]}, -{"learn":[0.4941755838],"iteration":1879,"passed_time":65.89411418,"remaining_time":109.3561895,"test":[0.4959694152]}, -{"learn":[0.4941742725],"iteration":1880,"passed_time":65.93127348,"remaining_time":109.3246369,"test":[0.4959683423]}, -{"learn":[0.4941731996],"iteration":1881,"passed_time":65.96653283,"remaining_time":109.2899306,"test":[0.4959675078]}, -{"learn":[0.4941716499],"iteration":1882,"passed_time":66.00064514,"remaining_time":109.253325,"test":[0.4959662263]}, -{"learn":[0.494170726],"iteration":1883,"passed_time":66.03779301,"remaining_time":109.2217426,"test":[0.4959655707]}, -{"learn":[0.49417013],"iteration":1884,"passed_time":66.074744,"remaining_time":109.1898289,"test":[0.4959650044]}, -{"learn":[0.4941685505],"iteration":1885,"passed_time":66.11082097,"remaining_time":109.1564669,"test":[0.495963872]}, -{"learn":[0.4941676862],"iteration":1886,"passed_time":66.14730051,"remaining_time":109.123766,"test":[0.4959631567]}, -{"learn":[0.4941670306],"iteration":1887,"passed_time":66.18383091,"remaining_time":109.091145,"test":[0.4959625905]}, -{"learn":[0.4941646464],"iteration":1888,"passed_time":66.21777352,"remaining_time":109.054258,"test":[0.4959605043]}, -{"learn":[0.4941617555],"iteration":1889,"passed_time":66.25164335,"remaining_time":109.0172544,"test":[0.4959582691]}, -{"learn":[0.494160176],"iteration":1890,"passed_time":66.28838798,"remaining_time":108.9849806,"test":[0.4959571068]}, -{"learn":[0.4941588647],"iteration":1891,"passed_time":66.32486727,"remaining_time":108.9522661,"test":[0.495956034]}, -{"learn":[0.494156719],"iteration":1892,"passed_time":66.35953318,"remaining_time":108.9165714,"test":[0.4959544246]}, -{"learn":[0.4941560633],"iteration":1893,"passed_time":66.39737021,"remaining_time":108.8860781,"test":[0.495953769]}, -{"learn":[0.494154901],"iteration":1894,"passed_time":66.43406911,"remaining_time":108.8537122,"test":[0.4959527259]}, -{"learn":[0.4941537089],"iteration":1895,"passed_time":66.47044481,"remaining_time":108.8208126,"test":[0.4959518616]}, -{"learn":[0.4941529043],"iteration":1896,"passed_time":66.50695066,"remaining_time":108.7881222,"test":[0.4959512954]}, -{"learn":[0.4941521294],"iteration":1897,"passed_time":66.54437987,"remaining_time":108.756937,"test":[0.4959507589]}, -{"learn":[0.4941513247],"iteration":1898,"passed_time":66.58107157,"remaining_time":108.7245408,"test":[0.4959502225]}, -{"learn":[0.4941503711],"iteration":1899,"passed_time":66.61822017,"remaining_time":108.6928855,"test":[0.495949239]}, -{"learn":[0.4941473908],"iteration":1900,"passed_time":66.65291891,"remaining_time":108.6572308,"test":[0.4959469144]}, -{"learn":[0.4941453643],"iteration":1901,"passed_time":66.68795798,"remaining_time":108.6221313,"test":[0.4959451263]}, -{"learn":[0.4941430397],"iteration":1902,"passed_time":66.72240839,"remaining_time":108.586074,"test":[0.495943219]}, -{"learn":[0.49414149],"iteration":1903,"passed_time":66.75737832,"remaining_time":108.5508631,"test":[0.4959421759]}, -{"learn":[0.4941408939],"iteration":1904,"passed_time":66.79526549,"remaining_time":108.520392,"test":[0.4959415202]}, -{"learn":[0.4941388376],"iteration":1905,"passed_time":66.8312289,"remaining_time":108.4867902,"test":[0.4959397619]}, -{"learn":[0.4941287942],"iteration":1906,"passed_time":66.86433181,"remaining_time":108.4485466,"test":[0.4959325497]}, -{"learn":[0.4941282279],"iteration":1907,"passed_time":66.90228922,"remaining_time":108.4181752,"test":[0.4959318941]}, -{"learn":[0.4941259332],"iteration":1908,"passed_time":66.93870884,"remaining_time":108.3853059,"test":[0.4959301655]}, -{"learn":[0.4941247113],"iteration":1909,"passed_time":66.97593201,"remaining_time":108.3537329,"test":[0.4959294801]}, -{"learn":[0.4941238172],"iteration":1910,"passed_time":67.01424438,"remaining_time":108.3239146,"test":[0.4959287946]}, -{"learn":[0.4941231615],"iteration":1911,"passed_time":67.05346768,"remaining_time":108.2955587,"test":[0.495928288]}, -{"learn":[0.4941220291],"iteration":1912,"passed_time":67.08876663,"remaining_time":108.2608586,"test":[0.4959274237]}, -{"learn":[0.494121135],"iteration":1913,"passed_time":67.12776823,"remaining_time":108.2321279,"test":[0.4959268575]}, -{"learn":[0.494119168],"iteration":1914,"passed_time":67.16435998,"remaining_time":108.1995042,"test":[0.4959251587]}, -{"learn":[0.494116754],"iteration":1915,"passed_time":67.19942602,"remaining_time":108.1644206,"test":[0.4959231024]}, -{"learn":[0.4941142506],"iteration":1916,"passed_time":67.23267553,"remaining_time":108.1264156,"test":[0.4959209864]}, -{"learn":[0.4941128499],"iteration":1917,"passed_time":67.2693253,"remaining_time":108.0938793,"test":[0.4959197943]}, -{"learn":[0.4941115088],"iteration":1918,"passed_time":67.30629538,"remaining_time":108.0618531,"test":[0.4959187512]}, -{"learn":[0.4941088564],"iteration":1919,"passed_time":67.34204476,"remaining_time":108.0278635,"test":[0.4959163671]}, -{"learn":[0.4941073663],"iteration":1920,"passed_time":67.37990413,"remaining_time":107.9972539,"test":[0.4959152346]}, -{"learn":[0.4941052205],"iteration":1921,"passed_time":67.41492454,"remaining_time":107.9620904,"test":[0.4959134464]}, -{"learn":[0.4941042371],"iteration":1922,"passed_time":67.45203714,"remaining_time":107.9302747,"test":[0.4959127014]}, -{"learn":[0.494095952],"iteration":1923,"passed_time":67.48374039,"remaining_time":107.8898053,"test":[0.495905519]}, -{"learn":[0.4940945811],"iteration":1924,"passed_time":67.51949277,"remaining_time":107.8558131,"test":[0.4959044461]}, -{"learn":[0.4940932996],"iteration":1925,"passed_time":67.55460448,"remaining_time":107.8207966,"test":[0.4959034329]}, -{"learn":[0.4940910942],"iteration":1926,"passed_time":67.59024602,"remaining_time":107.7866248,"test":[0.4959015851]}, -{"learn":[0.4940903194],"iteration":1927,"passed_time":67.62667196,"remaining_time":107.7537014,"test":[0.4959010189]}, -{"learn":[0.4940893657],"iteration":1928,"passed_time":67.66343334,"remaining_time":107.7213083,"test":[0.4959001546]}, -{"learn":[0.4940885908],"iteration":1929,"passed_time":67.69870625,"remaining_time":107.6865431,"test":[0.495899648]}, -{"learn":[0.494087965],"iteration":1930,"passed_time":67.73554399,"remaining_time":107.6542644,"test":[0.4958989625]}, -{"learn":[0.4940856106],"iteration":1931,"passed_time":67.77105148,"remaining_time":107.6198685,"test":[0.4958969658]}, -{"learn":[0.4940845377],"iteration":1932,"passed_time":67.80854217,"remaining_time":107.5886181,"test":[0.4958963995]}, -{"learn":[0.4940804548],"iteration":1933,"passed_time":67.84312742,"remaining_time":107.5527553,"test":[0.4958927338]}, -{"learn":[0.4940791137],"iteration":1934,"passed_time":67.87945855,"remaining_time":107.5196591,"test":[0.4958917205]}, -{"learn":[0.4940783389],"iteration":1935,"passed_time":67.91873984,"remaining_time":107.4912288,"test":[0.4958913927]}, -{"learn":[0.4940767891],"iteration":1936,"passed_time":67.95460946,"remaining_time":107.4573922,"test":[0.4958902602]}, -{"learn":[0.494075299],"iteration":1937,"passed_time":67.99167067,"remaining_time":107.4254363,"test":[0.4958891873]}, -{"learn":[0.4940723784],"iteration":1938,"passed_time":68.0258957,"remaining_time":107.3889978,"test":[0.4958868926]}, -{"learn":[0.4940643318],"iteration":1939,"passed_time":68.0584162,"remaining_time":107.349873,"test":[0.4958794122]}, -{"learn":[0.4940637059],"iteration":1940,"passed_time":68.09513609,"remaining_time":107.3173732,"test":[0.4958787267]}, -{"learn":[0.494062335],"iteration":1941,"passed_time":68.13055993,"remaining_time":107.2828281,"test":[0.4958778029]}, -{"learn":[0.4940606661],"iteration":1942,"passed_time":68.16585583,"remaining_time":107.2480809,"test":[0.4958765512]}, -{"learn":[0.4940600104],"iteration":1943,"passed_time":68.20208119,"remaining_time":107.2147943,"test":[0.4958759849]}, -{"learn":[0.494059176],"iteration":1944,"passed_time":68.2391658,"remaining_time":107.1828543,"test":[0.4958754783]}, -{"learn":[0.4940581329],"iteration":1945,"passed_time":68.27339878,"remaining_time":107.1464337,"test":[0.4958745544]}, -{"learn":[0.4940573282],"iteration":1946,"passed_time":68.31052943,"remaining_time":107.114559,"test":[0.4958740776]}, -{"learn":[0.494056613],"iteration":1947,"passed_time":68.34808847,"remaining_time":107.0833501,"test":[0.4958734517]}, -{"learn":[0.4940546758],"iteration":1948,"passed_time":68.38314191,"remaining_time":107.0482124,"test":[0.4958718126]}, -{"learn":[0.4940537817],"iteration":1949,"passed_time":68.42081835,"remaining_time":107.0171774,"test":[0.4958708887]}, -{"learn":[0.4940528877],"iteration":1950,"passed_time":68.45847488,"remaining_time":106.9861045,"test":[0.4958702331]}, -{"learn":[0.4940511591],"iteration":1951,"passed_time":68.49377941,"remaining_time":106.9513523,"test":[0.4958692198]}, -{"learn":[0.4940499968],"iteration":1952,"passed_time":68.53082224,"remaining_time":106.9193115,"test":[0.4958679979]}, -{"learn":[0.4940485961],"iteration":1953,"passed_time":68.56672162,"remaining_time":106.8854831,"test":[0.4958669548]}, -{"learn":[0.4940478511],"iteration":1954,"passed_time":68.60634124,"remaining_time":106.8574471,"test":[0.4958662396]}, -{"learn":[0.4940465994],"iteration":1955,"passed_time":68.64254741,"remaining_time":106.8240871,"test":[0.4958654349]}, -{"learn":[0.4940459735],"iteration":1956,"passed_time":68.68159329,"remaining_time":106.7951397,"test":[0.4958647793]}, -{"learn":[0.4940430231],"iteration":1957,"passed_time":68.71726023,"remaining_time":106.7609324,"test":[0.4958626037]}, -{"learn":[0.494042129],"iteration":1958,"passed_time":68.75439427,"remaining_time":106.729001,"test":[0.4958619182]}, -{"learn":[0.4940408475],"iteration":1959,"passed_time":68.79102091,"remaining_time":106.6962773,"test":[0.4958610242]}, -{"learn":[0.4940397747],"iteration":1960,"passed_time":68.8268639,"remaining_time":106.6623352,"test":[0.4958600109]}, -{"learn":[0.4940370924],"iteration":1961,"passed_time":68.86189512,"remaining_time":106.6271342,"test":[0.4958578353]}, -{"learn":[0.4940356023],"iteration":1962,"passed_time":68.89972485,"remaining_time":106.5962631,"test":[0.4958567326]}, -{"learn":[0.4940343804],"iteration":1963,"passed_time":68.93625167,"remaining_time":106.5633707,"test":[0.4958557193]}, -{"learn":[0.4940334864],"iteration":1964,"passed_time":68.97340606,"remaining_time":106.531444,"test":[0.4958552127]}, -{"learn":[0.4940326221],"iteration":1965,"passed_time":69.00896547,"remaining_time":106.4970505,"test":[0.4958542292]}, -{"learn":[0.4940314598],"iteration":1966,"passed_time":69.04476118,"remaining_time":106.4630202,"test":[0.4958532458]}, -{"learn":[0.494030834],"iteration":1967,"passed_time":69.08221517,"remaining_time":106.4315429,"test":[0.4958527093]}, -{"learn":[0.4940288372],"iteration":1968,"passed_time":69.11730697,"remaining_time":106.3964233,"test":[0.4958510106]}, -{"learn":[0.4940280325],"iteration":1969,"passed_time":69.15472168,"remaining_time":106.3648765,"test":[0.4958504741]}, -{"learn":[0.4940251417],"iteration":1970,"passed_time":69.18801953,"remaining_time":106.326997,"test":[0.4958482092]}, -{"learn":[0.4940237112],"iteration":1971,"passed_time":69.22398881,"remaining_time":106.2932242,"test":[0.4958471065]}, -{"learn":[0.494021178],"iteration":1972,"passed_time":69.25983477,"remaining_time":106.2592599,"test":[0.4958451991]}, -{"learn":[0.494019062],"iteration":1973,"passed_time":69.29757869,"remaining_time":106.2282032,"test":[0.495843411]}, -{"learn":[0.4940178401],"iteration":1974,"passed_time":69.33452295,"remaining_time":106.1959149,"test":[0.4958425765]}, -{"learn":[0.4940162904],"iteration":1975,"passed_time":69.37121008,"remaining_time":106.1632284,"test":[0.4958412056]}, -{"learn":[0.4940156646],"iteration":1976,"passed_time":69.40984817,"remaining_time":106.133521,"test":[0.495840699]}, -{"learn":[0.4940152771],"iteration":1977,"passed_time":69.44739626,"remaining_time":106.1021393,"test":[0.4958401923]}, -{"learn":[0.4940139062],"iteration":1978,"passed_time":69.48216939,"remaining_time":106.0665153,"test":[0.4958392089]}, -{"learn":[0.4940098233],"iteration":1979,"passed_time":69.51499492,"remaining_time":106.0279215,"test":[0.4958354538]}, -{"learn":[0.4940086014],"iteration":1980,"passed_time":69.55126912,"remaining_time":105.9945893,"test":[0.4958344107]}, -{"learn":[0.4940074093],"iteration":1981,"passed_time":69.58576156,"remaining_time":105.9585411,"test":[0.495833606]}, -{"learn":[0.4940052636],"iteration":1982,"passed_time":69.6200506,"remaining_time":105.9221849,"test":[0.4958317285]}, -{"learn":[0.4940043993],"iteration":1983,"passed_time":69.6569725,"remaining_time":105.8898332,"test":[0.4958311622]}, -{"learn":[0.4940033264],"iteration":1984,"passed_time":69.69296617,"remaining_time":105.856067,"test":[0.4958300894]}, -{"learn":[0.4940017171],"iteration":1985,"passed_time":69.72806883,"remaining_time":105.8209464,"test":[0.4958290761]}, -{"learn":[0.4940003164],"iteration":1986,"passed_time":69.76350706,"remaining_time":105.7863346,"test":[0.4958279734]}, -{"learn":[0.4939979918],"iteration":1987,"passed_time":69.79784456,"remaining_time":105.7500542,"test":[0.4958262449]}, -{"learn":[0.493995399],"iteration":1988,"passed_time":69.83194618,"remaining_time":105.7134188,"test":[0.4958238011]}, -{"learn":[0.4939942069],"iteration":1989,"passed_time":69.86859372,"remaining_time":105.6806367,"test":[0.4958229368]}, -{"learn":[0.4939920313],"iteration":1990,"passed_time":69.90364033,"remaining_time":105.6454313,"test":[0.4958214169]}, -{"learn":[0.4939906604],"iteration":1991,"passed_time":69.93987877,"remaining_time":105.6120258,"test":[0.4958204334]}, -{"learn":[0.4939894981],"iteration":1992,"passed_time":69.97520368,"remaining_time":105.5772391,"test":[0.4958193903]}, -{"learn":[0.4939886339],"iteration":1993,"passed_time":70.01194243,"remaining_time":105.5445832,"test":[0.4958187943]}, -{"learn":[0.4939868457],"iteration":1994,"passed_time":70.04860134,"remaining_time":105.511803,"test":[0.4958176916]}, -{"learn":[0.4939854748],"iteration":1995,"passed_time":70.08305423,"remaining_time":105.4756988,"test":[0.4958167677]}, -{"learn":[0.4939843423],"iteration":1996,"passed_time":70.11850419,"remaining_time":105.4410957,"test":[0.4958157842]}, -{"learn":[0.4939837165],"iteration":1997,"passed_time":70.15578055,"remaining_time":105.4092358,"test":[0.4958151584]}, -{"learn":[0.4939822264],"iteration":1998,"passed_time":70.1912958,"remaining_time":105.3747267,"test":[0.4958139663]}, -{"learn":[0.4939808853],"iteration":1999,"passed_time":70.22763754,"remaining_time":105.3414563,"test":[0.4958130722]}, -{"learn":[0.4939804382],"iteration":2000,"passed_time":70.2655115,"remaining_time":105.3104793,"test":[0.4958125358]}, -{"learn":[0.4939793654],"iteration":2001,"passed_time":70.30321882,"remaining_time":105.2792458,"test":[0.4958115523]}, -{"learn":[0.4939769216],"iteration":2002,"passed_time":70.33762697,"remaining_time":105.2430694,"test":[0.4958094363]}, -{"learn":[0.4939757891],"iteration":2003,"passed_time":70.37376168,"remaining_time":105.209476,"test":[0.4958083933]}, -{"learn":[0.4939752526],"iteration":2004,"passed_time":70.41064233,"remaining_time":105.1769944,"test":[0.4958078568]}, -{"learn":[0.4939729877],"iteration":2005,"passed_time":70.44584207,"remaining_time":105.1419996,"test":[0.4958061581]}, -{"learn":[0.4939706035],"iteration":2006,"passed_time":70.4801687,"remaining_time":105.1057025,"test":[0.4958044892]}, -{"learn":[0.4939686663],"iteration":2007,"passed_time":70.51720483,"remaining_time":105.0734447,"test":[0.4958030885]}, -{"learn":[0.493967504],"iteration":2008,"passed_time":70.55255433,"remaining_time":105.038671,"test":[0.4958020156]}, -{"learn":[0.4939657755],"iteration":2009,"passed_time":70.5876199,"remaining_time":105.0034744,"test":[0.4958006447]}, -{"learn":[0.4939647324],"iteration":2010,"passed_time":70.6244689,"remaining_time":104.9709287,"test":[0.4957998698]}, -{"learn":[0.4939639576],"iteration":2011,"passed_time":70.66275286,"remaining_time":104.9405097,"test":[0.4957993334]}, -{"learn":[0.4939588912],"iteration":2012,"passed_time":70.69654039,"remaining_time":104.9034109,"test":[0.495795012]}, -{"learn":[0.4939580865],"iteration":2013,"passed_time":70.7348072,"remaining_time":104.8729564,"test":[0.4957944756]}, -{"learn":[0.4939560301],"iteration":2014,"passed_time":70.77086825,"remaining_time":104.8392267,"test":[0.4957927172]}, -{"learn":[0.4939546592],"iteration":2015,"passed_time":70.80690938,"remaining_time":104.8054651,"test":[0.4957914059]}, -{"learn":[0.493952126],"iteration":2016,"passed_time":70.84319796,"remaining_time":104.7720672,"test":[0.4957891112]}, -{"learn":[0.4939515598],"iteration":2017,"passed_time":70.88198781,"remaining_time":104.7423626,"test":[0.4957886641]}, -{"learn":[0.4939497418],"iteration":2018,"passed_time":70.91982198,"remaining_time":104.7112379,"test":[0.4957875614]}, -{"learn":[0.493948967],"iteration":2019,"passed_time":70.95894929,"remaining_time":104.6820143,"test":[0.4957871442]}, -{"learn":[0.4939479835],"iteration":2020,"passed_time":70.9958721,"remaining_time":104.6495314,"test":[0.4957861607]}, -{"learn":[0.4939458675],"iteration":2021,"passed_time":71.03270989,"remaining_time":104.6169189,"test":[0.4957844322]}, -{"learn":[0.4939433045],"iteration":2022,"passed_time":71.06847148,"remaining_time":104.5827185,"test":[0.4957826739]}, -{"learn":[0.4939424999],"iteration":2023,"passed_time":71.10510006,"remaining_time":104.5497914,"test":[0.495782048]}, -{"learn":[0.4939412482],"iteration":2024,"passed_time":71.14086078,"remaining_time":104.5155856,"test":[0.4957811837]}, -{"learn":[0.4939399965],"iteration":2025,"passed_time":71.17539605,"remaining_time":104.4795794,"test":[0.4957799917]}, -{"learn":[0.493938864],"iteration":2026,"passed_time":71.21122374,"remaining_time":104.4454702,"test":[0.4957789784]}, -{"learn":[0.4939351685],"iteration":2027,"passed_time":71.24580987,"remaining_time":104.4095399,"test":[0.4957757895]}, -{"learn":[0.4939346321],"iteration":2028,"passed_time":71.28437182,"remaining_time":104.3794326,"test":[0.4957753723]}, -{"learn":[0.4939053364],"iteration":2029,"passed_time":71.317009,"remaining_time":104.3406486,"test":[0.4957508748]}, -{"learn":[0.4939045913],"iteration":2030,"passed_time":71.35510488,"remaining_time":104.3098505,"test":[0.4957503681]}, -{"learn":[0.4939030118],"iteration":2031,"passed_time":71.3921244,"remaining_time":104.277473,"test":[0.4957491761]}, -{"learn":[0.4939019985],"iteration":2032,"passed_time":71.43031457,"remaining_time":104.2467995,"test":[0.495748282]}, -{"learn":[0.4939007468],"iteration":2033,"passed_time":71.46853364,"remaining_time":104.2161607,"test":[0.4957473879]}, -{"learn":[0.493899823],"iteration":2034,"passed_time":71.50597444,"remaining_time":104.1843804,"test":[0.4957467919]}, -{"learn":[0.4938988395],"iteration":2035,"passed_time":71.54137874,"remaining_time":104.1496299,"test":[0.4957458084]}, -{"learn":[0.4938982732],"iteration":2036,"passed_time":71.57947075,"remaining_time":104.1187883,"test":[0.4957453614]}, -{"learn":[0.4938974984],"iteration":2037,"passed_time":71.61578125,"remaining_time":104.0853504,"test":[0.4957446163]}, -{"learn":[0.4938955016],"iteration":2038,"passed_time":71.65032891,"remaining_time":104.0493496,"test":[0.4957429176]}, -{"learn":[0.4938932665],"iteration":2039,"passed_time":71.68414048,"remaining_time":104.0122823,"test":[0.49574104]}, -{"learn":[0.4938921638],"iteration":2040,"passed_time":71.72049938,"remaining_time":103.9789112,"test":[0.4957401162]}, -{"learn":[0.4938906438],"iteration":2041,"passed_time":71.75538073,"remaining_time":103.9433968,"test":[0.4957389241]}, -{"learn":[0.4938892133],"iteration":2042,"passed_time":71.78978503,"remaining_time":103.9071925,"test":[0.4957379108]}, -{"learn":[0.493887902],"iteration":2043,"passed_time":71.82591883,"remaining_time":103.8734912,"test":[0.4957369273]}, -{"learn":[0.4938861437],"iteration":2044,"passed_time":71.86051025,"remaining_time":103.8375588,"test":[0.4957357948]}, -{"learn":[0.4938836105],"iteration":2045,"passed_time":71.89420996,"remaining_time":103.8003403,"test":[0.4957337385]}, -{"learn":[0.4938828058],"iteration":2046,"passed_time":71.93248666,"remaining_time":103.769728,"test":[0.495733202]}, -{"learn":[0.493881733],"iteration":2047,"passed_time":71.96762559,"remaining_time":103.7345853,"test":[0.4957321291]}, -{"learn":[0.4938808985],"iteration":2048,"passed_time":72.0116276,"remaining_time":103.7122074,"test":[0.4957312053]}, -{"learn":[0.4938795574],"iteration":2049,"passed_time":72.04649155,"remaining_time":103.6766586,"test":[0.495730341]}, -{"learn":[0.4938789017],"iteration":2050,"passed_time":72.08331485,"remaining_time":103.6439276,"test":[0.4957299238]}, -{"learn":[0.4938782461],"iteration":2051,"passed_time":72.12023472,"remaining_time":103.6113314,"test":[0.4957293873]}, -{"learn":[0.4938761301],"iteration":2052,"passed_time":72.15385125,"remaining_time":103.5739891,"test":[0.4957276588]}, -{"learn":[0.4938747592],"iteration":2053,"passed_time":72.18870781,"remaining_time":103.538429,"test":[0.4957267647]}, -{"learn":[0.4938740142],"iteration":2054,"passed_time":72.22519784,"remaining_time":103.5052105,"test":[0.4957262283]}, -{"learn":[0.4938733585],"iteration":2055,"passed_time":72.2623367,"remaining_time":103.4729179,"test":[0.4957255428]}, -{"learn":[0.4938727029],"iteration":2056,"passed_time":72.30064449,"remaining_time":103.442293,"test":[0.4957249766]}, -{"learn":[0.493869514],"iteration":2057,"passed_time":72.33537743,"remaining_time":103.4065502,"test":[0.4957227116]}, -{"learn":[0.4938681133],"iteration":2058,"passed_time":72.37329472,"remaining_time":103.3753569,"test":[0.4957214301]}, -{"learn":[0.493867398],"iteration":2059,"passed_time":72.41034441,"remaining_time":103.3429187,"test":[0.4957210725]}, -{"learn":[0.4938660271],"iteration":2060,"passed_time":72.44727557,"remaining_time":103.3103071,"test":[0.4957197314]}, -{"learn":[0.493863792],"iteration":2061,"passed_time":72.48340797,"remaining_time":103.2765532,"test":[0.495717973]}, -{"learn":[0.4938626893],"iteration":2062,"passed_time":72.5215269,"remaining_time":103.2456251,"test":[0.4957172578]}, -{"learn":[0.493861378],"iteration":2063,"passed_time":72.55765606,"remaining_time":103.2118596,"test":[0.4957163339]}, -{"learn":[0.4938601859],"iteration":2064,"passed_time":72.59311464,"remaining_time":103.1771387,"test":[0.4957152312]}, -{"learn":[0.4938589938],"iteration":2065,"passed_time":72.62875572,"remaining_time":103.1426763,"test":[0.4957142477]}, -{"learn":[0.4938574441],"iteration":2066,"passed_time":72.66408238,"remaining_time":103.1077666,"test":[0.4957131152]}, -{"learn":[0.49385655],"iteration":2067,"passed_time":72.70026078,"remaining_time":103.0740641,"test":[0.4957124]}, -{"learn":[0.4938480861],"iteration":2068,"passed_time":72.7325253,"remaining_time":103.0348147,"test":[0.4957054263]}, -{"learn":[0.4938461192],"iteration":2069,"passed_time":72.76714036,"remaining_time":102.9988992,"test":[0.4957037275]}, -{"learn":[0.4938447781],"iteration":2070,"passed_time":72.80148783,"remaining_time":102.9626064,"test":[0.4957028633]}, -{"learn":[0.4938434668],"iteration":2071,"passed_time":72.83834815,"remaining_time":102.9298665,"test":[0.4957018202]}, -{"learn":[0.4938412018],"iteration":2072,"passed_time":72.87322384,"remaining_time":102.8943204,"test":[0.4956999128]}, -{"learn":[0.4938401885],"iteration":2073,"passed_time":72.90866672,"remaining_time":102.8595751,"test":[0.4956987505]}, -{"learn":[0.4938389368],"iteration":2074,"passed_time":72.94477101,"remaining_time":102.8257615,"test":[0.4956980055]}, -{"learn":[0.4938375957],"iteration":2075,"passed_time":72.98144907,"remaining_time":102.7927539,"test":[0.495696873]}, -{"learn":[0.4938365526],"iteration":2076,"passed_time":73.01728026,"remaining_time":102.7585509,"test":[0.4956957405]}, -{"learn":[0.4938357778],"iteration":2077,"passed_time":73.05478033,"remaining_time":102.726693,"test":[0.4956951445]}, -{"learn":[0.4938342281],"iteration":2078,"passed_time":73.09012418,"remaining_time":102.6918002,"test":[0.4956939822]}, -{"learn":[0.4938335426],"iteration":2079,"passed_time":73.12797786,"remaining_time":102.6604305,"test":[0.4956934159]}, -{"learn":[0.4938323803],"iteration":2080,"passed_time":73.16301717,"remaining_time":102.6251067,"test":[0.4956923728]}, -{"learn":[0.493830324],"iteration":2081,"passed_time":73.19678256,"remaining_time":102.5879978,"test":[0.4956907635]}, -{"learn":[0.4938290425],"iteration":2082,"passed_time":73.23242902,"remaining_time":102.5535264,"test":[0.4956897204]}, -{"learn":[0.4938275523],"iteration":2083,"passed_time":73.26740323,"remaining_time":102.5181132,"test":[0.495688886]}, -{"learn":[0.4938252576],"iteration":2084,"passed_time":73.30138018,"remaining_time":102.4813061,"test":[0.4956873958]}, -{"learn":[0.4938240059],"iteration":2085,"passed_time":73.3393087,"remaining_time":102.4500218,"test":[0.495686323]}, -{"learn":[0.4938233204],"iteration":2086,"passed_time":73.37790797,"remaining_time":102.4196674,"test":[0.4956858163]}, -{"learn":[0.4938228436],"iteration":2087,"passed_time":73.41638918,"remaining_time":102.3891405,"test":[0.4956853097]}, -{"learn":[0.4938222177],"iteration":2088,"passed_time":73.45532097,"remaining_time":102.3592338,"test":[0.4956847732]}, -{"learn":[0.4938195355],"iteration":2089,"passed_time":73.48929801,"remaining_time":102.3224197,"test":[0.4956827467]}, -{"learn":[0.4938187905],"iteration":2090,"passed_time":73.52741651,"remaining_time":102.29137,"test":[0.4956823295]}, -{"learn":[0.4938168235],"iteration":2091,"passed_time":73.56448068,"remaining_time":102.2588479,"test":[0.4956807201]}, -{"learn":[0.4938147373],"iteration":2092,"passed_time":73.5989,"remaining_time":102.222648,"test":[0.4956788426]}, -{"learn":[0.4938139625],"iteration":2093,"passed_time":73.63619138,"remaining_time":102.1904356,"test":[0.4956783359]}, -{"learn":[0.4938108034],"iteration":2094,"passed_time":73.66976807,"remaining_time":102.1530674,"test":[0.49567622]}, -{"learn":[0.4938094921],"iteration":2095,"passed_time":73.7072755,"remaining_time":102.1211489,"test":[0.4956751173]}, -{"learn":[0.4938083],"iteration":2096,"passed_time":73.74454503,"remaining_time":102.0888957,"test":[0.4956743424]}, -{"learn":[0.4938068397],"iteration":2097,"passed_time":73.78105675,"remaining_time":102.0555895,"test":[0.4956733292]}, -{"learn":[0.4938063629],"iteration":2098,"passed_time":73.82007654,"remaining_time":102.0257466,"test":[0.4956727033]}, -{"learn":[0.493805588],"iteration":2099,"passed_time":73.85927924,"remaining_time":101.9961475,"test":[0.4956722861]}, -{"learn":[0.4938044257],"iteration":2100,"passed_time":73.89644525,"remaining_time":101.9637291,"test":[0.4956712728]}, -{"learn":[0.4938033529],"iteration":2101,"passed_time":73.93225979,"remaining_time":101.9294428,"test":[0.4956704979]}, -{"learn":[0.49380228],"iteration":2102,"passed_time":73.96758882,"remaining_time":101.8944864,"test":[0.4956696933]}, -{"learn":[0.4938016243],"iteration":2103,"passed_time":74.00494771,"remaining_time":101.8623235,"test":[0.4956691568]}, -{"learn":[0.4938010581],"iteration":2104,"passed_time":74.04206363,"remaining_time":101.8298215,"test":[0.49566868]}, -{"learn":[0.4937994488],"iteration":2105,"passed_time":74.07692453,"remaining_time":101.7942163,"test":[0.4956669515]}, -{"learn":[0.493797154],"iteration":2106,"passed_time":74.11060867,"remaining_time":101.7569961,"test":[0.4956654315]}, -{"learn":[0.4937957831],"iteration":2107,"passed_time":74.1461494,"remaining_time":101.7223264,"test":[0.4956642991]}, -{"learn":[0.4937940545],"iteration":2108,"passed_time":74.18160087,"remaining_time":101.6875335,"test":[0.495663107]}, -{"learn":[0.4937926538],"iteration":2109,"passed_time":74.21767853,"remaining_time":101.6535976,"test":[0.4956618553]}, -{"learn":[0.4937917001],"iteration":2110,"passed_time":74.25576716,"remaining_time":101.6224118,"test":[0.4956613486]}, -{"learn":[0.493789167],"iteration":2111,"passed_time":74.29155685,"remaining_time":101.5880758,"test":[0.4956592625]}, -{"learn":[0.4937882729],"iteration":2112,"passed_time":74.32804609,"remaining_time":101.5546943,"test":[0.4956582492]}, -{"learn":[0.4937876768],"iteration":2113,"passed_time":74.36698422,"remaining_time":101.524653,"test":[0.4956577127]}, -{"learn":[0.4937859483],"iteration":2114,"passed_time":74.40354484,"remaining_time":101.4913602,"test":[0.495656163]}, -{"learn":[0.4937842794],"iteration":2115,"passed_time":74.44008925,"remaining_time":101.4580422,"test":[0.4956549709]}, -{"learn":[0.4937830575],"iteration":2116,"passed_time":74.47782292,"remaining_time":101.4263408,"test":[0.4956540471]}, -{"learn":[0.4937810607],"iteration":2117,"passed_time":74.51308232,"remaining_time":101.3912669,"test":[0.4956525867]}, -{"learn":[0.4937796898],"iteration":2118,"passed_time":74.55098708,"remaining_time":101.3597894,"test":[0.4956518417]}, -{"learn":[0.4937774248],"iteration":2119,"passed_time":74.58602848,"remaining_time":101.3244161,"test":[0.4956502622]}, -{"learn":[0.4937765606],"iteration":2120,"passed_time":74.62434341,"remaining_time":101.2934864,"test":[0.4956496661]}, -{"learn":[0.4937751599],"iteration":2121,"passed_time":74.6599525,"remaining_time":101.25888,"test":[0.4956489211]}, -{"learn":[0.4937745042],"iteration":2122,"passed_time":74.69651951,"remaining_time":101.2255707,"test":[0.495648325]}, -{"learn":[0.4937736101],"iteration":2123,"passed_time":74.73118727,"remaining_time":101.1896867,"test":[0.4956475501]}, -{"learn":[0.4937723882],"iteration":2124,"passed_time":74.76644041,"remaining_time":101.1545958,"test":[0.4956463283]}, -{"learn":[0.4937707789],"iteration":2125,"passed_time":74.80082112,"remaining_time":101.1183254,"test":[0.4956455534]}, -{"learn":[0.4937703021],"iteration":2126,"passed_time":74.83742777,"remaining_time":101.0850635,"test":[0.4956450468]}, -{"learn":[0.4937697656],"iteration":2127,"passed_time":74.8750637,"remaining_time":101.0531875,"test":[0.4956445699]}, -{"learn":[0.4937655635],"iteration":2128,"passed_time":74.90710249,"remaining_time":101.0137582,"test":[0.495640785]}, -{"learn":[0.493763984],"iteration":2129,"passed_time":74.94251413,"remaining_time":100.9788805,"test":[0.4956400698]}, -{"learn":[0.4937628515],"iteration":2130,"passed_time":74.9782568,"remaining_time":100.944448,"test":[0.4956391757]}, -{"learn":[0.4937603183],"iteration":2131,"passed_time":75.01120702,"remaining_time":100.9062578,"test":[0.4956370299]}, -{"learn":[0.4937596031],"iteration":2132,"passed_time":75.04827728,"remaining_time":100.8736104,"test":[0.4956364637]}, -{"learn":[0.4937580235],"iteration":2133,"passed_time":75.08354549,"remaining_time":100.8385386,"test":[0.495635361]}, -{"learn":[0.4937572487],"iteration":2134,"passed_time":75.12094499,"remaining_time":100.8063266,"test":[0.4956349438]}, -{"learn":[0.4937557884],"iteration":2135,"passed_time":75.15661535,"remaining_time":100.7717914,"test":[0.4956336921]}, -{"learn":[0.4937551923],"iteration":2136,"passed_time":75.19290698,"remaining_time":100.7380874,"test":[0.4956333046]}, -{"learn":[0.4937524505],"iteration":2137,"passed_time":75.22585627,"remaining_time":100.6999068,"test":[0.4956310695]}, -{"learn":[0.49375102],"iteration":2138,"passed_time":75.26058945,"remaining_time":100.6641171,"test":[0.4956298476]}, -{"learn":[0.4937503941],"iteration":2139,"passed_time":75.29801626,"remaining_time":100.6319283,"test":[0.4956294005]}, -{"learn":[0.4937495299],"iteration":2140,"passed_time":75.33484592,"remaining_time":100.5989372,"test":[0.4956287747]}, -{"learn":[0.4937485166],"iteration":2141,"passed_time":75.36972382,"remaining_time":100.5633383,"test":[0.49562797]}, -{"learn":[0.4937479205],"iteration":2142,"passed_time":75.40690548,"remaining_time":100.5308115,"test":[0.4956275826]}, -{"learn":[0.4937465198],"iteration":2143,"passed_time":75.44264068,"remaining_time":100.4963534,"test":[0.4956265991]}, -{"learn":[0.4937452681],"iteration":2144,"passed_time":75.47860556,"remaining_time":100.4621999,"test":[0.4956258839]}, -{"learn":[0.4937434204],"iteration":2145,"passed_time":75.51255227,"remaining_time":100.4253608,"test":[0.4956242149]}, -{"learn":[0.4937423773],"iteration":2146,"passed_time":75.54787522,"remaining_time":100.390353,"test":[0.4956232315]}, -{"learn":[0.4937400825],"iteration":2147,"passed_time":75.58033992,"remaining_time":100.35155,"test":[0.4956210559]}, -{"learn":[0.4937393375],"iteration":2148,"passed_time":75.61762809,"remaining_time":100.319152,"test":[0.495620579]}, -{"learn":[0.4937387712],"iteration":2149,"passed_time":75.65491592,"remaining_time":100.286749,"test":[0.495620132]}, -{"learn":[0.4937375493],"iteration":2150,"passed_time":75.68964389,"remaining_time":100.2509509,"test":[0.4956190293]}, -{"learn":[0.4937355824],"iteration":2151,"passed_time":75.7239524,"remaining_time":100.2145987,"test":[0.4956174498]}, -{"learn":[0.4937348075],"iteration":2152,"passed_time":75.76040539,"remaining_time":100.1810841,"test":[0.4956170028]}, -{"learn":[0.4937342413],"iteration":2153,"passed_time":75.79722685,"remaining_time":100.1480537,"test":[0.4956164365]}, -{"learn":[0.4937334962],"iteration":2154,"passed_time":75.83401356,"remaining_time":100.1149738,"test":[0.4956159001]}, -{"learn":[0.4937321253],"iteration":2155,"passed_time":75.86963912,"remaining_time":100.0803588,"test":[0.4956150358]}, -{"learn":[0.4937315293],"iteration":2156,"passed_time":75.90775406,"remaining_time":100.049024,"test":[0.4956144994]}, -{"learn":[0.4937302776],"iteration":2157,"passed_time":75.94372612,"remaining_time":100.0148608,"test":[0.4956136649]}, -{"learn":[0.4937297113],"iteration":2158,"passed_time":75.98079456,"remaining_time":99.98213865,"test":[0.4956131583]}, -{"learn":[0.4937283404],"iteration":2159,"passed_time":76.01548547,"remaining_time":99.94628645,"test":[0.495612145]}, -{"learn":[0.4937274464],"iteration":2160,"passed_time":76.05726078,"remaining_time":99.91974241,"test":[0.4956113403]}, -{"learn":[0.4937266715],"iteration":2161,"passed_time":76.09605989,"remaining_time":99.88927751,"test":[0.4956108933]}, -{"learn":[0.4937253304],"iteration":2162,"passed_time":76.13291302,"remaining_time":99.85625253,"test":[0.4956099396]}, -{"learn":[0.4937239297],"iteration":2163,"passed_time":76.16870423,"remaining_time":99.82183234,"test":[0.495609284]}, -{"learn":[0.4937219329],"iteration":2164,"passed_time":76.20493101,"remaining_time":99.78798126,"test":[0.495607615]}, -{"learn":[0.4937196977],"iteration":2165,"passed_time":76.24143003,"remaining_time":99.75448416,"test":[0.4956058865]}, -{"learn":[0.4937179692],"iteration":2166,"passed_time":76.27852783,"remaining_time":99.72176711,"test":[0.4956042772]}, -{"learn":[0.4937171347],"iteration":2167,"passed_time":76.31775641,"remaining_time":99.6918294,"test":[0.4956038599]}, -{"learn":[0.4937159725],"iteration":2168,"passed_time":76.35464722,"remaining_time":99.65883184,"test":[0.4956029063]}, -{"learn":[0.4937145717],"iteration":2169,"passed_time":76.39171749,"remaining_time":99.62606474,"test":[0.4956016844]}, -{"learn":[0.4937132902],"iteration":2170,"passed_time":76.42817251,"remaining_time":99.59249196,"test":[0.4956007605]}, -{"learn":[0.4937112637],"iteration":2171,"passed_time":76.46437941,"remaining_time":99.55859345,"test":[0.4955992406]}, -{"learn":[0.4937104292],"iteration":2172,"passed_time":76.50140157,"remaining_time":99.52575345,"test":[0.4955987041]}, -{"learn":[0.4937091477],"iteration":2173,"passed_time":76.53760882,"remaining_time":99.49185029,"test":[0.4955976909]}, -{"learn":[0.4937078066],"iteration":2174,"passed_time":76.57402832,"remaining_time":99.45822069,"test":[0.4955965882]}, -{"learn":[0.4937067039],"iteration":2175,"passed_time":76.60929248,"remaining_time":99.42308914,"test":[0.4955957537]}, -{"learn":[0.4937061675],"iteration":2176,"passed_time":76.64702357,"remaining_time":99.39115642,"test":[0.4955952173]}, -{"learn":[0.4937052138],"iteration":2177,"passed_time":76.68323859,"remaining_time":99.35725405,"test":[0.4955943232]}, -{"learn":[0.4937039025],"iteration":2178,"passed_time":76.71846128,"remaining_time":99.32206483,"test":[0.4955933397]}, -{"learn":[0.4937032767],"iteration":2179,"passed_time":76.75502443,"remaining_time":99.28860958,"test":[0.4955929523]}, -{"learn":[0.4937003858],"iteration":2180,"passed_time":76.78909593,"remaining_time":99.25193096,"test":[0.4955908661]}, -{"learn":[0.4936994024],"iteration":2181,"passed_time":76.82470168,"remaining_time":99.21723618,"test":[0.4955899721]}, -{"learn":[0.4936987467],"iteration":2182,"passed_time":76.8631099,"remaining_time":99.18615693,"test":[0.4955894356]}, -{"learn":[0.4936977036],"iteration":2183,"passed_time":76.90100166,"remaining_time":99.15440507,"test":[0.4955884223]}, -{"learn":[0.4936964817],"iteration":2184,"passed_time":76.93762174,"remaining_time":99.12100924,"test":[0.4955874687]}, -{"learn":[0.493694634],"iteration":2185,"passed_time":76.97438539,"remaining_time":99.08779529,"test":[0.495586068]}, -{"learn":[0.4936935313],"iteration":2186,"passed_time":77.01105638,"remaining_time":99.0544589,"test":[0.4955851143]}, -{"learn":[0.493689359],"iteration":2187,"passed_time":77.04555745,"remaining_time":99.01833069,"test":[0.4955817168]}, -{"learn":[0.4936876305],"iteration":2188,"passed_time":77.08392939,"remaining_time":98.98717475,"test":[0.4955805545]}, -{"learn":[0.4936865874],"iteration":2189,"passed_time":77.12002109,"remaining_time":98.95308642,"test":[0.4955797201]}, -{"learn":[0.4936854847],"iteration":2190,"passed_time":77.15621071,"remaining_time":98.91912181,"test":[0.495578826]}, -{"learn":[0.4936844714],"iteration":2191,"passed_time":77.19375716,"remaining_time":98.88689329,"test":[0.4955777829]}, -{"learn":[0.4936837263],"iteration":2192,"passed_time":77.23307191,"remaining_time":98.85692333,"test":[0.4955773061]}, -{"learn":[0.4936826535],"iteration":2193,"passed_time":77.26979287,"remaining_time":98.82362752,"test":[0.495576412]}, -{"learn":[0.4936816104],"iteration":2194,"passed_time":77.30756862,"remaining_time":98.79167653,"test":[0.495575667]}, -{"learn":[0.493679703],"iteration":2195,"passed_time":77.34256517,"remaining_time":98.75617156,"test":[0.4955739384]}, -{"learn":[0.4936791666],"iteration":2196,"passed_time":77.38164236,"remaining_time":98.72587325,"test":[0.495573402]}, -{"learn":[0.4936785109],"iteration":2197,"passed_time":77.42019516,"remaining_time":98.69489847,"test":[0.4955728953]}, -{"learn":[0.4936776169],"iteration":2198,"passed_time":77.45537614,"remaining_time":98.6596219,"test":[0.4955722695]}, -{"learn":[0.4936765738],"iteration":2199,"passed_time":77.49017979,"remaining_time":98.62386518,"test":[0.4955714052]}, -{"learn":[0.4936756797],"iteration":2200,"passed_time":77.52880678,"remaining_time":98.59297145,"test":[0.4955707496]}, -{"learn":[0.4936732657],"iteration":2201,"passed_time":77.56533647,"remaining_time":98.55940574,"test":[0.4955690806]}, -{"learn":[0.4936726995],"iteration":2202,"passed_time":77.60340722,"remaining_time":98.52779391,"test":[0.4955686634]}, -{"learn":[0.4936700769],"iteration":2203,"passed_time":77.64083147,"remaining_time":98.49535608,"test":[0.4955663686]}, -{"learn":[0.493668706],"iteration":2204,"passed_time":77.67731049,"remaining_time":98.46171556,"test":[0.4955652957]}, -{"learn":[0.4936678417],"iteration":2205,"passed_time":77.71542353,"remaining_time":98.43014205,"test":[0.4955649083]}, -{"learn":[0.4936671563],"iteration":2206,"passed_time":77.75472603,"remaining_time":98.40006788,"test":[0.4955644613]}, -{"learn":[0.4936664112],"iteration":2207,"passed_time":77.79385263,"remaining_time":98.36976293,"test":[0.4955639248]}, -{"learn":[0.4936648913],"iteration":2208,"passed_time":77.83121533,"remaining_time":98.33722136,"test":[0.495563001]}, -{"learn":[0.4936631031],"iteration":2209,"passed_time":77.86725481,"remaining_time":98.30300494,"test":[0.4955617493]}, -{"learn":[0.4936618812],"iteration":2210,"passed_time":77.90340807,"remaining_time":98.26893039,"test":[0.4955606764]}, -{"learn":[0.4936587222],"iteration":2211,"passed_time":77.93678095,"remaining_time":98.23134959,"test":[0.4955572193]}, -{"learn":[0.4936578281],"iteration":2212,"passed_time":77.97321192,"remaining_time":98.19762387,"test":[0.4955562656]}, -{"learn":[0.4936541326],"iteration":2213,"passed_time":78.00700175,"remaining_time":98.16057221,"test":[0.4955530172]}, -{"learn":[0.4936530896],"iteration":2214,"passed_time":78.04396403,"remaining_time":98.12751234,"test":[0.4955519741]}, -{"learn":[0.4936517485],"iteration":2215,"passed_time":78.08246359,"remaining_time":98.09638025,"test":[0.49555108]}, -{"learn":[0.493650616],"iteration":2216,"passed_time":78.1189278,"remaining_time":98.06268654,"test":[0.495550335]}, -{"learn":[0.4936495133],"iteration":2217,"passed_time":78.15506358,"remaining_time":98.02857839,"test":[0.4955492919]}, -{"learn":[0.4936487682],"iteration":2218,"passed_time":78.19293798,"remaining_time":97.99664738,"test":[0.4955487257]}, -{"learn":[0.4936475165],"iteration":2219,"passed_time":78.22862856,"remaining_time":97.9619763,"test":[0.4955480402]}, -{"learn":[0.4936469205],"iteration":2220,"passed_time":78.2667158,"remaining_time":97.93030311,"test":[0.4955474144]}, -{"learn":[0.493646235],"iteration":2221,"passed_time":78.30551139,"remaining_time":97.89950974,"test":[0.4955469673]}, -{"learn":[0.4936445363],"iteration":2222,"passed_time":78.33984571,"remaining_time":97.8631361,"test":[0.495545358]}, -{"learn":[0.4936437912],"iteration":2223,"passed_time":78.37820258,"remaining_time":97.83178524,"test":[0.4955447918]}, -{"learn":[0.4936431356],"iteration":2224,"passed_time":78.41646513,"remaining_time":97.80031045,"test":[0.4955444341]}, -{"learn":[0.4936419435],"iteration":2225,"passed_time":78.45199948,"remaining_time":97.76542973,"test":[0.4955435699]}, -{"learn":[0.4936403938],"iteration":2226,"passed_time":78.48612275,"remaining_time":97.72879137,"test":[0.495542646]}, -{"learn":[0.4936390229],"iteration":2227,"passed_time":78.52120421,"remaining_time":97.69334743,"test":[0.4955416923]}, -{"learn":[0.4936357744],"iteration":2228,"passed_time":78.55653161,"remaining_time":97.65820955,"test":[0.4955395465]}, -{"learn":[0.49363494],"iteration":2229,"passed_time":78.5920735,"remaining_time":97.62333794,"test":[0.4955386525]}, -{"learn":[0.4936335988],"iteration":2230,"passed_time":78.626274,"remaining_time":97.58680085,"test":[0.4955377584]}, -{"learn":[0.4936320491],"iteration":2231,"passed_time":78.66134676,"remaining_time":97.55134759,"test":[0.4955365663]}, -{"learn":[0.4936315425],"iteration":2232,"passed_time":78.69845773,"remaining_time":97.51842031,"test":[0.4955360895]}, -{"learn":[0.4936292477],"iteration":2233,"passed_time":78.73262164,"remaining_time":97.4818404,"test":[0.4955343609]}, -{"learn":[0.4936271615],"iteration":2234,"passed_time":78.76552499,"remaining_time":97.44370318,"test":[0.495532692]}, -{"learn":[0.4936251648],"iteration":2235,"passed_time":78.80052606,"remaining_time":97.4081637,"test":[0.4955309337]}, -{"learn":[0.4936239727],"iteration":2236,"passed_time":78.8361357,"remaining_time":97.37337637,"test":[0.4955300694]}, -{"learn":[0.4936218269],"iteration":2237,"passed_time":78.8709077,"remaining_time":97.33755454,"test":[0.4955284601]}, -{"learn":[0.4936201878],"iteration":2238,"passed_time":78.90548223,"remaining_time":97.30149015,"test":[0.4955269998]}, -{"learn":[0.4936186381],"iteration":2239,"passed_time":78.94070161,"remaining_time":97.26622162,"test":[0.4955259269]}, -{"learn":[0.4936160751],"iteration":2240,"passed_time":78.97510459,"remaining_time":97.22994804,"test":[0.4955237215]}, -{"learn":[0.4936119922],"iteration":2241,"passed_time":79.00828062,"remaining_time":97.19216679,"test":[0.4955206817]}, -{"learn":[0.4936111279],"iteration":2242,"passed_time":79.04499676,"remaining_time":97.15874101,"test":[0.4955202346]}, -{"learn":[0.4936105915],"iteration":2243,"passed_time":79.0823353,"remaining_time":97.12607669,"test":[0.4955197876]}, -{"learn":[0.4936093696],"iteration":2244,"passed_time":79.11761433,"remaining_time":97.09088083,"test":[0.4955187445]}, -{"learn":[0.4936065085],"iteration":2245,"passed_time":79.15149447,"remaining_time":97.05396962,"test":[0.495516867]}, -{"learn":[0.4936057039],"iteration":2246,"passed_time":79.18807794,"remaining_time":97.0203732,"test":[0.4955161219]}, -{"learn":[0.4936043926],"iteration":2247,"passed_time":79.22379288,"remaining_time":96.98571085,"test":[0.4955150788]}, -{"learn":[0.4936031409],"iteration":2248,"passed_time":79.25832813,"remaining_time":96.94960457,"test":[0.4955143636]}, -{"learn":[0.4936014719],"iteration":2249,"passed_time":79.29433604,"remaining_time":96.91529961,"test":[0.4955127841]}, -{"learn":[0.4936008163],"iteration":2250,"passed_time":79.33152144,"remaining_time":96.88243112,"test":[0.4955122476]}, -{"learn":[0.4935997732],"iteration":2251,"passed_time":79.36709015,"remaining_time":96.84758603,"test":[0.4955115324]}, -{"learn":[0.4935986407],"iteration":2252,"passed_time":79.4021054,"remaining_time":96.81206549,"test":[0.4955103701]}, -{"learn":[0.4935978957],"iteration":2253,"passed_time":79.44027344,"remaining_time":96.78038636,"test":[0.4955098038]}, -{"learn":[0.4935970314],"iteration":2254,"passed_time":79.48148583,"remaining_time":96.75240736,"test":[0.4955091184]}, -{"learn":[0.4935959585],"iteration":2255,"passed_time":79.51726765,"remaining_time":96.71781137,"test":[0.4955082541]}, -{"learn":[0.4935953327],"iteration":2256,"passed_time":79.55723622,"remaining_time":96.68830259,"test":[0.4955078071]}, -{"learn":[0.4935942896],"iteration":2257,"passed_time":79.59450047,"remaining_time":96.65550057,"test":[0.4955071812]}, -{"learn":[0.4935921438],"iteration":2258,"passed_time":79.62865849,"remaining_time":96.61892559,"test":[0.4955053037]}, -{"learn":[0.4935915478],"iteration":2259,"passed_time":79.66576455,"remaining_time":96.58592694,"test":[0.4955049461]}, -{"learn":[0.4935903557],"iteration":2260,"passed_time":79.70159792,"remaining_time":96.55138288,"test":[0.4955039924]}, -{"learn":[0.4935891636],"iteration":2261,"passed_time":79.73770064,"remaining_time":96.51716372,"test":[0.4955031281]}, -{"learn":[0.493588657],"iteration":2262,"passed_time":79.7743837,"remaining_time":96.4836448,"test":[0.4955026215]}, -{"learn":[0.4935873456],"iteration":2263,"passed_time":79.80930203,"remaining_time":96.44799044,"test":[0.4955019956]}, -{"learn":[0.4935825177],"iteration":2264,"passed_time":79.84128916,"remaining_time":96.40879729,"test":[0.4954983895]}, -{"learn":[0.4935810872],"iteration":2265,"passed_time":79.87726974,"remaining_time":96.37442872,"test":[0.4954974061]}, -{"learn":[0.4935789414],"iteration":2266,"passed_time":79.91192415,"remaining_time":96.33845995,"test":[0.4954957371]}, -{"learn":[0.4935779877],"iteration":2267,"passed_time":79.9468236,"remaining_time":96.30278751,"test":[0.4954948431]}, -{"learn":[0.4935757227],"iteration":2268,"passed_time":79.9812527,"remaining_time":96.26654964,"test":[0.4954933828]}, -{"learn":[0.4935745605],"iteration":2269,"passed_time":80.01533726,"remaining_time":96.22989899,"test":[0.4954926675]}, -{"learn":[0.4935731299],"iteration":2270,"passed_time":80.05038019,"remaining_time":96.19440226,"test":[0.4954915052]}, -{"learn":[0.4935725935],"iteration":2271,"passed_time":80.08694635,"remaining_time":96.16073487,"test":[0.4954908794]}, -{"learn":[0.493564219],"iteration":2272,"passed_time":80.11920331,"remaining_time":96.12189504,"test":[0.4954845315]}, -{"learn":[0.4935635038],"iteration":2273,"passed_time":80.15688488,"remaining_time":96.08956384,"test":[0.4954839652]}, -{"learn":[0.4935624011],"iteration":2274,"passed_time":80.19229742,"remaining_time":96.05451009,"test":[0.4954831606]}, -{"learn":[0.4935611792],"iteration":2275,"passed_time":80.22770382,"remaining_time":96.01944868,"test":[0.4954820877]}, -{"learn":[0.4935604938],"iteration":2276,"passed_time":80.26570576,"remaining_time":95.98749091,"test":[0.4954816704]}, -{"learn":[0.4935598381],"iteration":2277,"passed_time":80.30339616,"remaining_time":95.95515555,"test":[0.495481134]}, -{"learn":[0.4935585864],"iteration":2278,"passed_time":80.34084693,"remaining_time":95.9225294,"test":[0.4954801505]}, -{"learn":[0.4935547419],"iteration":2279,"passed_time":80.37595005,"remaining_time":95.8870983,"test":[0.4954769319]}, -{"learn":[0.4935539671],"iteration":2280,"passed_time":80.41289431,"remaining_time":95.85386218,"test":[0.4954764252]}, -{"learn":[0.493553222],"iteration":2281,"passed_time":80.4509373,"remaining_time":95.82193146,"test":[0.495476008]}, -{"learn":[0.4935527452],"iteration":2282,"passed_time":80.48881657,"remaining_time":95.78980053,"test":[0.4954753822]}, -{"learn":[0.4935517915],"iteration":2283,"passed_time":80.52629533,"remaining_time":95.75718832,"test":[0.4954744881]}, -{"learn":[0.4935510166],"iteration":2284,"passed_time":80.57101419,"remaining_time":95.73317441,"test":[0.4954740112]}, -{"learn":[0.4935504206],"iteration":2285,"passed_time":80.60929262,"remaining_time":95.70149614,"test":[0.4954734748]}, -{"learn":[0.4935490795],"iteration":2286,"passed_time":80.6456201,"remaining_time":95.66749774,"test":[0.4954723721]}, -{"learn":[0.4935473211],"iteration":2287,"passed_time":80.68171071,"remaining_time":95.63321654,"test":[0.4954711502]}, -{"learn":[0.4935465463],"iteration":2288,"passed_time":80.7187392,"remaining_time":95.60004455,"test":[0.4954707628]}, -{"learn":[0.4935459204],"iteration":2289,"passed_time":80.7556354,"remaining_time":95.56671264,"test":[0.4954703456]}, -{"learn":[0.4935448475],"iteration":2290,"passed_time":80.7917555,"remaining_time":95.5324599,"test":[0.4954694515]}, -{"learn":[0.4935428806],"iteration":2291,"passed_time":80.82580746,"remaining_time":95.49576204,"test":[0.4954679018]}, -{"learn":[0.4935415097],"iteration":2292,"passed_time":80.86108553,"remaining_time":95.46051396,"test":[0.4954667693]}, -{"learn":[0.4935407348],"iteration":2293,"passed_time":80.89828609,"remaining_time":95.42753364,"test":[0.495466352]}, -{"learn":[0.4935401984],"iteration":2294,"passed_time":80.93488928,"remaining_time":95.39384553,"test":[0.4954658454]}, -{"learn":[0.4935391255],"iteration":2295,"passed_time":80.97056348,"remaining_time":95.35906082,"test":[0.49546516]}, -{"learn":[0.4935370095],"iteration":2296,"passed_time":81.0035804,"remaining_time":95.32114838,"test":[0.4954635506]}, -{"learn":[0.4935358472],"iteration":2297,"passed_time":81.038938,"remaining_time":95.28599238,"test":[0.4954623287]}, -{"learn":[0.493534983],"iteration":2298,"passed_time":81.07396878,"remaining_time":95.25045223,"test":[0.4954616135]}, -{"learn":[0.4935344465],"iteration":2299,"passed_time":81.11074048,"remaining_time":95.21695621,"test":[0.495460928]}, -{"learn":[0.4935327776],"iteration":2300,"passed_time":81.1460752,"remaining_time":95.18177183,"test":[0.4954601234]}, -{"learn":[0.4935313471],"iteration":2301,"passed_time":81.18143124,"remaining_time":95.14661229,"test":[0.4954590803]}, -{"learn":[0.4935301252],"iteration":2302,"passed_time":81.21710425,"remaining_time":95.11182378,"test":[0.4954581564]}, -{"learn":[0.4935291119],"iteration":2303,"passed_time":81.25336801,"remaining_time":95.07772576,"test":[0.4954572027]}, -{"learn":[0.4935282775],"iteration":2304,"passed_time":81.29059417,"remaining_time":95.04475111,"test":[0.4954566961]}, -{"learn":[0.4935269065],"iteration":2305,"passed_time":81.32617374,"remaining_time":95.00984911,"test":[0.495455653]}, -{"learn":[0.4935260423],"iteration":2306,"passed_time":81.36040284,"remaining_time":94.97337011,"test":[0.4954547589]}, -{"learn":[0.4935256847],"iteration":2307,"passed_time":81.39725863,"remaining_time":94.93995677,"test":[0.4954542523]}, -{"learn":[0.4935244628],"iteration":2308,"passed_time":81.43249448,"remaining_time":94.90465251,"test":[0.4954533284]}, -{"learn":[0.4935165353],"iteration":2309,"passed_time":81.46481417,"remaining_time":94.86595243,"test":[0.4954473084]}, -{"learn":[0.4935159095],"iteration":2310,"passed_time":81.50161937,"remaining_time":94.83247706,"test":[0.4954468017]}, -{"learn":[0.4935147174],"iteration":2311,"passed_time":81.53714422,"remaining_time":94.79751024,"test":[0.4954457884]}, -{"learn":[0.4935140915],"iteration":2312,"passed_time":81.57532263,"remaining_time":94.76562555,"test":[0.495445401]}, -{"learn":[0.4935136147],"iteration":2313,"passed_time":81.61332725,"remaining_time":94.7335337,"test":[0.4954448348]}, -{"learn":[0.4935124822],"iteration":2314,"passed_time":81.65069758,"remaining_time":94.70070108,"test":[0.4954439407]}, -{"learn":[0.493511767],"iteration":2315,"passed_time":81.68804011,"remaining_time":94.66783232,"test":[0.4954434937]}, -{"learn":[0.4935108133],"iteration":2316,"passed_time":81.72380414,"remaining_time":94.63313186,"test":[0.4954427188]}, -{"learn":[0.4935097106],"iteration":2317,"passed_time":81.76161932,"remaining_time":94.60080371,"test":[0.4954419141]}, -{"learn":[0.4935083695],"iteration":2318,"passed_time":81.79759086,"remaining_time":94.56633941,"test":[0.4954410797]}, -{"learn":[0.4935075648],"iteration":2319,"passed_time":81.83210204,"remaining_time":94.53018684,"test":[0.4954401856]}, -{"learn":[0.4935070284],"iteration":2320,"passed_time":81.87040091,"remaining_time":94.4984076,"test":[0.4954397684]}, -{"learn":[0.4935059555],"iteration":2321,"passed_time":81.90616683,"remaining_time":94.46370145,"test":[0.4954390531]}, -{"learn":[0.4935051509],"iteration":2322,"passed_time":81.94280123,"remaining_time":94.42999522,"test":[0.4954383677]}, -{"learn":[0.4935039886],"iteration":2323,"passed_time":81.97899469,"remaining_time":94.39577873,"test":[0.4954375928]}, -{"learn":[0.4935029455],"iteration":2324,"passed_time":82.01569505,"remaining_time":94.36214376,"test":[0.4954365497]}, -{"learn":[0.4935024984],"iteration":2325,"passed_time":82.05426739,"remaining_time":94.33065822,"test":[0.4954361921]}, -{"learn":[0.4934983857],"iteration":2326,"passed_time":82.08833398,"remaining_time":94.29399086,"test":[0.4954328244]}, -{"learn":[0.493496538],"iteration":2327,"passed_time":82.12456067,"remaining_time":94.25980502,"test":[0.4954313939]}, -{"learn":[0.4934945114],"iteration":2328,"passed_time":82.15962685,"remaining_time":94.22428653,"test":[0.4954296952]}, -{"learn":[0.4934932597],"iteration":2329,"passed_time":82.19517601,"remaining_time":94.18932187,"test":[0.4954289203]}, -{"learn":[0.4934924253],"iteration":2330,"passed_time":82.23165923,"remaining_time":94.1554262,"test":[0.4954285329]}, -{"learn":[0.4934916504],"iteration":2331,"passed_time":82.26847174,"remaining_time":94.12190506,"test":[0.4954280263]}, -{"learn":[0.4934906669],"iteration":2332,"passed_time":82.30375135,"remaining_time":94.08662873,"test":[0.4954272812]}, -{"learn":[0.4934898623],"iteration":2333,"passed_time":82.34024615,"remaining_time":94.05274046,"test":[0.4954268342]}, -{"learn":[0.4934889384],"iteration":2334,"passed_time":82.37676843,"remaining_time":94.01888132,"test":[0.4954260295]}, -{"learn":[0.4934869118],"iteration":2335,"passed_time":82.41107118,"remaining_time":93.9824887,"test":[0.4954246586]}, -{"learn":[0.4934856303],"iteration":2336,"passed_time":82.44786174,"remaining_time":93.94893274,"test":[0.4954236751]}, -{"learn":[0.4934845575],"iteration":2337,"passed_time":82.48326992,"remaining_time":93.91380005,"test":[0.4954228109]}, -{"learn":[0.4934831865],"iteration":2338,"passed_time":82.52025355,"remaining_time":93.88045947,"test":[0.4954219466]}, -{"learn":[0.4934822329],"iteration":2339,"passed_time":82.55546112,"remaining_time":93.84509683,"test":[0.4954210823]}, -{"learn":[0.493478746],"iteration":2340,"passed_time":82.59055607,"remaining_time":93.80960641,"test":[0.4954180127]}, -{"learn":[0.4934774943],"iteration":2341,"passed_time":82.62825884,"remaining_time":93.777076,"test":[0.4954172974]}, -{"learn":[0.4934763916],"iteration":2342,"passed_time":82.66547605,"remaining_time":93.74399055,"test":[0.4954162842]}, -{"learn":[0.4934745737],"iteration":2343,"passed_time":82.69994103,"remaining_time":93.70778301,"test":[0.4954149729]}, -{"learn":[0.4934739776],"iteration":2344,"passed_time":82.73684754,"remaining_time":93.67434125,"test":[0.4954143768]}, -{"learn":[0.4934727855],"iteration":2345,"passed_time":82.77314055,"remaining_time":93.64020248,"test":[0.4954134827]}, -{"learn":[0.4934717723],"iteration":2346,"passed_time":82.80951833,"remaining_time":93.60615771,"test":[0.4954126781]}, -{"learn":[0.49347061],"iteration":2347,"passed_time":82.84528476,"remaining_time":93.57142043,"test":[0.4954117542]}, -{"learn":[0.4934697457],"iteration":2348,"passed_time":82.88116035,"remaining_time":93.53680549,"test":[0.4954110091]}, -{"learn":[0.4934691795],"iteration":2349,"passed_time":82.91877139,"remaining_time":93.50414647,"test":[0.4954106515]}, -{"learn":[0.4934679278],"iteration":2350,"passed_time":82.95462657,"remaining_time":93.4695048,"test":[0.495409668]}, -{"learn":[0.4934673317],"iteration":2351,"passed_time":82.99178833,"remaining_time":93.43633312,"test":[0.4954091912]}, -{"learn":[0.4934661694],"iteration":2352,"passed_time":83.02826977,"remaining_time":93.40239273,"test":[0.4954085057]}, -{"learn":[0.4934657224],"iteration":2353,"passed_time":83.06681367,"remaining_time":93.37076847,"test":[0.4954079991]}, -{"learn":[0.4934630104],"iteration":2354,"passed_time":83.10288838,"remaining_time":93.33636508,"test":[0.4954059427]}, -{"learn":[0.4934621759],"iteration":2355,"passed_time":83.13877298,"remaining_time":93.30174693,"test":[0.4954052871]}, -{"learn":[0.4934614905],"iteration":2356,"passed_time":83.17857767,"remaining_time":93.27152346,"test":[0.4954048699]}, -{"learn":[0.4934610434],"iteration":2357,"passed_time":83.21737974,"remaining_time":93.24016848,"test":[0.4954043334]}, -{"learn":[0.493460209],"iteration":2358,"passed_time":83.25689147,"remaining_time":93.20960169,"test":[0.4954038268]}, -{"learn":[0.4934590765],"iteration":2359,"passed_time":83.29407609,"remaining_time":93.1764241,"test":[0.4954031115]}, -{"learn":[0.4934582122],"iteration":2360,"passed_time":83.33210793,"remaining_time":93.1441901,"test":[0.4954024857]}, -{"learn":[0.4934569307],"iteration":2361,"passed_time":83.36739699,"remaining_time":93.10888791,"test":[0.4954017704]}, -{"learn":[0.4934563645],"iteration":2362,"passed_time":83.40592437,"remaining_time":93.07719956,"test":[0.4954011148]}, -{"learn":[0.4934554108],"iteration":2363,"passed_time":83.44310517,"remaining_time":93.0440039,"test":[0.4954004293]}, -{"learn":[0.4934547551],"iteration":2364,"passed_time":83.48070622,"remaining_time":93.01127311,"test":[0.4953997439]}, -{"learn":[0.493453414],"iteration":2365,"passed_time":83.51740725,"remaining_time":92.97753622,"test":[0.4953990584]}, -{"learn":[0.4934524604],"iteration":2366,"passed_time":83.55254977,"remaining_time":92.94206317,"test":[0.4953981941]}, -{"learn":[0.4934519239],"iteration":2367,"passed_time":83.59167118,"remaining_time":92.9110129,"test":[0.4953976279]}, -{"learn":[0.4934511491],"iteration":2368,"passed_time":83.62834737,"remaining_time":92.87724016,"test":[0.4953970319]}, -{"learn":[0.4934500464],"iteration":2369,"passed_time":83.66425708,"remaining_time":92.8426144,"test":[0.4953961974]}, -{"learn":[0.4934490033],"iteration":2370,"passed_time":83.70032415,"remaining_time":92.80816204,"test":[0.4953953927]}, -{"learn":[0.4934478708],"iteration":2371,"passed_time":83.73622885,"remaining_time":92.77352842,"test":[0.4953944093]}, -{"learn":[0.4934469767],"iteration":2372,"passed_time":83.77118338,"remaining_time":92.73784186,"test":[0.4953934854]}, -{"learn":[0.4934452184],"iteration":2373,"passed_time":83.80585534,"remaining_time":92.70184335,"test":[0.4953921443]}, -{"learn":[0.4934445031],"iteration":2374,"passed_time":83.84245783,"remaining_time":92.66797971,"test":[0.4953915482]}, -{"learn":[0.493443311],"iteration":2375,"passed_time":83.87747617,"remaining_time":92.63236426,"test":[0.4953906244]}, -{"learn":[0.4934425958],"iteration":2376,"passed_time":83.91479733,"remaining_time":92.59929045,"test":[0.4953900581]}, -{"learn":[0.4934411951],"iteration":2377,"passed_time":83.9502702,"remaining_time":92.56417513,"test":[0.4953891044]}, -{"learn":[0.4934404202],"iteration":2378,"passed_time":83.98692013,"remaining_time":92.53035631,"test":[0.4953885978]}, -{"learn":[0.4934393175],"iteration":2379,"passed_time":84.022445,"remaining_time":92.4952966,"test":[0.4953877037]}, -{"learn":[0.4934367247],"iteration":2380,"passed_time":84.05613576,"remaining_time":92.45821904,"test":[0.4953862434]}, -{"learn":[0.4934356816],"iteration":2381,"passed_time":84.0927017,"remaining_time":92.42430439,"test":[0.4953852897]}, -{"learn":[0.4934340425],"iteration":2382,"passed_time":84.12734661,"remaining_time":92.38827784,"test":[0.49538374]}, -{"learn":[0.4934327908],"iteration":2383,"passed_time":84.16282027,"remaining_time":92.35316184,"test":[0.4953830248]}, -{"learn":[0.4934321054],"iteration":2384,"passed_time":84.20143432,"remaining_time":92.32148878,"test":[0.4953824287]}, -{"learn":[0.4934310325],"iteration":2385,"passed_time":84.23835627,"remaining_time":92.28795612,"test":[0.4953812664]}, -{"learn":[0.4934285887],"iteration":2386,"passed_time":84.27209854,"remaining_time":92.25093988,"test":[0.4953796869]}, -{"learn":[0.4934278734],"iteration":2387,"passed_time":84.30852624,"remaining_time":92.21686371,"test":[0.4953788226]}, -{"learn":[0.49342689],"iteration":2388,"passed_time":84.34670985,"remaining_time":92.18470465,"test":[0.4953781372]}, -{"learn":[0.4934261449],"iteration":2389,"passed_time":84.38406818,"remaining_time":92.1516393,"test":[0.4953776305]}, -{"learn":[0.4934254297],"iteration":2390,"passed_time":84.41962547,"remaining_time":92.11660513,"test":[0.4953767961]}, -{"learn":[0.4934242674],"iteration":2391,"passed_time":84.45654636,"remaining_time":92.08305723,"test":[0.4953758424]}, -{"learn":[0.4934230753],"iteration":2392,"passed_time":84.49374802,"remaining_time":92.0498124,"test":[0.4953749781]}, -{"learn":[0.493421913],"iteration":2393,"passed_time":84.53058236,"remaining_time":92.01616443,"test":[0.4953738457]}, -{"learn":[0.4934208401],"iteration":2394,"passed_time":84.5680251,"remaining_time":91.98317552,"test":[0.495373041]}, -{"learn":[0.4934201844],"iteration":2395,"passed_time":84.60499112,"remaining_time":91.94966481,"test":[0.4953725343]}, -{"learn":[0.4934192606],"iteration":2396,"passed_time":84.64218324,"remaining_time":91.91639673,"test":[0.4953719085]}, -{"learn":[0.4934180387],"iteration":2397,"passed_time":84.67767382,"remaining_time":91.88127909,"test":[0.4953711336]}, -{"learn":[0.4934169658],"iteration":2398,"passed_time":84.71411631,"remaining_time":91.84719322,"test":[0.4953704184]}, -{"learn":[0.4934160419],"iteration":2399,"passed_time":84.74970938,"remaining_time":91.81218516,"test":[0.4953696137]}, -{"learn":[0.4934146412],"iteration":2400,"passed_time":84.78496197,"remaining_time":91.77680806,"test":[0.4953685408]}, -{"learn":[0.4934133299],"iteration":2401,"passed_time":84.82059596,"remaining_time":91.74184359,"test":[0.4953677362]}, -{"learn":[0.4934122272],"iteration":2402,"passed_time":84.85754944,"remaining_time":91.70830458,"test":[0.4953666633]}, -{"learn":[0.4934114822],"iteration":2403,"passed_time":84.89510808,"remaining_time":91.67541622,"test":[0.4953663355]}, -{"learn":[0.4934103795],"iteration":2404,"passed_time":84.93319617,"remaining_time":91.64309525,"test":[0.4953654712]}, -{"learn":[0.493409247],"iteration":2405,"passed_time":84.97081718,"remaining_time":91.61026591,"test":[0.4953644877]}, -{"learn":[0.4934084721],"iteration":2406,"passed_time":85.00768762,"remaining_time":91.57662402,"test":[0.4953636235]}, -{"learn":[0.4934073396],"iteration":2407,"passed_time":85.04290969,"remaining_time":91.54120511,"test":[0.4953628784]}, -{"learn":[0.4934037634],"iteration":2408,"passed_time":85.0760844,"remaining_time":91.50358435,"test":[0.495360077]}, -{"learn":[0.4934025415],"iteration":2409,"passed_time":85.11215964,"remaining_time":91.46908443,"test":[0.4953592425]}, -{"learn":[0.4934013196],"iteration":2410,"passed_time":85.14872112,"remaining_time":91.43510534,"test":[0.4953581696]}, -{"learn":[0.4934006937],"iteration":2411,"passed_time":85.18576897,"remaining_time":91.40164598,"test":[0.4953577822]}, -{"learn":[0.4933999189],"iteration":2412,"passed_time":85.22232301,"remaining_time":91.36765421,"test":[0.495357216]}, -{"learn":[0.4933994718],"iteration":2413,"passed_time":85.2593977,"remaining_time":91.33421809,"test":[0.4953568285]}, -{"learn":[0.4933981307],"iteration":2414,"passed_time":85.29463083,"remaining_time":91.29880774,"test":[0.4953556662]}, -{"learn":[0.4933960148],"iteration":2415,"passed_time":85.32946021,"remaining_time":91.26296572,"test":[0.4953542655]}, -{"learn":[0.4933947035],"iteration":2416,"passed_time":85.36456521,"remaining_time":91.22741908,"test":[0.4953532821]}, -{"learn":[0.4933938988],"iteration":2417,"passed_time":85.39957161,"remaining_time":91.19176753,"test":[0.4953524178]}, -{"learn":[0.4933931537],"iteration":2418,"passed_time":85.43684237,"remaining_time":91.15853252,"test":[0.4953517323]}, -{"learn":[0.4933925279],"iteration":2419,"passed_time":85.47518073,"remaining_time":91.12643235,"test":[0.4953513449]}, -{"learn":[0.4933913358],"iteration":2420,"passed_time":85.51186466,"remaining_time":91.09256462,"test":[0.4953503614]}, -{"learn":[0.4933907696],"iteration":2421,"passed_time":85.54929193,"remaining_time":91.0594858,"test":[0.4953499144]}, -{"learn":[0.4933896073],"iteration":2422,"passed_time":85.58402047,"remaining_time":91.02353312,"test":[0.4953492289]}, -{"learn":[0.4933877595],"iteration":2423,"passed_time":85.61899265,"remaining_time":90.98784038,"test":[0.4953479176]}, -{"learn":[0.4933865078],"iteration":2424,"passed_time":85.6553278,"remaining_time":90.9535955,"test":[0.495347113]}, -{"learn":[0.4933852859],"iteration":2425,"passed_time":85.69072447,"remaining_time":90.91835317,"test":[0.4953461295]}, -{"learn":[0.4933841236],"iteration":2426,"passed_time":85.72699778,"remaining_time":90.88404009,"test":[0.495345444]}, -{"learn":[0.4933817991],"iteration":2427,"passed_time":85.76108517,"remaining_time":90.84740983,"test":[0.4953436559]}, -{"learn":[0.4933805772],"iteration":2428,"passed_time":85.79717902,"remaining_time":90.81290542,"test":[0.4953427618]}, -{"learn":[0.4933800407],"iteration":2429,"passed_time":85.8344692,"remaining_time":90.77966496,"test":[0.4953422552]}, -{"learn":[0.4933759578],"iteration":2430,"passed_time":85.86780444,"remaining_time":90.74224171,"test":[0.4953390663]}, -{"learn":[0.4933754512],"iteration":2431,"passed_time":85.90409386,"remaining_time":90.70794122,"test":[0.4953387087]}, -{"learn":[0.4933747955],"iteration":2432,"passed_time":85.94156602,"remaining_time":90.67488696,"test":[0.4953381425]}, -{"learn":[0.4933723517],"iteration":2433,"passed_time":85.97526505,"remaining_time":90.63785132,"test":[0.4953362351]}, -{"learn":[0.4933718451],"iteration":2434,"passed_time":86.01263963,"remaining_time":90.6046902,"test":[0.4953358477]}, -{"learn":[0.4933643051],"iteration":2435,"passed_time":86.04615192,"remaining_time":90.56746039,"test":[0.4953298276]}, -{"learn":[0.4933629044],"iteration":2436,"passed_time":86.08150491,"remaining_time":90.53216951,"test":[0.495328874]}, -{"learn":[0.4933622785],"iteration":2437,"passed_time":86.11810354,"remaining_time":90.49818756,"test":[0.4953284567]}, -{"learn":[0.4933612951],"iteration":2438,"passed_time":86.15488709,"remaining_time":90.46439763,"test":[0.4953279799]}, -{"learn":[0.4933604308],"iteration":2439,"passed_time":86.19223538,"remaining_time":90.43119778,"test":[0.495327354]}, -{"learn":[0.4933591791],"iteration":2440,"passed_time":86.22912197,"remaining_time":90.39751049,"test":[0.4953264302]}, -{"learn":[0.493358136],"iteration":2441,"passed_time":86.26695698,"remaining_time":90.36481407,"test":[0.4953255361]}, -{"learn":[0.4933564671],"iteration":2442,"passed_time":86.30232236,"remaining_time":90.32952856,"test":[0.4953243142]}, -{"learn":[0.4933559306],"iteration":2443,"passed_time":86.33941591,"remaining_time":90.29605035,"test":[0.4953237778]}, -{"learn":[0.4933536955],"iteration":2444,"passed_time":86.37385466,"remaining_time":90.25979496,"test":[0.4953220492]}, -{"learn":[0.4933526822],"iteration":2445,"passed_time":86.40940407,"remaining_time":90.22470073,"test":[0.4953212446]}, -{"learn":[0.4933508046],"iteration":2446,"passed_time":86.44414813,"remaining_time":90.18876591,"test":[0.495319367]}, -{"learn":[0.4933499404],"iteration":2447,"passed_time":86.47992009,"remaining_time":90.15390362,"test":[0.4953185624]}, -{"learn":[0.4933491357],"iteration":2448,"passed_time":86.51664053,"remaining_time":90.12002858,"test":[0.4953178769]}, -{"learn":[0.4933480032],"iteration":2449,"passed_time":86.5541851,"remaining_time":90.08700898,"test":[0.4953167444]}, -{"learn":[0.4933474966],"iteration":2450,"passed_time":86.59206083,"remaining_time":90.05433009,"test":[0.495316357]}, -{"learn":[0.4933469899],"iteration":2451,"passed_time":86.62945337,"remaining_time":90.02114485,"test":[0.4953157907]}, -{"learn":[0.4933460065],"iteration":2452,"passed_time":86.66637822,"remaining_time":89.98747058,"test":[0.4953150159]}, -{"learn":[0.4933449336],"iteration":2453,"passed_time":86.70257268,"remaining_time":89.95303587,"test":[0.495313943]}, -{"learn":[0.4933440395],"iteration":2454,"passed_time":86.73984693,"remaining_time":89.91971912,"test":[0.4953136152]}, -{"learn":[0.493342758],"iteration":2455,"passed_time":86.77632235,"remaining_time":89.88557169,"test":[0.4953128701]}, -{"learn":[0.4933415659],"iteration":2456,"passed_time":86.81136714,"remaining_time":89.84994165,"test":[0.4953122443]}, -{"learn":[0.4933392711],"iteration":2457,"passed_time":86.84671677,"remaining_time":89.81462735,"test":[0.4953105753]}, -{"learn":[0.493337632],"iteration":2458,"passed_time":86.88308467,"remaining_time":89.78036525,"test":[0.4953096515]}, -{"learn":[0.4933363207],"iteration":2459,"passed_time":86.91838269,"remaining_time":89.74499676,"test":[0.4953086382]}, -{"learn":[0.4933346816],"iteration":2460,"passed_time":86.95392851,"remaining_time":89.70988399,"test":[0.4953072673]}, -{"learn":[0.4933337279],"iteration":2461,"passed_time":86.98896747,"remaining_time":89.67424835,"test":[0.4953063434]}, -{"learn":[0.4933331319],"iteration":2462,"passed_time":87.02661391,"remaining_time":89.64129902,"test":[0.495305956]}, -{"learn":[0.4933320292],"iteration":2463,"passed_time":87.06176532,"remaining_time":89.60577794,"test":[0.4953053003]}, -{"learn":[0.4933283039],"iteration":2464,"passed_time":87.09495531,"remaining_time":89.56824004,"test":[0.4953022903]}, -{"learn":[0.4933272906],"iteration":2465,"passed_time":87.13112047,"remaining_time":89.53376289,"test":[0.495301426]}, -{"learn":[0.4933260389],"iteration":2466,"passed_time":87.16694578,"remaining_time":89.49893541,"test":[0.4953004127]}, -{"learn":[0.4933252641],"iteration":2467,"passed_time":87.20503439,"remaining_time":89.46642912,"test":[0.4952996677]}, -{"learn":[0.4933242508],"iteration":2468,"passed_time":87.24286993,"remaining_time":89.43365889,"test":[0.4952988034]}, -{"learn":[0.4933230289],"iteration":2469,"passed_time":87.27921,"remaining_time":89.39935275,"test":[0.4952979093]}, -{"learn":[0.4933212705],"iteration":2470,"passed_time":87.31579874,"remaining_time":89.36529948,"test":[0.4952964788]}, -{"learn":[0.4933203169],"iteration":2471,"passed_time":87.35330018,"remaining_time":89.33217753,"test":[0.4952957934]}, -{"learn":[0.4933189162],"iteration":2472,"passed_time":87.38984065,"remaining_time":89.29807008,"test":[0.4952948099]}, -{"learn":[0.4933178731],"iteration":2473,"passed_time":87.42572076,"remaining_time":89.26328644,"test":[0.4952939456]}, -{"learn":[0.493317277],"iteration":2474,"passed_time":87.46308264,"remaining_time":89.2300136,"test":[0.4952933794]}, -{"learn":[0.4933149823],"iteration":2475,"passed_time":87.49810786,"remaining_time":89.19435551,"test":[0.4952917403]}, -{"learn":[0.49331382],"iteration":2476,"passed_time":87.53277856,"remaining_time":89.15833682,"test":[0.4952909058]}, -{"learn":[0.4933128663],"iteration":2477,"passed_time":87.56700254,"remaining_time":89.12186458,"test":[0.4952900713]}, -{"learn":[0.4933120318],"iteration":2478,"passed_time":87.60403627,"remaining_time":89.08825149,"test":[0.4952896541]}, -{"learn":[0.4933108695],"iteration":2479,"passed_time":87.64112461,"remaining_time":89.05469113,"test":[0.4952888196]}, -{"learn":[0.49330929],"iteration":2480,"passed_time":87.67597288,"remaining_time":89.01885356,"test":[0.4952873593]}, -{"learn":[0.4933087536],"iteration":2481,"passed_time":87.71358254,"remaining_time":88.98581823,"test":[0.4952869719]}, -{"learn":[0.493307025],"iteration":2482,"passed_time":87.74817937,"remaining_time":88.94972512,"test":[0.4952856606]}, -{"learn":[0.4933048197],"iteration":2483,"passed_time":87.78273749,"remaining_time":88.91359401,"test":[0.4952837532]}, -{"learn":[0.4933027931],"iteration":2484,"passed_time":87.81566827,"remaining_time":88.87581719,"test":[0.4952822929]}, -{"learn":[0.4933022269],"iteration":2485,"passed_time":87.85329678,"remaining_time":88.84279489,"test":[0.4952818161]}, -{"learn":[0.4933016904],"iteration":2486,"passed_time":87.89135441,"remaining_time":88.8102025,"test":[0.4952814585]}, -{"learn":[0.4933010944],"iteration":2487,"passed_time":87.92919183,"remaining_time":88.77738339,"test":[0.4952810114]}, -{"learn":[0.4932997533],"iteration":2488,"passed_time":87.96540401,"remaining_time":88.74292064,"test":[0.495280177]}, -{"learn":[0.493298889],"iteration":2489,"passed_time":88.00348332,"remaining_time":88.71033861,"test":[0.4952794021]}, -{"learn":[0.4932970413],"iteration":2490,"passed_time":88.03919635,"remaining_time":88.67536878,"test":[0.4952778524]}, -{"learn":[0.4932959982],"iteration":2491,"passed_time":88.07687201,"remaining_time":88.6423736,"test":[0.4952771967]}, -{"learn":[0.4932946571],"iteration":2492,"passed_time":88.11146686,"remaining_time":88.60627655,"test":[0.4952758556]}, -{"learn":[0.4932928689],"iteration":2493,"passed_time":88.14750026,"remaining_time":88.57162616,"test":[0.4952745443]}, -{"learn":[0.4932915874],"iteration":2494,"passed_time":88.18363081,"remaining_time":88.53707222,"test":[0.4952735907]}, -{"learn":[0.4932897993],"iteration":2495,"passed_time":88.22069133,"remaining_time":88.50344995,"test":[0.4952723092]}, -{"learn":[0.4932891138],"iteration":2496,"passed_time":88.25781189,"remaining_time":88.46988512,"test":[0.4952716833]}, -{"learn":[0.4932877131],"iteration":2497,"passed_time":88.29515561,"remaining_time":88.43654097,"test":[0.49527067]}, -{"learn":[0.4932871469],"iteration":2498,"passed_time":88.33219169,"remaining_time":88.40288572,"test":[0.4952702528]}, -{"learn":[0.4932856568],"iteration":2499,"passed_time":88.36744821,"remaining_time":88.36744821,"test":[0.4952694183]}, -{"learn":[0.4932845243],"iteration":2500,"passed_time":88.40401,"remaining_time":88.33331507,"test":[0.4952687627]}, -{"learn":[0.4932838984],"iteration":2501,"passed_time":88.44285234,"remaining_time":88.30145689,"test":[0.4952683156]}, -{"learn":[0.4932832726],"iteration":2502,"passed_time":88.48084879,"remaining_time":88.26874927,"test":[0.4952679282]}, -{"learn":[0.4932821103],"iteration":2503,"passed_time":88.51796301,"remaining_time":88.23515802,"test":[0.4952670937]}, -{"learn":[0.4932812162],"iteration":2504,"passed_time":88.55376261,"remaining_time":88.20025457,"test":[0.4952663189]}, -{"learn":[0.4932800837],"iteration":2505,"passed_time":88.59047536,"remaining_time":88.16625919,"test":[0.4952656036]}, -{"learn":[0.4932790109],"iteration":2506,"passed_time":88.62946759,"remaining_time":88.1345284,"test":[0.4952646798]}, -{"learn":[0.4932751068],"iteration":2507,"passed_time":88.66317928,"remaining_time":88.09754496,"test":[0.4952614313]}, -{"learn":[0.4932743617],"iteration":2508,"passed_time":88.7009482,"remaining_time":88.06459225,"test":[0.4952608353]}, -{"learn":[0.4932731696],"iteration":2509,"passed_time":88.73757057,"remaining_time":88.0304983,"test":[0.495259971]}, -{"learn":[0.4932720073],"iteration":2510,"passed_time":88.77356819,"remaining_time":87.99578305,"test":[0.4952592855]}, -{"learn":[0.4932714113],"iteration":2511,"passed_time":88.81176762,"remaining_time":87.96324754,"test":[0.4952588683]}, -{"learn":[0.4932703086],"iteration":2512,"passed_time":88.84887568,"remaining_time":87.92962747,"test":[0.4952581232]}, -{"learn":[0.4932672985],"iteration":2513,"passed_time":88.88168251,"remaining_time":87.89175128,"test":[0.4952558881]}, -{"learn":[0.4932667621],"iteration":2514,"passed_time":88.918734,"remaining_time":87.85807315,"test":[0.4952554708]}, -{"learn":[0.4932647654],"iteration":2515,"passed_time":88.95423879,"remaining_time":87.82286532,"test":[0.4952539509]}, -{"learn":[0.4932637521],"iteration":2516,"passed_time":88.9914287,"remaining_time":87.78931961,"test":[0.4952530867]}, -{"learn":[0.493262262],"iteration":2517,"passed_time":89.02772091,"remaining_time":87.75488614,"test":[0.4952518648]}, -{"learn":[0.4932603248],"iteration":2518,"passed_time":89.06480218,"remaining_time":87.72122834,"test":[0.4952502554]}, -{"learn":[0.4932589241],"iteration":2519,"passed_time":89.10077974,"remaining_time":87.68648165,"test":[0.4952493614]}, -{"learn":[0.4932579704],"iteration":2520,"passed_time":89.13650122,"remaining_time":87.65148216,"test":[0.4952486759]}, -{"learn":[0.4932567485],"iteration":2521,"passed_time":89.17403701,"remaining_time":87.61826475,"test":[0.4952477818]}, -{"learn":[0.4932561823],"iteration":2522,"passed_time":89.21153113,"remaining_time":87.58500302,"test":[0.4952473646]}, -{"learn":[0.4932540663],"iteration":2523,"passed_time":89.24577889,"remaining_time":87.5485533,"test":[0.4952457851]}, -{"learn":[0.493252457],"iteration":2524,"passed_time":89.27982775,"remaining_time":87.51191037,"test":[0.495244444]}, -{"learn":[0.4932518609],"iteration":2525,"passed_time":89.31707911,"remaining_time":87.47840607,"test":[0.4952438479]}, -{"learn":[0.4932509073],"iteration":2526,"passed_time":89.35283709,"remaining_time":87.44343732,"test":[0.4952432519]}, -{"learn":[0.493247331],"iteration":2527,"passed_time":89.38598481,"remaining_time":87.40591553,"test":[0.4952402419]}, -{"learn":[0.4932466753],"iteration":2528,"passed_time":89.42318511,"remaining_time":87.37235682,"test":[0.495239765]}, -{"learn":[0.4932453342],"iteration":2529,"passed_time":89.45963167,"remaining_time":87.33805938,"test":[0.4952389008]}, -{"learn":[0.4932440527],"iteration":2530,"passed_time":89.49535069,"remaining_time":87.30305051,"test":[0.4952377981]}, -{"learn":[0.4932434865],"iteration":2531,"passed_time":89.53235876,"remaining_time":87.26929756,"test":[0.4952372616]}, -{"learn":[0.4932424136],"iteration":2532,"passed_time":89.56862246,"remaining_time":87.23481706,"test":[0.495236606]}, -{"learn":[0.4932409831],"iteration":2533,"passed_time":89.60449675,"remaining_time":87.19995619,"test":[0.4952356225]}, -{"learn":[0.4932403871],"iteration":2534,"passed_time":89.64307185,"remaining_time":87.16772076,"test":[0.4952352351]}, -{"learn":[0.4932394334],"iteration":2535,"passed_time":89.68002033,"remaining_time":87.13389988,"test":[0.4952345198]}, -{"learn":[0.4932390161],"iteration":2536,"passed_time":89.71906193,"remaining_time":87.1021086,"test":[0.4952341324]}, -{"learn":[0.4932376452],"iteration":2537,"passed_time":89.75454337,"remaining_time":87.06685807,"test":[0.4952330595]}, -{"learn":[0.4932371088],"iteration":2538,"passed_time":89.79159281,"remaining_time":87.03312718,"test":[0.4952326721]}, -{"learn":[0.4932362743],"iteration":2539,"passed_time":89.82868076,"remaining_time":86.99943097,"test":[0.4952318674]}, -{"learn":[0.4932350524],"iteration":2540,"passed_time":89.86556217,"remaining_time":86.96553222,"test":[0.4952308541]}, -{"learn":[0.4932334431],"iteration":2541,"passed_time":89.90115895,"remaining_time":86.93038895,"test":[0.4952294832]}, -{"learn":[0.4932324894],"iteration":2542,"passed_time":89.93652507,"remaining_time":86.89502245,"test":[0.4952288574]}, -{"learn":[0.4932319232],"iteration":2543,"passed_time":89.97447318,"remaining_time":86.86214863,"test":[0.4952283507]}, -{"learn":[0.4932312973],"iteration":2544,"passed_time":90.01255976,"remaining_time":86.82940441,"test":[0.4952279931]}, -{"learn":[0.4932300158],"iteration":2545,"passed_time":90.04738751,"remaining_time":86.79351491,"test":[0.4952269798]}, -{"learn":[0.4932289728],"iteration":2546,"passed_time":90.08241659,"remaining_time":86.75782014,"test":[0.4952263242]}, -{"learn":[0.4932281085],"iteration":2547,"passed_time":90.12068383,"remaining_time":86.72524205,"test":[0.4952256685]}, -{"learn":[0.4932269462],"iteration":2548,"passed_time":90.15724745,"remaining_time":86.69102138,"test":[0.4952249831]}, -{"learn":[0.4932251283],"iteration":2549,"passed_time":90.19181334,"remaining_time":86.65487948,"test":[0.4952233737]}, -{"learn":[0.493223966],"iteration":2550,"passed_time":90.2271376,"remaining_time":86.61946687,"test":[0.4952227181]}, -{"learn":[0.4932234295],"iteration":2551,"passed_time":90.26539193,"remaining_time":86.58686499,"test":[0.4952221518]}, -{"learn":[0.4932227739],"iteration":2552,"passed_time":90.30457058,"remaining_time":86.55514462,"test":[0.4952217942]}, -{"learn":[0.493221701],"iteration":2553,"passed_time":90.34055423,"remaining_time":86.52035851,"test":[0.4952210492]}, -{"learn":[0.4932212838],"iteration":2554,"passed_time":90.37770476,"remaining_time":86.48668811,"test":[0.4952206617]}, -{"learn":[0.493219734],"iteration":2555,"passed_time":90.41264801,"remaining_time":86.45090444,"test":[0.4952198869]}, -{"learn":[0.4932180055],"iteration":2556,"passed_time":90.44729341,"remaining_time":86.41483684,"test":[0.4952185756]}, -{"learn":[0.4932173201],"iteration":2557,"passed_time":90.48425832,"remaining_time":86.38098468,"test":[0.4952177411]}, -{"learn":[0.493216128],"iteration":2558,"passed_time":90.52036498,"remaining_time":86.34631142,"test":[0.4952171451]}, -{"learn":[0.4932149955],"iteration":2559,"passed_time":90.55607779,"remaining_time":86.31126164,"test":[0.495216102]}, -{"learn":[0.4932143994],"iteration":2560,"passed_time":90.59391739,"remaining_time":86.27823683,"test":[0.4952156251]}, -{"learn":[0.4932129391],"iteration":2561,"passed_time":90.62809766,"remaining_time":86.24172603,"test":[0.4952143436]}, -{"learn":[0.4932109126],"iteration":2562,"passed_time":90.66297051,"remaining_time":86.20587559,"test":[0.4952128833]}, -{"learn":[0.4932095715],"iteration":2563,"passed_time":90.69903884,"remaining_time":86.17116171,"test":[0.4952123469]}, -{"learn":[0.4932078429],"iteration":2564,"passed_time":90.73562256,"remaining_time":86.13693604,"test":[0.4952113336]}, -{"learn":[0.493206621],"iteration":2565,"passed_time":90.7707672,"remaining_time":86.10134348,"test":[0.4952105289]}, -{"learn":[0.4932060548],"iteration":2566,"passed_time":90.80813445,"remaining_time":86.06785785,"test":[0.4952100521]}, -{"learn":[0.4932055183],"iteration":2567,"passed_time":90.8454149,"remaining_time":86.03428701,"test":[0.4952096349]}, -{"learn":[0.4932049521],"iteration":2568,"passed_time":90.88255211,"remaining_time":86.00057772,"test":[0.4952092176]}, -{"learn":[0.4932038792],"iteration":2569,"passed_time":90.91708949,"remaining_time":85.96440757,"test":[0.4952085918]}, -{"learn":[0.4932031938],"iteration":2570,"passed_time":90.95346113,"remaining_time":85.92997164,"test":[0.4952080554]}, -{"learn":[0.493200601],"iteration":2571,"passed_time":90.98806202,"remaining_time":85.89386259,"test":[0.4952061182]}, -{"learn":[0.4932000347],"iteration":2572,"passed_time":91.02381135,"remaining_time":85.85883799,"test":[0.4952057606]}, -{"learn":[0.4931988724],"iteration":2573,"passed_time":91.06110894,"remaining_time":85.82527207,"test":[0.4952050155]}, -{"learn":[0.493198038],"iteration":2574,"passed_time":91.09712631,"remaining_time":85.79049759,"test":[0.4952042109]}, -{"learn":[0.4931970247],"iteration":2575,"passed_time":91.13335251,"remaining_time":85.75591867,"test":[0.4952032274]}, -{"learn":[0.493196071],"iteration":2576,"passed_time":91.16906223,"remaining_time":85.72085285,"test":[0.4952023929]}, -{"learn":[0.4931949087],"iteration":2577,"passed_time":91.20618356,"remaining_time":85.68711272,"test":[0.4952014988]}, -{"learn":[0.4931944319],"iteration":2578,"passed_time":91.24547285,"remaining_time":85.65540511,"test":[0.4952009922]}, -{"learn":[0.4931929418],"iteration":2579,"passed_time":91.28136434,"remaining_time":85.62050454,"test":[0.4951998895]}, -{"learn":[0.4931916901],"iteration":2580,"passed_time":91.31643626,"remaining_time":85.58483507,"test":[0.4951990849]}, -{"learn":[0.4931905874],"iteration":2581,"passed_time":91.35346757,"remaining_time":85.551001,"test":[0.495198161]}, -{"learn":[0.4931900509],"iteration":2582,"passed_time":91.39139624,"remaining_time":85.51800415,"test":[0.4951976543]}, -{"learn":[0.493188531],"iteration":2583,"passed_time":91.42688516,"remaining_time":85.48272234,"test":[0.4951964623]}, -{"learn":[0.4931875177],"iteration":2584,"passed_time":91.46311735,"remaining_time":85.44813477,"test":[0.4951955682]}, -{"learn":[0.4931868025],"iteration":2585,"passed_time":91.50070297,"remaining_time":85.41480934,"test":[0.4951950615]}, -{"learn":[0.493185968],"iteration":2586,"passed_time":91.53711564,"remaining_time":85.38038656,"test":[0.4951942569]}, -{"learn":[0.4931842395],"iteration":2587,"passed_time":91.57219398,"remaining_time":85.34471865,"test":[0.4951928562]}, -{"learn":[0.4931831368],"iteration":2588,"passed_time":91.60810504,"remaining_time":85.30982667,"test":[0.4951919919]}, -{"learn":[0.4931821533],"iteration":2589,"passed_time":91.64402479,"remaining_time":85.27494199,"test":[0.4951913661]}, -{"learn":[0.4931810208],"iteration":2590,"passed_time":91.67963074,"remaining_time":85.23976474,"test":[0.4951905018]}, -{"learn":[0.4931804248],"iteration":2591,"passed_time":91.71663627,"remaining_time":85.2058874,"test":[0.4951900249]}, -{"learn":[0.4931794115],"iteration":2592,"passed_time":91.75212031,"remaining_time":85.17059529,"test":[0.4951892799]}, -{"learn":[0.4931771465],"iteration":2593,"passed_time":91.78687206,"remaining_time":85.13462382,"test":[0.4951873725]}, -{"learn":[0.4931758352],"iteration":2594,"passed_time":91.82273488,"remaining_time":85.099683,"test":[0.4951864785]}, -{"learn":[0.493175269],"iteration":2595,"passed_time":91.8599573,"remaining_time":85.06600052,"test":[0.4951860612]}, -{"learn":[0.4931741365],"iteration":2596,"passed_time":91.89662204,"remaining_time":85.03179929,"test":[0.4951851374]}, -{"learn":[0.4931726166],"iteration":2597,"passed_time":91.93218616,"remaining_time":84.99657858,"test":[0.4951846009]}, -{"learn":[0.4931717821],"iteration":2598,"passed_time":91.96933129,"remaining_time":84.96281817,"test":[0.4951841837]}, -{"learn":[0.4931712457],"iteration":2599,"passed_time":92.00748534,"remaining_time":84.92998646,"test":[0.4951837963]}, -{"learn":[0.4931701728],"iteration":2600,"passed_time":92.04409262,"remaining_time":84.89572403,"test":[0.495182932]}, -{"learn":[0.4931692191],"iteration":2601,"passed_time":92.08103848,"remaining_time":84.86177182,"test":[0.4951820677]}, -{"learn":[0.4931682356],"iteration":2602,"passed_time":92.11845219,"remaining_time":84.82824814,"test":[0.4951812333]}, -{"learn":[0.4931670137],"iteration":2603,"passed_time":92.15605456,"remaining_time":84.79489505,"test":[0.4951803094]}, -{"learn":[0.4931660005],"iteration":2604,"passed_time":92.19234994,"remaining_time":84.76033709,"test":[0.4951796835]}, -{"learn":[0.4931638547],"iteration":2605,"passed_time":92.22719743,"remaining_time":84.72444768,"test":[0.4951778358]}, -{"learn":[0.493163199],"iteration":2606,"passed_time":92.26451665,"remaining_time":84.6908279,"test":[0.4951772994]}, -{"learn":[0.4931620666],"iteration":2607,"passed_time":92.30066866,"remaining_time":84.65613475,"test":[0.4951765841]}, -{"learn":[0.4931613513],"iteration":2608,"passed_time":92.33627611,"remaining_time":84.62094142,"test":[0.4951759583]}, -{"learn":[0.493160636],"iteration":2609,"passed_time":92.37373129,"remaining_time":84.58743976,"test":[0.4951756006]}, -{"learn":[0.4931584605],"iteration":2610,"passed_time":92.40849661,"remaining_time":84.55147392,"test":[0.4951740807]}, -{"learn":[0.4931574174],"iteration":2611,"passed_time":92.44382559,"remaining_time":84.51602432,"test":[0.4951731568]}, -{"learn":[0.4931555399],"iteration":2612,"passed_time":92.47998923,"remaining_time":84.48133728,"test":[0.4951715773]}, -{"learn":[0.4931550332],"iteration":2613,"passed_time":92.51739765,"remaining_time":84.44778531,"test":[0.4951711601]}, -{"learn":[0.4931539901],"iteration":2614,"passed_time":92.55291532,"remaining_time":84.41250594,"test":[0.4951703554]}, -{"learn":[0.4931531259],"iteration":2615,"passed_time":92.5896986,"remaining_time":84.37837977,"test":[0.495169521]}, -{"learn":[0.4931518444],"iteration":2616,"passed_time":92.62601037,"remaining_time":84.34382221,"test":[0.4951686269]}, -{"learn":[0.4931501456],"iteration":2617,"passed_time":92.66094816,"remaining_time":84.30801318,"test":[0.4951673156]}, -{"learn":[0.4931494602],"iteration":2618,"passed_time":92.6976707,"remaining_time":84.27382739,"test":[0.4951668685]}, -{"learn":[0.493146778],"iteration":2619,"passed_time":92.73162613,"remaining_time":84.23712602,"test":[0.4951649314]}, -{"learn":[0.4931445428],"iteration":2620,"passed_time":92.76620879,"remaining_time":84.20099607,"test":[0.4951631135]}, -{"learn":[0.4931434401],"iteration":2621,"passed_time":92.80189034,"remaining_time":84.16586393,"test":[0.4951623088]}, -{"learn":[0.4931428143],"iteration":2622,"passed_time":92.83914821,"remaining_time":84.13215985,"test":[0.4951618618]}, -{"learn":[0.493141503],"iteration":2623,"passed_time":92.87788819,"remaining_time":84.0997951,"test":[0.4951610869]}, -{"learn":[0.4931401619],"iteration":2624,"passed_time":92.91299933,"remaining_time":84.06414226,"test":[0.4951602524]}, -{"learn":[0.4931383439],"iteration":2625,"passed_time":92.94855593,"remaining_time":84.02889253,"test":[0.4951586729]}, -{"learn":[0.4931361385],"iteration":2626,"passed_time":92.98369738,"remaining_time":83.99326756,"test":[0.4951570636]}, -{"learn":[0.4931353637],"iteration":2627,"passed_time":93.021097,"remaining_time":83.95968116,"test":[0.4951566762]}, -{"learn":[0.4931349763],"iteration":2628,"passed_time":93.05904885,"remaining_time":83.92658989,"test":[0.4951562887]}, -{"learn":[0.4931336948],"iteration":2629,"passed_time":93.09678118,"remaining_time":83.89329711,"test":[0.4951552754]}, -{"learn":[0.4931330391],"iteration":2630,"passed_time":93.13435748,"remaining_time":83.85986046,"test":[0.4951549774]}, -{"learn":[0.4931325623],"iteration":2631,"passed_time":93.17110814,"remaining_time":83.82567784,"test":[0.4951545602]}, -{"learn":[0.4931313106],"iteration":2632,"passed_time":93.20733162,"remaining_time":83.79101934,"test":[0.4951537257]}, -{"learn":[0.4931307741],"iteration":2633,"passed_time":93.2442149,"remaining_time":83.75695234,"test":[0.4951533979]}, -{"learn":[0.4931296714],"iteration":2634,"passed_time":93.27965683,"remaining_time":83.72158953,"test":[0.4951526826]}, -{"learn":[0.4931283303],"iteration":2635,"passed_time":93.31703953,"remaining_time":83.68796717,"test":[0.4951517588]}, -{"learn":[0.4931274065],"iteration":2636,"passed_time":93.3523186,"remaining_time":83.65245691,"test":[0.4951511627]}, -{"learn":[0.4931269594],"iteration":2637,"passed_time":93.3916999,"remaining_time":83.62061985,"test":[0.4951508051]}, -{"learn":[0.4931244858],"iteration":2638,"passed_time":93.42725886,"remaining_time":83.58535739,"test":[0.4951485699]}, -{"learn":[0.4931229063],"iteration":2639,"passed_time":93.46254845,"remaining_time":83.54985391,"test":[0.4951473182]}, -{"learn":[0.4931216546],"iteration":2640,"passed_time":93.49660355,"remaining_time":83.51324793,"test":[0.4951465136]}, -{"learn":[0.4931189426],"iteration":2641,"passed_time":93.53049479,"remaining_time":83.47649762,"test":[0.4951445764]}, -{"learn":[0.4931172737],"iteration":2642,"passed_time":93.56458689,"remaining_time":83.4399286,"test":[0.4951431757]}, -{"learn":[0.4931162306],"iteration":2643,"passed_time":93.60141842,"remaining_time":83.4058025,"test":[0.4951421624]}, -{"learn":[0.4931155749],"iteration":2644,"passed_time":93.63952104,"remaining_time":83.37280607,"test":[0.4951418048]}, -{"learn":[0.4931146213],"iteration":2645,"passed_time":93.67545148,"remaining_time":83.33787331,"test":[0.4951408511]}, -{"learn":[0.493111194],"iteration":2646,"passed_time":93.71093209,"remaining_time":83.30253993,"test":[0.4951379305]}, -{"learn":[0.4931103893],"iteration":2647,"passed_time":93.76354224,"remaining_time":83.28242121,"test":[0.4951375133]}, -{"learn":[0.493109078],"iteration":2648,"passed_time":93.8017781,"remaining_time":83.24952069,"test":[0.4951364702]}, -{"learn":[0.4931083926],"iteration":2649,"passed_time":93.84006278,"remaining_time":83.21665944,"test":[0.4951360529]}, -{"learn":[0.4931077071],"iteration":2650,"passed_time":93.87753133,"remaining_time":83.18307095,"test":[0.4951356357]}, -{"learn":[0.4931069621],"iteration":2651,"passed_time":93.9134131,"remaining_time":83.14807464,"test":[0.4951349801]}, -{"learn":[0.4931063958],"iteration":2652,"passed_time":93.95088295,"remaining_time":83.11448258,"test":[0.495134533]}, -{"learn":[0.4931058296],"iteration":2653,"passed_time":93.98883273,"remaining_time":83.08131183,"test":[0.4951340562]}, -{"learn":[0.4931052335],"iteration":2654,"passed_time":94.02683884,"remaining_time":83.04818722,"test":[0.4951336092]}, -{"learn":[0.4931042501],"iteration":2655,"passed_time":94.06385981,"remaining_time":83.01418953,"test":[0.4951328045]}, -{"learn":[0.4931024917],"iteration":2656,"passed_time":94.10061237,"remaining_time":82.97995287,"test":[0.495131672]}, -{"learn":[0.4931006142],"iteration":2657,"passed_time":94.13643485,"remaining_time":82.94489482,"test":[0.4951303011]}, -{"learn":[0.4930996009],"iteration":2658,"passed_time":94.171588,"remaining_time":82.9092469,"test":[0.4951296753]}, -{"learn":[0.493098826],"iteration":2659,"passed_time":94.20919752,"remaining_time":82.87576022,"test":[0.495129109]}, -{"learn":[0.4930971273],"iteration":2660,"passed_time":94.244314,"remaining_time":82.84007908,"test":[0.4951278275]}, -{"learn":[0.4930960544],"iteration":2661,"passed_time":94.28017638,"remaining_time":82.80505348,"test":[0.4951272911]}, -{"learn":[0.4930954286],"iteration":2662,"passed_time":94.3186164,"remaining_time":82.77228935,"test":[0.4951269036]}, -{"learn":[0.4930948325],"iteration":2663,"passed_time":94.35746963,"remaining_time":82.73988328,"test":[0.4951264268]}, -{"learn":[0.4930943259],"iteration":2664,"passed_time":94.39522085,"remaining_time":82.70650683,"test":[0.4951259202]}, -{"learn":[0.4930934914],"iteration":2665,"passed_time":94.43199979,"remaining_time":82.67227589,"test":[0.4951252645]}, -{"learn":[0.493092806],"iteration":2666,"passed_time":94.46756421,"remaining_time":82.63698061,"test":[0.4951246685]}, -{"learn":[0.4930914053],"iteration":2667,"passed_time":94.50442437,"remaining_time":82.6028177,"test":[0.4951237446]}, -{"learn":[0.4930905112],"iteration":2668,"passed_time":94.54248138,"remaining_time":82.56969805,"test":[0.4951229101]}, -{"learn":[0.4930850872],"iteration":2669,"passed_time":94.57646869,"remaining_time":82.53302324,"test":[0.4951186782]}, -{"learn":[0.4930839249],"iteration":2670,"passed_time":94.61130611,"remaining_time":82.4970917,"test":[0.4951180225]}, -{"learn":[0.4930827626],"iteration":2671,"passed_time":94.64686078,"remaining_time":82.46178589,"test":[0.4951172179]}, -{"learn":[0.4930790373],"iteration":2672,"passed_time":94.68142487,"remaining_time":82.42561753,"test":[0.4951143569]}, -{"learn":[0.4930776962],"iteration":2673,"passed_time":94.71772279,"remaining_time":82.39095857,"test":[0.4951137608]}, -{"learn":[0.4930771001],"iteration":2674,"passed_time":94.75638159,"remaining_time":82.35835036,"test":[0.4951133436]}, -{"learn":[0.4930759677],"iteration":2675,"passed_time":94.79340125,"remaining_time":82.32431409,"test":[0.4951123303]}, -{"learn":[0.4930746266],"iteration":2676,"passed_time":94.83007191,"remaining_time":82.28997275,"test":[0.4951118237]}, -{"learn":[0.4930734941],"iteration":2677,"passed_time":94.866452,"remaining_time":82.25537772,"test":[0.495111019]}, -{"learn":[0.4930726298],"iteration":2678,"passed_time":94.90240541,"remaining_time":82.2204117,"test":[0.4951102441]}, -{"learn":[0.4930712589],"iteration":2679,"passed_time":94.93859845,"remaining_time":82.18565239,"test":[0.495109052]}, -{"learn":[0.4930703648],"iteration":2680,"passed_time":94.97628079,"remaining_time":82.15218021,"test":[0.4951082176]}, -{"learn":[0.4930694112],"iteration":2681,"passed_time":95.01277082,"remaining_time":82.1176744,"test":[0.4951075917]}, -{"learn":[0.4930676826],"iteration":2682,"passed_time":95.04911373,"remaining_time":82.08304007,"test":[0.4951063102]}, -{"learn":[0.4930666991],"iteration":2683,"passed_time":95.08669308,"remaining_time":82.04947137,"test":[0.4951053566]}, -{"learn":[0.4930657157],"iteration":2684,"passed_time":95.12268555,"remaining_time":82.01453149,"test":[0.4951045221]}, -{"learn":[0.4930636593],"iteration":2685,"passed_time":95.15828027,"remaining_time":81.97924815,"test":[0.49510333]}, -{"learn":[0.4930630633],"iteration":2686,"passed_time":95.19750063,"remaining_time":81.94708558,"test":[0.4951029724]}, -{"learn":[0.4930624374],"iteration":2687,"passed_time":95.23570617,"remaining_time":81.91404489,"test":[0.4951024955]}, -{"learn":[0.4930589207],"iteration":2688,"passed_time":95.26997881,"remaining_time":81.87762031,"test":[0.4950997239]}, -{"learn":[0.4930576988],"iteration":2689,"passed_time":95.30700663,"remaining_time":81.84356332,"test":[0.4950987404]}, -{"learn":[0.4930559107],"iteration":2690,"passed_time":95.34210087,"remaining_time":81.807845,"test":[0.4950975484]}, -{"learn":[0.4930540332],"iteration":2691,"passed_time":95.3768343,"remaining_time":81.77181782,"test":[0.4950959688]}, -{"learn":[0.4930534371],"iteration":2692,"passed_time":95.41554723,"remaining_time":81.73920069,"test":[0.495095343]}, -{"learn":[0.4930523642],"iteration":2693,"passed_time":95.45128884,"remaining_time":81.70403566,"test":[0.4950945979]}, -{"learn":[0.4930517682],"iteration":2694,"passed_time":95.48987415,"remaining_time":81.67130238,"test":[0.4950941211]}, -{"learn":[0.493044854],"iteration":2695,"passed_time":95.52322346,"remaining_time":81.63409008,"test":[0.495088399]}, -{"learn":[0.493044109],"iteration":2696,"passed_time":95.56064759,"remaining_time":81.60036018,"test":[0.4950879222]}, -{"learn":[0.4930429169],"iteration":2697,"passed_time":95.59782389,"remaining_time":81.56641608,"test":[0.4950869983]}, -{"learn":[0.4930422612],"iteration":2698,"passed_time":95.63386949,"remaining_time":81.53150563,"test":[0.4950862831]}, -{"learn":[0.4930415758],"iteration":2699,"passed_time":95.67250912,"remaining_time":81.49880406,"test":[0.4950858658]}, -{"learn":[0.4930409499],"iteration":2700,"passed_time":95.70951592,"remaining_time":81.46470829,"test":[0.4950851506]}, -{"learn":[0.4930399069],"iteration":2701,"passed_time":95.74730486,"remaining_time":81.43127556,"test":[0.4950842863]}, -{"learn":[0.4930382975],"iteration":2702,"passed_time":95.78341135,"remaining_time":81.39640986,"test":[0.4950829154]}, -{"learn":[0.4930378207],"iteration":2703,"passed_time":95.82124815,"remaining_time":81.36301248,"test":[0.495082528]}, -{"learn":[0.4930366584],"iteration":2704,"passed_time":95.85727416,"remaining_time":81.32807549,"test":[0.4950816637]}, -{"learn":[0.4930357345],"iteration":2705,"passed_time":95.89434228,"remaining_time":81.29402113,"test":[0.4950809783]}, -{"learn":[0.4930351087],"iteration":2706,"passed_time":95.93211312,"remaining_time":81.2605598,"test":[0.495080561]}, -{"learn":[0.4930341252],"iteration":2707,"passed_time":95.96899426,"remaining_time":81.22634226,"test":[0.4950799948]}, -{"learn":[0.4930323371],"iteration":2708,"passed_time":96.00571776,"remaining_time":81.19198944,"test":[0.4950785941]}, -{"learn":[0.4930314132],"iteration":2709,"passed_time":96.04403235,"remaining_time":81.15897936,"test":[0.4950781768]}, -{"learn":[0.4930309364],"iteration":2710,"passed_time":96.08234479,"remaining_time":81.12596357,"test":[0.4950776404]}, -{"learn":[0.4930299827],"iteration":2711,"passed_time":96.11931696,"remaining_time":81.09181313,"test":[0.4950769251]}, -{"learn":[0.4930285522],"iteration":2712,"passed_time":96.15510155,"remaining_time":81.05665951,"test":[0.4950760311]}, -{"learn":[0.4930281051],"iteration":2713,"passed_time":96.19353426,"remaining_time":81.02373593,"test":[0.4950756436]}, -{"learn":[0.493026913],"iteration":2714,"passed_time":96.22965183,"remaining_time":80.98885983,"test":[0.4950747198]}, -{"learn":[0.493025721],"iteration":2715,"passed_time":96.26567212,"remaining_time":80.953901,"test":[0.4950741237]}, -{"learn":[0.4930245587],"iteration":2716,"passed_time":96.30221377,"remaining_time":80.91937948,"test":[0.4950733489]}, -{"learn":[0.4930237838],"iteration":2717,"passed_time":96.33790872,"remaining_time":80.88414559,"test":[0.4950729018]}, -{"learn":[0.4930232176],"iteration":2718,"passed_time":96.37452861,"remaining_time":80.84968729,"test":[0.4950720972]}, -{"learn":[0.4930221447],"iteration":2719,"passed_time":96.40990223,"remaining_time":80.81418275,"test":[0.4950712329]}, -{"learn":[0.4930203565],"iteration":2720,"passed_time":96.44504754,"remaining_time":80.77848708,"test":[0.4950698918]}, -{"learn":[0.4930188366],"iteration":2721,"passed_time":96.48210663,"remaining_time":80.74439343,"test":[0.4950689679]}, -{"learn":[0.4930176147],"iteration":2722,"passed_time":96.51890207,"remaining_time":80.71007712,"test":[0.4950679547]}, -{"learn":[0.4930166014],"iteration":2723,"passed_time":96.55535945,"remaining_time":80.67547655,"test":[0.495067299]}, -{"learn":[0.4930155882],"iteration":2724,"passed_time":96.59159683,"remaining_time":80.64069093,"test":[0.4950664943]}, -{"learn":[0.4930149027],"iteration":2725,"passed_time":96.62962943,"remaining_time":80.60740181,"test":[0.4950661367]}, -{"learn":[0.4930139192],"iteration":2726,"passed_time":96.66660297,"remaining_time":80.57322646,"test":[0.4950653917]}, -{"learn":[0.4930131444],"iteration":2727,"passed_time":96.70486968,"remaining_time":80.54012607,"test":[0.495064885]}, -{"learn":[0.4930120417],"iteration":2728,"passed_time":96.74137442,"remaining_time":80.50555563,"test":[0.4950640505]}, -{"learn":[0.493011237],"iteration":2729,"passed_time":96.77760954,"remaining_time":80.47075958,"test":[0.4950634545]}, -{"learn":[0.4930101045],"iteration":2730,"passed_time":96.81830341,"remaining_time":80.43966695,"test":[0.4950625604]}, -{"learn":[0.493008972],"iteration":2731,"passed_time":96.85650497,"remaining_time":80.40649827,"test":[0.4950619346]}, -{"learn":[0.4930079588],"iteration":2732,"passed_time":96.89270155,"remaining_time":80.37166279,"test":[0.4950611895]}, -{"learn":[0.4930067369],"iteration":2733,"passed_time":96.92911652,"remaining_time":80.33700733,"test":[0.4950603551]}, -{"learn":[0.4930055746],"iteration":2734,"passed_time":96.9651909,"remaining_time":80.30206852,"test":[0.4950594312]}, -{"learn":[0.4930040845],"iteration":2735,"passed_time":96.99997023,"remaining_time":80.26605724,"test":[0.4950582689]}, -{"learn":[0.4930030414],"iteration":2736,"passed_time":97.03665014,"remaining_time":80.23161829,"test":[0.4950575536]}, -{"learn":[0.4930017599],"iteration":2737,"passed_time":97.07251162,"remaining_time":80.19650156,"test":[0.495056749]}, -{"learn":[0.4930009254],"iteration":2738,"passed_time":97.10812723,"remaining_time":80.16118133,"test":[0.4950561231]}, -{"learn":[0.4930002996],"iteration":2739,"passed_time":97.14582583,"remaining_time":80.12757897,"test":[0.4950556463]}, -{"learn":[0.4929994651],"iteration":2740,"passed_time":97.18244832,"remaining_time":80.09308674,"test":[0.4950549608]}, -{"learn":[0.4929988691],"iteration":2741,"passed_time":97.22081694,"remaining_time":80.06003087,"test":[0.4950546032]}, -{"learn":[0.4929978558],"iteration":2742,"passed_time":97.25712527,"remaining_time":80.02527588,"test":[0.4950538284]}, -{"learn":[0.4929972597],"iteration":2743,"passed_time":97.29560679,"remaining_time":79.99230646,"test":[0.4950532621]}, -{"learn":[0.4929965743],"iteration":2744,"passed_time":97.33358911,"remaining_time":79.95892293,"test":[0.4950529045]}, -{"learn":[0.4929956206],"iteration":2745,"passed_time":97.37006508,"remaining_time":79.9242996,"test":[0.4950521594]}, -{"learn":[0.4929948457],"iteration":2746,"passed_time":97.40738365,"remaining_time":79.89036598,"test":[0.4950515634]}, -{"learn":[0.4929936239],"iteration":2747,"passed_time":97.44394967,"remaining_time":79.85581319,"test":[0.4950508481]}, -{"learn":[0.4929925808],"iteration":2748,"passed_time":97.48061528,"remaining_time":79.82134049,"test":[0.4950499541]}, -{"learn":[0.4929921039],"iteration":2749,"passed_time":97.51889555,"remaining_time":79.78818727,"test":[0.4950494474]}, -{"learn":[0.4929915675],"iteration":2750,"passed_time":97.55729212,"remaining_time":79.7551254,"test":[0.4950490302]}, -{"learn":[0.4929905244],"iteration":2751,"passed_time":97.59285555,"remaining_time":79.71974538,"test":[0.4950484937]}, -{"learn":[0.4929893323],"iteration":2752,"passed_time":97.62889629,"remaining_time":79.6847548,"test":[0.4950478381]}, -{"learn":[0.4929887661],"iteration":2753,"passed_time":97.66722179,"remaining_time":79.65162677,"test":[0.4950473314]}, -{"learn":[0.4929875442],"iteration":2754,"passed_time":97.70427117,"remaining_time":79.61745509,"test":[0.4950465864]}, -{"learn":[0.4929861137],"iteration":2755,"passed_time":97.74030665,"remaining_time":79.58245578,"test":[0.4950452453]}, -{"learn":[0.4929856666],"iteration":2756,"passed_time":97.77954577,"remaining_time":79.55006208,"test":[0.495044679]}, -{"learn":[0.4929850408],"iteration":2757,"passed_time":97.82200702,"remaining_time":79.52028272,"test":[0.4950443512]}, -{"learn":[0.4929839977],"iteration":2758,"passed_time":97.85960117,"remaining_time":79.48654086,"test":[0.4950436658]}, -{"learn":[0.4929832228],"iteration":2759,"passed_time":97.89739451,"remaining_time":79.45295787,"test":[0.4950432187]}, -{"learn":[0.4929826566],"iteration":2760,"passed_time":97.94309193,"remaining_time":79.42578154,"test":[0.4950427121]}, -{"learn":[0.4929816135],"iteration":2761,"passed_time":97.98006547,"remaining_time":79.391523,"test":[0.495041967]}, -{"learn":[0.4929805108],"iteration":2762,"passed_time":98.01572648,"remaining_time":79.35619983,"test":[0.4950411624]}, -{"learn":[0.4929796168],"iteration":2763,"passed_time":98.0516987,"remaining_time":79.32112818,"test":[0.4950406557]}, -{"learn":[0.4929786631],"iteration":2764,"passed_time":98.08688687,"remaining_time":79.28542212,"test":[0.4950397319]}, -{"learn":[0.4929770836],"iteration":2765,"passed_time":98.121442,"remaining_time":79.24920514,"test":[0.4950386888]}, -{"learn":[0.4929764279],"iteration":2766,"passed_time":98.15862851,"remaining_time":79.21511292,"test":[0.4950381225]}, -{"learn":[0.4929754444],"iteration":2767,"passed_time":98.19492957,"remaining_time":79.18030448,"test":[0.4950373775]}, -{"learn":[0.4929742821],"iteration":2768,"passed_time":98.23255231,"remaining_time":79.14655984,"test":[0.4950366324]}, -{"learn":[0.4929733583],"iteration":2769,"passed_time":98.27075688,"remaining_time":79.11328081,"test":[0.4950359172]}, -{"learn":[0.492972345],"iteration":2770,"passed_time":98.30835277,"remaining_time":79.0795086,"test":[0.4950353509]}, -{"learn":[0.4929710635],"iteration":2771,"passed_time":98.34504432,"remaining_time":79.04500676,"test":[0.4950342184]}, -{"learn":[0.492967517],"iteration":2772,"passed_time":98.38024779,"remaining_time":79.00930827,"test":[0.495031566]}, -{"learn":[0.4929665335],"iteration":2773,"passed_time":98.41640442,"remaining_time":78.974375,"test":[0.4950309104]}, -{"learn":[0.4929652818],"iteration":2774,"passed_time":98.45276164,"remaining_time":78.93960168,"test":[0.4950300461]}, -{"learn":[0.492964507],"iteration":2775,"passed_time":98.49070775,"remaining_time":78.90610015,"test":[0.495029301]}, -{"learn":[0.4929634937],"iteration":2776,"passed_time":98.52725103,"remaining_time":78.87147247,"test":[0.4950283772]}, -{"learn":[0.4929628381],"iteration":2777,"passed_time":98.56508653,"remaining_time":78.83787699,"test":[0.4950279599]}, -{"learn":[0.4929623016],"iteration":2778,"passed_time":98.60280937,"remaining_time":78.80418841,"test":[0.4950276321]}, -{"learn":[0.4929611691],"iteration":2779,"passed_time":98.63916652,"remaining_time":78.76940636,"test":[0.4950269765]}, -{"learn":[0.4929606625],"iteration":2780,"passed_time":98.67691795,"remaining_time":78.73573568,"test":[0.4950266784]}, -{"learn":[0.4929590234],"iteration":2781,"passed_time":98.71313045,"remaining_time":78.70083513,"test":[0.4950252181]}, -{"learn":[0.4929583379],"iteration":2782,"passed_time":98.75097915,"remaining_time":78.66723707,"test":[0.4950246519]}, -{"learn":[0.4929577419],"iteration":2783,"passed_time":98.7876115,"remaining_time":78.63266778,"test":[0.4950239962]}, -{"learn":[0.4929557153],"iteration":2784,"passed_time":98.82503755,"remaining_time":78.59872825,"test":[0.4950226849]}, -{"learn":[0.4929549106],"iteration":2785,"passed_time":98.8623134,"remaining_time":78.56466686,"test":[0.4950220293]}, -{"learn":[0.4929544338],"iteration":2786,"passed_time":98.90010653,"remaining_time":78.5310139,"test":[0.4950215822]}, -{"learn":[0.4929517516],"iteration":2787,"passed_time":98.93521036,"remaining_time":78.49522429,"test":[0.4950194067]}, -{"learn":[0.4929511257],"iteration":2788,"passed_time":98.97359819,"remaining_time":78.46203858,"test":[0.4950190192]}, -{"learn":[0.4929502913],"iteration":2789,"passed_time":99.01132902,"remaining_time":78.42832872,"test":[0.4950183636]}, -{"learn":[0.492949725],"iteration":2790,"passed_time":99.04972762,"remaining_time":78.3951445,"test":[0.4950181252]}, -{"learn":[0.4929483541],"iteration":2791,"passed_time":99.08721483,"remaining_time":78.36123579,"test":[0.4950172311]}, -{"learn":[0.4929472812],"iteration":2792,"passed_time":99.12395143,"remaining_time":78.3267314,"test":[0.4950163966]}, -{"learn":[0.492946566],"iteration":2793,"passed_time":99.1610149,"remaining_time":78.29248349,"test":[0.4950159496]}, -{"learn":[0.4929454633],"iteration":2794,"passed_time":99.1969394,"remaining_time":78.25733502,"test":[0.4950152343]}, -{"learn":[0.4929445692],"iteration":2795,"passed_time":99.23285799,"remaining_time":78.22218134,"test":[0.4950146383]}, -{"learn":[0.4929437348],"iteration":2796,"passed_time":99.26935831,"remaining_time":78.18748529,"test":[0.4950137144]}, -{"learn":[0.4929426917],"iteration":2797,"passed_time":99.30551316,"remaining_time":78.15251607,"test":[0.4950132972]}, -{"learn":[0.4929421254],"iteration":2798,"passed_time":99.34357489,"remaining_time":78.1190455,"test":[0.4950128204]}, -{"learn":[0.492940993],"iteration":2799,"passed_time":99.38136113,"remaining_time":78.08535517,"test":[0.4950118369]}, -{"learn":[0.4929405161],"iteration":2800,"passed_time":99.41931681,"remaining_time":78.05179495,"test":[0.4950114197]}, -{"learn":[0.4929400393],"iteration":2801,"passed_time":99.45835244,"remaining_time":78.01907875,"test":[0.495011062]}, -{"learn":[0.492939175],"iteration":2802,"passed_time":99.49536207,"remaining_time":77.98477005,"test":[0.4950104362]}, -{"learn":[0.4929369994],"iteration":2803,"passed_time":99.53125444,"remaining_time":77.94958443,"test":[0.495008648]}, -{"learn":[0.4929358968],"iteration":2804,"passed_time":99.56677756,"remaining_time":77.91410935,"test":[0.4950079328]}, -{"learn":[0.4929351517],"iteration":2805,"passed_time":99.60628012,"remaining_time":77.88174575,"test":[0.4950074857]}, -{"learn":[0.4929340192],"iteration":2806,"passed_time":99.64318255,"remaining_time":77.84734569,"test":[0.4950068003]}, -{"learn":[0.4929332742],"iteration":2807,"passed_time":99.67968914,"remaining_time":77.81263483,"test":[0.4950061744]}, -{"learn":[0.4929327079],"iteration":2808,"passed_time":99.71794871,"remaining_time":77.77929001,"test":[0.4950056082]}, -{"learn":[0.4929321715],"iteration":2809,"passed_time":99.75637979,"remaining_time":77.74607535,"test":[0.4950050122]}, -{"learn":[0.4929315456],"iteration":2810,"passed_time":99.79386196,"remaining_time":77.71211804,"test":[0.4950043863]}, -{"learn":[0.4929308602],"iteration":2811,"passed_time":99.83222188,"remaining_time":77.67884121,"test":[0.4950040585]}, -{"learn":[0.4929301449],"iteration":2812,"passed_time":99.87075385,"remaining_time":77.64569451,"test":[0.4950036114]}, -{"learn":[0.4929260918],"iteration":2813,"passed_time":99.90641446,"remaining_time":77.61031344,"test":[0.4950008994]}, -{"learn":[0.4929247805],"iteration":2814,"passed_time":99.94243158,"remaining_time":77.57520889,"test":[0.4950003034]}, -{"learn":[0.4929240354],"iteration":2815,"passed_time":99.97855645,"remaining_time":77.54018725,"test":[0.4949995285]}, -{"learn":[0.492923052],"iteration":2816,"passed_time":100.0156642,"remaining_time":77.50592648,"test":[0.4949988729]}, -{"learn":[0.4929220685],"iteration":2817,"passed_time":100.0528959,"remaining_time":77.47175972,"test":[0.4949980384]}, -{"learn":[0.4929214426],"iteration":2818,"passed_time":100.0907882,"remaining_time":77.43810181,"test":[0.4949976212]}, -{"learn":[0.4929199227],"iteration":2819,"passed_time":100.1253261,"remaining_time":77.40184785,"test":[0.4949960119]}, -{"learn":[0.4929190585],"iteration":2820,"passed_time":100.1623099,"remaining_time":77.36748431,"test":[0.4949952966]}, -{"learn":[0.4929184326],"iteration":2821,"passed_time":100.1999787,"remaining_time":77.33364764,"test":[0.49499479]}, -{"learn":[0.4929173895],"iteration":2822,"passed_time":100.2368517,"remaining_time":77.29919451,"test":[0.4949941939]}, -{"learn":[0.4929164657],"iteration":2823,"passed_time":100.2733644,"remaining_time":77.26446211,"test":[0.4949933296]}, -{"learn":[0.492915661],"iteration":2824,"passed_time":100.3110265,"remaining_time":77.23061333,"test":[0.494992674]}, -{"learn":[0.4929151842],"iteration":2825,"passed_time":100.3486619,"remaining_time":77.19674133,"test":[0.4949922866]}, -{"learn":[0.4929143795],"iteration":2826,"passed_time":100.3859002,"remaining_time":77.16256139,"test":[0.4949915713]}, -{"learn":[0.492913098],"iteration":2827,"passed_time":100.4226162,"remaining_time":77.12797821,"test":[0.4949907964]}, -{"learn":[0.4929095515],"iteration":2828,"passed_time":100.4585426,"remaining_time":77.09278756,"test":[0.4949879652]}, -{"learn":[0.4929086276],"iteration":2829,"passed_time":100.4956654,"remaining_time":77.05851375,"test":[0.49498725]}, -{"learn":[0.4929077038],"iteration":2830,"passed_time":100.5328871,"remaining_time":77.02431369,"test":[0.4949868029]}, -{"learn":[0.4929066011],"iteration":2831,"passed_time":100.5688207,"remaining_time":76.98912549,"test":[0.4949862963]}, -{"learn":[0.4929057368],"iteration":2832,"passed_time":100.6053767,"remaining_time":76.95441275,"test":[0.4949856108]}, -{"learn":[0.4929051706],"iteration":2833,"passed_time":100.6439001,"remaining_time":76.92120237,"test":[0.4949851936]}, -{"learn":[0.4929046341],"iteration":2834,"passed_time":100.6824876,"remaining_time":76.88803724,"test":[0.494984836]}, -{"learn":[0.4929038295],"iteration":2835,"passed_time":100.7191329,"remaining_time":76.85338629,"test":[0.4949841505]}, -{"learn":[0.4929031142],"iteration":2836,"passed_time":100.7562102,"remaining_time":76.8190633,"test":[0.4949835247]}, -{"learn":[0.4929026076],"iteration":2837,"passed_time":100.7936567,"remaining_time":76.78501967,"test":[0.4949829882]}, -{"learn":[0.4929015645],"iteration":2838,"passed_time":100.8297676,"remaining_time":76.74995697,"test":[0.4949823624]}, -{"learn":[0.4929003128],"iteration":2839,"passed_time":100.867068,"remaining_time":76.71579822,"test":[0.4949814087]}, -{"learn":[0.4928997764],"iteration":2840,"passed_time":100.9056221,"remaining_time":76.68259,"test":[0.4949810213]}, -{"learn":[0.4928989717],"iteration":2841,"passed_time":100.9424582,"remaining_time":76.64807345,"test":[0.4949803954]}, -{"learn":[0.49289772],"iteration":2842,"passed_time":100.9790902,"remaining_time":76.61340048,"test":[0.4949795312]}, -{"learn":[0.4928968557],"iteration":2843,"passed_time":101.0163824,"remaining_time":76.57922657,"test":[0.4949786371]}, -{"learn":[0.4928958126],"iteration":2844,"passed_time":101.0539795,"remaining_time":76.5452815,"test":[0.4949778026]}, -{"learn":[0.4928947398],"iteration":2845,"passed_time":101.0894471,"remaining_time":76.50972208,"test":[0.4949772066]}, -{"learn":[0.4928929218],"iteration":2846,"passed_time":101.1255752,"remaining_time":76.47466223,"test":[0.4949759847]}, -{"learn":[0.4928922066],"iteration":2847,"passed_time":101.1645313,"remaining_time":76.44173856,"test":[0.4949755675]}, -{"learn":[0.4928911933],"iteration":2848,"passed_time":101.2010679,"remaining_time":76.40698391,"test":[0.4949749416]}, -{"learn":[0.492890031],"iteration":2849,"passed_time":101.2369077,"remaining_time":76.37170226,"test":[0.4949743158]}, -{"learn":[0.4928888687],"iteration":2850,"passed_time":101.2719874,"remaining_time":76.33584742,"test":[0.4949736601]}, -{"learn":[0.4928877064],"iteration":2851,"passed_time":101.3086304,"remaining_time":76.30117044,"test":[0.4949730641]}, -{"learn":[0.4928873488],"iteration":2852,"passed_time":101.3465457,"remaining_time":76.26744954,"test":[0.4949725276]}, -{"learn":[0.4928867527],"iteration":2853,"passed_time":101.3848189,"remaining_time":76.23399487,"test":[0.4949721998]}, -{"learn":[0.4928859183],"iteration":2854,"passed_time":101.422286,"remaining_time":76.19993116,"test":[0.4949714547]}, -{"learn":[0.4928848454],"iteration":2855,"passed_time":101.4578468,"remaining_time":76.16443401,"test":[0.4949708289]}, -{"learn":[0.4928839811],"iteration":2856,"passed_time":101.4928692,"remaining_time":76.12853296,"test":[0.4949701732]}, -{"learn":[0.492882938],"iteration":2857,"passed_time":101.5283795,"remaining_time":76.09299818,"test":[0.4949695474]}, -{"learn":[0.492882342],"iteration":2858,"passed_time":101.5664993,"remaining_time":76.05941761,"test":[0.4949691302]}, -{"learn":[0.4928814479],"iteration":2859,"passed_time":101.603727,"remaining_time":76.02516632,"test":[0.4949682659]}, -{"learn":[0.4928806433],"iteration":2860,"passed_time":101.640152,"remaining_time":75.99031288,"test":[0.4949675804]}, -{"learn":[0.4928790339],"iteration":2861,"passed_time":101.675886,"remaining_time":75.95494207,"test":[0.4949663883]}, -{"learn":[0.4928785571],"iteration":2862,"passed_time":101.7134079,"remaining_time":75.9209056,"test":[0.4949660009]}, -{"learn":[0.492877663],"iteration":2863,"passed_time":101.7505838,"remaining_time":75.88660856,"test":[0.494965077]}, -{"learn":[0.4928770372],"iteration":2864,"passed_time":101.7893921,"remaining_time":75.85352604,"test":[0.4949648386]}, -{"learn":[0.4928765007],"iteration":2865,"passed_time":101.8286717,"remaining_time":75.82079041,"test":[0.4949643916]}, -{"learn":[0.4928758451],"iteration":2866,"passed_time":101.8677535,"remaining_time":75.78790311,"test":[0.4949639446]}, -{"learn":[0.4928748914],"iteration":2867,"passed_time":101.905103,"remaining_time":75.75372372,"test":[0.4949632591]}, -{"learn":[0.4928733417],"iteration":2868,"passed_time":101.9402826,"remaining_time":75.71793037,"test":[0.4949620372]}, -{"learn":[0.4928726562],"iteration":2869,"passed_time":101.9782526,"remaining_time":75.68420838,"test":[0.4949613816]}, -{"learn":[0.4928711661],"iteration":2870,"passed_time":102.0145988,"remaining_time":75.64927932,"test":[0.4949604577]}, -{"learn":[0.4928702125],"iteration":2871,"passed_time":102.0518318,"remaining_time":75.61500632,"test":[0.4949597722]}, -{"learn":[0.4928694674],"iteration":2872,"passed_time":102.0897351,"remaining_time":75.58122748,"test":[0.494959355]}, -{"learn":[0.4928688415],"iteration":2873,"passed_time":102.1271444,"remaining_time":75.54708039,"test":[0.4949589974]}, -{"learn":[0.4928676793],"iteration":2874,"passed_time":102.1627398,"remaining_time":75.51159031,"test":[0.4949583715]}, -{"learn":[0.4928665468],"iteration":2875,"passed_time":102.198772,"remaining_time":75.47642272,"test":[0.4949574477]}, -{"learn":[0.4928653547],"iteration":2876,"passed_time":102.2350967,"remaining_time":75.44147035,"test":[0.4949565238]}, -{"learn":[0.49286154],"iteration":2877,"passed_time":102.269112,"remaining_time":75.40481434,"test":[0.4949536628]}, -{"learn":[0.4928603777],"iteration":2878,"passed_time":102.3058576,"remaining_time":75.37017155,"test":[0.4949528283]}, -{"learn":[0.4928581127],"iteration":2879,"passed_time":102.3407561,"remaining_time":75.33416768,"test":[0.4949508613]}, -{"learn":[0.4928572782],"iteration":2880,"passed_time":102.3778377,"remaining_time":75.29977026,"test":[0.4949501163]}, -{"learn":[0.4928563842],"iteration":2881,"passed_time":102.4148679,"remaining_time":75.26533316,"test":[0.4949494308]}, -{"learn":[0.492854596],"iteration":2882,"passed_time":102.4500985,"remaining_time":75.22957285,"test":[0.4949480301]}, -{"learn":[0.4928534039],"iteration":2883,"passed_time":102.4875047,"remaining_time":75.19540916,"test":[0.4949473447]}, -{"learn":[0.4928514966],"iteration":2884,"passed_time":102.5220393,"remaining_time":75.15913799,"test":[0.494945944]}, -{"learn":[0.4928508707],"iteration":2885,"passed_time":102.5586831,"remaining_time":75.12441307,"test":[0.4949452585]}, -{"learn":[0.4928496787],"iteration":2886,"passed_time":102.5935596,"remaining_time":75.0883933,"test":[0.4949445134]}, -{"learn":[0.4928480991],"iteration":2887,"passed_time":102.6292272,"remaining_time":75.05295285,"test":[0.4949434108]}, -{"learn":[0.4928462514],"iteration":2888,"passed_time":102.6639485,"remaining_time":75.01682078,"test":[0.494941712]}, -{"learn":[0.4928454765],"iteration":2889,"passed_time":102.7015999,"remaining_time":74.98282902,"test":[0.4949412948]}, -{"learn":[0.4928444931],"iteration":2890,"passed_time":102.7382373,"remaining_time":74.94809497,"test":[0.4949405497]}, -{"learn":[0.4928438672],"iteration":2891,"passed_time":102.7757845,"remaining_time":74.91402275,"test":[0.4949402219]}, -{"learn":[0.4928423771],"iteration":2892,"passed_time":102.8110882,"remaining_time":74.87831416,"test":[0.4949397451]}, -{"learn":[0.4928420195],"iteration":2893,"passed_time":102.8489549,"remaining_time":74.84447099,"test":[0.4949392682]}, -{"learn":[0.4928415724],"iteration":2894,"passed_time":102.8873372,"remaining_time":74.8109999,"test":[0.4949389106]}, -{"learn":[0.492840738],"iteration":2895,"passed_time":102.9245987,"remaining_time":74.77671118,"test":[0.4949382848]}, -{"learn":[0.4928396949],"iteration":2896,"passed_time":102.960542,"remaining_time":74.74146356,"test":[0.4949376291]}, -{"learn":[0.4928387412],"iteration":2897,"passed_time":102.9969203,"remaining_time":74.7065309,"test":[0.4949368543]}, -{"learn":[0.4928379365],"iteration":2898,"passed_time":103.0325983,"remaining_time":74.6710897,"test":[0.4949359304]}, -{"learn":[0.4928372809],"iteration":2899,"passed_time":103.0704897,"remaining_time":74.6372512,"test":[0.4949355728]}, -{"learn":[0.4928359398],"iteration":2900,"passed_time":103.1073872,"remaining_time":74.60269072,"test":[0.4949347681]}, -{"learn":[0.4928351351],"iteration":2901,"passed_time":103.1450533,"remaining_time":74.5686843,"test":[0.4949341422]}, -{"learn":[0.4928344795],"iteration":2902,"passed_time":103.1821854,"remaining_time":74.53428963,"test":[0.4949337548]}, -{"learn":[0.492833496],"iteration":2903,"passed_time":103.2192176,"remaining_time":74.49982095,"test":[0.4949330098]}, -{"learn":[0.4928330192],"iteration":2904,"passed_time":103.2569886,"remaining_time":74.46588332,"test":[0.4949324137]}, -{"learn":[0.4928322741],"iteration":2905,"passed_time":103.2939996,"remaining_time":74.43139542,"test":[0.4949319667]}, -{"learn":[0.4928313502],"iteration":2906,"passed_time":103.3304369,"remaining_time":74.39649278,"test":[0.4949310428]}, -{"learn":[0.4928302177],"iteration":2907,"passed_time":103.3674006,"remaining_time":74.36196772,"test":[0.4949304169]}, -{"learn":[0.4928298303],"iteration":2908,"passed_time":103.4052662,"remaining_time":74.32808922,"test":[0.4949299997]}, -{"learn":[0.4928293237],"iteration":2909,"passed_time":103.4423778,"remaining_time":74.2936665,"test":[0.4949294931]}, -{"learn":[0.492828072],"iteration":2910,"passed_time":103.4776771,"remaining_time":74.25794139,"test":[0.4949286288]}, -{"learn":[0.4928267309],"iteration":2911,"passed_time":103.5134503,"remaining_time":74.22255637,"test":[0.4949280626]}, -{"learn":[0.4928256282],"iteration":2912,"passed_time":103.5502084,"remaining_time":74.18787673,"test":[0.4949272877]}, -{"learn":[0.4928245255],"iteration":2913,"passed_time":103.5881664,"remaining_time":74.15405458,"test":[0.4949267215]}, -{"learn":[0.4928240785],"iteration":2914,"passed_time":103.6260546,"remaining_time":74.1201797,"test":[0.4949263042]}, -{"learn":[0.4928223797],"iteration":2915,"passed_time":103.6618095,"remaining_time":74.08477742,"test":[0.4949252313]}, -{"learn":[0.4928214559],"iteration":2916,"passed_time":103.6995763,"remaining_time":74.05081162,"test":[0.4949245757]}, -{"learn":[0.4928205916],"iteration":2917,"passed_time":103.7373613,"remaining_time":74.01685612,"test":[0.4949239796]}, -{"learn":[0.4928195485],"iteration":2918,"passed_time":103.774292,"remaining_time":73.98228905,"test":[0.4949232942]}, -{"learn":[0.4928186842],"iteration":2919,"passed_time":103.8105091,"remaining_time":73.94721195,"test":[0.4949226981]}, -{"learn":[0.4928177902],"iteration":2920,"passed_time":103.8479626,"remaining_time":73.91301415,"test":[0.4949220127]}, -{"learn":[0.4928171643],"iteration":2921,"passed_time":103.8859919,"remaining_time":73.87922352,"test":[0.4949215657]}, -{"learn":[0.4928165385],"iteration":2922,"passed_time":103.923435,"remaining_time":73.84501352,"test":[0.4949212378]}, -{"learn":[0.4928159722],"iteration":2923,"passed_time":103.9613289,"remaining_time":73.81112137,"test":[0.4949208206]}, -{"learn":[0.4928149888],"iteration":2924,"passed_time":103.9977455,"remaining_time":73.77617842,"test":[0.4949203438]}, -{"learn":[0.4928141543],"iteration":2925,"passed_time":104.0335997,"remaining_time":73.7408359,"test":[0.4949195689]}, -{"learn":[0.4928132602],"iteration":2926,"passed_time":104.0708415,"remaining_time":73.70647571,"test":[0.494918794]}, -{"learn":[0.492811025],"iteration":2927,"passed_time":104.106247,"remaining_time":73.67081411,"test":[0.4949168867]}, -{"learn":[0.4928095647],"iteration":2928,"passed_time":104.1420955,"remaining_time":73.63546597,"test":[0.494915933]}, -{"learn":[0.4928087005],"iteration":2929,"passed_time":104.1789239,"remaining_time":73.60080971,"test":[0.494915337]}, -{"learn":[0.4928072402],"iteration":2930,"passed_time":104.2134946,"remaining_time":73.56455831,"test":[0.4949140555]}, -{"learn":[0.4928064355],"iteration":2931,"passed_time":104.2498733,"remaining_time":73.52958322,"test":[0.49491337]}, -{"learn":[0.4928054222],"iteration":2932,"passed_time":104.2869219,"remaining_time":73.49507928,"test":[0.4949125654]}, -{"learn":[0.4928043791],"iteration":2933,"passed_time":104.3250002,"remaining_time":73.4612987,"test":[0.4949117905]}, -{"learn":[0.4928022334],"iteration":2934,"passed_time":104.3612738,"remaining_time":73.42624542,"test":[0.4949104196]}, -{"learn":[0.4928010711],"iteration":2935,"passed_time":104.3984252,"remaining_time":73.39180844,"test":[0.4949096745]}, -{"learn":[0.4928004452],"iteration":2936,"passed_time":104.4364125,"remaining_time":73.35795676,"test":[0.4949092871]}, -{"learn":[0.4927993127],"iteration":2937,"passed_time":104.4737993,"remaining_time":73.32368082,"test":[0.4949084824]}, -{"learn":[0.4927983293],"iteration":2938,"passed_time":104.5087934,"remaining_time":73.28772483,"test":[0.4949078268]}, -{"learn":[0.4927976438],"iteration":2939,"passed_time":104.5469743,"remaining_time":73.25400238,"test":[0.494907499]}, -{"learn":[0.4927966901],"iteration":2940,"passed_time":104.5845855,"remaining_time":73.2198781,"test":[0.4949066645]}, -{"learn":[0.4927957961],"iteration":2941,"passed_time":104.6211839,"remaining_time":73.18504298,"test":[0.49490583]}, -{"learn":[0.4927937099],"iteration":2942,"passed_time":104.6574345,"remaining_time":73.14996355,"test":[0.4949043399]}, -{"learn":[0.4927932629],"iteration":2943,"passed_time":104.6962916,"remaining_time":73.11670363,"test":[0.4949039525]}, -{"learn":[0.492792041],"iteration":2944,"passed_time":104.7322523,"remaining_time":73.08141884,"test":[0.4949033862]}, -{"learn":[0.492790074],"iteration":2945,"passed_time":104.7658192,"remaining_time":73.04446459,"test":[0.494902224]}, -{"learn":[0.4927897462],"iteration":2946,"passed_time":104.8037044,"remaining_time":73.01052095,"test":[0.4949018365]}, -{"learn":[0.4927887031],"iteration":2947,"passed_time":104.8408352,"remaining_time":72.97604946,"test":[0.4949010319]}, -{"learn":[0.4927874514],"iteration":2948,"passed_time":104.8770017,"remaining_time":72.94090554,"test":[0.4949002272]}, -{"learn":[0.4927863487],"iteration":2949,"passed_time":104.9143302,"remaining_time":72.90656845,"test":[0.4948994523]}, -{"learn":[0.4927847394],"iteration":2950,"passed_time":104.9508218,"remaining_time":72.87164824,"test":[0.4948981708]}, -{"learn":[0.4927839049],"iteration":2951,"passed_time":104.9875593,"remaining_time":72.83689751,"test":[0.494897396]}, -{"learn":[0.4927831003],"iteration":2952,"passed_time":105.0239055,"remaining_time":72.80187419,"test":[0.4948967999]}, -{"learn":[0.492782683],"iteration":2953,"passed_time":105.063499,"remaining_time":72.76909915,"test":[0.4948964721]}, -{"learn":[0.4927816102],"iteration":2954,"passed_time":105.0999491,"remaining_time":72.73414413,"test":[0.4948956376]}, -{"learn":[0.4927811035],"iteration":2955,"passed_time":105.1371901,"remaining_time":72.69973493,"test":[0.4948953396]}, -{"learn":[0.4927801796],"iteration":2956,"passed_time":105.1733036,"remaining_time":72.66454493,"test":[0.4948946244]}, -{"learn":[0.4927793452],"iteration":2957,"passed_time":105.2106901,"remaining_time":72.63023301,"test":[0.4948939091]}, -{"learn":[0.4927786299],"iteration":2958,"passed_time":105.2478,"remaining_time":72.59572824,"test":[0.4948933131]}, -{"learn":[0.4927761563],"iteration":2959,"passed_time":105.2808394,"remaining_time":72.55841634,"test":[0.4948920912]}, -{"learn":[0.4927737721],"iteration":2960,"passed_time":105.3160307,"remaining_time":72.5225892,"test":[0.4948908991]}, -{"learn":[0.4927732357],"iteration":2961,"passed_time":105.3542069,"remaining_time":72.48881621,"test":[0.4948905116]}, -{"learn":[0.4927724906],"iteration":2962,"passed_time":105.3902692,"remaining_time":72.45358704,"test":[0.494889856]}, -{"learn":[0.4927719244],"iteration":2963,"passed_time":105.4278116,"remaining_time":72.41937393,"test":[0.4948894686]}, -{"learn":[0.4927708217],"iteration":2964,"passed_time":105.4644986,"remaining_time":72.38457154,"test":[0.4948888725]}, -{"learn":[0.4927679607],"iteration":2965,"passed_time":105.5000165,"remaining_time":72.34896616,"test":[0.4948862499]}, -{"learn":[0.4927673646],"iteration":2966,"passed_time":105.5382601,"remaining_time":72.31522845,"test":[0.4948859519]}, -{"learn":[0.4927666196],"iteration":2967,"passed_time":105.5740408,"remaining_time":72.27980153,"test":[0.4948850876]}, -{"learn":[0.4927650997],"iteration":2968,"passed_time":105.6086252,"remaining_time":72.24355601,"test":[0.4948835677]}, -{"learn":[0.492763997],"iteration":2969,"passed_time":105.6438848,"remaining_time":72.20777312,"test":[0.4948828823]}, -{"learn":[0.4927622685],"iteration":2970,"passed_time":105.6805031,"remaining_time":72.17291844,"test":[0.4948815411]}, -{"learn":[0.4927613446],"iteration":2971,"passed_time":105.7193126,"remaining_time":72.13955788,"test":[0.4948810643]}, -{"learn":[0.4927561292],"iteration":2972,"passed_time":105.7526732,"remaining_time":72.10247852,"test":[0.4948768324]}, -{"learn":[0.4927548775],"iteration":2973,"passed_time":105.7891387,"remaining_time":72.06751679,"test":[0.4948760277]}, -{"learn":[0.4927543708],"iteration":2974,"passed_time":105.830564,"remaining_time":72.0359301,"test":[0.4948756403]}, -{"learn":[0.4927523443],"iteration":2975,"passed_time":105.8653702,"remaining_time":71.99983509,"test":[0.4948742098]}, -{"learn":[0.4927512714],"iteration":2976,"passed_time":105.9014559,"remaining_time":71.96461047,"test":[0.4948735541]}, -{"learn":[0.4927483806],"iteration":2977,"passed_time":105.9362289,"remaining_time":71.92849393,"test":[0.4948714084]}, -{"learn":[0.4927479931],"iteration":2978,"passed_time":105.9890725,"remaining_time":71.90463761,"test":[0.4948709315]}, -{"learn":[0.4927471587],"iteration":2979,"passed_time":106.0265128,"remaining_time":71.87032073,"test":[0.4948703951]}, -{"learn":[0.4927458176],"iteration":2980,"passed_time":106.0616185,"remaining_time":71.8344206,"test":[0.4948693222]}, -{"learn":[0.4927447149],"iteration":2981,"passed_time":106.0989286,"remaining_time":71.80001269,"test":[0.4948685175]}, -{"learn":[0.4927440294],"iteration":2982,"passed_time":106.1362662,"remaining_time":71.76562147,"test":[0.4948680407]}, -{"learn":[0.4927428969],"iteration":2983,"passed_time":106.1721607,"remaining_time":71.73025333,"test":[0.4948675043]}, -{"learn":[0.4927420327],"iteration":2984,"passed_time":106.2095865,"remaining_time":71.69591851,"test":[0.4948668486]}, -{"learn":[0.4927409896],"iteration":2985,"passed_time":106.2455053,"remaining_time":71.66056517,"test":[0.4948662824]}, -{"learn":[0.4927399763],"iteration":2986,"passed_time":106.2819441,"remaining_time":71.62556195,"test":[0.4948657459]}, -{"learn":[0.4927389928],"iteration":2987,"passed_time":106.3189567,"remaining_time":71.59094405,"test":[0.4948650307]}, -{"learn":[0.4927381882],"iteration":2988,"passed_time":106.3558558,"remaining_time":71.55624828,"test":[0.4948644644]}, -{"learn":[0.4927354166],"iteration":2989,"passed_time":106.389172,"remaining_time":71.51914236,"test":[0.4948618418]}, -{"learn":[0.4927344629],"iteration":2990,"passed_time":106.4254862,"remaining_time":71.48405276,"test":[0.494861365]}, -{"learn":[0.4927337178],"iteration":2991,"passed_time":106.4622256,"remaining_time":71.44924769,"test":[0.4948607391]}, -{"learn":[0.4927321979],"iteration":2992,"passed_time":106.4977989,"remaining_time":71.41365932,"test":[0.4948596364]}, -{"learn":[0.4927311846],"iteration":2993,"passed_time":106.5341902,"remaining_time":71.37861911,"test":[0.4948589212]}, -{"learn":[0.4927295157],"iteration":2994,"passed_time":106.5701581,"remaining_time":71.34329451,"test":[0.4948576397]}, -{"learn":[0.492728562],"iteration":2995,"passed_time":106.6065006,"remaining_time":71.30822002,"test":[0.4948571629]}, -{"learn":[0.492727817],"iteration":2996,"passed_time":106.6432825,"remaining_time":71.27343838,"test":[0.4948565966]}, -{"learn":[0.4927257904],"iteration":2997,"passed_time":106.6783446,"remaining_time":71.23750694,"test":[0.4948549575]}, -{"learn":[0.492725105],"iteration":2998,"passed_time":106.7147113,"remaining_time":71.2024466,"test":[0.4948543614]}, -{"learn":[0.4927240321],"iteration":2999,"passed_time":106.7501914,"remaining_time":71.16679426,"test":[0.4948537952]}, -{"learn":[0.4927235552],"iteration":3000,"passed_time":106.789077,"remaining_time":71.13341053,"test":[0.4948534078]}, -{"learn":[0.4927230188],"iteration":3001,"passed_time":106.8269157,"remaining_time":71.09932631,"test":[0.4948530799]}, -{"learn":[0.4927222141],"iteration":3002,"passed_time":106.8650234,"remaining_time":71.06541852,"test":[0.4948523647]}, -{"learn":[0.4927213797],"iteration":3003,"passed_time":106.9009384,"remaining_time":71.03005098,"test":[0.494851858]}, -{"learn":[0.4927205452],"iteration":3004,"passed_time":106.9385434,"remaining_time":70.99580499,"test":[0.4948512024]}, -{"learn":[0.4927199194],"iteration":3005,"passed_time":106.9773369,"remaining_time":70.9623452,"test":[0.4948508448]}, -{"learn":[0.4927192041],"iteration":3006,"passed_time":107.0156105,"remaining_time":70.92853731,"test":[0.4948502189]}, -{"learn":[0.4927185186],"iteration":3007,"passed_time":107.0532107,"remaining_time":70.89428051,"test":[0.4948495931]}, -{"learn":[0.4927171477],"iteration":3008,"passed_time":107.0890082,"remaining_time":70.85882859,"test":[0.4948484904]}, -{"learn":[0.492715896],"iteration":3009,"passed_time":107.1263872,"remaining_time":70.82442213,"test":[0.4948478347]}, -{"learn":[0.4927147338],"iteration":3010,"passed_time":107.162784,"remaining_time":70.78936477,"test":[0.4948470003]}, -{"learn":[0.4927143165],"iteration":3011,"passed_time":107.201709,"remaining_time":70.75597529,"test":[0.4948464638]}, -{"learn":[0.4927125582],"iteration":3012,"passed_time":107.2378914,"remaining_time":70.72077336,"test":[0.4948449439]}, -{"learn":[0.4927113661],"iteration":3013,"passed_time":107.2742696,"remaining_time":70.6856999,"test":[0.4948445267]}, -{"learn":[0.492710472],"iteration":3014,"passed_time":107.3126713,"remaining_time":70.65195773,"test":[0.4948439902]}, -{"learn":[0.4927099654],"iteration":3015,"passed_time":107.35014,"remaining_time":70.61759872,"test":[0.4948435134]}, -{"learn":[0.4927068063],"iteration":3016,"passed_time":107.3832652,"remaining_time":70.58038279,"test":[0.49484101]}, -{"learn":[0.4927062103],"iteration":3017,"passed_time":107.4221345,"remaining_time":70.54694191,"test":[0.4948406822]}, -{"learn":[0.4927055844],"iteration":3018,"passed_time":107.4599424,"remaining_time":70.51280092,"test":[0.4948400265]}, -{"learn":[0.4927038559],"iteration":3019,"passed_time":107.4950953,"remaining_time":70.47691677,"test":[0.494838894]}, -{"learn":[0.4927026042],"iteration":3020,"passed_time":107.5315792,"remaining_time":70.44190508,"test":[0.4948379702]}, -{"learn":[0.492702187],"iteration":3021,"passed_time":107.5694018,"remaining_time":70.40776865,"test":[0.4948377317]}, -{"learn":[0.4927008459],"iteration":3022,"passed_time":107.6057061,"remaining_time":70.37263679,"test":[0.4948369867]}, -{"learn":[0.4926995644],"iteration":3023,"passed_time":107.641536,"remaining_time":70.33719419,"test":[0.494836033]}, -{"learn":[0.4926975676],"iteration":3024,"passed_time":107.6754466,"remaining_time":70.3004982,"test":[0.4948341555]}, -{"learn":[0.4926963755],"iteration":3025,"passed_time":107.7117099,"remaining_time":70.26533884,"test":[0.4948335296]}, -{"learn":[0.4926958987],"iteration":3026,"passed_time":107.7500446,"remaining_time":70.2315289,"test":[0.4948331124]}, -{"learn":[0.492694796],"iteration":3027,"passed_time":107.7859057,"remaining_time":70.19610505,"test":[0.4948323971]}, -{"learn":[0.492694349],"iteration":3028,"passed_time":107.8245562,"remaining_time":70.16249599,"test":[0.4948319799]}, -{"learn":[0.4926933357],"iteration":3029,"passed_time":107.8612314,"remaining_time":70.12759927,"test":[0.4948313838]}, -{"learn":[0.4926924416],"iteration":3030,"passed_time":107.8986831,"remaining_time":70.09320589,"test":[0.4948307282]}, -{"learn":[0.4926918456],"iteration":3031,"passed_time":107.9365962,"remaining_time":70.05910995,"test":[0.4948301023]}, -{"learn":[0.4926891038],"iteration":3032,"passed_time":107.9733647,"remaining_time":70.02426919,"test":[0.4948283738]}, -{"learn":[0.4926878819],"iteration":3033,"passed_time":108.0111865,"remaining_time":69.99010962,"test":[0.4948272711]}, -{"learn":[0.4926869878],"iteration":3034,"passed_time":108.0499602,"remaining_time":69.95656405,"test":[0.4948267347]}, -{"learn":[0.4926854679],"iteration":3035,"passed_time":108.0858032,"remaining_time":69.92111904,"test":[0.4948255724]}, -{"learn":[0.4926841566],"iteration":3036,"passed_time":108.1223913,"remaining_time":69.88615548,"test":[0.4948243803]}, -{"learn":[0.4926836201],"iteration":3037,"passed_time":108.1603295,"remaining_time":69.85206267,"test":[0.4948240823]}, -{"learn":[0.4926827857],"iteration":3038,"passed_time":108.1964501,"remaining_time":69.81679458,"test":[0.4948234862]}, -{"learn":[0.4926801929],"iteration":3039,"passed_time":108.2304167,"remaining_time":69.78013707,"test":[0.4948212511]}, -{"learn":[0.4926793882],"iteration":3040,"passed_time":108.2681955,"remaining_time":69.74593719,"test":[0.4948208338]}, -{"learn":[0.4926786431],"iteration":3041,"passed_time":108.3045971,"remaining_time":69.71084852,"test":[0.494820357]}, -{"learn":[0.4926774511],"iteration":3042,"passed_time":108.3414659,"remaining_time":69.67605942,"test":[0.4948195821]}, -{"learn":[0.4926769742],"iteration":3043,"passed_time":108.3806834,"remaining_time":69.64277815,"test":[0.4948193437]}, -{"learn":[0.4926753053],"iteration":3044,"passed_time":108.4166963,"remaining_time":69.60743557,"test":[0.4948181218]}, -{"learn":[0.492674292],"iteration":3045,"passed_time":108.4534616,"remaining_time":69.57257516,"test":[0.4948175556]}, -{"learn":[0.4926733383],"iteration":3046,"passed_time":108.4914534,"remaining_time":69.53849969,"test":[0.4948169297]}, -{"learn":[0.4926723847],"iteration":3047,"passed_time":108.528735,"remaining_time":69.50396677,"test":[0.4948164231]}, -{"learn":[0.4926718184],"iteration":3048,"passed_time":108.5669357,"remaining_time":69.47002019,"test":[0.4948160357]}, -{"learn":[0.4926713714],"iteration":3049,"passed_time":108.6050923,"remaining_time":69.43604262,"test":[0.4948156184]}, -{"learn":[0.4926701495],"iteration":3050,"passed_time":108.6409606,"remaining_time":69.4006005,"test":[0.4948143965]}, -{"learn":[0.492669464],"iteration":3051,"passed_time":108.6779018,"remaining_time":69.36584298,"test":[0.4948138303]}, -{"learn":[0.4926683315],"iteration":3052,"passed_time":108.7155044,"remaining_time":69.33150574,"test":[0.4948130256]}, -{"learn":[0.4926676759],"iteration":3053,"passed_time":108.7523635,"remaining_time":69.29669265,"test":[0.4948126084]}, -{"learn":[0.4926646063],"iteration":3054,"passed_time":108.7860923,"remaining_time":69.25988526,"test":[0.4948100752]}, -{"learn":[0.4926631757],"iteration":3055,"passed_time":108.8213369,"remaining_time":69.22404415,"test":[0.4948090619]}, -{"learn":[0.4926621625],"iteration":3056,"passed_time":108.85693,"remaining_time":69.18842492,"test":[0.4948081678]}, -{"learn":[0.4926612684],"iteration":3057,"passed_time":108.8936449,"remaining_time":69.15351813,"test":[0.4948076016]}, -{"learn":[0.4926594803],"iteration":3058,"passed_time":108.9291554,"remaining_time":69.11784591,"test":[0.4948064989]}, -{"learn":[0.4926588246],"iteration":3059,"passed_time":108.9676931,"remaining_time":69.08409302,"test":[0.4948059923]}, -{"learn":[0.4926584074],"iteration":3060,"passed_time":109.0069482,"remaining_time":69.05079145,"test":[0.4948057539]}, -{"learn":[0.4926570961],"iteration":3061,"passed_time":109.0421529,"remaining_time":69.01492238,"test":[0.4948050982]}, -{"learn":[0.4926565596],"iteration":3062,"passed_time":109.081007,"remaining_time":68.98136159,"test":[0.494804681]}, -{"learn":[0.4926558742],"iteration":3063,"passed_time":109.1186729,"remaining_time":68.94704659,"test":[0.4948038763]}, -{"learn":[0.4926549503],"iteration":3064,"passed_time":109.1538604,"remaining_time":68.91116473,"test":[0.4948029822]}, -{"learn":[0.4926544139],"iteration":3065,"passed_time":109.1898221,"remaining_time":68.87577166,"test":[0.4948024756]}, -{"learn":[0.4926530728],"iteration":3066,"passed_time":109.2253239,"remaining_time":68.84008837,"test":[0.4948017305]}, -{"learn":[0.4926503607],"iteration":3067,"passed_time":109.2588163,"remaining_time":68.80313985,"test":[0.4947996444]}, -{"learn":[0.4926494667],"iteration":3068,"passed_time":109.2953889,"remaining_time":68.76813163,"test":[0.4947988993]}, -{"learn":[0.4926484832],"iteration":3069,"passed_time":109.3312699,"remaining_time":68.7326876,"test":[0.4947981245]}, -{"learn":[0.4926475295],"iteration":3070,"passed_time":109.3668975,"remaining_time":68.69708408,"test":[0.4947973794]}, -{"learn":[0.4926464566],"iteration":3071,"passed_time":109.4042337,"remaining_time":68.66255291,"test":[0.4947965449]}, -{"learn":[0.4926458904],"iteration":3072,"passed_time":109.4407693,"remaining_time":68.62751787,"test":[0.4947963661]}, -{"learn":[0.4926442811],"iteration":3073,"passed_time":109.4752917,"remaining_time":68.59122048,"test":[0.4947953528]}, -{"learn":[0.4926434168],"iteration":3074,"passed_time":109.5099636,"remaining_time":68.55501785,"test":[0.4947946674]}, -{"learn":[0.4926427612],"iteration":3075,"passed_time":109.5453473,"remaining_time":68.51926146,"test":[0.4947941607]}, -{"learn":[0.4926419267],"iteration":3076,"passed_time":109.5808349,"remaining_time":68.48357021,"test":[0.4947934455]}, -{"learn":[0.492640973],"iteration":3077,"passed_time":109.6167547,"remaining_time":68.44814897,"test":[0.4947928196]}, -{"learn":[0.4926399001],"iteration":3078,"passed_time":109.6533859,"remaining_time":68.41317124,"test":[0.4947920746]}, -{"learn":[0.4926392147],"iteration":3079,"passed_time":109.6894576,"remaining_time":68.3778437,"test":[0.4947914487]}, -{"learn":[0.4926379928],"iteration":3080,"passed_time":109.7238251,"remaining_time":68.34145418,"test":[0.4947904057]}, -{"learn":[0.4926353702],"iteration":3081,"passed_time":109.7578631,"remaining_time":68.30486092,"test":[0.4947887665]}, -{"learn":[0.4926347741],"iteration":3082,"passed_time":109.7953213,"remaining_time":68.27039603,"test":[0.4947883493]}, -{"learn":[0.4926340291],"iteration":3083,"passed_time":109.8323551,"remaining_time":68.23566547,"test":[0.4947877532]}, -{"learn":[0.4926324197],"iteration":3084,"passed_time":109.8682677,"remaining_time":68.20023749,"test":[0.49478674]}, -{"learn":[0.4926315555],"iteration":3085,"passed_time":109.9056696,"remaining_time":68.16573286,"test":[0.4947861141]}, -{"learn":[0.4926305124],"iteration":3086,"passed_time":109.9423539,"remaining_time":68.13078166,"test":[0.4947851903]}, -{"learn":[0.4926295587],"iteration":3087,"passed_time":109.9772358,"remaining_time":68.09471336,"test":[0.4947845346]}, -{"learn":[0.4926284858],"iteration":3088,"passed_time":110.0134213,"remaining_time":68.05945229,"test":[0.4947840578]}, -{"learn":[0.492627413],"iteration":3089,"passed_time":110.0497991,"remaining_time":68.02430949,"test":[0.4947834319]}, -{"learn":[0.4926269361],"iteration":3090,"passed_time":110.0867755,"remaining_time":67.98953555,"test":[0.4947829551]}, -{"learn":[0.4926259228],"iteration":3091,"passed_time":110.124727,"remaining_time":67.95536197,"test":[0.4947821504]}, -{"learn":[0.4926241943],"iteration":3092,"passed_time":110.1589778,"remaining_time":67.91890419,"test":[0.4947812265]}, -{"learn":[0.4926237473],"iteration":3093,"passed_time":110.1969783,"remaining_time":67.88475778,"test":[0.4947808391]}, -{"learn":[0.4926225552],"iteration":3094,"passed_time":110.2344093,"remaining_time":67.85025842,"test":[0.4947800046]}, -{"learn":[0.4926211545],"iteration":3095,"passed_time":110.2688672,"remaining_time":67.81392865,"test":[0.4947787231]}, -{"learn":[0.4926204392],"iteration":3096,"passed_time":110.305279,"remaining_time":67.77880078,"test":[0.4947784251]}, -{"learn":[0.4926188895],"iteration":3097,"passed_time":110.3390285,"remaining_time":67.74203752,"test":[0.494777233]}, -{"learn":[0.492617906],"iteration":3098,"passed_time":110.3753703,"remaining_time":67.70686641,"test":[0.4947763986]}, -{"learn":[0.4926172206],"iteration":3099,"passed_time":110.4110067,"remaining_time":67.67126215,"test":[0.4947759217]}, -{"learn":[0.4926160881],"iteration":3100,"passed_time":110.4481615,"remaining_time":67.63658779,"test":[0.4947751171]}, -{"learn":[0.4926155516],"iteration":3101,"passed_time":110.4858646,"remaining_time":67.60224729,"test":[0.49477467]}, -{"learn":[0.492614449],"iteration":3102,"passed_time":110.5211968,"remaining_time":67.56645514,"test":[0.4947740144]}, -{"learn":[0.49261278],"iteration":3103,"passed_time":110.5572532,"remaining_time":67.53110572,"test":[0.4947729713]}, -{"learn":[0.4926117071],"iteration":3104,"passed_time":110.5925915,"remaining_time":67.4953175,"test":[0.4947720176]}, -{"learn":[0.4926105746],"iteration":3105,"passed_time":110.629327,"remaining_time":67.46038164,"test":[0.4947712726]}, -{"learn":[0.4926100382],"iteration":3106,"passed_time":110.6666574,"remaining_time":67.42580706,"test":[0.4947710043]}, -{"learn":[0.4926091441],"iteration":3107,"passed_time":110.7043036,"remaining_time":67.39142294,"test":[0.4947702891]}, -{"learn":[0.4926083097],"iteration":3108,"passed_time":110.7418105,"remaining_time":67.35695193,"test":[0.4947698123]}, -{"learn":[0.4926078626],"iteration":3109,"passed_time":110.7787515,"remaining_time":67.32213518,"test":[0.4947694546]}, -{"learn":[0.4926069984],"iteration":3110,"passed_time":110.8143431,"remaining_time":67.28649764,"test":[0.4947687692]}, -{"learn":[0.4926064023],"iteration":3111,"passed_time":110.8511224,"remaining_time":67.25158068,"test":[0.4947684115]}, -{"learn":[0.4926049122],"iteration":3112,"passed_time":110.8861404,"remaining_time":67.21559493,"test":[0.4947673685]}, -{"learn":[0.4926038393],"iteration":3113,"passed_time":110.9212583,"remaining_time":67.17967026,"test":[0.4947666532]}, -{"learn":[0.4926018724],"iteration":3114,"passed_time":110.955893,"remaining_time":67.14345371,"test":[0.4947651929]}, -{"learn":[0.492600263],"iteration":3115,"passed_time":110.9901073,"remaining_time":67.10698399,"test":[0.4947642392]}, -{"learn":[0.492599369],"iteration":3116,"passed_time":111.0276538,"remaining_time":67.07252876,"test":[0.4947635538]}, -{"learn":[0.4925984749],"iteration":3117,"passed_time":111.0644331,"remaining_time":67.03760844,"test":[0.4947628087]}, -{"learn":[0.4925975212],"iteration":3118,"passed_time":111.1011436,"remaining_time":67.00264545,"test":[0.4947622723]}, -{"learn":[0.4925953755],"iteration":3119,"passed_time":111.1362677,"remaining_time":66.96672543,"test":[0.4947605735]}, -{"learn":[0.4925947198],"iteration":3120,"passed_time":111.1731191,"remaining_time":66.93184579,"test":[0.4947599775]}, -{"learn":[0.4925934383],"iteration":3121,"passed_time":111.2083098,"remaining_time":66.89596598,"test":[0.4947592324]}, -{"learn":[0.4925926039],"iteration":3122,"passed_time":111.2441959,"remaining_time":66.86050456,"test":[0.4947586662]}, -{"learn":[0.4925915012],"iteration":3123,"passed_time":111.2796295,"remaining_time":66.82477112,"test":[0.4947579509]}, -{"learn":[0.4925899812],"iteration":3124,"passed_time":111.3151622,"remaining_time":66.78909732,"test":[0.4947568482]}, -{"learn":[0.4925894448],"iteration":3125,"passed_time":111.3529299,"remaining_time":66.75476347,"test":[0.4947563714]}, -{"learn":[0.4925887594],"iteration":3126,"passed_time":111.3884885,"remaining_time":66.71910427,"test":[0.4947559542]}, -{"learn":[0.4925873586],"iteration":3127,"passed_time":111.4221852,"remaining_time":66.68233075,"test":[0.4947547621]}, -{"learn":[0.4925862262],"iteration":3128,"passed_time":111.4579766,"remaining_time":66.64681186,"test":[0.4947540468]}, -{"learn":[0.4925855109],"iteration":3129,"passed_time":111.4948739,"remaining_time":66.61195345,"test":[0.4947535104]}, -{"learn":[0.4925846466],"iteration":3130,"passed_time":111.5308424,"remaining_time":66.57653924,"test":[0.4947529143]}, -{"learn":[0.4925841698],"iteration":3131,"passed_time":111.5676665,"remaining_time":66.54163504,"test":[0.4947526461]}, -{"learn":[0.4925829479],"iteration":3132,"passed_time":111.6036399,"remaining_time":66.50622266,"test":[0.4947518415]}, -{"learn":[0.4925807723],"iteration":3133,"passed_time":111.637293,"remaining_time":66.46942844,"test":[0.4947499043]}, -{"learn":[0.4925800273],"iteration":3134,"passed_time":111.6730777,"remaining_time":66.43390428,"test":[0.494749189]}, -{"learn":[0.492579163],"iteration":3135,"passed_time":111.7109418,"remaining_time":66.39961592,"test":[0.4947486526]}, -{"learn":[0.4925781497],"iteration":3136,"passed_time":111.746885,"remaining_time":66.36418449,"test":[0.4947480268]}, -{"learn":[0.4925762126],"iteration":3137,"passed_time":111.7821003,"remaining_time":66.32832081,"test":[0.4947469241]}, -{"learn":[0.4925757357],"iteration":3138,"passed_time":111.8206893,"remaining_time":66.29445771,"test":[0.494746626]}, -{"learn":[0.4925746033],"iteration":3139,"passed_time":111.8561654,"remaining_time":66.25874765,"test":[0.4947455234]}, -{"learn":[0.4925736794],"iteration":3140,"passed_time":111.8907615,"remaining_time":66.2225169,"test":[0.4947449571]}, -{"learn":[0.4925725767],"iteration":3141,"passed_time":111.9261923,"remaining_time":66.1867808,"test":[0.4947442121]}, -{"learn":[0.4925716826],"iteration":3142,"passed_time":111.9609296,"remaining_time":66.15063517,"test":[0.494743616]}, -{"learn":[0.4925706395],"iteration":3143,"passed_time":111.9990351,"remaining_time":66.11647872,"test":[0.4947429902]}, -{"learn":[0.4925700435],"iteration":3144,"passed_time":112.0362849,"remaining_time":66.08181511,"test":[0.4947424835]}, -{"learn":[0.4925693878],"iteration":3145,"passed_time":112.0743949,"remaining_time":66.04765673,"test":[0.4947422153]}, -{"learn":[0.4925688812],"iteration":3146,"passed_time":112.1116795,"remaining_time":66.01300989,"test":[0.4947416491]}, -{"learn":[0.4925676891],"iteration":3147,"passed_time":112.147484,"remaining_time":65.97749059,"test":[0.4947408742]}, -{"learn":[0.4925665864],"iteration":3148,"passed_time":112.1833979,"remaining_time":65.94203539,"test":[0.4947400993]}, -{"learn":[0.4925650069],"iteration":3149,"passed_time":112.217437,"remaining_time":65.90547888,"test":[0.4947389371]}, -{"learn":[0.492564232],"iteration":3150,"passed_time":112.2533485,"remaining_time":65.87002268,"test":[0.4947385198]}, -{"learn":[0.4925634572],"iteration":3151,"passed_time":112.2891921,"remaining_time":65.83452633,"test":[0.4947379834]}, -{"learn":[0.4925626823],"iteration":3152,"passed_time":112.3263109,"remaining_time":65.79977678,"test":[0.4947372085]}, -{"learn":[0.4925616094],"iteration":3153,"passed_time":112.3601542,"remaining_time":65.76310862,"test":[0.4947364933]}, -{"learn":[0.4925611028],"iteration":3154,"passed_time":112.3978108,"remaining_time":65.72867226,"test":[0.4947362548]}, -{"learn":[0.4925606558],"iteration":3155,"passed_time":112.4363139,"remaining_time":65.69472842,"test":[0.494735778]}, -{"learn":[0.4925601193],"iteration":3156,"passed_time":112.4741598,"remaining_time":65.66039803,"test":[0.4947353012]}, -{"learn":[0.4925590464],"iteration":3157,"passed_time":112.5109868,"remaining_time":65.62547109,"test":[0.4947347051]}, -{"learn":[0.4925576755],"iteration":3158,"passed_time":112.5460563,"remaining_time":65.58951872,"test":[0.4947338111]}, -{"learn":[0.4925570795],"iteration":3159,"passed_time":112.5831514,"remaining_time":65.55474636,"test":[0.4947334236]}, -{"learn":[0.4925560364],"iteration":3160,"passed_time":112.6193727,"remaining_time":65.5194642,"test":[0.4947327382]}, -{"learn":[0.4925549039],"iteration":3161,"passed_time":112.6552186,"remaining_time":65.48396322,"test":[0.4947319633]}, -{"learn":[0.4925540993],"iteration":3162,"passed_time":112.6922138,"remaining_time":65.44912953,"test":[0.4947314269]}, -{"learn":[0.4925526687],"iteration":3163,"passed_time":112.729871,"remaining_time":65.4146786,"test":[0.4947302348]}, -{"learn":[0.4925522813],"iteration":3164,"passed_time":112.7680562,"remaining_time":65.38053178,"test":[0.4947299964]}, -{"learn":[0.4925512382],"iteration":3165,"passed_time":112.8035412,"remaining_time":65.34481823,"test":[0.4947293109]}, -{"learn":[0.4925499567],"iteration":3166,"passed_time":112.8390635,"remaining_time":65.30912644,"test":[0.4947283572]}, -{"learn":[0.492548556],"iteration":3167,"passed_time":112.8750829,"remaining_time":65.27372216,"test":[0.4947274632]}, -{"learn":[0.4925474831],"iteration":3168,"passed_time":112.9099652,"remaining_time":65.23766054,"test":[0.4947268075]}, -{"learn":[0.4925467083],"iteration":3169,"passed_time":112.9461895,"remaining_time":65.20237436,"test":[0.4947261221]}, -{"learn":[0.4925458142],"iteration":3170,"passed_time":112.9837224,"remaining_time":65.16784243,"test":[0.4947256154]}, -{"learn":[0.4925450394],"iteration":3171,"passed_time":113.020132,"remaining_time":65.13266116,"test":[0.4947248108]}, -{"learn":[0.4925427446],"iteration":3172,"passed_time":113.0551043,"remaining_time":65.0966516,"test":[0.4947229332]}, -{"learn":[0.4925416419],"iteration":3173,"passed_time":113.0916407,"remaining_time":65.0615425,"test":[0.494722218]}, -{"learn":[0.4925405988],"iteration":3174,"passed_time":113.1270237,"remaining_time":65.02576953,"test":[0.4947212643]}, -{"learn":[0.492540271],"iteration":3175,"passed_time":113.1645559,"remaining_time":64.9912311,"test":[0.4947210557]}, -{"learn":[0.4925391683],"iteration":3176,"passed_time":113.2010836,"remaining_time":64.95611439,"test":[0.4947201914]}, -{"learn":[0.492537559],"iteration":3177,"passed_time":113.2357452,"remaining_time":64.91992692,"test":[0.4947188801]}, -{"learn":[0.4925366053],"iteration":3178,"passed_time":113.272486,"remaining_time":64.88493143,"test":[0.4947181648]}, -{"learn":[0.4925358006],"iteration":3179,"passed_time":113.3080415,"remaining_time":64.84925648,"test":[0.4947175986]}, -{"learn":[0.492534847],"iteration":3180,"passed_time":113.3438317,"remaining_time":64.81371579,"test":[0.4947169131]}, -{"learn":[0.4925339231],"iteration":3181,"passed_time":113.3788216,"remaining_time":64.77771768,"test":[0.4947161979]}, -{"learn":[0.4925330886],"iteration":3182,"passed_time":113.4158161,"remaining_time":64.74286455,"test":[0.4947156912]}, -{"learn":[0.4925321349],"iteration":3183,"passed_time":113.4515,"remaining_time":64.70726254,"test":[0.4947149462]}, -{"learn":[0.4925294825],"iteration":3184,"passed_time":113.4861399,"remaining_time":64.67106558,"test":[0.4947133071]}, -{"learn":[0.4925284097],"iteration":3185,"passed_time":113.5219476,"remaining_time":64.63553454,"test":[0.4947123832]}, -{"learn":[0.4925275454],"iteration":3186,"passed_time":113.5568871,"remaining_time":64.59950933,"test":[0.4947116977]}, -{"learn":[0.4925260851],"iteration":3187,"passed_time":113.5921814,"remaining_time":64.56368654,"test":[0.4947105652]}, -{"learn":[0.492525638],"iteration":3188,"passed_time":113.630435,"remaining_time":64.52954463,"test":[0.4947102076]}, -{"learn":[0.4925242373],"iteration":3189,"passed_time":113.6657467,"remaining_time":64.49373091,"test":[0.4947091049]}, -{"learn":[0.4925233433],"iteration":3190,"passed_time":113.7023767,"remaining_time":64.4586648,"test":[0.4947085685]}, -{"learn":[0.4925219724],"iteration":3191,"passed_time":113.7380635,"remaining_time":64.42306353,"test":[0.4947074062]}, -{"learn":[0.4925204822],"iteration":3192,"passed_time":113.7723785,"remaining_time":64.38668589,"test":[0.4947062737]}, -{"learn":[0.4925193796],"iteration":3193,"passed_time":113.8074293,"remaining_time":64.35072551,"test":[0.4947055883]}, -{"learn":[0.4925189921],"iteration":3194,"passed_time":113.8510951,"remaining_time":64.31963278,"test":[0.494705171]}, -{"learn":[0.4925180981],"iteration":3195,"passed_time":113.8894507,"remaining_time":64.28553477,"test":[0.4947046942]}, -{"learn":[0.4925171742],"iteration":3196,"passed_time":113.9261349,"remaining_time":64.25049146,"test":[0.4947042173]}, -{"learn":[0.4925166079],"iteration":3197,"passed_time":113.964651,"remaining_time":64.21647939,"test":[0.4947038299]}, -{"learn":[0.4925158331],"iteration":3198,"passed_time":114.0004456,"remaining_time":64.18093234,"test":[0.4947032935]}, -{"learn":[0.4925137767],"iteration":3199,"passed_time":114.0336417,"remaining_time":64.14392344,"test":[0.494701863]}, -{"learn":[0.4925126442],"iteration":3200,"passed_time":114.0683192,"remaining_time":64.10774955,"test":[0.4947011775]}, -{"learn":[0.492511631],"iteration":3201,"passed_time":114.104195,"remaining_time":64.07224938,"test":[0.4947003729]}, -{"learn":[0.4925106475],"iteration":3202,"passed_time":114.1408207,"remaining_time":64.03716976,"test":[0.4946998066]}, -{"learn":[0.4925098726],"iteration":3203,"passed_time":114.178386,"remaining_time":64.00261585,"test":[0.4946990615]}, -{"learn":[0.4925088295],"iteration":3204,"passed_time":114.2134295,"remaining_time":63.96664772,"test":[0.4946984357]}, -{"learn":[0.4925081143],"iteration":3205,"passed_time":114.2488468,"remaining_time":63.93088933,"test":[0.4946979887]}, -{"learn":[0.49250725],"iteration":3206,"passed_time":114.2847931,"remaining_time":63.8954269,"test":[0.4946972436]}, -{"learn":[0.4925062963],"iteration":3207,"passed_time":114.3197577,"remaining_time":63.85941576,"test":[0.4946968264]}, -{"learn":[0.4925048956],"iteration":3208,"passed_time":114.3536242,"remaining_time":63.82279245,"test":[0.4946956641]}, -{"learn":[0.4925041208],"iteration":3209,"passed_time":114.3903103,"remaining_time":63.78774312,"test":[0.494694919]}, -{"learn":[0.4925028989],"iteration":3210,"passed_time":114.4247767,"remaining_time":63.75145612,"test":[0.4946945614]}, -{"learn":[0.492501826],"iteration":3211,"passed_time":114.4832428,"remaining_time":63.72852994,"test":[0.4946937269]}, -{"learn":[0.4925008127],"iteration":3212,"passed_time":114.5201231,"remaining_time":63.6935761,"test":[0.4946931011]}, -{"learn":[0.4924986371],"iteration":3213,"passed_time":114.5562938,"remaining_time":63.65822671,"test":[0.4946917898]}, -{"learn":[0.4924978623],"iteration":3214,"passed_time":114.5926109,"remaining_time":63.62295816,"test":[0.4946911341]}, -{"learn":[0.4924968788],"iteration":3215,"passed_time":114.6291112,"remaining_time":63.58779052,"test":[0.4946906871]}, -{"learn":[0.4924957761],"iteration":3216,"passed_time":114.6651809,"remaining_time":63.55238346,"test":[0.4946900911]}, -{"learn":[0.4924937496],"iteration":3217,"passed_time":114.700044,"remaining_time":63.51630777,"test":[0.4946888692]}, -{"learn":[0.4924930939],"iteration":3218,"passed_time":114.7359432,"remaining_time":63.48080608,"test":[0.4946883327]}, -{"learn":[0.4924925873],"iteration":3219,"passed_time":114.7729651,"remaining_time":63.44592482,"test":[0.4946880049]}, -{"learn":[0.4924888024],"iteration":3220,"passed_time":114.8080636,"remaining_time":63.40997986,"test":[0.4946849352]}, -{"learn":[0.4924878189],"iteration":3221,"passed_time":114.8439556,"remaining_time":63.37447335,"test":[0.49468422]}, -{"learn":[0.4924868056],"iteration":3222,"passed_time":114.8812127,"remaining_time":63.33971917,"test":[0.4946834451]}, -{"learn":[0.4924860904],"iteration":3223,"passed_time":114.9171043,"remaining_time":63.3042113,"test":[0.4946827597]}, -{"learn":[0.492483885],"iteration":3224,"passed_time":114.9507396,"remaining_time":63.26746134,"test":[0.4946810609]}, -{"learn":[0.4924828717],"iteration":3225,"passed_time":114.9862003,"remaining_time":63.23171708,"test":[0.4946804947]}, -{"learn":[0.4924825141],"iteration":3226,"passed_time":115.0234947,"remaining_time":63.19698053,"test":[0.4946800775]}, -{"learn":[0.4924818286],"iteration":3227,"passed_time":115.0594516,"remaining_time":63.16150814,"test":[0.49467969]}, -{"learn":[0.4924801895],"iteration":3228,"passed_time":115.0958214,"remaining_time":63.12626191,"test":[0.4946786768]}, -{"learn":[0.4924794146],"iteration":3229,"passed_time":115.1342048,"remaining_time":63.09211844,"test":[0.4946782893]}, -{"learn":[0.4924781927],"iteration":3230,"passed_time":115.1687968,"remaining_time":63.05589648,"test":[0.4946776039]}, -{"learn":[0.4924773285],"iteration":3231,"passed_time":115.205075,"remaining_time":63.02059795,"test":[0.4946772463]}, -{"learn":[0.4924768814],"iteration":3232,"passed_time":115.2435329,"remaining_time":62.98649016,"test":[0.4946768886]}, -{"learn":[0.492476196],"iteration":3233,"passed_time":115.2811634,"remaining_time":62.9519278,"test":[0.494676233]}, -{"learn":[0.4924756297],"iteration":3234,"passed_time":115.3180159,"remaining_time":62.91693912,"test":[0.4946759349]}, -{"learn":[0.4924744377],"iteration":3235,"passed_time":115.3539645,"remaining_time":62.88145653,"test":[0.4946753389]}, -{"learn":[0.4924734244],"iteration":3236,"passed_time":115.3901818,"remaining_time":62.84612002,"test":[0.494674564]}, -{"learn":[0.4924728879],"iteration":3237,"passed_time":115.4282453,"remaining_time":62.81178762,"test":[0.4946741468]}, -{"learn":[0.4924721429],"iteration":3238,"passed_time":115.4643033,"remaining_time":62.77636249,"test":[0.4946734912]}, -{"learn":[0.4924712786],"iteration":3239,"passed_time":115.500155,"remaining_time":62.74082494,"test":[0.4946727461]}, -{"learn":[0.4924702057],"iteration":3240,"passed_time":115.5370889,"remaining_time":62.70587454,"test":[0.4946721203]}, -{"learn":[0.4924692521],"iteration":3241,"passed_time":115.5723498,"remaining_time":62.67001573,"test":[0.4946715242]}, -{"learn":[0.4924685666],"iteration":3242,"passed_time":115.6085836,"remaining_time":62.63468437,"test":[0.494670809]}, -{"learn":[0.4924679408],"iteration":3243,"passed_time":115.6477748,"remaining_time":62.60095329,"test":[0.4946705407]}, -{"learn":[0.4924674639],"iteration":3244,"passed_time":115.6846014,"remaining_time":62.56594007,"test":[0.4946701235]}, -{"learn":[0.4924611458],"iteration":3245,"passed_time":115.7170116,"remaining_time":62.52853921,"test":[0.4946650869]}, -{"learn":[0.4924603412],"iteration":3246,"passed_time":115.7518963,"remaining_time":62.49247745,"test":[0.4946644909]}, -{"learn":[0.4924596259],"iteration":3247,"passed_time":115.7888883,"remaining_time":62.45755306,"test":[0.4946641034]}, -{"learn":[0.4924579272],"iteration":3248,"passed_time":115.8243316,"remaining_time":62.42179277,"test":[0.4946628815]}, -{"learn":[0.4924548575],"iteration":3249,"passed_time":115.8572521,"remaining_time":62.38467421,"test":[0.4946605868]}, -{"learn":[0.4924523243],"iteration":3250,"passed_time":115.8913002,"remaining_time":62.34816489,"test":[0.4946585602]}, -{"learn":[0.4924517879],"iteration":3251,"passed_time":115.9283002,"remaining_time":62.31324376,"test":[0.4946581132]}, -{"learn":[0.4924501786],"iteration":3252,"passed_time":115.9630289,"remaining_time":62.27710158,"test":[0.4946569509]}, -{"learn":[0.4924490461],"iteration":3253,"passed_time":115.9989428,"remaining_time":62.24159622,"test":[0.4946562058]}, -{"learn":[0.492448301],"iteration":3254,"passed_time":116.0346264,"remaining_time":62.20596713,"test":[0.4946557588]}, -{"learn":[0.4924476752],"iteration":3255,"passed_time":116.0720935,"remaining_time":62.17129334,"test":[0.4946553117]}, -{"learn":[0.4924462745],"iteration":3256,"passed_time":116.109727,"remaining_time":62.13670682,"test":[0.4946543283]}, -{"learn":[0.4924457082],"iteration":3257,"passed_time":116.1463746,"remaining_time":62.10159135,"test":[0.4946538812]}, -{"learn":[0.4924449632],"iteration":3258,"passed_time":116.1834607,"remaining_time":62.06670914,"test":[0.4946532852]}, -{"learn":[0.4924439499],"iteration":3259,"passed_time":116.2198237,"remaining_time":62.03143966,"test":[0.4946525401]}, -{"learn":[0.4924420425],"iteration":3260,"passed_time":116.2534331,"remaining_time":61.99470106,"test":[0.49465105]}, -{"learn":[0.4924410591],"iteration":3261,"passed_time":116.290061,"remaining_time":61.95957265,"test":[0.4946503646]}, -{"learn":[0.4924386451],"iteration":3262,"passed_time":116.3240191,"remaining_time":61.92302214,"test":[0.4946484274]}, -{"learn":[0.492437602],"iteration":3263,"passed_time":116.3596319,"remaining_time":61.88735322,"test":[0.4946476227]}, -{"learn":[0.4924373338],"iteration":3264,"passed_time":116.3967957,"remaining_time":61.85250858,"test":[0.4946472949]}, -{"learn":[0.4924365887],"iteration":3265,"passed_time":116.4324769,"remaining_time":61.81687538,"test":[0.4946466095]}, -{"learn":[0.4924356946],"iteration":3266,"passed_time":116.4683763,"remaining_time":61.78135787,"test":[0.4946460134]}, -{"learn":[0.4924349794],"iteration":3267,"passed_time":116.5038494,"remaining_time":61.74561421,"test":[0.494645477]}, -{"learn":[0.4924327442],"iteration":3268,"passed_time":116.5375718,"remaining_time":61.70894365,"test":[0.4946438379]}, -{"learn":[0.492432029],"iteration":3269,"passed_time":116.5740773,"remaining_time":61.67374729,"test":[0.494643212]}, -{"learn":[0.4924307773],"iteration":3270,"passed_time":116.6081665,"remaining_time":61.63727298,"test":[0.4946424967]}, -{"learn":[0.4924297044],"iteration":3271,"passed_time":116.6436788,"remaining_time":61.60155166,"test":[0.4946420795]}, -{"learn":[0.4924286911],"iteration":3272,"passed_time":116.6815534,"remaining_time":61.56707689,"test":[0.4946414835]}, -{"learn":[0.4924274394],"iteration":3273,"passed_time":116.7191333,"remaining_time":61.53244475,"test":[0.4946408576]}, -{"learn":[0.4924264857],"iteration":3274,"passed_time":116.7549777,"remaining_time":61.49689666,"test":[0.4946401722]}, -{"learn":[0.4924260089],"iteration":3275,"passed_time":116.7936343,"remaining_time":61.46282832,"test":[0.4946398145]}, -{"learn":[0.4924254426],"iteration":3276,"passed_time":116.8318061,"remaining_time":61.42850227,"test":[0.4946391589]}, -{"learn":[0.4924241611],"iteration":3277,"passed_time":116.8678418,"remaining_time":61.39305175,"test":[0.4946384138]}, -{"learn":[0.4924235055],"iteration":3278,"passed_time":116.9034827,"remaining_time":61.35739365,"test":[0.4946377284]}, -{"learn":[0.4924231181],"iteration":3279,"passed_time":116.9421476,"remaining_time":61.3233213,"test":[0.4946374304]}, -{"learn":[0.4924226412],"iteration":3280,"passed_time":116.9797724,"remaining_time":61.28870124,"test":[0.4946369833]}, -{"learn":[0.4924219558],"iteration":3281,"passed_time":117.0159699,"remaining_time":61.25333222,"test":[0.4946365959]}, -{"learn":[0.4924187073],"iteration":3282,"passed_time":117.0505974,"remaining_time":61.21714158,"test":[0.4946342415]}, -{"learn":[0.4924182305],"iteration":3283,"passed_time":117.088664,"remaining_time":61.18274891,"test":[0.4946339137]}, -{"learn":[0.4924174258],"iteration":3284,"passed_time":117.1254304,"remaining_time":61.14767525,"test":[0.4946331984]}, -{"learn":[0.4924160251],"iteration":3285,"passed_time":117.1605659,"remaining_time":61.11174984,"test":[0.4946320659]}, -{"learn":[0.4924157569],"iteration":3286,"passed_time":117.198852,"remaining_time":61.07746685,"test":[0.4946316785]}, -{"learn":[0.4924148032],"iteration":3287,"passed_time":117.2348171,"remaining_time":61.04197292,"test":[0.4946308738]}, -{"learn":[0.4924137005],"iteration":3288,"passed_time":117.2700838,"remaining_time":61.00611535,"test":[0.4946301586]}, -{"learn":[0.4924120614],"iteration":3289,"passed_time":117.3059169,"remaining_time":60.97055256,"test":[0.4946292347]}, -{"learn":[0.492411376],"iteration":3290,"passed_time":117.3417777,"remaining_time":60.93500398,"test":[0.4946286685]}, -{"learn":[0.4924101541],"iteration":3291,"passed_time":117.3781949,"remaining_time":60.89974388,"test":[0.4946278042]}, -{"learn":[0.4924093196],"iteration":3292,"passed_time":117.4142679,"remaining_time":60.86430469,"test":[0.4946272976]}, -{"learn":[0.4924081573],"iteration":3293,"passed_time":117.4514899,"remaining_time":60.82946018,"test":[0.4946266717]}, -{"learn":[0.4924066672],"iteration":3294,"passed_time":117.4866269,"remaining_time":60.7935353,"test":[0.4946255988]}, -{"learn":[0.4924057433],"iteration":3295,"passed_time":117.5226361,"remaining_time":60.75806188,"test":[0.4946250028]}, -{"learn":[0.4924047598],"iteration":3296,"passed_time":117.5591854,"remaining_time":60.72286709,"test":[0.4946244067]}, -{"learn":[0.492404134],"iteration":3297,"passed_time":117.5947087,"remaining_time":60.68714197,"test":[0.4946238405]}, -{"learn":[0.4924022862],"iteration":3298,"passed_time":117.6283781,"remaining_time":60.6504611,"test":[0.4946219928]}, -{"learn":[0.4924019882],"iteration":3299,"passed_time":117.6649181,"remaining_time":60.61526085,"test":[0.4946217245]}, -{"learn":[0.4924011836],"iteration":3300,"passed_time":117.700814,"remaining_time":60.57972825,"test":[0.4946212477]}, -{"learn":[0.4923997828],"iteration":3301,"passed_time":117.7346286,"remaining_time":60.54312519,"test":[0.4946200854]}, -{"learn":[0.4923985312],"iteration":3302,"passed_time":117.7700515,"remaining_time":60.50735013,"test":[0.4946193105]}, -{"learn":[0.4923980543],"iteration":3303,"passed_time":117.8079925,"remaining_time":60.47286783,"test":[0.4946189529]}, -{"learn":[0.4923968622],"iteration":3304,"passed_time":117.8425177,"remaining_time":60.43663163,"test":[0.4946184165]}, -{"learn":[0.4923961172],"iteration":3305,"passed_time":117.8784076,"remaining_time":60.40109575,"test":[0.4946177906]}, -{"learn":[0.4923952827],"iteration":3306,"passed_time":117.9145353,"remaining_time":60.36568135,"test":[0.4946173138]}, -{"learn":[0.4923947165],"iteration":3307,"passed_time":117.9506261,"remaining_time":60.3302477,"test":[0.4946166581]}, -{"learn":[0.4923934648],"iteration":3308,"passed_time":117.9875525,"remaining_time":60.29524065,"test":[0.4946155555]}, -{"learn":[0.492392064],"iteration":3309,"passed_time":118.0229751,"remaining_time":60.25946465,"test":[0.4946146018]}, -{"learn":[0.4923906931],"iteration":3310,"passed_time":118.0595932,"remaining_time":60.22429867,"test":[0.4946140355]}, -{"learn":[0.4923901567],"iteration":3311,"passed_time":118.0948517,"remaining_time":60.18843891,"test":[0.4946134991]}, -{"learn":[0.4923891136],"iteration":3312,"passed_time":118.1311999,"remaining_time":60.15313439,"test":[0.4946129925]}, -{"learn":[0.4923885772],"iteration":3313,"passed_time":118.1700124,"remaining_time":60.11908298,"test":[0.494612605]}, -{"learn":[0.4923875639],"iteration":3314,"passed_time":118.2057823,"remaining_time":60.08348208,"test":[0.4946117706]}, -{"learn":[0.49238664],"iteration":3315,"passed_time":118.2425589,"remaining_time":60.04839238,"test":[0.4946112043]}, -{"learn":[0.4923859546],"iteration":3316,"passed_time":118.2796618,"remaining_time":60.01346722,"test":[0.4946104891]}, -{"learn":[0.4923847923],"iteration":3317,"passed_time":118.3148673,"remaining_time":59.97757893,"test":[0.4946098334]}, -{"learn":[0.4923833618],"iteration":3318,"passed_time":118.3503407,"remaining_time":59.94182668,"test":[0.4946090883]}, -{"learn":[0.4923829445],"iteration":3319,"passed_time":118.3883386,"remaining_time":59.90735208,"test":[0.4946088201]}, -{"learn":[0.4923821399],"iteration":3320,"passed_time":118.4250082,"remaining_time":59.87220381,"test":[0.4946084923]}, -{"learn":[0.4923815736],"iteration":3321,"passed_time":118.460206,"remaining_time":59.83631117,"test":[0.4946080453]}, -{"learn":[0.4923804113],"iteration":3322,"passed_time":118.4960476,"remaining_time":59.80074385,"test":[0.4946070618]}, -{"learn":[0.4923796067],"iteration":3323,"passed_time":118.5311199,"remaining_time":59.76478849,"test":[0.4946065552]}, -{"learn":[0.4923770437],"iteration":3324,"passed_time":118.5646874,"remaining_time":59.72807558,"test":[0.4946047968]}, -{"learn":[0.4923761198],"iteration":3325,"passed_time":118.6010461,"remaining_time":59.69276946,"test":[0.4946039623]}, -{"learn":[0.4923754344],"iteration":3326,"passed_time":118.6382796,"remaining_time":59.65790255,"test":[0.4946032769]}, -{"learn":[0.4923749277],"iteration":3327,"passed_time":118.6769244,"remaining_time":59.62374327,"test":[0.4946030087]}, -{"learn":[0.4923743019],"iteration":3328,"passed_time":118.7143518,"remaining_time":59.5889702,"test":[0.494602502]}, -{"learn":[0.4923735866],"iteration":3329,"passed_time":118.7514298,"remaining_time":59.55402036,"test":[0.4946021444]}, -{"learn":[0.4923728117],"iteration":3330,"passed_time":118.7892279,"remaining_time":59.51943,"test":[0.4946014888]}, -{"learn":[0.4923716793],"iteration":3331,"passed_time":118.8256842,"remaining_time":59.48416604,"test":[0.4946007437]}, -{"learn":[0.4923693547],"iteration":3332,"passed_time":118.8588109,"remaining_time":59.44723607,"test":[0.4945988662]}, -{"learn":[0.4923687288],"iteration":3333,"passed_time":118.8962129,"remaining_time":59.41244471,"test":[0.4945985681]}, -{"learn":[0.4923683116],"iteration":3334,"passed_time":118.9355521,"remaining_time":59.37861895,"test":[0.4945981211]}, -{"learn":[0.4923660466],"iteration":3335,"passed_time":118.9691561,"remaining_time":59.34192917,"test":[0.4945963926]}, -{"learn":[0.4923652122],"iteration":3336,"passed_time":119.0052141,"remaining_time":59.30646422,"test":[0.4945957965]}, -{"learn":[0.4923644671],"iteration":3337,"passed_time":119.0403807,"remaining_time":59.27055506,"test":[0.4945953793]}, -{"learn":[0.4923636028],"iteration":3338,"passed_time":119.0754749,"remaining_time":59.23461031,"test":[0.4945946044]}, -{"learn":[0.4923626194],"iteration":3339,"passed_time":119.111617,"remaining_time":59.19918688,"test":[0.4945940084]}, -{"learn":[0.4923618445],"iteration":3340,"passed_time":119.1493688,"remaining_time":59.16456237,"test":[0.4945935613]}, -{"learn":[0.4923614571],"iteration":3341,"passed_time":119.186497,"remaining_time":59.12962658,"test":[0.4945931441]}, -{"learn":[0.4923608014],"iteration":3342,"passed_time":119.223594,"remaining_time":59.09467401,"test":[0.4945925779]}, -{"learn":[0.4923599073],"iteration":3343,"passed_time":119.2615457,"remaining_time":59.06014346,"test":[0.4945919222]}, -{"learn":[0.4923591325],"iteration":3344,"passed_time":119.297728,"remaining_time":59.0247354,"test":[0.4945915348]}, -{"learn":[0.4923583576],"iteration":3345,"passed_time":119.3343272,"remaining_time":58.98953295,"test":[0.4945908791]}, -{"learn":[0.4923570761],"iteration":3346,"passed_time":119.3712559,"remaining_time":58.95449236,"test":[0.4945901639]}, -{"learn":[0.4923565993],"iteration":3347,"passed_time":119.4089146,"remaining_time":58.91981091,"test":[0.4945898659]}, -{"learn":[0.4923560926],"iteration":3348,"passed_time":119.445554,"remaining_time":58.88462518,"test":[0.49458924]}, -{"learn":[0.4923556754],"iteration":3349,"passed_time":119.4849868,"remaining_time":58.8508144,"test":[0.4945888824]}, -{"learn":[0.4923550198],"iteration":3350,"passed_time":119.5226022,"remaining_time":58.81610596,"test":[0.4945884949]}, -{"learn":[0.4923543641],"iteration":3351,"passed_time":119.5604844,"remaining_time":58.78152695,"test":[0.4945881373]}, -{"learn":[0.4923534998],"iteration":3352,"passed_time":119.59724,"remaining_time":58.74639257,"test":[0.4945876009]}, -{"learn":[0.4923527548],"iteration":3353,"passed_time":119.633017,"remaining_time":58.71077696,"test":[0.4945870048]}, -{"learn":[0.4923523674],"iteration":3354,"passed_time":119.6704515,"remaining_time":58.67597398,"test":[0.4945866174]}, -{"learn":[0.4923508474],"iteration":3355,"passed_time":119.7054174,"remaining_time":58.63996012,"test":[0.4945855147]}, -{"learn":[0.492349864],"iteration":3356,"passed_time":119.7413819,"remaining_time":58.60443566,"test":[0.4945850379]}, -{"learn":[0.4923491487],"iteration":3357,"passed_time":119.778026,"remaining_time":58.56924319,"test":[0.494584412]}, -{"learn":[0.4923486421],"iteration":3358,"passed_time":119.8149863,"remaining_time":58.53420438,"test":[0.4945839948]}, -{"learn":[0.4923469731],"iteration":3359,"passed_time":119.850122,"remaining_time":58.49827383,"test":[0.4945828325]}, -{"learn":[0.4923463771],"iteration":3360,"passed_time":119.8871547,"remaining_time":58.46326884,"test":[0.4945824153]}, -{"learn":[0.4923454234],"iteration":3361,"passed_time":119.9220343,"remaining_time":58.42721361,"test":[0.4945816404]}, -{"learn":[0.4923443207],"iteration":3362,"passed_time":119.9580307,"remaining_time":58.39170271,"test":[0.4945810444]}, -{"learn":[0.4923433373],"iteration":3363,"passed_time":119.9933502,"remaining_time":58.35586235,"test":[0.4945803887]}, -{"learn":[0.4923424432],"iteration":3364,"passed_time":120.0292191,"remaining_time":58.32028922,"test":[0.4945797629]}, -{"learn":[0.4923418173],"iteration":3365,"passed_time":120.0665243,"remaining_time":58.28541316,"test":[0.4945791072]}, -{"learn":[0.4923405358],"iteration":3366,"passed_time":120.1025704,"remaining_time":58.249925,"test":[0.4945785112]}, -{"learn":[0.4923395822],"iteration":3367,"passed_time":120.1382575,"remaining_time":58.21426255,"test":[0.4945774383]}, -{"learn":[0.4923389861],"iteration":3368,"passed_time":120.1740624,"remaining_time":58.17865711,"test":[0.4945767528]}, -{"learn":[0.4923376748],"iteration":3369,"passed_time":120.2100301,"remaining_time":58.14313028,"test":[0.4945763058]}, -{"learn":[0.4923352012],"iteration":3370,"passed_time":120.2454832,"remaining_time":58.10735451,"test":[0.4945745475]}, -{"learn":[0.4923338005],"iteration":3371,"passed_time":120.2805437,"remaining_time":58.07138942,"test":[0.4945734746]}, -{"learn":[0.4923329959],"iteration":3372,"passed_time":120.3148982,"remaining_time":58.03508429,"test":[0.4945730573]}, -{"learn":[0.4923314163],"iteration":3373,"passed_time":120.3492646,"remaining_time":57.99878609,"test":[0.4945720739]}, -{"learn":[0.4923305521],"iteration":3374,"passed_time":120.3851666,"remaining_time":57.96322839,"test":[0.4945715076]}, -{"learn":[0.4923297474],"iteration":3375,"passed_time":120.4206167,"remaining_time":57.92745303,"test":[0.4945710308]}, -{"learn":[0.4923293302],"iteration":3376,"passed_time":120.4598694,"remaining_time":57.89350547,"test":[0.4945706434]}, -{"learn":[0.4923284659],"iteration":3377,"passed_time":120.4953379,"remaining_time":57.85773774,"test":[0.4945700771]}, -{"learn":[0.4923277804],"iteration":3378,"passed_time":120.5331451,"remaining_time":57.82309211,"test":[0.4945695705]}, -{"learn":[0.4923271844],"iteration":3379,"passed_time":120.5710093,"remaining_time":57.78847191,"test":[0.4945692426]}, -{"learn":[0.4923263499],"iteration":3380,"passed_time":120.6073069,"remaining_time":57.75309965,"test":[0.4945684082]}, -{"learn":[0.4923256645],"iteration":3381,"passed_time":120.6440068,"remaining_time":57.7179193,"test":[0.4945679611]}, -{"learn":[0.4923249492],"iteration":3382,"passed_time":120.6826443,"remaining_time":57.68366413,"test":[0.4945674247]}, -{"learn":[0.4923233697],"iteration":3383,"passed_time":120.7204428,"remaining_time":57.6490058,"test":[0.4945663816]}, -{"learn":[0.4923227141],"iteration":3384,"passed_time":120.7578931,"remaining_time":57.61417944,"test":[0.4945659346]}, -{"learn":[0.4923218796],"iteration":3385,"passed_time":120.7955506,"remaining_time":57.57945026,"test":[0.4945652789]}, -{"learn":[0.4923208961],"iteration":3386,"passed_time":120.8323523,"remaining_time":57.54431186,"test":[0.4945644445]}, -{"learn":[0.4923199424],"iteration":3387,"passed_time":120.8698037,"remaining_time":57.50948159,"test":[0.4945638484]}, -{"learn":[0.4923194656],"iteration":3388,"passed_time":120.9091768,"remaining_time":57.47556325,"test":[0.4945635504]}, -{"learn":[0.4923188994],"iteration":3389,"passed_time":120.9474771,"remaining_time":57.44113222,"test":[0.4945631928]}, -{"learn":[0.4923174986],"iteration":3390,"passed_time":120.98249,"remaining_time":57.40513903,"test":[0.4945623881]}, -{"learn":[0.4923168132],"iteration":3391,"passed_time":121.0186627,"remaining_time":57.36969625,"test":[0.4945617325]}, -{"learn":[0.4923162768],"iteration":3392,"passed_time":121.055312,"remaining_time":57.33447876,"test":[0.4945614642]}, -{"learn":[0.4923156211],"iteration":3393,"passed_time":121.0924776,"remaining_time":57.29950472,"test":[0.4945608682]}, -{"learn":[0.4923149953],"iteration":3394,"passed_time":121.1309628,"remaining_time":57.26515327,"test":[0.4945602722]}, -{"learn":[0.4923130581],"iteration":3395,"passed_time":121.1661811,"remaining_time":57.22925631,"test":[0.4945595271]}, -{"learn":[0.4923100183],"iteration":3396,"passed_time":121.1998386,"remaining_time":57.19262328,"test":[0.4945570535]}, -{"learn":[0.4923097202],"iteration":3397,"passed_time":121.2389541,"remaining_time":57.15856519,"test":[0.4945566959]}, -{"learn":[0.492309303],"iteration":3398,"passed_time":121.2758724,"remaining_time":57.12346919,"test":[0.4945564873]}, -{"learn":[0.4923085281],"iteration":3399,"passed_time":121.3112322,"remaining_time":57.0876387,"test":[0.4945558316]}, -{"learn":[0.4923066804],"iteration":3400,"passed_time":121.3461934,"remaining_time":57.05162109,"test":[0.4945548481]}, -{"learn":[0.4923058757],"iteration":3401,"passed_time":121.3814488,"remaining_time":57.01574224,"test":[0.4945540435]}, -{"learn":[0.4923049221],"iteration":3402,"passed_time":121.4174732,"remaining_time":56.98022469,"test":[0.4945532686]}, -{"learn":[0.4923037002],"iteration":3403,"passed_time":121.453301,"remaining_time":56.94461468,"test":[0.4945525832]}, -{"learn":[0.4923028061],"iteration":3404,"passed_time":121.4889942,"remaining_time":56.90894148,"test":[0.4945521063]}, -{"learn":[0.4923018822],"iteration":3405,"passed_time":121.5248734,"remaining_time":56.87335531,"test":[0.4945515997]}, -{"learn":[0.492300869],"iteration":3406,"passed_time":121.5610697,"remaining_time":56.83791723,"test":[0.494551093]}, -{"learn":[0.4922983656],"iteration":3407,"passed_time":121.5959896,"remaining_time":56.80188247,"test":[0.4945490069]}, -{"learn":[0.4922972629],"iteration":3408,"passed_time":121.6318259,"remaining_time":56.76627606,"test":[0.4945482618]}, -{"learn":[0.492296935],"iteration":3409,"passed_time":121.6694199,"remaining_time":56.73148903,"test":[0.4945479638]}, -{"learn":[0.4922952065],"iteration":3410,"passed_time":121.7068048,"remaining_time":56.696603,"test":[0.4945467419]}, -{"learn":[0.4922946403],"iteration":3411,"passed_time":121.7444848,"remaining_time":56.66185281,"test":[0.4945463247]}, -{"learn":[0.4922935674],"iteration":3412,"passed_time":121.7796445,"remaining_time":56.62592906,"test":[0.4945456988]}, -{"learn":[0.4922932098],"iteration":3413,"passed_time":121.8167321,"remaining_time":56.59090131,"test":[0.4945453412]}, -{"learn":[0.4922927031],"iteration":3414,"passed_time":121.852713,"remaining_time":56.55535875,"test":[0.4945450432]}, -{"learn":[0.4922903487],"iteration":3415,"passed_time":121.8871109,"remaining_time":56.51908187,"test":[0.4945432252]}, -{"learn":[0.492288948],"iteration":3416,"passed_time":121.9231612,"remaining_time":56.48357159,"test":[0.4945424504]}, -{"learn":[0.4922885308],"iteration":3417,"passed_time":121.9623657,"remaining_time":56.44952094,"test":[0.4945421225]}, -{"learn":[0.4922878453],"iteration":3418,"passed_time":121.9987433,"remaining_time":56.41416003,"test":[0.4945413179]}, -{"learn":[0.4922869513],"iteration":3419,"passed_time":122.0336917,"remaining_time":56.37813825,"test":[0.494540841]}, -{"learn":[0.4922842393],"iteration":3420,"passed_time":122.0678061,"remaining_time":56.34173219,"test":[0.4945385463]}, -{"learn":[0.4922832856],"iteration":3421,"passed_time":122.1034237,"remaining_time":56.30602065,"test":[0.4945380396]}, -{"learn":[0.4922828087],"iteration":3422,"passed_time":122.1408376,"remaining_time":56.27113671,"test":[0.4945377416]}, -{"learn":[0.4922818253],"iteration":3423,"passed_time":122.1759087,"remaining_time":56.23517293,"test":[0.4945372946]}, -{"learn":[0.4922813484],"iteration":3424,"passed_time":122.2126474,"remaining_time":56.19997655,"test":[0.4945369071]}, -{"learn":[0.492280663],"iteration":3425,"passed_time":122.252251,"remaining_time":56.16609546,"test":[0.4945366389]}, -{"learn":[0.4922797689],"iteration":3426,"passed_time":122.2883741,"remaining_time":56.13061352,"test":[0.4945360131]}, -{"learn":[0.4922789941],"iteration":3427,"passed_time":122.3247093,"remaining_time":56.0952284,"test":[0.4945355362]}, -{"learn":[0.4922782788],"iteration":3428,"passed_time":122.3614768,"remaining_time":56.06004086,"test":[0.4945349402]}, -{"learn":[0.4922774145],"iteration":3429,"passed_time":122.3986103,"remaining_time":56.02501986,"test":[0.4945342547]}, -{"learn":[0.4922767887],"iteration":3430,"passed_time":122.4355443,"remaining_time":55.98990646,"test":[0.4945337779]}, -{"learn":[0.4922758052],"iteration":3431,"passed_time":122.4708727,"remaining_time":55.95405841,"test":[0.4945333309]}, -{"learn":[0.4922751496],"iteration":3432,"passed_time":122.5075431,"remaining_time":55.91882321,"test":[0.4945329136]}, -{"learn":[0.4922747621],"iteration":3433,"passed_time":122.5464215,"remaining_time":55.88459409,"test":[0.4945326156]}, -{"learn":[0.4922741661],"iteration":3434,"passed_time":122.5852411,"remaining_time":55.85033549,"test":[0.4945321388]}, -{"learn":[0.4922731528],"iteration":3435,"passed_time":122.6221065,"remaining_time":55.81518467,"test":[0.4945315725]}, -{"learn":[0.4922719011],"iteration":3436,"passed_time":122.6573855,"remaining_time":55.77931146,"test":[0.4945306188]}, -{"learn":[0.4922704706],"iteration":3437,"passed_time":122.6921941,"remaining_time":55.74322488,"test":[0.4945296056]}, -{"learn":[0.4922693679],"iteration":3438,"passed_time":122.7280168,"remaining_time":55.70759938,"test":[0.4945291287]}, -{"learn":[0.4922678182],"iteration":3439,"passed_time":122.7634084,"remaining_time":55.67177824,"test":[0.494527877]}, -{"learn":[0.4922670135],"iteration":3440,"passed_time":122.8011995,"remaining_time":55.63704448,"test":[0.4945273406]}, -{"learn":[0.4922663877],"iteration":3441,"passed_time":122.8369847,"remaining_time":55.60140097,"test":[0.4945268339]}, -{"learn":[0.4922654936],"iteration":3442,"passed_time":122.8726564,"remaining_time":55.56570609,"test":[0.4945260889]}, -{"learn":[0.4922646293],"iteration":3443,"passed_time":122.9090376,"remaining_time":55.53033172,"test":[0.4945253438]}, -{"learn":[0.4922636757],"iteration":3444,"passed_time":122.9456234,"remaining_time":55.49504917,"test":[0.4945248968]}, -{"learn":[0.492262722],"iteration":3445,"passed_time":122.9841164,"remaining_time":55.46062589,"test":[0.4945241517]}, -{"learn":[0.4922616491],"iteration":3446,"passed_time":123.0222482,"remaining_time":55.42603754,"test":[0.4945233173]}, -{"learn":[0.4922603378],"iteration":3447,"passed_time":123.0602614,"remaining_time":55.39139378,"test":[0.4945226616]}, -{"learn":[0.4922587881],"iteration":3448,"passed_time":123.0969488,"remaining_time":55.3561518,"test":[0.4945214099]}, -{"learn":[0.4922564635],"iteration":3449,"passed_time":123.1319611,"remaining_time":55.32015642,"test":[0.4945199198]}, -{"learn":[0.4922553608],"iteration":3450,"passed_time":123.167988,"remaining_time":55.28461706,"test":[0.4945192642]}, -{"learn":[0.4922548542],"iteration":3451,"passed_time":123.2051836,"remaining_time":55.24960147,"test":[0.4945188469]}, -{"learn":[0.4922539005],"iteration":3452,"passed_time":123.241658,"remaining_time":55.21426149,"test":[0.4945181913]}, -{"learn":[0.4922531852],"iteration":3453,"passed_time":123.277517,"remaining_time":55.17864543,"test":[0.4945174462]}, -{"learn":[0.4922522018],"iteration":3454,"passed_time":123.3133237,"remaining_time":55.14300581,"test":[0.4945167608]}, -{"learn":[0.4922517249],"iteration":3455,"passed_time":123.3509737,"remaining_time":55.10818963,"test":[0.4945163733]}, -{"learn":[0.4922510991],"iteration":3456,"passed_time":123.3873993,"remaining_time":55.07282533,"test":[0.4945157773]}, -{"learn":[0.4922501156],"iteration":3457,"passed_time":123.4241035,"remaining_time":55.0375846,"test":[0.4945153601]}, -{"learn":[0.4922491321],"iteration":3458,"passed_time":123.4610532,"remaining_time":55.00245243,"test":[0.4945148534]}, -{"learn":[0.49224794],"iteration":3459,"passed_time":123.4973595,"remaining_time":54.96703284,"test":[0.4945137507]}, -{"learn":[0.4922466287],"iteration":3460,"passed_time":123.5332401,"remaining_time":54.93142344,"test":[0.4945131249]}, -{"learn":[0.4922460327],"iteration":3461,"passed_time":123.5696831,"remaining_time":54.89606372,"test":[0.4945127076]}, -{"learn":[0.4922448108],"iteration":3462,"passed_time":123.6057603,"remaining_time":54.86054102,"test":[0.4945116348]}, -{"learn":[0.4922440359],"iteration":3463,"passed_time":123.6414321,"remaining_time":54.82483827,"test":[0.4945112473]}, -{"learn":[0.4922426054],"iteration":3464,"passed_time":123.677189,"remaining_time":54.78917318,"test":[0.4945102937]}, -{"learn":[0.4922404597],"iteration":3465,"passed_time":123.7112882,"remaining_time":54.75277441,"test":[0.4945085353]}, -{"learn":[0.4922400126],"iteration":3466,"passed_time":123.7488325,"remaining_time":54.71790027,"test":[0.4945081777]}, -{"learn":[0.4922389397],"iteration":3467,"passed_time":123.7846871,"remaining_time":54.68227816,"test":[0.4945076115]}, -{"learn":[0.4922380755],"iteration":3468,"passed_time":123.8216624,"remaining_time":54.64715051,"test":[0.4945070452]}, -{"learn":[0.492237241],"iteration":3469,"passed_time":123.8585933,"remaining_time":54.61200225,"test":[0.49450633]}, -{"learn":[0.4922360191],"iteration":3470,"passed_time":123.8949903,"remaining_time":54.57661772,"test":[0.4945057637]}, -{"learn":[0.4922353337],"iteration":3471,"passed_time":123.9319069,"remaining_time":54.54146131,"test":[0.4945052273]}, -{"learn":[0.4922348866],"iteration":3472,"passed_time":123.9704381,"remaining_time":54.50701381,"test":[0.4945046908]}, -{"learn":[0.4922341416],"iteration":3473,"passed_time":124.0073966,"remaining_time":54.47187314,"test":[0.4945043332]}, -{"learn":[0.4922333965],"iteration":3474,"passed_time":124.0449673,"remaining_time":54.43700003,"test":[0.494503916]}, -{"learn":[0.4922321746],"iteration":3475,"passed_time":124.0802531,"remaining_time":54.40112362,"test":[0.4945030517]}, -{"learn":[0.4922309825],"iteration":3476,"passed_time":124.1157523,"remaining_time":54.36534103,"test":[0.4945024258]}, -{"learn":[0.4922305951],"iteration":3477,"passed_time":124.1531198,"remaining_time":54.33037617,"test":[0.4945022172]}, -{"learn":[0.4922294924],"iteration":3478,"passed_time":124.1892529,"remaining_time":54.29487028,"test":[0.4945014126]}, -{"learn":[0.4922279725],"iteration":3479,"passed_time":124.2294653,"remaining_time":54.26114577,"test":[0.4945002801]}, -{"learn":[0.4922264824],"iteration":3480,"passed_time":124.2661217,"remaining_time":54.2258658,"test":[0.494499088]}, -{"learn":[0.4922258863],"iteration":3481,"passed_time":124.3036899,"remaining_time":54.19098258,"test":[0.4944984025]}, -{"learn":[0.4922254393],"iteration":3482,"passed_time":124.3433948,"remaining_time":54.15702841,"test":[0.4944981045]}, -{"learn":[0.4922246048],"iteration":3483,"passed_time":124.3793246,"remaining_time":54.12142828,"test":[0.4944975085]}, -{"learn":[0.4922231147],"iteration":3484,"passed_time":124.4146886,"remaining_time":54.08558201,"test":[0.4944965846]}, -{"learn":[0.4922216544],"iteration":3485,"passed_time":124.4505347,"remaining_time":54.04994536,"test":[0.4944955117]}, -{"learn":[0.4922208795],"iteration":3486,"passed_time":124.4881644,"remaining_time":54.0150825,"test":[0.4944950051]}, -{"learn":[0.492218704],"iteration":3487,"passed_time":124.5225498,"remaining_time":53.97881173,"test":[0.494493515]}, -{"learn":[0.4922177503],"iteration":3488,"passed_time":124.5591725,"remaining_time":53.94351094,"test":[0.4944929785]}, -{"learn":[0.4922168562],"iteration":3489,"passed_time":124.5958524,"remaining_time":53.90823412,"test":[0.4944923825]}, -{"learn":[0.4922144124],"iteration":3490,"passed_time":124.6305788,"remaining_time":53.87211214,"test":[0.4944905943]}, -{"learn":[0.4922136078],"iteration":3491,"passed_time":124.6686231,"remaining_time":53.83742374,"test":[0.4944902367]}, -{"learn":[0.4922128627],"iteration":3492,"passed_time":124.705783,"remaining_time":53.80235184,"test":[0.4944896407]}, -{"learn":[0.4922122369],"iteration":3493,"passed_time":124.7425331,"remaining_time":53.76710213,"test":[0.4944892532]}, -{"learn":[0.4922117302],"iteration":3494,"passed_time":124.781219,"remaining_time":53.73268513,"test":[0.4944888658]}, -{"learn":[0.4922105977],"iteration":3495,"passed_time":124.8164128,"remaining_time":53.6967634,"test":[0.4944879717]}, -{"learn":[0.4922073791],"iteration":3496,"passed_time":124.8501358,"remaining_time":53.66020992,"test":[0.4944856471]}, -{"learn":[0.4922061274],"iteration":3497,"passed_time":124.8856152,"remaining_time":53.62441225,"test":[0.4944848127]}, -{"learn":[0.4922055909],"iteration":3498,"passed_time":124.9242217,"remaining_time":53.58995623,"test":[0.4944846041]}, -{"learn":[0.4922050843],"iteration":3499,"passed_time":124.9621509,"remaining_time":53.55520752,"test":[0.4944841868]}, -{"learn":[0.4922040114],"iteration":3500,"passed_time":124.9974392,"remaining_time":53.5193263,"test":[0.4944833226]}, -{"learn":[0.4922032962],"iteration":3501,"passed_time":125.0351667,"remaining_time":53.48448878,"test":[0.4944826669]}, -{"learn":[0.4922023723],"iteration":3502,"passed_time":125.0714995,"remaining_time":53.4490536,"test":[0.4944820113]}, -{"learn":[0.4922012994],"iteration":3503,"passed_time":125.1078347,"remaining_time":53.41361893,"test":[0.4944812662]}, -{"learn":[0.4922005543],"iteration":3504,"passed_time":125.1447362,"remaining_time":53.37842528,"test":[0.4944806404]}, -{"learn":[0.4921995411],"iteration":3505,"passed_time":125.1818042,"remaining_time":53.34330163,"test":[0.4944801337]}, -{"learn":[0.4921993026],"iteration":3506,"passed_time":125.2308262,"remaining_time":53.3132659,"test":[0.4944798953]}, -{"learn":[0.4921984682],"iteration":3507,"passed_time":125.268888,"remaining_time":53.27855785,"test":[0.4944792396]}, -{"learn":[0.4921973953],"iteration":3508,"passed_time":125.3059266,"remaining_time":53.24341311,"test":[0.4944785244]}, -{"learn":[0.4921966204],"iteration":3509,"passed_time":125.3426794,"remaining_time":53.20814597,"test":[0.4944780774]}, -{"learn":[0.4921939084],"iteration":3510,"passed_time":125.3767038,"remaining_time":53.17172088,"test":[0.4944764382]}, -{"learn":[0.492193521],"iteration":3511,"passed_time":125.4148828,"remaining_time":53.1370574,"test":[0.4944762296]}, -{"learn":[0.4921928057],"iteration":3512,"passed_time":125.4526418,"remaining_time":53.10221416,"test":[0.4944757528]}, -{"learn":[0.4921908984],"iteration":3513,"passed_time":125.4872384,"remaining_time":53.06603195,"test":[0.4944742329]}, -{"learn":[0.4921900937],"iteration":3514,"passed_time":125.5242496,"remaining_time":53.03087073,"test":[0.4944738156]}, -{"learn":[0.4921890805],"iteration":3515,"passed_time":125.5614419,"remaining_time":52.99578492,"test":[0.4944732196]}, -{"learn":[0.4921878884],"iteration":3516,"passed_time":125.5966148,"remaining_time":52.9598464,"test":[0.4944725639]}, -{"learn":[0.4921872625],"iteration":3517,"passed_time":125.6335293,"remaining_time":52.92464195,"test":[0.4944722063]}, -{"learn":[0.4921860704],"iteration":3518,"passed_time":125.6692557,"remaining_time":52.88893656,"test":[0.4944715506]}, -{"learn":[0.4921853254],"iteration":3519,"passed_time":125.7069571,"remaining_time":52.85406151,"test":[0.4944709844]}, -{"learn":[0.4921848485],"iteration":3520,"passed_time":125.7443749,"remaining_time":52.81906573,"test":[0.4944706566]}, -{"learn":[0.4921841333],"iteration":3521,"passed_time":125.7815011,"remaining_time":52.78394623,"test":[0.4944700307]}, -{"learn":[0.4921827326],"iteration":3522,"passed_time":125.8182742,"remaining_time":52.74867755,"test":[0.494468928]}, -{"learn":[0.4921820471],"iteration":3523,"passed_time":125.8539033,"remaining_time":52.71292887,"test":[0.4944686598]}, -{"learn":[0.4921811232],"iteration":3524,"passed_time":125.8895591,"remaining_time":52.67719141,"test":[0.4944680638]}, -{"learn":[0.4921803484],"iteration":3525,"passed_time":125.9260218,"remaining_time":52.64179129,"test":[0.4944675571]}, -{"learn":[0.4921787987],"iteration":3526,"passed_time":125.96109,"remaining_time":52.6058082,"test":[0.4944666929]}, -{"learn":[0.492178143],"iteration":3527,"passed_time":125.9986645,"remaining_time":52.57087137,"test":[0.4944659478]}, -{"learn":[0.4921772787],"iteration":3528,"passed_time":126.0343916,"remaining_time":52.53516294,"test":[0.494465471]}, -{"learn":[0.4921764443],"iteration":3529,"passed_time":126.0722504,"remaining_time":52.50034224,"test":[0.4944649941]}, -{"learn":[0.492175878],"iteration":3530,"passed_time":126.1112583,"remaining_time":52.46599786,"test":[0.4944645173]}, -{"learn":[0.4921748051],"iteration":3531,"passed_time":126.146963,"remaining_time":52.43027796,"test":[0.4944639809]}, -{"learn":[0.4921741197],"iteration":3532,"passed_time":126.1835167,"remaining_time":52.39491054,"test":[0.4944634444]}, -{"learn":[0.4921736131],"iteration":3533,"passed_time":126.2202361,"remaining_time":52.35961123,"test":[0.494463057]}, -{"learn":[0.4921730766],"iteration":3534,"passed_time":126.2578428,"remaining_time":52.32467882,"test":[0.4944626696]}, -{"learn":[0.4921724508],"iteration":3535,"passed_time":126.2954305,"remaining_time":52.28973708,"test":[0.4944621927]}, -{"learn":[0.4921718249],"iteration":3536,"passed_time":126.3340336,"remaining_time":52.25521377,"test":[0.4944616861]}, -{"learn":[0.4921714375],"iteration":3537,"passed_time":126.3726825,"remaining_time":52.22070713,"test":[0.4944613583]}, -{"learn":[0.4921708712],"iteration":3538,"passed_time":126.4102678,"remaining_time":52.18575904,"test":[0.4944609708]}, -{"learn":[0.4921698878],"iteration":3539,"passed_time":126.445456,"remaining_time":52.14982083,"test":[0.4944606132]}, -{"learn":[0.4921689043],"iteration":3540,"passed_time":126.4825436,"remaining_time":52.11466567,"test":[0.4944599575]}, -{"learn":[0.4921678612],"iteration":3541,"passed_time":126.5185395,"remaining_time":52.07906001,"test":[0.4944590933]}, -{"learn":[0.4921669075],"iteration":3542,"passed_time":126.5545871,"remaining_time":52.04347541,"test":[0.4944584078]}, -{"learn":[0.492165626],"iteration":3543,"passed_time":126.5904081,"remaining_time":52.00779748,"test":[0.4944578714]}, -{"learn":[0.4921648512],"iteration":3544,"passed_time":126.6275523,"remaining_time":51.9726625,"test":[0.4944573051]}, -{"learn":[0.4921635995],"iteration":3545,"passed_time":126.6630442,"remaining_time":51.93684892,"test":[0.4944565005]}, -{"learn":[0.4921631226],"iteration":3546,"passed_time":126.7006355,"remaining_time":51.90189551,"test":[0.4944560236]}, -{"learn":[0.4921621094],"iteration":3547,"passed_time":126.7365528,"remaining_time":51.86625555,"test":[0.494455517]}, -{"learn":[0.4921609173],"iteration":3548,"passed_time":126.7729602,"remaining_time":51.83081578,"test":[0.4944546825]}, -{"learn":[0.4921596954],"iteration":3549,"passed_time":126.8085098,"remaining_time":51.79502513,"test":[0.4944537587]}, -{"learn":[0.4921578774],"iteration":3550,"passed_time":126.8423758,"remaining_time":51.75854762,"test":[0.4944527156]}, -{"learn":[0.4921567449],"iteration":3551,"passed_time":126.8792735,"remaining_time":51.72330745,"test":[0.4944517321]}, -{"learn":[0.4921554634],"iteration":3552,"passed_time":126.9143857,"remaining_time":51.68733918,"test":[0.4944509274]}, -{"learn":[0.4921543011],"iteration":3553,"passed_time":126.9498196,"remaining_time":51.65150228,"test":[0.4944501824]}, -{"learn":[0.4921539137],"iteration":3554,"passed_time":126.9888593,"remaining_time":51.61713127,"test":[0.494449795]}, -{"learn":[0.4921515295],"iteration":3555,"passed_time":127.0234735,"remaining_time":51.58096057,"test":[0.494447977]}, -{"learn":[0.4921509037],"iteration":3556,"passed_time":127.0597918,"remaining_time":51.54548202,"test":[0.4944475598]}, -{"learn":[0.492150397],"iteration":3557,"passed_time":127.0974471,"remaining_time":51.51054488,"test":[0.4944472618]}, -{"learn":[0.4921497414],"iteration":3558,"passed_time":127.1342615,"remaining_time":51.47526577,"test":[0.4944466359]}, -{"learn":[0.4921485195],"iteration":3559,"passed_time":127.1695251,"remaining_time":51.43935847,"test":[0.4944458312]}, -{"learn":[0.492144824],"iteration":3560,"passed_time":127.2040504,"remaining_time":51.40315321,"test":[0.494442851]}, -{"learn":[0.492144079],"iteration":3561,"passed_time":127.241966,"remaining_time":51.36831755,"test":[0.4944426126]}, -{"learn":[0.4921433637],"iteration":3562,"passed_time":127.2804963,"remaining_time":51.33372811,"test":[0.4944421358]}, -{"learn":[0.4921422312],"iteration":3563,"passed_time":127.3175429,"remaining_time":51.29853862,"test":[0.4944415397]}, -{"learn":[0.492139549],"iteration":3564,"passed_time":127.3531916,"remaining_time":51.26278541,"test":[0.4944395132]}, -{"learn":[0.4921385953],"iteration":3565,"passed_time":127.3905377,"remaining_time":51.22771483,"test":[0.4944390065]}, -{"learn":[0.4921376715],"iteration":3566,"passed_time":127.4268905,"remaining_time":51.19224393,"test":[0.4944384105]}, -{"learn":[0.4921360323],"iteration":3567,"passed_time":127.4623055,"remaining_time":51.15639616,"test":[0.4944373376]}, -{"learn":[0.4921337077],"iteration":3568,"passed_time":127.4958584,"remaining_time":51.119802,"test":[0.4944350726]}, -{"learn":[0.492132307],"iteration":3569,"passed_time":127.5323749,"remaining_time":51.08439666,"test":[0.4944342381]}, -{"learn":[0.4921314726],"iteration":3570,"passed_time":127.5685396,"remaining_time":51.04884991,"test":[0.4944335229]}, -{"learn":[0.4921303699],"iteration":3571,"passed_time":127.6035622,"remaining_time":51.01284624,"test":[0.4944326288]}, -{"learn":[0.4921298036],"iteration":3572,"passed_time":127.6411381,"remaining_time":50.97786289,"test":[0.494432152]}, -{"learn":[0.4921282837],"iteration":3573,"passed_time":127.6756722,"remaining_time":50.94166438,"test":[0.4944311089]}, -{"learn":[0.4921278963],"iteration":3574,"passed_time":127.714268,"remaining_time":50.90708583,"test":[0.4944308705]}, -{"learn":[0.4921255121],"iteration":3575,"passed_time":127.7486677,"remaining_time":50.8708341,"test":[0.4944289631]}, -{"learn":[0.4921249459],"iteration":3576,"passed_time":127.7870507,"remaining_time":50.83616807,"test":[0.4944286055]}, -{"learn":[0.4921242902],"iteration":3577,"passed_time":127.824536,"remaining_time":50.80114315,"test":[0.4944282181]}, -{"learn":[0.4921233961],"iteration":3578,"passed_time":127.8602183,"remaining_time":50.76540099,"test":[0.4944275922]}, -{"learn":[0.4921219358],"iteration":3579,"passed_time":127.8966427,"remaining_time":50.72995326,"test":[0.4944265789]}, -{"learn":[0.49212131],"iteration":3580,"passed_time":127.93401,"remaining_time":50.69487857,"test":[0.4944261319]}, -{"learn":[0.4921203861],"iteration":3581,"passed_time":127.9706962,"remaining_time":50.659533,"test":[0.4944258935]}, -{"learn":[0.4921190152],"iteration":3582,"passed_time":128.0055877,"remaining_time":50.62347692,"test":[0.4944249398]}, -{"learn":[0.4921177933],"iteration":3583,"passed_time":128.0401467,"remaining_time":50.58729011,"test":[0.4944240159]}, -{"learn":[0.4921161542],"iteration":3584,"passed_time":128.075265,"remaining_time":50.55132495,"test":[0.4944230623]}, -{"learn":[0.4921152601],"iteration":3585,"passed_time":128.1116588,"remaining_time":50.51586323,"test":[0.4944225258]}, -{"learn":[0.4921145449],"iteration":3586,"passed_time":128.1491285,"remaining_time":50.48082482,"test":[0.4944219894]}, -{"learn":[0.4921137104],"iteration":3587,"passed_time":128.1851912,"remaining_time":50.44523133,"test":[0.4944215424]}, -{"learn":[0.4921129057],"iteration":3588,"passed_time":128.2233366,"remaining_time":50.41045638,"test":[0.4944209463]}, -{"learn":[0.4921117434],"iteration":3589,"passed_time":128.2581371,"remaining_time":50.37436581,"test":[0.4944203205]}, -{"learn":[0.4921110282],"iteration":3590,"passed_time":128.2955354,"remaining_time":50.33929529,"test":[0.4944198436]}, -{"learn":[0.4921097467],"iteration":3591,"passed_time":128.3312016,"remaining_time":50.3035445,"test":[0.4944190092]}, -{"learn":[0.4921089122],"iteration":3592,"passed_time":128.3687366,"remaining_time":50.26852558,"test":[0.4944183535]}, -{"learn":[0.4921075115],"iteration":3593,"passed_time":128.4097417,"remaining_time":50.23486277,"test":[0.4944169826]}, -{"learn":[0.4921068559],"iteration":3594,"passed_time":128.447767,"remaining_time":50.20003133,"test":[0.494416774]}, -{"learn":[0.4921059618],"iteration":3595,"passed_time":128.4836807,"remaining_time":50.16437368,"test":[0.4944162673]}, -{"learn":[0.4921056042],"iteration":3596,"passed_time":128.5219953,"remaining_time":50.12965233,"test":[0.4944159097]}, -{"learn":[0.4921042333],"iteration":3597,"passed_time":128.5573348,"remaining_time":50.09376972,"test":[0.4944150753]}, -{"learn":[0.4921034584],"iteration":3598,"passed_time":128.5935176,"remaining_time":50.05821564,"test":[0.4944146282]}, -{"learn":[0.4921030114],"iteration":3599,"passed_time":128.631094,"remaining_time":50.02320322,"test":[0.4944140918]}, -{"learn":[0.4921019087],"iteration":3600,"passed_time":128.667571,"remaining_time":49.98776225,"test":[0.4944134957]}, -{"learn":[0.4921010146],"iteration":3601,"passed_time":128.7032469,"remaining_time":49.95200977,"test":[0.4944128699]}, -{"learn":[0.4921002695],"iteration":3602,"passed_time":128.7399531,"remaining_time":49.91665683,"test":[0.494412244]}, -{"learn":[0.4920996735],"iteration":3603,"passed_time":128.7766053,"remaining_time":49.88128218,"test":[0.4944117076]}, -{"learn":[0.4920986602],"iteration":3604,"passed_time":128.8130607,"remaining_time":49.84583071,"test":[0.4944112606]}, -{"learn":[0.4920977363],"iteration":3605,"passed_time":128.8501948,"remaining_time":49.81064101,"test":[0.4944104559]}, -{"learn":[0.4920971999],"iteration":3606,"passed_time":128.8885038,"remaining_time":49.77590401,"test":[0.4944102473]}, -{"learn":[0.4920961568],"iteration":3607,"passed_time":128.9249038,"remaining_time":49.7404285,"test":[0.4944096512]}, -{"learn":[0.4920954416],"iteration":3608,"passed_time":128.9615073,"remaining_time":49.70503094,"test":[0.4944091446]}, -{"learn":[0.4920932362],"iteration":3609,"passed_time":128.99661,"remaining_time":49.66905484,"test":[0.494407267]}, -{"learn":[0.492092819],"iteration":3610,"passed_time":129.0341048,"remaining_time":49.63399932,"test":[0.4944069094]}, -{"learn":[0.4920921633],"iteration":3611,"passed_time":129.0724818,"remaining_time":49.59928147,"test":[0.494406522]}, -{"learn":[0.4920914481],"iteration":3612,"passed_time":129.1094777,"remaining_time":49.56403145,"test":[0.4944060452]}, -{"learn":[0.4920906136],"iteration":3613,"passed_time":129.1464236,"remaining_time":49.52876125,"test":[0.4944055087]}, -{"learn":[0.4920895705],"iteration":3614,"passed_time":129.182005,"remaining_time":49.49296733,"test":[0.494404704]}, -{"learn":[0.4920887062],"iteration":3615,"passed_time":129.2178453,"remaining_time":49.45727264,"test":[0.4944042868]}, -{"learn":[0.4920877526],"iteration":3616,"passed_time":129.2554846,"remaining_time":49.42226574,"test":[0.4944036908]}, -{"learn":[0.4920868287],"iteration":3617,"passed_time":129.2923031,"remaining_time":49.38694385,"test":[0.4944029457]}, -{"learn":[0.4920855174],"iteration":3618,"passed_time":129.3282938,"remaining_time":49.35130527,"test":[0.4944020516]}, -{"learn":[0.4920850108],"iteration":3619,"passed_time":129.3668211,"remaining_time":49.31663346,"test":[0.4944017238]}, -{"learn":[0.4920843849],"iteration":3620,"passed_time":129.4044291,"remaining_time":49.28160942,"test":[0.4944012172]}, -{"learn":[0.4920831034],"iteration":3621,"passed_time":129.4406154,"remaining_time":49.24604308,"test":[0.4944001443]}, -{"learn":[0.4920817027],"iteration":3622,"passed_time":129.4765395,"remaining_time":49.21037671,"test":[0.4943992502]}, -{"learn":[0.4920805404],"iteration":3623,"passed_time":129.5118753,"remaining_time":49.17448686,"test":[0.494398535]}, -{"learn":[0.4920796463],"iteration":3624,"passed_time":129.5485992,"remaining_time":49.13912382,"test":[0.4943981177]}, -{"learn":[0.4920783648],"iteration":3625,"passed_time":129.5849598,"remaining_time":49.10362237,"test":[0.4943971641]}, -{"learn":[0.4920779774],"iteration":3626,"passed_time":129.6226955,"remaining_time":49.068641,"test":[0.4943968064]}, -{"learn":[0.4920769939],"iteration":3627,"passed_time":129.6594765,"remaining_time":49.03329708,"test":[0.4943963892]}, -{"learn":[0.4920745203],"iteration":3628,"passed_time":129.6950537,"remaining_time":48.99749754,"test":[0.4943947203]}, -{"learn":[0.4920740733],"iteration":3629,"passed_time":129.7328906,"remaining_time":48.96255101,"test":[0.4943945117]}, -{"learn":[0.4920734177],"iteration":3630,"passed_time":129.7688373,"remaining_time":48.92689018,"test":[0.4943940348]}, -{"learn":[0.492072762],"iteration":3631,"passed_time":129.8068539,"remaining_time":48.89200883,"test":[0.4943933494]}, -{"learn":[0.492072166],"iteration":3632,"passed_time":129.8432988,"remaining_time":48.85653438,"test":[0.4943929917]}, -{"learn":[0.4920711527],"iteration":3633,"passed_time":129.8795564,"remaining_time":48.82098902,"test":[0.4943923063]}, -{"learn":[0.492070348],"iteration":3634,"passed_time":129.9161901,"remaining_time":48.78558446,"test":[0.494391889]}, -{"learn":[0.492069603],"iteration":3635,"passed_time":129.953132,"remaining_time":48.75029485,"test":[0.4943913824]}, -{"learn":[0.4920685301],"iteration":3636,"passed_time":129.9901133,"remaining_time":48.71501909,"test":[0.494390846]}, -{"learn":[0.492067934],"iteration":3637,"passed_time":130.0273091,"remaining_time":48.67982269,"test":[0.4943904585]}, -{"learn":[0.4920670698],"iteration":3638,"passed_time":130.0634664,"remaining_time":48.64423681,"test":[0.4943898923]}, -{"learn":[0.4920654604],"iteration":3639,"passed_time":130.0987655,"remaining_time":48.60832998,"test":[0.4943885214]}, -{"learn":[0.492064626],"iteration":3640,"passed_time":130.1355258,"remaining_time":48.57296883,"test":[0.494388134]}, -{"learn":[0.4920639703],"iteration":3641,"passed_time":130.1724377,"remaining_time":48.53766346,"test":[0.4943874783]}, -{"learn":[0.4920626888],"iteration":3642,"passed_time":130.2074147,"remaining_time":48.50163649,"test":[0.494386763]}, -{"learn":[0.4920604238],"iteration":3643,"passed_time":130.2410252,"remaining_time":48.4651016,"test":[0.4943849153]}, -{"learn":[0.4920596192],"iteration":3644,"passed_time":130.2767871,"remaining_time":48.42936803,"test":[0.4943843193]}, -{"learn":[0.4920581291],"iteration":3645,"passed_time":130.3132399,"remaining_time":48.39389107,"test":[0.4943834848]}, -{"learn":[0.492056788],"iteration":3646,"passed_time":130.3476234,"remaining_time":48.35764585,"test":[0.4943823225]}, -{"learn":[0.4920553574],"iteration":3647,"passed_time":130.3831713,"remaining_time":48.32183323,"test":[0.4943811602]}, -{"learn":[0.492054523],"iteration":3648,"passed_time":130.420036,"remaining_time":48.28650824,"test":[0.4943808622]}, -{"learn":[0.4920538673],"iteration":3649,"passed_time":130.4577008,"remaining_time":48.25147837,"test":[0.4943804748]}, -{"learn":[0.4920523474],"iteration":3650,"passed_time":130.4949248,"remaining_time":48.21628417,"test":[0.4943794615]}, -{"learn":[0.492051513],"iteration":3651,"passed_time":130.5307612,"remaining_time":48.18057671,"test":[0.494378776]}, -{"learn":[0.4920508871],"iteration":3652,"passed_time":130.5666416,"remaining_time":48.14488536,"test":[0.4943782992]}, -{"learn":[0.492049844],"iteration":3653,"passed_time":130.6016008,"remaining_time":48.10885459,"test":[0.4943777627]}, -{"learn":[0.4920486519],"iteration":3654,"passed_time":130.6365112,"remaining_time":48.07280646,"test":[0.4943768091]}, -{"learn":[0.4920478771],"iteration":3655,"passed_time":130.6734364,"remaining_time":48.0374996,"test":[0.4943762428]}, -{"learn":[0.4920468638],"iteration":3656,"passed_time":130.7097832,"remaining_time":48.00197943,"test":[0.494375766]}, -{"learn":[0.4920459995],"iteration":3657,"passed_time":130.7481018,"remaining_time":47.96718224,"test":[0.4943754084]}, -{"learn":[0.4920455823],"iteration":3658,"passed_time":130.7864323,"remaining_time":47.93238744,"test":[0.4943749911]}, -{"learn":[0.4920449564],"iteration":3659,"passed_time":130.8240212,"remaining_time":47.89731924,"test":[0.4943745441]}, -{"learn":[0.4920439432],"iteration":3660,"passed_time":130.8604035,"remaining_time":47.86180832,"test":[0.4943738586]}, -{"learn":[0.492042453],"iteration":3661,"passed_time":130.896499,"remaining_time":47.82619216,"test":[0.4943729348]}, -{"learn":[0.49204141],"iteration":3662,"passed_time":130.9326238,"remaining_time":47.7905864,"test":[0.4943722791]}, -{"learn":[0.4920405755],"iteration":3663,"passed_time":130.9683676,"remaining_time":47.75484145,"test":[0.4943715341]}, -{"learn":[0.4920399795],"iteration":3664,"passed_time":131.0062103,"remaining_time":47.71986107,"test":[0.4943712658]}, -{"learn":[0.4920390854],"iteration":3665,"passed_time":131.0420726,"remaining_time":47.68415844,"test":[0.4943708486]}, -{"learn":[0.4920385787],"iteration":3666,"passed_time":131.0803053,"remaining_time":47.64931741,"test":[0.4943705506]}, -{"learn":[0.4920372972],"iteration":3667,"passed_time":131.1174866,"remaining_time":47.61409275,"test":[0.4943697757]}, -{"learn":[0.4920364032],"iteration":3668,"passed_time":131.1549662,"remaining_time":47.5789752,"test":[0.4943692393]}, -{"learn":[0.4920353303],"iteration":3669,"passed_time":131.1914974,"remaining_time":47.54351267,"test":[0.494368524]}, -{"learn":[0.4920345256],"iteration":3670,"passed_time":131.2286702,"remaining_time":47.50828184,"test":[0.4943680472]}, -{"learn":[0.4920335422],"iteration":3671,"passed_time":131.2658637,"remaining_time":47.47305746,"test":[0.4943675704]}, -{"learn":[0.4920325587],"iteration":3672,"passed_time":131.3021672,"remaining_time":47.43751044,"test":[0.4943670637]}, -{"learn":[0.4920315752],"iteration":3673,"passed_time":131.3392259,"remaining_time":47.40223558,"test":[0.4943663783]}, -{"learn":[0.4920291612],"iteration":3674,"passed_time":131.3736709,"remaining_time":47.36601739,"test":[0.4943646199]}, -{"learn":[0.4920272539],"iteration":3675,"passed_time":131.4079315,"remaining_time":47.32973374,"test":[0.4943635768]}, -{"learn":[0.492026628],"iteration":3676,"passed_time":131.4470457,"remaining_time":47.29519757,"test":[0.4943629212]}, -{"learn":[0.4920259426],"iteration":3677,"passed_time":131.4859453,"remaining_time":47.26058176,"test":[0.4943626232]}, -{"learn":[0.4920251081],"iteration":3678,"passed_time":131.5235532,"remaining_time":47.22549981,"test":[0.4943617589]}, -{"learn":[0.492024065],"iteration":3679,"passed_time":131.5607632,"remaining_time":47.19027375,"test":[0.4943612523]}, -{"learn":[0.4920230815],"iteration":3680,"passed_time":131.5966176,"remaining_time":47.15456087,"test":[0.494360686]}, -{"learn":[0.4920227239],"iteration":3681,"passed_time":131.6344718,"remaining_time":47.11956378,"test":[0.4943603582]}, -{"learn":[0.4920208166],"iteration":3682,"passed_time":131.6698171,"remaining_time":47.08366796,"test":[0.4943587787]}, -{"learn":[0.4920200119],"iteration":3683,"passed_time":131.7048874,"remaining_time":47.04767422,"test":[0.4943579442]}, -{"learn":[0.4920177171],"iteration":3684,"passed_time":131.73962,"remaining_time":47.01156047,"test":[0.4943560369]}, -{"learn":[0.4920171509],"iteration":3685,"passed_time":131.7787863,"remaining_time":46.97702799,"test":[0.4943556196]}, -{"learn":[0.4920155117],"iteration":3686,"passed_time":131.8145456,"remaining_time":46.94127974,"test":[0.4943547256]}, -{"learn":[0.4920150647],"iteration":3687,"passed_time":131.852606,"remaining_time":46.90635006,"test":[0.4943545169]}, -{"learn":[0.4920140812],"iteration":3688,"passed_time":131.8871572,"remaining_time":46.8701716,"test":[0.4943537123]}, -{"learn":[0.4920131574],"iteration":3689,"passed_time":131.9233289,"remaining_time":46.83456932,"test":[0.4943533547]}, -{"learn":[0.4920126805],"iteration":3690,"passed_time":131.9612293,"remaining_time":46.79957982,"test":[0.4943530566]}, -{"learn":[0.4920123229],"iteration":3691,"passed_time":131.9993313,"remaining_time":46.76466015,"test":[0.4943526692]}, -{"learn":[0.4920117567],"iteration":3692,"passed_time":132.0375157,"remaining_time":46.72976795,"test":[0.4943524904]}, -{"learn":[0.4920110116],"iteration":3693,"passed_time":132.0743739,"remaining_time":46.69440505,"test":[0.4943520135]}, -{"learn":[0.4920101771],"iteration":3694,"passed_time":132.1115304,"remaining_time":46.65914672,"test":[0.4943515069]}, -{"learn":[0.4920085678],"iteration":3695,"passed_time":132.1465933,"remaining_time":46.62314872,"test":[0.494350285]}, -{"learn":[0.4920077929],"iteration":3696,"passed_time":132.1826299,"remaining_time":46.58749439,"test":[0.4943498082]}, -{"learn":[0.4920072267],"iteration":3697,"passed_time":132.2186548,"remaining_time":46.55183572,"test":[0.4943493015]}, -{"learn":[0.4920063326],"iteration":3698,"passed_time":132.2552663,"remaining_time":46.51638319,"test":[0.4943487353]}, -{"learn":[0.4920055876],"iteration":3699,"passed_time":132.2916854,"remaining_time":46.48086245,"test":[0.4943481988]}, -{"learn":[0.4920049319],"iteration":3700,"passed_time":132.3292167,"remaining_time":46.44573157,"test":[0.4943479306]}, -{"learn":[0.4920043955],"iteration":3701,"passed_time":132.3668641,"remaining_time":46.41064009,"test":[0.4943474836]}, -{"learn":[0.4920036802],"iteration":3702,"passed_time":132.4034062,"remaining_time":46.37516009,"test":[0.4943469173]}, -{"learn":[0.4920014451],"iteration":3703,"passed_time":132.4382301,"remaining_time":46.33907836,"test":[0.494345457]}, -{"learn":[0.4920007],"iteration":3704,"passed_time":132.4780776,"remaining_time":46.30475318,"test":[0.4943450398]}, -{"learn":[0.4919984648],"iteration":3705,"passed_time":132.5124243,"remaining_time":46.26850433,"test":[0.494343043]}, -{"learn":[0.4919976304],"iteration":3706,"passed_time":132.5485187,"remaining_time":46.23286611,"test":[0.4943425662]}, -{"learn":[0.4919970641],"iteration":3707,"passed_time":132.5841216,"remaining_time":46.1970564,"test":[0.4943421192]}, -{"learn":[0.4919962595],"iteration":3708,"passed_time":132.6198504,"remaining_time":46.16129061,"test":[0.4943415529]}, -{"learn":[0.4919956336],"iteration":3709,"passed_time":132.656383,"remaining_time":46.12580435,"test":[0.4943409271]}, -{"learn":[0.4919947991],"iteration":3710,"passed_time":132.6925937,"remaining_time":46.09020569,"test":[0.4943405099]}, -{"learn":[0.4919937561],"iteration":3711,"passed_time":132.728962,"remaining_time":46.05466137,"test":[0.494339735]}, -{"learn":[0.4919925938],"iteration":3712,"passed_time":132.7643312,"remaining_time":46.01877032,"test":[0.4943390197]}, -{"learn":[0.4919917593],"iteration":3713,"passed_time":132.8021371,"remaining_time":45.98372329,"test":[0.4943385727]}, -{"learn":[0.4919908056],"iteration":3714,"passed_time":132.8386171,"remaining_time":45.94821614,"test":[0.4943381257]}, -{"learn":[0.4919899414],"iteration":3715,"passed_time":132.8747401,"remaining_time":45.91258512,"test":[0.4943374104]}, -{"learn":[0.4919891069],"iteration":3716,"passed_time":132.912834,"remaining_time":45.8776341,"test":[0.4943369634]}, -{"learn":[0.4919884512],"iteration":3717,"passed_time":132.9500755,"remaining_time":45.84238753,"test":[0.4943363673]}, -{"learn":[0.491988034],"iteration":3718,"passed_time":132.9879893,"remaining_time":45.80737142,"test":[0.4943361587]}, -{"learn":[0.4919871101],"iteration":3719,"passed_time":133.0255788,"remaining_time":45.77224217,"test":[0.4943354733]}, -{"learn":[0.4919865141],"iteration":3720,"passed_time":133.0624877,"remaining_time":45.73687766,"test":[0.4943351156]}, -{"learn":[0.4919858882],"iteration":3721,"passed_time":133.1000353,"remaining_time":45.70173162,"test":[0.4943346984]}, -{"learn":[0.491985322],"iteration":3722,"passed_time":133.1378517,"remaining_time":45.6666765,"test":[0.49433446]}, -{"learn":[0.4919846962],"iteration":3723,"passed_time":133.1754369,"remaining_time":45.63154069,"test":[0.4943340129]}, -{"learn":[0.4919840107],"iteration":3724,"passed_time":133.211294,"remaining_time":45.59581205,"test":[0.4943335063]}, -{"learn":[0.491982759],"iteration":3725,"passed_time":133.2464276,"remaining_time":45.55983594,"test":[0.4943325824]}, -{"learn":[0.4919819841],"iteration":3726,"passed_time":133.282872,"remaining_time":45.52430803,"test":[0.4943320758]}, -{"learn":[0.4919806728],"iteration":3727,"passed_time":133.3185286,"remaining_time":45.48851083,"test":[0.4943313903]}, -{"learn":[0.4919800172],"iteration":3728,"passed_time":133.3555816,"remaining_time":45.45318966,"test":[0.4943309731]}, -{"learn":[0.4919793615],"iteration":3729,"passed_time":133.3920521,"remaining_time":45.41766921,"test":[0.4943304069]}, -{"learn":[0.4919785271],"iteration":3730,"passed_time":133.4284921,"remaining_time":45.3821379,"test":[0.4943297214]}, -{"learn":[0.4919772754],"iteration":3731,"passed_time":133.4629968,"remaining_time":45.34594855,"test":[0.4943290956]}, -{"learn":[0.4919764707],"iteration":3732,"passed_time":133.5054575,"remaining_time":45.31246038,"test":[0.4943284399]}, -{"learn":[0.4919754872],"iteration":3733,"passed_time":133.543873,"remaining_time":45.27759593,"test":[0.4943279035]}, -{"learn":[0.4919742653],"iteration":3734,"passed_time":133.58103,"remaining_time":45.24230335,"test":[0.4943272478]}, -{"learn":[0.4919731925],"iteration":3735,"passed_time":133.6171873,"remaining_time":45.2066715,"test":[0.4943262941]}, -{"learn":[0.4919719706],"iteration":3736,"passed_time":133.6523877,"remaining_time":45.17071598,"test":[0.4943254299]}, -{"learn":[0.4919713149],"iteration":3737,"passed_time":133.6877727,"remaining_time":45.13482321,"test":[0.4943251319]}, -{"learn":[0.4919702122],"iteration":3738,"passed_time":133.7240493,"remaining_time":45.09923138,"test":[0.494324506]}, -{"learn":[0.4919694076],"iteration":3739,"passed_time":133.7616234,"remaining_time":45.06407632,"test":[0.4943238504]}, -{"learn":[0.4919686923],"iteration":3740,"passed_time":133.7985561,"remaining_time":45.02870412,"test":[0.4943233139]}, -{"learn":[0.4919675002],"iteration":3741,"passed_time":133.8347299,"remaining_time":44.99307596,"test":[0.4943225987]}, -{"learn":[0.4919659505],"iteration":3742,"passed_time":133.8702333,"remaining_time":44.95722236,"test":[0.4943215854]}, -{"learn":[0.4919648776],"iteration":3743,"passed_time":133.9058658,"remaining_time":44.92141225,"test":[0.4943206913]}, -{"learn":[0.4919643114],"iteration":3744,"passed_time":133.9427017,"remaining_time":44.88600551,"test":[0.4943202145]}, -{"learn":[0.4919637153],"iteration":3745,"passed_time":133.97919,"remaining_time":44.85048164,"test":[0.4943197972]}, -{"learn":[0.491962553],"iteration":3746,"passed_time":134.0154889,"remaining_time":44.81489395,"test":[0.494318933]}, -{"learn":[0.4919613907],"iteration":3747,"passed_time":134.0515598,"remaining_time":44.7792297,"test":[0.4943183369]}, -{"learn":[0.4919608245],"iteration":3748,"passed_time":134.0880337,"remaining_time":44.74369968,"test":[0.4943178303]}, -{"learn":[0.4919600794],"iteration":3749,"passed_time":134.1245746,"remaining_time":44.70819155,"test":[0.4943174131]}, -{"learn":[0.4919588873],"iteration":3750,"passed_time":134.1595472,"remaining_time":44.67216061,"test":[0.4943169362]}, -{"learn":[0.4919584105],"iteration":3751,"passed_time":134.1969887,"remaining_time":44.63695147,"test":[0.4943165488]}, -{"learn":[0.4919577847],"iteration":3752,"passed_time":134.2328511,"remaining_time":44.60121646,"test":[0.4943158931]}, -{"learn":[0.4919572482],"iteration":3753,"passed_time":134.270637,"remaining_time":44.56611981,"test":[0.4943155653]}, -{"learn":[0.4919561753],"iteration":3754,"passed_time":134.3059309,"remaining_time":44.53019547,"test":[0.4943144626]}, -{"learn":[0.4919558475],"iteration":3755,"passed_time":134.3435021,"remaining_time":44.49502572,"test":[0.494314254]}, -{"learn":[0.491955013],"iteration":3756,"passed_time":134.3800519,"remaining_time":44.45951677,"test":[0.494313807]}, -{"learn":[0.4919543872],"iteration":3757,"passed_time":134.4175745,"remaining_time":44.42432876,"test":[0.4943132705]}, -{"learn":[0.4919539104],"iteration":3758,"passed_time":134.4567963,"remaining_time":44.38970049,"test":[0.4943130321]}, -{"learn":[0.4919531951],"iteration":3759,"passed_time":134.4931491,"remaining_time":44.35412364,"test":[0.4943124957]}, -{"learn":[0.4919521222],"iteration":3760,"passed_time":134.5295665,"remaining_time":44.31856764,"test":[0.4943115122]}, -{"learn":[0.4919515858],"iteration":3761,"passed_time":134.5655348,"remaining_time":44.28286341,"test":[0.4943111546]}, -{"learn":[0.4919510791],"iteration":3762,"passed_time":134.6009621,"remaining_time":44.24698116,"test":[0.4943107075]}, -{"learn":[0.4919498572],"iteration":3763,"passed_time":134.6365392,"remaining_time":44.21114838,"test":[0.4943099029]}, -{"learn":[0.4919490526],"iteration":3764,"passed_time":134.6735296,"remaining_time":44.1757793,"test":[0.494309426]}, -{"learn":[0.491948695],"iteration":3765,"passed_time":134.7112451,"remaining_time":44.14064695,"test":[0.4943090982]}, -{"learn":[0.4919476817],"iteration":3766,"passed_time":134.7479343,"remaining_time":44.10517731,"test":[0.4943082637]}, -{"learn":[0.4919462512],"iteration":3767,"passed_time":134.7845267,"remaining_time":44.06967541,"test":[0.4943071909]}, -{"learn":[0.4919458637],"iteration":3768,"passed_time":134.8223628,"remaining_time":44.03457909,"test":[0.4943070716]}, -{"learn":[0.4919452081],"iteration":3769,"passed_time":134.8592402,"remaining_time":43.99916856,"test":[0.4943064756]}, -{"learn":[0.4919441054],"iteration":3770,"passed_time":134.8945902,"remaining_time":43.96325943,"test":[0.4943057901]}, -{"learn":[0.4919434795],"iteration":3771,"passed_time":134.9328026,"remaining_time":43.92828249,"test":[0.4943054921]}, -{"learn":[0.4919402311],"iteration":3772,"passed_time":134.967724,"remaining_time":43.8922336,"test":[0.4943034358]}, -{"learn":[0.4919392774],"iteration":3773,"passed_time":135.0047264,"remaining_time":43.85686129,"test":[0.4943029887]}, -{"learn":[0.491938443],"iteration":3774,"passed_time":135.0399141,"remaining_time":43.82089929,"test":[0.4943023927]}, -{"learn":[0.4919377575],"iteration":3775,"passed_time":135.07705,"remaining_time":43.78556918,"test":[0.4943017668]}, -{"learn":[0.4919373403],"iteration":3776,"passed_time":135.1160842,"remaining_time":43.75085277,"test":[0.4943014688]}, -{"learn":[0.4919362078],"iteration":3777,"passed_time":135.1514892,"remaining_time":43.71496025,"test":[0.4943004853]}, -{"learn":[0.4919348965],"iteration":3778,"passed_time":135.1860975,"remaining_time":43.67881055,"test":[0.4942997105]}, -{"learn":[0.4919338236],"iteration":3779,"passed_time":135.2210188,"remaining_time":43.64276267,"test":[0.4942989654]}, -{"learn":[0.4919326017],"iteration":3780,"passed_time":135.2562797,"remaining_time":43.60682489,"test":[0.4942977733]}, -{"learn":[0.4919318864],"iteration":3781,"passed_time":135.2927669,"remaining_time":43.57128241,"test":[0.4942973561]}, -{"learn":[0.4919312606],"iteration":3782,"passed_time":135.3305738,"remaining_time":43.53616396,"test":[0.4942968197]}, -{"learn":[0.4919304559],"iteration":3783,"passed_time":135.3674669,"remaining_time":43.50075048,"test":[0.4942964024]}, -{"learn":[0.4919287572],"iteration":3784,"passed_time":135.402734,"remaining_time":43.46481423,"test":[0.494295568]}, -{"learn":[0.4919281015],"iteration":3785,"passed_time":135.4396143,"remaining_time":43.42939561,"test":[0.4942951507]}, -{"learn":[0.4919271181],"iteration":3786,"passed_time":135.4759458,"remaining_time":43.39380043,"test":[0.4942940778]}, -{"learn":[0.4919265816],"iteration":3787,"passed_time":135.5137943,"remaining_time":43.35869026,"test":[0.4942935712]}, -{"learn":[0.4919255385],"iteration":3788,"passed_time":135.549966,"remaining_time":43.3230427,"test":[0.4942927069]}, -{"learn":[0.4919241676],"iteration":3789,"passed_time":135.5857041,"remaining_time":43.28725645,"test":[0.4942922003]}, -{"learn":[0.4919210384],"iteration":3790,"passed_time":135.6198822,"remaining_time":43.25097271,"test":[0.4942900545]}, -{"learn":[0.4919205616],"iteration":3791,"passed_time":135.657683,"remaining_time":43.21584415,"test":[0.4942896969]}, -{"learn":[0.4919192503],"iteration":3792,"passed_time":135.6934386,"remaining_time":43.18006339,"test":[0.4942887134]}, -{"learn":[0.4919184754],"iteration":3793,"passed_time":135.7313858,"remaining_time":43.14497926,"test":[0.494288326]}, -{"learn":[0.4919176707],"iteration":3794,"passed_time":135.7684721,"remaining_time":43.10962027,"test":[0.4942878194]}, -{"learn":[0.4919150183],"iteration":3795,"passed_time":135.8031455,"remaining_time":43.07349505,"test":[0.494285763]}, -{"learn":[0.4919142137],"iteration":3796,"passed_time":135.8403126,"remaining_time":43.03816066,"test":[0.4942851967]}, -{"learn":[0.491913707],"iteration":3797,"passed_time":135.8766424,"remaining_time":43.00256035,"test":[0.4942847795]}, -{"learn":[0.4919125447],"iteration":3798,"passed_time":135.9123343,"remaining_time":42.96675795,"test":[0.4942838854]}, -{"learn":[0.4919119785],"iteration":3799,"passed_time":135.9498166,"remaining_time":42.93152102,"test":[0.4942833788]}, -{"learn":[0.4919112334],"iteration":3800,"passed_time":135.9846903,"remaining_time":42.89546005,"test":[0.494283051]}, -{"learn":[0.4919109354],"iteration":3801,"passed_time":136.022885,"remaining_time":42.86044616,"test":[0.4942828126]}, -{"learn":[0.4919099221],"iteration":3802,"passed_time":136.0594747,"remaining_time":42.82492538,"test":[0.4942821271]}, -{"learn":[0.4919085214],"iteration":3803,"passed_time":136.0948701,"remaining_time":42.78902856,"test":[0.4942813522]}, -{"learn":[0.4919078956],"iteration":3804,"passed_time":136.1318651,"remaining_time":42.75363438,"test":[0.4942808158]}, -{"learn":[0.4919070611],"iteration":3805,"passed_time":136.1695728,"remaining_time":42.71846293,"test":[0.4942802794]}, -{"learn":[0.4919067035],"iteration":3806,"passed_time":136.2070553,"remaining_time":42.68321958,"test":[0.4942799217]}, -{"learn":[0.4919060776],"iteration":3807,"passed_time":136.2447163,"remaining_time":42.64803095,"test":[0.4942795641]}, -{"learn":[0.4919047365],"iteration":3808,"passed_time":136.280282,"remaining_time":42.61218583,"test":[0.4942787296]}, -{"learn":[0.4919039915],"iteration":3809,"passed_time":136.3192478,"remaining_time":42.57740284,"test":[0.4942782826]}, -{"learn":[0.4919031272],"iteration":3810,"passed_time":136.3556667,"remaining_time":42.54182307,"test":[0.4942775972]}, -{"learn":[0.4919023821],"iteration":3811,"passed_time":136.3917424,"remaining_time":42.50613588,"test":[0.4942772693]}, -{"learn":[0.4919014285],"iteration":3812,"passed_time":136.4285938,"remaining_time":42.47068998,"test":[0.4942767925]}, -{"learn":[0.4919003854],"iteration":3813,"passed_time":136.4634893,"remaining_time":42.4346351,"test":[0.4942760176]}, -{"learn":[0.4918994019],"iteration":3814,"passed_time":136.4999337,"remaining_time":42.39906198,"test":[0.4942754514]}, -{"learn":[0.4918985675],"iteration":3815,"passed_time":136.5353754,"remaining_time":42.36317727,"test":[0.4942749447]}, -{"learn":[0.4918980608],"iteration":3816,"passed_time":136.5740842,"remaining_time":42.32830537,"test":[0.4942746467]}, -{"learn":[0.4918974648],"iteration":3817,"passed_time":136.6142031,"remaining_time":42.29386802,"test":[0.4942743487]}, -{"learn":[0.4918965409],"iteration":3818,"passed_time":136.6504491,"remaining_time":42.25823001,"test":[0.4942736334]}, -{"learn":[0.4918958852],"iteration":3819,"passed_time":136.686999,"remaining_time":42.22268557,"test":[0.4942731566]}, -{"learn":[0.491895468],"iteration":3820,"passed_time":136.7250824,"remaining_time":42.18761374,"test":[0.4942728586]}, -{"learn":[0.4918938289],"iteration":3821,"passed_time":136.758685,"remaining_time":42.15115931,"test":[0.4942715175]}, -{"learn":[0.4918927858],"iteration":3822,"passed_time":136.7950319,"remaining_time":42.11555127,"test":[0.4942711301]}, -{"learn":[0.4918917725],"iteration":3823,"passed_time":136.830296,"remaining_time":42.07960985,"test":[0.4942702956]}, -{"learn":[0.4918912957],"iteration":3824,"passed_time":136.866849,"remaining_time":42.04406474,"test":[0.4942698784]}, -{"learn":[0.4918904314],"iteration":3825,"passed_time":136.902968,"remaining_time":42.0083859,"test":[0.4942692823]}, -{"learn":[0.4918890903],"iteration":3826,"passed_time":136.9390047,"remaining_time":41.97268161,"test":[0.4942686565]}, -{"learn":[0.4918880174],"iteration":3827,"passed_time":136.976219,"remaining_time":41.93733768,"test":[0.4942679412]}, -{"learn":[0.4918873022],"iteration":3828,"passed_time":137.0139782,"remaining_time":41.90215944,"test":[0.494267673]}, -{"learn":[0.4918864975],"iteration":3829,"passed_time":137.0522486,"remaining_time":41.86713599,"test":[0.4942670471]}, -{"learn":[0.4918858717],"iteration":3830,"passed_time":137.0904509,"remaining_time":41.83209007,"test":[0.4942666597]}, -{"learn":[0.4918841133],"iteration":3831,"passed_time":137.1255684,"remaining_time":41.79610228,"test":[0.4942652888]}, -{"learn":[0.4918833683],"iteration":3832,"passed_time":137.1629309,"remaining_time":41.76079844,"test":[0.4942647524]}, -{"learn":[0.4918825934],"iteration":3833,"passed_time":137.1997836,"remaining_time":41.72533847,"test":[0.4942641861]}, -{"learn":[0.4918817589],"iteration":3834,"passed_time":137.2358603,"remaining_time":41.68964206,"test":[0.4942637093]}, -{"learn":[0.4918812821],"iteration":3835,"passed_time":137.273552,"remaining_time":41.65443549,"test":[0.4942633218]}, -{"learn":[0.4918804178],"iteration":3836,"passed_time":137.3098525,"remaining_time":41.61880597,"test":[0.4942627854]}, -{"learn":[0.4918796728],"iteration":3837,"passed_time":137.346838,"remaining_time":41.58338346,"test":[0.4942623682]}, -{"learn":[0.4918789277],"iteration":3838,"passed_time":137.3845576,"remaining_time":41.54818219,"test":[0.4942621]}, -{"learn":[0.4918779442],"iteration":3839,"passed_time":137.4202775,"remaining_time":41.51237548,"test":[0.4942615933]}, -{"learn":[0.4918774674],"iteration":3840,"passed_time":137.4588583,"remaining_time":41.47743213,"test":[0.4942612357]}, -{"learn":[0.4918767522],"iteration":3841,"passed_time":137.4967321,"remaining_time":41.44227376,"test":[0.4942609079]}, -{"learn":[0.4918760667],"iteration":3842,"passed_time":137.5337858,"remaining_time":41.40686707,"test":[0.4942603416]}, -{"learn":[0.4918750832],"iteration":3843,"passed_time":137.5701163,"remaining_time":41.37124205,"test":[0.4942595668]}, -{"learn":[0.4918744872],"iteration":3844,"passed_time":137.6084115,"remaining_time":41.33620683,"test":[0.4942592985]}, -{"learn":[0.4918740997],"iteration":3845,"passed_time":137.6471703,"remaining_time":41.30130902,"test":[0.4942590303]}, -{"learn":[0.4918733249],"iteration":3846,"passed_time":137.6850095,"remaining_time":41.26613359,"test":[0.4942585833]}, -{"learn":[0.4918730269],"iteration":3847,"passed_time":137.7240088,"remaining_time":41.23130409,"test":[0.494258166]}, -{"learn":[0.4918720136],"iteration":3848,"passed_time":137.7592642,"remaining_time":41.19535284,"test":[0.4942573912]}, -{"learn":[0.4918707619],"iteration":3849,"passed_time":137.7952502,"remaining_time":41.15962019,"test":[0.4942567355]}, -{"learn":[0.491869093],"iteration":3850,"passed_time":137.8299449,"remaining_time":41.12350212,"test":[0.4942558415]}, -{"learn":[0.4918678115],"iteration":3851,"passed_time":137.8658239,"remaining_time":41.08773776,"test":[0.4942550368]}, -{"learn":[0.4918662915],"iteration":3852,"passed_time":137.9005426,"remaining_time":41.05162792,"test":[0.4942537553]}, -{"learn":[0.4918658743],"iteration":3853,"passed_time":137.9380356,"remaining_time":41.01634375,"test":[0.4942536361]}, -{"learn":[0.4918650696],"iteration":3854,"passed_time":137.9732771,"remaining_time":40.98038968,"test":[0.4942532189]}, -{"learn":[0.4918638477],"iteration":3855,"passed_time":138.0079269,"remaining_time":40.94426046,"test":[0.4942526228]}, -{"learn":[0.4918633113],"iteration":3856,"passed_time":138.0448409,"remaining_time":40.90880299,"test":[0.4942522354]}, -{"learn":[0.4918620894],"iteration":3857,"passed_time":138.0793173,"remaining_time":40.87262321,"test":[0.4942514009]}, -{"learn":[0.4918613444],"iteration":3858,"passed_time":138.1159148,"remaining_time":40.83707148,"test":[0.4942508347]}, -{"learn":[0.4918601225],"iteration":3859,"passed_time":138.1519175,"remaining_time":40.80134352,"test":[0.4942499108]}, -{"learn":[0.4918594668],"iteration":3860,"passed_time":138.1879722,"remaining_time":40.76563076,"test":[0.4942495234]}, -{"learn":[0.4918581257],"iteration":3861,"passed_time":138.2225389,"remaining_time":40.72947937,"test":[0.4942485995]}, -{"learn":[0.4918573806],"iteration":3862,"passed_time":138.2571787,"remaining_time":40.6933503,"test":[0.4942480929]}, -{"learn":[0.4918565462],"iteration":3863,"passed_time":138.2934866,"remaining_time":40.65771243,"test":[0.4942474372]}, -{"learn":[0.4918549965],"iteration":3864,"passed_time":138.3302579,"remaining_time":40.62221029,"test":[0.494246722]}, -{"learn":[0.491854162],"iteration":3865,"passed_time":138.366404,"remaining_time":40.5865241,"test":[0.4942462451]}, -{"learn":[0.4918534765],"iteration":3866,"passed_time":138.4031389,"remaining_time":40.55101019,"test":[0.4942457087]}, -{"learn":[0.4918516288],"iteration":3867,"passed_time":138.4369043,"remaining_time":40.51462658,"test":[0.4942441292]}, -{"learn":[0.4918511222],"iteration":3868,"passed_time":138.4743518,"remaining_time":40.47932072,"test":[0.4942437715]}, -{"learn":[0.4918502281],"iteration":3869,"passed_time":138.5112068,"remaining_time":40.44384073,"test":[0.4942432649]}, -{"learn":[0.491849185],"iteration":3870,"passed_time":138.5468508,"remaining_time":40.40800686,"test":[0.4942424304]}, -{"learn":[0.491848738],"iteration":3871,"passed_time":138.5844456,"remaining_time":40.37274139,"test":[0.494242192]}, -{"learn":[0.4918479631],"iteration":3872,"passed_time":138.6203104,"remaining_time":40.3369713,"test":[0.4942416854]}, -{"learn":[0.4918462942],"iteration":3873,"passed_time":138.6541109,"remaining_time":40.30060117,"test":[0.4942404933]}, -{"learn":[0.4918457875],"iteration":3874,"passed_time":138.6905538,"remaining_time":40.2649995,"test":[0.494239927]}, -{"learn":[0.4918451021],"iteration":3875,"passed_time":138.7275713,"remaining_time":40.22956402,"test":[0.4942393608]}, -{"learn":[0.4918440292],"iteration":3876,"passed_time":138.7618864,"remaining_time":40.19334497,"test":[0.4942389435]}, -{"learn":[0.4918433736],"iteration":3877,"passed_time":138.7976079,"remaining_time":40.15753378,"test":[0.4942383475]}, -{"learn":[0.4918430159],"iteration":3878,"passed_time":138.8346352,"remaining_time":40.12210004,"test":[0.4942381091]}, -{"learn":[0.4918422709],"iteration":3879,"passed_time":138.8707308,"remaining_time":40.08639651,"test":[0.4942375428]}, -{"learn":[0.4918412874],"iteration":3880,"passed_time":138.9069101,"remaining_time":40.05071694,"test":[0.4942369766]}, -{"learn":[0.4918406913],"iteration":3881,"passed_time":138.943262,"remaining_time":40.01508679,"test":[0.4942365594]}, -{"learn":[0.4918400655],"iteration":3882,"passed_time":138.9798771,"remaining_time":39.97953199,"test":[0.4942361421]}, -{"learn":[0.4918389628],"iteration":3883,"passed_time":139.0174071,"remaining_time":39.94423954,"test":[0.4942355461]}, -{"learn":[0.4918375919],"iteration":3884,"passed_time":139.0539103,"remaining_time":39.90865123,"test":[0.49423495]}, -{"learn":[0.4918366382],"iteration":3885,"passed_time":139.0887281,"remaining_time":39.87257928,"test":[0.4942342944]}, -{"learn":[0.4918362806],"iteration":3886,"passed_time":139.1254827,"remaining_time":39.83706258,"test":[0.494234056]}, -{"learn":[0.4918359528],"iteration":3887,"passed_time":139.1621078,"remaining_time":39.80150819,"test":[0.4942337579]}, -{"learn":[0.4918341348],"iteration":3888,"passed_time":139.1970306,"remaining_time":39.76546696,"test":[0.494232387]}, -{"learn":[0.4918331216],"iteration":3889,"passed_time":139.2320746,"remaining_time":39.72946088,"test":[0.49423194]}, -{"learn":[0.4918322871],"iteration":3890,"passed_time":139.2670842,"remaining_time":39.6934455,"test":[0.4942314036]}, -{"learn":[0.491831393],"iteration":3891,"passed_time":139.3031368,"remaining_time":39.65772753,"test":[0.4942308671]}, -{"learn":[0.491830499],"iteration":3892,"passed_time":139.337872,"remaining_time":39.6216348,"test":[0.4942303307]}, -{"learn":[0.4918282936],"iteration":3893,"passed_time":139.3716422,"remaining_time":39.58526868,"test":[0.4942286319]}, -{"learn":[0.4918260584],"iteration":3894,"passed_time":139.4058913,"remaining_time":39.54903976,"test":[0.4942272908]}, -{"learn":[0.4918255518],"iteration":3895,"passed_time":139.4431367,"remaining_time":39.51366092,"test":[0.494226963]}, -{"learn":[0.4918251047],"iteration":3896,"passed_time":139.479673,"remaining_time":39.4780804,"test":[0.4942265458]}, -{"learn":[0.4918235252],"iteration":3897,"passed_time":139.5147055,"remaining_time":39.44207425,"test":[0.4942253537]}, -{"learn":[0.4918230484],"iteration":3898,"passed_time":139.5508691,"remaining_time":39.40638803,"test":[0.4942247278]}, -{"learn":[0.4918226013],"iteration":3899,"passed_time":139.5873588,"remaining_time":39.3707935,"test":[0.4942244]}, -{"learn":[0.4918218265],"iteration":3900,"passed_time":139.6227801,"remaining_time":39.33489754,"test":[0.4942238338]}, -{"learn":[0.4918208132],"iteration":3901,"passed_time":139.6600628,"remaining_time":39.29952562,"test":[0.4942233867]}, -{"learn":[0.4918187866],"iteration":3902,"passed_time":139.6946325,"remaining_time":39.26339018,"test":[0.4942221052]}, -{"learn":[0.4918183098],"iteration":3903,"passed_time":139.7310964,"remaining_time":39.22778731,"test":[0.4942218072]}, -{"learn":[0.4918179522],"iteration":3904,"passed_time":139.7677297,"remaining_time":39.1922315,"test":[0.4942214496]}, -{"learn":[0.4918171773],"iteration":3905,"passed_time":139.8048733,"remaining_time":39.15681808,"test":[0.4942208535]}, -{"learn":[0.4918164919],"iteration":3906,"passed_time":139.841325,"remaining_time":39.12121021,"test":[0.4942202873]}, -{"learn":[0.4918156872],"iteration":3907,"passed_time":139.8768984,"remaining_time":39.08535646,"test":[0.4942198403]}, -{"learn":[0.4918146143],"iteration":3908,"passed_time":139.9126476,"remaining_time":39.04955195,"test":[0.494219423]}, -{"learn":[0.4918137501],"iteration":3909,"passed_time":139.9484167,"remaining_time":39.013753,"test":[0.4942188866]}, -{"learn":[0.4918127666],"iteration":3910,"passed_time":139.9843974,"remaining_time":38.97801299,"test":[0.4942180521]}, -{"learn":[0.4918121705],"iteration":3911,"passed_time":140.0207507,"remaining_time":38.94237647,"test":[0.4942178137]}, -{"learn":[0.4918113063],"iteration":3912,"passed_time":140.0551768,"remaining_time":38.90620424,"test":[0.4942172773]}, -{"learn":[0.4918104122],"iteration":3913,"passed_time":140.0916318,"remaining_time":38.87059584,"test":[0.4942168302]}, -{"learn":[0.4918096969],"iteration":3914,"passed_time":140.1269708,"remaining_time":38.83467773,"test":[0.494216264]}, -{"learn":[0.4918093691],"iteration":3915,"passed_time":140.1633331,"remaining_time":38.79904317,"test":[0.4942160256]}, -{"learn":[0.4918080876],"iteration":3916,"passed_time":140.1986194,"remaining_time":38.76311075,"test":[0.4942154295]}, -{"learn":[0.4918072829],"iteration":3917,"passed_time":140.2357079,"remaining_time":38.72767636,"test":[0.4942151017]}, -{"learn":[0.4918061207],"iteration":3918,"passed_time":140.2708837,"remaining_time":38.69171352,"test":[0.4942143268]}, -{"learn":[0.4918054948],"iteration":3919,"passed_time":140.306466,"remaining_time":38.65586309,"test":[0.4942138798]}, -{"learn":[0.4918040643],"iteration":3920,"passed_time":140.3413523,"remaining_time":38.61982124,"test":[0.4942130453]}, -{"learn":[0.4918036173],"iteration":3921,"passed_time":140.3790387,"remaining_time":38.58454964,"test":[0.4942127473]}, -{"learn":[0.491802753],"iteration":3922,"passed_time":140.4161076,"remaining_time":38.54910727,"test":[0.4942121811]}, -{"learn":[0.4918021271],"iteration":3923,"passed_time":140.4521007,"remaining_time":38.5133691,"test":[0.4942117638]}, -{"learn":[0.4918014417],"iteration":3924,"passed_time":140.487926,"remaining_time":38.47758484,"test":[0.4942111976]}, -{"learn":[0.4918003986],"iteration":3925,"passed_time":140.524283,"remaining_time":38.44194598,"test":[0.4942104227]}, -{"learn":[0.4917996238],"iteration":3926,"passed_time":140.5610067,"remaining_time":38.40640699,"test":[0.4942099757]}, -{"learn":[0.4917988489],"iteration":3927,"passed_time":140.597088,"remaining_time":38.37069203,"test":[0.4942095585]}, -{"learn":[0.4917979846],"iteration":3928,"passed_time":140.6337571,"remaining_time":38.33513714,"test":[0.494209022]}, -{"learn":[0.4917972992],"iteration":3929,"passed_time":140.6717244,"remaining_time":38.29993514,"test":[0.4942086644]}, -{"learn":[0.4917964051],"iteration":3930,"passed_time":140.7078162,"remaining_time":38.26422171,"test":[0.4942080087]}, -{"learn":[0.4917958389],"iteration":3931,"passed_time":140.744002,"remaining_time":38.22853359,"test":[0.4942076809]}, -{"learn":[0.4917953024],"iteration":3932,"passed_time":140.7801147,"remaining_time":38.19282544,"test":[0.4942070253]}, -{"learn":[0.4917948554],"iteration":3933,"passed_time":140.8181163,"remaining_time":38.15762888,"test":[0.4942067868]}, -{"learn":[0.4917936931],"iteration":3934,"passed_time":140.8543699,"remaining_time":38.1219578,"test":[0.4942060418]}, -{"learn":[0.4917912195],"iteration":3935,"passed_time":140.8882748,"remaining_time":38.08565153,"test":[0.4942044623]}, -{"learn":[0.4917898784],"iteration":3936,"passed_time":140.9234582,"remaining_time":38.04969167,"test":[0.4942035384]}, -{"learn":[0.4917894016],"iteration":3937,"passed_time":140.959836,"remaining_time":38.01405431,"test":[0.4942033298]}, -{"learn":[0.4917880903],"iteration":3938,"passed_time":140.9951167,"remaining_time":37.97812105,"test":[0.4942024357]}, -{"learn":[0.491787077],"iteration":3939,"passed_time":141.0298679,"remaining_time":37.94204569,"test":[0.4942018993]}, -{"learn":[0.4917857359],"iteration":3940,"passed_time":141.0645404,"remaining_time":37.90594983,"test":[0.4942009456]}, -{"learn":[0.4917850206],"iteration":3941,"passed_time":141.1024781,"remaining_time":37.87073105,"test":[0.4942004092]}, -{"learn":[0.4917837689],"iteration":3942,"passed_time":141.1375364,"remaining_time":37.83473903,"test":[0.4941997237]}, -{"learn":[0.4917829345],"iteration":3943,"passed_time":141.1732202,"remaining_time":37.79891495,"test":[0.4941989786]}, -{"learn":[0.4917818318],"iteration":3944,"passed_time":141.2090779,"remaining_time":37.76313744,"test":[0.4941983826]}, -{"learn":[0.4917808483],"iteration":3945,"passed_time":141.245195,"remaining_time":37.72742917,"test":[0.4941979952]}, -{"learn":[0.4917801926],"iteration":3946,"passed_time":141.281146,"remaining_time":37.69167638,"test":[0.4941974289]}, -{"learn":[0.4917797158],"iteration":3947,"passed_time":141.3192407,"remaining_time":37.65649475,"test":[0.4941973097]}, -{"learn":[0.4917786727],"iteration":3948,"passed_time":141.3552264,"remaining_time":37.62075029,"test":[0.4941966243]}, -{"learn":[0.4917779277],"iteration":3949,"passed_time":141.3920772,"remaining_time":37.58523572,"test":[0.494196207]}, -{"learn":[0.4917774508],"iteration":3950,"passed_time":141.4313866,"remaining_time":37.5503732,"test":[0.494195909]}, -{"learn":[0.4917763779],"iteration":3951,"passed_time":141.4675626,"remaining_time":37.51467754,"test":[0.4941954322]}, -{"learn":[0.4917757819],"iteration":3952,"passed_time":141.5031577,"remaining_time":37.47882774,"test":[0.4941947765]}, -{"learn":[0.4917751262],"iteration":3953,"passed_time":141.5416903,"remaining_time":37.44375519,"test":[0.4941942997]}, -{"learn":[0.4917737255],"iteration":3954,"passed_time":141.5769685,"remaining_time":37.407821,"test":[0.4941934056]}, -{"learn":[0.4917725036],"iteration":3955,"passed_time":141.6108943,"remaining_time":37.37153023,"test":[0.4941927202]}, -{"learn":[0.4917720864],"iteration":3956,"passed_time":141.648257,"remaining_time":37.33614659,"test":[0.4941924221]}, -{"learn":[0.491771401],"iteration":3957,"passed_time":141.6838634,"remaining_time":37.30029956,"test":[0.4941920943]}, -{"learn":[0.4917708347],"iteration":3958,"passed_time":141.7216573,"remaining_time":37.26502785,"test":[0.4941916771]}, -{"learn":[0.491769434],"iteration":3959,"passed_time":141.7579474,"remaining_time":37.22935993,"test":[0.494190634]}, -{"learn":[0.4917686591],"iteration":3960,"passed_time":141.7950889,"remaining_time":37.193915,"test":[0.4941902466]}, -{"learn":[0.4917678545],"iteration":3961,"passed_time":141.8303797,"remaining_time":37.15798439,"test":[0.4941895015]}, -{"learn":[0.4917670498],"iteration":3962,"passed_time":141.8663191,"remaining_time":37.1222238,"test":[0.4941890247]}, -{"learn":[0.4917663644],"iteration":3963,"passed_time":141.9027106,"remaining_time":37.08658127,"test":[0.4941884882]}, -{"learn":[0.4917644868],"iteration":3964,"passed_time":141.9370398,"remaining_time":37.05040004,"test":[0.4941868193]}, -{"learn":[0.4917635033],"iteration":3965,"passed_time":141.9734998,"remaining_time":37.01477529,"test":[0.4941863723]}, -{"learn":[0.4917629967],"iteration":3966,"passed_time":142.0098676,"remaining_time":36.97912611,"test":[0.4941860742]}, -{"learn":[0.4917624603],"iteration":3967,"passed_time":142.04635,"remaining_time":36.94350635,"test":[0.4941857762]}, -{"learn":[0.491761745],"iteration":3968,"passed_time":142.08349,"remaining_time":36.90805698,"test":[0.4941852398]}, -{"learn":[0.4917595694],"iteration":3969,"passed_time":142.1186119,"remaining_time":36.87208318,"test":[0.494183541]}, -{"learn":[0.4917587052],"iteration":3970,"passed_time":142.1552217,"remaining_time":36.83649536,"test":[0.4941828556]}, -{"learn":[0.4917574535],"iteration":3971,"passed_time":142.1901832,"remaining_time":36.80048044,"test":[0.4941821701]}, -{"learn":[0.4917563508],"iteration":3972,"passed_time":142.2241969,"remaining_time":36.76422104,"test":[0.4941814251]}, -{"learn":[0.4917560826],"iteration":3973,"passed_time":142.2618152,"remaining_time":36.7288934,"test":[0.4941813357]}, -{"learn":[0.4917556057],"iteration":3974,"passed_time":142.2986346,"remaining_time":36.6933586,"test":[0.4941810078]}, -{"learn":[0.4917543242],"iteration":3975,"passed_time":142.3322953,"remaining_time":36.65700966,"test":[0.4941803224]}, -{"learn":[0.4917525361],"iteration":3976,"passed_time":142.3673015,"remaining_time":36.62100817,"test":[0.4941791005]}, -{"learn":[0.491751642],"iteration":3977,"passed_time":142.4017892,"remaining_time":36.58487394,"test":[0.4941785939]}, -{"learn":[0.491751195],"iteration":3978,"passed_time":142.4377737,"remaining_time":36.54912465,"test":[0.4941780872]}, -{"learn":[0.4917501519],"iteration":3979,"passed_time":142.4730643,"remaining_time":36.51319737,"test":[0.4941776104]}, -{"learn":[0.4917494068],"iteration":3980,"passed_time":142.5089059,"remaining_time":36.47741147,"test":[0.4941769249]}, -{"learn":[0.4917474101],"iteration":3981,"passed_time":142.5433522,"remaining_time":36.44126886,"test":[0.4941757626]}, -{"learn":[0.4917469333],"iteration":3982,"passed_time":142.5787539,"remaining_time":36.405371,"test":[0.494175256]}, -{"learn":[0.4917462776],"iteration":3983,"passed_time":142.6136422,"remaining_time":36.36934249,"test":[0.4941748686]}, -{"learn":[0.4917454431],"iteration":3984,"passed_time":142.6489325,"remaining_time":36.33341693,"test":[0.4941745109]}, -{"learn":[0.4917433272],"iteration":3985,"passed_time":142.6829669,"remaining_time":36.29717221,"test":[0.4941726036]}, -{"learn":[0.4917426715],"iteration":3986,"passed_time":142.7188152,"remaining_time":36.26138946,"test":[0.4941722758]}, -{"learn":[0.4917421947],"iteration":3987,"passed_time":142.7560977,"remaining_time":36.22597062,"test":[0.4941720075]}, -{"learn":[0.4917413602],"iteration":3988,"passed_time":142.7921162,"remaining_time":36.19023049,"test":[0.4941714115]}, -{"learn":[0.4917408536],"iteration":3989,"passed_time":142.8303374,"remaining_time":36.15504783,"test":[0.4941710539]}, -{"learn":[0.4917397211],"iteration":3990,"passed_time":142.8647362,"remaining_time":36.11889723,"test":[0.4941704578]}, -{"learn":[0.4917372773],"iteration":3991,"passed_time":142.8982961,"remaining_time":36.08253569,"test":[0.4941686995]}, -{"learn":[0.4917360852],"iteration":3992,"passed_time":142.9330215,"remaining_time":36.04646947,"test":[0.4941683717]}, -{"learn":[0.4917351911],"iteration":3993,"passed_time":142.9690444,"remaining_time":36.01073076,"test":[0.494167567]}, -{"learn":[0.4917348037],"iteration":3994,"passed_time":143.0072595,"remaining_time":35.97554339,"test":[0.4941673286]}, -{"learn":[0.4917339692],"iteration":3995,"passed_time":143.0432853,"remaining_time":35.93980442,"test":[0.4941668815]}, -{"learn":[0.4917336712],"iteration":3996,"passed_time":143.0801519,"remaining_time":35.9042763,"test":[0.4941667325]}, -{"learn":[0.4917330752],"iteration":3997,"passed_time":143.1165172,"remaining_time":35.86862188,"test":[0.4941661961]}, -{"learn":[0.4917316447],"iteration":3998,"passed_time":143.1500914,"remaining_time":35.83226844,"test":[0.494165153]}, -{"learn":[0.49173084],"iteration":3999,"passed_time":143.186361,"remaining_time":35.79659025,"test":[0.4941645868]}, -{"learn":[0.491730393],"iteration":4000,"passed_time":143.2248512,"remaining_time":35.76146621,"test":[0.4941643781]}, -{"learn":[0.4917294393],"iteration":4001,"passed_time":143.2610197,"remaining_time":35.72576154,"test":[0.4941637523]}, -{"learn":[0.4917282472],"iteration":4002,"passed_time":143.2966137,"remaining_time":35.68991352,"test":[0.4941624708]}, -{"learn":[0.4917279194],"iteration":4003,"passed_time":143.3341954,"remaining_time":35.6545601,"test":[0.4941622324]}, -{"learn":[0.4917269359],"iteration":4004,"passed_time":143.3716043,"remaining_time":35.61916261,"test":[0.4941618151]}, -{"learn":[0.4917261014],"iteration":4005,"passed_time":143.4074068,"remaining_time":35.58336555,"test":[0.4941610701]}, -{"learn":[0.4917250285],"iteration":4006,"passed_time":143.4441154,"remaining_time":35.54779301,"test":[0.4941606529]}, -{"learn":[0.4917243431],"iteration":4007,"passed_time":143.482114,"remaining_time":35.51253918,"test":[0.4941602058]}, -{"learn":[0.4917234788],"iteration":4008,"passed_time":143.5176906,"remaining_time":35.47668531,"test":[0.4941596396]}, -{"learn":[0.4917228232],"iteration":4009,"passed_time":143.5532423,"remaining_time":35.4408254,"test":[0.4941591925]}, -{"learn":[0.4917223761],"iteration":4010,"passed_time":143.5934518,"remaining_time":35.40611415,"test":[0.4941589541]}, -{"learn":[0.4917218695],"iteration":4011,"passed_time":143.6320685,"remaining_time":35.3710079,"test":[0.4941586263]}, -{"learn":[0.491721035],"iteration":4012,"passed_time":143.6692952,"remaining_time":35.33555803,"test":[0.4941582091]}, -{"learn":[0.4917187999],"iteration":4013,"passed_time":143.7026642,"remaining_time":35.29915968,"test":[0.4941569574]}, -{"learn":[0.491718025],"iteration":4014,"passed_time":143.738096,"remaining_time":35.26326888,"test":[0.4941563017]}, -{"learn":[0.4917171905],"iteration":4015,"passed_time":143.7753117,"remaining_time":35.22781541,"test":[0.4941560633]}, -{"learn":[0.4917167435],"iteration":4016,"passed_time":143.8310011,"remaining_time":35.19688176,"test":[0.4941557057]}, -{"learn":[0.4917158792],"iteration":4017,"passed_time":143.8698295,"remaining_time":35.16181498,"test":[0.4941552586]}, -{"learn":[0.491715015],"iteration":4018,"passed_time":143.9047771,"remaining_time":35.12579905,"test":[0.4941548116]}, -{"learn":[0.4917145381],"iteration":4019,"passed_time":143.9411631,"remaining_time":35.0901343,"test":[0.494154305]}, -{"learn":[0.4917130778],"iteration":4020,"passed_time":143.9772477,"remaining_time":35.0543958,"test":[0.4941531427]}, -{"learn":[0.4917122732],"iteration":4021,"passed_time":144.0133744,"remaining_time":35.01866738,"test":[0.4941527254]}, -{"learn":[0.4917114089],"iteration":4022,"passed_time":144.048389,"remaining_time":34.98266867,"test":[0.49415204]}, -{"learn":[0.491710783],"iteration":4023,"passed_time":144.0840831,"remaining_time":34.94683526,"test":[0.4941516824]}, -{"learn":[0.4917095015],"iteration":4024,"passed_time":144.1191755,"remaining_time":34.91085619,"test":[0.4941508181]}, -{"learn":[0.4917079518],"iteration":4025,"passed_time":144.1540633,"remaining_time":34.87482802,"test":[0.4941499538]}, -{"learn":[0.4917071174],"iteration":4026,"passed_time":144.1905834,"remaining_time":34.83919484,"test":[0.4941494472]}, -{"learn":[0.4917062531],"iteration":4027,"passed_time":144.2270436,"remaining_time":34.80354677,"test":[0.4941485531]}, -{"learn":[0.491705508],"iteration":4028,"passed_time":144.2632039,"remaining_time":34.76782601,"test":[0.4941481955]}, -{"learn":[0.4917050014],"iteration":4029,"passed_time":144.2996401,"remaining_time":34.73217144,"test":[0.4941478975]}, -{"learn":[0.491704614],"iteration":4030,"passed_time":144.3365663,"remaining_time":34.69663426,"test":[0.4941475994]}, -{"learn":[0.4917033623],"iteration":4031,"passed_time":144.3711805,"remaining_time":34.66054135,"test":[0.4941466756]}, -{"learn":[0.491702796],"iteration":4032,"passed_time":144.4080062,"remaining_time":34.62497941,"test":[0.4941461689]}, -{"learn":[0.4917024086],"iteration":4033,"passed_time":144.4448509,"remaining_time":34.58942142,"test":[0.4941458113]}, -{"learn":[0.4917012463],"iteration":4034,"passed_time":144.4802621,"remaining_time":34.55351993,"test":[0.4941452749]}, -{"learn":[0.4916999052],"iteration":4035,"passed_time":144.5155354,"remaining_time":34.51758575,"test":[0.4941444404]}, -{"learn":[0.4916995178],"iteration":4036,"passed_time":144.5522431,"remaining_time":34.48199408,"test":[0.4941440828]}, -{"learn":[0.4916982959],"iteration":4037,"passed_time":144.5868774,"remaining_time":34.44590789,"test":[0.4941430695]}, -{"learn":[0.4916975806],"iteration":4038,"passed_time":144.6225955,"remaining_time":34.41008028,"test":[0.4941424138]}, -{"learn":[0.4916962991],"iteration":4039,"passed_time":144.6568528,"remaining_time":34.37390561,"test":[0.494141788]}, -{"learn":[0.4916954944],"iteration":4040,"passed_time":144.6928247,"remaining_time":34.33813881,"test":[0.4941411323]}, -{"learn":[0.4916940937],"iteration":4041,"passed_time":144.7289804,"remaining_time":34.30241545,"test":[0.4941405363]}, -{"learn":[0.4916933785],"iteration":4042,"passed_time":144.7644233,"remaining_time":34.26652315,"test":[0.4941399402]}, -{"learn":[0.4916926334],"iteration":4043,"passed_time":144.802149,"remaining_time":34.23117074,"test":[0.4941394634]}, -{"learn":[0.4916919778],"iteration":4044,"passed_time":144.8386215,"remaining_time":34.19552128,"test":[0.494138927]}, -{"learn":[0.4916912029],"iteration":4045,"passed_time":144.873553,"remaining_time":34.15950804,"test":[0.4941386587]}, -{"learn":[0.4916901896],"iteration":4046,"passed_time":144.910418,"remaining_time":34.12395067,"test":[0.4941381819]}, -{"learn":[0.4916888485],"iteration":4047,"passed_time":144.9458778,"remaining_time":34.08806218,"test":[0.4941374667]}, -{"learn":[0.4916883717],"iteration":4048,"passed_time":144.9841115,"remaining_time":34.0528254,"test":[0.4941371388]}, -{"learn":[0.4916871498],"iteration":4049,"passed_time":145.019347,"remaining_time":34.01688387,"test":[0.4941364832]}, -{"learn":[0.4916862855],"iteration":4050,"passed_time":145.0555477,"remaining_time":33.98116879,"test":[0.4941361554]}, -{"learn":[0.4916853319],"iteration":4051,"passed_time":145.0908513,"remaining_time":33.94524359,"test":[0.4941353805]}, -{"learn":[0.4916841994],"iteration":4052,"passed_time":145.1268715,"remaining_time":33.90948613,"test":[0.4941347546]}, -{"learn":[0.4916832159],"iteration":4053,"passed_time":145.1637351,"remaining_time":33.87392536,"test":[0.4941341884]}, -{"learn":[0.49168259],"iteration":4054,"passed_time":145.1993953,"remaining_time":33.8380835,"test":[0.4941336818]}, -{"learn":[0.4916820238],"iteration":4055,"passed_time":145.2348517,"remaining_time":33.80219428,"test":[0.4941330559]}, -{"learn":[0.491681398],"iteration":4056,"passed_time":145.2729899,"remaining_time":33.76692864,"test":[0.4941326685]}, -{"learn":[0.4916798184],"iteration":4057,"passed_time":145.3084288,"remaining_time":33.73103497,"test":[0.4941314466]}, -{"learn":[0.4916794906],"iteration":4058,"passed_time":145.3461561,"remaining_time":33.69567205,"test":[0.4941311188]}, -{"learn":[0.4916784177],"iteration":4059,"passed_time":145.3810936,"remaining_time":33.65966207,"test":[0.4941305525]}, -{"learn":[0.4916771958],"iteration":4060,"passed_time":145.4168004,"remaining_time":33.62383048,"test":[0.4941299267]}, -{"learn":[0.4916764806],"iteration":4061,"passed_time":145.4528742,"remaining_time":33.58808369,"test":[0.4941295988]}, -{"learn":[0.4916751395],"iteration":4062,"passed_time":145.4872415,"remaining_time":33.55194321,"test":[0.4941289134]}, -{"learn":[0.4916748414],"iteration":4063,"passed_time":145.5250618,"remaining_time":33.51659887,"test":[0.4941285558]}, -{"learn":[0.4916728149],"iteration":4064,"passed_time":145.5584109,"remaining_time":33.48022488,"test":[0.4941271551]}, -{"learn":[0.491671742],"iteration":4065,"passed_time":145.5932514,"remaining_time":33.44419499,"test":[0.4941262908]}, -{"learn":[0.4916704605],"iteration":4066,"passed_time":145.6281489,"remaining_time":33.40817874,"test":[0.4941255457]}, -{"learn":[0.4916694472],"iteration":4067,"passed_time":145.6633862,"remaining_time":33.3722409,"test":[0.4941249497]}, -{"learn":[0.4916683147],"iteration":4068,"passed_time":145.6991302,"remaining_time":33.33641933,"test":[0.4941245026]}, -{"learn":[0.4916677187],"iteration":4069,"passed_time":145.7358032,"remaining_time":33.30081006,"test":[0.4941241152]}, -{"learn":[0.4916673909],"iteration":4070,"passed_time":145.773879,"remaining_time":33.2655204,"test":[0.494123847]}, -{"learn":[0.4916668246],"iteration":4071,"passed_time":145.809335,"remaining_time":33.22963235,"test":[0.4941234596]}, -{"learn":[0.4916653345],"iteration":4072,"passed_time":145.8460702,"remaining_time":33.19403562,"test":[0.4941225059]}, -{"learn":[0.4916649173],"iteration":4073,"passed_time":145.8837352,"remaining_time":33.15864967,"test":[0.4941222377]}, -{"learn":[0.4916642318],"iteration":4074,"passed_time":145.9220579,"remaining_time":33.12341191,"test":[0.49412188]}, -{"learn":[0.4916636656],"iteration":4075,"passed_time":145.9599736,"remaining_time":33.08808037,"test":[0.4941214926]}, -{"learn":[0.4916616986],"iteration":4076,"passed_time":145.993756,"remaining_time":33.05181183,"test":[0.4941204197]}, -{"learn":[0.4916609834],"iteration":4077,"passed_time":146.0310933,"remaining_time":33.01634822,"test":[0.4941200621]}, -{"learn":[0.4916598807],"iteration":4078,"passed_time":146.0665338,"remaining_time":32.98045541,"test":[0.494119317]}, -{"learn":[0.4916588674],"iteration":4079,"passed_time":146.102902,"remaining_time":32.94477202,"test":[0.494118572]}, -{"learn":[0.4916580925],"iteration":4080,"passed_time":146.1406992,"remaining_time":32.90941009,"test":[0.4941181548]}, -{"learn":[0.4916576157],"iteration":4081,"passed_time":146.177597,"remaining_time":32.87384471,"test":[0.4941177673]}, -{"learn":[0.4916562448],"iteration":4082,"passed_time":146.2112478,"remaining_time":32.83754941,"test":[0.4941165752]}, -{"learn":[0.4916554103],"iteration":4083,"passed_time":146.246847,"remaining_time":32.80169243,"test":[0.494116158]}, -{"learn":[0.491654248],"iteration":4084,"passed_time":146.2826278,"remaining_time":32.76587623,"test":[0.4941152341]}, -{"learn":[0.4916524599],"iteration":4085,"passed_time":146.3161116,"remaining_time":32.72954625,"test":[0.4941139228]}, -{"learn":[0.4916518341],"iteration":4086,"passed_time":146.3554358,"remaining_time":32.69452235,"test":[0.4941136844]}, -{"learn":[0.4916511486],"iteration":4087,"passed_time":146.3926202,"remaining_time":32.65901899,"test":[0.4941130884]}, -{"learn":[0.4916505228],"iteration":4088,"passed_time":146.4300514,"remaining_time":32.62356979,"test":[0.4941127605]}, -{"learn":[0.4916499565],"iteration":4089,"passed_time":146.4678747,"remaining_time":32.58820685,"test":[0.4941122539]}, -{"learn":[0.4916493903],"iteration":4090,"passed_time":146.5056332,"remaining_time":32.55282829,"test":[0.4941118069]}, -{"learn":[0.4916479299],"iteration":4091,"passed_time":146.5406861,"remaining_time":32.51684822,"test":[0.4941106744]}, -{"learn":[0.4916469167],"iteration":4092,"passed_time":146.5756823,"remaining_time":32.48085607,"test":[0.4941099889]}, -{"learn":[0.4916463206],"iteration":4093,"passed_time":146.6126315,"remaining_time":32.44529656,"test":[0.4941096909]}, -{"learn":[0.4916452477],"iteration":4094,"passed_time":146.6475405,"remaining_time":32.40928551,"test":[0.4941090054]}, -{"learn":[0.4916442345],"iteration":4095,"passed_time":146.6837097,"remaining_time":32.37355311,"test":[0.4941083498]}, -{"learn":[0.4916434894],"iteration":4096,"passed_time":146.7314988,"remaining_time":32.3403816,"test":[0.4941076643]}, -{"learn":[0.4916431616],"iteration":4097,"passed_time":146.7695505,"remaining_time":32.30505967,"test":[0.4941075153]}, -{"learn":[0.4916422377],"iteration":4098,"passed_time":146.8049533,"remaining_time":32.26915417,"test":[0.4941069491]}, -{"learn":[0.4916416715],"iteration":4099,"passed_time":146.8426186,"remaining_time":32.23374554,"test":[0.4941065915]}, -{"learn":[0.4916410158],"iteration":4100,"passed_time":146.8798483,"remaining_time":32.19824034,"test":[0.494106204]}, -{"learn":[0.4916403006],"iteration":4101,"passed_time":146.9162916,"remaining_time":32.16256212,"test":[0.4941056974]}, -{"learn":[0.4916390489],"iteration":4102,"passed_time":146.951354,"remaining_time":32.12658166,"test":[0.4941048927]}, -{"learn":[0.4916382144],"iteration":4103,"passed_time":146.9877103,"remaining_time":32.09088412,"test":[0.4941045053]}, -{"learn":[0.4916375289],"iteration":4104,"passed_time":147.0235395,"remaining_time":32.05507135,"test":[0.4941040881]}, -{"learn":[0.4916371117],"iteration":4105,"passed_time":147.0596233,"remaining_time":32.01931399,"test":[0.4941036708]}, -{"learn":[0.4916360686],"iteration":4106,"passed_time":147.0958924,"remaining_time":31.98359676,"test":[0.4941031046]}, -{"learn":[0.4916352938],"iteration":4107,"passed_time":147.1325884,"remaining_time":31.94797197,"test":[0.4941028066]}, -{"learn":[0.4916344891],"iteration":4108,"passed_time":147.1705461,"remaining_time":31.91262024,"test":[0.4941023595]}, -{"learn":[0.4916339229],"iteration":4109,"passed_time":147.2078707,"remaining_time":31.87713015,"test":[0.4941021509]}, -{"learn":[0.4916329394],"iteration":4110,"passed_time":147.2443293,"remaining_time":31.84145191,"test":[0.4941015251]}, -{"learn":[0.4916316579],"iteration":4111,"passed_time":147.2792416,"remaining_time":31.80543933,"test":[0.4941005118]}, -{"learn":[0.4916310022],"iteration":4112,"passed_time":147.3159245,"remaining_time":31.76980915,"test":[0.4941002436]}, -{"learn":[0.4916301678],"iteration":4113,"passed_time":147.353027,"remaining_time":31.73426882,"test":[0.4940993495]}, -{"learn":[0.4916291545],"iteration":4114,"passed_time":147.3885957,"remaining_time":31.69839786,"test":[0.4940989621]}, -{"learn":[0.4916277538],"iteration":4115,"passed_time":147.4238865,"remaining_time":31.66246736,"test":[0.4940981574]}, -{"learn":[0.4916271577],"iteration":4116,"passed_time":147.4623656,"remaining_time":31.627221,"test":[0.4940978296]}, -{"learn":[0.4916265617],"iteration":4117,"passed_time":147.4988439,"remaining_time":31.59154452,"test":[0.4940974719]}, -{"learn":[0.4916260848],"iteration":4118,"passed_time":147.5343207,"remaining_time":31.55565345,"test":[0.4940969057]}, -{"learn":[0.4916252802],"iteration":4119,"passed_time":147.5695521,"remaining_time":31.51971016,"test":[0.4940964587]}, -{"learn":[0.4916241775],"iteration":4120,"passed_time":147.6042867,"remaining_time":31.48366124,"test":[0.494095803]}, -{"learn":[0.491623492],"iteration":4121,"passed_time":147.6404555,"remaining_time":31.44791847,"test":[0.4940954156]}, -{"learn":[0.4916228364],"iteration":4122,"passed_time":147.6760079,"remaining_time":31.41204438,"test":[0.4940949089]}, -{"learn":[0.4916221807],"iteration":4123,"passed_time":147.7130359,"remaining_time":31.37648385,"test":[0.4940944917]}, -{"learn":[0.4916215549],"iteration":4124,"passed_time":147.749935,"remaining_time":31.34089531,"test":[0.4940939255]}, -{"learn":[0.4916210185],"iteration":4125,"passed_time":147.7877108,"remaining_time":31.30549182,"test":[0.4940937467]}, -{"learn":[0.4916201244],"iteration":4126,"passed_time":147.8232109,"remaining_time":31.26960579,"test":[0.4940930016]}, -{"learn":[0.4916197668],"iteration":4127,"passed_time":147.8603245,"remaining_time":31.23406079,"test":[0.4940927632]}, -{"learn":[0.4916181574],"iteration":4128,"passed_time":147.8953647,"remaining_time":31.19807766,"test":[0.4940914519]}, -{"learn":[0.4916175316],"iteration":4129,"passed_time":147.9311475,"remaining_time":31.16225141,"test":[0.494090975]}, -{"learn":[0.4916169951],"iteration":4130,"passed_time":147.9674065,"remaining_time":31.12652535,"test":[0.4940907068]}, -{"learn":[0.4916163395],"iteration":4131,"passed_time":148.0031141,"remaining_time":31.09068322,"test":[0.49409023]}, -{"learn":[0.491615654],"iteration":4132,"passed_time":148.0393931,"remaining_time":31.05496099,"test":[0.4940897829]}, -{"learn":[0.4916130314],"iteration":4133,"passed_time":148.0727811,"remaining_time":31.0186329,"test":[0.4940879054]}, -{"learn":[0.4916121672],"iteration":4134,"passed_time":148.1101833,"remaining_time":30.98314596,"test":[0.4940874286]}, -{"learn":[0.4916115711],"iteration":4135,"passed_time":148.1454131,"remaining_time":30.94720429,"test":[0.4940871305]}, -{"learn":[0.4916111539],"iteration":4136,"passed_time":148.1823306,"remaining_time":30.91161501,"test":[0.4940866537]}, -{"learn":[0.4916105876],"iteration":4137,"passed_time":148.2194521,"remaining_time":30.87606759,"test":[0.4940862663]}, -{"learn":[0.4916096638],"iteration":4138,"passed_time":148.2574839,"remaining_time":30.84070879,"test":[0.494085998]}, -{"learn":[0.4916088293],"iteration":4139,"passed_time":148.2932609,"remaining_time":30.80488028,"test":[0.4940854318]}, -{"learn":[0.4916077564],"iteration":4140,"passed_time":148.3291685,"remaining_time":30.7690789,"test":[0.4940848954]}, -{"learn":[0.4916071604],"iteration":4141,"passed_time":148.3651864,"remaining_time":30.73330032,"test":[0.4940844185]}, -{"learn":[0.4916063855],"iteration":4142,"passed_time":148.4016526,"remaining_time":30.69761436,"test":[0.4940840609]}, -{"learn":[0.4916057895],"iteration":4143,"passed_time":148.4385272,"remaining_time":30.66201237,"test":[0.4940835543]}, -{"learn":[0.4916052828],"iteration":4144,"passed_time":148.4757773,"remaining_time":30.62648723,"test":[0.4940833158]}, -{"learn":[0.4916045974],"iteration":4145,"passed_time":148.5124447,"remaining_time":30.59084124,"test":[0.494082988]}, -{"learn":[0.4916036139],"iteration":4146,"passed_time":148.5472043,"remaining_time":30.55480233,"test":[0.4940824516]}, -{"learn":[0.4916028688],"iteration":4147,"passed_time":148.5848805,"remaining_time":30.5193631,"test":[0.4940820641]}, -{"learn":[0.4916022728],"iteration":4148,"passed_time":148.6225917,"remaining_time":30.48392999,"test":[0.4940815575]}, -{"learn":[0.4916017066],"iteration":4149,"passed_time":148.659413,"remaining_time":30.44831351,"test":[0.4940812297]}, -{"learn":[0.4916001866],"iteration":4150,"passed_time":148.6946661,"remaining_time":30.41237569,"test":[0.4940798886]}, -{"learn":[0.4915997098],"iteration":4151,"passed_time":148.7317436,"remaining_time":30.37681083,"test":[0.4940796502]}, -{"learn":[0.4915991138],"iteration":4152,"passed_time":148.7694974,"remaining_time":30.34138317,"test":[0.4940794117]}, -{"learn":[0.4915982197],"iteration":4153,"passed_time":148.8048025,"remaining_time":30.30545569,"test":[0.4940787561]}, -{"learn":[0.4915976832],"iteration":4154,"passed_time":148.8417886,"remaining_time":30.26987036,"test":[0.4940783389]}, -{"learn":[0.4915966998],"iteration":4155,"passed_time":148.8774041,"remaining_time":30.23400602,"test":[0.4940777726]}, -{"learn":[0.4915951202],"iteration":4156,"passed_time":148.9125972,"remaining_time":30.19805615,"test":[0.4940765507]}, -{"learn":[0.491594256],"iteration":4157,"passed_time":148.9496893,"remaining_time":30.16249119,"test":[0.4940763719]}, -{"learn":[0.4915932725],"iteration":4158,"passed_time":148.9870231,"remaining_time":30.12697437,"test":[0.4940756566]}, -{"learn":[0.4915923486],"iteration":4159,"passed_time":149.0228847,"remaining_time":30.09115941,"test":[0.4940751202]}, -{"learn":[0.4915916036],"iteration":4160,"passed_time":149.0582235,"remaining_time":30.05523901,"test":[0.4940746732]}, -{"learn":[0.4915909479],"iteration":4161,"passed_time":149.0953623,"remaining_time":30.0196813,"test":[0.4940741963]}, -{"learn":[0.4915902327],"iteration":4162,"passed_time":149.1314667,"remaining_time":29.98391487,"test":[0.4940737195]}, -{"learn":[0.4915894876],"iteration":4163,"passed_time":149.1676559,"remaining_time":29.94816531,"test":[0.4940734811]}, -{"learn":[0.4915886829],"iteration":4164,"passed_time":149.2052336,"remaining_time":29.91269389,"test":[0.4940726466]}, -{"learn":[0.4915878783],"iteration":4165,"passed_time":149.2415619,"remaining_time":29.87697135,"test":[0.4940721996]}, -{"learn":[0.4915867756],"iteration":4166,"passed_time":149.2770557,"remaining_time":29.84108168,"test":[0.4940713353]}, -{"learn":[0.4915859709],"iteration":4167,"passed_time":149.3135354,"remaining_time":29.80538903,"test":[0.4940707989]}, -{"learn":[0.4915853153],"iteration":4168,"passed_time":149.3482794,"remaining_time":29.76935002,"test":[0.494070322]}, -{"learn":[0.4915835271],"iteration":4169,"passed_time":149.3826843,"remaining_time":29.73324413,"test":[0.4940689809]}, -{"learn":[0.4915824543],"iteration":4170,"passed_time":149.4187827,"remaining_time":29.69747562,"test":[0.4940683253]}, -{"learn":[0.4915813516],"iteration":4171,"passed_time":149.454635,"remaining_time":29.66165815,"test":[0.4940675206]}, -{"learn":[0.4915807555],"iteration":4172,"passed_time":149.4903166,"remaining_time":29.62580681,"test":[0.4940668948]}, -{"learn":[0.4915801893],"iteration":4173,"passed_time":149.52732,"remaining_time":29.59021714,"test":[0.4940665967]}, -{"learn":[0.4915792356],"iteration":4174,"passed_time":149.5628322,"remaining_time":29.55433211,"test":[0.4940661795]}, -{"learn":[0.4915777753],"iteration":4175,"passed_time":149.5978091,"remaining_time":29.51834165,"test":[0.4940651066]}, -{"learn":[0.4915773879],"iteration":4176,"passed_time":149.6356745,"remaining_time":29.48292079,"test":[0.494064898]}, -{"learn":[0.4915753017],"iteration":4177,"passed_time":149.6698554,"remaining_time":29.44677385,"test":[0.4940639443]}, -{"learn":[0.4915748249],"iteration":4178,"passed_time":149.7073581,"remaining_time":29.41128045,"test":[0.4940636761]}, -{"learn":[0.4915741394],"iteration":4179,"passed_time":149.7435501,"remaining_time":29.37552897,"test":[0.4940633483]}, -{"learn":[0.4915738116],"iteration":4180,"passed_time":149.7809288,"remaining_time":29.34000974,"test":[0.4940629311]}, -{"learn":[0.4915732751],"iteration":4181,"passed_time":149.8169327,"remaining_time":29.30422069,"test":[0.4940627224]}, -{"learn":[0.4915726791],"iteration":4182,"passed_time":149.8524901,"remaining_time":29.26834435,"test":[0.4940622754]}, -{"learn":[0.4915718446],"iteration":4183,"passed_time":149.8872073,"remaining_time":29.2323043,"test":[0.4940615601]}, -{"learn":[0.4915712188],"iteration":4184,"passed_time":149.9233155,"remaining_time":29.19653576,"test":[0.4940612621]}, -{"learn":[0.4915703545],"iteration":4185,"passed_time":149.9596711,"remaining_time":29.16081517,"test":[0.4940606065]}, -{"learn":[0.4915698181],"iteration":4186,"passed_time":149.9977137,"remaining_time":29.12542183,"test":[0.4940600998]}, -{"learn":[0.4915691922],"iteration":4187,"passed_time":150.0342282,"remaining_time":29.08973096,"test":[0.4940595336]}, -{"learn":[0.4915684174],"iteration":4188,"passed_time":150.0713749,"remaining_time":29.05416211,"test":[0.4940592356]}, -{"learn":[0.4915667484],"iteration":4189,"passed_time":150.1057937,"remaining_time":29.01806514,"test":[0.4940579243]}, -{"learn":[0.4915658246],"iteration":4190,"passed_time":150.1412123,"remaining_time":28.98216196,"test":[0.4940574474]}, -{"learn":[0.4915652285],"iteration":4191,"passed_time":150.1760269,"remaining_time":28.94614259,"test":[0.4940570004]}, -{"learn":[0.4915646027],"iteration":4192,"passed_time":150.2123244,"remaining_time":28.9104092,"test":[0.4940567024]}, -{"learn":[0.4915635596],"iteration":4193,"passed_time":150.2481608,"remaining_time":28.87458693,"test":[0.4940561659]}, -{"learn":[0.4915626357],"iteration":4194,"passed_time":150.2839404,"remaining_time":28.83875376,"test":[0.4940552123]}, -{"learn":[0.4915615032],"iteration":4195,"passed_time":150.3198171,"remaining_time":28.80293921,"test":[0.4940544076]}, -{"learn":[0.4915599535],"iteration":4196,"passed_time":150.3545467,"remaining_time":28.76690518,"test":[0.4940532155]}, -{"learn":[0.4915591488],"iteration":4197,"passed_time":150.3889505,"remaining_time":28.7308095,"test":[0.4940527089]}, -{"learn":[0.4915581654],"iteration":4198,"passed_time":150.4240678,"remaining_time":28.69485075,"test":[0.4940521724]}, -{"learn":[0.4915574501],"iteration":4199,"passed_time":150.4609769,"remaining_time":28.65923369,"test":[0.4940517254]}, -{"learn":[0.4915561686],"iteration":4200,"passed_time":150.4947662,"remaining_time":28.62302266,"test":[0.4940509803]}, -{"learn":[0.4915553639],"iteration":4201,"passed_time":150.5294343,"remaining_time":28.58697968,"test":[0.4940504439]}, -{"learn":[0.4915549467],"iteration":4202,"passed_time":150.5669465,"remaining_time":28.55147664,"test":[0.4940502055]}, -{"learn":[0.4915544103],"iteration":4203,"passed_time":150.6037142,"remaining_time":28.51583172,"test":[0.4940499372]}, -{"learn":[0.4915527413],"iteration":4204,"passed_time":150.6394012,"remaining_time":28.47998192,"test":[0.494048775]}, -{"learn":[0.4915514598],"iteration":4205,"passed_time":150.6764625,"remaining_time":28.44439163,"test":[0.4940479107]}, -{"learn":[0.4915508936],"iteration":4206,"passed_time":150.7138583,"remaining_time":28.4088637,"test":[0.4940476723]}, -{"learn":[0.4915494035],"iteration":4207,"passed_time":150.7504294,"remaining_time":28.37317968,"test":[0.4940467782]}, -{"learn":[0.4915489564],"iteration":4208,"passed_time":150.7862207,"remaining_time":28.33734868,"test":[0.4940463908]}, -{"learn":[0.4915483306],"iteration":4209,"passed_time":150.8212653,"remaining_time":28.30137758,"test":[0.4940460033]}, -{"learn":[0.4915476153],"iteration":4210,"passed_time":150.8565959,"remaining_time":28.2654605,"test":[0.4940454669]}, -{"learn":[0.4915472577],"iteration":4211,"passed_time":150.8935456,"remaining_time":28.22984662,"test":[0.4940451093]}, -{"learn":[0.4915467809],"iteration":4212,"passed_time":150.9312544,"remaining_time":28.19437389,"test":[0.4940448708]}, -{"learn":[0.4915456186],"iteration":4213,"passed_time":150.9666796,"remaining_time":28.15847418,"test":[0.4940440066]}, -{"learn":[0.4915450821],"iteration":4214,"passed_time":151.0044137,"remaining_time":28.12300469,"test":[0.4940435595]}, -{"learn":[0.4915437112],"iteration":4215,"passed_time":151.0423957,"remaining_time":28.08758022,"test":[0.4940429039]}, -{"learn":[0.4915431748],"iteration":4216,"passed_time":151.0789209,"remaining_time":28.05188405,"test":[0.4940425463]}, -{"learn":[0.4915423403],"iteration":4217,"passed_time":151.1142315,"remaining_time":28.01596231,"test":[0.494042129]}, -{"learn":[0.491541178],"iteration":4218,"passed_time":151.1477865,"remaining_time":27.97971587,"test":[0.4940413244]}, -{"learn":[0.49154088],"iteration":4219,"passed_time":151.1853857,"remaining_time":27.94421821,"test":[0.4940410562]}, -{"learn":[0.4915404926],"iteration":4220,"passed_time":151.2213954,"remaining_time":27.90842621,"test":[0.4940408773]}, -{"learn":[0.4915397475],"iteration":4221,"passed_time":151.2556585,"remaining_time":27.87231225,"test":[0.4940399237]}, -{"learn":[0.4915388237],"iteration":4222,"passed_time":151.2925752,"remaining_time":27.8366874,"test":[0.494039566]}, -{"learn":[0.491538317],"iteration":4223,"passed_time":151.3287327,"remaining_time":27.80092249,"test":[0.4940390892]}, -{"learn":[0.4915378402],"iteration":4224,"passed_time":151.3664044,"remaining_time":27.76543512,"test":[0.4940388508]}, -{"learn":[0.4915376018],"iteration":4225,"passed_time":151.4041145,"remaining_time":27.72995376,"test":[0.4940385826]}, -{"learn":[0.4915370653],"iteration":4226,"passed_time":151.4393082,"remaining_time":27.69401118,"test":[0.4940381951]}, -{"learn":[0.4915361415],"iteration":4227,"passed_time":151.4748712,"remaining_time":27.65813637,"test":[0.4940378375]}, -{"learn":[0.4915357242],"iteration":4228,"passed_time":151.5112936,"remaining_time":27.62241839,"test":[0.4940375693]}, -{"learn":[0.4915352474],"iteration":4229,"passed_time":151.5487764,"remaining_time":27.5868931,"test":[0.4940372117]}, -{"learn":[0.4915338467],"iteration":4230,"passed_time":151.5855389,"remaining_time":27.55123597,"test":[0.4940366752]}, -{"learn":[0.4915329228],"iteration":4231,"passed_time":151.621934,"remaining_time":27.51551165,"test":[0.4940362878]}, -{"learn":[0.4915322373],"iteration":4232,"passed_time":151.6587059,"remaining_time":27.47985528,"test":[0.4940358705]}, -{"learn":[0.4915318797],"iteration":4233,"passed_time":151.696228,"remaining_time":27.44433411,"test":[0.4940354235]}, -{"learn":[0.4915309558],"iteration":4234,"passed_time":151.7318667,"remaining_time":27.40847179,"test":[0.4940347679]}, -{"learn":[0.4915301512],"iteration":4235,"passed_time":151.7900421,"remaining_time":27.37667426,"test":[0.49403444]}, -{"learn":[0.4915294359],"iteration":4236,"passed_time":151.8281097,"remaining_time":27.34124327,"test":[0.4940339334]}, -{"learn":[0.4915287803],"iteration":4237,"passed_time":151.8641545,"remaining_time":27.30544731,"test":[0.4940337546]}, -{"learn":[0.4915279756],"iteration":4238,"passed_time":151.8987374,"remaining_time":27.26938881,"test":[0.4940329797]}, -{"learn":[0.4915274392],"iteration":4239,"passed_time":151.934065,"remaining_time":27.23346448,"test":[0.4940325029]}, -{"learn":[0.4915264557],"iteration":4240,"passed_time":151.9691314,"remaining_time":27.19749369,"test":[0.4940316684]}, -{"learn":[0.4915258298],"iteration":4241,"passed_time":152.006316,"remaining_time":27.16190183,"test":[0.49403143]}, -{"learn":[0.491525353],"iteration":4242,"passed_time":152.0423948,"remaining_time":27.12611192,"test":[0.494031132]}, -{"learn":[0.4915247272],"iteration":4243,"passed_time":152.0809874,"remaining_time":27.09076968,"test":[0.4940308936]}, -{"learn":[0.4915234457],"iteration":4244,"passed_time":152.1152309,"remaining_time":27.05465238,"test":[0.4940299399]}, -{"learn":[0.49152279],"iteration":4245,"passed_time":152.1510563,"remaining_time":27.01881687,"test":[0.4940296419]}, -{"learn":[0.4915219853],"iteration":4246,"passed_time":152.1862568,"remaining_time":26.98287058,"test":[0.4940291054]}, -{"learn":[0.4915214787],"iteration":4247,"passed_time":152.2224152,"remaining_time":26.94709422,"test":[0.4940288074]}, -{"learn":[0.4915206442],"iteration":4248,"passed_time":152.2561942,"remaining_time":26.91089712,"test":[0.4940285094]}, -{"learn":[0.4915197502],"iteration":4249,"passed_time":152.2919236,"remaining_time":26.87504534,"test":[0.4940281815]}, -{"learn":[0.4915185283],"iteration":4250,"passed_time":152.3276762,"remaining_time":26.83919771,"test":[0.4940274067]}, -{"learn":[0.4915173958],"iteration":4251,"passed_time":152.3625635,"remaining_time":26.80319791,"test":[0.4940263636]}, -{"learn":[0.4915169488],"iteration":4252,"passed_time":152.4112515,"remaining_time":26.76962259,"test":[0.4940260656]}, -{"learn":[0.4915165613],"iteration":4253,"passed_time":152.4491013,"remaining_time":26.73413953,"test":[0.494025857]}, -{"learn":[0.4915159355],"iteration":4254,"passed_time":152.4864355,"remaining_time":26.69856508,"test":[0.4940254099]}, -{"learn":[0.4915153692],"iteration":4255,"passed_time":152.5227919,"remaining_time":26.66281888,"test":[0.4940248139]}, -{"learn":[0.4915149222],"iteration":4256,"passed_time":152.5598196,"remaining_time":26.62718957,"test":[0.4940245457]}, -{"learn":[0.4915143262],"iteration":4257,"passed_time":152.5971278,"remaining_time":26.59160846,"test":[0.4940242774]}, -{"learn":[0.4915135811],"iteration":4258,"passed_time":152.6327158,"remaining_time":26.55572727,"test":[0.4940236814]}, -{"learn":[0.4915125976],"iteration":4259,"passed_time":152.6690799,"remaining_time":26.51998101,"test":[0.4940229065]}, -{"learn":[0.4915119718],"iteration":4260,"passed_time":152.7065599,"remaining_time":26.48442801,"test":[0.4940225489]}, -{"learn":[0.4915115247],"iteration":4261,"passed_time":152.7450405,"remaining_time":26.44904738,"test":[0.4940223999]}, -{"learn":[0.4915112267],"iteration":4262,"passed_time":152.7823266,"remaining_time":26.41345876,"test":[0.4940222509]}, -{"learn":[0.4915105115],"iteration":4263,"passed_time":152.8192142,"remaining_time":26.37780057,"test":[0.4940217144]}, -{"learn":[0.4915099154],"iteration":4264,"passed_time":152.8557101,"remaining_time":26.34207432,"test":[0.494021178]}, -{"learn":[0.491509379],"iteration":4265,"passed_time":152.8922209,"remaining_time":26.30635025,"test":[0.4940209396]}, -{"learn":[0.4915082763],"iteration":4266,"passed_time":152.9273694,"remaining_time":26.27039179,"test":[0.4940201945]}, -{"learn":[0.4915070544],"iteration":4267,"passed_time":152.9631527,"remaining_time":26.2345426,"test":[0.4940195389]}, -{"learn":[0.4915063689],"iteration":4268,"passed_time":152.9995625,"remaining_time":26.1988007,"test":[0.4940188236]}, -{"learn":[0.4915053259],"iteration":4269,"passed_time":153.0370108,"remaining_time":26.16323603,"test":[0.4940182872]}, -{"learn":[0.4915048192],"iteration":4270,"passed_time":153.0749897,"remaining_time":26.12776107,"test":[0.4940179594]}, -{"learn":[0.4915035973],"iteration":4271,"passed_time":153.112443,"remaining_time":26.09219534,"test":[0.4940174825]}, -{"learn":[0.4915027032],"iteration":4272,"passed_time":153.1495578,"remaining_time":26.05657115,"test":[0.4940169461]}, -{"learn":[0.4915020774],"iteration":4273,"passed_time":153.1870555,"remaining_time":26.0210113,"test":[0.4940166481]}, -{"learn":[0.491501541],"iteration":4274,"passed_time":153.2274743,"remaining_time":25.98594593,"test":[0.4940162308]}, -{"learn":[0.4915010939],"iteration":4275,"passed_time":153.2661297,"remaining_time":25.95057949,"test":[0.4940161116]}, -{"learn":[0.491500021],"iteration":4276,"passed_time":153.3020615,"remaining_time":25.9147511,"test":[0.494015456]}, -{"learn":[0.4914995442],"iteration":4277,"passed_time":153.3397979,"remaining_time":25.87922722,"test":[0.4940150089]}, -{"learn":[0.4914981137],"iteration":4278,"passed_time":153.3771507,"remaining_time":25.84363769,"test":[0.4940142043]}, -{"learn":[0.4914974878],"iteration":4279,"passed_time":153.4139056,"remaining_time":25.80794674,"test":[0.4940139658]}, -{"learn":[0.4914970706],"iteration":4280,"passed_time":153.4519717,"remaining_time":25.77247551,"test":[0.4940135784]}, -{"learn":[0.4914964746],"iteration":4281,"passed_time":153.4888954,"remaining_time":25.73681152,"test":[0.4940132804]}, -{"learn":[0.4914958189],"iteration":4282,"passed_time":153.5258429,"remaining_time":25.70115091,"test":[0.4940127141]}, -{"learn":[0.4914937626],"iteration":4283,"passed_time":153.5611666,"remaining_time":25.66521831,"test":[0.494011224]}, -{"learn":[0.4914933751],"iteration":4284,"passed_time":153.5980665,"remaining_time":25.62954903,"test":[0.4940106876]}, -{"learn":[0.4914929281],"iteration":4285,"passed_time":153.6349175,"remaining_time":25.59387101,"test":[0.49401033]}, -{"learn":[0.491492034],"iteration":4286,"passed_time":153.6710173,"remaining_time":25.55806749,"test":[0.4940096743]}, -{"learn":[0.4914914082],"iteration":4287,"passed_time":153.708405,"remaining_time":25.5224777,"test":[0.4940092869]}, -{"learn":[0.4914905737],"iteration":4288,"passed_time":153.7444704,"remaining_time":25.48666786,"test":[0.4940086014]}, -{"learn":[0.4914897988],"iteration":4289,"passed_time":153.7818336,"remaining_time":25.45107269,"test":[0.494007916]}, -{"learn":[0.4914890538],"iteration":4290,"passed_time":153.8170509,"remaining_time":25.41512213,"test":[0.4940074689]}, -{"learn":[0.4914883385],"iteration":4291,"passed_time":153.8542992,"remaining_time":25.37950695,"test":[0.4940071411]}, -{"learn":[0.4914875339],"iteration":4292,"passed_time":153.8911771,"remaining_time":25.34383,"test":[0.4940067239]}, -{"learn":[0.4914869676],"iteration":4293,"passed_time":153.9268327,"remaining_time":25.30795154,"test":[0.4940063364]}, -{"learn":[0.4914856563],"iteration":4294,"passed_time":153.961696,"remaining_time":25.27194312,"test":[0.4940057702]}, -{"learn":[0.4914852987],"iteration":4295,"passed_time":154.0004577,"remaining_time":25.23657407,"test":[0.4940054722]}, -{"learn":[0.491484643],"iteration":4296,"passed_time":154.0366328,"remaining_time":25.20078028,"test":[0.494005055]}, -{"learn":[0.4914836894],"iteration":4297,"passed_time":154.0736484,"remaining_time":25.16512358,"test":[0.4940046079]}, -{"learn":[0.4914832125],"iteration":4298,"passed_time":154.1110957,"remaining_time":25.12953666,"test":[0.4940042801]}, -{"learn":[0.4914825867],"iteration":4299,"passed_time":154.1480905,"remaining_time":25.09387521,"test":[0.4940041013]}, -{"learn":[0.4914817224],"iteration":4300,"passed_time":154.1846825,"remaining_time":25.05814765,"test":[0.4940032966]}, -{"learn":[0.4914807985],"iteration":4301,"passed_time":154.220702,"remaining_time":25.02232683,"test":[0.494002641]}, -{"learn":[0.4914802621],"iteration":4302,"passed_time":154.2584871,"remaining_time":24.9867919,"test":[0.4940024025]}, -{"learn":[0.4914798449],"iteration":4303,"passed_time":154.2961907,"remaining_time":24.95124273,"test":[0.4940020747]}, -{"learn":[0.491479219],"iteration":4304,"passed_time":154.3319848,"remaining_time":24.9153843,"test":[0.4940016575]}, -{"learn":[0.4914787124],"iteration":4305,"passed_time":154.3701351,"remaining_time":24.87990565,"test":[0.4940013595]}, -{"learn":[0.4914775799],"iteration":4306,"passed_time":154.406469,"remaining_time":24.8441335,"test":[0.494000823]}, -{"learn":[0.491476954],"iteration":4307,"passed_time":154.4436783,"remaining_time":24.80850171,"test":[0.4940004058]}, -{"learn":[0.4914764474],"iteration":4308,"passed_time":154.4813199,"remaining_time":24.77293851,"test":[0.4940001376]}, -{"learn":[0.4914760898],"iteration":4309,"passed_time":154.5191534,"remaining_time":24.73740507,"test":[0.4939998395]}, -{"learn":[0.4914754341],"iteration":4310,"passed_time":154.5553541,"remaining_time":24.7016096,"test":[0.4939993925]}, -{"learn":[0.4914748977],"iteration":4311,"passed_time":154.5915483,"remaining_time":24.6658129,"test":[0.4939990945]}, -{"learn":[0.491474242],"iteration":4312,"passed_time":154.6291982,"remaining_time":24.63024789,"test":[0.4939987667]}, -{"learn":[0.4914732288],"iteration":4313,"passed_time":154.6643039,"remaining_time":24.59427735,"test":[0.4939982004]}, -{"learn":[0.4914715598],"iteration":4314,"passed_time":154.6987321,"remaining_time":24.55819965,"test":[0.4939971275]}, -{"learn":[0.4914708148],"iteration":4315,"passed_time":154.7349015,"remaining_time":24.52239867,"test":[0.4939965613]}, -{"learn":[0.4914695333],"iteration":4316,"passed_time":154.7710421,"remaining_time":24.48659295,"test":[0.4939958758]}, -{"learn":[0.4914691756],"iteration":4317,"passed_time":154.808394,"remaining_time":24.4509784,"test":[0.4939955182]}, -{"learn":[0.491468371],"iteration":4318,"passed_time":154.8458779,"remaining_time":24.41538386,"test":[0.4939950712]}, -{"learn":[0.4914677153],"iteration":4319,"passed_time":154.882288,"remaining_time":24.37961941,"test":[0.4939947732]}, -{"learn":[0.4914665828],"iteration":4320,"passed_time":154.9182601,"remaining_time":24.34378585,"test":[0.4939940877]}, -{"learn":[0.4914633642],"iteration":4321,"passed_time":154.9517278,"remaining_time":24.30755933,"test":[0.4939917035]}, -{"learn":[0.4914619933],"iteration":4322,"passed_time":154.9876873,"remaining_time":24.27172434,"test":[0.4939908392]}, -{"learn":[0.4914616357],"iteration":4323,"passed_time":155.0246369,"remaining_time":24.23604406,"test":[0.4939904518]}, -{"learn":[0.4914608012],"iteration":4324,"passed_time":155.0619439,"remaining_time":24.20041898,"test":[0.4939899452]}, -{"learn":[0.4914597283],"iteration":4325,"passed_time":155.0983604,"remaining_time":24.1646544,"test":[0.4939892299]}, -{"learn":[0.4914591621],"iteration":4326,"passed_time":155.1355135,"remaining_time":24.12900406,"test":[0.4939889915]}, -{"learn":[0.4914587448],"iteration":4327,"passed_time":155.1722364,"remaining_time":24.09328624,"test":[0.4939886339]}, -{"learn":[0.4914578508],"iteration":4328,"passed_time":155.2087139,"remaining_time":24.05752992,"test":[0.493988008]}, -{"learn":[0.4914575229],"iteration":4329,"passed_time":155.2463856,"remaining_time":24.02195805,"test":[0.4939876802]}, -{"learn":[0.4914571057],"iteration":4330,"passed_time":155.284128,"remaining_time":23.98639612,"test":[0.4939874716]}, -{"learn":[0.4914556156],"iteration":4331,"passed_time":155.3200868,"remaining_time":23.95055816,"test":[0.4939865775]}, -{"learn":[0.4914550195],"iteration":4332,"passed_time":155.3565762,"remaining_time":23.91480183,"test":[0.4939863391]}, -{"learn":[0.4914542447],"iteration":4333,"passed_time":155.3918876,"remaining_time":23.87886413,"test":[0.4939859219]}, -{"learn":[0.4914536188],"iteration":4334,"passed_time":155.4288903,"remaining_time":23.84318617,"test":[0.4939855046]}, -{"learn":[0.491452695],"iteration":4335,"passed_time":155.4650314,"remaining_time":23.80737565,"test":[0.4939848788]}, -{"learn":[0.4914520393],"iteration":4336,"passed_time":155.5036356,"remaining_time":23.77194153,"test":[0.4939845808]}, -{"learn":[0.491451175],"iteration":4337,"passed_time":155.5396586,"remaining_time":23.73611203,"test":[0.4939839847]}, -{"learn":[0.4914497147],"iteration":4338,"passed_time":155.5746972,"remaining_time":23.70013249,"test":[0.4939830608]}, -{"learn":[0.4914490591],"iteration":4339,"passed_time":155.6106862,"remaining_time":23.6642979,"test":[0.4939824052]}, -{"learn":[0.4914485822],"iteration":4340,"passed_time":155.6488024,"remaining_time":23.62878618,"test":[0.493982137]}, -{"learn":[0.4914473007],"iteration":4341,"passed_time":155.6845657,"remaining_time":23.59291668,"test":[0.4939812131]}, -{"learn":[0.4914464067],"iteration":4342,"passed_time":155.7198035,"remaining_time":23.55696774,"test":[0.4939806469]}, -{"learn":[0.4914453636],"iteration":4343,"passed_time":155.7546862,"remaining_time":23.5209655,"test":[0.4939800806]}, -{"learn":[0.4914442609],"iteration":4344,"passed_time":155.7919636,"remaining_time":23.48532478,"test":[0.493979723]}, -{"learn":[0.4914434562],"iteration":4345,"passed_time":155.8284379,"remaining_time":23.44956244,"test":[0.4939790077]}, -{"learn":[0.491442741],"iteration":4346,"passed_time":155.8652143,"remaining_time":23.41384517,"test":[0.4939783521]}, -{"learn":[0.4914411615],"iteration":4347,"passed_time":155.8996079,"remaining_time":23.37777009,"test":[0.4939777262]}, -{"learn":[0.4914402376],"iteration":4348,"passed_time":155.9348549,"remaining_time":23.34182353,"test":[0.4939772494]}, -{"learn":[0.4914387177],"iteration":4349,"passed_time":155.9691276,"remaining_time":23.30573171,"test":[0.4939761169]}, -{"learn":[0.4914384494],"iteration":4350,"passed_time":156.0069202,"remaining_time":23.27016575,"test":[0.4939758189]}, -{"learn":[0.4914376746],"iteration":4351,"passed_time":156.043806,"remaining_time":23.23446376,"test":[0.493975491]}, -{"learn":[0.4914372574],"iteration":4352,"passed_time":156.0832162,"remaining_time":23.19913643,"test":[0.4939751334]}, -{"learn":[0.4914365719],"iteration":4353,"passed_time":156.1201333,"remaining_time":23.16343732,"test":[0.4939749546]}, -{"learn":[0.4914359759],"iteration":4354,"passed_time":156.158335,"remaining_time":23.12792791,"test":[0.4939744182]}, -{"learn":[0.4914355586],"iteration":4355,"passed_time":156.1982772,"remaining_time":23.09267459,"test":[0.4939741797]}, -{"learn":[0.491434754],"iteration":4356,"passed_time":156.234672,"remaining_time":23.05689559,"test":[0.4939737029]}, -{"learn":[0.4914342175],"iteration":4357,"passed_time":156.2732017,"remaining_time":23.02143081,"test":[0.4939734049]}, -{"learn":[0.4914336215],"iteration":4358,"passed_time":156.3114108,"remaining_time":22.98591749,"test":[0.4939731963]}, -{"learn":[0.4914323698],"iteration":4359,"passed_time":156.3475889,"remaining_time":22.95010479,"test":[0.4939724214]}, -{"learn":[0.4914312969],"iteration":4360,"passed_time":156.3835899,"remaining_time":22.91426598,"test":[0.4939716764]}, -{"learn":[0.491430224],"iteration":4361,"passed_time":156.4199182,"remaining_time":22.87847497,"test":[0.4939708717]}, -{"learn":[0.4914295386],"iteration":4362,"passed_time":156.4556592,"remaining_time":22.84259796,"test":[0.4939703651]}, -{"learn":[0.4914288829],"iteration":4363,"passed_time":156.4928024,"remaining_time":22.80692537,"test":[0.493970067]}, -{"learn":[0.4914283167],"iteration":4364,"passed_time":156.5301229,"remaining_time":22.7712779,"test":[0.493969471]}, -{"learn":[0.491427065],"iteration":4365,"passed_time":156.5661059,"remaining_time":22.73543545,"test":[0.4939688451]}, -{"learn":[0.4914262007],"iteration":4366,"passed_time":156.6013616,"remaining_time":22.6994875,"test":[0.4939681001]}, -{"learn":[0.4914252172],"iteration":4367,"passed_time":156.6376749,"remaining_time":22.66369289,"test":[0.4939675338]}, -{"learn":[0.4914248],"iteration":4368,"passed_time":156.6818928,"remaining_time":22.62903967,"test":[0.4939670272]}, -{"learn":[0.4914241741],"iteration":4369,"passed_time":156.7189801,"remaining_time":22.59335412,"test":[0.4939667888]}, -{"learn":[0.4914236377],"iteration":4370,"passed_time":156.7557849,"remaining_time":22.55762725,"test":[0.4939662821]}, -{"learn":[0.4914232205],"iteration":4371,"passed_time":156.7928843,"remaining_time":22.5219422,"test":[0.4939658947]}, -{"learn":[0.4914219688],"iteration":4372,"passed_time":156.8287922,"remaining_time":22.48608569,"test":[0.4939652092]}, -{"learn":[0.4914209555],"iteration":4373,"passed_time":156.8646982,"remaining_time":22.45022886,"test":[0.493964941]}, -{"learn":[0.4914203594],"iteration":4374,"passed_time":156.901398,"remaining_time":22.41448543,"test":[0.4939643748]}, -{"learn":[0.491419227],"iteration":4375,"passed_time":156.9386847,"remaining_time":22.37882524,"test":[0.4939637787]}, -{"learn":[0.4914183329],"iteration":4376,"passed_time":156.9736788,"remaining_time":22.342838,"test":[0.4939630039]}, -{"learn":[0.4914176772],"iteration":4377,"passed_time":157.0113063,"remaining_time":22.30722533,"test":[0.4939628847]}, -{"learn":[0.4914171408],"iteration":4378,"passed_time":157.0487592,"remaining_time":22.27158699,"test":[0.4939624972]}, -{"learn":[0.4914161573],"iteration":4379,"passed_time":157.0843681,"remaining_time":22.23568681,"test":[0.4939621098]}, -{"learn":[0.491415144],"iteration":4380,"passed_time":157.1202337,"remaining_time":22.19982303,"test":[0.4939616032]}, -{"learn":[0.4914146076],"iteration":4381,"passed_time":157.1586583,"remaining_time":22.16432014,"test":[0.4939613051]}, -{"learn":[0.4914137433],"iteration":4382,"passed_time":157.1951826,"remaining_time":22.12854841,"test":[0.4939606197]}, -{"learn":[0.4914131175],"iteration":4383,"passed_time":157.243795,"remaining_time":22.09447484,"test":[0.4939602025]}, -{"learn":[0.4914127002],"iteration":4384,"passed_time":157.2821257,"remaining_time":22.05895263,"test":[0.4939600236]}, -{"learn":[0.4914121638],"iteration":4385,"passed_time":157.3189435,"remaining_time":22.02321736,"test":[0.4939594872]}, -{"learn":[0.4914117168],"iteration":4386,"passed_time":157.3608305,"remaining_time":21.9881899,"test":[0.4939592786]}, -{"learn":[0.4914106737],"iteration":4387,"passed_time":157.3969726,"remaining_time":21.95235807,"test":[0.4939586825]}, -{"learn":[0.491409869],"iteration":4388,"passed_time":157.432871,"remaining_time":21.91649219,"test":[0.4939581461]}, -{"learn":[0.491409273],"iteration":4389,"passed_time":157.470568,"remaining_time":21.88087618,"test":[0.4939578779]}, -{"learn":[0.4914084087],"iteration":4390,"passed_time":157.5064882,"remaining_time":21.84501283,"test":[0.4939572222]}, -{"learn":[0.4914079617],"iteration":4391,"passed_time":157.5434107,"remaining_time":21.80928818,"test":[0.4939568944]}, -{"learn":[0.491407455],"iteration":4392,"passed_time":157.5811803,"remaining_time":21.77368005,"test":[0.4939564176]}, -{"learn":[0.4914068292],"iteration":4393,"passed_time":157.6174589,"remaining_time":21.7378653,"test":[0.4939559109]}, -{"learn":[0.4914052497],"iteration":4394,"passed_time":157.6535886,"remaining_time":21.70202983,"test":[0.4939551063]}, -{"learn":[0.4914044152],"iteration":4395,"passed_time":157.6909893,"remaining_time":21.66636887,"test":[0.4939544208]}, -{"learn":[0.4914034615],"iteration":4396,"passed_time":157.7267392,"remaining_time":21.63048072,"test":[0.4939539142]}, -{"learn":[0.4914031933],"iteration":4397,"passed_time":157.7634359,"remaining_time":21.59472224,"test":[0.4939534969]}, -{"learn":[0.4914024184],"iteration":4398,"passed_time":157.799499,"remaining_time":21.55887677,"test":[0.4939529903]}, -{"learn":[0.4914014946],"iteration":4399,"passed_time":157.8365784,"remaining_time":21.52316978,"test":[0.4939526029]}, -{"learn":[0.4914006601],"iteration":4400,"passed_time":157.872652,"remaining_time":21.48732528,"test":[0.4939520962]}, -{"learn":[0.4914002429],"iteration":4401,"passed_time":157.9098829,"remaining_time":21.45163788,"test":[0.4939516492]}, -{"learn":[0.491399319],"iteration":4402,"passed_time":157.9468236,"remaining_time":21.41591045,"test":[0.4939511426]}, -{"learn":[0.4913986634],"iteration":4403,"passed_time":157.9835248,"remaining_time":21.38015004,"test":[0.4939507253]}, -{"learn":[0.4913977097],"iteration":4404,"passed_time":158.0211521,"remaining_time":21.3445143,"test":[0.4939502187]}, -{"learn":[0.4913970838],"iteration":4405,"passed_time":158.058567,"remaining_time":21.30884902,"test":[0.4939498313]}, -{"learn":[0.4913959811],"iteration":4406,"passed_time":158.0955726,"remaining_time":21.27312788,"test":[0.4939493842]}, -{"learn":[0.4913952659],"iteration":4407,"passed_time":158.1321649,"remaining_time":21.23735064,"test":[0.4939489074]}, -{"learn":[0.49139464],"iteration":4408,"passed_time":158.168909,"remaining_time":21.20159338,"test":[0.4939485498]}, -{"learn":[0.4913942526],"iteration":4409,"passed_time":158.2051925,"remaining_time":21.16577405,"test":[0.4939483113]}, -{"learn":[0.4913937162],"iteration":4410,"passed_time":158.2430183,"remaining_time":21.13016046,"test":[0.4939478643]}, -{"learn":[0.4913927625],"iteration":4411,"passed_time":158.2796287,"remaining_time":21.09438388,"test":[0.4939472981]}, -{"learn":[0.4913920472],"iteration":4412,"passed_time":158.316567,"remaining_time":21.05865054,"test":[0.493947]}, -{"learn":[0.4913916002],"iteration":4413,"passed_time":158.3526874,"remaining_time":21.02280807,"test":[0.4939468808]}, -{"learn":[0.4913889478],"iteration":4414,"passed_time":158.3865985,"remaining_time":20.98667273,"test":[0.4939450927]}, -{"learn":[0.4913885604],"iteration":4415,"passed_time":158.4239117,"remaining_time":20.95098832,"test":[0.4939447947]}, -{"learn":[0.4913875471],"iteration":4416,"passed_time":158.4593924,"remaining_time":20.9150613,"test":[0.4939441688]}, -{"learn":[0.4913871895],"iteration":4417,"passed_time":158.4954819,"remaining_time":20.87921468,"test":[0.4939440496]}, -{"learn":[0.4913862656],"iteration":4418,"passed_time":158.5316094,"remaining_time":20.84337295,"test":[0.4939434238]}, -{"learn":[0.4913853119],"iteration":4419,"passed_time":158.5677948,"remaining_time":20.80753868,"test":[0.4939430661]}, -{"learn":[0.4913844476],"iteration":4420,"passed_time":158.603861,"remaining_time":20.77168865,"test":[0.4939424999]}, -{"learn":[0.4913834642],"iteration":4421,"passed_time":158.6399225,"remaining_time":20.7358379,"test":[0.4939416952]}, -{"learn":[0.4913824509],"iteration":4422,"passed_time":158.6748612,"remaining_time":20.69984059,"test":[0.4939413078]}, -{"learn":[0.4913817952],"iteration":4423,"passed_time":158.7105323,"remaining_time":20.6639391,"test":[0.493940831]}, -{"learn":[0.4913807522],"iteration":4424,"passed_time":158.7465845,"remaining_time":20.62808726,"test":[0.4939402647]}, -{"learn":[0.4913798581],"iteration":4425,"passed_time":158.7814255,"remaining_time":20.59207823,"test":[0.4939397581]}, -{"learn":[0.4913793216],"iteration":4426,"passed_time":158.819082,"remaining_time":20.55643415,"test":[0.4939395197]}, -{"learn":[0.4913786958],"iteration":4427,"passed_time":158.8561742,"remaining_time":20.52071627,"test":[0.4939389832]}, -{"learn":[0.4913773547],"iteration":4428,"passed_time":158.8936589,"remaining_time":20.48504837,"test":[0.4939382978]}, -{"learn":[0.4913764606],"iteration":4429,"passed_time":158.9313073,"remaining_time":20.44940071,"test":[0.4939378209]}, -{"learn":[0.4913756858],"iteration":4430,"passed_time":158.9676847,"remaining_time":20.41358894,"test":[0.4939374335]}, -{"learn":[0.4913753877],"iteration":4431,"passed_time":159.0058486,"remaining_time":20.37800587,"test":[0.4939372547]}, -{"learn":[0.4913747321],"iteration":4432,"passed_time":159.0424881,"remaining_time":20.34222665,"test":[0.4939371057]}, -{"learn":[0.4913741957],"iteration":4433,"passed_time":159.0793623,"remaining_time":20.30647702,"test":[0.4939365394]}, -{"learn":[0.4913735698],"iteration":4434,"passed_time":159.1177022,"remaining_time":20.27091358,"test":[0.4939360924]}, -{"learn":[0.4913727055],"iteration":4435,"passed_time":159.1542047,"remaining_time":20.23511529,"test":[0.4939356155]}, -{"learn":[0.4913719605],"iteration":4436,"passed_time":159.1917642,"remaining_time":20.19945081,"test":[0.4939351983]}, -{"learn":[0.491370679],"iteration":4437,"passed_time":159.2275282,"remaining_time":20.1635581,"test":[0.4939344235]}, -{"learn":[0.4913697551],"iteration":4438,"passed_time":159.2655003,"remaining_time":20.12794451,"test":[0.4939339764]}, -{"learn":[0.4913691293],"iteration":4439,"passed_time":159.3030345,"remaining_time":20.09227462,"test":[0.49393344]}, -{"learn":[0.4913683544],"iteration":4440,"passed_time":159.3400059,"remaining_time":20.05653306,"test":[0.4939330525]}, -{"learn":[0.4913677583],"iteration":4441,"passed_time":159.3775142,"remaining_time":20.02085838,"test":[0.4939327247]}, -{"learn":[0.4913673113],"iteration":4442,"passed_time":159.4140472,"remaining_time":19.9850606,"test":[0.4939323075]}, -{"learn":[0.4913664172],"iteration":4443,"passed_time":159.451499,"remaining_time":19.94937746,"test":[0.4939318009]}, -{"learn":[0.491365553],"iteration":4444,"passed_time":159.4872466,"remaining_time":19.91348074,"test":[0.4939310856]}, -{"learn":[0.4913649867],"iteration":4445,"passed_time":159.5227919,"remaining_time":19.87755886,"test":[0.4939306386]}, -{"learn":[0.4913640331],"iteration":4446,"passed_time":159.5570547,"remaining_time":19.84147768,"test":[0.4939300127]}, -{"learn":[0.4913631688],"iteration":4447,"passed_time":159.5936633,"remaining_time":19.80568844,"test":[0.4939294465]}, -{"learn":[0.4913621555],"iteration":4448,"passed_time":159.6305106,"remaining_time":19.76992838,"test":[0.4939289398]}, -{"learn":[0.4913616489],"iteration":4449,"passed_time":159.6666889,"remaining_time":19.73408514,"test":[0.4939286716]}, -{"learn":[0.4913609634],"iteration":4450,"passed_time":159.7028658,"remaining_time":19.69824159,"test":[0.4939281352]}, -{"learn":[0.491360129],"iteration":4451,"passed_time":159.7390327,"remaining_time":19.66239666,"test":[0.4939275093]}, -{"learn":[0.4913595329],"iteration":4452,"passed_time":159.7761188,"remaining_time":19.62666449,"test":[0.4939271815]}, -{"learn":[0.4913589667],"iteration":4453,"passed_time":159.8141849,"remaining_time":19.59105185,"test":[0.4939268239]}, -{"learn":[0.49135846],"iteration":4454,"passed_time":159.8513938,"remaining_time":19.55533325,"test":[0.4939264066]}, -{"learn":[0.4913567613],"iteration":4455,"passed_time":159.8857199,"remaining_time":19.51926203,"test":[0.4939254232]}, -{"learn":[0.491356195],"iteration":4456,"passed_time":159.922427,"remaining_time":19.48348169,"test":[0.4939249761]}, -{"learn":[0.4913548539],"iteration":4457,"passed_time":159.9577242,"remaining_time":19.4475295,"test":[0.4939240224]}, -{"learn":[0.4913541089],"iteration":4458,"passed_time":159.9945618,"remaining_time":19.4117645,"test":[0.4939236052]}, -{"learn":[0.4913535426],"iteration":4459,"passed_time":160.0313902,"remaining_time":19.37599792,"test":[0.4939231582]}, -{"learn":[0.4913518439],"iteration":4460,"passed_time":160.065994,"remaining_time":19.33996207,"test":[0.4939222641]}, -{"learn":[0.4913512181],"iteration":4461,"passed_time":160.1028287,"remaining_time":19.30419584,"test":[0.4939218469]}, -{"learn":[0.4913499962],"iteration":4462,"passed_time":160.1399979,"remaining_time":19.26846938,"test":[0.493921072]}, -{"learn":[0.4913493405],"iteration":4463,"passed_time":160.1768601,"remaining_time":19.23270542,"test":[0.4939207442]}, -{"learn":[0.4913488935],"iteration":4464,"passed_time":160.2135199,"remaining_time":19.19691672,"test":[0.4939201779]}, -{"learn":[0.4913485955],"iteration":4465,"passed_time":160.2515431,"remaining_time":19.16129064,"test":[0.4939198501]}, -{"learn":[0.4913477014],"iteration":4466,"passed_time":160.3003607,"remaining_time":19.12695148,"test":[0.4939194329]}, -{"learn":[0.4913470457],"iteration":4467,"passed_time":160.3407418,"remaining_time":19.09160131,"test":[0.4939191349]}, -{"learn":[0.4913465987],"iteration":4468,"passed_time":160.3788572,"remaining_time":19.05597968,"test":[0.4939188964]}, -{"learn":[0.4913461815],"iteration":4469,"passed_time":160.4168109,"remaining_time":19.02033776,"test":[0.493918658]}, -{"learn":[0.4913442741],"iteration":4470,"passed_time":160.4504224,"remaining_time":18.98418105,"test":[0.4939171977]}, -{"learn":[0.4913432608],"iteration":4471,"passed_time":160.486123,"remaining_time":18.94827213,"test":[0.4939164229]}, -{"learn":[0.4913427244],"iteration":4472,"passed_time":160.5226761,"remaining_time":18.91246374,"test":[0.493916095]}, -{"learn":[0.4913419495],"iteration":4473,"passed_time":160.5593011,"remaining_time":18.87666348,"test":[0.4939158268]}, -{"learn":[0.4913412343],"iteration":4474,"passed_time":160.597147,"remaining_time":18.84100607,"test":[0.4939153798]}, -{"learn":[0.4913405786],"iteration":4475,"passed_time":160.6338353,"remaining_time":18.80521217,"test":[0.4939150519]}, -{"learn":[0.491339774],"iteration":4476,"passed_time":160.6687662,"remaining_time":18.76921258,"test":[0.4939142473]}, -{"learn":[0.4913385521],"iteration":4477,"passed_time":160.7050925,"remaining_time":18.73337613,"test":[0.493913681]}, -{"learn":[0.4913377176],"iteration":4478,"passed_time":160.7407573,"remaining_time":18.69746251,"test":[0.493913383]}, -{"learn":[0.4913371514],"iteration":4479,"passed_time":160.7779744,"remaining_time":18.66172918,"test":[0.4939130254]}, -{"learn":[0.4913364063],"iteration":4480,"passed_time":160.8150569,"remaining_time":18.62597959,"test":[0.4939124293]}, -{"learn":[0.4913359891],"iteration":4481,"passed_time":160.8537748,"remaining_time":18.59041841,"test":[0.4939122803]}, -{"learn":[0.4913355122],"iteration":4482,"passed_time":160.891018,"remaining_time":18.55468577,"test":[0.4939120419]}, -{"learn":[0.4913348864],"iteration":4483,"passed_time":160.9279392,"remaining_time":18.5189154,"test":[0.4939116247]}, -{"learn":[0.491334499],"iteration":4484,"passed_time":160.9662695,"remaining_time":18.48330631,"test":[0.4939114161]}, -{"learn":[0.4913334261],"iteration":4485,"passed_time":161.0024287,"remaining_time":18.44744725,"test":[0.4939107306]}, -{"learn":[0.491332979],"iteration":4486,"passed_time":161.0382612,"remaining_time":18.4115507,"test":[0.4939102836]}, -{"learn":[0.4913324724],"iteration":4487,"passed_time":161.0760346,"remaining_time":18.37587561,"test":[0.4939100452]}, -{"learn":[0.4913318168],"iteration":4488,"passed_time":161.1127679,"remaining_time":18.34008117,"test":[0.4939094491]}, -{"learn":[0.4913313399],"iteration":4489,"passed_time":161.1481091,"remaining_time":18.3041282,"test":[0.4939091511]}, -{"learn":[0.4913306247],"iteration":4490,"passed_time":161.1847381,"remaining_time":18.26832147,"test":[0.4939087041]}, -{"learn":[0.4913300286],"iteration":4491,"passed_time":161.2209603,"remaining_time":18.23246836,"test":[0.493908257]}, -{"learn":[0.4913294922],"iteration":4492,"passed_time":161.2581842,"remaining_time":18.19672811,"test":[0.4939078398]}, -{"learn":[0.4913288067],"iteration":4493,"passed_time":161.2947525,"remaining_time":18.16091339,"test":[0.4939077206]}, -{"learn":[0.4913278828],"iteration":4494,"passed_time":161.3300829,"remaining_time":18.12495925,"test":[0.4939070649]}, -{"learn":[0.4913270484],"iteration":4495,"passed_time":161.3669739,"remaining_time":18.08918035,"test":[0.4939066477]}, -{"learn":[0.4913257371],"iteration":4496,"passed_time":161.4015176,"remaining_time":18.05313839,"test":[0.4939059026]}, -{"learn":[0.4913253198],"iteration":4497,"passed_time":161.4361815,"remaining_time":18.01711051,"test":[0.4939054556]}, -{"learn":[0.4913245152],"iteration":4498,"passed_time":161.4693479,"remaining_time":17.98091649,"test":[0.4939050086]}, -{"learn":[0.491324098],"iteration":4499,"passed_time":161.5051622,"remaining_time":17.94501802,"test":[0.4939045317]}, -{"learn":[0.4913237403],"iteration":4500,"passed_time":161.5432518,"remaining_time":17.90937184,"test":[0.4939041443]}, -{"learn":[0.4913226972],"iteration":4501,"passed_time":161.5795931,"remaining_time":17.87353118,"test":[0.4939035483]}, -{"learn":[0.4913220118],"iteration":4502,"passed_time":161.6156913,"remaining_time":17.83766347,"test":[0.4939030714]}, -{"learn":[0.4913212667],"iteration":4503,"passed_time":161.6508244,"remaining_time":17.80168937,"test":[0.4939025648]}, -{"learn":[0.4913205515],"iteration":4504,"passed_time":161.6888025,"remaining_time":17.76602824,"test":[0.4939022071]}, -{"learn":[0.4913201938],"iteration":4505,"passed_time":161.7268948,"remaining_time":17.73037861,"test":[0.4939019687]}, -{"learn":[0.4913197766],"iteration":4506,"passed_time":161.7652503,"remaining_time":17.69475669,"test":[0.4939017303]}, -{"learn":[0.49131927],"iteration":4507,"passed_time":161.8026427,"remaining_time":17.65902844,"test":[0.4939014323]}, -{"learn":[0.4913186143],"iteration":4508,"passed_time":161.8387446,"remaining_time":17.62315892,"test":[0.4939009555]}, -{"learn":[0.4913183461],"iteration":4509,"passed_time":161.8768221,"remaining_time":17.58750395,"test":[0.493900717]}, -{"learn":[0.4913172434],"iteration":4510,"passed_time":161.9157668,"remaining_time":17.55194191,"test":[0.4939001508]}, -{"learn":[0.4913167964],"iteration":4511,"passed_time":161.9521664,"remaining_time":17.5161031,"test":[0.4938997634]}, -{"learn":[0.4913161109],"iteration":4512,"passed_time":161.9889065,"remaining_time":17.48030079,"test":[0.4938992865]}, -{"learn":[0.4913157235],"iteration":4513,"passed_time":162.0278857,"remaining_time":17.44473914,"test":[0.4938990183]}, -{"learn":[0.4913139056],"iteration":4514,"passed_time":162.0631954,"remaining_time":17.40878179,"test":[0.493898005]}, -{"learn":[0.4913126539],"iteration":4515,"passed_time":162.1004035,"remaining_time":17.37302818,"test":[0.4938973494]}, -{"learn":[0.4913108359],"iteration":4516,"passed_time":162.1353282,"remaining_time":17.33702978,"test":[0.4938958295]}, -{"learn":[0.4913096736],"iteration":4517,"passed_time":162.1706771,"remaining_time":17.30107711,"test":[0.4938952036]}, -{"learn":[0.4913086305],"iteration":4518,"passed_time":162.2052287,"remaining_time":17.26503983,"test":[0.4938943393]}, -{"learn":[0.4913077663],"iteration":4519,"passed_time":162.2428681,"remaining_time":17.22933113,"test":[0.4938937731]}, -{"learn":[0.4913075577],"iteration":4520,"passed_time":162.2793943,"remaining_time":17.19350362,"test":[0.4938934155]}, -{"learn":[0.4913065146],"iteration":4521,"passed_time":162.3160942,"remaining_time":17.15769417,"test":[0.4938927002]}, -{"learn":[0.4913060079],"iteration":4522,"passed_time":162.3543839,"remaining_time":17.12205198,"test":[0.4938925214]}, -{"learn":[0.4913055311],"iteration":4523,"passed_time":162.3910342,"remaining_time":17.08623614,"test":[0.4938920744]}, -{"learn":[0.4913049351],"iteration":4524,"passed_time":162.4266212,"remaining_time":17.0503083,"test":[0.4938916571]}, -{"learn":[0.4913043688],"iteration":4525,"passed_time":162.4613858,"remaining_time":17.01429449,"test":[0.4938912995]}, -{"learn":[0.4913037132],"iteration":4526,"passed_time":162.4972231,"remaining_time":16.97839332,"test":[0.4938909717]}, -{"learn":[0.4913030277],"iteration":4527,"passed_time":162.5331443,"remaining_time":16.94250091,"test":[0.4938907333]}, -{"learn":[0.4913023125],"iteration":4528,"passed_time":162.5700333,"remaining_time":16.90670914,"test":[0.4938902862]}, -{"learn":[0.4913015376],"iteration":4529,"passed_time":162.6070694,"remaining_time":16.87093214,"test":[0.4938900776]}, -{"learn":[0.4913007627],"iteration":4530,"passed_time":162.6427851,"remaining_time":16.83501792,"test":[0.4938892729]}, -{"learn":[0.4912995408],"iteration":4531,"passed_time":162.678624,"remaining_time":16.79911651,"test":[0.4938886769]}, -{"learn":[0.4912987064],"iteration":4532,"passed_time":162.7146138,"remaining_time":16.76323067,"test":[0.4938882895]}, -{"learn":[0.4912975739],"iteration":4533,"passed_time":162.7491489,"remaining_time":16.72719527,"test":[0.4938879914]}, -{"learn":[0.4912971567],"iteration":4534,"passed_time":162.7856429,"remaining_time":16.6913614,"test":[0.493887604]}, -{"learn":[0.491296799],"iteration":4535,"passed_time":162.8222267,"remaining_time":16.65553642,"test":[0.4938873656]}, -{"learn":[0.4912962626],"iteration":4536,"passed_time":162.8594331,"remaining_time":16.61977464,"test":[0.4938869782]}, -{"learn":[0.4912952791],"iteration":4537,"passed_time":162.8952433,"remaining_time":16.58387008,"test":[0.4938863523]}, -{"learn":[0.4912945937],"iteration":4538,"passed_time":162.9344602,"remaining_time":16.54831156,"test":[0.4938857861]}, -{"learn":[0.4912938784],"iteration":4539,"passed_time":162.9699894,"remaining_time":16.51237778,"test":[0.4938855178]}, -{"learn":[0.4912930141],"iteration":4540,"passed_time":163.0058241,"remaining_time":16.47647507,"test":[0.4938850112]}, -{"learn":[0.4912918518],"iteration":4541,"passed_time":163.0417658,"remaining_time":16.44058316,"test":[0.4938841469]}, -{"learn":[0.491291673],"iteration":4542,"passed_time":163.0791109,"remaining_time":16.40483242,"test":[0.4938839383]}, -{"learn":[0.491290928],"iteration":4543,"passed_time":163.1159805,"remaining_time":16.36903325,"test":[0.4938835509]}, -{"learn":[0.4912895869],"iteration":4544,"passed_time":163.1511565,"remaining_time":16.33306407,"test":[0.493882627]}, -{"learn":[0.4912887822],"iteration":4545,"passed_time":163.1864047,"remaining_time":16.29710245,"test":[0.4938820608]}, -{"learn":[0.4912881564],"iteration":4546,"passed_time":163.2237909,"remaining_time":16.26135414,"test":[0.4938818224]}, -{"learn":[0.4912877689],"iteration":4547,"passed_time":163.2622645,"remaining_time":16.22571318,"test":[0.4938815243]}, -{"learn":[0.4912855636],"iteration":4548,"passed_time":163.2962553,"remaining_time":16.18962654,"test":[0.4938803919]}, -{"learn":[0.4912849377],"iteration":4549,"passed_time":163.3324511,"remaining_time":16.1537589,"test":[0.4938798852]}, -{"learn":[0.4912845503],"iteration":4550,"passed_time":163.3709778,"remaining_time":16.11812108,"test":[0.4938795574]}, -{"learn":[0.4912837158],"iteration":4551,"passed_time":163.4084661,"remaining_time":16.0823798,"test":[0.4938791104]}, -{"learn":[0.491283388],"iteration":4552,"passed_time":163.4457668,"remaining_time":16.04661932,"test":[0.4938789017]}, -{"learn":[0.4912828217],"iteration":4553,"passed_time":163.4825381,"remaining_time":16.01080632,"test":[0.4938783057]}, -{"learn":[0.4912823449],"iteration":4554,"passed_time":163.5193056,"remaining_time":15.97499253,"test":[0.4938780375]}, -{"learn":[0.4912818085],"iteration":4555,"passed_time":163.5562721,"remaining_time":15.93919772,"test":[0.4938776202]}, -{"learn":[0.491280825],"iteration":4556,"passed_time":163.5920732,"remaining_time":15.9032891,"test":[0.493877054]}, -{"learn":[0.4912801097],"iteration":4557,"passed_time":163.6292518,"remaining_time":15.86751411,"test":[0.4938768156]}, -{"learn":[0.4912796329],"iteration":4558,"passed_time":163.6650866,"remaining_time":15.83160851,"test":[0.4938762791]}, -{"learn":[0.4912789176],"iteration":4559,"passed_time":163.7018931,"remaining_time":15.7957967,"test":[0.4938760407]}, -{"learn":[0.4912779938],"iteration":4560,"passed_time":163.7388134,"remaining_time":15.75999542,"test":[0.4938755341]}, -{"learn":[0.4912770997],"iteration":4561,"passed_time":163.7760709,"remaining_time":15.72422601,"test":[0.4938749976]}, -{"learn":[0.4912768315],"iteration":4562,"passed_time":163.8130555,"remaining_time":15.68842981,"test":[0.493874789]}, -{"learn":[0.4912762056],"iteration":4563,"passed_time":163.8502299,"remaining_time":15.65265123,"test":[0.4938745506]}, -{"learn":[0.4912751923],"iteration":4564,"passed_time":163.8853359,"remaining_time":15.61667494,"test":[0.493874193]}, -{"learn":[0.4912748049],"iteration":4565,"passed_time":163.9223838,"remaining_time":15.58088361,"test":[0.4938738353]}, -{"learn":[0.4912736724],"iteration":4566,"passed_time":163.9586868,"remaining_time":15.54502111,"test":[0.4938730605]}, -{"learn":[0.4912726592],"iteration":4567,"passed_time":163.9936804,"remaining_time":15.50903457,"test":[0.4938724942]}, -{"learn":[0.4912714671],"iteration":4568,"passed_time":164.0292146,"remaining_time":15.47309947,"test":[0.4938718088]}, -{"learn":[0.491270871],"iteration":4569,"passed_time":164.0672468,"remaining_time":15.43739959,"test":[0.4938715704]}, -{"learn":[0.4912703346],"iteration":4570,"passed_time":164.1046036,"remaining_time":15.4016353,"test":[0.4938709743]}, -{"learn":[0.4912692617],"iteration":4571,"passed_time":164.1405768,"remaining_time":15.36574078,"test":[0.4938703187]}, -{"learn":[0.4912686358],"iteration":4572,"passed_time":164.1782324,"remaining_time":15.33000333,"test":[0.4938700802]}, -{"learn":[0.4912678312],"iteration":4573,"passed_time":164.2139599,"remaining_time":15.29408546,"test":[0.4938694842]}, -{"learn":[0.4912672649],"iteration":4574,"passed_time":164.2509657,"remaining_time":15.25828643,"test":[0.4938691862]}, -{"learn":[0.4912659536],"iteration":4575,"passed_time":164.2862509,"remaining_time":15.22232745,"test":[0.4938682325]}, -{"learn":[0.4912649702],"iteration":4576,"passed_time":164.3222111,"remaining_time":15.18643113,"test":[0.4938676067]}, -{"learn":[0.4912639271],"iteration":4577,"passed_time":164.3580376,"remaining_time":15.15052247,"test":[0.4938668318]}, -{"learn":[0.4912632118],"iteration":4578,"passed_time":164.3950247,"remaining_time":15.11472055,"test":[0.493866355]}, -{"learn":[0.4912619303],"iteration":4579,"passed_time":164.4302505,"remaining_time":15.0787566,"test":[0.4938654311]}, -{"learn":[0.4912608276],"iteration":4580,"passed_time":164.4656695,"remaining_time":15.04281064,"test":[0.4938646562]}, -{"learn":[0.4912600826],"iteration":4581,"passed_time":164.5011492,"remaining_time":15.00687044,"test":[0.4938642688]}, -{"learn":[0.4912595163],"iteration":4582,"passed_time":164.5371301,"remaining_time":14.97097606,"test":[0.4938637324]}, -{"learn":[0.4912585925],"iteration":4583,"passed_time":164.5740694,"remaining_time":14.93516861,"test":[0.4938631661]}, -{"learn":[0.4912580262],"iteration":4584,"passed_time":164.6110604,"remaining_time":14.89936534,"test":[0.4938628383]}, -{"learn":[0.4912574302],"iteration":4585,"passed_time":164.6464893,"remaining_time":14.86342054,"test":[0.4938622124]}, -{"learn":[0.4912569533],"iteration":4586,"passed_time":164.6833082,"remaining_time":14.82760111,"test":[0.493861974]}, -{"learn":[0.4912565063],"iteration":4587,"passed_time":164.7198158,"remaining_time":14.79175329,"test":[0.493861676]}, -{"learn":[0.4912558506],"iteration":4588,"passed_time":164.7566659,"remaining_time":14.75593586,"test":[0.4938614078]}, -{"learn":[0.491255195],"iteration":4589,"passed_time":164.7933854,"remaining_time":14.72010632,"test":[0.4938608713]}, -{"learn":[0.491254748],"iteration":4590,"passed_time":164.8310381,"remaining_time":14.68435952,"test":[0.4938605733]}, -{"learn":[0.4912539135],"iteration":4591,"passed_time":164.8674369,"remaining_time":14.64850049,"test":[0.4938599475]}, -{"learn":[0.4912527214],"iteration":4592,"passed_time":164.9020151,"remaining_time":14.61247989,"test":[0.4938594706]}, -{"learn":[0.4912517677],"iteration":4593,"passed_time":164.9380539,"remaining_time":14.57658901,"test":[0.4938589938]}, -{"learn":[0.4912511717],"iteration":4594,"passed_time":164.9751296,"remaining_time":14.54078945,"test":[0.4938585169]}, -{"learn":[0.4912506054],"iteration":4595,"passed_time":165.0125876,"remaining_time":14.50502293,"test":[0.4938580401]}, -{"learn":[0.4912499796],"iteration":4596,"passed_time":165.0496434,"remaining_time":14.46922042,"test":[0.4938578017]}, -{"learn":[0.4912492345],"iteration":4597,"passed_time":165.0867074,"remaining_time":14.43341809,"test":[0.4938573547]}, -{"learn":[0.4912483107],"iteration":4598,"passed_time":165.1226011,"remaining_time":14.39751317,"test":[0.4938567884]}, -{"learn":[0.4912475656],"iteration":4599,"passed_time":165.1593896,"remaining_time":14.36168605,"test":[0.4938563116]}, -{"learn":[0.4912470888],"iteration":4600,"passed_time":165.1956298,"remaining_time":14.32581097,"test":[0.4938560136]}, -{"learn":[0.4912458073],"iteration":4601,"passed_time":165.2310497,"remaining_time":14.28986479,"test":[0.4938548215]}, -{"learn":[0.4912453006],"iteration":4602,"passed_time":165.2676184,"remaining_time":14.25401792,"test":[0.4938546426]}, -{"learn":[0.4912446152],"iteration":4603,"passed_time":165.3041858,"remaining_time":14.21817063,"test":[0.4938542552]}, -{"learn":[0.4912440787],"iteration":4604,"passed_time":165.3417447,"remaining_time":14.18240807,"test":[0.4938538082]}, -{"learn":[0.4912435423],"iteration":4605,"passed_time":165.3784362,"remaining_time":14.14657053,"test":[0.4938535102]}, -{"learn":[0.4912430952],"iteration":4606,"passed_time":165.4184245,"remaining_time":14.11101386,"test":[0.4938532121]}, -{"learn":[0.4912421416],"iteration":4607,"passed_time":165.455646,"remaining_time":14.07521988,"test":[0.4938526459]}, -{"learn":[0.4912413369],"iteration":4608,"passed_time":165.4933257,"remaining_time":14.03946417,"test":[0.4938523181]}, -{"learn":[0.491240115],"iteration":4609,"passed_time":165.5284353,"remaining_time":14.00349019,"test":[0.4938513942]}, -{"learn":[0.4912393402],"iteration":4610,"passed_time":165.563775,"remaining_time":13.96753599,"test":[0.4938508876]}, -{"learn":[0.4912382971],"iteration":4611,"passed_time":165.6004623,"remaining_time":13.93169544,"test":[0.4938502319]}, -{"learn":[0.4912377606],"iteration":4612,"passed_time":165.6358676,"remaining_time":13.89574697,"test":[0.4938497849]}, -{"learn":[0.4912370454],"iteration":4613,"passed_time":165.6728284,"remaining_time":13.85992886,"test":[0.4938495465]}, -{"learn":[0.4912366579],"iteration":4614,"passed_time":165.7103671,"remaining_time":13.82415847,"test":[0.4938490994]}, -{"learn":[0.4912356745],"iteration":4615,"passed_time":165.7463677,"remaining_time":13.78825936,"test":[0.4938486226]}, -{"learn":[0.4912353466],"iteration":4616,"passed_time":165.7839943,"remaining_time":13.75249508,"test":[0.4938484736]}, -{"learn":[0.4912344228],"iteration":4617,"passed_time":165.8192922,"remaining_time":13.71653738,"test":[0.4938479073]}, -{"learn":[0.4912339459],"iteration":4618,"passed_time":165.8576927,"remaining_time":13.68083588,"test":[0.4938477285]}, -{"learn":[0.4912330817],"iteration":4619,"passed_time":165.8921355,"remaining_time":13.64480768,"test":[0.4938469536]}, -{"learn":[0.4912323664],"iteration":4620,"passed_time":165.9286765,"remaining_time":13.60895226,"test":[0.4938465364]}, -{"learn":[0.4912315916],"iteration":4621,"passed_time":165.9637777,"remaining_time":13.57297879,"test":[0.4938458808]}, -{"learn":[0.4912304889],"iteration":4622,"passed_time":166.0001955,"remaining_time":13.53711306,"test":[0.4938454933]}, -{"learn":[0.4912298332],"iteration":4623,"passed_time":166.0365546,"remaining_time":13.50124233,"test":[0.4938449867]}, -{"learn":[0.4912287305],"iteration":4624,"passed_time":166.0720594,"remaining_time":13.46530211,"test":[0.4938445099]}, -{"learn":[0.4912273298],"iteration":4625,"passed_time":166.1066866,"remaining_time":13.42929113,"test":[0.4938435264]}, -{"learn":[0.491226853],"iteration":4626,"passed_time":166.1433295,"remaining_time":13.39344324,"test":[0.4938431986]}, -{"learn":[0.4912260185],"iteration":4627,"passed_time":166.1790871,"remaining_time":13.35752385,"test":[0.4938426621]}, -{"learn":[0.4912250648],"iteration":4628,"passed_time":166.2150696,"remaining_time":13.32162256,"test":[0.4938420065]}, -{"learn":[0.4912243198],"iteration":4629,"passed_time":166.251979,"remaining_time":13.2857953,"test":[0.49384147]}, -{"learn":[0.4912239026],"iteration":4630,"passed_time":166.2890228,"remaining_time":13.24997828,"test":[0.4938410826]}, -{"learn":[0.4912235449],"iteration":4631,"passed_time":166.3282724,"remaining_time":13.21433598,"test":[0.4938409336]}, -{"learn":[0.4912227999],"iteration":4632,"passed_time":166.3640439,"remaining_time":13.1784166,"test":[0.4938403375]}, -{"learn":[0.4912221144],"iteration":4633,"passed_time":166.4018063,"remaining_time":13.14265453,"test":[0.4938399203]}, -{"learn":[0.491221429],"iteration":4634,"passed_time":166.4390491,"remaining_time":13.10685068,"test":[0.4938395627]}, -{"learn":[0.4912207733],"iteration":4635,"passed_time":166.4766502,"remaining_time":13.07107434,"test":[0.4938391454]}, -{"learn":[0.4912200879],"iteration":4636,"passed_time":166.5146895,"remaining_time":13.03533153,"test":[0.4938389368]}, -{"learn":[0.4912194322],"iteration":4637,"passed_time":166.5517304,"remaining_time":12.99950979,"test":[0.4938385494]}, -{"learn":[0.4912184189],"iteration":4638,"passed_time":166.5887184,"remaining_time":12.96368341,"test":[0.4938376553]}, -{"learn":[0.4912179123],"iteration":4639,"passed_time":166.624889,"remaining_time":12.92779311,"test":[0.4938373871]}, -{"learn":[0.4912169586],"iteration":4640,"passed_time":166.6615553,"remaining_time":12.89194104,"test":[0.4938369103]}, -{"learn":[0.4912163328],"iteration":4641,"passed_time":166.6986342,"remaining_time":12.85612043,"test":[0.4938365228]}, -{"learn":[0.4912156473],"iteration":4642,"passed_time":166.7355241,"remaining_time":12.82028475,"test":[0.4938361056]}, -{"learn":[0.491214783],"iteration":4643,"passed_time":166.7717241,"remaining_time":12.78439573,"test":[0.4938357778]}, -{"learn":[0.4912139188],"iteration":4644,"passed_time":166.8070438,"remaining_time":12.7484393,"test":[0.4938350327]}, -{"learn":[0.4912133823],"iteration":4645,"passed_time":166.8464012,"remaining_time":12.71279079,"test":[0.4938346751]}, -{"learn":[0.4912126373],"iteration":4646,"passed_time":166.8835756,"remaining_time":12.67697486,"test":[0.493834079]}, -{"learn":[0.491212071],"iteration":4647,"passed_time":166.9213408,"remaining_time":12.64120309,"test":[0.4938337512]}, -{"learn":[0.4912117134],"iteration":4648,"passed_time":166.9587265,"remaining_time":12.60540181,"test":[0.4938336618]}, -{"learn":[0.4912101637],"iteration":4649,"passed_time":166.9932892,"remaining_time":12.56938736,"test":[0.4938327379]}, -{"learn":[0.4912095676],"iteration":4650,"passed_time":167.0285859,"remaining_time":12.53342861,"test":[0.4938325591]}, -{"learn":[0.4912088226],"iteration":4651,"passed_time":167.0651407,"remaining_time":12.49756426,"test":[0.4938321121]}, -{"learn":[0.4912081967],"iteration":4652,"passed_time":167.1023558,"remaining_time":12.46174886,"test":[0.4938318141]}, -{"learn":[0.4912076603],"iteration":4653,"passed_time":167.1393954,"remaining_time":12.42591982,"test":[0.4938314266]}, -{"learn":[0.4912071239],"iteration":4654,"passed_time":167.1761118,"remaining_time":12.39006629,"test":[0.4938310392]}, -{"learn":[0.4912061702],"iteration":4655,"passed_time":167.2114766,"remaining_time":12.35411253,"test":[0.4938302942]}, -{"learn":[0.4912057231],"iteration":4656,"passed_time":167.2483116,"remaining_time":12.31826732,"test":[0.4938299365]}, -{"learn":[0.4912054549],"iteration":4657,"passed_time":167.2849876,"remaining_time":12.28240999,"test":[0.4938298173]}, -{"learn":[0.4912047099],"iteration":4658,"passed_time":167.3213758,"remaining_time":12.24653126,"test":[0.4938295789]}, -{"learn":[0.4912041734],"iteration":4659,"passed_time":167.3573399,"remaining_time":12.21062137,"test":[0.4938290425]}, -{"learn":[0.491203339],"iteration":4660,"passed_time":167.3927062,"remaining_time":12.17466797,"test":[0.493828357]}, -{"learn":[0.4912028323],"iteration":4661,"passed_time":167.4298451,"remaining_time":12.13884334,"test":[0.4938281782]}, -{"learn":[0.4912022065],"iteration":4662,"passed_time":167.4651573,"remaining_time":12.10288613,"test":[0.4938274629]}, -{"learn":[0.4912008356],"iteration":4663,"passed_time":167.5009735,"remaining_time":12.0669655,"test":[0.4938264199]}, -{"learn":[0.4911997031],"iteration":4664,"passed_time":167.5383271,"remaining_time":12.03115532,"test":[0.4938257344]}, -{"learn":[0.491198958],"iteration":4665,"passed_time":167.5746848,"remaining_time":11.99527319,"test":[0.4938251682]}, -{"learn":[0.4911985706],"iteration":4666,"passed_time":167.6124126,"remaining_time":11.95948862,"test":[0.4938248105]}, -{"learn":[0.4911978255],"iteration":4667,"passed_time":167.6491015,"remaining_time":11.92362932,"test":[0.4938244827]}, -{"learn":[0.4911969911],"iteration":4668,"passed_time":167.6845277,"remaining_time":11.88768016,"test":[0.493823827]}, -{"learn":[0.491196544],"iteration":4669,"passed_time":167.7200862,"remaining_time":11.85174057,"test":[0.493823529]}, -{"learn":[0.4911958586],"iteration":4670,"passed_time":167.7576433,"remaining_time":11.81594191,"test":[0.493822933]}, -{"learn":[0.4911954115],"iteration":4671,"passed_time":167.7930858,"remaining_time":11.77999404,"test":[0.4938226052]}, -{"learn":[0.4911947559],"iteration":4672,"passed_time":167.8285592,"remaining_time":11.74404854,"test":[0.4938222475]}, -{"learn":[0.4911942791],"iteration":4673,"passed_time":167.8653145,"remaining_time":11.70819267,"test":[0.4938220389]}, -{"learn":[0.491193683],"iteration":4674,"passed_time":167.9009509,"remaining_time":11.67225862,"test":[0.4938216217]}, -{"learn":[0.4911929081],"iteration":4675,"passed_time":167.937646,"remaining_time":11.63639805,"test":[0.4938211448]}, -{"learn":[0.4911922823],"iteration":4676,"passed_time":167.9741099,"remaining_time":11.60052117,"test":[0.4938209362]}, -{"learn":[0.4911914478],"iteration":4677,"passed_time":168.0086354,"remaining_time":11.5645106,"test":[0.493820519]}, -{"learn":[0.4911907028],"iteration":4678,"passed_time":168.0442046,"remaining_time":11.52857228,"test":[0.493820221]}, -{"learn":[0.4911897789],"iteration":4679,"passed_time":168.0806477,"remaining_time":11.49269386,"test":[0.4938196547]}, -{"learn":[0.4911894809],"iteration":4680,"passed_time":168.1169168,"remaining_time":11.45680335,"test":[0.4938193269]}, -{"learn":[0.4911889146],"iteration":4681,"passed_time":168.1525314,"remaining_time":11.42086821,"test":[0.4938190289]}, -{"learn":[0.4911878418],"iteration":4682,"passed_time":168.1882396,"remaining_time":11.38493956,"test":[0.4938185222]}, -{"learn":[0.4911870669],"iteration":4683,"passed_time":168.2228679,"remaining_time":11.34893814,"test":[0.4938179262]}, -{"learn":[0.4911863516],"iteration":4684,"passed_time":168.2591441,"remaining_time":11.31304811,"test":[0.4938175388]}, -{"learn":[0.4911853384],"iteration":4685,"passed_time":168.2940207,"remaining_time":11.27706413,"test":[0.4938165851]}, -{"learn":[0.4911843847],"iteration":4686,"passed_time":168.3288935,"remaining_time":11.24108036,"test":[0.4938161082]}, -{"learn":[0.4911835204],"iteration":4687,"passed_time":168.3643868,"remaining_time":11.20513837,"test":[0.4938156016]}, -{"learn":[0.4911828052],"iteration":4688,"passed_time":168.3996228,"remaining_time":11.1691795,"test":[0.4938151844]}, -{"learn":[0.4911820899],"iteration":4689,"passed_time":168.4337726,"remaining_time":11.13314915,"test":[0.4938147671]}, -{"learn":[0.4911810468],"iteration":4690,"passed_time":168.4704773,"remaining_time":11.09728789,"test":[0.4938142903]}, -{"learn":[0.4911798547],"iteration":4691,"passed_time":168.50629,"remaining_time":11.06136771,"test":[0.4938136347]}, -{"learn":[0.4911790501],"iteration":4692,"passed_time":168.5423254,"remaining_time":11.02546215,"test":[0.493813128]}, -{"learn":[0.4911784242],"iteration":4693,"passed_time":168.5782899,"remaining_time":10.98955192,"test":[0.4938125618]}, -{"learn":[0.4911777388],"iteration":4694,"passed_time":168.6131773,"remaining_time":10.95357169,"test":[0.493812383]}, -{"learn":[0.4911769639],"iteration":4695,"passed_time":168.648766,"remaining_time":10.91763733,"test":[0.4938120849]}, -{"learn":[0.4911761294],"iteration":4696,"passed_time":168.6849451,"remaining_time":10.88174119,"test":[0.4938119359]}, -{"learn":[0.4911750566],"iteration":4697,"passed_time":168.7199623,"remaining_time":10.84577024,"test":[0.4938113399]}, -{"learn":[0.4911743115],"iteration":4698,"passed_time":168.7541923,"remaining_time":10.80974928,"test":[0.4938109524]}, -{"learn":[0.4911737155],"iteration":4699,"passed_time":168.7907061,"remaining_time":10.77387485,"test":[0.4938105054]}, -{"learn":[0.4911727916],"iteration":4700,"passed_time":168.8266156,"remaining_time":10.73796173,"test":[0.4938100584]}, -{"learn":[0.4911720763],"iteration":4701,"passed_time":168.8605972,"remaining_time":10.70192641,"test":[0.4938097306]}, -{"learn":[0.4911714505],"iteration":4702,"passed_time":168.8979362,"remaining_time":10.66610399,"test":[0.4938093133]}, -{"learn":[0.4911697517],"iteration":4703,"passed_time":168.9312377,"remaining_time":10.63002686,"test":[0.4938084193]}, -{"learn":[0.4911690067],"iteration":4704,"passed_time":168.9652764,"remaining_time":10.59399714,"test":[0.4938080616]}, -{"learn":[0.4911686193],"iteration":4705,"passed_time":169.0026352,"remaining_time":10.55817568,"test":[0.4938076444]}, -{"learn":[0.4911677252],"iteration":4706,"passed_time":169.0372191,"remaining_time":10.52218084,"test":[0.4938069589]}, -{"learn":[0.4911670397],"iteration":4707,"passed_time":169.073536,"remaining_time":10.48629408,"test":[0.4938065715]}, -{"learn":[0.4911661457],"iteration":4708,"passed_time":169.1073479,"remaining_time":10.45025233,"test":[0.4938060351]}, -{"learn":[0.491165043],"iteration":4709,"passed_time":169.1420343,"remaining_time":10.41426538,"test":[0.4938055284]}, -{"learn":[0.4911648344],"iteration":4710,"passed_time":169.178032,"remaining_time":10.37835942,"test":[0.4938052304]}, -{"learn":[0.4911641191],"iteration":4711,"passed_time":169.2130319,"remaining_time":10.34239244,"test":[0.4938047834]}, -{"learn":[0.491163076],"iteration":4712,"passed_time":169.2477481,"remaining_time":10.30640859,"test":[0.4938043363]}, -{"learn":[0.4911624204],"iteration":4713,"passed_time":169.2829855,"remaining_time":10.27045691,"test":[0.4938038595]}, -{"learn":[0.4911615561],"iteration":4714,"passed_time":169.3192664,"remaining_time":10.23456859,"test":[0.4938033827]}, -{"learn":[0.4911603044],"iteration":4715,"passed_time":169.3539333,"remaining_time":10.19858292,"test":[0.4938026078]}, -{"learn":[0.4911599468],"iteration":4716,"passed_time":169.3909584,"remaining_time":10.16273929,"test":[0.49380228]}, -{"learn":[0.4911592315],"iteration":4717,"passed_time":169.4264972,"remaining_time":10.12680632,"test":[0.4938019521]}, -{"learn":[0.4911576222],"iteration":4718,"passed_time":169.4614049,"remaining_time":10.09083593,"test":[0.4938007899]}, -{"learn":[0.4911571752],"iteration":4719,"passed_time":169.4970313,"remaining_time":10.05490864,"test":[0.4938006408]}, -{"learn":[0.4911567877],"iteration":4720,"passed_time":169.5355627,"remaining_time":10.01915315,"test":[0.4938003726]}, -{"learn":[0.4911561917],"iteration":4721,"passed_time":169.5732129,"remaining_time":9.983344597,"test":[0.4937999852]}, -{"learn":[0.491155685],"iteration":4722,"passed_time":169.6126385,"remaining_time":9.947639394,"test":[0.4937997766]}, -{"learn":[0.4911547016],"iteration":4723,"passed_time":169.6475628,"remaining_time":9.91166963,"test":[0.4937993891]}, -{"learn":[0.4911540459],"iteration":4724,"passed_time":169.6845501,"remaining_time":9.875820375,"test":[0.4937989421]}, -{"learn":[0.4911533009],"iteration":4725,"passed_time":169.7195281,"remaining_time":9.839854144,"test":[0.4937984057]}, -{"learn":[0.4911530624],"iteration":4726,"passed_time":169.7561864,"remaining_time":9.803985381,"test":[0.4937983759]}, -{"learn":[0.4911521982],"iteration":4727,"passed_time":169.7913621,"remaining_time":9.768030984,"test":[0.4937979288]}, -{"learn":[0.4911511253],"iteration":4728,"passed_time":169.8273483,"remaining_time":9.732123361,"test":[0.4937972434]}, -{"learn":[0.4911505889],"iteration":4729,"passed_time":169.8631565,"remaining_time":9.696205549,"test":[0.4937969752]}, -{"learn":[0.4911500822],"iteration":4730,"passed_time":169.9006114,"remaining_time":9.660381414,"test":[0.4937965877]}, -{"learn":[0.4911495756],"iteration":4731,"passed_time":169.9367614,"remaining_time":9.624482684,"test":[0.4937962599]}, -{"learn":[0.4911487709],"iteration":4732,"passed_time":169.9736448,"remaining_time":9.588625222,"test":[0.4937957831]}, -{"learn":[0.4911483239],"iteration":4733,"passed_time":170.0114029,"remaining_time":9.552816469,"test":[0.4937955446]}, -{"learn":[0.4911472808],"iteration":4734,"passed_time":170.0444431,"remaining_time":9.516742856,"test":[0.4937949784]}, -{"learn":[0.4911464761],"iteration":4735,"passed_time":170.0809278,"remaining_time":9.480862528,"test":[0.4937941141]}, -{"learn":[0.4911458503],"iteration":4736,"passed_time":170.1184559,"remaining_time":9.445039877,"test":[0.4937939949]}, -{"learn":[0.4911453436],"iteration":4737,"passed_time":170.1551032,"remaining_time":9.4091678,"test":[0.4937936671]}, -{"learn":[0.4911446582],"iteration":4738,"passed_time":170.1916362,"remaining_time":9.373289102,"test":[0.4937931307]}, -{"learn":[0.4911443602],"iteration":4739,"passed_time":170.2290687,"remaining_time":9.337459464,"test":[0.4937930115]}, -{"learn":[0.4911439429],"iteration":4740,"passed_time":170.2658858,"remaining_time":9.301595533,"test":[0.4937927432]}, -{"learn":[0.4911434959],"iteration":4741,"passed_time":170.3026843,"remaining_time":9.265730189,"test":[0.493792475]}, -{"learn":[0.4911425422],"iteration":4742,"passed_time":170.3398253,"remaining_time":9.229883005,"test":[0.4937919684]}, -{"learn":[0.4911419462],"iteration":4743,"passed_time":170.3762501,"remaining_time":9.193996631,"test":[0.4937917896]}, -{"learn":[0.4911402474],"iteration":4744,"passed_time":170.4111432,"remaining_time":9.158027718,"test":[0.4937908657]}, -{"learn":[0.491139711],"iteration":4745,"passed_time":170.446992,"remaining_time":9.122110403,"test":[0.4937904783]}, -{"learn":[0.4911378633],"iteration":4746,"passed_time":170.4799162,"remaining_time":9.086037246,"test":[0.4937895544]}, -{"learn":[0.4911373864],"iteration":4747,"passed_time":170.5168293,"remaining_time":9.050177126,"test":[0.4937891073]}, -{"learn":[0.4911364328],"iteration":4748,"passed_time":170.5514239,"remaining_time":9.014194018,"test":[0.4937883325]}, -{"learn":[0.4911356579],"iteration":4749,"passed_time":170.5881146,"remaining_time":8.97832182,"test":[0.4937879153]}, -{"learn":[0.4911347042],"iteration":4750,"passed_time":170.6330561,"remaining_time":8.942881701,"test":[0.4937874086]}, -{"learn":[0.4911341678],"iteration":4751,"passed_time":170.6703688,"remaining_time":8.907039448,"test":[0.4937870212]}, -{"learn":[0.4911330353],"iteration":4752,"passed_time":170.7045659,"remaining_time":8.87103467,"test":[0.4937863059]}, -{"learn":[0.4911319922],"iteration":4753,"passed_time":170.7390821,"remaining_time":8.835047157,"test":[0.4937858589]}, -{"learn":[0.4911312173],"iteration":4754,"passed_time":170.7744154,"remaining_time":8.799102373,"test":[0.4937853523]}, -{"learn":[0.4911304127],"iteration":4755,"passed_time":170.8122283,"remaining_time":8.763285049,"test":[0.4937850542]}, -{"learn":[0.4911300253],"iteration":4756,"passed_time":170.8493872,"remaining_time":8.727433484,"test":[0.4937848456]}, -{"learn":[0.4911292802],"iteration":4757,"passed_time":170.8846027,"remaining_time":8.691482527,"test":[0.4937843092]}, -{"learn":[0.4911288928],"iteration":4758,"passed_time":170.9213088,"remaining_time":8.655607361,"test":[0.493784041]}, -{"learn":[0.4911276113],"iteration":4759,"passed_time":170.957536,"remaining_time":8.619707699,"test":[0.4937833555]}, -{"learn":[0.4911266874],"iteration":4760,"passed_time":170.9928691,"remaining_time":8.583763013,"test":[0.4937828489]}, -{"learn":[0.4911259423],"iteration":4761,"passed_time":171.0287103,"remaining_time":8.547843982,"test":[0.4937824912]}, -{"learn":[0.4911256443],"iteration":4762,"passed_time":171.0654686,"remaining_time":8.511970618,"test":[0.4937820442]}, -{"learn":[0.4911251973],"iteration":4763,"passed_time":171.1020969,"remaining_time":8.476090441,"test":[0.493781776]}, -{"learn":[0.4911241542],"iteration":4764,"passed_time":171.1365552,"remaining_time":8.440102934,"test":[0.4937812693]}, -{"learn":[0.4911234091],"iteration":4765,"passed_time":171.1713665,"remaining_time":8.404133397,"test":[0.4937808223]}, -{"learn":[0.4911225747],"iteration":4766,"passed_time":171.2069065,"remaining_time":8.36819996,"test":[0.4937801667]}, -{"learn":[0.4911212336],"iteration":4767,"passed_time":171.2406963,"remaining_time":8.332181531,"test":[0.4937793918]}, -{"learn":[0.4911203991],"iteration":4768,"passed_time":171.2762868,"remaining_time":8.296251256,"test":[0.4937789746]}, -{"learn":[0.4911199223],"iteration":4769,"passed_time":171.3112888,"remaining_time":8.260292752,"test":[0.4937785871]}, -{"learn":[0.4911188196],"iteration":4770,"passed_time":171.3469513,"remaining_time":8.224366346,"test":[0.4937779613]}, -{"learn":[0.4911182831],"iteration":4771,"passed_time":171.3838938,"remaining_time":8.188501213,"test":[0.4937776335]}, -{"learn":[0.4911174487],"iteration":4772,"passed_time":171.4178594,"remaining_time":8.152494048,"test":[0.49377665]}, -{"learn":[0.4911169122],"iteration":4773,"passed_time":171.4542592,"remaining_time":8.116602972,"test":[0.4937764414]}, -{"learn":[0.4911158095],"iteration":4774,"passed_time":171.4888947,"remaining_time":8.080628545,"test":[0.4937757559]}, -{"learn":[0.4911155115],"iteration":4775,"passed_time":171.5259592,"remaining_time":8.044768604,"test":[0.4937754877]}, -{"learn":[0.4911151539],"iteration":4776,"passed_time":171.5637524,"remaining_time":8.008942178,"test":[0.4937753089]}, -{"learn":[0.4911147963],"iteration":4777,"passed_time":171.6023182,"remaining_time":7.973150824,"test":[0.4937751301]}, -{"learn":[0.4911142896],"iteration":4778,"passed_time":171.6401592,"remaining_time":7.937324794,"test":[0.4937747128]}, -{"learn":[0.491113336],"iteration":4779,"passed_time":171.6743857,"remaining_time":7.901331559,"test":[0.4937739678]}, -{"learn":[0.4911122333],"iteration":4780,"passed_time":171.7079617,"remaining_time":7.865309268,"test":[0.4937730141]}, -{"learn":[0.4911115776],"iteration":4781,"passed_time":171.746161,"remaining_time":7.829498765,"test":[0.4937726267]}, -{"learn":[0.4911107432],"iteration":4782,"passed_time":171.7814448,"remaining_time":7.793554989,"test":[0.4937722392]}, -{"learn":[0.4911097597],"iteration":4783,"passed_time":171.8168426,"remaining_time":7.757616639,"test":[0.4937715836]}, -{"learn":[0.4911083292],"iteration":4784,"passed_time":171.8519744,"remaining_time":7.72166656,"test":[0.4937711067]}, -{"learn":[0.4911077331],"iteration":4785,"passed_time":171.8882475,"remaining_time":7.685767859,"test":[0.4937707491]}, -{"learn":[0.4911070477],"iteration":4786,"passed_time":171.9260669,"remaining_time":7.649937802,"test":[0.4937703915]}, -{"learn":[0.4911064218],"iteration":4787,"passed_time":171.9618142,"remaining_time":7.614015163,"test":[0.4937698849]}, -{"learn":[0.4911056768],"iteration":4788,"passed_time":171.9970854,"remaining_time":7.578071625,"test":[0.4937694676]}, -{"learn":[0.4911052297],"iteration":4789,"passed_time":172.0354654,"remaining_time":7.542264662,"test":[0.4937691398]}, -{"learn":[0.4911044549],"iteration":4790,"passed_time":172.0715435,"remaining_time":7.506356209,"test":[0.4937685437]}, -{"learn":[0.4911036502],"iteration":4791,"passed_time":172.1070302,"remaining_time":7.470422012,"test":[0.4937678583]}, -{"learn":[0.4911029647],"iteration":4792,"passed_time":172.1427313,"remaining_time":7.434497264,"test":[0.4937675603]}, -{"learn":[0.4911024283],"iteration":4793,"passed_time":172.1790007,"remaining_time":7.398597028,"test":[0.4937671728]}, -{"learn":[0.4911018919],"iteration":4794,"passed_time":172.2165501,"remaining_time":7.362751361,"test":[0.4937668152]}, -{"learn":[0.4911014448],"iteration":4795,"passed_time":172.2532514,"remaining_time":7.326868909,"test":[0.493766547]}, -{"learn":[0.4911009382],"iteration":4796,"passed_time":172.2907359,"remaining_time":7.291019259,"test":[0.4937662788]}, -{"learn":[0.4911003421],"iteration":4797,"passed_time":172.3282784,"remaining_time":7.255171372,"test":[0.4937659509]}, -{"learn":[0.4910992395],"iteration":4798,"passed_time":172.3638398,"remaining_time":7.219239799,"test":[0.4937653251]}, -{"learn":[0.4910988818],"iteration":4799,"passed_time":172.4010363,"remaining_time":7.183376514,"test":[0.4937649973]}, -{"learn":[0.4910983156],"iteration":4800,"passed_time":172.4391715,"remaining_time":7.147551577,"test":[0.4937647589]}, -{"learn":[0.4910975109],"iteration":4801,"passed_time":172.4773972,"remaining_time":7.111729414,"test":[0.4937641032]}, -{"learn":[0.4910970341],"iteration":4802,"passed_time":172.5129681,"remaining_time":7.075797361,"test":[0.493763984]}, -{"learn":[0.4910965274],"iteration":4803,"passed_time":172.5492334,"remaining_time":7.039893786,"test":[0.493763686]}, -{"learn":[0.4910958718],"iteration":4804,"passed_time":172.585882,"remaining_time":7.004005616,"test":[0.4937631793]}, -{"learn":[0.491095395],"iteration":4805,"passed_time":172.6209525,"remaining_time":6.968053431,"test":[0.4937628813]}, -{"learn":[0.4910950671],"iteration":4806,"passed_time":172.6591094,"remaining_time":6.93222553,"test":[0.4937623449]}, -{"learn":[0.4910945009],"iteration":4807,"passed_time":172.6967299,"remaining_time":6.896375237,"test":[0.4937620468]}, -{"learn":[0.4910936962],"iteration":4808,"passed_time":172.7330415,"remaining_time":6.860472226,"test":[0.4937616892]}, -{"learn":[0.4910927426],"iteration":4809,"passed_time":172.7674839,"remaining_time":6.824495206,"test":[0.4937612124]}, -{"learn":[0.4910917889],"iteration":4810,"passed_time":172.8035519,"remaining_time":6.788582686,"test":[0.4937606759]}, -{"learn":[0.4910908948],"iteration":4811,"passed_time":172.8411995,"remaining_time":6.752731816,"test":[0.4937601693]}, -{"learn":[0.4910902988],"iteration":4812,"passed_time":172.8778145,"remaining_time":6.716840082,"test":[0.4937597819]}, -{"learn":[0.4910895835],"iteration":4813,"passed_time":172.9123711,"remaining_time":6.680868514,"test":[0.4937594242]}, -{"learn":[0.4910890769],"iteration":4814,"passed_time":172.9495915,"remaining_time":6.644999882,"test":[0.4937592752]}, -{"learn":[0.4910874377],"iteration":4815,"passed_time":172.9832328,"remaining_time":6.608993942,"test":[0.4937579341]}, -{"learn":[0.4910862158],"iteration":4816,"passed_time":173.0168493,"remaining_time":6.572988047,"test":[0.4937572189]}, -{"learn":[0.4910850834],"iteration":4817,"passed_time":173.0520713,"remaining_time":6.537043791,"test":[0.4937566824]}, -{"learn":[0.4910836826],"iteration":4818,"passed_time":173.0873187,"remaining_time":6.501100787,"test":[0.4937556989]}, -{"learn":[0.491082729],"iteration":4819,"passed_time":173.123667,"remaining_time":6.465199182,"test":[0.4937550135]}, -{"learn":[0.4910820733],"iteration":4820,"passed_time":173.1605209,"remaining_time":6.429316168,"test":[0.4937547453]}, -{"learn":[0.4910815369],"iteration":4821,"passed_time":173.1962373,"remaining_time":6.39339076,"test":[0.4937544473]}, -{"learn":[0.4910803448],"iteration":4822,"passed_time":173.2304942,"remaining_time":6.357411876,"test":[0.493753881]}, -{"learn":[0.4910794805],"iteration":4823,"passed_time":173.2654351,"remaining_time":6.321458659,"test":[0.4937535234]}, -{"learn":[0.4910788845],"iteration":4824,"passed_time":173.3003995,"remaining_time":6.285506717,"test":[0.4937531359]}, -{"learn":[0.491078348],"iteration":4825,"passed_time":173.3374743,"remaining_time":6.249631274,"test":[0.4937529869]}, -{"learn":[0.4910778116],"iteration":4826,"passed_time":173.3724545,"remaining_time":6.213680262,"test":[0.4937524505]}, -{"learn":[0.4910772751],"iteration":4827,"passed_time":173.4089265,"remaining_time":6.1777828,"test":[0.4937522121]}, -{"learn":[0.4910766493],"iteration":4828,"passed_time":173.4459854,"remaining_time":6.141905882,"test":[0.4937518843]}, -{"learn":[0.491075785],"iteration":4829,"passed_time":173.4818186,"remaining_time":6.105985332,"test":[0.493751467]}, -{"learn":[0.4910748314],"iteration":4830,"passed_time":173.517014,"remaining_time":6.07004251,"test":[0.4937510498]}, -{"learn":[0.4910739969],"iteration":4831,"passed_time":173.5548645,"remaining_time":6.034192307,"test":[0.4937505729]}, -{"learn":[0.4910730134],"iteration":4832,"passed_time":173.5908321,"remaining_time":5.998276217,"test":[0.4937499769]}, -{"learn":[0.491072626],"iteration":4833,"passed_time":173.6273639,"remaining_time":5.962379479,"test":[0.4937497385]}, -{"learn":[0.4910720597],"iteration":4834,"passed_time":173.6638397,"remaining_time":5.926480569,"test":[0.4937492616]}, -{"learn":[0.4910715233],"iteration":4835,"passed_time":173.7018747,"remaining_time":5.890634294,"test":[0.4937489636]}, -{"learn":[0.4910705994],"iteration":4836,"passed_time":173.7362569,"remaining_time":5.854664024,"test":[0.4937482484]}, -{"learn":[0.4910697054],"iteration":4837,"passed_time":173.7723952,"remaining_time":5.818753207,"test":[0.4937478013]}, -{"learn":[0.4910683345],"iteration":4838,"passed_time":173.8069611,"remaining_time":5.782789985,"test":[0.4937469669]}, -{"learn":[0.4910675894],"iteration":4839,"passed_time":173.8433089,"remaining_time":5.746886245,"test":[0.4937464602]}, -{"learn":[0.4910667549],"iteration":4840,"passed_time":173.8799254,"remaining_time":5.710991146,"test":[0.4937459834]}, -{"learn":[0.4910660397],"iteration":4841,"passed_time":173.9169639,"remaining_time":5.675109522,"test":[0.4937456854]}, -{"learn":[0.4910652648],"iteration":4842,"passed_time":173.9523456,"remaining_time":5.639173707,"test":[0.4937451191]}, -{"learn":[0.4910648178],"iteration":4843,"passed_time":173.9907698,"remaining_time":5.603336103,"test":[0.4937448807]}, -{"learn":[0.4910641919],"iteration":4844,"passed_time":174.0269848,"remaining_time":5.567426758,"test":[0.4937442847]}, -{"learn":[0.4910637151],"iteration":4845,"passed_time":174.063642,"remaining_time":5.531531339,"test":[0.4937440462]}, -{"learn":[0.4910627912],"iteration":4846,"passed_time":174.0973302,"remaining_time":5.495541886,"test":[0.4937434204]}, -{"learn":[0.4910618077],"iteration":4847,"passed_time":174.1332901,"remaining_time":5.459624608,"test":[0.4937428243]}, -{"learn":[0.4910607647],"iteration":4848,"passed_time":174.169137,"remaining_time":5.423703793,"test":[0.4937423773]}, -{"learn":[0.4910601686],"iteration":4849,"passed_time":174.2038942,"remaining_time":5.387749304,"test":[0.4937422581]}, -{"learn":[0.491059513],"iteration":4850,"passed_time":174.2390827,"remaining_time":5.351808559,"test":[0.4937418409]}, -{"learn":[0.4910586785],"iteration":4851,"passed_time":174.2758957,"remaining_time":5.315917676,"test":[0.4937411852]}, -{"learn":[0.4910579036],"iteration":4852,"passed_time":174.3111415,"remaining_time":5.279978941,"test":[0.4937407084]}, -{"learn":[0.4910576056],"iteration":4853,"passed_time":174.346506,"remaining_time":5.244044063,"test":[0.4937403508]}, -{"learn":[0.49105695],"iteration":4854,"passed_time":174.3829654,"remaining_time":5.208142117,"test":[0.4937398739]}, -{"learn":[0.4910558473],"iteration":4855,"passed_time":174.4167707,"remaining_time":5.17216124,"test":[0.4937390693]}, -{"learn":[0.4910553704],"iteration":4856,"passed_time":174.4523168,"remaining_time":5.136232511,"test":[0.4937389202]}, -{"learn":[0.4910549234],"iteration":4857,"passed_time":174.4899146,"remaining_time":5.10036391,"test":[0.4937384732]}, -{"learn":[0.4910542678],"iteration":4858,"passed_time":174.5268228,"remaining_time":5.064474586,"test":[0.4937382646]}, -{"learn":[0.4910540293],"iteration":4859,"passed_time":174.5653407,"remaining_time":5.028631214,"test":[0.4937381156]}, -{"learn":[0.4910536121],"iteration":4860,"passed_time":174.6006941,"remaining_time":4.992696253,"test":[0.4937378176]}, -{"learn":[0.4910526286],"iteration":4861,"passed_time":174.635725,"remaining_time":4.956752376,"test":[0.4937371619]}, -{"learn":[0.491051973],"iteration":4862,"passed_time":174.6721933,"remaining_time":4.920849368,"test":[0.4937368937]}, -{"learn":[0.4910511385],"iteration":4863,"passed_time":174.7082196,"remaining_time":4.884933771,"test":[0.4937365361]}, -{"learn":[0.4910507511],"iteration":4864,"passed_time":174.7444892,"remaining_time":4.849024879,"test":[0.4937362678]}, -{"learn":[0.491050006],"iteration":4865,"passed_time":174.7792148,"remaining_time":4.81307332,"test":[0.4937358804]}, -{"learn":[0.4910488735],"iteration":4866,"passed_time":174.8154377,"remaining_time":4.777163185,"test":[0.4937350757]}, -{"learn":[0.4910480093],"iteration":4867,"passed_time":174.8533445,"remaining_time":4.741298578,"test":[0.4937346883]}, -{"learn":[0.4910470258],"iteration":4868,"passed_time":174.8883856,"remaining_time":4.705356032,"test":[0.4937340923]}, -{"learn":[0.4910453271],"iteration":4869,"passed_time":174.9239741,"remaining_time":4.669428466,"test":[0.4937331684]}, -{"learn":[0.4910447608],"iteration":4870,"passed_time":174.959454,"remaining_time":4.633498166,"test":[0.4937326916]}, -{"learn":[0.491044284],"iteration":4871,"passed_time":174.9961162,"remaining_time":4.597599111,"test":[0.4937324829]}, -{"learn":[0.4910429429],"iteration":4872,"passed_time":175.0292186,"remaining_time":4.561606971,"test":[0.4937320061]}, -{"learn":[0.491042466],"iteration":4873,"passed_time":175.0650536,"remaining_time":4.525686654,"test":[0.4937317677]}, -{"learn":[0.4910417806],"iteration":4874,"passed_time":175.0991425,"remaining_time":4.489721602,"test":[0.493731261]}, -{"learn":[0.4910409461],"iteration":4875,"passed_time":175.1355634,"remaining_time":4.453816625,"test":[0.4937310226]}, -{"learn":[0.4910403799],"iteration":4876,"passed_time":175.1701569,"remaining_time":4.417865347,"test":[0.493730516]}, -{"learn":[0.4910396944],"iteration":4877,"passed_time":175.2065519,"remaining_time":4.381959683,"test":[0.4937303074]}, -{"learn":[0.4910388004],"iteration":4878,"passed_time":175.243951,"remaining_time":4.34607872,"test":[0.4937301286]}, -{"learn":[0.4910385321],"iteration":4879,"passed_time":175.2820471,"remaining_time":4.310214273,"test":[0.4937298603]}, -{"learn":[0.4910377573],"iteration":4880,"passed_time":175.3186566,"remaining_time":4.274312667,"test":[0.4937292345]}, -{"learn":[0.4910372208],"iteration":4881,"passed_time":175.3558845,"remaining_time":4.23842572,"test":[0.4937290259]}, -{"learn":[0.4910360287],"iteration":4882,"passed_time":175.3907838,"remaining_time":4.202482429,"test":[0.4937280722]}, -{"learn":[0.4910356711],"iteration":4883,"passed_time":175.4279089,"remaining_time":4.166592431,"test":[0.4937279828]}, -{"learn":[0.4910352539],"iteration":4884,"passed_time":175.4629465,"remaining_time":4.130652783,"test":[0.4937277742]}, -{"learn":[0.491034628],"iteration":4885,"passed_time":175.4975948,"remaining_time":4.094704423,"test":[0.4937273569]}, -{"learn":[0.4910336148],"iteration":4886,"passed_time":175.5325959,"remaining_time":4.058764751,"test":[0.4937269397]}, -{"learn":[0.4910330187],"iteration":4887,"passed_time":175.5684828,"remaining_time":4.02284576,"test":[0.4937266119]}, -{"learn":[0.4910326015],"iteration":4888,"passed_time":175.6047561,"remaining_time":3.986935554,"test":[0.4937262841]}, -{"learn":[0.4910321246],"iteration":4889,"passed_time":175.6417608,"remaining_time":3.951041653,"test":[0.493726135]}, -{"learn":[0.491031618],"iteration":4890,"passed_time":175.677971,"remaining_time":3.915129594,"test":[0.4937257774]}, -{"learn":[0.4910310219],"iteration":4891,"passed_time":175.7150482,"remaining_time":3.879236551,"test":[0.49372539]}, -{"learn":[0.4910303961],"iteration":4892,"passed_time":175.7519868,"remaining_time":3.843339994,"test":[0.4937250324]}, -{"learn":[0.4910298597],"iteration":4893,"passed_time":175.7885806,"remaining_time":3.807435541,"test":[0.4937246449]}, -{"learn":[0.4910285186],"iteration":4894,"passed_time":175.8250736,"remaining_time":3.771528648,"test":[0.4937238701]}, -{"learn":[0.4910278927],"iteration":4895,"passed_time":175.8628665,"remaining_time":3.735649126,"test":[0.493723572]}, -{"learn":[0.491025896],"iteration":4896,"passed_time":175.8981381,"remaining_time":3.699715791,"test":[0.4937222309]}, -{"learn":[0.4910247933],"iteration":4897,"passed_time":175.9338968,"remaining_time":3.66379287,"test":[0.4937214263]}, -{"learn":[0.4910242866],"iteration":4898,"passed_time":175.9699737,"remaining_time":3.627876575,"test":[0.4937210389]}, -{"learn":[0.491023631],"iteration":4899,"passed_time":176.0053522,"remaining_time":3.591945964,"test":[0.4937206812]}, -{"learn":[0.4910226773],"iteration":4900,"passed_time":176.0404137,"remaining_time":3.556009174,"test":[0.4937199362]}, -{"learn":[0.4910222005],"iteration":4901,"passed_time":176.0760244,"remaining_time":3.520083718,"test":[0.4937196679]}, -{"learn":[0.4910216044],"iteration":4902,"passed_time":176.1122605,"remaining_time":3.484170766,"test":[0.4937193997]}, -{"learn":[0.4910208296],"iteration":4903,"passed_time":176.1471147,"remaining_time":3.448230631,"test":[0.4937188335]}, -{"learn":[0.4910203229],"iteration":4904,"passed_time":176.1832855,"remaining_time":3.412316437,"test":[0.4937184759]}, -{"learn":[0.4910190116],"iteration":4905,"passed_time":176.2170532,"remaining_time":3.376356095,"test":[0.4937176414]}, -{"learn":[0.4910184156],"iteration":4906,"passed_time":176.2541503,"remaining_time":3.340459747,"test":[0.4937173732]}, -{"learn":[0.4910177599],"iteration":4907,"passed_time":176.2897666,"remaining_time":3.304535152,"test":[0.4937172242]}, -{"learn":[0.4910171639],"iteration":4908,"passed_time":176.3258276,"remaining_time":3.268618928,"test":[0.4937166281]}, -{"learn":[0.4910167764],"iteration":4909,"passed_time":176.3630115,"remaining_time":3.232723224,"test":[0.4937163301]}, -{"learn":[0.49101624],"iteration":4910,"passed_time":176.398307,"remaining_time":3.196792775,"test":[0.4937161811]}, -{"learn":[0.4910155247],"iteration":4911,"passed_time":176.4338223,"remaining_time":3.160866524,"test":[0.4937158532]}, -{"learn":[0.4910142134],"iteration":4912,"passed_time":176.4689209,"remaining_time":3.124933059,"test":[0.4937151976]}, -{"learn":[0.4910137664],"iteration":4913,"passed_time":176.5039402,"remaining_time":3.088998546,"test":[0.4937149592]}, -{"learn":[0.4910132598],"iteration":4914,"passed_time":176.5387959,"remaining_time":3.053061577,"test":[0.4937145419]}, -{"learn":[0.4910125445],"iteration":4915,"passed_time":176.5730252,"remaining_time":3.017114345,"test":[0.4937142737]}, -{"learn":[0.4910117398],"iteration":4916,"passed_time":176.6092601,"remaining_time":2.981201665,"test":[0.4937137671]}, -{"learn":[0.491010816],"iteration":4917,"passed_time":176.6440832,"remaining_time":2.945265316,"test":[0.4937134393]}, -{"learn":[0.4910101603],"iteration":4918,"passed_time":176.6796674,"remaining_time":2.909341951,"test":[0.4937130816]}, -{"learn":[0.4910094153],"iteration":4919,"passed_time":176.7159826,"remaining_time":2.873430612,"test":[0.493712575]}, -{"learn":[0.4910086106],"iteration":4920,"passed_time":176.75238,"remaining_time":2.837520427,"test":[0.4937119491]}, -{"learn":[0.4910080742],"iteration":4921,"passed_time":176.7890515,"remaining_time":2.801614388,"test":[0.4937117107]}, -{"learn":[0.4910073887],"iteration":4922,"passed_time":176.8252983,"remaining_time":2.765701396,"test":[0.4937114723]}, -{"learn":[0.491005541],"iteration":4923,"passed_time":176.8600519,"remaining_time":2.72976522,"test":[0.4937106676]}, -{"learn":[0.4910051237],"iteration":4924,"passed_time":176.8971003,"remaining_time":2.693864472,"test":[0.4937104888]}, -{"learn":[0.4910039614],"iteration":4925,"passed_time":176.9321232,"remaining_time":2.657932829,"test":[0.4937098928]}, -{"learn":[0.4910033952],"iteration":4926,"passed_time":176.9699662,"remaining_time":2.622043339,"test":[0.4937097438]}, -{"learn":[0.4910029482],"iteration":4927,"passed_time":177.0066283,"remaining_time":2.586135802,"test":[0.4937095054]}, -{"learn":[0.4910025607],"iteration":4928,"passed_time":177.0437255,"remaining_time":2.550234228,"test":[0.4937093861]}, -{"learn":[0.4910020243],"iteration":4929,"passed_time":177.080314,"remaining_time":2.514324946,"test":[0.4937088497]}, -{"learn":[0.4910016369],"iteration":4930,"passed_time":177.116662,"remaining_time":2.478412022,"test":[0.4937085219]}, -{"learn":[0.4910011302],"iteration":4931,"passed_time":177.1540648,"remaining_time":2.442513464,"test":[0.4937083729]}, -{"learn":[0.4910008322],"iteration":4932,"passed_time":177.1918642,"remaining_time":2.406619685,"test":[0.493708045]}, -{"learn":[0.4909997891],"iteration":4933,"passed_time":177.2292147,"remaining_time":2.370719126,"test":[0.4937076278]}, -{"learn":[0.4909994017],"iteration":4934,"passed_time":177.2669937,"remaining_time":2.334823625,"test":[0.4937073]}, -{"learn":[0.490998597],"iteration":4935,"passed_time":177.3047261,"remaining_time":2.298926757,"test":[0.4937067933]}, -{"learn":[0.4909979116],"iteration":4936,"passed_time":177.3437785,"remaining_time":2.263045988,"test":[0.4937063165]}, -{"learn":[0.4909974049],"iteration":4937,"passed_time":177.3790609,"remaining_time":2.227116601,"test":[0.4937059589]}, -{"learn":[0.4909968387],"iteration":4938,"passed_time":177.4155463,"remaining_time":2.191202333,"test":[0.4937057503]}, -{"learn":[0.4909952592],"iteration":4939,"passed_time":177.4500655,"remaining_time":2.155263953,"test":[0.4937049754]}, -{"learn":[0.4909938585],"iteration":4940,"passed_time":177.4846167,"remaining_time":2.11932653,"test":[0.4937041409]}, -{"learn":[0.4909927558],"iteration":4941,"passed_time":177.518988,"remaining_time":2.083387557,"test":[0.4937035449]}, -{"learn":[0.4909923385],"iteration":4942,"passed_time":177.5541103,"remaining_time":2.047457877,"test":[0.4937032767]}, -{"learn":[0.4909920107],"iteration":4943,"passed_time":177.5914338,"remaining_time":2.011553457,"test":[0.493702919]}, -{"learn":[0.4909915041],"iteration":4944,"passed_time":177.627185,"remaining_time":1.975630976,"test":[0.4937025912]}, -{"learn":[0.4909908484],"iteration":4945,"passed_time":177.6624259,"remaining_time":1.939702992,"test":[0.4937022932]}, -{"learn":[0.4909897457],"iteration":4946,"passed_time":177.6968576,"remaining_time":1.903766617,"test":[0.4937013693]}, -{"learn":[0.4909891497],"iteration":4947,"passed_time":177.7340577,"remaining_time":1.867859944,"test":[0.4937010415]}, -{"learn":[0.490988345],"iteration":4948,"passed_time":177.7722058,"remaining_time":1.831962517,"test":[0.4937006243]}, -{"learn":[0.4909876596],"iteration":4949,"passed_time":177.8070577,"remaining_time":1.796030885,"test":[0.493700356]}, -{"learn":[0.4909872125],"iteration":4950,"passed_time":177.8488194,"remaining_time":1.760168078,"test":[0.493699909]}, -{"learn":[0.4909864079],"iteration":4951,"passed_time":177.8842476,"remaining_time":1.724241495,"test":[0.4936994024]}, -{"learn":[0.4909860801],"iteration":4952,"passed_time":177.9203319,"remaining_time":1.688321341,"test":[0.4936991938]}, -{"learn":[0.4909848582],"iteration":4953,"passed_time":177.9553243,"remaining_time":1.65239098,"test":[0.4936983295]}, -{"learn":[0.4909837853],"iteration":4954,"passed_time":177.9914523,"remaining_time":1.616471312,"test":[0.4936978228]}, -{"learn":[0.4909831892],"iteration":4955,"passed_time":178.0278144,"remaining_time":1.580553639,"test":[0.493697346]}, -{"learn":[0.4909821461],"iteration":4956,"passed_time":178.0651161,"remaining_time":1.544643936,"test":[0.4936966904]}, -{"learn":[0.4909816991],"iteration":4957,"passed_time":178.102598,"remaining_time":1.508735199,"test":[0.4936964519]}, -{"learn":[0.4909807454],"iteration":4958,"passed_time":178.1378303,"remaining_time":1.472807228,"test":[0.4936960347]}, -{"learn":[0.4909803282],"iteration":4959,"passed_time":178.1765374,"remaining_time":1.43690756,"test":[0.4936956771]}, -{"learn":[0.4909796428],"iteration":4960,"passed_time":178.2127788,"remaining_time":1.400987376,"test":[0.4936952598]}, -{"learn":[0.4909791063],"iteration":4961,"passed_time":178.2486989,"remaining_time":1.365064603,"test":[0.4936948128]}, -{"learn":[0.4909785997],"iteration":4962,"passed_time":178.2860138,"remaining_time":1.329152229,"test":[0.4936944552]}, -{"learn":[0.4909782122],"iteration":4963,"passed_time":178.3214698,"remaining_time":1.293225808,"test":[0.4936942466]}, -{"learn":[0.490977348],"iteration":4964,"passed_time":178.3563133,"remaining_time":1.25729526,"test":[0.4936937101]}, -{"learn":[0.4909765731],"iteration":4965,"passed_time":178.3912475,"remaining_time":1.22136577,"test":[0.4936931737]}, -{"learn":[0.4909758579],"iteration":4966,"passed_time":178.4274358,"remaining_time":1.185445013,"test":[0.4936927565]}, -{"learn":[0.4909752618],"iteration":4967,"passed_time":178.462627,"remaining_time":1.149517726,"test":[0.493692518]}, -{"learn":[0.4909739803],"iteration":4968,"passed_time":178.4988139,"remaining_time":1.113596947,"test":[0.4936917134]}, -{"learn":[0.4909735333],"iteration":4969,"passed_time":178.5366447,"remaining_time":1.077685984,"test":[0.4936915048]}, -{"learn":[0.4909730266],"iteration":4970,"passed_time":178.5729971,"remaining_time":1.041765624,"test":[0.4936913259]}, -{"learn":[0.4909724008],"iteration":4971,"passed_time":178.6094164,"remaining_time":1.005845466,"test":[0.4936911173]}, -{"learn":[0.4909711789],"iteration":4972,"passed_time":178.6447619,"remaining_time":0.9699192784,"test":[0.4936905213]}, -{"learn":[0.4909706425],"iteration":4973,"passed_time":178.6800143,"remaining_time":0.9339928371,"test":[0.4936902531]}, -{"learn":[0.4909696888],"iteration":4974,"passed_time":178.715248,"remaining_time":0.8980665727,"test":[0.4936897166]}, -{"learn":[0.4909688543],"iteration":4975,"passed_time":178.7506203,"remaining_time":0.8621412555,"test":[0.4936891206]}, -{"learn":[0.4909681391],"iteration":4976,"passed_time":178.7865524,"remaining_time":0.8262187472,"test":[0.4936887331]}, -{"learn":[0.4909676026],"iteration":4977,"passed_time":178.8221729,"remaining_time":0.7902948581,"test":[0.4936881669]}, -{"learn":[0.4909673344],"iteration":4978,"passed_time":178.8581363,"remaining_time":0.7543725372,"test":[0.4936880179]}, -{"learn":[0.490966947],"iteration":4979,"passed_time":178.8946283,"remaining_time":0.7184523224,"test":[0.4936878093]}, -{"learn":[0.4909663509],"iteration":4980,"passed_time":178.9302858,"remaining_time":0.682528695,"test":[0.493687541]}, -{"learn":[0.4909653078],"iteration":4981,"passed_time":178.9655181,"remaining_time":0.6466036382,"test":[0.4936870344]}, -{"learn":[0.490964682],"iteration":4982,"passed_time":179.0025728,"remaining_time":0.6106850767,"test":[0.493686796]}, -{"learn":[0.4909636985],"iteration":4983,"passed_time":179.0382449,"remaining_time":0.5747616208,"test":[0.4936864384]}, -{"learn":[0.4909628342],"iteration":4984,"passed_time":179.073183,"remaining_time":0.5388360571,"test":[0.4936858721]}, -{"learn":[0.4909622382],"iteration":4985,"passed_time":179.109335,"remaining_time":0.502914298,"test":[0.4936853059]}, -{"learn":[0.4909618806],"iteration":4986,"passed_time":179.1469309,"remaining_time":0.4669962105,"test":[0.4936848886]}, -{"learn":[0.4909613739],"iteration":4987,"passed_time":179.182072,"remaining_time":0.4310715444,"test":[0.4936845012]}, -{"learn":[0.4909602712],"iteration":4988,"passed_time":179.2196992,"remaining_time":0.3951526742,"test":[0.4936839946]}, -{"learn":[0.4909600626],"iteration":4989,"passed_time":179.2558677,"remaining_time":0.3592301958,"test":[0.4936836071]}, -{"learn":[0.4909594964],"iteration":4990,"passed_time":179.2911051,"remaining_time":0.3233059399,"test":[0.4936832197]}, -{"learn":[0.4909589897],"iteration":4991,"passed_time":179.3282019,"remaining_time":0.287384939,"test":[0.4936830409]}, -{"learn":[0.4909583937],"iteration":4992,"passed_time":179.3635871,"remaining_time":0.2514610674,"test":[0.4936827429]}, -{"learn":[0.4909577977],"iteration":4993,"passed_time":179.4004668,"remaining_time":0.2155392072,"test":[0.4936824448]}, -{"learn":[0.4909571122],"iteration":4994,"passed_time":179.4355996,"remaining_time":0.1796152149,"test":[0.493682117]}, -{"learn":[0.4909566056],"iteration":4995,"passed_time":179.4717153,"remaining_time":0.1436923261,"test":[0.4936818488]}, -{"learn":[0.4909555923],"iteration":4996,"passed_time":179.5076706,"remaining_time":0.1077692639,"test":[0.4936816402]}, -{"learn":[0.4909550856],"iteration":4997,"passed_time":179.543646,"remaining_time":0.07184619689,"test":[0.4936811037]}, -{"learn":[0.4909543406],"iteration":4998,"passed_time":179.5793173,"remaining_time":0.03592304806,"test":[0.4936809547]}, -{"learn":[0.4909538339],"iteration":4999,"passed_time":179.6183123,"remaining_time":0,"test":[0.4936805375]} +{"learn":[0.625,0.6724952787],"iteration":0,"passed_time":0.01150079479,"remaining_time":5.738896599,"test":[0,0.6749635417]}, +{"learn":[0.6610526316,0.6531548815],"iteration":1,"passed_time":0.02339919202,"remaining_time":5.826398812,"test":[0.5761589404,0.6578907986]}, +{"learn":[0.6608527132,0.6350465988],"iteration":2,"passed_time":0.03477031296,"remaining_time":5.760281848,"test":[0.5324074074,0.6421141059]}, +{"learn":[0.706744868,0.618008187],"iteration":3,"passed_time":0.04957483041,"remaining_time":6.14727897,"test":[0.5692307692,0.6273825521]}, +{"learn":[0.6714975845,0.6024762887],"iteration":4,"passed_time":0.06027679306,"remaining_time":5.967402513,"test":[0.5459770115,0.6136391493]}, +{"learn":[0.6420168067,0.5879065555],"iteration":5,"passed_time":0.07046275265,"remaining_time":5.801433302,"test":[0.512295082,0.6007397135]}, +{"learn":[0.6263736264,0.5743292798],"iteration":6,"passed_time":0.08253332794,"remaining_time":5.812704382,"test":[0.5177865613,0.5887243056]}, +{"learn":[0.6439688716,0.5617055549],"iteration":7,"passed_time":0.09456311657,"remaining_time":5.815631669,"test":[0.5065502183,0.5778295139]}, +{"learn":[0.6666666667,0.5498913927],"iteration":8,"passed_time":0.1056445578,"remaining_time":5.76349754,"test":[0.5581395349,0.5673727431]}, +{"learn":[0.6456211813,0.5390559395],"iteration":9,"passed_time":0.1179409568,"remaining_time":5.779106883,"test":[0.5114155251,0.5576199219]}, +{"learn":[0.6502347418,0.5290345558],"iteration":10,"passed_time":0.1304895729,"remaining_time":5.800854649,"test":[0.513368984,0.5486960937]}, +{"learn":[0.6625766871,0.5196715586],"iteration":11,"passed_time":0.1442059891,"remaining_time":5.864376891,"test":[0.51,0.540409158]}, +{"learn":[0.6554934823,0.5109634681],"iteration":12,"passed_time":0.1561869952,"remaining_time":5.851005126,"test":[0.5502183406,0.5328111545]}, +{"learn":[0.6492146597,0.5028802201],"iteration":13,"passed_time":0.1674097612,"remaining_time":5.811510281,"test":[0.5307017544,0.5257847222]}, +{"learn":[0.6483300589,0.4953289982],"iteration":14,"passed_time":0.1789436572,"remaining_time":5.785844916,"test":[0.5376884422,0.519156684]}, +{"learn":[0.6659142212,0.4882966243],"iteration":15,"passed_time":0.1899791628,"remaining_time":5.746869675,"test":[0.5444444444,0.5129134983]}, +{"learn":[0.6694915254,0.4819027274],"iteration":16,"passed_time":0.2011446758,"remaining_time":5.714875201,"test":[0.5294117647,0.5070878038]}, +{"learn":[0.652173913,0.4758984087],"iteration":17,"passed_time":0.2105835736,"remaining_time":5.638960137,"test":[0.5124378109,0.5016838976]}, +{"learn":[0.6552380952,0.4702792469],"iteration":18,"passed_time":0.22037865,"remaining_time":5.579059507,"test":[0.5402843602,0.496865842]}, +{"learn":[0.6623616236,0.4649397326],"iteration":19,"passed_time":0.2299775255,"remaining_time":5.519460613,"test":[0.5286343612,0.4922393663]}, +{"learn":[0.6696113074,0.4600861214],"iteration":20,"passed_time":0.2399201393,"remaining_time":5.472464129,"test":[0.5281385281,0.4880423177]}, +{"learn":[0.6750448833,0.4555856349],"iteration":21,"passed_time":0.2504215876,"remaining_time":5.440978131,"test":[0.5309734513,0.4839259549]}, +{"learn":[0.6780821918,0.4513341042],"iteration":22,"passed_time":0.2613969063,"remaining_time":5.421144536,"test":[0.5428571429,0.4801421441]}, +{"learn":[0.6699834163,0.4475095463],"iteration":23,"passed_time":0.2722182907,"remaining_time":5.398996098,"test":[0.5341365462,0.4764766927]}, +{"learn":[0.6772575251,0.4437869897],"iteration":24,"passed_time":0.2827550663,"remaining_time":5.372346259,"test":[0.520661157,0.4732766059]}, +{"learn":[0.6731391586,0.4402876889],"iteration":25,"passed_time":0.292850956,"remaining_time":5.338898198,"test":[0.5182186235,0.4702747396]}, +{"learn":[0.6736,0.4370960458],"iteration":26,"passed_time":0.3022199064,"remaining_time":5.294445027,"test":[0.5294117647,0.4675844618]}, +{"learn":[0.6745283019,0.4341093749],"iteration":27,"passed_time":0.3115114192,"remaining_time":5.251192495,"test":[0.5254901961,0.4648925781]}, +{"learn":[0.6884422111,0.4312285273],"iteration":28,"passed_time":0.3213943329,"remaining_time":5.219887269,"test":[0.5234042553,0.4623679253]}, +{"learn":[0.690821256,0.4286504028],"iteration":29,"passed_time":0.3305937344,"remaining_time":5.179301839,"test":[0.5263157895,0.4600269097]}, +{"learn":[0.7,0.4262570842],"iteration":30,"passed_time":0.3398168029,"remaining_time":5.141099373,"test":[0.51953125,0.4579359809]}, +{"learn":[0.6980854197,0.4239364156],"iteration":31,"passed_time":0.3494630526,"remaining_time":5.110897144,"test":[0.531598513,0.4559443576]}, +{"learn":[0.6971935007,0.4217658394],"iteration":32,"passed_time":0.3609464879,"remaining_time":5.107939693,"test":[0.5243445693,0.4540597222]}, +{"learn":[0.6998514116,0.4197961278],"iteration":33,"passed_time":0.3714395214,"remaining_time":5.090906382,"test":[0.5296442688,0.4522280816]}, +{"learn":[0.6981981982,0.4178424181],"iteration":34,"passed_time":0.38109784,"remaining_time":5.063157017,"test":[0.528,0.4504705295]}, +{"learn":[0.7034161491,0.4159972699],"iteration":35,"passed_time":0.3906829047,"remaining_time":5.03546855,"test":[0.5267489712,0.4488604601]}, +{"learn":[0.707165109,0.4143113417],"iteration":36,"passed_time":0.4046026978,"remaining_time":5.063001326,"test":[0.5316455696,0.4473857639]}, +{"learn":[0.7104,0.4126588434],"iteration":37,"passed_time":0.4149438692,"remaining_time":5.044843883,"test":[0.5283842795,0.446012283]}, +{"learn":[0.7106518283,0.4112159095],"iteration":38,"passed_time":0.4248459326,"remaining_time":5.021896794,"test":[0.5130434783,0.4447833333]}, +{"learn":[0.7081339713,0.409833332],"iteration":39,"passed_time":0.4342096775,"remaining_time":4.993411291,"test":[0.5169491525,0.4436203125]}, +{"learn":[0.7125,0.4085317621],"iteration":40,"passed_time":0.4436007489,"remaining_time":4.966164482,"test":[0.5147679325,0.4424763889]}, +{"learn":[0.7115384615,0.4072980218],"iteration":41,"passed_time":0.4532031007,"remaining_time":4.942071908,"test":[0.5244444444,0.4414494792]}, +{"learn":[0.7117263844,0.4061158525],"iteration":42,"passed_time":0.4626058454,"remaining_time":4.916531892,"test":[0.5330396476,0.4404545139]}, +{"learn":[0.7138263666,0.4050283823],"iteration":43,"passed_time":0.4717596846,"remaining_time":4.889145823,"test":[0.5283842795,0.4395882378]}, +{"learn":[0.7078651685,0.4039969044],"iteration":44,"passed_time":0.4807040821,"remaining_time":4.860452386,"test":[0.5319148936,0.438713151]}, +{"learn":[0.7123966942,0.4029488541],"iteration":45,"passed_time":0.4912195488,"remaining_time":4.848123373,"test":[0.52,0.4378839844]}, +{"learn":[0.7119205298,0.4020060852],"iteration":46,"passed_time":0.5018309386,"remaining_time":4.836796068,"test":[0.527027027,0.4371599826]}, +{"learn":[0.7152209493,0.4011418993],"iteration":47,"passed_time":0.511543902,"remaining_time":4.817038411,"test":[0.5363636364,0.436516276]}, +{"learn":[0.7145187602,0.4003109723],"iteration":48,"passed_time":0.5215233152,"remaining_time":4.800143167,"test":[0.5272727273,0.4358205295]}, +{"learn":[0.7149837134,0.3994980722],"iteration":49,"passed_time":0.5318785088,"remaining_time":4.786906579,"test":[0.5253456221,0.4352218316]}, +{"learn":[0.7171052632,0.3987265888],"iteration":50,"passed_time":0.5437510771,"remaining_time":4.787141836,"test":[0.5211267606,0.4346873698]}, +{"learn":[0.7159863946,0.3980214232],"iteration":51,"passed_time":0.5536094372,"remaining_time":4.769558228,"test":[0.5192307692,0.4341709635]} ]} \ No newline at end of file diff --git a/main/train/catboost_info/learn/events.out.tfevents b/main/train/catboost_info/learn/events.out.tfevents index 6369d5f1c5433ca08dae27adb0acf398064c009e..c655ff30d608cfa3e0be3416e42d637420b74435 100644 GIT binary patch literal 6340 zcmZ|Tc~BH&7zXf-o8^#e0R=gfa~BYH0}BXL4iOxqLm3qTB^)mfku0U|B>%!_UJWx4cDEkiy0WHn=Eyd8iu5& zu2~b7l98U8mMJTA^9c4AeyTOfuays1mu%hM|FYWT6?Cio-PK)1a%iIWaAj_PQ@ncR zXxZJ@737kkf-){^pnT9%kdu$kp3h|s`Dl5?j!7Upb`P|2Srg@eu2HL@x@>x3D2vNdA~&Y!f~+{58^L7*lneFmZWdfNB69T^ z3COb|19x-T80G%QLWk}DU1G*%V0a+0VFaf^vPLuy4;9vYX9i6C(GW{s-iYYKff7rYN`d3G-}SRezGprbO=l{vpU_ z?q3CP*$m~<3Zb{xS_B{EvKf(AU+4w-$HfP#xNMH{rfgw7pS?39m&@iv&Nb`?IpOOs zo^#m(L2+vu}8- z_x3$sp9n7768Tx}O_0-WHeKZMM3jGM7UaWo7yEO0B9To$Yy~;O%lZ(P?NC;!RO*>y zi}PB!Y)9m{pcar5Eb<>OwkNXExEbU*SHi-1W(SnR*9-Ds z&9NpfI}rKkU%!H^*tIo@%Z@0obr(jvz3spyE;|xAtLHk%T{e%-aCs8Sb`?VA*t?&7 z%H>H!UfpvIK)co_DqAz zPDI}0fU;HJ$6;J{9wpxtWQW0vRa|x^vUbE3$ei|Wco3IeP@dT($kB?3Y%aSH`OcPK zK%Q5&eT;XNE6QOJf*f-`Y9E(fiClc`GRPYPwZ^!IxuLvtsh|2h2egD2a@mc@<_eSp z59CbeqwS9J5?4XKxBh7(m)(gRx48*2$5)4BaaoRXnM#n8=7%ohvYf~(yBk5)it4fD zvI6CIDg@a$x?_w}QbFYQc$A|;T<~A1;S<9H>Fbbn}YI5 z>#6FiD$dV*2bZT1Idcih^^c+?JhL~-$Lb5aWn8H^0xkZ$ei#|eI%ECQ1;Ll zGMBE)ujZM3h^+Y~%8LsBF5t2fWxsC(xuNaUdt6o$`HnNnmC-}lTvnlcJ5rF%@``@u RvWmzb)YidhKW)p&{}<>5>Hh!# literal 274870 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 literal 274870 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�G@}%M2N5Ewc~Ae%u0P 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 0 and (target_date - eds).days <= 0:\n", + " return True\n", + " return False\n", + "\n", + " \n", + "trade_date = '20230120'\n", + "daily_basic_data = pro.daily_basic(ts_code='', trade_date=trade_date)\n", + "daily_basic_data = daily_basic_data[daily_basic_data['ts_code'] == '002569.SZ']\n", + "if daily_basic_data is not None and not daily_basic_data.empty:\n", + " # 添加交易日期列标识\n", + " daily_basic_data['trade_date'] = trade_date\n", + " daily_basic_data['is_st'] = daily_basic_data.apply(\n", + " lambda row: is_st(name_change_dict, row['ts_code'], row['trade_date']), axis=1\n", + " )\n", + " \n", + "print(daily_basic_data[daily_basic_data['ts_code'] == '002569.SZ'][['ts_code', 'trade_date', 'is_st']])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cf4c9fd5", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 45, + "id": "4a3638e6", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " ts_code name start_date end_date change_reason\n", + "0 002569.SZ *ST步森 20250428 None *ST\n", + "1 002569.SZ ST步森 20200609 None 摘星\n", + "2 002569.SZ ST步森 20200609 None 摘星\n", + "3 002569.SZ ST步森 20200609 20250427 摘星\n", + "4 002569.SZ *ST步森 20190430 None *ST\n", + "5 002569.SZ *ST步森 20190430 20200608 *ST\n", + "6 002569.SZ *ST步森 20190430 20200608 *ST\n", + "7 002569.SZ 步森股份 20110412 20190429 其他\n", + "8 002569.SZ 步森股份 20110412 20190429 其他\n" + ] + } + ], + "source": [ + "df = pro.namechange(ts_code='002569.SZ', fields='ts_code,name,start_date,end_date,change_reason')\n", + "print(df)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "new_trader", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.11" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/main/train/test.py b/main/train/test.py index 509dae1..fa9da18 100644 --- a/main/train/test.py +++ b/main/train/test.py @@ -3,12 +3,13 @@ from operator import index import tushare as ts import pandas as pd import time +import akshare as ak + +from main.factor.factor import calculate_arbr ts.set_token('3a0741c702ee7e5e5f2bf1f0846bafaafe4e320833240b2a7e4a685f') pro = ts.pro_api() -df = pro.index_member_all(ts_code='603579.SH') -print(df) +df = pro.balancesheet(ts_code='600000.SH', start_date='20180101', end_date='20180730') -df = pro.sw_daily(trade_date='20250305', fields='ts_code,name,open,close,vol,pe,pb') -print(df[df['ts_code'] == '851171.SI']) \ No newline at end of file +print(df['total_liab']) \ No newline at end of file