| name | stock_box_oscillation_analysis |
| description | Use this standalone stock strategy skill for 箱体震荡 (box_oscillation) analysis. Accept one or more A-share stock codes, Chinese stock names, US stock tickers, or Hong Kong stock codes, collect market/news data, and produce a Codex-readable Markdown report focused on the 箱体震荡 strategy. Source strategy: ~/daily_stock_analysis/strategies/box_oscillation.yaml. |
箱体震荡 Stock Analysis Skill
This skill is a strategy-specific variant of stock_ai_analysis. It uses the same bundled analyzer structure. User config, generated prompts, reports, and final reports for this strategy live under:
~/.stock_analysis/box_oscillation/
Downloaded market-data caches are shared across strategies under ~/.stock_analysis/cache/ so users do not need to fetch the same data repeatedly.
Strategy Source
- Source file:
~/daily_stock_analysis/strategies/box_oscillation.yaml
- Strategy id:
box_oscillation
- Display name: 箱体震荡
- Category: framework
- Aliases: 箱体, 箱体震荡
- Required source tools: get_daily_history, analyze_trend, get_realtime_quote
- Summary: 识别价格箱体区间,在箱底买入、箱顶减仓,适用于横盘震荡行情。
Workflow
- Work only inside this skill directory. Do not import, inspect, or depend on files outside it during normal analysis.
- The script creates and reads user config at
~/.stock_analysis/box_oscillation/.env. Always run config check first:
python scripts/analyze.py --check-config
- First-run hard rule: if
--check-config shows CONFIG_CREATED: yes, explicitly tell the user initialization config is required before any analysis. Do not run --stocks in the same turn.
- Incomplete-config hard rule: if required capability keys are missing for the user request, stop and ask the user to complete configuration using
references/configuration.md before running analysis. Never run partial/incomplete analysis.
- Ask for stock codes, names, or tickers if not supplied. Accept
600487, 北方华创, AAPL, 00700.HK, or mixed input like 北方华创,600487,AAPL,00700.HK.
- Only after configuration is complete, run analysis:
python scripts/analyze.py --stocks <codes>
Use --no-llm for data-only smoke runs.
Use --send-email only after the user confirms email delivery.
Use --no-email for validation runs when EMAIL_ENABLED=true.
- Open the latest prompt files under
~/.stock_analysis/box_oscillation/prompts/, use the current Codex agent to generate the final analysis, and write that analysis to a Markdown file under ~/.stock_analysis/box_oscillation/final_reports/.
- The final analysis must apply the strategy rules below. Do not return a generic stock report when this skill is invoked.
- Send email only from a finalized current-agent report:
python scripts/analyze.py --send-final-report ~/.stock_analysis/box_oscillation/final_reports/<report>.md
If a generated base report exists, merge the final analysis back into the original report before sending:
python scripts/analyze.py --send-final-report ~/.stock_analysis/box_oscillation/final_reports/<report>.md --base-report ~/.stock_analysis/box_oscillation/reports/<base_report>.md
Strategy Rules
箱体震荡战法(Box Range Trading Strategy)
核心逻辑:箱体内部价格在阻力位与支撑位之间反复震荡,
"贴着支撑买、接近阻力卖",通过波段操作获取区间收益。
分析步骤
1. 箱体识别
使用 get_daily_history 获取近 60~120 日数据:
- 箱体顶部(阻力位):近期多次触碰但未有效突破的高点连线。
通常为 20~60 日内3次以上的高点聚集区域。
- 箱体底部(支撑位):近期多次下探但未有效跌破的低点连线。
- 箱体有效性:顶部和底部各至少触碰 2~3 次方可确认。
- 使用
analyze_trend 的 support_levels / resistance_levels 辅助定位。
2. 当前位置判断
使用 get_realtime_quote 获取现价,与箱体边界对比:
- 箱底区域(距支撑 ≤5%):买入/加仓信号,止损设箱底下方 3%。
- 箱中区域(箱体中间 1/3):观望,不主动操作。
- 箱顶区域(距阻力 ≤5%):减仓/止盈信号,无需追高。
3. 量能辅助判断
- 箱底放量企稳:支撑有效的强信号,可较重仓。
- 箱顶缩量滞涨:阻力有效的卖出信号。
- 箱体突破(放量超过均量2倍以上):
- 向上有效突破 → 转为多头趋势策略,新目标 = 箱体高度延伸。
- 向下有效跌破 → 离场等待,原支撑转阻力。
4. 箱体宽度与预期收益
- 计算箱体宽度:(顶部 - 底部) / 底部 × 100%。
- 宽度 < 5%:操作空间过小,不建议参与。
- 宽度 5%~15%:标准箱体,波段操作可行。
- 宽度 > 15%:大箱体,可做更大波段。
5. 假突破识别
- 单日盘中触及阻力/支撑后快速回撤,收盘回到箱内 → 假突破,维持箱体操作。
- 连续两日收盘突破箱体边界,且量能放大 → 真突破,修改策略。
6. 输出要求
- 明确给出箱体顶部价位和底部价位。
- 当前价格所处区间(箱底/箱中/箱顶)。
- 若价格已突破,说明突破方向及新目标。
- 建议仓位与止损位。
评分调整建议:
- 箱底企稳 + 缩量:
sentiment_score +10
- 箱底放量攻顶:
sentiment_score +12
- 箱体向上有效突破:
sentiment_score +15,转趋势策略
- 处于箱顶区域:
sentiment_score -5(不追高)
- 箱底有效跌破:
sentiment_score -15,离场
Guardrails
- Never print real API keys, passwords, webhook URLs, or tokens.
- Ask before overwriting an existing
~/.stock_analysis/box_oscillation/.env value.
- Ask before sending email. Do not enable
EMAIL_ENABLED=true unless the user explicitly wants automatic delivery.
- Do not block the user on optional keys. Offer a skip path and explain the consequence.
- Required-capability keys are not optional. If missing, stop and ask for config instead of running degraded analysis.
- First run always requires an explicit initialization prompt to the user before analysis.
- Never run partial or incomplete functionality; this is mandatory.
- Explain failures by impact: blocking, fallback succeeded, or data-quality degradation.
- Do not call local Hermes or other local agent CLIs from this skill. The current Codex agent is responsible for reading generated prompt files and writing the final analysis.
- Reports and emails must contain the strategy analysis result, not raw prompt context.
Bundled Resources
scripts/analyze.py: deterministic entry point.
scripts/stock_agent/: self-contained helper functions for config, data, search, LLM, and report rendering.
scripts/stock_agent/data.py: strategy-local data extraction code that reuses the shared ~/.stock_analysis/cache/ directory to avoid duplicate downloads across strategies.
assets/env.example: template copied to ~/.stock_analysis/box_oscillation/.env on first run.
requirements.txt: Python dependency list.
references/configuration.md: API-key setup details for this strategy folder.
references/reporting.md: report and interface-status interpretation.