闲社服务运行正常AI智能体自动化平台
s

股票分析

技能标识:stock-analysis

分析任意股票的技术指标和趋势,或修改 TradingAgentsV2 中的分析师节点。当用户需要分析某只股票、查看技术指标、获取市场趋势判断时,使用独立分析脚本;当需要新增/修改分析师节点时,参考架构模板。

作者:admin | 来源记录:ClawHub
登记来源
ClawHub
版本
V 1.0.0
检测标记
后台标记通过
免费
免费获取
4
收藏
来源与检测标记为平台登记信息,并不代表已展示可复核的检测报告。使用前请核对版本、依赖和所需权限,建议先在隔离环境中运行。
概述
安装方式
版本历史

股票分析

股票分析技能

快速分析(独立脚本)

脚本位置:.cursor/skills/stock-analysis/analyzestock.py(项目根目录也有一份副本 analyzestock.py)

当用户要求分析某只股票时,直接执行此脚本:

bash
python .cursor/skills/stock-analysis/analyze_stock.py <股票代码> [选项]

参数

参数说明默认值
symbol (必填)股票代码,如 META, AAPL, 0700.HK, TSLA-
--date, -d
分析日期,格式 YYYY-MM-DD | 今天 | | --days, -n | 回看天数 | 90 | | --indicators, -i | 逗号分隔的指标列表,或 all | 8个核心指标 |

示例

bash
python .cursor/skills/stock-analysis/analyze_stock.py META
python .cursor/skills/stock-analysis/analyze_stock.py AAPL --date 2025-02-20
python .cursor/skills/stock-analysis/analyze_stock.py 0700.HK --days 60
python .cursor/skills/stock-analysis/analyzestock.py TSLA -i rsi,macd,atr,close50_sma
python .cursor/skills/stock-analysis/analyze_stock.py NVDA -i all

数据源(多源容灾)

脚本按以下优先级获取数据,自动容灾切换:

  1. 1. Stooq(免费、无需API key、不限速)
  2. Yahoo Chart API(直接 HTTP 请求)
  3. yfinance(Ticker.history)
  4. 本地缓存(tradingagents/dataflows/data_cache/ 中已有的 CSV)

成功获取的数据会自动缓存到 data_cache/ 目录。

报告输出内容

  1. 1. 近期行情 - 最近 15 个交易日 OHLCV + 涨跌统计
  2. 技术指标 - 每个指标的时间序列趋势
  3. 综合分析 - 趋势判断、动量分析、波动率分析、短期信号
  4. 指标汇总表 - 所有指标的当前值和信号判断

分析逻辑

脚本内置的分析逻辑对应 market_analyst.py 的 prompt:

  • - 趋势判断: 基于价格与 50SMA/200SMA 的位置关系(多头/空头排列 + 金叉/死叉)
  • 动量分析: RSI 超买超卖(70/30 阈值)+ MACD 与信号线交叉 + 柱状图方向
  • 波动率: ATR 占股价比例 + 布林带位置
  • 短期信号: 价格与 10EMA 的关系

支持的全部指标

close50sma, close200sma, close10ema,
macd, macds, macdh,
rsi,
boll, bollub, bolllb,
atr,
vwma

依赖

yfinance, stockstats, pandas, requests



项目架构(LangGraph 分析师节点)

tradingagents/
├── agents/analysts/ # 分析师节点
│ ├── market_analyst.py # 市场/技术分析
│ ├── fundamentals_analyst.py # 基本面分析
│ ├── news_analyst.py # 新闻分析
│ └── socialmediaanalyst.py # 社交媒体情绪分析
├── dataflows/
│ └── interface.py # 数据接口(工具函数定义)
└── graph/
└── trading_graph.py # LangGraph 交易图

分析师节点结构

每个分析师遵循统一模式:createxxxanalyst(llm, toolkit) -> node_function

核心模板

python
from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder
from langchain_core.messages import HumanMessage
from ...dataflows.interface import getmarkettype

def createxxxanalyst(llm, toolkit):
def xxxanalystnode(state):
currentdate = state[tradedate]
ticker = state[companyofinterest]
markettype = getmarket_type() # CN 或 US

# 1. 根据 markettype 设置 systemmessage 和 tools
if market_type == CN:
system_message = ...
tools = [toolkit.cntool1, toolkit.cntool2]
else:
system_message = ...
if toolkit.config[online_tools]:
tools = [toolkit.online_tool]
else:
tools = [toolkit.offlinetool1, toolkit.offlinetool2]

# 2. 构建 prompt(CN/US 可分别定义或共用)
prompt = ChatPromptTemplate.from_messages([
(system,
你是一个有帮助的AI助手,与其他助手协作完成任务。
使用提供的工具来推进回答问题。如果你无法完全回答,没关系;
其他拥有不同工具的助手会在你停下的地方继续帮忙。
你可以使用以下工具:{toolnames}\n{systemmessage}
供参考,当前日期是 {current_date}。我们正在分析的公司是 {ticker}),
MessagesPlaceholder(variable_name=messages),
])
prompt = prompt.partial(
systemmessage=systemmessage,
tool_names=, .join([t.name for t in tools]),
currentdate=currentdate,
ticker=ticker,
)

# 3. 调用 LLM
chain = prompt | llm.bind_tools(tools)
messages = state[messages].copy()

# 工具调用次数限制(防止无限循环)
toolcallcount = sum(
1 for msg in messages
if hasattr(msg, toolcalls) and msg.toolcalls
)
if toolcallcount >= 3:
finalprompt = ChatPromptTemplate.frommessages([
(system, system_message + \n\n重要提醒:请基于已获取的信息生成最终报告,不要再调用任何工具。),
MessagesPlaceholder(variable_name=messages),
])
result = (final_prompt | llm).invoke(messages)
else:
if not (messages and getattr(messages[-1], role, None) == user):
messages.append(HumanMessage(content=f请分析{ticker}的相关信息,并调用相关工具获取数据。))
result = chain.invoke(messages)

# 4. 返回结果(key 与 state schema 对应)
return {
messages: [result],
xxx_report: result.content,
}

return xxxanalystnode

State 返回字段映射

分析师返回 key说明
marketanalystmarketreport技术指标与趋势分析
fundamentalsanalyst
fundamentalsreport | 财务与基本面分析 | | newsanalyst | newsreport | 新闻与公告分析 | | socialmediaanalyst | sentiment_report | 社交媒体情绪分析 |

可用技术指标(市场分析师)

指标名称必须与以下精确匹配,否则工具调用会失败:

类别指标说明
移动平均线close50sma50日简单移动平均线
close200sma | 200日简单移动平均线 |
| | close10ema | 10日指数移动平均线 |
| MACD | macd | MACD 值 |
| | macds | MACD 信号线 |
| | macdh | MACD 柱状图 |
| 动量 | rsi | 相对强弱指数 |
| 波动率 | boll / bollub / bolllb | 布林带(中/上/下轨) |
| | atr | 平均真实波幅 |
| 成交量 | vwma | 成交量加权移动平均线 |

选择指标时最多 8 个,避免冗余(如不要同时选 rsi 和 stochrsi)。

数据工具对照表

分析师A股(CN)工具美股(US)在线工具美股离线工具
市场分析getaksharedata / getaksharedataonlinegetYFindataonlinegetYFindata
getstockstatsindicatorsreport / online | getstockstatsindicatorsreportonline | getstockstatsindicators_report

标签

skill ai

通过对话安装

以下为平台配置的接入选项,并非逐项实测通过。能否安装取决于客户端支持、技能来源和运行环境:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 stock-analysis-lianghua-1776299085 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 stock-analysis-lianghua-1776299085 技能

通过命令行安装

skillhub install stock-analysis-lianghua-1776299085

下载

⬇ 下载 stock-analysis v1.0.0(免费)

文件大小: 12.44 KB | 发布时间: 2026-4-16 16:42

v1.0.0 最新 2026-4-16 16:42
Initial release of stock-analysis skill

- Provides analysis of any stock's technical indicators and trends using a standalone Python script.
- Supports quick CLI analysis with customizable parameters (symbol, date, days, indicators).
- Implements multi-source data fetching with automatic failover and local caching.
- Outputs structured reports: recent market activity, indicator trends, comprehensive analysis, and summary tables.
- Integrates with TradingAgentsV2 as an analyst node, following a unified template for easy extension or modification.
- Includes detailed instructions for customizing indicators, analyst types, and report formats.
返回顶部