Repository navigation
Releases: Languangxun/stock-analyzer
Releases · Languangxun/stock-analyzer
Release list
stock-analyzer v6.3.0
v6.3.0(2026-10-04)
异动·全市场相似历史(激进/均衡专属,触发改判,可回测)
- 触发:近 20 个交易日内出现「单日|涨跌| ≥ max(自身历史 99.5 分位, 5%)」
或「5日累计|涨跌| ≥ max(自身历史 99.5 分位, 10%)」即视为异动状态(精确逐日
因果分位,无前视)。示例:龙版传媒 2026-09-08 的 5 日 +59.85% 超过当时
历史 99.5 分位 47.38%,稳定触发。 - 全市场相似匹配:
_analog_flag_panel跨股向量化构建因果异动事件表
(约 8.6 万例,构建 ~24s,进程内缓存);按「K线形态(20日对数收益
z-normalize)+ 事件后路径 + 量比 + 换手率(et_shares)+ RSI14 + 20日波动 +
事件 r5」加权距离取 Top50,统计相似事件在「事件后第 k 日」的未来 1/3/5 日
表现与次日封板率。 - 触发改判:风险档非「保守」时,方向明确(次日上行≥55% 且 1/3 日均收正
→BUY;≤45% 且均收负→SELL)则覆盖近端相反信号并改band_algo;样本分歧
维持原策略。激进档相似样本次日封板率 ≥30% 附「可打板」与涨停价提示。
设置→预测参数可关(ini[predict] analog_override=0)。 - 参与回测:因果信号生成器
_sig_analog历史信号并入图表与单股bt_stats,
并进入消融候选池(GUI 与研究脚本 gens、strategy_signals_full、逐股导出、
三档选型),候选池 12 算法 × 3 档 + 多维评分 = 39,可被选中为正式策略。
分析页显示(需求)
- 报告标题改
名称 (代码) [行业],现价后加换手 x.xx%;顶栏信息行与
侧栏同步;腾讯快照解析 f38/f39/f46(换手率/动态PE/PB)。
性能 / 稳定性
tier_load_panel由fetchall()(全库 800 万行 Python 元组,单进程峰值
3.6GB)改游标流式 + SQL 前缀过滤,输出逐元素对拍一致,单进程建事件表
峰值 3.6GB → 505MB,修复消融多 worker OOM。
全量产物重跑(v6.3.0 首批)
- 消融 7236 对象 / 7183 有效、5123s(6 worker);analog 入选:保守 98 /
稳健 132(1.84%)/ 激进 91(1.27%);候选描述性统计:IC1 中位 +0.058
(56.0% 为正)、IC5 中位 +0.041(53.5% 为正)。 - 三档选型刷新 GUI 策略缓存 +
ablation_gui_cache.json+perstock_tier_picks.json; - 逐股导出 6901 只(analog 321 行 / 156 只);标准回测 full/val/bull 三段
(组合数字与上一版一致);dashboard.html重建,消融汇总表新增
「异动相似入选」列。 APP_VERSION=6.3.0;stock_predict.py由build_cli.py重新生成。
资产说明
stock-analyzer-client-v6.3.0-<日期>.zip:客户端(GUI + CLI + 插件 + 空 Key
配置模板 + 全量stock_cache.db)。research_v6.3.0.zip:研究产物(消融/回测批次/每只股回测/仪表盘等;
排除 legacy 与 pkl/npz)。
郑重提示:本工具输出为历史统计推断与回测结果,不构成任何投资建议。
stock-analyzer v6.1.6
v6.1.6(2026-09-27)
每日荐股:「综合(18策略)」
- 下拉「综合(旧评分)」→「综合(18策略)」:移植通达信口径 18 个短线策略(布林突破/断板反包/
均线多头/连板/超跌反弹/回踩/量价齐升…)为自包含实现(stock_gui.py / CLI 同步,build_cli 生成); - 单次全市场扫描(尾部 500 根、乘法前复权、真实换手、逐策略基础过滤,套用荐股权限与股票池),
各策略候选池内 min-max 归一化打分,综合分 = 命中策略数 × 100 + 命中策略均分(共振优先);
列表显示共振数/均分/命中策略,双击行直接分析; - 与源引擎随机 500 只 × 18 策略命中集合对拍全部一致;全A 约 35s(纯本地缓存不联网)。
一致性与仪表盘
dashboard.html默认展示最新「全期 + 新复权口径」批次(此前默认最新 ts,会落到 val/bull
分段批次而与 README 不一致);旧复权口径批次/单股记录/每只股导出统一标注「已作废」
且不参与默认选择;回测/导出产物新增 adj 口径标记,不再靠时间判断;- 「工具→信号胜率」面板与「策略消融」弹窗改用同一引擎与切分(
_bt_segments/_bt_events),
交易/胜率/年化/回撤逐项一致;每只股回测导出同口径; - 旧口径产物已按新口径重跑:全库消融 7179 只 + 三档选型(刷新策略缓存 +
perstock_tier_picks.json)- 每只股回测导出
research/perstock_backtest_v6.1.6_*。
- 每只股回测导出
资产说明
stock-analyzer-client-v6.1.6-<日期>.zip:客户端(GUI + CLI + 插件 + 全量数据缓存),
解压即用;配置为空 Key 模板,首次运行请在设置内填自己的 API Key;research_v6.1.6.zip:回测报告/图表/本地仪表盘/逐对象消融明细与三档选型(排除 legacy 与 .pkl/.npz)。
全部输出仅为历史统计研究,不构成投资建议。
stock-analyzer v6.1.4
v6.1.4(2026-09-25)
AI 网关兼容与配置修复
- AI 请求带自有 UA
stock-analyzer/6.1.4(Cloudflare 会以 error code 1010 拦截通用库 UA),并带稳定会话头x-opencode-session(opencode zen 必需,缺失报 400); - 修复设置「保存并应用」时 ini 被整体重写,导致
base_url/model、[predict]、[picks]、[data]全部丢失的问题(改为读旧配置后合并保存)。
单股买卖点(GUI)
- 消融选中的筹码峰 / 板块轮动信号可在图上回放(此前无展示分支 → 选激进档后没有买卖点);
- 连续同向信号压缩:同一轮机会只保留首个 B/S,不再成串重复;
- 激进档信号密度兜底:所选策略近 250 日信号 <8 个时改用多维评分(沿用该档参数:买点门槛 1 / 冷却 3),震荡区间也能标出足够波段买卖点;面板与报告标注「信号口径」;
- 「工具→信号胜率」改用所选策略的风险参数(此前误用默认档)。
数据与后台
- 后台主动预取未分析股K线:启动 60s 后首轮、此后每小时一轮,当前股/自选 → 样本池 → 全库滚动补齐(跳过北交所/退市股),收盘 15:05 后自动回补当日K线;
stock_gui.ini [predict] auto_prefetch = 0可关。
因子实验室(研究)
backtest_factor_ablation.py新增--db/--out-dir:大样本实验可用独立快照库与独立产物目录,避免与正在运行的程序争用主库;assemble_panel筹码三因子缺失按截面中性值填充(此前约六成个股因价格跑出因果网格被整只丢弃);- 修复
--stage all漏组装面板(panel阶段)导致 Stage 3 直接报错的问题。
资产说明
stock-analyzer-client-v6.1.4-<日期>.zip:客户端(GUI + CLI + 插件 + 全量数据缓存),解压即用;配置为空 Key 模板,首次运行请在设置内填自己的 API Key;research_v6.1.4.zip:全部回测 JSON 与报告产物(含新增 factor_lab 大样本复核产物;逐对象消融明细随包分发,不入仓)。
全部输出仅为历史统计研究,不构成投资建议。
stock-analyzer v6.1.3 · 消融 L2(同行业+行业ETF) + numpy 加速 + 算法细则
v6.1.3(2026-09-19,修订重发)
修正备案:形态窗口 W_WINDOW 统一为 20
- 删除
stock_gui.py模块后段历史遗留的W_WINDOW, TOPK = 10, 10导入期覆盖,运行时W一律取CFG.W_WINDOW=20(设置/ini 可调 5–30);python build_cli.py已重新生成stock_predict.py(diff 仅该两行); - 影响面:单股形态分析与消融中的 L1 信号;三档组合引擎不含 L1,标准回测(full/val/bull)重跑后数字逐项不变(仅时间戳更新);
- 消融按 W=20 重跑:10 算法 6924 对象 201 秒;L2 在选型中占 稳健 7.59%(522/6881)/ 均衡 9.50%(654/6881),高于筹码峰(4.5%)与板块轮动(2.6%/3.3%);
消融新增 L2 对象(同行业 + 行业ETF)
- 每个行业构造一条「行业指数」:优先取同名行业ETF(可直接交易、无成分股停牌噪声),无匹配时用同行业个股等权收益累乘合成;实测 126 个行业中 50 个匹配到行业ETF;
- 信号:行业指数站上 MA20 且 行业 5 日动量 > 0 → BUY;反向 SELL;
- 与
sector_rot(行业之间横截面比强弱)互补:L2 看行业自身的时序趋势。
消融回测 numpy 加速
- OHLC 平行数组每对象只抽一次(10 算法 × 3 档复用);ATR(14) 改
cumsum滑窗 O(N);净值曲线的累计峰值/回撤/胜率、牛熊分段收益全部 numpy 向量化; - 10 算法(含新增 L2)由 v6.1.2 的 9 算法 251 秒降到 181 秒(W=10 口径);W=20 修正后重跑为 201 秒,仍明显更快,结果与纯 Python 实现逐笔等值(已做等值测试)。
算法文档
- README 新增 2.5 三档引擎实现细则(特征公式 / 评分族 / 闸门 / 成交费用 / 指标定义)、2.6 消融十类信号触发条件与多维评分 8 维度权重表、2.7 事件回测口径与选优权重、2.8 numpy 加速清单。
覆盖率(逐对象消融)
- 缓存 7021(ETF 1202)→ 纳入 6924(ETF 1202)→ 有效 6881(ETF 1164),跳过 43、K线<200 排除 97;覆盖率清单写入
summary.coverage可核验。
资产说明
stock-analyzer-client-v6.1.3-20260919.zip:客户端(GUI + CLI + 插件 + 全量数据缓存),已按 W=20 修正后的算法重建,解压即用;配置为空 Key 模板,首次运行请在设置内填自己的 API Key;research_v6.1.3.zip:全部回测 JSON 与报告产物(消融为 W=20 重跑结果,含 >100MB 的逐对象消融明细,故不入仓,随研究包分发)。
全部输出仅为历史统计研究,不构成投资建议。
stock-analyzer v6.1.2 · ETF 全量接入 + 消融覆盖所有对象
v6.1.2(2026-09-19)
ETF 支持(新增)
- 从东财拉取 ETF/LOF 代码表 1491 只(剔除货币/现金类)并回填历史:1202 只有 K 线、1145 只 ≥250 根(452 只 1000+ 根),合计 90.7 万根;
- 回测与荐股新增
etf(仅ETF) 与all_etf(全A含ETF) 两个口径,与原有all/main共四口径;各口径在自己的基数池内做横截面排名,既有全A/主板数字逐一复验相符; - GUI 工具菜单新增 ETF 回测/荐股与「ETF:刷新代码表 + 回填历史」;CLI 新增
--refresh-etf、--universe etf|all_etf;设置内荐股股票池四选一,板块权限新增独立ETF项。
消融覆盖所有对象(重做)
- 不再排除 ETF、门槛降至 200 根,每个对象逐个独立消融,并输出覆盖率清单(纳入/有效/跳过原因/K线不足名单)可供核验;
- 最近一次实测:缓存 7021(ETF 1202)→ 纳入 6924 → 有效 6881(ETF 1164),跳过 43、K线<200 排除 97,8 进程 251 秒;
- 算法分布(稳健档):RSI 19.4%、布林带 17.0%、多维评分 16.0%、KDJ 13.4%、L1 形态 11.6%、MACD 11.0%、筹码峰 5.0%、板块轮动 3.7%、MA 趋势 2.7%。
关键回测结果(数据截至 2026-09-18)
| 口径 | 稳健 | 均衡 | 激进 |
|---|---|---|---|
| 全A(不含ETF) | +17.0% | +35.9% | +55.6% |
| 沪深主板 | +20.3% | +32.6% | +29.2% |
| 仅 ETF | +12.5% | +20.1% | +30.3% |
| 全A含ETF | +29.7% | +46.7% | +36.9% |
- 加入 ETF 后全面变好:全A含ETF 均衡 +46.7%/回撤 -6.9%/Sharpe 0.98,稳健 +29.7%/-8.6%(回撤较全A 收窄);
- ETF 荐股质量最高:胜率 50.9%
52.0%、中位数为正、PF 1.421.45,而个股口径普遍是「胜率<50%、中位为负、靠右尾」;强势段 ETF 均衡 +34.4%/Sharpe 2.10、荐股胜率 65.2%/PF 3.57。
资产说明
stock-analyzer-client-<日期>.zip:客户端(GUI + CLI + 插件 + 全量数据缓存,含 ETF 历史),解压即用;配置为空 Key 模板,首次运行请在设置内填自己的 API Key;research_v6.1.2.zip:全部回测 JSON 与报告产物(含 >100MB 的消融逐股明细,故不入仓,随研究包分发)。
全部输出仅为历史统计研究,不构成投资建议。
stock-analyzer v6.1
v6.1 / v6.1.1(2026-09-19)
标准回测(新增)
- 两口径(
full全A /main沪深主板)× 四类产品(稳健/均衡/激进组合 + 荐股逐笔),backtests/backtest_v61.py,报告写入 README 第三节; - 激进档统一对标科创50(不分账户是否具备科创板权限),每档另附科创50 / 创业板指 / 上证三基准对照;
- 主板激进档重做:原 β 对上证口径经四项过拟合诊断(参数孤峰、随机安慰剂不劣于真实打分、换 blend 口径即转正、2025-2026 结构性崩坏)判定为设计缺陷;改为
blend_mom(动量0.7/低波0.3)+ reb10/top20 后,全期 -24.2% → +29.2%、样本外 -25.7% → +13.0%、强势段 -30.2% → +20.8%、交易 1746 → 9564 笔。
AI 分析升级
- 通用 OpenAI 兼容平台(DeepSeek/智谱/opencode 等)+ 接口地址自定义 + 模型列表自动获取;
- 提示词改为「必须果断给结论」(买卖方向 + 价位 + 仓位);数据上下文补全(筹码分布/多维评估/市场简报/三档闸门);
- 多轮问答会话缓存(同股同模型存 SQLite,数据未变不重复计费,可清空)。
设置与消融
- 设置内新增荐股权限(行业多选 + 板块勾选)与 AI 自动选档(按风险偏好在三档内选一档);
- 消融升级:多指标结合选优(Calmar/PF/胜率/年化 rank 加权),对象新增筹码峰与板块轮动(9 类算法),全程本地计算、AI 不参与。
其他
- 主程序任意位置按键即聚焦搜索框,候选下拉 + 自动补全(缓存加载);
- 仓库整理:回测脚本归档
backtests/,历史结果归档research/legacy/results/,生成类报告归档reports/。
资产说明
stock-analyzer-client-<日期>.zip:客户端(GUI + CLI + 插件 + 全量数据缓存),解压即用;配置为空 Key 模板,首次运行请在设置内填自己的 API Key;research_v6.1.zip:全部回测 JSON 与报告产物;- 单文件 >100MB 的全A消融逐股明细(
strategy_ablation_per_stock.json)随研究包分发,不入仓。
全部输出仅为历史统计研究,不构成投资建议。
v6.0 · 三档组合策略(稳健/均衡/激进)+ 全库数据修复 + 客户端
v6.0(2026-09-17)
**三档组合策略(生产端 + 研究端同源,内嵌 stock_gui.py)
- 稳健:全A 20日动量+20日低波 Top20 / 20日调仓 / 上证MA20
- 均衡:同上 Top20 / 10日调仓 / 上证MA20
- 激进:创业板 60日β Top5 / 10日调仓 / 创业板指MA60
- 全期(2022-09~2026-09-16,相位平均,含滑点/佣金/印花税/整手/涨跌停/退市)
年化:稳健 +3.1%、均衡 +5.7%(超上证 +3.1pp)、激进 +13.7%(超创业板 +30.5pp) - 荐股按风险偏好输出目标持仓,逐笔收益回测见 README 2.4
**数据修复(重要)
- 全库复权口径迁移:此前约九成代码实际存的是不复权价,现统一为后复权
(5449/5495 只成功,1600 根/只) - adjust.k 改为同一交易日 raw/hfq 配对 + 多日中位 + 末根毛刺自动修复/剔除
(修复京东方A等“昨收显示成今日价”问题) - 修复不复权日K URL 缺尾逗号、收盘后当日K可入库
**客户端包 stock-analyzer-client-20260917.zip(258MB)
- stock_gui.py / stock_predict.py(含三档引擎与 --tiers/--picks-backtest)
- plugins、配置模板、README、修复后的 stock_cache.db(VACUUM 压缩)
v5.0 · 新三档与激进双引擎
v5.0 · 新三档与激进双引擎
2026-09-13 定版。本版把研究主线收敛为可复现的「三档 + 基准」体系,新增创业板激进双引擎与小资金方案,并接入插件账户联动。
新三档(保守废弃)
| 档位 | 定义 | 代表成绩 |
|---|---|---|
| 稳健 | 每股消融 Calmar 选型 | val -0.4% / -18.1% |
| 均衡 | 原激进裸配置 + 弱市覆盖(上证冠军) | val +14.3% / -12.5%(Calmar 1.14) vs 上证 +10.3% / -11.3% |
| 激进 | 新策略:创业板双引擎(核心 + 低价彩票) | 大资金(100 万)val +48.7% / -22.2%(Calmar 1.40) vs 创业板指 +47.5% / -25.8%;小资金(5 万,ETF 核心)val +69.6% / -14.0%(Calmar 3.10) |
激进双引擎(backtest_aggr_lottery.py)
- 核心袖套:股票市值 topN 等权(低换手,40 日);小资金用创业板 ETF
sz159915+ MA60 趋势闸门(一手约 334 元) - 低价彩票袖套:低价 30% 内 + 放量(vr>2.0)+ 5 日急跌(< -6%),持有 5
10 日,吃右尾(单笔 >20% 概率 1017%,>50% 概率 1~4%) - 小资金口径:整数手(100 股)、最低佣金 5 元、印花税/过户费建模,买不起自动跳过
其他更新
- 基准对标:
--benchmark上证/深证/创业板,输出各档超额年化;深证成指/创业板指已入库 - 插件账户联动:交易记录插件可填总资产 → 每日荐股显示
可买N手/持X股;未填/未装/异常自动降级(PLUGIN_API.md4.5) - v4 决策层寻优:保守
disp_max=0.5+Rot-T10only(+12.4%)、平衡exit_p=0.50;修正disp_rank全样本排名前视 - 新三档口径:
-tier 稳健/均衡/激进,均衡档默认弱市覆盖,--no-overlay还原裸配置
快速开始
# 新三档 val(上证基准)
python backtest_strategy_portfolio.py --tier all --segment val --benchmark sh000001
# 激进 · 大资金(股票核心 + 彩票)
python backtest_aggr_lottery.py --universe chinext --segment val \
--core-top 20 --core-reb 40 --lot-frac 0.10 --lot-k 10 --lot-hold 10 \
--vr 2.0 --drop -0.06 --capital 1000000
# 激进 · 小资金(ETF 核心 MA60 + 彩票)
python backtest_aggr_lottery.py --universe chinext --segment val \
--core-etf sz159915 --core-etf-ma 60 --lot-frac 0.20 --lot-k 2 --lot-hold 5 \
--vr 2.0 --drop -0.06 --capital 50000附件
stock-analyzer-v5.0-full.zip(开箱即用,478MB):代码 + 文档 + 全A日K缓存stock_cache.db(1.1GB,截至 2026-09-11)+research/v4_preds.pkl预测缓存 + picks/factor_lab 缓存 + 研究结果 JSON;解压后见包内快速开始.txt,装好 numpy/sklearn/lightgbm 即可直接跑research_v5.0.zip:仅研究 JSON(v4 报告/因子、策略消融汇总、组合与激进双引擎结果、荐股回测、退出消融等)strategy_ablation_per_stock.json:全 A 每股三档选型明细(约 89MB)
完整包不含
stock_gui.ini(含 API Key 的本地配置)与plugins/_data私有交易数据。
个人研究项目,输出仅供历史统计参考,不构成投资建议。
v4.0.2 research data
全A策略消融 + v4.0.2 研究报告数据压缩包(含 strategy_ablation_per_stock.json / strategy_ablation_summary.json / v4_report.json / v4_factors.json / legacy 等)。
v4.0 全A缓存(1000交易日)
全市场前复权日K缓存 stock_cache.db(gzip 压缩)。
解压后放到 stock_gui.py 同目录即可离线使用:
gzip -d stock_cache.db.gz
覆盖:约5500只A股代码(含指数/ETF参考),约800万根日K,其中约5000只 >=950 个交易日。
生成日期 2026-09-06。仅为历史数据,不构成投资建议。