新增一键运行功能

This commit is contained in:
2026-04-29 17:10:21 +08:00
parent f843197e27
commit e1aa6ab179
7 changed files with 173 additions and 168 deletions
+16 -12
View File
@@ -1,5 +1,8 @@
import pandas as pd
from sqlalchemy import create_engine, text
from sqlalchemy import text
import argparse
from stock_config import get_engine
# --- 数据库配置 ---
# 请根据实际情况修改数据库连接信息
@@ -34,13 +37,7 @@ def analyze_and_save_limits(start_date, end_date):
"""
计算并在数据库中落地涨停、炸板详情
"""
engine = create_engine(
"mysql+pymysql://yangfan@8.159.129.156:10836/level?charset=utf8mb4",
connect_args={
"password": "aA%8023321088"
},
pool_pre_ping=True
)
engine = get_engine()
# 0. 初始化检查表结构
init_db(engine)
@@ -61,7 +58,7 @@ def analyze_and_save_limits(start_date, end_date):
df = pd.read_sql(query, engine)
if df.empty:
print(f"⚠️ 在指定区间 ({start_date} -> {end_date}] 内未获取到数据。")
return
return True
# 2. 涨停价计算规则
def calc_limit(row):
@@ -108,19 +105,26 @@ def analyze_and_save_limits(start_date, end_date):
print(f"📊 总计入库: {len(final_df)} 条记录(已自动去重并覆盖历史数据)。")
else:
print("ℹ️ 该时段内全市场无涨停或炸板记录。")
return True
except Exception as e:
print(f"❌ 运行失败: {e}")
return False
# ============================================================
# 用户配置区
# ============================================================
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="计算并保存涨停/炸板数据")
parser.add_argument("--start-date", default="2026-04-29", help="开始日期,格式 YYYY-MM-DD,实际查询为大于该日期")
parser.add_argument("--end-date", default="2026-04-29", help="结束日期,格式 YYYY-MM-DD")
args = parser.parse_args()
# 开始日期:计算从该日期的下一个交易日开始
START_DATE = '2026-04-23'
START_DATE = args.start_date
# 结束日期
END_DATE = '2026-04-24'
END_DATE = args.end_date
analyze_and_save_limits(START_DATE, END_DATE)
analyze_and_save_limits(START_DATE, END_DATE)