feat: 完善 QMT 交易模块文档和配置展示功能
- 优化前端仪表盘界面 - 添加配置文件可视化展示 - 编写 QMT 模块配置文档 - 完善项目规则体系(KiloCode)
This commit is contained in:
@@ -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": {
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
@@ -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
|
||||
}
|
||||
@@ -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"
|
||||
]
|
||||
}
|
||||
],
|
||||
|
||||
@@ -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"
|
||||
]
|
||||
}
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user