Files
MoFin/venv/SKILL.md
T
知微 fa45d8aa5f fix: 小果地址统一node122(兼容LAN+EasyTier)
- health_checklist.json: 192.168.1.122→node122
- ocr_client.py: docstring IP→node122
- docs/market-data-requirements.md: IP→node122
- 所有API调用通过ProxyHandler({})绕过系统代理
  Privoxy对node122:18003返回500,直连正常
2026-06-30 02:56:35 +08:00

179 lines
6.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: alphasift
description: "自动选股 Skill。Use when: 用户要按策略筛选 A 股、列出可用策略、运行双低/放量突破等选股,或保存运行并做 T+N 后验评估。通过 alphasift CLI 或 Python 接口输出候选股票列表。"
---
# alphasift — 自动选股 Skill
按策略筛选、评分并排序 A 股候选股票。
定位:全市场候选发现与横向排序引擎。它站在 `daily_stock_analysis` 这类单股深度分析服务上游;DSA 只是可选 L3 后置分析器,不是主筛选依赖。
## Use When
- 用户要列出当前可用策略
- 用户要按 `dual_low``volume_breakout` 这类策略筛选 A 股
- 用户要拿到结构化 JSON 结果,供后续 agent 继续分析
- 用户要保存选股运行,并在之后用最新快照评估结果
- 用户第一次接触本项目,想用 `alphasift quickstart` 一键看到全市场→候选→排名的最小闭环
## Preconditions
- 当前只支持 `market="cn"`
- 需要先在仓库根目录安装包:`pip install -e .`
- 如需 LLM 排序,可设置 `LITELLM_MODEL``LLM_CHANNELS``LITELLM_CONFIG` 或旧变量 `LLM_API_KEY/LLM_MODEL/LLM_BASE_URL`
- 可直接复用 `daily_stock_analysis` 的 LiteLLM 配置字段,包括 `OPENAI_*``GEMINI_*``DEEPSEEK_API_KEY``OLLAMA_API_BASE`
- 策略 YAML 可通过 `scoring_profile``risk_profile``portfolio_profile``scorecard_profile` 覆盖默认规则
- 策略 YAML 可通过 `event_profile` 配置偏好/规避事件、公告类别和候选上下文来源权重
- LLM 会输出候选行业/主题标签;如候选提供 `industry/concepts/board_heat_score/board_heat_trend_score`,会作为 LLM、主题热度因子与组合分散层锚点;history sidecar 可回填持续性、降温和状态字段。默认组合分散层会用这些标签映射风险桶,降低同一拥挤交易重复占位
- L3 默认启用本地 `scorecard` 后置评分器,也可追加 `dsa``external_http`
- 如需 DSA 后置分析,设置 `DSA_API_URL`,默认调用 `POST /api/v1/analysis/analyze`
- 依赖日 K 的策略会在 L1 后自动对 Top N 候选做日 K 增强
- 日 K 数据源 `DAILY_SOURCE` 支持 `akshare`(默认)、`baostock``auto``auto` 会在 akshare 失败时自动降级到 baostock 作为免费兜底
## Operations
### 1. 列出策略
```bash
alphasift strategies
```
### 1.1 一键演示(无 API key
```bash
alphasift quickstart
alphasift quickstart --strategy balanced_alpha --max-output 8
```
### 2. 执行选股
```bash
alphasift screen dual_low --no-llm
alphasift screen volume_breakout --max-output 10
alphasift screen balanced_alpha --no-llm
alphasift screen capital_heat
alphasift screen balanced_alpha --context "今日券商板块放量,低估值金融获得资金回流"
alphasift --env-file /home/ubuntu/daily_ai_assistant/.env screen balanced_alpha
alphasift screen balanced_alpha --explain
alphasift screen balanced_alpha --candidate-context-file candidate_context.csv
alphasift screen dual_low --no-post-analysis
alphasift screen shrink_pullback --no-llm
alphasift screen dual_low --post-analyzer dsa
alphasift audit
alphasift industry-cache --output data/industry_map.csv --explain
alphasift screen dual_low --no-llm --save-run
alphasift runs
alphasift evaluate <run_id> --explain
alphasift evaluate-batch --limit 20 --explain
alphasift evaluate <run_id> --with-price-path --explain
```
### 3. Python 调用
```python
from alphasift import evaluate_saved_run, evaluate_saved_runs, list_strategies, screen
list_strategies()
screen("dual_low", market="cn", use_llm=False)
evaluate_saved_run("<run_id>")
evaluate_saved_runs(limit=20)
```
## Output
返回 `ScreenResult` JSON,核心字段有:
- `strategy`
- `market`
- `strategy_version`
- `snapshot_count`
- `after_filter_count`
- `picks`
- `llm_ranked`
- `llm_market_view`
- `llm_selection_logic`
- `llm_portfolio_risk`
- `llm_coverage`
- `post_analyzers`
- `daily_enriched`
- `risk_enabled`
- `portfolio_concentration_notes`
- `degradation`
- `snapshot_source`
- `source_errors`
每个 `Pick` 包含:
- `rank`
- `code`
- `name`
- `final_score`
- `screen_score`
- `ranking_reason`
- `risk_summary`
- `price`
- `change_pct`
- `amount`
- `total_mv`
- `turnover_rate`
- `volume_ratio`
- `pe_ratio`
- `pb_ratio`
- `industry`
- `concepts`
- `board_heat_score`
- `board_heat_latest_score`
- `board_heat_trend_score`
- `board_heat_persistence_score`
- `board_heat_cooling_score`
- `board_heat_observations`
- `board_heat_state`
- `board_heat_summary`
- `change_60d`
- `signal_score`
- `macd_status`
- `rsi_status`
- `breakout_20d_pct`
- `range_20d_pct`
- `volume_ratio_20d`
- `body_pct`
- `pullback_to_ma20_pct`
- `consolidation_days_20d`
- `factor_scores`
- `llm_confidence`
- `llm_sector`
- `llm_theme`
- `llm_tags`
- `llm_catalysts`
- `llm_risks`
- `llm_thesis`
- `llm_style_fit`
- `llm_watch_items`
- `llm_invalidators`
- `risk_score`
- `risk_level`
- `risk_penalty`
- `risk_flags`
- `portfolio_penalty`
- `portfolio_flags`
- `post_analysis_status`
- `post_analysis_score_deltas`
- `deep_analysis_status`
- `deep_analysis_summary`
- `deep_analysis_result`
- `deep_analysis_signal_score`
- `deep_analysis_sentiment_score`
- `deep_analysis_operation_advice`
- `deep_analysis_trend_prediction`
- `deep_analysis_risk_flags`
## Boundaries
- 当前没有独立的远程 `get_result` 服务;本地用 `--save-run``runs``evaluate``evaluate-batch` 管理运行记录
- `audit` 用于自检策略 profile 覆盖、已知能力短板和下一步优先级
- `--candidate-context-file` 支持 CSV/JSON/JSONL,通过 `code` 对齐候选级新闻、公告、资金流或研究摘要,只注入当前候选池相关行;可选抓取会附带 `source_count``source_confidence``source_weight_score``context_summary` 和公告类别
- 候选级上下文会识别粗粒度事件标签和负面风险标签,供 LLM 横向排序参考
- `industry-cache` 会缓存行业/概念映射和板块热度字段,并写入 history sidecar;后续加载映射时可回填板块热度滚动趋势、持续性、降温和状态字段,供 LLM 上下文与 `theme_heat` 因子使用
- 组合分散层优先使用 LLM 返回的行业/主题标签,也可回退到候选 `industry` 字段;两者都缺失时不会改变规则分数
- L3 后置分析器只在最终候选上运行,不参与全市场初筛;本地 `scorecard` 默认启用,DSA 只是其中一个可追加后端
- T+N 评估基于保存价和评估时最新快照价,不等同完整复权回测;可扣减交易成本并输出突破/回踩形态后验标签;`--with-price-path` 会额外估算最大回撤和最大浮盈