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": 14,
"execution_count": 1,
"id": "18d1d622-b083-4cc4-a6f8-7c1ed2d0edd2",
"metadata": {
"ExecuteTime": {
@@ -20,7 +20,7 @@
},
{
"cell_type": "code",
"execution_count": 15,
"execution_count": 2,
"id": "bc8f03e027027004",
"metadata": {
"ExecuteTime": {
@@ -63,7 +63,7 @@
" return True\n",
" return False\n",
"\n",
"name_change_df = pd.read_hdf('../../data/name_change.h5', key='name_change')\n",
"name_change_df = pd.read_hdf('/mnt/d/PyProject/NewStock/data/name_change.h5', key='name_change')\n",
"name_change_df = name_change_df.drop_duplicates(keep='first')\n",
"\n",
"# 确保 name_change_df 的日期格式正确\n",
@@ -81,7 +81,7 @@
},
{
"cell_type": "code",
"execution_count": 16,
"execution_count": 3,
"id": "b151990c",
"metadata": {},
"outputs": [
@@ -109,7 +109,7 @@
},
{
"cell_type": "code",
"execution_count": 17,
"execution_count": 4,
"id": "553cfb36-f560-4cc4-b2bc-68323ccc5072",
"metadata": {
"ExecuteTime": {
@@ -123,19 +123,184 @@
"name": "stdout",
"output_type": "stream",
"text": [
"任务 20251230 完成\n",
"任务 20251231 完成\n",
"任务 20251229 完成\n",
"任务 20251226 完成\n",
"任务 20251225 完成\n",
"任务 20251224 完成\n",
"任务 20251223 完成\n",
"任务 20251222 完成\n",
"任务 20251219 完成\n",
"任务 20251217 完成\n",
"任务 20251218 完成\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",
"任务 20251120 完成\n",
"任务 20251119 完成\n",
"任务 20251118 完成\n",
"任务 20251117 完成\n",
"任务 20251114 完成\n",
"任务 20251113 完成\n",
"任务 20251112 完成\n",
"任务 20251111 完成\n",
"任务 20251110 完成\n",
"任务 20251107 完成\n",
"任务 20251106 完成\n",
"任务 20251105 完成\n",
"任务 20251104 完成\n",
"任务 20251103 完成\n",
"任务 20251031 完成\n",
"任务 20251030 完成\n",
"任务 20251029 完成\n",
"任务 20251028 完成\n",
"任务 20251027 完成\n",
"任务 20251024 完成\n",
"任务 20251023 完成\n",
"任务 20251022 完成\n",
"任务 20251021 完成\n",
"任务 20251020 完成\n",
"任务 20251017 完成\n",
"任务 20251016 完成\n",
"任务 20251015 完成\n",
"任务 20251014 完成\n",
"任务 20251013 完成\n",
"任务 20251010 完成\n",
"任务 20251009 完成\n",
"任务 20250930 完成\n",
"任务 20250929 完成\n",
"任务 20250926 完成\n",
"任务 20250925 完成\n",
"任务 20250924 完成\n",
"任务 20250923 完成\n",
"任务 20250922 完成\n",
"任务 20250919 完成\n",
"任务 20250918 完成\n",
"任务 20250917 完成\n",
"任务 20250916 完成\n",
"任务 20250915 完成\n",
"任务 20250912 完成\n",
"任务 20250911 完成\n",
"任务 20250910 完成\n",
"任务 20250909 完成\n",
"任务 20250908 完成\n",
"任务 20250905 完成\n",
"任务 20250904 完成\n",
"任务 20250903 完成\n",
"任务 20250902 完成\n",
"任务 20250901 完成\n",
"任务 20250829 完成\n",
"任务 20250828 完成\n",
"任务 20250827 完成\n",
"任务 20250826 完成\n",
"任务 20250825 完成\n",
"任务 20250822 完成\n",
"任务 20250821 完成\n",
"任务 20250820 完成\n",
"任务 20250819 完成\n",
"任务 20250818 完成\n",
"任务 20250815 完成\n",
"任务 20250814 完成\n",
"任务 20250813 完成\n",
"任务 20250812 完成\n",
"任务 20250811 完成\n",
"任务 20250808 完成\n",
"任务 20250807 完成\n",
"任务 20250806 完成\n",
"任务 20250805 完成\n",
"任务 20250804 完成\n",
"任务 20250801 完成\n",
"任务 20250731 完成\n",
"任务 20250730 完成\n",
"任务 20250729 完成\n",
"任务 20250728 完成\n",
"任务 20250725 完成\n",
"任务 20250724 完成\n",
"任务 20250723 完成\n",
"任务 20250722 完成\n",
"任务 20250721 完成\n",
"任务 20250718 完成\n",
"任务 20250717 完成\n",
"任务 20250716 完成\n",
"任务 20250715 完成\n",
"任务 20250714 完成\n",
"任务 20250711 完成\n",
"任务 20250710 完成\n",
"任务 20250709 完成\n",
"任务 20250708 完成\n",
"任务 20250707 完成\n",
"任务 20250704 完成\n",
"任务 20250703 完成\n",
"任务 20250702 完成\n",
"任务 20250701 完成\n",
"任务 20250630 完成\n",
"任务 20250627 完成\n",
"任务 20250626 完成\n",
"任务 20250625 完成\n",
"任务 20250624 完成\n",
"任务 20250623 完成\n",
"任务 20250620 完成\n",
"任务 20250619 完成\n",
"任务 20250618 完成\n",
"任务 20250617 完成\n",
"任务 20250616 完成\n",
"任务 20250613 完成\n",
"任务 20250612 完成\n",
"任务 20250611 完成\n",
"任务 20250610 完成\n",
"任务 20250609 完成\n",
"任务 20250606 完成\n",
"任务 20250605 完成\n",
"任务 20250604 完成\n",
"任务 20250603 完成\n",
"任务 20250530 完成\n",
"任务 20250529 完成\n",
"任务 20250528 完成\n",
"任务 20250527 完成\n",
"任务 20250526 完成\n",
"任务 20250523 完成\n",
"任务 20250522 完成\n",
"任务 20250521 完成\n",
"任务 20250520 完成\n",
"任务 20250519 完成\n",
"任务 20250516 完成\n",
"任务 20250515 完成\n",
"任务 20250514 完成\n",
"任务 20250513 完成\n",
"任务 20250512 完成\n",
"任务 20250509 完成\n",
"任务 20250508 完成\n",
"任务 20250507 完成\n",
"任务 20250506 完成\n",
"任务 20250430 完成\n",
"任务 20250429 完成\n",
"任务 20250428 完成\n",
"任务 20250425 完成\n",
"任务 20250424 完成\n",
"任务 20250423 完成\n",
"任务 20250421 完成\n",
"任务 20250422 完成\n",
"任务 20250421 完成\n",
"任务 20250418 完成\n",
"任务 20250417 完成\n",
"任务 20250416 完成\n",
"任务 20250414 完成\n",
"任务 20250415 完成\n",
"任务 20250414 完成\n",
"任务 20250411 完成\n",
"任务 20250410 完成\n",
"任务 20250409 完成\n",
@@ -156,11 +321,11 @@
"任务 20250318 完成\n",
"任务 20250317 完成\n",
"任务 20250314 完成\n",
"任务 20250312 完成\n",
"任务 20250313 完成\n",
"任务 20250312 完成\n",
"任务 20250311 完成\n",
"任务 20250307 完成\n",
"任务 20250310 完成\n",
"任务 20250307 完成\n",
"任务 20250306 完成\n",
"任务 20250305 完成\n",
"任务 20250304 完成\n",
@@ -225,8 +390,8 @@
"任务 20241202 完成\n",
"任务 20241129 完成\n",
"任务 20241128 完成\n",
"任务 20241126 完成\n",
"任务 20241127 完成\n",
"任务 20241126 完成\n",
"任务 20241125 完成\n",
"任务 20241122 完成\n",
"任务 20241121 完成\n",
@@ -253,8 +418,8 @@
"任务 20241023 完成\n",
"任务 20241022 完成\n",
"任务 20241021 完成\n",
"任务 20241017 完成\n",
"任务 20241018 完成\n",
"任务 20241017 完成\n",
"任务 20241016 完成\n",
"任务 20241015 完成\n",
"任务 20241014 完成\n",
@@ -262,11 +427,11 @@
"任务 20241010 完成\n",
"任务 20241009 完成\n",
"任务 20241008 完成\n",
"任务 20240930 完成\n",
"任务 20240927 完成\n",
"任务 20240930 完成\n",
"任务 20240926 完成\n",
"任务 20240924 完成\n",
"任务 20240925 完成\n",
"任务 20240924 完成\n",
"任务 20240923 完成\n",
"任务 20240920 完成\n",
"任务 20240919 完成\n",
@@ -334,8 +499,8 @@
"任务 20240621 完成\n",
"任务 20240620 完成\n",
"任务 20240619 完成\n",
"任务 20240617 完成\n",
"任务 20240618 完成\n",
"任务 20240617 完成\n",
"任务 20240614 完成\n",
"任务 20240613 完成\n",
"任务 20240612 完成\n",
@@ -380,14 +545,14 @@
"任务 20240412 完成\n",
"任务 20240411 完成\n",
"任务 20240410 完成\n",
"任务 20240408 完成\n",
"任务 20240409 完成\n",
"任务 20240408 完成\n",
"任务 20240403 完成\n",
"任务 20240402 完成\n",
"任务 20240401 完成\n",
"任务 20240329 完成\n",
"任务 20240327 完成\n",
"任务 20240328 完成\n",
"任务 20240327 完成\n",
"任务 20240326 完成\n",
"任务 20240325 完成\n",
"任务 20240322 完成\n",
@@ -416,10 +581,10 @@
"任务 20240220 完成\n",
"任务 20240219 完成\n",
"任务 20240208 完成\n",
"任务 20240206 完成\n",
"任务 20240207 完成\n",
"任务 20240202 完成\n",
"任务 20240206 完成\n",
"任务 20240205 完成\n",
"任务 20240202 完成\n",
"任务 20240201 完成\n",
"任务 20240131 完成\n",
"任务 20240130 完成\n",
@@ -434,24 +599,24 @@
"任务 20240117 完成\n",
"任务 20240116 完成\n",
"任务 20240115 完成\n",
"任务 20240111 完成\n",
"任务 20240112 完成\n",
"任务 20240111 完成\n",
"任务 20240110 完成\n",
"任务 20240109 完成\n",
"任务 20240108 完成\n",
"任务 20240105 完成\n",
"任务 20240104 完成\n",
"任务 20240103 完成\n",
"任务 20231229 完成\n",
"任务 20240102 完成\n",
"任务 20231229 完成\n",
"任务 20231228 完成\n",
"任务 20231227 完成\n",
"任务 20231226 完成\n",
"任务 20231225 完成\n",
"任务 20231222 完成\n",
"任务 20231221 完成\n",
"任务 20231219 完成\n",
"任务 20231220 完成\n",
"任务 20231219 完成\n",
"任务 20231218 完成\n",
"任务 20231215 完成\n",
"任务 20231214 完成\n",
@@ -491,8 +656,8 @@
"任务 20231027 完成\n",
"任务 20231026 完成\n",
"任务 20231025 完成\n",
"任务 20231024 完成\n",
"任务 20231023 完成\n",
"任务 20231024 完成\n",
"任务 20231020 完成\n",
"任务 20231019 完成\n",
"任务 20231018 完成\n",
@@ -516,24 +681,24 @@
"任务 20230914 完成\n",
"任务 20230913 完成\n",
"任务 20230912 完成\n",
"任务 20230911 完成\n",
"任务 20230908 完成\n",
"任务 20230911 完成\n",
"任务 20230907 完成\n",
"任务 20230906 完成\n",
"任务 20230905 完成\n",
"任务 20230904 完成\n",
"任务 20230901 完成\n",
"任务 20230831 完成\n",
"任务 20230830 完成\n",
"任务 20230831 完成\n",
"任务 20230829 完成\n",
"任务 20230828 完成\n",
"任务 20230825 完成\n",
"任务 20230824 完成\n",
"任务 20230825 完成\n",
"任务 20230823 完成\n",
"任务 20230822 完成\n",
"任务 20230821 完成\n",
"任务 20230817 完成\n",
"任务 20230818 完成\n",
"任务 20230817 完成\n",
"任务 20230816 完成\n",
"任务 20230815 完成\n",
"任务 20230814 完成\n",
@@ -622,8 +787,8 @@
"任务 20230412 完成\n",
"任务 20230411 完成\n",
"任务 20230410 完成\n",
"任务 20230406 完成\n",
"任务 20230407 完成\n",
"任务 20230406 完成\n",
"任务 20230404 完成\n",
"任务 20230403 完成\n",
"任务 20230331 完成\n",
@@ -640,12 +805,12 @@
"任务 20230316 完成\n",
"任务 20230315 完成\n",
"任务 20230314 完成\n",
"任务 20230310 完成\n",
"任务 20230313 完成\n",
"任务 20230308 完成\n",
"任务 20230310 完成\n",
"任务 20230309 完成\n",
"任务 20230306 完成\n",
"任务 20230308 完成\n",
"任务 20230307 完成\n",
"任务 20230306 完成\n",
"任务 20230303 完成\n",
"任务 20230302 完成\n",
"任务 20230301 完成\n",
@@ -730,8 +895,8 @@
"任务 20221102 完成\n",
"任务 20221101 完成\n",
"任务 20221031 完成\n",
"任务 20221027 完成\n",
"任务 20221028 完成\n",
"任务 20221027 完成\n",
"任务 20221026 完成\n",
"任务 20221025 完成\n",
"任务 20221024 完成\n",
@@ -808,8 +973,8 @@
"任务 20220707 完成\n",
"任务 20220706 完成\n",
"任务 20220705 完成\n",
"任务 20220701 完成\n",
"任务 20220704 完成\n",
"任务 20220701 完成\n",
"任务 20220630 完成\n",
"任务 20220629 完成\n",
"任务 20220628 完成\n",
@@ -896,11 +1061,11 @@
"任务 20220225 完成\n",
"任务 20220224 完成\n",
"任务 20220223 完成\n",
"任务 20220221 完成\n",
"任务 20220222 完成\n",
"任务 20220221 完成\n",
"任务 20220218 完成\n",
"任务 20220216 完成\n",
"任务 20220217 完成\n",
"任务 20220216 完成\n",
"任务 20220215 完成\n",
"任务 20220214 完成\n",
"任务 20220211 完成\n",
@@ -909,16 +1074,16 @@
"任务 20220208 完成\n",
"任务 20220207 完成\n",
"任务 20220128 完成\n",
"任务 20220127 完成\n",
"任务 20220126 完成\n",
"任务 20220127 完成\n",
"任务 20220125 完成\n",
"任务 20220124 完成\n",
"任务 20220121 完成\n",
"任务 20220120 完成\n",
"任务 20220119 完成\n",
"任务 20220117 完成\n",
"任务 20220118 完成\n",
"任务 20220114 完成\n",
"任务 20220117 完成\n",
"任务 20220113 完成\n",
"任务 20220112 完成\n",
"任务 20220111 完成\n",
@@ -973,8 +1138,8 @@
"任务 20211102 完成\n",
"任务 20211101 完成\n",
"任务 20211029 完成\n",
"任务 20211027 完成\n",
"任务 20211028 完成\n",
"任务 20211027 完成\n",
"任务 20211026 完成\n",
"任务 20211025 完成\n",
"任务 20211022 完成\n",
@@ -1043,8 +1208,8 @@
"任务 20210716 完成\n",
"任务 20210715 完成\n",
"任务 20210714 完成\n",
"任务 20210712 完成\n",
"任务 20210713 完成\n",
"任务 20210712 完成\n",
"任务 20210709 完成\n",
"任务 20210708 完成\n",
"任务 20210707 完成\n",
@@ -1063,8 +1228,8 @@
"任务 20210618 完成\n",
"任务 20210617 完成\n",
"任务 20210616 完成\n",
"任务 20210611 完成\n",
"任务 20210615 完成\n",
"任务 20210611 完成\n",
"任务 20210610 完成\n",
"任务 20210609 完成\n",
"任务 20210608 完成\n",
@@ -1162,8 +1327,8 @@
"任务 20210118 完成\n",
"任务 20210115 完成\n",
"任务 20210114 完成\n",
"任务 20210112 完成\n",
"任务 20210113 完成\n",
"任务 20210112 完成\n",
"任务 20210111 完成\n",
"任务 20210108 完成\n",
"任务 20210107 完成\n",
@@ -1230,8 +1395,8 @@
"任务 20201013 完成\n",
"任务 20201012 完成\n",
"任务 20201009 完成\n",
"任务 20200930 完成\n",
"任务 20200929 完成\n",
"任务 20200930 完成\n",
"任务 20200928 完成\n",
"任务 20200925 完成\n",
"任务 20200924 完成\n",
@@ -1272,8 +1437,8 @@
"任务 20200806 完成\n",
"任务 20200805 完成\n",
"任务 20200804 完成\n",
"任务 20200731 完成\n",
"任务 20200803 完成\n",
"任务 20200731 完成\n",
"任务 20200730 完成\n",
"任务 20200729 完成\n",
"任务 20200728 完成\n",
@@ -1288,8 +1453,8 @@
"任务 20200715 完成\n",
"任务 20200714 完成\n",
"任务 20200713 完成\n",
"任务 20200709 完成\n",
"任务 20200710 完成\n",
"任务 20200709 完成\n",
"任务 20200708 完成\n",
"任务 20200707 完成\n",
"任务 20200706 完成\n",
@@ -1320,10 +1485,10 @@
"任务 20200528 完成\n",
"任务 20200527 完成\n",
"任务 20200526 完成\n",
"任务 20200522 完成\n",
"任务 20200525 完成\n",
"任务 20200520 完成\n",
"任务 20200522 完成\n",
"任务 20200521 完成\n",
"任务 20200520 完成\n",
"任务 20200519 完成\n",
"任务 20200518 完成\n",
"任务 20200515 完成\n",
@@ -1514,8 +1679,8 @@
"任务 20190807 完成\n",
"任务 20190806 完成\n",
"任务 20190805 完成\n",
"任务 20190801 完成\n",
"任务 20190802 完成\n",
"任务 20190801 完成\n",
"任务 20190731 完成\n",
"任务 20190730 完成\n",
"任务 20190729 完成\n",
@@ -1526,8 +1691,8 @@
"任务 20190722 完成\n",
"任务 20190719 完成\n",
"任务 20190718 完成\n",
"任务 20190716 完成\n",
"任务 20190717 完成\n",
"任务 20190716 完成\n",
"任务 20190715 完成\n",
"任务 20190712 完成\n",
"任务 20190711 完成\n",
@@ -1660,8 +1825,8 @@
"任务 20181228 完成\n",
"任务 20181227 完成\n",
"任务 20181226 完成\n",
"任务 20181224 完成\n",
"任务 20181225 完成\n",
"任务 20181224 完成\n",
"任务 20181221 完成\n",
"任务 20181220 完成\n",
"任务 20181219 完成\n",
@@ -1800,14 +1965,14 @@
"任务 20180606 完成\n",
"任务 20180605 完成\n",
"任务 20180604 完成\n",
"任务 20180531 完成\n",
"任务 20180601 完成\n",
"任务 20180531 完成\n",
"任务 20180530 完成\n",
"任务 20180529 完成\n",
"任务 20180528 完成\n",
"任务 20180525 完成\n",
"任务 20180523 完成\n",
"任务 20180524 完成\n",
"任务 20180523 完成\n",
"任务 20180522 完成\n",
"任务 20180521 完成\n",
"任务 20180518 完成\n",
@@ -1854,8 +2019,8 @@
"任务 20180316 完成\n",
"任务 20180315 完成\n",
"任务 20180314 完成\n",
"任务 20180312 完成\n",
"任务 20180313 完成\n",
"任务 20180312 完成\n",
"任务 20180309 完成\n",
"任务 20180308 完成\n",
"任务 20180307 完成\n",
@@ -2073,8 +2238,8 @@
"任务 20170425 完成\n",
"任务 20170424 完成\n",
"任务 20170421 完成\n",
"任务 20170419 完成\n",
"任务 20170420 完成\n",
"任务 20170419 完成\n",
"任务 20170418 完成\n",
"任务 20170417 完成\n",
"任务 20170414 完成\n",
@@ -2103,8 +2268,8 @@
"任务 20170310 完成\n",
"任务 20170309 完成\n",
"任务 20170308 完成\n",
"任务 20170306 完成\n",
"任务 20170307 完成\n",
"任务 20170306 完成\n",
"任务 20170303 完成\n",
"任务 20170302 完成\n",
"任务 20170301 完成\n",
@@ -2154,7 +2319,7 @@
"from concurrent.futures import ThreadPoolExecutor, as_completed\n",
"\n",
"# 获取交易日历\n",
"trade_cal = pro.trade_cal(exchange='', start_date='20170101', end_date='20250601')\n",
"trade_cal = pro.trade_cal(exchange='', start_date='20170101', end_date='20260101')\n",
"trade_cal = trade_cal[trade_cal['is_open'] == 1] # 只保留交易日\n",
"trade_dates = trade_cal['cal_date'].tolist() # 获取所有交易日期列表\n",
"\n",
@@ -2180,7 +2345,7 @@
"\n",
"\n",
"# 遍历每个交易日期并获取数据\n",
"with ThreadPoolExecutor(max_workers=2) as executor:\n",
"with ThreadPoolExecutor(max_workers=4) 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",
@@ -2208,7 +2373,7 @@
},
{
"cell_type": "code",
"execution_count": 18,
"execution_count": 5,
"id": "97fdf8be-a86c-4404-bf0c-701f002cd81c",
"metadata": {
"ExecuteTime": {
@@ -2222,58 +2387,58 @@
"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",
"0 603633.SH 20251219 10.07 2.0093 3.0279 \n",
"1 001323.SZ 20251219 26.33 1.0493 1.1340 \n",
"2 000404.SZ 20251219 6.88 0.8559 1.2359 \n",
"3 002052.SZ 20251219 12.10 2.2154 3.1269 \n",
"4 002034.SZ 20251219 15.95 0.6112 1.3289 \n",
"... ... ... ... ... ... \n",
"8599133 600708.SH 20170103 9.03 0.7694 1.0169 \n",
"8599134 600712.SH 20170103 10.29 0.5859 0.8028 \n",
"8599135 001872.SZ 20170103 19.33 1.0970 5.4258 \n",
"8599136 001914.SZ 20170103 12.37 3.2627 6.6991 \n",
"8599137 302132.SZ 20170103 23.28 0.4912 1.5149 \n",
"9449465 600708.SH 20170103 9.03 0.7694 1.0169 \n",
"9449466 600712.SH 20170103 10.29 0.5859 0.8028 \n",
"9449467 001872.SZ 20170103 19.33 1.0970 5.4258 \n",
"9449468 001914.SZ 20170103 12.37 3.2627 6.6991 \n",
"9449469 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",
"8599133 0.85 23.3367 22.2458 1.4847 0.9613 0.9248 \n",
"8599134 0.67 202.4855 287.1454 5.1852 2.3682 2.5386 \n",
"8599135 0.77 23.6158 23.1883 2.7052 6.6556 6.5584 \n",
"8599136 1.02 20.5631 15.1595 2.1186 1.4950 1.2600 \n",
"8599137 0.74 91.3908 84.6980 6.9391 8.9531 8.8570 \n",
" volume_ratio pe pe_ttm pb ps ps_ttm dv_ratio \\\n",
"0 0.90 58.4795 266.7119 2.2164 2.9326 2.7555 0.5065 \n",
"1 0.65 14.9293 16.0911 2.5942 2.0447 2.0882 6.0585 \n",
"2 0.82 10.6360 10.5440 1.1261 0.4002 0.4118 3.6337 \n",
"3 1.10 130.7943 28.8305 27.3538 15.1883 8.9348 0.0000 \n",
"4 0.63 12.3417 11.5393 1.0093 2.1815 2.0983 3.1024 \n",
"... ... ... ... ... ... ... ... \n",
"9449465 0.85 23.3367 22.2458 1.4847 0.9613 0.9248 1.1074 \n",
"9449466 0.67 202.4855 287.1454 5.1852 2.3682 2.5386 0.1555 \n",
"9449467 0.77 23.6158 23.1883 2.7052 6.6556 6.5584 2.1211 \n",
"9449468 1.02 20.5631 15.1595 2.1186 1.4950 1.2600 0.4042 \n",
"9449469 0.74 91.3908 84.6980 6.9391 8.9531 8.8570 0.2291 \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",
"8599133 1.1074 1.1074 131871.9966 75088.9215 56812.2811 1.190804e+06 \n",
"8599134 0.1555 0.1555 54465.5360 53795.9475 39266.3119 5.604504e+05 \n",
"8599135 2.1211 2.1211 64476.3730 46486.6050 9398.8050 1.246328e+06 \n",
"8599136 0.4042 0.4042 66696.1416 66678.0666 32475.1786 8.250313e+05 \n",
"8599137 0.2291 0.2291 39384.0333 30419.3588 9862.3809 9.168603e+05 \n",
" dv_ttm total_share float_share free_share total_mv \\\n",
"0 0.2658 42681.0818 42681.0818 28323.2496 4.297985e+05 \n",
"1 1.6997 43508.0764 8969.4954 8299.8264 1.145568e+06 \n",
"2 4.3605 69599.5979 69271.9572 47972.4600 4.788452e+05 \n",
"3 NaN 75243.9694 68938.7155 48843.7703 9.104520e+05 \n",
"4 3.0720 43398.4982 43183.1194 19861.7302 6.922060e+05 \n",
"... ... ... ... ... ... \n",
"9449465 1.1074 131871.9966 75088.9215 56812.2811 1.190804e+06 \n",
"9449466 0.1555 54465.5360 53795.9475 39266.3119 5.604504e+05 \n",
"9449467 2.1211 64476.3730 46486.6050 9398.8050 1.246328e+06 \n",
"9449468 0.4042 66696.1416 66678.0666 32475.1786 8.250313e+05 \n",
"9449469 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",
"8599133 6.780530e+05 False \n",
"8599134 5.535603e+05 False \n",
"8599135 8.985861e+05 False \n",
"8599136 8.248077e+05 False \n",
"8599137 7.081627e+05 False \n",
" circ_mv is_st \n",
"0 429798.4937 False \n",
"1 236166.8139 False \n",
"2 476591.0655 False \n",
"3 834158.4576 False \n",
"4 688770.7544 False \n",
"... ... ... \n",
"9449465 678052.9611 False \n",
"9449466 553560.2998 False \n",
"9449467 898586.0747 False \n",
"9449468 824807.6838 False \n",
"9449469 708162.6729 False \n",
"\n",
"[8599138 rows x 19 columns]\n"
"[9449470 rows x 19 columns]\n"
]
}
],
@@ -2284,7 +2449,7 @@
},
{
"cell_type": "code",
"execution_count": 19,
"execution_count": 6,
"id": "2b58a8bf-ffc5-4482-8e4d-bf24da9277de",
"metadata": {
"ExecuteTime": {
@@ -2303,14 +2468,14 @@
],
"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",
"all_daily_data_df.to_hdf('/mnt/d/PyProject/NewStock/data/daily_basic.h5', key='daily_basic', mode='w', format='table', data_columns=True)\n",
"\n",
"print(\"所有每日基础数据获取并保存完毕!\")"
]
},
{
"cell_type": "code",
"execution_count": 21,
"execution_count": 7,
"id": "57ac1d86-5ce8-4bc9-812f-b45dcc2a3b4c",
"metadata": {
"ExecuteTime": {
@@ -2324,58 +2489,58 @@
"output_type": "stream",
"text": [
" ts_code trade_date close turnover_rate turnover_rate_f \\\n",
"2091 603021.SH 20250430 3.01 12.8015 21.6289 \n",
"9902 603021.SH 20250429 2.94 0.1629 0.2752 \n",
"12107 603021.SH 20250428 3.09 0.4293 0.7253 \n",
"21450 603021.SH 20250425 3.25 0.0824 0.1392 \n",
"26081 603021.SH 20250424 3.42 0.0789 0.1333 \n",
"4440 603021.SH 20251219 4.60 1.6344 2.7613 \n",
"5462 603021.SH 20251217 4.73 2.0569 3.4752 \n",
"11387 603021.SH 20251218 4.66 1.2692 2.1444 \n",
"19849 603021.SH 20251216 4.50 3.1881 5.3865 \n",
"21982 603021.SH 20251215 4.58 0.5972 1.0089 \n",
"... ... ... ... ... ... \n",
"8586274 603021.SH 20170109 46.84 5.9412 6.5949 \n",
"8589108 603021.SH 20170106 47.55 6.4862 7.1998 \n",
"8591964 603021.SH 20170105 50.08 5.2368 5.8130 \n",
"8594806 603021.SH 20170104 51.73 5.3821 5.9743 \n",
"8598822 603021.SH 20170103 50.79 2.3801 2.6419 \n",
"9436606 603021.SH 20170109 46.84 5.9412 6.5949 \n",
"9439440 603021.SH 20170106 47.55 6.4862 7.1998 \n",
"9442296 603021.SH 20170105 50.08 5.2368 5.8130 \n",
"9445138 603021.SH 20170104 51.73 5.3821 5.9743 \n",
"9449154 603021.SH 20170103 50.79 2.3801 2.6419 \n",
"\n",
" volume_ratio pe pe_ttm pb ps ps_ttm dv_ratio \\\n",
"2091 76.02 NaN NaN 34.7434 2.3383 2.3991 0.0000 \n",
"9902 0.27 NaN NaN 33.9354 2.2840 2.3433 0.0000 \n",
"12107 0.42 NaN NaN 17.9426 2.4005 2.4005 0.0000 \n",
"21450 0.05 NaN NaN 18.8716 2.5248 2.5248 0.0000 \n",
"26081 0.04 NaN NaN 19.8587 2.6569 2.6569 0.0000 \n",
"... ... ... ... ... ... ... ... \n",
"8586274 1.31 115.0810 102.7773 4.2761 7.9402 8.4422 0.3657 \n",
"8589108 1.40 116.8254 104.3352 4.3409 8.0606 8.5702 0.3603 \n",
"8591964 1.05 123.0413 109.8866 4.5719 8.4894 9.0262 0.3421 \n",
"8594806 0.97 127.0952 113.5070 4.7225 8.7691 9.3236 0.3311 \n",
"8598822 0.37 124.7857 111.4445 4.6367 8.6098 9.1541 0.3373 \n",
" volume_ratio pe pe_ttm pb ps ps_ttm dv_ratio \\\n",
"4440 0.84 NaN NaN NaN 3.5735 3.7322 0.0000 \n",
"5462 1.23 NaN NaN NaN 3.6745 3.8377 0.0000 \n",
"11387 0.70 NaN NaN NaN 3.6202 3.7809 0.0000 \n",
"19849 2.60 NaN NaN NaN 3.4959 3.6510 0.0000 \n",
"21982 0.45 NaN NaN NaN 3.5580 3.7160 0.0000 \n",
"... ... ... ... ... ... ... ... \n",
"9436606 1.31 115.0810 102.7773 4.2761 7.9402 8.4422 0.3657 \n",
"9439440 1.40 116.8254 104.3352 4.3409 8.0606 8.5702 0.3603 \n",
"9442296 1.05 123.0413 109.8866 4.5719 8.4894 9.0262 0.3421 \n",
"9445138 0.97 127.0952 113.5070 4.7225 8.7691 9.3236 0.3311 \n",
"9449154 0.37 124.7857 111.4445 4.6367 8.6098 9.1541 0.3373 \n",
"\n",
" dv_ttm total_share float_share free_share total_mv \\\n",
"2091 NaN 31994.807 31994.807 18936.7934 96304.3691 \n",
"9902 NaN 31994.807 31994.807 18936.7934 94064.7326 \n",
"12107 NaN 31994.807 31994.807 18936.7934 98863.9536 \n",
"21450 NaN 31994.807 31994.807 18936.7934 103983.1228 \n",
"26081 NaN 31994.807 31994.807 18936.7934 109422.2399 \n",
"4440 NaN 31994.807 31994.807 18936.7934 147176.1122 \n",
"5462 NaN 31994.807 31994.807 18936.7934 151335.4371 \n",
"11387 NaN 31994.807 31994.807 18936.7934 149095.8006 \n",
"19849 NaN 31994.807 31994.807 18936.7934 143976.6315 \n",
"21982 NaN 31994.807 31994.807 18936.7934 146536.2161 \n",
"... ... ... ... ... ... \n",
"8586274 0.3657 12305.695 6396.000 5762.0400 576398.7538 \n",
"8589108 0.3603 12305.695 6396.000 5762.0400 585135.7973 \n",
"8591964 0.3421 12305.695 6396.000 5762.0400 616269.2056 \n",
"8594806 0.3311 12305.695 6396.000 5762.0400 636573.6024 \n",
"8598822 0.3373 12305.695 6396.000 5762.0400 625006.2491 \n",
"9436606 0.3657 12305.695 6396.000 5762.0400 576398.7538 \n",
"9439440 0.3603 12305.695 6396.000 5762.0400 585135.7973 \n",
"9442296 0.3421 12305.695 6396.000 5762.0400 616269.2056 \n",
"9445138 0.3311 12305.695 6396.000 5762.0400 636573.6024 \n",
"9449154 0.3373 12305.695 6396.000 5762.0400 625006.2491 \n",
"\n",
" circ_mv is_st \n",
"2091 96304.3691 True \n",
"9902 94064.7326 True \n",
"12107 98863.9536 True \n",
"21450 103983.1228 True \n",
"26081 109422.2399 True \n",
"4440 147176.1122 True \n",
"5462 151335.4371 True \n",
"11387 149095.8006 True \n",
"19849 143976.6315 True \n",
"21982 146536.2161 True \n",
"... ... ... \n",
"8586274 299588.6400 False \n",
"8589108 304129.8000 False \n",
"8591964 320311.6800 False \n",
"8594806 330865.0800 False \n",
"8598822 324852.8400 False \n",
"9436606 299588.6400 False \n",
"9439440 304129.8000 False \n",
"9442296 320311.6800 False \n",
"9445138 330865.0800 False \n",
"9449154 324852.8400 False \n",
"\n",
"[1932 rows x 19 columns]\n"
"[2089 rows x 19 columns]\n"
]
}
],
@@ -2386,7 +2551,7 @@
],
"metadata": {
"kernelspec": {
"display_name": "new_trader",
"display_name": "stock",
"language": "python",
"name": "python3"
},
@@ -2400,7 +2565,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.11"
"version": "3.12.11"
}
},
"nbformat": 4,

View File

@@ -83,32 +83,32 @@
"output_type": "stream",
"text": [
" ts_code trade_date close open high low \\\n",
"0 000905.SH 20251121 6817.4103 6955.7485 6986.7784 6817.4103 \n",
"1 000905.SH 20251120 7061.9497 7174.1046 7180.7320 7056.9003 \n",
"2 000905.SH 20251119 7122.7465 7141.2641 7178.1495 7086.1232 \n",
"3 000905.SH 20251118 7151.0176 7215.0302 7230.5416 7118.4085 \n",
"4 000905.SH 20251117 7235.3512 7248.9216 7262.3306 7202.5932 \n",
"0 000905.SH 20260123 8590.1659 8422.3561 8590.1659 8417.7520 \n",
"1 000905.SH 20260122 8387.5950 8355.6781 8396.1328 8337.1950 \n",
"2 000905.SH 20260121 8340.1133 8196.5565 8351.4545 8196.5565 \n",
"3 000905.SH 20260120 8247.8049 8307.6416 8342.8738 8142.1424 \n",
"4 000905.SH 20260119 8287.9470 8199.4986 8318.3703 8195.0890 \n",
"... ... ... ... ... ... ... \n",
"13900 399006.SZ 20100607 1069.4680 1005.0280 1075.2250 1001.7020 \n",
"13901 399006.SZ 20100604 1027.6810 989.6810 1027.6810 986.5040 \n",
"13902 399006.SZ 20100603 998.3940 1002.3550 1026.7020 997.7750 \n",
"13903 399006.SZ 20100602 997.1190 967.6090 997.1190 952.6110 \n",
"13904 399006.SZ 20100601 973.2330 986.0150 994.7930 948.1180 \n",
"14029 399006.SZ 20100607 1069.4680 1005.0280 1075.2250 1001.7020 \n",
"14030 399006.SZ 20100604 1027.6810 989.6810 1027.6810 986.5040 \n",
"14031 399006.SZ 20100603 998.3940 1002.3550 1026.7020 997.7750 \n",
"14032 399006.SZ 20100602 997.1190 967.6090 997.1190 952.6110 \n",
"14033 399006.SZ 20100601 973.2330 986.0150 994.7930 948.1180 \n",
"\n",
" pre_close change pct_chg vol amount \n",
"0 7061.9497 -244.5394 -3.4628 2.089334e+08 3.109687e+08 \n",
"1 7122.7465 -60.7968 -0.8536 1.596187e+08 2.541582e+08 \n",
"2 7151.0176 -28.2711 -0.3953 1.627866e+08 2.567551e+08 \n",
"3 7235.3512 -84.3336 -1.1656 2.022141e+08 3.065400e+08 \n",
"4 7235.4617 -0.1105 -0.0015 2.030506e+08 3.108232e+08 \n",
"0 8387.5950 202.5709 2.4151 3.196901e+08 6.394214e+08 \n",
"1 8340.1133 47.4817 0.5693 2.688052e+08 5.461381e+08 \n",
"2 8247.8049 92.3084 1.1192 2.433044e+08 5.175922e+08 \n",
"3 8287.9470 -40.1421 -0.4843 2.898645e+08 5.881715e+08 \n",
"4 8232.6740 55.2730 0.6714 2.614974e+08 5.609261e+08 \n",
"... ... ... ... ... ... \n",
"13900 1027.6810 41.7870 4.0661 2.655275e+06 9.106095e+06 \n",
"13901 998.3940 29.2870 2.9334 1.500295e+06 5.269441e+06 \n",
"13902 997.1190 1.2750 0.1279 1.616805e+06 6.240835e+06 \n",
"13903 973.2330 23.8860 2.4543 1.074628e+06 4.001206e+06 \n",
"13904 1000.0000 -26.7670 -2.6767 1.356285e+06 4.924177e+06 \n",
"14029 1027.6810 41.7870 4.0661 2.655275e+06 9.106095e+06 \n",
"14030 998.3940 29.2870 2.9334 1.500295e+06 5.269441e+06 \n",
"14031 997.1190 1.2750 0.1279 1.616805e+06 6.240835e+06 \n",
"14032 973.2330 23.8860 2.4543 1.074628e+06 4.001206e+06 \n",
"14033 1000.0000 -26.7670 -2.6767 1.356285e+06 4.924177e+06 \n",
"\n",
"[13905 rows x 11 columns]\n"
"[14034 rows x 11 columns]\n"
]
}
],
@@ -137,7 +137,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.13.2"
"version": "3.12.11"
}
},
"nbformat": 4,

File diff suppressed because it is too large Load Diff

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"
]
}
],