stock-analysis-plugin 0.2.0__tar.gz → 0.2.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/PKG-INFO +4 -4
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/README.md +3 -3
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/dsh/index.ts +3 -3
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/dsh/package.json +1 -1
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/hermes/schemas.py +3 -3
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/openclaw/index.ts +3 -3
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/openclaw/package.json +1 -1
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/package-lock.json +2 -2
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/package.json +1 -1
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/pi/index.ts +3 -3
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/pyproject.toml +1 -1
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/skills/dragon-head/SKILL.md +1 -1
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/skills/emotion-cycle/SKILL.md +1 -1
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tests/e2e/test_provider_network.py +1 -1
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tests/test_stock_data_failover.py +360 -11
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tests/test_stock_data_short_term.py +109 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tests/test_trading_calendar.py +26 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tools/screener.py +3 -2
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tools/stock_data.py +320 -61
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tools/trading_calendar.py +20 -4
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/.github/release.yml +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/.github/workflows/autofix.yml +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/.github/workflows/ci.yml +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/.github/workflows/publish.yml +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/.gitignore +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/.npmignore +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/AGENTS.md +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/CLAUDE.md +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/docs/hermes-integration.en.md +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/docs/hermes-integration.md +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/docs/openclaw-integration.md +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/docs/pi-integration.en.md +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/docs/pi-integration.md +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/dsh/README.md +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/dsh/cordis.patch.yml +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/hermes/__init__.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/hermes/plugin.yaml +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/hermes/tools.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/openclaw/.npmignore +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/openclaw/README.md +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/openclaw/openclaw.plugin.json +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/requirements-dev.txt +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/ruff.toml +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/schemas/market_review_schema.json +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/schemas/report_schema.json +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/scripts/setup-python.mjs +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/scripts/sync-version.sh +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/scripts/venv-python.mjs +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/skills/bottom-volume/SKILL.md +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/skills/bottom-volume/scripts/gather.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/skills/box-oscillation/SKILL.md +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/skills/box-oscillation/scripts/gather.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/skills/bull-trend/SKILL.md +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/skills/bull-trend/scripts/gather.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/skills/chan-theory/SKILL.md +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/skills/chan-theory/scripts/gather.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/skills/dragon-head/scripts/gather.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/skills/emotion-cycle/scripts/gather.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/skills/event-driven/SKILL.md +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/skills/event-driven/scripts/gather.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/skills/expectation-repricing/SKILL.md +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/skills/expectation-repricing/scripts/gather.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/skills/growth-quality/SKILL.md +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/skills/growth-quality/scripts/gather.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/skills/hot-theme/SKILL.md +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/skills/hot-theme/scripts/gather.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/skills/ma-crossover/SKILL.md +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/skills/ma-crossover/scripts/gather.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/skills/market-review/SKILL.md +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/skills/market-review/scripts/gather.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/skills/one-yang-three-yin/SKILL.md +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/skills/one-yang-three-yin/scripts/gather.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/skills/shrink-pullback/SKILL.md +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/skills/shrink-pullback/scripts/gather.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/skills/stock-analysis/SKILL.md +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/skills/stock-analysis/references/short-term-trading.md +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/skills/stock-analysis/scripts/gather.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/skills/stock-screener/SKILL.md +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/skills/stock-screener/scripts/gather.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/skills/strategy-backtest/SKILL.md +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/skills/strategy-backtest/scripts/gather.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/skills/volume-breakout/SKILL.md +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/skills/volume-breakout/scripts/gather.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/skills/wave-theory/SKILL.md +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/skills/wave-theory/scripts/gather.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/skills/wisburg-research/SKILL.md +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/strategies/examples/bottom_volume.yaml +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/strategies/examples/box_oscillation.yaml +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/strategies/examples/bull_trend.yaml +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/strategies/examples/dragon_head.yaml +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/strategies/examples/emotion_cycle.yaml +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/strategies/examples/ma_crossover.yaml +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/strategies/examples/rsi_oversold.yaml +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/strategies/examples/shrink_pullback.yaml +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/strategies/examples/volume_breakout.yaml +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/templates/_macros.j2 +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/templates/market_review/full.md.j2 +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/templates/stock_analysis/brief.md.j2 +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/templates/stock_analysis/full.md.j2 +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tests/__init__.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tests/_stubs/dsh-tools.ts +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tests/_stubs/openclaw-sdk.ts +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tests/_stubs/typebox.ts +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tests/conftest.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tests/e2e/dsh_tool_spy.mjs +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tests/e2e/host_smoke.mjs +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tests/e2e/test_dsh_e2e.ts +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tests/e2e/test_hermes_llm.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tests/e2e/test_host_to_python.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tests/e2e/test_openclaw_e2e.ts +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tests/e2e/test_pi_e2e.ts +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tests/e2e/test_pi_llm.ts +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tests/test_alert_rules.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tests/test_anomaly_detect.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tests/test_backtest.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tests/test_backtest_advanced.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tests/test_capabilities.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tests/test_diagnostics.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tests/test_dsh_integration.ts +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tests/test_gather.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tests/test_hermes_integration.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tests/test_import_parser.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tests/test_market_regime.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tests/test_market_review.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tests/test_openclaw_integration.ts +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tests/test_pattern.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tests/test_pi_integration.ts +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tests/test_position_context.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tests/test_report_renderer.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tests/test_risk_screening.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tests/test_screener.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tests/test_search_intel.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tests/test_sentiment.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tests/test_signal_tracker.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tests/test_skill_workflows.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tests/test_stock_data.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tests/test_subproc.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tests/test_technical.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tests/test_watchlist.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tests/test_watchlist_context.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tools/__init__.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tools/_subproc.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tools/alert_rules.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tools/anomaly_detect.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tools/backtest.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tools/capabilities.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tools/diagnostics.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tools/gather.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tools/import_parser.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tools/market_regime.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tools/market_review.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tools/name_resolver.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tools/pattern.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tools/position_context.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tools/report_renderer.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tools/requirements.txt +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tools/risk_screening.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tools/search_intel.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tools/signal_tracker.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tools/technical.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tools/volume_analysis.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tools/watchlist.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tools/watchlist_context.py +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tsconfig.json +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/typings/openclaw/index.d.ts +0 -0
- {stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/typings/pi-agent/index.d.ts +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: stock-analysis-plugin
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.2
|
|
4
4
|
Summary: Hermes plugin for stock analysis, screening, and strategy backtesting across A/HK/US/JP/KR/TW markets
|
|
5
5
|
Project-URL: Homepage, https://github.com/Weaxs/stock-analysis-plugin
|
|
6
6
|
Project-URL: Repository, https://github.com/Weaxs/stock-analysis-plugin
|
|
@@ -266,7 +266,7 @@ Agent 会自动调用行情 → 技术面 → 基本面 → 资金面 → 消息
|
|
|
266
266
|
| 工具 | 说明 |
|
|
267
267
|
|------|------|
|
|
268
268
|
| `get_kline` | K 线数据(OHLCV),支持日/周/月线 |
|
|
269
|
-
| `get_quote` |
|
|
269
|
+
| `get_quote` | 实时行情快照(非交易时段返回最近交易日收盘价并以 as_of/stale 标注) |
|
|
270
270
|
| `get_capital_flow` | 资金流向(仅 A 股) |
|
|
271
271
|
| `get_news` | 个股相关新闻 |
|
|
272
272
|
| `get_financials` | 财务指标 |
|
|
@@ -277,8 +277,8 @@ Agent 会自动调用行情 → 技术面 → 基本面 → 资金面 → 消息
|
|
|
277
277
|
| `get_sector_constituents` | 板块成分股查询(仅 A 股,板块名模糊匹配) |
|
|
278
278
|
| `resolve_stock_sectors` | 个股所属板块查询(A 股行业+概念 / 港股 GICS) |
|
|
279
279
|
| `get_market_stats` | 市场统计(涨跌家数、涨停等) |
|
|
280
|
-
| `get_limit_up_pool` | 涨停池/涨停板复盘(连板数、封板资金、炸板次数等,仅 A
|
|
281
|
-
| `get_dragon_tiger` | 龙虎榜(净买额/上榜原因/解读,仅 A
|
|
280
|
+
| `get_limit_up_pool` | 涨停池/涨停板复盘(连板数、封板资金、炸板次数等,仅 A 股;非交易日自动回退到最近交易日并以 requested_date/stale 标注) |
|
|
281
|
+
| `get_dragon_tiger` | 龙虎榜(净买额/上榜原因/解读,仅 A 股;非交易日自动回退到最近交易日并以 requested_date/stale 标注) |
|
|
282
282
|
| `get_hot_stocks` | 全市场人气热搜榜(东财→雪球→百度,仅 A 股) |
|
|
283
283
|
| `get_fundamental_context` | 基本面综合上下文 |
|
|
284
284
|
|
|
@@ -236,7 +236,7 @@ Agent 会自动调用行情 → 技术面 → 基本面 → 资金面 → 消息
|
|
|
236
236
|
| 工具 | 说明 |
|
|
237
237
|
|------|------|
|
|
238
238
|
| `get_kline` | K 线数据(OHLCV),支持日/周/月线 |
|
|
239
|
-
| `get_quote` |
|
|
239
|
+
| `get_quote` | 实时行情快照(非交易时段返回最近交易日收盘价并以 as_of/stale 标注) |
|
|
240
240
|
| `get_capital_flow` | 资金流向(仅 A 股) |
|
|
241
241
|
| `get_news` | 个股相关新闻 |
|
|
242
242
|
| `get_financials` | 财务指标 |
|
|
@@ -247,8 +247,8 @@ Agent 会自动调用行情 → 技术面 → 基本面 → 资金面 → 消息
|
|
|
247
247
|
| `get_sector_constituents` | 板块成分股查询(仅 A 股,板块名模糊匹配) |
|
|
248
248
|
| `resolve_stock_sectors` | 个股所属板块查询(A 股行业+概念 / 港股 GICS) |
|
|
249
249
|
| `get_market_stats` | 市场统计(涨跌家数、涨停等) |
|
|
250
|
-
| `get_limit_up_pool` | 涨停池/涨停板复盘(连板数、封板资金、炸板次数等,仅 A
|
|
251
|
-
| `get_dragon_tiger` | 龙虎榜(净买额/上榜原因/解读,仅 A
|
|
250
|
+
| `get_limit_up_pool` | 涨停池/涨停板复盘(连板数、封板资金、炸板次数等,仅 A 股;非交易日自动回退到最近交易日并以 requested_date/stale 标注) |
|
|
251
|
+
| `get_dragon_tiger` | 龙虎榜(净买额/上榜原因/解读,仅 A 股;非交易日自动回退到最近交易日并以 requested_date/stale 标注) |
|
|
252
252
|
| `get_hot_stocks` | 全市场人气热搜榜(东财→雪球→百度,仅 A 股) |
|
|
253
253
|
| `get_fundamental_context` | 基本面综合上下文 |
|
|
254
254
|
|
|
@@ -147,7 +147,7 @@ export function apply(ctx: Context) {
|
|
|
147
147
|
ctx.tools.register(
|
|
148
148
|
pyTool({
|
|
149
149
|
name: "get_quote",
|
|
150
|
-
description: "获取股票实时行情报价(现价、涨跌幅、量比等)。支持A
|
|
150
|
+
description: "获取股票实时行情报价(现价、涨跌幅、量比等)。支持A股、港股、美股、日股、韩股、台股;非交易时段返回最近交易日收盘价并以 as_of/stale 标注",
|
|
151
151
|
parameters: {
|
|
152
152
|
symbol: { type: "string", required: true, description: "股票代码(A股如600519,美股如AAPL,港股如00700.HK)" },
|
|
153
153
|
},
|
|
@@ -402,7 +402,7 @@ export function apply(ctx: Context) {
|
|
|
402
402
|
description:
|
|
403
403
|
"获取A股涨停池/涨停板复盘——当日涨停个股,含连板数、封板资金、炸板次数、首末次封板时间、所属行业。短线情绪与龙头战法核心数据",
|
|
404
404
|
parameters: {
|
|
405
|
-
date: { type: "string", description: "日期(YYYYMMDD
|
|
405
|
+
date: { type: "string", description: "日期(YYYYMMDD),默认当日;非交易日或未来日期自动回退到最近交易日(返回含 requested_date 与 stale 标注)" },
|
|
406
406
|
},
|
|
407
407
|
script: "stock_data.py",
|
|
408
408
|
argv: (p) => {
|
|
@@ -419,7 +419,7 @@ export function apply(ctx: Context) {
|
|
|
419
419
|
description:
|
|
420
420
|
"获取A股龙虎榜——上榜个股净买额/买入额/卖出额/上榜原因/解读,可按个股过滤",
|
|
421
421
|
parameters: {
|
|
422
|
-
date: { type: "string", description: "日期(YYYY-MM-DD
|
|
422
|
+
date: { type: "string", description: "日期(YYYY-MM-DD),默认当日;非交易日或未来日期自动回退到最近交易日(返回含 requested_date 与 stale 标注)" },
|
|
423
423
|
symbol: { type: "string", description: "A股股票代码(可选,按个股过滤),如 600519" },
|
|
424
424
|
top: { type: "number", description: "返回前N条,默认 20" },
|
|
425
425
|
},
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@weaxs/dsh-stock-analysis",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.2",
|
|
4
4
|
"description": "DeepSeek Harness (dsh) plugin for stock analysis, screening, and strategy backtesting across A/HK/US/JP/KR/TW markets",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -24,7 +24,7 @@ TOOL_SCHEMAS = [
|
|
|
24
24
|
},
|
|
25
25
|
{
|
|
26
26
|
"name": "get_quote",
|
|
27
|
-
"description": "获取股票实时行情报价(现价、涨跌幅、量比等)。支持A
|
|
27
|
+
"description": "获取股票实时行情报价(现价、涨跌幅、量比等)。支持A股、港股、美股、日股、韩股、台股;非交易时段返回最近交易日收盘价并以 as_of/stale 标注",
|
|
28
28
|
"parameters": {
|
|
29
29
|
"type": "object",
|
|
30
30
|
"properties": {
|
|
@@ -246,7 +246,7 @@ TOOL_SCHEMAS = [
|
|
|
246
246
|
"properties": {
|
|
247
247
|
"date": {
|
|
248
248
|
"type": "string",
|
|
249
|
-
"description": "日期(YYYYMMDD
|
|
249
|
+
"description": "日期(YYYYMMDD),默认当日;非交易日或未来日期自动回退到最近交易日(返回含 requested_date 与 stale 标注)",
|
|
250
250
|
},
|
|
251
251
|
},
|
|
252
252
|
},
|
|
@@ -259,7 +259,7 @@ TOOL_SCHEMAS = [
|
|
|
259
259
|
"properties": {
|
|
260
260
|
"date": {
|
|
261
261
|
"type": "string",
|
|
262
|
-
"description": "日期(YYYY-MM-DD
|
|
262
|
+
"description": "日期(YYYY-MM-DD),默认当日;非交易日或未来日期自动回退到最近交易日(返回含 requested_date 与 stale 标注)",
|
|
263
263
|
},
|
|
264
264
|
"symbol": {
|
|
265
265
|
"type": "string",
|
|
@@ -88,7 +88,7 @@ export default definePluginEntry({
|
|
|
88
88
|
|
|
89
89
|
api.registerTool({
|
|
90
90
|
name: "get_quote",
|
|
91
|
-
description: "获取股票实时行情报价(现价、涨跌幅、量比等)。支持A
|
|
91
|
+
description: "获取股票实时行情报价(现价、涨跌幅、量比等)。支持A股、港股、美股、日股、韩股、台股;非交易时段返回最近交易日收盘价并以 as_of/stale 标注",
|
|
92
92
|
parameters: Type.Object({
|
|
93
93
|
symbol: Type.String({ description: "股票代码(A股如600519,美股如AAPL,港股如00700.HK)" }),
|
|
94
94
|
}),
|
|
@@ -363,7 +363,7 @@ export default definePluginEntry({
|
|
|
363
363
|
"获取A股涨停池/涨停板复盘——当日涨停个股,含连板数、封板资金、炸板次数、首末次封板时间、所属行业。短线情绪与龙头战法核心数据",
|
|
364
364
|
parameters: Type.Object({
|
|
365
365
|
date: Type.Optional(
|
|
366
|
-
Type.String({ description: "日期(YYYYMMDD
|
|
366
|
+
Type.String({ description: "日期(YYYYMMDD),默认当日;非交易日或未来日期自动回退到最近交易日(返回含 requested_date 与 stale 标注)" })
|
|
367
367
|
),
|
|
368
368
|
}),
|
|
369
369
|
async execute(_id, params) {
|
|
@@ -380,7 +380,7 @@ export default definePluginEntry({
|
|
|
380
380
|
"获取A股龙虎榜——上榜个股净买额/买入额/卖出额/上榜原因/解读,可按个股过滤",
|
|
381
381
|
parameters: Type.Object({
|
|
382
382
|
date: Type.Optional(
|
|
383
|
-
Type.String({ description: "日期(YYYY-MM-DD
|
|
383
|
+
Type.String({ description: "日期(YYYY-MM-DD),默认当日;非交易日或未来日期自动回退到最近交易日(返回含 requested_date 与 stale 标注)" })
|
|
384
384
|
),
|
|
385
385
|
symbol: Type.Optional(
|
|
386
386
|
Type.String({ description: "A股股票代码(可选,按个股过滤),如 600519" })
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@weaxs/stock-analysis-plugin",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.2",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@weaxs/stock-analysis-plugin",
|
|
9
|
-
"version": "0.2.
|
|
9
|
+
"version": "0.2.2",
|
|
10
10
|
"hasInstallScript": true,
|
|
11
11
|
"license": "MIT",
|
|
12
12
|
"devDependencies": {
|
|
@@ -63,7 +63,7 @@ export default (pi: ExtensionAPI) => {
|
|
|
63
63
|
pi.registerTool({
|
|
64
64
|
name: "get_quote",
|
|
65
65
|
description:
|
|
66
|
-
"获取股票实时行情报价(现价、涨跌幅、量比等)。支持A
|
|
66
|
+
"获取股票实时行情报价(现价、涨跌幅、量比等)。支持A股、港股、美股、日股、韩股、台股;非交易时段返回最近交易日收盘价并以 as_of/stale 标注",
|
|
67
67
|
parameters: {
|
|
68
68
|
type: "object",
|
|
69
69
|
properties: {
|
|
@@ -401,7 +401,7 @@ export default (pi: ExtensionAPI) => {
|
|
|
401
401
|
properties: {
|
|
402
402
|
date: {
|
|
403
403
|
type: "string",
|
|
404
|
-
description: "日期(YYYYMMDD
|
|
404
|
+
description: "日期(YYYYMMDD),默认当日;非交易日或未来日期自动回退到最近交易日(返回含 requested_date 与 stale 标注)",
|
|
405
405
|
},
|
|
406
406
|
},
|
|
407
407
|
},
|
|
@@ -423,7 +423,7 @@ export default (pi: ExtensionAPI) => {
|
|
|
423
423
|
properties: {
|
|
424
424
|
date: {
|
|
425
425
|
type: "string",
|
|
426
|
-
description: "日期(YYYY-MM-DD
|
|
426
|
+
description: "日期(YYYY-MM-DD),默认当日;非交易日或未来日期自动回退到最近交易日(返回含 requested_date 与 stale 标注)",
|
|
427
427
|
},
|
|
428
428
|
symbol: {
|
|
429
429
|
type: "string",
|
|
@@ -24,7 +24,7 @@ python3 scripts/gather.py <symbol>
|
|
|
24
24
|
同时用 resolve_stock_sectors 确认个股所属板块,再用 get_sector_constituents 拉取同板块个股列表——后续「龙头 vs 跟风」的强弱对比都在这个板块池内进行。
|
|
25
25
|
获取不到板块池或池内个股同期表现时,只评估候选股的强势特征,不给出“龙头/龙一”结论。
|
|
26
26
|
|
|
27
|
-
短线情绪与资金席位补充:`get_limit_up_pool`(涨停池的连板数、首末次封板时间、封板资金、炸板次数)用于确认板块内个股的高度与封板质量;`get_dragon_tiger
|
|
27
|
+
短线情绪与资金席位补充:`get_limit_up_pool`(涨停池的连板数、首末次封板时间、封板资金、炸板次数)用于确认板块内个股的高度与封板质量;`get_dragon_tiger`(龙虎榜)用于查看上榜个股的席位净买额与上榜原因。两者在非交易日或未来日期会自动回退到最近交易日的数据(返回含 `requested_date` 与 `stale: true` 标注),解读时以 `date` 字段的实际数据日期为准,不得把回退数据当成请求日当日数据。
|
|
28
28
|
|
|
29
29
|
### 2. 相对强弱验证
|
|
30
30
|
|
|
@@ -17,7 +17,7 @@ description: 市场情绪周期:用市场宽度、涨跌停、成交额和热
|
|
|
17
17
|
python3 scripts/gather.py [A|HK|US]
|
|
18
18
|
```
|
|
19
19
|
|
|
20
|
-
A 股情绪另有两个直接数据源:`get_limit_up_pool`(涨停池:连板梯队高度、炸板率、封板资金)与 `get_hot_stocks
|
|
20
|
+
A 股情绪另有两个直接数据源:`get_limit_up_pool`(涨停池:连板梯队高度、炸板率、封板资金)与 `get_hot_stocks`(全市场人气热搜榜)。`get_limit_up_pool` 在非交易日或未来日期会回退到最近交易日数据(返回含 `requested_date` 与 `stale: true`),情绪判断以其 `date` 字段的实际数据日期为准。
|
|
21
21
|
|
|
22
22
|
### 2. 情绪指标
|
|
23
23
|
|
{stock_analysis_plugin-0.2.0 → stock_analysis_plugin-0.2.2}/tests/e2e/test_provider_network.py
RENAMED
|
@@ -107,7 +107,7 @@ class TestScreenerNetwork:
|
|
|
107
107
|
assert 0 <= sent["score"] <= 100, f"sentiment score out of range: {sent}"
|
|
108
108
|
|
|
109
109
|
def test_screen_a_with_sentiment(self):
|
|
110
|
-
out = _run_cli("screener.py", ["screen", "--market", "A", "--top", "3"], timeout=
|
|
110
|
+
out = _run_cli("screener.py", ["screen", "--market", "A", "--top", "3"], timeout=300)
|
|
111
111
|
assert isinstance(out, dict) and "candidates" in out, f"unexpected shape: {list(out)}"
|
|
112
112
|
assert out["l2_enabled"] is False
|
|
113
113
|
self._assert_sentiment(out)
|