TTokenySpace
返回 Skills 列表

Kerrystock

个股/ETF 的「日历效应(季节性)买卖点分析」端到端工作流。当用户要求分析某只股票或基金的 月度/年度季节性规律、确定基于日历效应的买入卖出时间点与买卖策略、或做"季节性 + 技术指标" 复合选股时使用本技能。本技能串联 westock-data(行情/技术指标/投资日历)、 neodata-financial...

#中文
0

安装到 Tokeny(自动)

下载 ZIP
安装"kerrystock"技能
技能信息:
- 名称: Kerrystock
- 标识: kerrystock
- 描述: 个股/ETF 的「日历效应(季节性)买卖点分析」端到端工作流。当用户要求分析某只股票或基金的 月度/年度季节性规律、确定基于日历效应的买入卖出时间点与买卖策略、或做"季节性 + 技术指标" 复合选股时使用本技能。本技能串联 westock-data(行情/技术指标/投资日历)、 neodata-financial...
- 版本: 1.0.0
下载地址:
https://www.tokeny.space/api/skills/kerrystock/download
继续

复制上方内容到 Tokeny 客户端并在会话中发送即可自动安装;也可直接 下载 ZIP并拖动到技能窗口安装。

SKILL.md

Kerrystock — 日历效应买卖点分析工作流

对单只标的(A股/港股/美股个股、ETF、基金)执行「日历效应 → 买卖点」的全链路分析。 核心思想:先用标的自身的历史数据算出真实的月度/年度季节性,再据此定买卖时间点,而不是套用通用经验月份

依赖技能(运行时经 Skill 工具加载)

步骤技能用途
1westock-data拉 K 线、技术指标(MACD/KDJ/RSI/BOLL)、投资日历/财报披露
2neodata-financial-search交叉验证历史区间涨跌幅、季节性强弱、研报观点
3wb-finance-skillscripts/quant/seasonality.pySignalEngine 生成日历信号
4wb-finance-skillreferences/trade-plan.md 买卖点框架(位置→分仓→止盈止损→失效)
5westock-tool按策略信号选股(如 macd_golden + 日历效应时段)

五步工作流

步骤 1 — 拉行情与基础数据(westock-data)

  • 日线导出(供步骤3):用本技能 scripts/export_kline.py
    python3 <skill>/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 <skill>/scripts/neodata_verify.py \
  --query "601138 自上市以来每一年度 1-12 月涨跌幅 季节性统计 哪个月胜率高" \
  --token <tempToken> --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 <skill>/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-skillreferences/trade-plan.md,按以下顺序输出买卖点计划: 位置判断 → 分仓(试错仓/确认加仓)→ 止盈止损 → 失效条件 → 事件窗口。 详细框架模板与本技能的判定/配色约定见 references/workflow.md。 用本技能 scripts/gen_report.py 生成可视化 HTML 研报(月度/年度/日历三图 + 技术面板 + 策略表):

python3 <skill>/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 <skill>/scripts/export_kline.py --code 161725 --start 2015-06-01 --end 2026-07-18 --out 161725_day.csv
    python3 <skill>/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 <skill>/scripts/seasonal_analysis.py --csv fund_nav.csv --out-json stats.json --out-csv stats.csv
    python3 <skill>/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口径/默认月份等)

评论

加载中…