Quantitative analysis skill for the Chinese A-share market using Tushare Pro data and a holiday helper. Use when the user asks for stock screening, stock dia...
数据分析
Kerrystock
试用个股/ETF 的「日历效应(季节性)买卖点分析」端到端工作流。当用户要求分析某只股票或基金的 月度/年度季节性规律、确定基于日历效应的买入卖出时间点与买卖策略、或做"季节性 + 技术指标" 复合选股时使用本技能。本技能串联 westock-data(行情/技术指标/投资日历)、 neodata-financial...
它能做什么
个股/ETF 的「日历效应(季节性)买卖点分析」端到端工作流。当用户要求分析某只股票或基金的 月度/年度季节性规律、确定基于日历效应的买入卖出时间点与买卖策略、或做"季节性 + 技术指标" 复合选股时使用本技能。本技能串联 westock-data(行情/技术指标/投资日历)、 neodata-financial-search(历史区间涨跌幅交叉验证)、wb-finance-skill 的 seasonality.py (季节性信号引擎)与 trade-plan 框架(买卖点:位置判断→分仓→止盈止损→失效条件), 最后用 westock-tool 按策略信号选股。This skill should be used when the user asks for calendar/seasonal effect analysis, buy/sell timing, or seasonal+technical stock screening.
技能文档
Kerrystock — 日历效应买卖点分析工作流
对单只标的(A股/港股/美股个股、ETF、基金)执行「日历效应 → 买卖点」的全链路分析。 核心思想:先用标的自身的历史数据算出真实的月度/年度季节性,再据此定买卖时间点,而不是套用通用经验月份。
依赖技能(运行时经 Skill 工具加载)
| 步骤 | 技能 | 用途 |
|---|---|---|
| 1 | westock-data | 拉 K 线、技术指标(MACD/KDJ/RSI/BOLL)、投资日历/财报披露 |
| 2 | neodata-financial-search | 交叉验证历史区间涨跌幅、季节性强弱、研报观点 |
| 3 | wb-finance-skill | scripts/quant/seasonality.py 的 SignalEngine 生成日历信号 |
| 4 | wb-finance-skill | references/trade-plan.md 买卖点框架(位置→分仓→止盈止损→失效) |
| 5 | westock-tool | 按策略信号选股(如 macd_golden + 日历效应时段) |
五步工作流
步骤 1 — 拉行情与基础数据(westock-data)
- 日线导出(供步骤3):用本技能
scripts/export_kline.pypython3 /scripts/export_kline.py --code sh601138 --start 2018-01-01 --end 2026-07-18 --out 601138_day.csv脚本自动分段(每段约2年)规避 westock-data day K 上限(约2000条),解析 markdown 表(
last=收盘价)并合并为 CSV。 路径可通过环境变量覆盖:WESTOCK_DATA_SCRIPT(指向 westock-data 的 index.js)、NEODATA_SCRIPT(指向 neodata 的 query.py)、WB_FINANCE_QUANT_DIR(指向 wb-finance-skill 的 quant 目录)、NODE_BIN(默认 managed node)。未设置时由scripts/common.py自动探测常见安装位置。 - 技术指标截面(当前状态):
westock-data technical sh601138 --group macd,kdj,rsi,boll→ 保存为 JSON 供步骤4报告。 - 财报披露日历:
westock-data disclosure sh601138(确认中报/年报窗口,作为事件催化点)。
步骤 2 — 交叉验证季节性(neodata-financial-search)
用本技能 scripts/neodata_verify.py(已封装凭证坑,强制 --token 直传,不踩 --save-token 写入失败):
# 1) 先经 connect_cloud_service 工具拿到临时 token(约24h有效)
# 2) 再跑验证(建议显式要"逐月/区间涨跌幅数值")
python3 /scripts/neodata_verify.py \
--query "601138 自上市以来每一年度 1-12 月涨跌幅 季节性统计 哪个月胜率高" \
--token --out verify_601138.md
用于核对「真实月收益/胜率」与步骤3自算结果是否一致,并补充研报观点、业绩趋势。 凭证坑与参数细节见
references/lessons.md第二节;neodata 路径可用NEODATA_SCRIPT覆盖。
步骤 3 — 跑季节性信号引擎(wb-finance-skill·seasonality.py)
用本技能 scripts/seasonal_analysis.py(内部 import seasonality.SignalEngine):
python3 /scripts/seasonal_analysis.py --csv 601138_day.csv --out-json seasonal_stats.json --out-csv seasonal_stats.csv
- 脚本计算月度 close-to-close 收益,按月份统计
n / 均值 / 中位数 / 胜率; - 判定规则(可调):胜率 ≥
--win 0.55且均值 >0 → 做多月份;胜率 ≤--lose 0.45且均值 <0 → 回避月份; - 同时输出年度收益、历史高低点、以及
SignalEngine的日线信号统计(做多/做空/观望天数)。 - 输出
seasonal_stats.json供步骤4生成报告。
步骤 4 — 定买卖点(trade-plan 框架)
依据 wb-finance-skill 的 references/trade-plan.md,按以下顺序输出买卖点计划:
位置判断 → 分仓(试错仓/确认加仓)→ 止盈止损 → 失效条件 → 事件窗口。
详细框架模板与本技能的判定/配色约定见 references/workflow.md。
用本技能 scripts/gen_report.py 生成可视化 HTML 研报(月度/年度/日历三图 + 技术面板 + 策略表):
python3 /scripts/gen_report.py --stats seasonal_stats.json --tech tech.json --name 工业富联 --code sh601138 --out 研报.html
ETF/LOF 用
--label 价、场外基金用--label 净值,使研报"最新价/净值"表述准确(股票默认"收盘")。
步骤 5 — 按策略信号选股(westock-tool)
将日历效应时段与技术指标信号结合,做复合选股。典型命令:
# 策略信号(如 MACD 金叉)
westock-tool strategy macd_golden
# 在 MACD 金叉信号内,按估值二次排序(找到"金叉+低估值"的标的)
westock-tool ranking fin_valuation --within-strategy macd_golden
# 自定义条件(如 PE>0 且 PE<20 且 ROE>15)
westock-tool filter "intersect([PE_TTM>0, PE_TTM<20, ROETTM>15])"
选股命令需经
westock-tool技能加载后执行;实时策略/标签/事件清单用strategy --list/label --list/event --list获取,勿凭记忆。
ETF / 基金适配
场内 ETF 与 LOF(如 sh510300 沪深300ETF、sz161725 招商中证白酒LOF)的 K 线格式与股票完全一致(含 open/high/low/last/volume),脚本无需特殊改动即可直接分析。
- 代码格式:ETF/LOF 需带市场前缀。脚本
--code支持纯数字自动补前缀(沪 5/6/9→sh、深 0/1/2/3→sz);歧义或指数/北交所用--market sh|sz显式指定。# 以下等价:自动补 sz 前缀 python3 /scripts/export_kline.py --code 161725 --start 2015-06-01 --end 2026-07-18 --out 161725_day.csv python3 /scripts/export_kline.py --code sz161725 --start 2015-06-01 --end 2026-07-18 --out 161725_day.csv - 场外基金(无场内交易,仅单位净值):westock-data 无 K 线,改用 neodata 拉净值序列存为 CSV(列
Date,close,缺失的open/high/low用 close 填充、volume填 0),直接喂给步骤3/4。脚本已对缺失 OHLC 做"用 close 填充"的降级兼容。# 场外基金净值CSV(Date,close 两列即可) python3 /scripts/seasonal_analysis.py --csv fund_nav.csv --out-json stats.json --out-csv stats.csv python3 /scripts/gen_report.py --stats stats.json --daycsv fund_nav.csv --name 某基金 --code xxx --label 净值 --out 研报.html - 报告标签:ETF/LOF 用
--label 价、场外基金用--label 净值,使研报"最新价/净值"表述准确(股票默认"收盘")。 - 注意:基金跟踪指数/板块,其日历效应往往体现为所跟踪标的的季节性(如白酒LOF≈白酒板块、沪深300ETF≈大盘季节性),分析时需结合跟踪标的的基本面。
关键约定与坑位
- 踩坑与经验教训汇总见
references/lessons.md(数据源坑、neodata 凭证坑、BOLL 口径、默认月份禁用等),本技能迭代与排错优先阅读。 - 中国配色:涨=红、跌=绿(与欧美相反)。图表与买卖信号一律遵守。
- 季节性是辅助,不是主信号:对强趋势/强基本面标的(如 AI 龙头),须以"业绩+趋势+事件"为主、日历规律为辅。
- 不要用 seasonality.py 的默认 bullish/bearish 月份直接套单只:默认值是 A股通用经验([1,2,3,11,12]多 / [5,6,7,8,9]空),必须用步骤3用标的自身数据算出的真实月份。
- 样本偏差:上市较晚或历史短的标的,某月样本数可能很少(如仅1~2次),结论置信度低,须在报告中标注
n。 - 所有数据为客观市场数据,不构成投资建议;输出须带风险提示。
引用文件
scripts/export_kline.py— 步骤1 K线导出scripts/neodata_verify.py— 步骤2 季节性交叉验证(封装 neodata 凭证坑)scripts/seasonal_analysis.py— 步骤3 季节性统计 + 信号引擎scripts/gen_report.py— 步骤4 研报生成references/workflow.md— 判定规则、trade-plan 模板、配色与报告规范references/lessons.md— 经验教训与踩坑记录(数据源/凭证/BOLL口径/默认月份等)
相关技能
这是 StockEarningCN 的 技能(Skill)。安装本技能,你将获得将自己的持仓通过习惯的AI助手进行更新和统计的能力。目前支持A股、B股、港股和美股。如果要获得API Key,请访问https://www.mystockearning.cn。
Multi-market intelligent stock selection for A-share/HK/US stocks and ETFs. Use when user asks about stock analysis, market scanning, portfolio construction,...
A 股短线(日/尾盘)选股与买点核查清单技能。当用户想用技术分析纪律筛选 A 股短线标的、评估某只股票是否符合「96 原则(九不买+六不卖)/ 下午 2:30 选股法(八层筛选)/ 底部 K 线形态」、或为自选股做纪律化买前/持有核查时使用。覆盖 9 类不买、6 类不卖、12 种底部形态、八层 2:30 筛选、上升趋势研判与心态纪律,并能调用腾讯财经 API 自动拉取涨跌幅/量比/换手率/流通市值等客观指标做初筛,连接 Wind 金融数据 MCP 时还可把九不买
基于 Tushare Pro A 股日线与 Baostock 风格指数生成盘后市场研报。当用户要求分析每日或历史盘面、指数与市场风格、情绪和成交额集中度、赚钱效应与上涨主线、即时及短中期催化、主线细分线路、爆量下跌,或容量上涨、全市场月线平台突破、10:30 前涨停、折扣启动等特征分组时使用;也用于特征分组量化回...
超级股票操盘 Skill —— 面向 A 股个人投资者的全流程操盘智能体 Skill 包。整合 117 个细粒度 Skills 与 26 位数字人专家,覆盖盘前分析、盘中决策、盘后复盘、选股、持仓体检、月度组合管理等完整投资闭环。 何时使用本 Skill:当用户提到「股票操盘」「盘前分析」「盘后复盘」「选股」「持...