Skip to content
Holylaw7Public

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

竞价研究台 · Auction Lab

下载或克隆本项目到自己的电脑,安装 Python 3.10+,双击 启动系统.cmd,即可在网页「同花顺接入」填写自己的金融 API Key。无需修改源码,不需要项目作者的凭据;项目不附带任何用户密钥或行情数据库。项目可放在任意可写目录,不要求 E 盘。

当前维护者的开发与运行目录为 E:\A股竞价,后续本机修改仍在此目录。原目录保留为备份,迁移检查见 迁移记录。

版本 1.7。本机运行的 A 股竞价、个股趋势、涨停与连板研究系统。Python 3.10+,只使用标准库,无需安装第三方依赖。网页新增独立「同花顺接入」:保存自己的 Key、测试官方连接,再开始研究;指定板块取数、历史回放、每日核验、逐批竞价分析和 AI 切换继续使用。

普通用户运行系统不需要 Node.js、npx 或 Agent Skill。仓库内置项目级 auction-lab-finance Skill,供 Codex 等维护 AI 理解本项目的金融接口、竞价证据链和安全边界;它不是运行依赖,也不会配置或验证 API Key。需要查阅更完整的上游接口资料时,维护者可选安装官方 hithink-finance Skill(npx skills add HiThink-Tech/Financial-API --skill hithink-finance -g --yes)。程序仍由自身的金融 provider 调用官方 API,Key 仍在网页或用户级凭据中配置。详见 同花顺接入指南 与 AI 修改维护手册。

一键启动

Windows 双击 启动系统.cmd,浏览器自动打开 http://127.0.0.1:8765。再次双击会复用版本兼容的已运行服务;若仍有旧后台,启动器会提示先重启。新电脑先安装 Python 3.10+;macOS/Linux 可运行 sh start.sh。

  1. 打开常驻导航「同花顺接入」,通过页面的官方 Key 管理入口申请自己的 API Key,再粘贴到专用密码输入框并保存。金融 Key 与 DeepSeek / OpenAI 的模型 Key 分开配置。完整步骤见 同花顺接入指南。
  2. 点击「测试同花顺连接」。保存本身不启动监测;测试通过只确认当前交易日历接口可访问。随后主动点击「启动监测」。默认重点池是自选 + 上一交易日完整涨停池(含连板)+ 趋势强股,自动去重并显示各来源。
  3. 在「个股查询」按代码查询或加入自选。新增自选从下一轮生效,不清空已有竞价记录。如需更改采集范围、轮询间隔或因子权重,先点「停止」,等待任务结束,保存设置,再「启动监测」。
  4. 建议 09:05 前启动、09:10 前完成关注池和趋势池准备。保持电脑开机、联网、不要休眠;竞价采集窗口为上海时间 09:15:00–09:25:00。
  5. 收盘后默认在 15:10生成当日复盘;也可在「收盘复盘」手动选择已收盘交易日。周末默认复盘最近已收盘交易日。

浏览器关闭后,本机服务仍继续运行。「停止」停止采集,不退出本机服务。重启电脑后需再次双击启动。系统不会执行委托或自动交易。

1.6 新增:指定板块取数与 AI 研判

在「收盘复盘 → AI 辅助研判」搜索官方板块名称(如 PCB)或完整代码,选择最多 3 个板块。点击 「只读取板块数据」,即可查看指数趋势、同行表现和目标日涨停聚集,无需 AI Key;点击 「联网取数并 AI 分析」 则先取数、保存证据,再交给所选模型。本次所选板块独立加入 AI 摘要,不受原板块榜前 30 名限制。

可下载独立板块 JSON;勾选「附上当前 AI 研判」保存 Markdown 后,会保留问题、板块代码、证据编号及取数时间。本次已核验 PCB(885959.TI)与 MLCC(886112.TI)官方板块;其他未匹配的词不会被自动猜成另一个板块。当前成员不是历史成员,成交额不是净资金流;页面说明实际样本和缺失。全无有效证据时不调用模型;09:10–09:26 优先竞价。

完整操作、样本上限和其他 AI 可调用的本机接口见 指定板块研究指南。

1.5 新增:历史竞价回放与每日核验

进入 「策略回测」,点击「运行本地回测」,系统用历史日当时已知的昨日涨停候选和实际接收的竞价批次,按当前七因子算法重放,再与同日收盘完整涨停池对照。09:24:50 为参数研究时点,09:26 为收尾诊断,两者分开展示。运行只读取本机数据,不调用金融或 AI 接口。

在 「策略与接入 → 采集范围」 勾选 「自动收盘复盘与竞价核验」(同一面板底部的 「↻ 重启服务(加载新代码/配置)」 用于代码或 data/config.json 更新后让服务重新加载:它会先停止采集,再由本机重新启动进程,约 3—5 秒后页面自动重连刷新;09:10—09:26 与后台任务运行中会拒绝;不需要再用命令行),选择上海时间 15:10—15:59(默认 15:10)。修改前先停止监测,保存后重新启动并保持运行:原始竞价逐批即时落盘,09:25 过后约一分钟先写出实时排名视图 data/research/daily/YYYY-MM-DD-morning-ranking.md(按 09:26 分钟内新到批次刷新),09:27 再整理当天两时点评分档案并写出 YYYY-MM-DD-auction.md,所选收盘时间生成复盘、核验并更新本机研究。「每日原评分核验」会显示已保存的开关、时间和运行状态;下方实验可以按当前配置重算。每日档案、完整实验均可保存 Markdown / JSON,后续调参不删除原始批次。

冻结档案只写一次,调参和换权重都不会重写它。若某日整日不可评分确实来自此后修复的归一化或实现缺陷,可运行 python tools/rebuild_daily_ranking.py --date YYYY-MM-DD --reason "……" 生成独立校正版本(只读本机 SQLite、不联网):原档案保持不变,校正版另带原因、被校正身份与所用引擎摘要,15:10 核验随后只把收盘标签加到重建分数上。详见 回测指南。

调参需要至少 30 个有效日期、300 个完整股票日,开发集正负结果各至少 30 个。较早日期训练和滚动验证,最后 20% 日期留作独立检验;最多比较 64 组权重,并标记重复使用保留日期的实验。建议不会自动替换实盘配置。外部 AI 可读取专用开发集并提交待核验权重建议,不能利用保留期结果反复调参。

当前核查状态: 本机已留存 2026-09-21 真实交易日 09:15:00—09:24:57 的 183 个连续 live 批次与 4 个 09:25 终态批次(请求 90 只代码,77 只昨日涨停候选全部有观察)。当日冻结档案因上游阶段命名不在白名单而整日不可评分,已按当日原批次重建为独立校正版本,标 method=replayed,不是当时页面已发布的原分;其余交易日仍只有演示记录。一个交易日加未知的收盘结果远低于 30 日、300 股票日门槛,仍不能完成有效七因子调参。 已存十日涨停池可计算延续基线,但这不是算法命中率。官网快照接口没有历史日期参数,不能补回过去未采集的竞价;有合法外部历史数据时可通过 JSON 导入。详见 历史回放、每日核验与导入指南。

1.4 新增:情绪结构与官方补充观察

进入「收盘复盘」,读取已保存报告,即可看到最近十个交易日连板矩阵、封单留存分布、官方涨停原因原文分布。旧报告的这些统计在本机计算,不新增行情请求,也不因浏览就改写报告版本。

生成复盘(含自动收盘复盘)时会一并读取该日的短线竞价风向标、全部龙虎榜、机构榜和游资榜,最多四个业务分项;分项失败或未就绪只写入报告警告,不影响复盘本身。需要重试或在晚间刷新(龙虎榜通常在收盘当晚才发布)时,确认当前报告日期后点击 「联网补充官方观察」。正常网络重试可能增加实际 HTTP 次数。

补充完成后再点击 「保存 Markdown ↓」,情绪结构与可用官方观察会写入同一份日报。联网补充会形成新报告版本,原 AI 文字不再适用于新版本;需要 AI 附录时,请重新生成对应报告的分析后保存。

  • 风向标展示官方样本的平均竞价涨幅、中位数和上涨占比,不能当作全市场统计,也不加入原竞价分数。
  • 龙虎榜按全部/机构/游资及 1 日/3 日/未知区间分别展示;重复记录保留标注,不跨榜相加。净买入只代表龙虎榜记录,不能当作板块主力净流入。
  • 仅允许已有原始交易日历证据的已收盘真实报告补充;09:10–09:26 优先竞价,演示模式不调用真实接口。失败、未就绪和日期异常分别提示,缺值不补零。
  • 接口限流时显示冷却状态,已有数据仍可浏览。官网说明目前不限制累计调用次数,但会动态限流;这不等于无限频率或刷新时效保证。

完整步骤、统计公式和官网示例差异见 1.4 官方指南升级说明。

保存复盘、历史对比与就绪检查

在「收盘复盘」确认当前显示的报告日期,点击 「保存 Markdown ↓」。系统先把文件写入当前项目的 data/reports/YYYY-MM-DD.md,成功后显示完整路径并提供下载。浏览器是否弹出另存为、自动下载或直接打开,受浏览器设置影响;页面提示本机保存成功后,即使没有弹出下载窗口,文件也已在上述目录。

  • **保留 AI 文字:**先选择 DeepSeek / ChatGPT,为当前报告生成文字分析,再勾选「附上当前 AI 研判」保存。文件另存为 YYYY-MM-DD-with-ai-deepseek.md 或 YYYY-MM-DD-with-ai-openai.md。系统核对日期、模式和报告版本,避免把旧回答放进新报告。
  • **读取历史:**从「本机历史报告」选择日期,点击「读取历史」。这只读取本机留存数据,不重新请求行情;要重新取数才点击「联网生成复盘」。日期输入框本身不会改变当前显示的报告。
  • **比较两日:**在「两日复盘对比」选择更早的一份报告,点击「开始对比」。查看涨停池共同股、新出现股、退出股和板块变化后,可勾选「保存时附上本次对比」。保存时按所选本机报告核算,不消耗行情请求。
  • **检查采集准备:**在「实时竞价」展开「盘前就绪检查」,查看日历、关注池、监测开关、接收时效及终态。点击「重新检查」只检查本机已知状态,不测试外部 API 授权,也不补采缺失竞价。

报告保留原始日期、推断标记、覆盖率和缺失原因,并附下一交易日观察清单。两期池都完整才计算新出现/退出;共同两期涨停不等于期间每天连板,板块量价变化不等于资金净流入。完整操作与故障处理见 报告保存与历史对比。

实时竞价如何工作

每批最多 100 只证券:请求一批 → 保存原始数据 → 更新这一批因子 → 发布最新排名 → 请求下一批。不等待整个股票池读完,也不等待 09:25 才开始算。

  • 09:15–09:20:观察可撤单阶段的溢价、竞价金额、换手和量比,积累前段金额峰值。上游常在开盘几秒后就不再下发竞价量比,09:24:50 主时点会用同一会话内、600 秒以内的最后有效量比做有界携带并在因子与质量提示里标注来源与年龄;超过 600 秒或换日后仍保持缺失,不用其他字段替代。
  • 09:20–09:25:连续加入近两分钟价格斜率、对前段峰值的金额留存,边读边排名。
  • 09:25:现有排名立即可查看;终态复核窗口延长到 09:26:50(约 110 秒)。官方 matched/final 可能先返回旧值(2026-09-23 实测 76 只里 54 只终值更晚才落定),所以即使全部代码已取得一次终态,仍按轮继续复核并采用最新值、逐批留证。缺失仍标记,不等待无限重试。终态未到时,临近结束 30 秒内的最后有效排名标为“待终态核验”。
  • 启动过晚、断网、未就绪、缺字段、长时间无新观察会降低覆盖率,不能伪装为完整十分钟。

默认请求最小间隔 0.5 秒,股票池轮询目标 3 秒。目标不等于上游刷新承诺。例如 5,000 只至少 50 批,仅请求间隔就需约 25 秒,还要加网络耗时;重点池更适合实时跟踪。界面显示真实一轮耗时、采集覆盖和每股观察轨迹。

右侧「个股观测」整块面板会随页面滚动保持在视口内跟随:你往下翻排名表时它仍然可见;内容高于视口时由面板内部自行滚动。面板里的观测流水默认跟随最新:新批次到达时平滑滑到最新一条,行内标注该条是实时还是终态,并显示共采集多少次。滑轮滚动不会打断跟随,下一批数据到达时窗口会自动滑回最新;需要停下来查历史时点「跟随最新」按钮暂停,暂停期间按钮显示未跟随的新观测条数,再点一次回到最新。窗口只跟着本地接收的原始观测,不新增行情请求,也不会用收盘行情补造缺失记录。

官方竞价时间戳是“响应组装时间”,没有公开行情发生时间;系统不能保证交易所级延迟、逐笔完整度或硬性 09:25:00 收到终态。它保证本机处理逐批进行,AI 不阻塞评分。

能看什么

页面 功能
实时竞价 强弱排名、连板筛选、七因子明细、个股观察曲线、覆盖与延迟
个股查询 输入股票代码,查看独立日线趋势、四因子强弱分及本机已有竞价观察;管理自选
趋势强股池 最近已收盘日的有限候选筛选、入选理由与覆盖;可加入自选或直接查询
收盘复盘 涨跌家数、成交额、涨跌停/炸板池、涨停强弱、情绪结构;自动附带风向标及龙虎榜(可手动重试补充);Markdown 保存、历史读取与两日对比
连板趋势 近十个交易日完整涨停池、严格连板梯队、逐日晋级与强势股延续
日线趋势 涨停强度前 20 只:前复权 MA5/10/20、近 5 日涨幅、相对量能、20 日最大回撤
板块分析 全行业/概念有效行情排名;前 30 强板块的涨停及连板归属
AI 辅助研判 一键切换 DeepSeek / ChatGPT(OpenAI API),也支持自定义兼容服务
策略回测 每日冻结评分与收盘核验、当前算法历史回放、因子实验、按时间分区检验、外部历史导入与开发集导出
同花顺接入 保存自己的金融 Key、显式测试官方连接;与模型 Key 分离
策略与接入 因子权重、股票池、轮询间隔和模型配置

真实主力净资金流目前不可用。 官网主力资金模块仍注明暂未开放外部接入。现有板块榜展示涨幅与成交额参与度;新增龙虎榜是上榜记录净买入,两者都不冒充板块资金净流入。后续真实资金数据可通过 CapitalFlowSource 扩展协议接入,见数据文档;目前没有安装第二个数据源。

复盘选历史日期时,不会把当前全市场快照冒充历史市场宽度。没有留存的历史盘面指标显示缺失;历史板块行情默认只采集固定 30 个行业样本并标明覆盖,不声称历史全市场全板块齐全。

休市日实测发现快照时间可能为查询当天。仅当日历满足严格条件、目标是最近收盘交易日时,系统可作明确标记的日期归属推断;保留原始时间,报告显示“部分数据需核验”,不把推断写成已证实。

按代码查询与关注

在「个股查询」输入 600519、000001 或 600519.SH。系统使用官方证券搜索,只接受精确 A 股匹配;不按代码前缀猜交易所,也不把模糊名称匹配当作确认。存在多个匹配时须使用完整代码。代码是文本,保留 000001 的前导零。

「查询分析」只做独立研究,不会自动加入关注;点击「加入关注」才修改自选。批量自选支持逗号、空格或换行,每次1–50只。09:10–09:26优先保障竞价,此时每次仅允许加入1只。移除只取消自选来源;仍属于昨日涨停或趋势强股池的股票会继续监测,已有记录保留。

个股日线默认截止最近已收盘交易日,也可选历史交易日;本机竞价观察显示自己的会话日期。两种日期可能不同,不能把今天竞价当作历史日的竞价。没有采集过的股票显示缺失,晚加入不会补回早前未观察的十分钟。

09:10–09:26内提交个股查询,会先展示本机已有竞价观察,日线请求延后到09:27以后自动执行;页面仍持续接收竞价更新。同一时刻只处理一个个股查询任务,保护时段的新查询会替换尚未执行的上一次延后查询。趋势池手动刷新在保护时段不可启动,自动筛选遇保护时段会中断,之后重试。

趋势强股如何入池

趋势池优先使用同截止日报告的成交额活跃股,再补最近5个交易日完整涨停池;没有可用报告则使用近期涨停池。最多检查60只、保留30只,属于有限候选筛选,不是全市场扫描。自动筛选排除ST、退市、无效代码及无法确认名称的候选。

入选要求:前复权收盘价 > MA5 > MA10 > MA20、近5交易日涨幅大于0且不超过30%、最近20交易日收盘最大回撤不超过15%。筛选分用于候选排序;它与个股日线强弱分、竞价七因子分是三套不同公式,不能直接比较。公式、权重覆盖与缺值规则见策略文档。

趋势池按截止日缓存;收盘复盘完成后会再刷新,纳入报告中的活跃非涨停股。已完成全部候选、仅因日期推断或短历史而显示partial的结果也可复用,重启不会因此重复下载整批日线;中断和实际请求失败另行处理。下一交易日的候选池不会反向替换当前竞价会话所使用的昨日趋势池:本次会话用的昨日池副本另存为 data/trend-pool-session.json,所以即使收盘刷新之后重启服务,同一交易日的关注池仍按原会话的昨日趋势来源重建,不会悄悄少掉趋势强股。日线使用前复权,后续公司行动可能使历史序列修订,并非当时冻结的回测版本。

独立 AI 助手与接口切换

双击 启动AI助手.cmd,打开 http://127.0.0.1:8766。这是独立程序,主行情系统未启动时也能普通聊天;可同时运行两个程序。

  1. 选择 DeepSeek,在密码框粘贴该服务的 API Key,点击保存。地址和模型已预设,无需填写。
  2. 点击「测试连接」检查授权与模型列表,再发送问题开始聊天。测试不会生成回答。
  3. 要使用 ChatGPT(OpenAI API),切换服务商,保存 OpenAI API Key。两家的 Key、模型和聊天记录分别保留,之后可直接切换。
  4. 需要分析竞价或复盘时,先加载并预览盘面摘要,再勾选随消息发送。摘要保留日期、缺失项和演示标记;主程序未运行时可读取最近已保存的收盘报告,明确标为缓存。

主系统「策略与接入」也支持同一组服务商配置;「AI 辅助研判」使用当前选中的服务。正在执行的请求保持提交时的服务商,切换影响后续新请求。模型只负责解释,不改变数字评分和排名,也不阻塞竞价采集。

这里的 ChatGPT 接入使用 OpenAI API Key,不使用网页账号密码或登录状态。每家 API 的授权和费用由对应服务商管理。金融数据 Key 与 AI Key 不通用。新助手不附带 DeepSeek/OpenAI Key,也不声称已完成你的账户调用验证。

用户级 AI 配置保存在 %APPDATA%\hithink-finance\ai-profiles.json,不放入工程和分发包。页面不回显密钥。原有自定义模型配置会兼容读取为「自定义兼容服务」。自定义 Base URL 应止于版本目录,例如 https://服务域名/v1;模型地址改变后不会带上旧地址的密钥。

另提供 AI助手独立版.zip,解压后可单独启动;不含密钥或聊天记录。

完整操作、故障排查、数据发送范围和 AI 二次开发说明见 独立 AI 助手指南。

数据与报告在哪

  • data/market.sqlite3:原始竞价批次、复盘记录,WAL 模式;实盘与演示按 mode 隔离。
  • data/research/:每日评分及核验版本、不可覆盖的实验档案、历史导入、已用保留日期台账与外部参数建议;完整说明见 回测指南。
  • data/sector-research/:按证据编号保存的指定板块数据及报告版本指针;不改原复盘,不包含密钥。
  • data/reports/YYYY-MM-DD.json:完整复盘、原始来源、缺失说明,便于 AI 复用。
  • data/reports/YYYY-MM-DD.md:人可阅读的报告。
  • data/reports/YYYY-MM-DD-with-ai-deepseek.md / YYYY-MM-DD-with-ai-openai.md:附对应服务商分析的报告;自定义服务后缀为 custom。
  • data/reports/demo/:演示报告单独保存,不覆盖实盘同日期报告。
  • data/ai-reviews/live/YYYY-MM-DD-服务商.json:当前版本收盘报告的 AI 文字归档及日期/模式/版本信息,不含密钥;演示使用 demo 子目录。
  • data/config.json:不含密钥的策略配置。
  • data/stock-metadata.json:官方核验过的代码、名称及解析来源。
  • data/trend-pool.json:趋势池截止日、候选覆盖、筛选分和入选原因。
  • data/trend-pool-session.json:本次竞价会话使用的昨日趋势池副本,仅用于同日重启后保持原会话关注来源;日期与会话上一交易日不符时忽略。
  • data/stocks/完整代码-YYYY-MM-DD.json:独立个股日线研究,例如 600519.SH-2026-09-18.json。
  • data/ai-messages.json:独立助手按服务商分隔的本机聊天记录;界面可清空当前服务商记录。
  • data/startup.log:启动故障日志,不记录请求正文或凭据。
  • 页面「保存 Markdown ↓」先本机落盘,再提供下载;「导出 JSON」下载当前复盘。

系统不会凭空补回未采集过的竞价序列;官方竞价快照接口没有历史日期参数,也不提供十分钟逐笔回放。已经采集的同日数据可在服务重启时恢复;历史批次可用于本机研究,外部导入须有真实时间、单位与来源声明。

演示与验证

「运行模拟演示」将合成的十分钟竞价压缩到约 18 秒,用于检查增量计算、页面刷新及最终状态。界面显著显示 DEMO,无实盘信号。它不会自动替代失败的真实行情。

双击 验证系统.cmd,或在项目目录运行 python -m unittest discover -s tests -v。离线测试覆盖接口契约、分页、失败处理、时间边界、增量计算、连板口径、复盘日期以及本机访问边界。离线通过不代表账户权限已验证,也不代表交易时段实时验收已完成。 交付时具体状态见 验收记录。

文档导航

因子为可解释的研究起点;已提供历史检验流程,但真实竞价样本不足,尚未证明策略有效性。分数不是涨停概率或收益承诺;结果识别实验不等于交易收益回测。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages