Technical Analysis 是一个用于股票技术分析的工具技能,基于 pandas-ta 计算技术指标,支持多标的分析与收益数据。
用途 该技能用于对股票进行技术分析,计算常见技术指标,并给出信号与风险指标,帮助用户了解价格走势与动量变化。
主要能力
- 技术指标计算:支持 RSI、MACD、布林带(Bollinger Bands)、SMA、EMA、ATR、ADX,默认计算全部指标。
- 多标的分析:SYMBOL 参数可传入单个代码或以逗号分隔的多个代码(如 AAPL 或 AAPL,MSFT,GOOGL)。
- 收益数据:通过 --earnings 参数可包含即将到来的收益日期与历史 EPS。
- 交叉信号:提供 MACD 线/信号线最近一次交叉(direction 为 up 表示 MACD 上穿信号线,偏多;down 表示下穿,偏空;days_ago 为距交叉的交易日数,0 表示最近一根 K 线发生),以及 EMA9/EMA21 最近一次交叉(结构相同,无交叉时为 null)。EMA 同时报告 ema9、ema21 与 ema12、ema26。
- 风险指标:输出年化波动率(%)与夏普比率。
- 相关性分析:通过 correlation.py 计算多只股票之间的价格相关性矩阵,用于分散化分析。
使用方式 命令行运行脚本。若未安装 uv 或未找到 pyproject.toml,可将命令中的 uv run python 替换为 python。
技术指标脚本: uv run python scripts/technicals.py SYMBOL [--period PERIOD] [--indicators INDICATORS] [--earnings] 参数:
- SYMBOL:股票代码或逗号分隔列表。
- --period:历史周期,可选 1mo、3mo、6mo、1y,默认 3mo。
- --indicators:逗号分隔的指标列表,可选 rsi,macd,bb,sma,ema,atr,adx,默认全部。
- --earnings:包含收益数据(即将到来的日期与历史)。
输出: 单标的返回 price(当前价格与近期变化)、indicators(各指标计算值)、risk_metrics(年化波动率与夏普比率)、signals(基于指标水平的买卖信号)、earnings(若启用 --earnings,返回即将到来的日期与 EPS 历史)。 多标的返回 results(各标的单独结果的数组)。
相关性脚本: uv run python scripts/correlation.py SYMBOLS [--period PERIOD] 参数:
- SYMBOLS:逗号分隔的股票代码,至少 2 个。
- --period:历史周期,可选 1mo、3mo、6mo、1y,默认 3mo。 输出:symbols(分析的代码列表)、period(所用周期)、correlation_matrix(所有两两之间相关值的嵌套字典)。
示例:
单标的全部指标
uv run python scripts/technicals.py AAPL
多标的
uv run python scripts/technicals.py AAPL,MSFT,GOOGL
含收益数据
uv run python scripts/technicals.py NVDA --earnings
指定指标
uv run python scripts/technicals.py TSLA --indicators rsi,macd
组合相关性
uv run python scripts/correlation.py AAPL,MSFT,GOOGL,AMZN
行业比较
uv run python scripts/correlation.py XLF,XLK,XLE,XLV --period 6mo
对冲有效性
uv run python scripts/correlation.py SPY,GLD,TLT
指标解读
- RSI > 70 为超买,RSI < 30 为超卖。
- MACD 交叉代表动量转变;crossover.days_ago 为 0-5 表示信号较新。
- EMA9/21 交叉确认短期动量;MACD 通常领先,EMA 用于确认。
- 价格接近布林带可能反转。
- 金叉(SMA20 > SMA50)偏多。
- ADX > 25 表示趋势强劲。
- 夏普比率 > 1 为较好的风险调整回报,> 2 为优秀。
- 年化波动率为收益率标准差按年化缩放。
相关性解读
- 相关性接近 1.0 表示高度相关(同向变动)。
- 接近 -1.0 表示负相关(反向变动)。
- 接近 0 表示不相关(独立变动)。
- 分散化时偏好低相关或负相关。
依赖 numpy、pandas、pandas-ta、yfinance。
时区 所有时间戳与基于时间的计算必须使用 America/New_York 时区。所有 JSON 输出必须包含 generated_at(纽约时间字符串)与 data_delay 字段。
适用场景 适用于需要快速计算股票技术指标、查看动量与趋势信号、评估风险指标,或分析多只股票相关性的场景。
限制 具体数据来源、更新频率、收费情况、平台支持等暂未提供。