Skip to content

Releases: Languangxun/stock-analyzer

stock-analyzer v6.3.0

Choose a tag to compare

@Languangxun Languangxun released this 05 Oct 02:57

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

Choose a tag to compare

@Languangxun Languangxun released this 27 Sep 11:20

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

Choose a tag to compare

@Languangxun Languangxun released this 24 Sep 21:30

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 加速 + 算法细则

Choose a tag to compare

@Languangxun Languangxun released this 19 Sep 10:38

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 全量接入 + 消融覆盖所有对象

Choose a tag to compare

@Languangxun Languangxun released this 19 Sep 10:10

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

Choose a tag to compare

@Languangxun Languangxun released this 19 Sep 09:10

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 · 三档组合策略(稳健/均衡/激进)+ 全库数据修复 + 客户端

Choose a tag to compare

@Languangxun Languangxun released this 16 Sep 20:23

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 · 新三档与激进双引擎

Choose a tag to compare

@Languangxun Languangxun released this 13 Sep 10:18

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%),持有 510 日,吃右尾(单笔 >20% 概率 1017%,>50% 概率 1~4%)
  • 小资金口径:整数手(100 股)、最低佣金 5 元、印花税/过户费建模,买不起自动跳过

其他更新

  • 基准对标:--benchmark 上证/深证/创业板,输出各档超额年化;深证成指/创业板指已入库
  • 插件账户联动:交易记录插件可填总资产 → 每日荐股显示 可买N手 / 持X股;未填/未装/异常自动降级(PLUGIN_API.md 4.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

Choose a tag to compare

@Languangxun Languangxun released this 12 Sep 00:45

全A策略消融 + v4.0.2 研究报告数据压缩包(含 strategy_ablation_per_stock.json / strategy_ablation_summary.json / v4_report.json / v4_factors.json / legacy 等)。

v4.0 全A缓存(1000交易日)

Choose a tag to compare

@Languangxun Languangxun released this 06 Sep 09:29

全市场前复权日K缓存 stock_cache.db(gzip 压缩)。
解压后放到 stock_gui.py 同目录即可离线使用:

gzip -d stock_cache.db.gz

覆盖:约5500只A股代码(含指数/ETF参考),约800万根日K,其中约5000只 >=950 个交易日。
生成日期 2026-09-06。仅为历史数据,不构成投资建议。