feat: 完善 QMT 交易模块文档和配置展示功能

- 优化前端仪表盘界面
- 添加配置文件可视化展示
- 编写 QMT 模块配置文档
- 完善项目规则体系(KiloCode)
This commit is contained in:
2026-01-27 00:52:35 +08:00
parent 50ee1a5a0a
commit 4607555eaf
31 changed files with 5248 additions and 8621 deletions

View File

@@ -2,7 +2,7 @@
"cells": [
{
"cell_type": "code",
"execution_count": 3,
"execution_count": 1,
"id": "f74ce078-f7e8-4733-a14c-14d8815a3626",
"metadata": {
"ExecuteTime": {
@@ -19,7 +19,7 @@
},
{
"cell_type": "code",
"execution_count": 4,
"execution_count": 2,
"id": "44dd8d87-e60b-49e5-aed9-efaa7f92d4fe",
"metadata": {
"ExecuteTime": {
@@ -39,15 +39,15 @@
"3 000006.SZ 20250312\n",
"4 000007.SZ 20250312\n",
"... ... ...\n",
"21755 920978.BJ 20251117\n",
"21756 920981.BJ 20251117\n",
"21757 920982.BJ 20251117\n",
"21758 920985.BJ 20251117\n",
"21759 920992.BJ 20251117\n",
"27277 920978.BJ 20260112\n",
"27278 920981.BJ 20260112\n",
"27279 920982.BJ 20260112\n",
"27280 920985.BJ 20260112\n",
"27281 920992.BJ 20260112\n",
"\n",
"[8385278 rows x 2 columns]\n",
"20251120\n",
"start_date: 20251121\n"
"[8597722 rows x 2 columns]\n",
"20260116\n",
"start_date: 20260119\n"
]
}
],
@@ -64,7 +64,7 @@
" max_date = df['trade_date'].max()\n",
"\n",
"print(max_date)\n",
"trade_cal = pro.trade_cal(exchange='', start_date='20170101', end_date='20251220')\n",
"trade_cal = pro.trade_cal(exchange='', start_date='20170101', end_date='20260201')\n",
"trade_cal = trade_cal[trade_cal['is_open'] == 1] # 只保留交易日\n",
"trade_dates = trade_cal[trade_cal['cal_date'] > max_date]['cal_date'].tolist()\n",
"start_date = min(trade_dates)\n",
@@ -73,7 +73,7 @@
},
{
"cell_type": "code",
"execution_count": 5,
"execution_count": 3,
"id": "747acc47-0884-4f76-90fb-276f6494e31d",
"metadata": {
"ExecuteTime": {
@@ -86,27 +86,16 @@
"name": "stdout",
"output_type": "stream",
"text": [
"任务 20251219 完成\n",
"任务 20251218 完成\n",
"任务 20251216 完成\n",
"任务 20251217 完成\n",
"任务 20251215 完成\n",
"任务 20251212 完成\n",
"任务 20251211 完成\n",
"任务 20251210 完成\n",
"任务 20251209 完成\n",
"任务 20251208 完成\n",
"任务 20251205 完成\n",
"任务 20251204 完成\n",
"任务 20251203 完成\n",
"任务 20251202 完成\n",
"任务 20251201 完成\n",
"任务 20251128 完成\n",
"任务 20251127 完成\n",
"任务 20251126 完成\n",
"任务 20251125 完成\n",
"任务 20251124 完成\n",
"任务 20251121 完成\n"
"任务 20260130 完成\n",
"任务 20260129 完成\n",
"任务 20260128 完成\n",
"任务 20260127 完成\n",
"任务 20260126 完成\n",
"任务 20260123 完成\n",
"任务 20260122 完成\n",
"任务 20260121 完成\n",
"任务 20260120 完成\n",
"任务 20260119 完成\n"
]
}
],
@@ -143,7 +132,7 @@
},
{
"cell_type": "code",
"execution_count": 6,
"execution_count": 4,
"id": "c6765638-481f-40d8-a259-2e7b25362618",
"metadata": {
"ExecuteTime": {

View File

@@ -32,22 +32,22 @@
"name": "stdout",
"output_type": "stream",
"text": [
" ts_code trade_date\n",
"0 801001.SI 20250221\n",
"1 801002.SI 20250221\n",
"2 801003.SI 20250221\n",
"3 801005.SI 20250221\n",
"4 801010.SI 20250221\n",
".. ... ...\n",
"873 859811.SI 20251120\n",
"874 859821.SI 20251120\n",
"875 859822.SI 20251120\n",
"876 859852.SI 20251120\n",
"877 859951.SI 20251120\n",
" ts_code trade_date\n",
"0 801001.SI 20250221\n",
"1 801002.SI 20250221\n",
"2 801003.SI 20250221\n",
"3 801005.SI 20250221\n",
"4 801010.SI 20250221\n",
"... ... ...\n",
"2190 859811.SI 20260112\n",
"2191 859821.SI 20260112\n",
"2192 859822.SI 20260112\n",
"2193 859852.SI 20260112\n",
"2194 859951.SI 20260112\n",
"\n",
"[1123852 rows x 2 columns]\n",
"20251120\n",
"start_date: 20251121\n"
"[1140973 rows x 2 columns]\n",
"20260116\n",
"start_date: 20260119\n"
]
}
],
@@ -64,7 +64,7 @@
" max_date = df['trade_date'].max()\n",
"\n",
"print(max_date)\n",
"trade_cal = pro.trade_cal(exchange='', start_date='20170101', end_date='20251220')\n",
"trade_cal = pro.trade_cal(exchange='', start_date='20170101', end_date='20260201')\n",
"trade_cal = trade_cal[trade_cal['is_open'] == 1] # 只保留交易日\n",
"trade_dates = trade_cal[trade_cal['cal_date'] > max_date]['cal_date'].tolist()\n",
"start_date = min(trade_dates)\n",
@@ -86,27 +86,16 @@
"name": "stdout",
"output_type": "stream",
"text": [
"任务 20251218 完成\n",
"任务 20251219 完成\n",
"任务 20251217 完成\n",
"任务 20251216 完成\n",
"任务 20251215 完成\n",
"任务 20251212 完成\n",
"任务 20251211 完成\n",
"任务 20251210 完成\n",
"任务 20251209 完成\n",
"任务 20251208 完成\n",
"任务 20251204 完成\n",
"任务 20251205 完成\n",
"任务 20251202 完成\n",
"任务 20251203 完成\n",
"任务 20251201 完成\n",
"任务 20251128 完成\n",
"任务 20251127 完成\n",
"任务 20251126 完成\n",
"任务 20251125 完成\n",
"任务 20251124 完成\n",
"任务 20251121 完成\n"
"任务 20260130 完成\n",
"任务 20260129 完成\n",
"任务 20260128 完成\n",
"任务 20260127 完成\n",
"任务 20260126 完成\n",
"任务 20260123 完成\n",
"任务 20260122 完成\n",
"任务 20260121 完成\n",
"任务 20260120 完成\n",
"任务 20260119 完成\n"
]
}
],
@@ -188,7 +177,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.13.2"
"version": "3.12.11"
}
},
"nbformat": 4,

View File

@@ -94,17 +94,17 @@
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"Index: 9335158 entries, 0 to 21759\n",
"Index: 9547667 entries, 0 to 27281\n",
"Data columns (total 2 columns):\n",
" # Column Dtype \n",
"--- ------ ----- \n",
" 0 ts_code object\n",
" 1 trade_date object\n",
"dtypes: object(2)\n",
"memory usage: 213.7+ MB\n",
"memory usage: 218.5+ MB\n",
"None\n",
"20251120\n",
"20251121\n"
"20260116\n",
"20260119\n"
]
}
],
@@ -121,7 +121,7 @@
" max_date = df['trade_date'].max()\n",
"\n",
"print(max_date)\n",
"trade_cal = pro.trade_cal(exchange='', start_date='20170101', end_date='20251220')\n",
"trade_cal = pro.trade_cal(exchange='', start_date='20170101', end_date='20260201')\n",
"trade_cal = trade_cal[trade_cal['is_open'] == 1] # 只保留交易日\n",
"trade_dates = trade_cal[trade_cal['cal_date'] > max_date]['cal_date'].tolist()\n",
"start_date = min(trade_dates)\n",
@@ -144,27 +144,22 @@
"name": "stdout",
"output_type": "stream",
"text": [
"任务 20251219 完成\n",
"任务 20251218 完成\n",
"任务 20251217 完成\n",
"任务 20251216 完成\n",
"任务 20251215 完成\n",
"任务 20251212 完成\n",
"任务 20251211 完成\n",
"任务 20251210 完成\n",
"任务 20251209 完成\n",
"任务 20251208 完成\n",
"任务 20251205 完成\n",
"任务 20251204 完成\n",
"任务 20251203 完成\n",
"任务 20251202 完成\n",
"任务 20251201 完成\n",
"任务 20251128 完成\n",
"任务 20251127 完成\n",
"任务 20251126 完成\n",
"任务 20251125 完成\n",
"任务 20251124 完成\n",
"任务 20251121 完成\n"
"任务 20260130 完成\n",
"任务 20260129 完成\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"任务 20260127 完成\n",
"任务 20260128 完成\n",
"任务 20260126 完成\n",
"任务 20260123 完成\n",
"任务 20260122 完成\n",
"任务 20260121 完成\n",
"任务 20260120 完成\n",
"任务 20260119 完成\n"
]
}
],
@@ -234,59 +229,59 @@
"name": "stdout",
"output_type": "stream",
"text": [
" ts_code trade_date close turnover_rate turnover_rate_f \\\n",
"0 000559.SZ 20251121 11.64 4.8762 13.4563 \n",
"1 002981.SZ 20251121 27.84 1.5833 4.5574 \n",
"2 301053.SZ 20251121 32.50 1.0110 2.9907 \n",
"3 603093.SH 20251121 18.29 0.7403 3.2151 \n",
"4 600269.SH 20251121 5.25 0.8423 1.8459 \n",
"... ... ... ... ... ... \n",
"5439 600243.SH 20251121 4.78 1.7524 2.1078 \n",
"5440 300759.SZ 20251121 28.39 1.0514 1.6405 \n",
"5441 600054.SH 20251121 11.10 1.3130 3.1101 \n",
"5442 603579.SH 20251121 23.85 2.2265 4.3412 \n",
"5443 002528.SZ 20251121 3.03 1.9087 4.0726 \n",
" ts_code trade_date close turnover_rate turnover_rate_f \\\n",
"0 301586.SZ 20260123 52.80 4.4195 6.0484 \n",
"1 600871.SH 20260123 2.63 3.5599 17.1067 \n",
"2 002067.SZ 20260123 5.91 9.5542 9.8833 \n",
"3 601225.SH 20260123 21.41 0.4692 1.3502 \n",
"4 688800.SH 20260123 90.22 4.3421 7.2546 \n",
"... ... ... ... ... ... \n",
"27321 688659.SH 20260119 10.42 1.7256 3.1386 \n",
"27322 301021.SZ 20260119 55.92 5.8451 10.3979 \n",
"27323 300102.SZ 20260119 34.23 14.1090 22.0304 \n",
"27324 300088.SZ 20260119 6.36 1.9148 2.3308 \n",
"27325 002261.SZ 20260119 33.77 4.6567 5.1897 \n",
"\n",
" volume_ratio pe pe_ttm pb ps ps_ttm dv_ratio \\\n",
"0 1.09 40.5790 38.2942 4.1055 2.9989 2.7785 1.2842 \n",
"1 1.44 33.9003 28.1141 3.4000 2.2070 1.9328 0.9280 \n",
"2 1.24 56.6010 98.7688 4.0251 4.4406 4.0870 0.2389 \n",
"3 1.21 24.3641 24.7359 2.5390 1.9536 5.0927 0.3609 \n",
"4 1.32 9.5849 6.9841 0.6165 2.0486 2.1055 3.0476 \n",
"... ... ... ... ... ... ... ... \n",
"5439 1.37 NaN NaN 3.3110 8.8659 8.4702 0.0000 \n",
"5440 0.86 28.1501 33.3780 3.4547 4.1124 3.7273 0.7056 \n",
"5441 1.53 25.7012 28.5474 1.6912 4.1924 3.9403 1.8829 \n",
"5442 1.23 25.2677 30.2644 1.7649 3.0372 3.0683 3.8598 \n",
"5443 0.61 NaN NaN 35.8962 3.8438 6.1411 0.0000 \n",
" volume_ratio pe pe_ttm pb ps ps_ttm dv_ratio \\\n",
"0 0.98 43.6343 68.1615 3.4308 6.9893 5.8003 0.9091 \n",
"1 1.91 78.9369 79.8327 5.2226 0.6148 0.6127 NaN \n",
"2 0.80 122.3105 140.3743 1.3170 1.5908 1.5491 NaN \n",
"3 1.02 9.2832 10.8507 2.1981 1.1272 1.1740 5.9699 \n",
"4 0.79 105.8709 61.3816 8.0916 7.6847 5.8974 0.2971 \n",
"... ... ... ... ... ... ... ... \n",
"27321 1.01 NaN NaN 3.1071 2.6478 2.4387 NaN \n",
"27322 0.72 391.5181 198.4990 8.4757 19.1357 17.1491 0.1772 \n",
"27323 0.69 327.8681 232.9793 7.4375 12.9485 9.5346 0.1313 \n",
"27324 0.52 44.5231 45.4726 1.8179 1.4366 1.3961 0.9198 \n",
"27325 0.38 NaN NaN 16.3185 10.3586 13.1287 NaN \n",
"\n",
" dv_ttm total_share float_share free_share total_mv \\\n",
"0 1.5410 331535.8444 331454.4214 120110.9588 3.859077e+06 \n",
"1 0.9187 13748.6115 11941.3915 4148.6777 3.827613e+05 \n",
"2 0.8961 8421.7803 7749.4689 2619.7738 2.737079e+05 \n",
"3 0.4117 61006.5893 61006.5893 14046.4993 1.115811e+06 \n",
"4 3.2381 233540.7014 233540.7014 106564.7107 1.226089e+06 \n",
"... ... ... ... ... ... \n",
"5439 NaN 43885.0000 43885.0000 36485.0000 2.097703e+05 \n",
"5440 0.7045 177819.5525 141938.4613 90967.4278 5.048297e+06 \n",
"5441 1.5495 72937.9440 51330.0000 21670.4250 8.096112e+05 \n",
"5442 1.2636 20335.5564 20335.5564 10429.5044 4.850030e+05 \n",
"5443 NaN 119867.5082 105021.9577 49219.1551 3.631985e+05 \n",
" dv_ttm total_share float_share free_share total_mv \\\n",
"0 0.3788 8.297550e+03 5.291107e+03 3866.1069 4.381107e+05 \n",
"1 NaN 1.895705e+06 1.354701e+06 281911.5987 4.985703e+06 \n",
"2 NaN 1.474854e+05 1.337604e+05 129305.3853 8.716386e+05 \n",
"3 5.4881 9.695000e+05 9.695000e+05 336903.9335 2.075700e+07 \n",
"4 0.2971 2.056743e+04 2.056743e+04 12310.0935 1.855594e+06 \n",
"... ... ... ... ... ... \n",
"27321 NaN 1.600000e+04 1.600000e+04 8796.6880 1.667200e+05 \n",
"27322 0.1772 1.528528e+04 1.527393e+04 8586.0802 8.547528e+05 \n",
"27323 0.1313 9.203339e+04 9.163399e+04 58685.2206 3.150303e+06 \n",
"27324 0.9198 2.497734e+05 2.485504e+05 204186.7350 1.588559e+06 \n",
"27325 NaN 1.259831e+05 1.145652e+05 102798.2760 4.254451e+06 \n",
"\n",
" circ_mv is_st \n",
"0 3.858129e+06 False \n",
"1 3.324483e+05 False \n",
"2 2.518577e+05 False \n",
"3 1.115811e+06 False \n",
"4 1.226089e+06 False \n",
"... ... ... \n",
"5439 2.097703e+05 True \n",
"5440 4.029633e+06 False \n",
"5441 5.697630e+05 False \n",
"5442 4.850030e+05 False \n",
"5443 3.182165e+05 True \n",
" circ_mv is_st \n",
"0 2.793704e+05 False \n",
"1 3.562864e+06 False \n",
"2 7.905239e+05 False \n",
"3 2.075700e+07 False \n",
"4 1.855594e+06 False \n",
"... ... ... \n",
"27321 1.667200e+05 False \n",
"27322 8.541180e+05 False \n",
"27323 3.136631e+06 False \n",
"27324 1.580780e+06 False \n",
"27325 3.868868e+06 False \n",
"\n",
"[5444 rows x 19 columns]\n"
"[27326 rows x 19 columns]\n"
]
}
],
@@ -310,59 +305,59 @@
"name": "stdout",
"output_type": "stream",
"text": [
" ts_code trade_date close turnover_rate turnover_rate_f \\\n",
"55 000909.SZ 20251121 5.63 0.5785 0.9877 \n",
"62 002485.SZ 20251121 4.61 0.9593 3.9009 \n",
"134 300096.SZ 20251121 7.31 1.6490 1.9675 \n",
"154 300343.SZ 20251121 5.48 4.1298 4.7019 \n",
"166 600525.SH 20251121 3.53 1.8869 2.7053 \n",
"... ... ... ... ... ... \n",
"5340 300368.SZ 20251121 14.86 7.3423 10.4878 \n",
"5381 300020.SZ 20251121 3.63 1.9995 2.2386 \n",
"5383 000506.SZ 20251121 11.55 2.5685 3.8339 \n",
"5439 600243.SH 20251121 4.78 1.7524 2.1078 \n",
"5443 002528.SZ 20251121 3.03 1.9087 4.0726 \n",
" ts_code trade_date close turnover_rate turnover_rate_f \\\n",
"54 000615.SZ 20260123 3.32 0.7420 0.9114 \n",
"60 600228.SH 20260123 5.63 3.4275 4.8943 \n",
"88 000430.SZ 20260123 7.30 1.4748 2.3665 \n",
"96 603389.SH 20260123 48.20 0.8319 2.1042 \n",
"110 000752.SZ 20260123 10.96 1.4753 1.8177 \n",
"... ... ... ... ... ... \n",
"27130 002586.SZ 20260119 4.68 1.7164 2.9874 \n",
"27154 600265.SH 20260119 19.29 0.2879 0.8066 \n",
"27193 688287.SH 20260119 6.44 0.9802 1.9881 \n",
"27195 300338.SZ 20260119 3.61 1.4127 1.5675 \n",
"27223 000669.SZ 20260119 2.79 1.1437 1.4424 \n",
"\n",
" volume_ratio pe pe_ttm pb ps ps_ttm dv_ratio \\\n",
"55 0.99 NaN NaN 2.4818 7.6504 7.4923 0.0 \n",
"62 0.51 NaN NaN 2.1295 3.0458 3.2777 0.0 \n",
"134 0.81 NaN 50.1694 8.9654 5.6290 6.2215 0.0 \n",
"154 0.72 267.9489 106.2988 3.0411 6.7430 6.5207 0.0 \n",
"166 0.72 NaN NaN 1.2373 0.5912 0.5968 0.0 \n",
"... ... ... ... ... ... ... ... \n",
"5340 0.94 NaN NaN 42.1875 42.9123 57.8502 0.0 \n",
"5381 1.00 NaN NaN 1.0776 5.2649 21.5375 0.0 \n",
"5383 0.78 NaN 239.4225 16.7572 32.2021 20.7023 0.0 \n",
"5439 1.37 NaN NaN 3.3110 8.8659 8.4702 0.0 \n",
"5443 0.61 NaN NaN 35.8962 3.8438 6.1411 0.0 \n",
" volume_ratio pe pe_ttm pb ps ps_ttm dv_ratio \\\n",
"54 0.72 NaN NaN NaN 5.4217 5.8063 NaN \n",
"60 1.60 NaN NaN 5.6813 9.6204 6.3997 NaN \n",
"88 1.11 NaN NaN 22.0731 13.6938 12.9047 NaN \n",
"96 0.95 NaN NaN 54.1434 62.5718 60.6578 NaN \n",
"110 0.96 110.3513 19.6504 4.7026 6.8589 6.4652 NaN \n",
"... ... ... ... ... ... ... ... \n",
"27130 1.55 NaN NaN 1.7970 2.1568 2.2158 NaN \n",
"27154 0.79 NaN NaN 288.1848 5.6010 10.1170 NaN \n",
"27193 0.59 NaN NaN 3.1120 26.5172 26.3673 NaN \n",
"27195 0.58 NaN NaN NaN 8.5110 10.1280 NaN \n",
"27223 0.84 NaN NaN NaN 1.4522 1.5001 NaN \n",
"\n",
" dv_ttm total_share float_share free_share total_mv \\\n",
"55 NaN 43771.4245 43771.0570 25634.2299 2.464331e+05 \n",
"62 NaN 54400.0000 54400.0000 13377.7333 2.507840e+05 \n",
"134 NaN 43000.0000 43000.0000 36039.3251 3.143300e+05 \n",
"154 NaN 106896.9119 106621.9389 93649.7579 5.857951e+05 \n",
"166 NaN 131878.0152 131878.0152 91981.1744 4.655294e+05 \n",
"... ... ... ... ... ... \n",
"5340 NaN 52894.3475 52894.3475 37030.2475 7.860100e+05 \n",
"5381 NaN 79467.7974 76663.9584 68475.6577 2.884681e+05 \n",
"5383 NaN 92901.7761 92858.4361 62210.1427 1.073016e+06 \n",
"5439 NaN 43885.0000 43885.0000 36485.0000 2.097703e+05 \n",
"5443 NaN 119867.5082 105021.9577 49219.1551 3.631985e+05 \n",
" dv_ttm total_share float_share free_share total_mv \\\n",
"54 NaN 178749.2693 92531.6398 75331.7788 5.934476e+05 \n",
"60 NaN 41667.2427 41603.7177 29135.5053 2.345866e+05 \n",
"88 NaN 80963.5372 37055.6486 23092.8156 5.910338e+05 \n",
"96 NaN 26275.2000 26275.2000 10387.7487 1.266465e+06 \n",
"110 NaN 26375.8491 26375.8491 21407.3042 2.890793e+05 \n",
"... ... ... ... ... ... \n",
"27130 NaN 114422.3714 108751.8003 62484.0799 5.354967e+05 \n",
"27154 NaN 12980.0000 12980.0000 4633.1947 2.503842e+05 \n",
"27193 NaN 37051.5600 37051.5600 18267.2898 2.386120e+05 \n",
"27195 NaN 40262.4692 34936.1242 31485.3582 1.453475e+05 \n",
"27223 NaN 68040.8797 68040.8797 53950.9653 1.898341e+05 \n",
"\n",
" circ_mv is_st \n",
"55 2.464311e+05 True \n",
"62 2.507840e+05 True \n",
"134 3.143300e+05 True \n",
"154 5.842882e+05 True \n",
"166 4.655294e+05 True \n",
"... ... ... \n",
"5340 7.860100e+05 True \n",
"5381 2.782902e+05 True \n",
"5383 1.072515e+06 True \n",
"5439 2.097703e+05 True \n",
"5443 3.182165e+05 True \n",
" circ_mv is_st \n",
"54 3.072050e+05 True \n",
"60 2.342289e+05 True \n",
"88 2.705062e+05 True \n",
"96 1.266465e+06 True \n",
"110 2.890793e+05 True \n",
"... ... ... \n",
"27130 5.089584e+05 True \n",
"27154 2.503842e+05 True \n",
"27193 2.386120e+05 True \n",
"27195 1.261194e+05 True \n",
"27223 1.898341e+05 True \n",
"\n",
"[186 rows x 19 columns]\n"
"[886 rows x 19 columns]\n"
]
}
],
@@ -412,7 +407,7 @@
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"Index: 9340602 entries, 0 to 5443\n",
"Index: 9574993 entries, 0 to 27325\n",
"Data columns (total 3 columns):\n",
" # Column Dtype \n",
"--- ------ ----- \n",
@@ -420,7 +415,7 @@
" 1 trade_date object\n",
" 2 is_st bool \n",
"dtypes: bool(1), object(2)\n",
"memory usage: 222.7+ MB\n",
"memory usage: 228.3+ MB\n",
"None\n"
]
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,244 +0,0 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "17cc645336d4eb18",
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-08T16:55:19.819017Z",
"start_time": "2025-02-08T16:55:18.958639Z"
}
},
"outputs": [],
"source": [
"import pandas as pd\n",
"import tushare as ts"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "48ae71ed02d61819",
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-08T16:55:27.578361Z",
"start_time": "2025-02-08T16:55:19.882313Z"
}
},
"outputs": [
{
"ename": "FileNotFoundError",
"evalue": "File ../../../data/daily_basic.h5 does not exist",
"output_type": "error",
"traceback": [
"\u001b[31m---------------------------------------------------------------------------\u001b[39m",
"\u001b[31mFileNotFoundError\u001b[39m Traceback (most recent call last)",
"\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[2]\u001b[39m\u001b[32m, line 1\u001b[39m\n\u001b[32m----> \u001b[39m\u001b[32m1\u001b[39m daily_basic = \u001b[43mpd\u001b[49m\u001b[43m.\u001b[49m\u001b[43mread_hdf\u001b[49m\u001b[43m(\u001b[49m\u001b[33;43m'\u001b[39;49m\u001b[33;43m../../../data/daily_basic.h5\u001b[39;49m\u001b[33;43m'\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mkey\u001b[49m\u001b[43m=\u001b[49m\u001b[33;43m'\u001b[39;49m\u001b[33;43mdaily_basic\u001b[39;49m\u001b[33;43m'\u001b[39;49m\u001b[43m)\u001b[49m\n",
"\u001b[36mFile \u001b[39m\u001b[32m~/miniconda3/envs/stock/lib/python3.12/site-packages/pandas/io/pytables.py:437\u001b[39m, in \u001b[36mread_hdf\u001b[39m\u001b[34m(path_or_buf, key, mode, errors, where, start, stop, columns, iterator, chunksize, **kwargs)\u001b[39m\n\u001b[32m 434\u001b[39m exists = \u001b[38;5;28;01mFalse\u001b[39;00m\n\u001b[32m 436\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m exists:\n\u001b[32m--> \u001b[39m\u001b[32m437\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mFileNotFoundError\u001b[39;00m(\u001b[33mf\u001b[39m\u001b[33m\"\u001b[39m\u001b[33mFile \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mpath_or_buf\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m does not exist\u001b[39m\u001b[33m\"\u001b[39m)\n\u001b[32m 439\u001b[39m store = HDFStore(path_or_buf, mode=mode, errors=errors, **kwargs)\n\u001b[32m 440\u001b[39m \u001b[38;5;66;03m# can't auto open/close if we are using an iterator\u001b[39;00m\n\u001b[32m 441\u001b[39m \u001b[38;5;66;03m# so delegate to the iterator\u001b[39;00m\n",
"\u001b[31mFileNotFoundError\u001b[39m: File ../../../data/daily_basic.h5 does not exist"
]
}
],
"source": [
"daily_basic = pd.read_hdf('../../../data/daily_basic.h5', key='daily_basic')\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "e6606a96e5728b8",
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-08T16:55:27.938078Z",
"start_time": "2025-02-08T16:55:27.584226Z"
}
},
"outputs": [],
"source": [
"from datetime import datetime\n",
"import warnings\n",
"\n",
"warnings.filterwarnings(\"ignore\")\n",
"def filter_rows(df):\n",
" # 按照 name 和 start_date 分组\n",
" def select_row(group):\n",
" # 如果有 end_date 不为 NaT 的行,优先保留这些行\n",
" valid_rows = group[group['end_date'].notna()]\n",
" if not valid_rows.empty:\n",
" return valid_rows.iloc[0] # 返回第一个有效行\n",
" else:\n",
" return group.iloc[0] # 如果没有有效行,返回第一行\n",
"\n",
" filtered_df = df.groupby(['name', 'start_date'], group_keys=False).apply(select_row)\n",
" filtered_df = filtered_df.reset_index(drop=True)\n",
" return filtered_df\n",
"\n",
"def is_st(name_change_dict, stock_code, target_date):\n",
" target_date = datetime.strptime(target_date, '%Y%m%d')\n",
" if stock_code not in name_change_dict.keys():\n",
" return False\n",
" df = name_change_dict[stock_code]\n",
" for i in range(len(df)):\n",
" sds = df.iloc[i, 2]\n",
" eds = df.iloc[i, 3]\n",
" if eds is None or eds is pd.NaT:\n",
" eds = datetime.now()\n",
" if (target_date - sds).days >= 0 and (target_date - eds).days <= 0:\n",
" return True\n",
" return False\n",
"\n",
"name_change_df = pd.read_hdf('../../../data/name_change.h5', key='name_change')\n",
"name_change_df = name_change_df.drop_duplicates(keep='first')\n",
"\n",
"# 确保 name_change_df 的日期格式正确\n",
"name_change_df['start_date'] = pd.to_datetime(name_change_df['start_date'], format='%Y%m%d')\n",
"name_change_df['end_date'] = pd.to_datetime(name_change_df['end_date'], format='%Y%m%d', errors='coerce')\n",
"name_change_df = name_change_df[name_change_df.name.str.contains('ST')]\n",
"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['name'].str.contains('ST')]\n",
" if not st_data.empty:\n",
" name_change_dict[ts_code] = filter_rows(st_data)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "41bc125d",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" ts_code trade_date close turnover_rate turnover_rate_f \\\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",
"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 \\\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_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 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",
"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",
"[8594011 rows x 19 columns]\n"
]
}
],
"source": [
"print(daily_basic)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "initial_id",
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-08T16:59:20.537632Z",
"start_time": "2025-02-08T16:55:27.971219Z"
},
"collapsed": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"is st...\n",
" ts_code trade_date is_st\n",
"0 603848.SH 20250430 False\n",
"1 300290.SZ 20250430 False\n",
"2 603877.SH 20250430 False\n",
"3 834639.BJ 20250430 False\n",
"4 000909.SZ 20250430 True\n"
]
}
],
"source": [
"from datetime import datetime\n",
"import pandas as pd\n",
"\n",
"\n",
"\n",
"print('is st...')\n",
"# 创建一个新的列 is_st判断每只股票是否是 ST\n",
"daily_basic['is_st'] = daily_basic.apply(\n",
" lambda row: is_st(name_change_dict, row['ts_code'], row['trade_date']), axis=1\n",
")\n",
"\n",
"# 保存结果到新的 HDF5 文件\n",
"daily_basic.to_hdf('../../../data/daily_basic.h5', key='daily_basic', mode='w', format='table')\n",
"\n",
"# 输出部分结果\n",
"print(daily_basic[['ts_code', 'trade_date', 'is_st']].head())\n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "stock",
"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.13.2"
}
},
"nbformat": 4,
"nbformat_minor": 5
}

View File

@@ -34,17 +34,17 @@
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"Index: 9134824 entries, 0 to 20632\n",
"Index: 9336127 entries, 0 to 25845\n",
"Data columns (total 2 columns):\n",
" # Column Dtype \n",
"--- ------ ----- \n",
" 0 ts_code object\n",
" 1 trade_date object\n",
"dtypes: object(2)\n",
"memory usage: 209.1+ MB\n",
"memory usage: 213.7+ MB\n",
"None\n",
"20251120\n",
"start_date: 20251121\n"
"20260116\n",
"start_date: 20260119\n"
]
}
],
@@ -61,7 +61,7 @@
" max_date = df['trade_date'].max()\n",
"\n",
"print(max_date)\n",
"trade_cal = pro.trade_cal(exchange='', start_date='20170101', end_date='20251220')\n",
"trade_cal = pro.trade_cal(exchange='', start_date='20170101', end_date='20260201')\n",
"trade_cal = trade_cal[trade_cal['is_open'] == 1] # 只保留交易日\n",
"trade_dates = trade_cal[trade_cal['cal_date'] > max_date]['cal_date'].tolist()\n",
"start_date = min(trade_dates)\n",
@@ -84,27 +84,16 @@
"name": "stdout",
"output_type": "stream",
"text": [
"任务 20251218 完成\n",
"任务 20251219 完成\n",
"任务 20251217 完成\n",
"任务 20251216 完成\n",
"任务 20251215 完成\n",
"任务 20251212 完成\n",
"任务 20251211 完成\n",
"任务 20251210 完成\n",
"任务 20251209 完成\n",
"任务 20251208 完成\n",
"任务 20251205 完成\n",
"任务 20251204 完成\n",
"任务 20251203 完成\n",
"任务 20251202 完成\n",
"任务 20251201 完成\n",
"任务 20251128 完成\n",
"任务 20251127 完成\n",
"任务 20251126 完成\n",
"任务 20251125 完成\n",
"任务 20251124 完成\n",
"任务 20251121 完成\n"
"任务 20260129 完成\n",
"任务 20260130 完成\n",
"任务 20260128 完成\n",
"任务 20260127 完成\n",
"任务 20260126 完成\n",
"任务 20260123 完成\n",
"任务 20260122 完成\n",
"任务 20260121 完成\n",
"任务 20260120 完成\n",
"任务 20260119 完成\n"
]
}
],
@@ -193,59 +182,72 @@
"name": "stdout",
"output_type": "stream",
"text": [
" ts_code trade_date buy_sm_vol buy_sm_amount sell_sm_vol \\\n",
"0 002593.SZ 20251121 369428 21109.32 239444 \n",
"1 300405.SZ 20251121 173424 11775.01 115988 \n",
"2 001336.SZ 20251121 11378 2729.92 10423 \n",
"3 002403.SZ 20251121 24219 3104.96 19841 \n",
"4 688268.SH 20251121 12369 7423.62 12330 \n",
"... ... ... ... ... ... \n",
"5156 000881.SZ 20251121 146959 11936.56 155068 \n",
"5157 300676.SZ 20251121 21428 9913.61 15092 \n",
"5158 603138.SH 20251121 31243 4558.85 30559 \n",
"5159 301526.SZ 20251121 172815 9552.38 105860 \n",
"5160 300903.SZ 20251121 124772 20586.88 96098 \n",
" ts_code trade_date buy_sm_vol buy_sm_amount sell_sm_vol \\\n",
"0 300284.SZ 20260123 57213 4682.01 45561 \n",
"1 002835.SZ 20260123 10930 1886.39 9809 \n",
"2 603175.SH 20260123 28945 21106.65 29993 \n",
"3 600284.SH 20260123 62561 5324.31 55101 \n",
"4 300855.SZ 20260123 41944 15903.55 33566 \n",
"... ... ... ... ... ... \n",
"25876 600211.SH 20260119 10915 4796.09 12174 \n",
"25877 601229.SH 20260119 225161 21704.91 267726 \n",
"25878 003042.SZ 20260119 17500 2893.60 11703 \n",
"25879 601155.SH 20260119 75731 11076.12 70817 \n",
"25880 600169.SH 20260119 81734 2005.16 84188 \n",
"\n",
" sell_sm_amount buy_md_vol buy_md_amount sell_md_vol sell_md_amount \\\n",
"0 13673.67 256325 14655.03 298786 17088.39 \n",
"1 7859.14 154296 10473.88 176589 11973.97 \n",
"2 2498.94 5274 1266.93 5893 1415.57 \n",
"3 2546.44 17292 2218.64 18180 2333.03 \n",
"4 7430.97 16104 9682.18 16670 10042.76 \n",
"... ... ... ... ... ... \n",
"5156 12623.78 107103 8717.66 97089 7896.18 \n",
"5157 6975.73 17857 8249.34 16607 7679.15 \n",
"5158 4458.47 15126 2208.57 11879 1733.73 \n",
"5159 5855.69 155749 8607.76 160962 8892.48 \n",
"5160 15867.99 92082 15223.39 105748 17449.56 \n",
" sell_sm_amount buy_md_vol buy_md_amount sell_md_vol sell_md_amount \\\n",
"0 3728.28 48486 3966.28 59366 4856.95 \n",
"1 1693.39 6499 1121.44 6017 1038.84 \n",
"2 21840.97 22701 16511.38 23142 16835.79 \n",
"3 4687.48 68181 5800.70 62114 5285.81 \n",
"4 12712.79 35383 13409.44 40111 15213.47 \n",
"... ... ... ... ... ... \n",
"25876 5348.74 9594 4215.26 8253 3626.54 \n",
"25877 25799.99 204041 19664.19 207361 19990.67 \n",
"25878 1933.74 11780 1946.25 14398 2379.72 \n",
"25879 10351.64 45622 6659.41 46251 6765.59 \n",
"25880 2063.68 129391 3172.21 137053 3360.95 \n",
"\n",
" buy_lg_vol buy_lg_amount sell_lg_vol sell_lg_amount buy_elg_vol \\\n",
"0 125303 7153.65 190306 10868.03 13733 \n",
"1 68396 4621.42 100633 6820.12 12166 \n",
"2 326 77.32 662 159.66 0 \n",
"3 7131 916.27 8891 1137.58 0 \n",
"4 9155 5523.81 9780 5877.77 2793 \n",
"... ... ... ... ... ... \n",
"5156 63727 5186.84 54928 4460.74 8415 \n",
"5157 12528 5781.44 16425 7596.83 3906 \n",
"5158 5884 857.88 8048 1175.32 0 \n",
"5159 63089 3481.66 115498 6376.52 13568 \n",
"5160 58186 9624.92 77536 12811.46 25445 \n",
" buy_lg_vol buy_lg_amount sell_lg_vol sell_lg_amount buy_elg_vol \\\n",
"0 39133 3201.55 32920 2693.69 6576 \n",
"1 4067 702.11 4633 799.04 241 \n",
"2 11291 8249.67 11377 8302.90 3400 \n",
"3 46517 3960.29 57644 4906.75 23366 \n",
"4 24315 9212.24 24640 9342.34 5111 \n",
"... ... ... ... ... ... \n",
"25876 5507 2419.57 5204 2286.10 2 \n",
"25877 134694 12983.30 86737 8363.03 24453 \n",
"25878 4038 668.49 7218 1194.87 0 \n",
"25879 23725 3458.86 23634 3453.46 21891 \n",
"25880 63062 1545.61 49278 1208.05 5904 \n",
"\n",
" buy_elg_amount sell_elg_vol sell_elg_amount net_mf_vol net_mf_amount \n",
"0 781.20 36253 2069.12 -103672 -5866.51 \n",
"1 813.01 15071 1030.08 -34131 -2297.62 \n",
"2 0.00 0 0.00 -1180 -271.00 \n",
"3 0.00 1730 222.81 194 30.22 \n",
"4 1708.30 1640 986.41 476 282.30 \n",
"... ... ... ... ... ... \n",
"5156 686.43 19119 1546.77 -50922 -4113.23 \n",
"5157 1805.21 7595 3497.90 -4085 -1873.36 \n",
"5158 0.00 1768 257.78 713 110.42 \n",
"5159 744.87 22900 1261.99 -64224 -3539.76 \n",
"5160 4179.40 21103 3485.60 -29335 -4855.38 \n",
" buy_elg_amount sell_elg_vol sell_elg_amount net_mf_vol \\\n",
"0 539.18 13561 1110.11 -4914 \n",
"1 41.60 1278 220.26 1923 \n",
"2 2437.55 1825 1325.59 1620 \n",
"3 1991.65 25767 2196.91 46602 \n",
"4 1934.73 8437 3191.36 -19491 \n",
"... ... ... ... ... \n",
"25876 0.88 388 170.41 -44 \n",
"25877 2359.23 26525 2557.95 -37774 \n",
"25878 0.00 0 0.00 6587 \n",
"25879 3125.39 26267 3749.10 28653 \n",
"25880 144.65 9571 234.95 -10865 \n",
"\n",
"[5161 rows x 20 columns]\n"
" net_mf_amount \n",
"0 -391.89 \n",
"1 333.04 \n",
"2 1372.40 \n",
"3 3982.07 \n",
"4 -7354.89 \n",
"... ... \n",
"25876 -16.04 \n",
"25877 -3603.98 \n",
"25878 1092.73 \n",
"25879 4152.29 \n",
"25880 -256.23 \n",
"\n",
"[25881 rows x 20 columns]\n"
]
}
],

View File

@@ -34,23 +34,23 @@
"output_type": "stream",
"text": [
" ts_code trade_date\n",
"4915 600221.SH 20251120\n",
"4916 600222.SH 20251120\n",
"4917 600223.SH 20251120\n",
"4919 600227.SH 20251120\n",
"3693 301448.SZ 20251120\n",
"4959 600211.SH 20260116\n",
"4960 600212.SH 20260116\n",
"4961 600215.SH 20260116\n",
"4949 600197.SH 20260116\n",
"3732 301501.SZ 20260116\n",
"<class 'pandas.core.frame.DataFrame'>\n",
"Index: 11412627 entries, 0 to 29456\n",
"Index: 11701107 entries, 0 to 37139\n",
"Data columns (total 2 columns):\n",
" # Column Dtype \n",
"--- ------ ----- \n",
" 0 ts_code object\n",
" 1 trade_date object\n",
"dtypes: object(2)\n",
"memory usage: 261.2+ MB\n",
"memory usage: 267.8+ MB\n",
"None\n",
"20251120\n",
"20251121\n"
"20260116\n",
"20260119\n"
]
}
],
@@ -68,7 +68,7 @@
" max_date = df['trade_date'].max()\n",
"\n",
"print(max_date)\n",
"trade_cal = pro.trade_cal(exchange='', start_date='20170101', end_date='20251220')\n",
"trade_cal = pro.trade_cal(exchange='', start_date='20170101', end_date='20260201')\n",
"trade_cal = trade_cal[trade_cal['is_open'] == 1] # 只保留交易日\n",
"trade_dates = trade_cal[trade_cal['cal_date'] > max_date]['cal_date'].tolist()\n",
"start_date = min(trade_dates)\n",
@@ -91,27 +91,22 @@
"name": "stdout",
"output_type": "stream",
"text": [
"任务 20251219 完成\n",
"任务 20251218 完成\n",
"任务 20251217 完成\n",
"任务 20251216 完成\n",
"任务 20251215 完成\n",
"任务 20251212 完成\n",
"任务 20251211 完成\n",
"任务 20251210 完成\n",
"任务 20251209 完成\n",
"任务 20251208 完成\n",
"任务 20251205 完成\n",
"任务 20251204 完成\n",
"任务 20251203 完成\n",
"任务 20251202 完成\n",
"任务 20251201 完成\n",
"任务 20251128 完成\n",
"任务 20251127 完成\n",
"任务 20251126 完成\n",
"任务 20251125 完成\n",
"任务 20251124 完成\n",
"任务 20251121 完成\n"
"任务 20260130 完成\n",
"任务 20260129 完成\n",
"任务 20260128 完成\n",
"任务 20260127 完成\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"任务 20260126 完成\n",
"任务 20260123 完成\n",
"任务 20260122 完成\n",
"任务 20260121 完成\n",
"任务 20260120 完成\n",
"任务 20260119 完成\n"
]
}
],
@@ -163,19 +158,71 @@
"output_type": "stream",
"text": [
"[ trade_date ts_code up_limit down_limit\n",
"0 20251121 000001.SZ 13.04 10.67\n",
"1 20251121 000002.SZ 6.82 5.58\n",
"2 20251121 000004.SZ 11.64 10.54\n",
"3 20251121 000006.SZ 12.07 9.87\n",
"4 20251121 000007.SZ 11.00 9.00\n",
"0 20260123 000001.SZ 12.18 9.96\n",
"1 20260123 000002.SZ 5.45 4.46\n",
"2 20260123 000004.SZ 12.59 11.39\n",
"3 20260123 000006.SZ 10.62 8.69\n",
"4 20260123 000007.SZ 12.47 10.21\n",
"... ... ... ... ...\n",
"7363 20251121 920978.BJ 49.06 26.42\n",
"7364 20251121 920981.BJ 46.99 25.31\n",
"7365 20251121 920982.BJ 300.67 161.91\n",
"7366 20251121 920985.BJ 11.75 6.33\n",
"7367 20251121 920992.BJ 24.06 12.96\n",
"7435 20260123 920978.BJ 44.56 24.00\n",
"7436 20260123 920981.BJ 45.61 24.57\n",
"7437 20260123 920982.BJ 295.08 158.90\n",
"7438 20260123 920985.BJ 10.20 5.50\n",
"7439 20260123 920992.BJ 24.32 13.10\n",
"\n",
"[7368 rows x 4 columns]]\n"
"[7440 rows x 4 columns], trade_date ts_code up_limit down_limit\n",
"0 20260122 000001.SZ 12.18 9.96\n",
"1 20260122 000002.SZ 5.51 4.51\n",
"2 20260122 000004.SZ 11.99 10.85\n",
"3 20260122 000006.SZ 10.62 8.69\n",
"4 20260122 000007.SZ 12.41 10.15\n",
"... ... ... ... ...\n",
"7433 20260122 920978.BJ 45.48 24.50\n",
"7434 20260122 920981.BJ 45.61 24.57\n",
"7435 20260122 920982.BJ 301.76 162.50\n",
"7436 20260122 920985.BJ 9.84 5.30\n",
"7437 20260122 920992.BJ 23.95 12.91\n",
"\n",
"[7438 rows x 4 columns], trade_date ts_code up_limit down_limit\n",
"0 20260121 000001.SZ 12.28 10.04\n",
"1 20260121 000002.SZ 5.27 4.31\n",
"2 20260121 000004.SZ 12.02 10.88\n",
"3 20260121 000006.SZ 10.27 8.41\n",
"4 20260121 000007.SZ 12.08 9.88\n",
"... ... ... ... ...\n",
"7433 20260121 920978.BJ 45.60 24.56\n",
"7434 20260121 920981.BJ 43.81 23.59\n",
"7435 20260121 920982.BJ 304.34 163.88\n",
"7436 20260121 920985.BJ 9.90 5.34\n",
"7437 20260121 920992.BJ 24.11 12.99\n",
"\n",
"[7438 rows x 4 columns], trade_date ts_code up_limit down_limit\n",
"0 20260120 000001.SZ 12.23 10.01\n",
"1 20260120 000002.SZ 5.20 4.26\n",
"2 20260120 000004.SZ 11.46 10.36\n",
"3 20260120 000006.SZ 10.07 8.24\n",
"4 20260120 000007.SZ 12.49 10.22\n",
"... ... ... ... ...\n",
"7431 20260120 920978.BJ 46.41 24.99\n",
"7432 20260120 920981.BJ 44.26 23.84\n",
"7433 20260120 920982.BJ 310.42 167.16\n",
"7434 20260120 920985.BJ 9.97 5.37\n",
"7435 20260120 920992.BJ 24.49 13.19\n",
"\n",
"[7436 rows x 4 columns], trade_date ts_code up_limit down_limit\n",
"0 20260119 000001.SZ 12.31 10.07\n",
"1 20260119 000002.SZ 5.20 4.26\n",
"2 20260119 000004.SZ 11.70 10.58\n",
"3 20260119 000006.SZ 10.13 8.29\n",
"4 20260119 000007.SZ 12.43 10.17\n",
"... ... ... ... ...\n",
"7429 20260119 920978.BJ 46.26 24.92\n",
"7430 20260119 920981.BJ 45.51 24.51\n",
"7431 20260119 920982.BJ 305.50 164.50\n",
"7432 20260119 920985.BJ 9.88 5.32\n",
"7433 20260119 920992.BJ 24.28 13.08\n",
"\n",
"[7434 rows x 4 columns]]\n"
]
}
],