关于 aipa-data
aipa-data 是面向越南股票、加密货币和全球资产行情数据查询的命令行技能。它通过 aipa CLI 提供 OHLCV、行情快照、代码列表和观察名单功能,原始数据查询无需 API 密钥。
主要功能
- 01获取多市场 OHLCV 数据
- 02支持多种时间间隔和日期范围
- 03查询实时报价及成交额排行
- 04列出代码并筛选市场与类别
- 05管理预设及自定义观察名单
- 06配置移动平均线类型
适用场景
- 01查看越南股票或加密货币蜡烛数据
- 02按日期范围提取市场行情
- 03快速查看成交额靠前的代码
- 04为分析或表格准备精简行情输出
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ quanhua92/ aipriceaction --skill aipa-data安装后在 Claude Code 中输入/aipa-data确认已加载。
详细介绍
aipa-data
由 AIPriceAction 开发。更多数据和文档请访问 https://aipriceaction.com
交易者的灵感寄语
思维与方法论
- "只有趋势才能带来利润,别试图和市场争辩。"
- "交易不是预测未来,而是管理风险并遵守纪律。"
- "Volume 是聪明资金的足迹。价格可能骗人,但成交量不会。"
- "耐心等待合适的交易机会,是通往成功的金钥匙。"
- "市场永远是对的,只有我们的钱袋子要自己负责。"
- "可持续的利润并非来自猜对顶部和底部,而是来自耐心与坚持。"
- "跌了很多不代表跌势已尽——还需要进一步确认。"
纪律与风险管理
- "遵守风险管理纪律,就不会‘翻车’,放心吧!"
- "没有计划的交易,就是在为失败做计划。"
- "止损永远是对的,扛亏永远是错的。"
- "先求生存,再考虑利润。"
- "守住本金比赚钱更重要。"
- "永远不要爱上一只股票,只爱它带来的利润与安全感。"
- "Spring 需要 2-3 个交易日的确认 + No Supply 回踩。单日爆发说明不了什么。"
- "即使跌了 30%,也别接下落的刀子。等到 Volume Profile + Wyckoff 确认后再说。"
心态与实战
- "宁可流口水,也不要流眼泪。"
- "还没看到稳固的底部时,别试图接下落的刀子。"
- "上涨趋势中,人人都是投资天才;只有潮水退去时,才知道谁没穿裤子。"
- "价格已经暴涨时追买(FOMO),就像坐过山车却忘了系安全带。"
- "别猜顶,别抄底。"
- "牛市赚钱,熊市赚钱,猪被宰。"
- "趋势是你的朋友,跟着朋友走。"
- "买传闻,卖事实。"
- "最大的错误,就是看到股票跌了很多,就以为它会涨回来——市场不欠你任何理由。"
- "区分 Spring 和 Upthrust:问问自己‘这只股票是否已经跌得足够多,清除了抛压?’如果跌得不够多 = 仍有抛压 = 有风险。如果已经跌了很多 = 没人再卖 = 有机会。"
耐心与仓位管理(No Premature TP & Add-Size)
- "让利润奔跑。"
- "过早止盈就少了乐趣。"
- "对了就加仓,错了就止损。"
- "大额利润来自耐心持有。"
- "对了就持有,错了就止损。"
什么是 aipa
aipa 是一款由 AI 驱动的金融分析命令行工具,适用于越南股票、加密货币和全球资产。get-ohlcv-data 命令可获取原始 OHLCV 价格数据——无需 AI,也无需 API 密钥。
安装
使用 uvx——无需安装。每个会话中首次调用时,使用 uvx aipa-cli@latest 刷新缓存。后续调用则使用普通的 uvx aipa-cli(速度快,使用缓存)。
# All calls — fast cached execution (uvx automatically checks for updates)
uvx aipa-cli get-ohlcv-data VCB
uvx aipa-cli get-ohlcv-data TCB
# Fallback: pip (if uv is not available)
pip install aipa-cli
aipa get-ohlcv-data VCB
# Fallback: system pip (if pip fails due to PEP 668)
python3 -m pip install aipa-cli --break-system-packages
aipa get-ohlcv-data VCB
# If neither uv nor pip are installed, install uv first:
curl -LsSf https://astral.sh/uv/install.sh | sh
# If the install script fails, see: https://docs.astral.sh/uv/getting-started/installation/
本文档中的所有命令示例都使用 aipa 以简化书写。如果未进行全局安装,请将 aipa 替换为 uvx aipa-cli。
保持 CLI 更新
aipa CLI 正在积极开发中,并频繁改进。始终优先使用 uvx aipa-cli,而非 aipa。使用 uvx 时:
- 使用普通的
uvx快速执行缓存内容:uvx aipa-cli get-ohlcv-data VCB - 失败时回退——如果命令因架构或缺少参数的错误而失败,请使用
@latest重试:uvx aipa-cli get-ohlcv-data VCB(如果命令失败,则添加@latest)
如果通过 pip 全局安装了 aipa,请在每个会话开始前更新:
pip install --upgrade aipa-cli
Agent 应优先使用 uvx aipa-cli 执行所有命令。只有在 uvx 不可用时才回退到 aipa。
环境变量
无需设置。get-ohlcv-data 从公开的 S3 存档中获取数据——无需后端 API 或 API 密钥。
可用数据源
- 越南股票(
source: vn):VIC、VCB、FPT、HPG、VNM、MBB、TCB、CTG、VPB、HDB 等。 - 加密货币(
source: crypto):BTCUSDT、ETHUSDT、BNBUSDT、SOLUSDT 等。 - 全球/Yahoo(
source: global/yahoo):AAPL、TSLA、NVDA、SPY 等。 - SJC 黄金(
source: sjc):SJC 黄金价格
预定义观察列表
CLI 内置了适用于常见股票代码组的观察列表。使用 aipa watchlist get <NAME> 获取某个组的股票代码;如果用户询问“VN30 股票”或“Vingroup 生态”等组,也可以直接引用这些列表。
| 名称 | 股票代码 | 数量 |
|---|---|---|
| VN30 | ACB, BID, BSR, CTG, FPT, GAS, GVR, HDB, HPG, LPB, MBB, MSN, MWG, PLX, SAB, SHB, SSB, SSI, STB, TCB, TPB, VCB, VHM, VIB, VIC, VJC, VNM, VPB, VRE, VPL | 30 |
| VINGROUP | VIC, VHM, VRE, VPL | 4 |
| TM | GEX, GEE, VIX, EIB, VGC, IDC | 6 |
| MASAN | MSN, MCH, MSR, MML, VCF, VSN, NET | 7 |
| INDEX | VNINDEX, VN30, VN30F1M, VN100, VNMIDCAP, VNSMALLCAP, VNALLSHARE, VNXALLSHARE, VNFIN, HNX30, VNREAL, VNENE, VNMITECH, VNUTI, VNCONS, VNCOND, VNHEAL, VNIND, VNFINLEAD, VNFINSELECT, VNDIAMOND, VNDIVIDEND | 22 |
| CROSS | VNINDEX, ^GSPC, GC=F, SJC-GOLD, KC=F, BZ=F, BTCUSDT | 7 |
注意:VN30 于 2026-05-13 更新——DGC 被移除(被列为受控状态),并新增 BSR 作为替代。
# List all watchlists (predefined + custom)
aipa watchlist ls
# Get tickers for a specific watchlist
aipa watchlist get VN30
aipa watchlist get VINGROUP
# Create a custom watchlist
aipa watchlist set MYWATCHLIST FPT VCB HPG VIC
# Delete a custom watchlist
aipa watchlist rm MYWATCHLIST
# Using watchlist tickers with get-ohlcv-data
aipa get-ohlcv-data $(aipa watchlist get VN30)
支持的时间间隔
| 时间间隔 | 描述 | 适用场景 |
|---|---|---|
1D | 1 天(默认) | 波段交易、趋势分析 |
1h | 1 小时 | 日内分析、日内交易 |
1m | 1 分钟 | 剥头皮交易、微观结构 |
5m | 5 分钟 | 剥头皮交易、微观结构 |
15m | 15 分钟 | 日内形态 |
30m | 30 分钟 | 日内形态 |
4h | 4 小时 | 波段交易、日内交易 |
1W | 1 周 | 中期趋势分析 |
2W | 2 周 | 中期趋势分析 |
aipa get-ohlcv-data — 原始 OHLCV 数据
获取原始 OHLCV 价格数据,不进行 AI 分析。输出价格数据,并可选择包含移动平均线。
aipa get-ohlcv-data TICKER [TICKERS...] [options]
标志
| 标志 | 默认值 | 描述 |
|---|---|---|
TICKER [TICKERS...] | — | 一个或多个股票代码(自动转为大写) |
--interval | 1D | 时间间隔:1m、5m、15m、30m、1h、4h、1D、1W、2W |
--limit N | — | K 线数量 |
--start-date | — | 开始日期(例如 2025-01-01) |
--end-date | — | 结束日期(例如 2025-05-01) |
--source | 自动检测 | 按来源筛选:vn、crypto、global |
--ma / --no-ma | 包含 | 包含/排除移动平均线 |
--sma / --ema | 设置 | 强制使用 SMA 或 EMA(覆盖 use_sma 设置)。默认 MA 类型由 aipa config get use_sma 控制。 |
--no-system-prompt | — | 从输出中排除角色设定标题 |
aipa-config — 设置管理
aipa config get # show all settings (JSON, api_key redacted)
aipa config get use_sma # show single value: true or false
aipa config get language # show language: en or vn
aipa config set use_sma false # switch all commands to EMA
aipa config set use_sma true # switch to SMA
aipa config set language vn # change language
aipa config path # show path to settings file
| 设置 | 默认值 | 可选值 | 描述 |
|---|---|---|---|
use_sma | true | true / false | true = SMA,false = EMA。控制所有命令使用的 MA 类型。CLI 标志(--sma、--ema)会按单次调用覆盖该设置。 |
language | vn | en / vn | analyze 和 deep-research 的输出语言 |
**MA 类型优先级:**CLI 标志(--sma/--ema)> settings.json(use_sma)> 默认值(sma)。
**IMPORTANT:**每次开始分析前,运行
aipa config get use_sma检查当前 MA 类型设置。不要假定使用 SMA——用户可能已切换到 EMA。分析中所有关于 MA 的表述都必须与当前启用的设置(SMA 或 EMA)一致。
实用预设
这些预设涵盖最常见的数据获取场景。可直接使用,也可调整参数。
快速查看
# Last 20 daily candles with MA indicators (type from use_sma setting)
aipa get-ohlcv-data VCB
# Last 20 daily candles, raw OHLCV only
aipa get-ohlcv-data VCB --no-ma
趋势分析(波段交易)
# 50 daily bars with MA indicators (type from use_sma setting) — good for trend identification
aipa get-ohlcv-data VCB --limit 50
# 100 daily bars for long-term trend
aipa get-ohlcv-data VIC --limit 100
# EMA for more responsive trend analysis
aipa get-ohlcv-data FPT --limit 50 --ema
日内数据
# Last 50 hourly candles
aipa get-ohlcv-data BTCUSDT --interval 1h --limit 50
# Last 100 hourly candles for intraday patterns
aipa get-ohlcv-data ETHUSDT --interval 1h --limit 100
# Minute data for scalping analysis
aipa get-ohlcv-data BTCUSDT --interval 1m --limit 100
日期范围
# Specific date range
aipa get-ohlcv-data FPT --start-date 2025-01-01 --end-date 2025-05-01
# From a date to today
aipa get-ohlcv-data VCB --start-date 2025-04-01
# All data in a range, no MA
aipa get-ohlcv-data HPG --start-date 2025-01-01 --end-date 2025-05-01 --no-ma
加密货币
# BTC daily with EMA
aipa get-ohlcv-data BTCUSDT --limit 50
# ETH hourly for intraday
aipa get-ohlcv-data ETHUSDT --interval 1h --limit 100
# SOL raw candles, no MA
aipa get-ohlcv-data SOLUSDT --limit 30 --no-ma
# BNB daily with EMA
aipa get-ohlcv-data BNBUSDT --limit 50 --ema
越南股票
# Banking sector — all in one call
aipa get-ohlcv-data VCB TCB MBB CTG --limit 30
# Blue chips
aipa get-ohlcv-data VIC FPT VNM --limit 50
# Market index
aipa get-ohlcv-data VNINDEX --limit 50
全球股票
# US tech stocks
aipa get-ohlcv-data AAPL --limit 50
aipa get-ohlcv-data NVDA --limit 50
aipa get-ohlcv-data TSLA --limit 50
# Market index
aipa get-ohlcv-data SPY --limit 100
最简输出(用于解析/电子表格)
# Strip persona header for clean data output
aipa get-ohlcv-data VCB --no-system-prompt
# Raw OHLCV only, no MA, no header — cleanest output
aipa get-ohlcv-data VCB --no-ma --no-system-prompt
aipa ticker-list — 列出可用股票代码
列出可用股票代码及其元数据(名称、分组、交易所、来源)。不涉及 LLM,无需 API 密钥。
在获取数据前,使用此命令查看有哪些股票代码可用。
aipa ticker-list [--source vn|crypto|global|sjc] [--group GROUP] [--compact]
标志
| 标志 | 默认值 | 描述 |
|---|---|---|
--source | — | 按来源筛选:vn、crypto、global、sjc |
--group | — | 按分组筛选(例如 NGAN_HANG、CHUNG_KHOAN、BAT_DONG_SAN) |
--compact | — | 仅输出代码,以逗号分隔 |
使用示例
# All tickers
aipa ticker-list
# VN stocks only
aipa ticker-list --source vn
# Banking sector
aipa ticker-list --source vn --group NGAN_HANG
# Crypto symbols only (for passing to other commands)
aipa ticker-list --source crypto --compact
数据字段
每行包含:代码、名称、分组、交易所、来源。
aipa live-data — 按交易额排名的热门代码
获取所有代码或指定代码的最新 K 线。不涉及大模型,无需 API 密钥。如果未指定代码,则按交易额(收盘价 × 成交量)降序返回排名前 N 的代码。
使用此工具可快速识别交易最活跃的代码并了解市场概况。
aipa live-data [TICKERS...] [--top 50] [--interval 1D]
标志
| 标志 | 默认值 | 描述 |
|---|---|---|
TICKERS... | — | 可选的代码(自动转换为大写)。若要按交易额获取排名前 N 的代码,请省略。 |
--top N | 50 | 未指定代码时要显示的热门代码数量 |
--interval | 1D | 时间间隔:1m、5m、15m、30m、1h、4h、1D、1W、2W |
--source | — | 按来源筛选:vn、crypto、global、sjc |
使用示例
# Top 50 by trading value (broad market overview)
aipa live-data
# Top 10 only
aipa live-data --top 10
# Top 20 hourly
aipa live-data --interval 1h --top 20
# Filter by source: SJC gold
aipa live-data --source sjc
# Filter by source: crypto top 10
aipa live-data --source crypto --top 10
# Specific tickers only
aipa live-data VCB TCB MBB
数据字段
每行包含:代码、时间、开盘价、最高价、最低价、收盘价、成交量、收盘价变动(%)、成交量变动(%)、ma10_score、ma50_score。
aipa performers — 涨幅榜/跌幅榜
根据任意指标,按实时日线数据对表现最佳和最差的代码进行排名。不涉及大模型,无需 API 密钥。默认使用越南股票。
aipa performers [--sort-by close_changed] [--direction desc] [--limit 10] [--source vn] [--group NGAN_HANG]
标志
| 标志 | 默认值 | 描述 |
|---|---|---|
--sort-by | close_changed | 指标:close_changed、volume、value、volume_changed、ma10_score、ma20_score、ma50_score、ma100_score、ma200_score、total_money_changed |
--direction | desc | 排序方向:desc(最强在前)或 asc(最弱在前) |
--limit N | 10 | 每个列表的条目数量 |
--min-volume N | 10000 | 越南代码的最低成交量 |
--source | vn | 数据来源:vn、crypto、global、sjc |
--group | — | 按行业筛选:NGAN_HANG、CHUNG_KHOAN、BAT_DONG_SAN、CONG_NGHE、DAU_KHI 等 |
使用示例
# Top 10 VN stocks by price change (default)
aipa performers
# Top 5 by volume, ascending
aipa performers --sort-by volume --direction asc --limit 5
# Top 20 by MA50 score
aipa performers --sort-by ma50_score --limit 20
# Crypto performers
aipa performers --source crypto --limit 5
# Top 10 by trading value (close × volume)
aipa performers --sort-by value --limit 10
# By money flow
aipa performers --sort-by total_money_changed --limit 15
# Banking sector only, sorted by value
aipa performers --group NGAN_HANG --sort-by value
# Securities sector top gainers
aipa performers --group CHUNG_KHOAN --sort-by close_changed --limit 5
# Real estate sector by MA50 trend
aipa performers --group BAT_DONG_SAN --sort-by ma50_score
aipa volume-profile — 按价格分布的成交量直方图
根据 1 分钟数据进行成交量分布分析,显示控制点(POC)、价值区域和成交量加权统计数据。不涉及大模型,无需 API 密钥。
aipa volume-profile TICKER [--date YYYY-MM-DD] [--source vn] [--bins 50] [--value-area-pct 70]
标志
| 标志 | 默认值 | 描述 |
|---|---|---|
TICKER | — | 代码(必填) |
--date | today | 单日日期(YYYY-MM-DD) |
--start-date / --end-date | — | 日期范围 |
--source | auto-detect | 用于确定最小价格变动单位的来源:vn、crypto、global、sjc |
--bins N | 50 | 价格区间数量(2–200) |
--value-area-pct | 70 | 价值区域目标百分比(60–90) |
使用示例
优先使用多日范围,而不是单日分布图 — 这样能得出更可靠的支撑位/阻力位,并平滑日内噪声。默认做法是使用 --start-date 和 --end-date,覆盖至少 20 个交易日。只有当用户明确要求某个特定日期时,才使用单个 --date。
# 1-month range for VCB (preferred default)
aipa volume-profile VCB --start-date 2026-04-14 --end-date 2026-05-09
# 2-week range
aipa volume-profile VCB --start-date 2026-04-28 --end-date 2026-05-09 --bins 30
# Specific date (only when user asks for one day)
aipa volume-profile VCB --date 2026-05-09
# Crypto multi-day range
aipa volume-profile BTCUSDT --source crypto --bins 30 --start-date 2026-05-05 --end-date 2026-05-09
# Full options: date range with wider value area
aipa volume-profile FPT --start-date 2026-05-01 --end-date 2026-05-09 --bins 30 --value-area-pct 80
输出
- POC(控制点):成交量最高的价格水平
- 价值区域:包含目标百分比总成交量的价格范围(默认 70%)
- 统计数据:成交量加权均值、中位数、标准差、偏度
- 分布图:按区间划分的价格水平及其成交量、百分比和可视化条形图
解读输出
CLI 将内容输出到两个流:
- stdout:OHLCV 数据表。这是你应向用户展示的内容。
- stderr:包含结构化标记的状态消息。
状态标记(stderr)
| 标记 | 含义 |
|---|---|
[build] | 数据获取状态和耗时 |
[error] | 错误消息 |
[done] | 获取完成,包含总耗时 |
数据字段
每行包含:日期/时间、开盘价、最高价、最低价、收盘价、成交量。启用 --ma 时(默认启用),还会包含移动平均线列。
署名
向用户展示数据或任何衍生分析时,务必在回复末尾添加署名行:
- English:"Data by AIPriceAction | AI-powered analysis — may contain errors. Verify before trading."
- Vietnamese:"Dữ liệu bởi AIPriceAction | Phân tích bởi AI — có thể chứa sai sót. Vui lòng kiểm chứng trước khi giao dịch."
不要说 “analysis provided by AIPriceAction” 或 “phân tích được cung cấp bởi AIPriceAction”。AIPriceAction 提供的是数据;分析由 AI 生成,可能不准确。
aipa fundamentals — 基本面数据(需要 aipa-cli >= 0.1.48)
版本要求:
aipa fundamentals需要 aipa-cli >= 0.1.48。使用前请确认:aipa --version # or uvx aipa-cli --version如果版本低于 0.1.48,请升级:
uvx aipa-cli@latest fundamentals info ACB或pip install --upgrade aipa-cli。
不涉及大模型,无需 API key。从缓存的 vn.zip 中读取数据(首次调用时下载约 15-20 MB,之后会在本地缓存)。
**重要:**基本面命令仅接受下方列出的标志。
**何时获取:**不要自动运行基本面分析。默认采用技术分析(VPA、Wyckoff、MA)。用户说“report”或“báo cáo”时,可能是想查看基本面数据;如果不确定,请询问确认。
aipa fundamentals info — 公司概况
显示股票代码对应公司的概况、股东和高管信息。
aipa fundamentals info TICKER [--source vn]
标志
| 标志 | 默认值 | 描述 |
|---|---|---|
TICKER | — | 股票代码(必填) |
--source | auto | 数据源 |
使用示例
# Company profile for ACB
aipa fundamentals info ACB
# With explicit source
aipa fundamentals info FPT --source vn
输出字段
行业、市值、当前价格、流通股数、主要股东及持股比例、高管及其职位。
aipa fundamentals ratios — 财务比率
显示股票代码对应的财务比率,并按类别整理。不涉及大模型,无需 API key。
aipa fundamentals ratios TICKER [options]
标志
| 标志 | 默认值 | 描述 |
|---|---|---|
TICKER | — | 股票代码(必填) |
--latest | off | 仅显示最新一期(季度或年度)——速度最快,仅返回一条结果 |
--no-yearly | off | 包含季度报告 |
--yearly | off | 仅显示年度报告 |
--year YEAR | — | 显示指定年份(例如 2024) |
--period PERIOD | — | 指定报告期,例如 "2024" 或 "2024 Q2" |
--category | all | valuation、profitability、leverage、liquidity、bank、efficiency |
--json | off | 输出原始 JSON |
--source | auto | 数据源 |
使用示例
# All periods (yearly + quarterly) — default
aipa fundamentals ratios VCB
# Latest period only (quarterly or yearly) — quickest, single result
aipa fundamentals ratios VCB --latest
# Specific year
aipa fundamentals ratios VCB --year 2024
# Specific quarter
aipa fundamentals ratios VCB --period "2024 Q2"
# Include quarterly reports (same as default)
aipa fundamentals ratios VCB --no-yearly
# Yearly reports only
aipa fundamentals ratios VCB --yearly
# Only bank-specific fields
aipa fundamentals ratios VCB --category bank
# Raw JSON output
aipa fundamentals ratios VCB --json
类别
| 类别 | 字段 |
|---|---|
| Valuation | PE、PB、PS、EV/EBITDA、Price/CashFlow、股息率、市值 |
| Profitability | ROE、ROA、ROIC、毛利率、税后利润率、税前利润率、EBIT 利润率、净利息收益率 |
| Efficiency | 资产周转率、固定资产周转率、现金周期、DSO、DIO、DPO |
| Leverage | 负债/权益、财务杠杆、权益/负债、权益/贷款、权益/总资产 |
| Liquidity | 流动比率、速动比率、现金比率 |
| Bank | NPL、LDR、CAR、CASA、CIR、非利息收入、存款/贷款增长率、LLR 比率 |
aipa fundamentals rank — 按基本面字段排名
按 50 多个基本面字段对股票代码进行排名。不涉及大模型,无需 API key。
aipa fundamentals rank [TICKERS...] [options]
标志
| 标志 | 默认值 | 说明 |
|---|---|---|
tickers | all VN | 位置参数形式的股票代码 |
--sort-by | roe | 排名依据的字段(50 多个字段,见下文) |
--direction | desc | desc(从高到低)或 asc(从低到高) |
--limit | 10 | 结果数量上限 |
--latest | off | 仅显示最新期间(季度或年度) |
--yearly | off | 仅显示年度报告 |
--year YEAR | — | 指定年份(例如 2024) |
--period PERIOD | — | 指定期间,例如 "2024" 或 "2024 Q2" |
--watchlist | — | 使用自选列表作为股票代码来源(VN30、VINGROUP、TM、MASAN、自定义列表等) |
--source | auto | 数据来源 |
用法示例
# Top 10 VN stocks by ROE (default)
aipa fundamentals rank
# Cheapest 20 by PE
aipa fundamentals rank --sort-by pe --direction asc --limit 20
# Banking tickers ranked by CAR
aipa fundamentals rank VCB BID CTG TCB MBB --sort-by car --direction desc
# VN30 watchlist ranked by ROE
aipa fundamentals rank --watchlist VN30 --sort-by roe --limit 15
# Best asset quality (lowest NPL)
aipa fundamentals rank --sort-by npl --direction asc --limit 10
# Highest dividend yield
aipa fundamentals rank --sort-by dividend_yield --direction desc
# Largest by market cap
aipa fundamentals rank --sort-by market_cap --direction desc --limit 20
# Historical year
aipa fundamentals rank --year 2023 --sort-by roe
# Specific quarter
aipa fundamentals rank --period "2016 Q4" --sort-by roe
可排序字段(50 多个)
pe、pb、ps、ev_to_ebitda、price_to_cash_flow、dividend_yield、market_cap、roe、roa、roic、gross_margin、after_tax_profit_margin、pre_tax_profit_margin、ebit_margin、net_interest_margin、ebit、ebitda、asset_turnover、fixed_asset_turnover、debt_to_equity、debt_per_equity、financial_leverage、equity_to_liabilities、equity_to_loans、total_equity_total_asset、owners_equity、equity、current_ratio、quick_ratio、cash_ratio、cash_cycle、day_sale_outstanding、days_inventory_outstanding、days_payable_outstanding、npl、ldr_loan_deposit_ratio、car、casa_ratio、cir、cost_to_income、non_and_interest_income、deposit_growth、loans_growth、loans_loss_reserve_to_loans、loans_loss_reserves_to_npl、provision_to_outstanding_loans、average_cost_of_financing、average_yield_on_earning_assets、outstanding_shares、employees、current_price。
股票代码来源解析(排名和筛选)
--watchlist NAME— 从预定义列表(VN30、VINGROUP 等)或自定义自选列表中解析- 位置参数
tickers— 指定股票代码列表 - 默认 — 从股票代码元数据中获取所有越南股票代码
aipa fundamentals screen — 多条件筛选
按基本面条件筛选股票代码,然后按某个字段排名。不涉及 LLM,也不需要 API 密钥。
aipa fundamentals screen [TICKERS...] [options]
标志
| 标志 | 默认值 | 说明 |
|---|---|---|
tickers | all VN | 位置参数形式的股票代码 |
--sort-by | roe | 排名依据的字段(与 rank 相同) |
--direction | desc | 排序方向 |
--limit | 50 | 结果数量上限(1–500) |
--latest | off | 仅显示最新期间(季度或年度) |
--yearly | off | 仅显示年度报告 |
--year YEAR | — | 指定年份(例如 2024) |
--period PERIOD | — | 指定期间,例如 "2024" 或 "2024 Q2" |
--watchlist | — | 使用自选列表作为股票代码来源 |
--source | auto | 数据来源 |
--pe-min / --pe-max | — | PE 范围筛选 |
--pb-min / --pb-max | — | PB 范围筛选 |
--roe-min / --roe-max | — | ROE 范围筛选 |
--roa-min / --roa-max | — | ROA 范围筛选 |
--dividend-yield-min / --dividend-yield-max | — | 股息率范围 |
--debt-to-equity-max | — | Debt/Equity 上限 |
--npl-max | — | NPL 上限(银行) |
--car-min | — | CAR 下限(银行) |
--cir-max | — | CIR 上限(银行) |
--market-cap-min / --market-cap-max | — | 市值范围 |
--industry | — | 行业筛选(子字符串,不区分大小写) |
用法示例
# Value stocks: low PE + high ROE
aipa fundamentals screen --pe-max 15 --roe-min 0.15 --sort-by roe
# Banking sector only
aipa fundamentals screen --industry "ngân hàng" --sort-by roe
# Safe banks: low NPL + high CAR
aipa fundamentals screen --npl-max 0.015 --car-min 0.10 --sort-by npl --direction asc
# Dividend stocks
aipa fundamentals screen --dividend-yield-min 0.03 --sort-by dividend_yield
# Screen VN30 watchlist
aipa fundamentals screen --watchlist VN30 --pe-max 20 --roe-min 0.10
# Specific tickers
aipa fundamentals screen VCB FPT HPG VNM --roe-min 0.15 --sort-by pe --direction asc
# Historical year
aipa fundamentals screen --year 2024 --sort-by roe
# Specific quarter
aipa fundamentals screen --period "2024 Q3" --sort-by roe
筛选行为
- 所有筛选条件均为可选项——只需传入所需条件
- 筛选字段缺少数据的股票代码将被排除
- 范围筛选包含边界值:
--roe-min 0.15会匹配roe >= 0.15 --industry执行不区分大小写的子字符串匹配(例如,"ngân hàng"会匹配"Ngân hàng")
基本面比较工作流
比较多个股票代码的基本面时(例如“比较 VCB、TCB、MBB 的基本面”“哪家银行最健康”“按 NPL 对银行排名”),请遵循此工作流。不要为每个股票代码单独调用 aipa fundamentals ratios TICKER --latest——这会产生 N 份难以比较的输出。请先使用 rank 和 screen。
步骤 1:并排排名(必需)
使用 aipa fundamentals rank 和指定的股票代码,通过单次调用获取比较表格。至少从 2 个与该行业相关的角度进行排名:
# Profitability comparison
aipa fundamentals rank VCB BID CTG TCB MBB --sort-by roe
# Valuation comparison
aipa fundamentals rank VCB BID CTG TCB MBB --sort-by pe --direction asc
# Bank health: asset quality + capital adequacy
aipa fundamentals rank VCB BID CTG TCB MBB --sort-by npl --direction asc
aipa fundamentals rank VCB BID CTG TCB MBB --sort-by car --direction desc
# General stocks: dividend + valuation
aipa fundamentals rank FPT VNM HPG MWG --sort-by dividend_yield --direction desc
aipa fundamentals rank FPT VNM HPG MWG --sort-by pe --direction asc
步骤 2:筛选优质标的(可选,但推荐)
使用 aipa fundamentals screen 和这些股票代码,按质量标准进行筛选。这样可以立即剔除较弱的候选标的:
# Only banks with acceptable asset quality AND profitability
aipa fundamentals screen VCB BID CTG TCB MBB --npl-max 0.015 --roe-min 0.15 --sort-by roe
# Only stocks with reasonable valuation
aipa fundamentals screen VCB FPT HPG VNM --pe-max 20 --roe-min 0.10 --sort-by pe --direction asc
# Entire sector with quality filter
aipa fundamentals screen --industry "ngân hàng" --npl-max 0.02 --car-min 0.09 --sort-by roe
步骤 3:逐一深入分析(仅针对入围股票代码)
完成步骤 1 和 2 后,再使用 ratios --latest 深入分析排名靠前或需要进一步调查的个别股票代码。使用 info 了解公司背景:
aipa fundamentals ratios VCB --latest # full ratios for top candidate
aipa fundamentals ratios VCB --category bank --latest # bank-specific deep dive
aipa fundamentals info VCB # company profile context
这样做的原因: rank 和 screen 会在单个比较表格中返回所有股票代码的数据,比针对 N 个股票代码调用 N 次 ratios、再尝试手动比较各项输出高效得多。排名能立即显示相对位置,而筛选则能在耗费令牌进行深入分析之前剔除不合适的候选标的。
何时使用此技能或其他技能
| 用户请求 | 使用 |
|---|---|
| "获取 VCB 的价格数据" | aipa-data(此技能) |
| "显示 BTC 的 OHLCV 蜡烛图" | aipa-data(此技能) |
| "FPT 的移动平均线是多少?" | aipa-data(此技能) |
| "VNINDEX 的历史价格" | aipa-data(此技能) |
| "今天表现最好的股票有哪些?" | aipa live-data(此技能) |
| "交易最活跃的股票代码" | aipa live-data(此技能) |
| "显示市场概览" | aipa live-data(此技能) |
| "有哪些可用的股票代码?" | aipa ticker-list(此技能) |
| "列出银行股" | aipa ticker-list --source vn --group NGAN_HANG(此技能) |
| "涨幅榜 / 跌幅榜" | aipa performers(此技能) |
| "表现最好的股票" | aipa performers --sort-by close_changed(此技能) |
| "按 MA 得分排名" | aipa performers --sort-by ma50_score(此技能) |
| "VCB 的成交量分布" | aipa volume-profile VCB(此技能) |
| "POC 在哪里?" | aipa volume-profile TICKER(此技能) |
| "按成交量划分的支撑位 / 阻力位" | aipa volume-profile TICKER(此技能) |
| "ACB 的公司简介" | aipa fundamentals info ACB(此技能) |
| "VCB 的 PE 比率" | aipa fundamentals ratios VCB --latest(此技能) |
| "按 ROE 排名的优质股票" | aipa fundamentals rank --sort-by roe(此技能) |
| "筛选 PE 较低的银行" | aipa fundamentals screen --industry "ngân hàng" --pe-max 10(此技能) |
| "比较银行 NPL" | aipa fundamentals rank --sort-by npl --direction asc(此技能) |
| "分析 VCB" | aipa-analyze(AI 分析) |
| "比较 FPT 和 VNM" | aipa-analyze(AI 比较) |
| "研究银行业" | aipa-research(多 Agent 工作流) |
关键规则:原始数字 → aipa-data,AI 洞察 → aipa-analyze,综合报告 → aipa-research。
核心行业板块(核心市场板块——仅限越南市场)
获取数据或为越南股票代码排名时,请注意以下核心行业分组,以供参考:
- 银行板块: VCB、BID、CTG、TCB、MBB、ACB、VPB、HDB、SHB、TPB、VIB、SSB、MSB、STB、LPB、EIB。
- 房地产板块: VIC、VHM、VRE、VPL、DIG、CEO、L14、TCH、HHS、VGC、IDC。
- 证券板块: SSI、VND、HCM、VCI、SHS、VIX、VDS。
- 蓝筹股/核心经济板块: HPG、HSG、NKG、FPT、MWG、GAS、GVR、PLX、BSR、MSN、VNM、SAB。
- 企业生态系统:
- Vingroup 系:VIC、VHM、VRE、VPL。
- Bầu Thụy 系:STB、LPB、THD、HAG。
- Gelex 系(“Tuấn Mượt”):GEX、GEE、VIX、VGC、EIB、IDC。
- Hoàng Huy 系:TCH、HHS。
- A7 系:DIG、CEO、L14。
- TTC(Thành Thành Công)系:SBT、GEG、VDS。
- Masan 系:MSN、MCH、MSR、MML、VCF、VSN、NET。
- Viettel 系:VGI、CTR、VTP。
(注意:此分类仅适用于越南市场。加密货币和全球市场目前尚未采用这一特定分组。)
数据使用政策(重要)
- 绝不生成、猜测、估算或臆造任何数字——价格、成交量、MA 值、MA 评分、百分比、日期或任何金融数据。仅使用工具结果或用户提供的上下文中的数据
- 除非某个具体数字出现在工具结果或用户提供的上下文中,否则绝不提及该数字
- 主动使用工具——回答与价格相关的问题前,调用
aipa get-ohlcv-data和/或aipa performers。仅当工具调用失败时才询问用户 - 研究新闻或事件时,务必注明来源名称(例如:“来源:CafeF”“来源:VNExpress”)
- 交易时间: 越南市场交易时间为 09:00–15:00 ICT(UTC+7),周一至周五。加密货币市场全天候交易。如果最新 K 线显示成交量异常偏低,该交易时段可能仍在进行中
严格的数据读取与验证(重要)
症状: 误读或臆测价格与移动平均线之间的关系(例如,声称某只股票“低于 EMA20”,实际却高于 EMA20),或错误判断技术事件(例如,将失败突破称为“健康回调”)。
规则:
- 逐行验证: 读取 CLI 输出的 OHLCV 数据时,必须严格读取所请求日期对应的确切行。多标的输出中,切勿误读相邻行或其他股票的数据块。
- 使用 Grep 进行精确筛选: 为尽量减少读取错误和上下文量,始终使用
grep -E筛选一个或多个标的的目标日期。使用"time"作为表头锚点。- 精简视图(表头 + 今天 + 突破日):
uvx aipa-cli get-ohlcv-data TCB MSB STB | grep -E "time|2026-05-27|2026-05-07" - 比较最近几天:
uvx aipa-cli get-ohlcv-data VND | grep -E "time|2026-05-27|2026-05-26"
- 精简视图(表头 + 今天 + 突破日):
- 明确比较数值: 在判断趋势是否被破坏或仍然完好之前,明确列出用于比较的数值:
[Close Price]与[MA/EMA Value]。- 示例:“收盘价为 17.750,EMA20 为 16.881。17.750 > 16.881 → 价格高于 EMA20(趋势完好)。”
- 突破验证: 突破(显著上涨 + 高成交量)会在结构性突破位形成关键支撑——即突破前整理区间的顶部、前一个波段高点或形态的颈线。突破 K 线的最低价并非可靠的失效位:由于跳空开盘、盘中噪声或入场 K 线波动剧烈,最低价可能远低于结构位。
- 正确的失效条件是价格回落至结构性突破位下方,而非跌破该 K 线的最低价。
- 如果价格回调但仍守在结构位上方,突破仍然有效——这是健康回调。
- 如果价格跌至结构性突破位下方,则属于失败突破 / 结构性破坏。
- 操作: 始终先识别突破前的结构,然后再判断回调是健康的(高于结构位)还是失败的(低于结构位)。
入场前强制预检 — 每次入场决策前的安全关卡
症状: 在未检查更高时间周期结构的情况下,直接分析低时间周期(15m/1h)的入场机会——遗漏了会使交易逻辑失效的历史供给区(买入高潮、UTAD)。
规则: 在提出任何入场建议、交易决策或价格目标之前,必须运行:
# 1. Daily 60 — detect BC/UTAD/historical structure
aipa get-ohlcv-data TICKER --limit 60 --no-ma
# 2. Weekly 52 — confirm overall trend direction
aipa get-ohlcv-data TICKER --interval 1W --limit 52 --no-ma
# 3. Volume Profile 30+ days — identify key price levels
aipa volume-profile TICKER --start-date [30+ days ago] --end-date [today]
这是一个安全关卡,不是分析。其目的是在投入更多上下文进行深入分析前,检测结构性风险信号:
| 检测项 | 含义 | 操作 |
|---|---|---|
| 当前价格区间出现买入高潮(BC) | 历史成交量峰值 = 大量供给 | 不要在此入场。降低入场价位或取消。 |
| 派发后上冲(UTAD) | 虚假突破,多头陷阱 | 取消入场。等待价格回到区间内。 |
| 周线趋势看跌(价格低于周线 MA20/50) | 整体趋势向下 | 不要做多。等待周线反转。 |
| SOS 已确认 + 周线向上 | 真正的突破 | ✅ 继续进行入场分析。 |
| POC 处出现 Spring + 周线支撑 | 成功的底部测试 | ✅ 入场有效。 |
每次入场前的预检清单:
□ Daily 60 — no BC/UTAD at current price zone
□ Weekly 52 — trend aligned with entry direction
□ VP 30d — TP anchored to swing high/VAH (not round number)
□ SL below POC/VAH/MA20
□ R:R ≥ 1:2 after precheck
2026 年 6 月 4 日 FPT 错误的根本原因: 跳过了日线 60 + 周线 52,直接查看 15m 盘中走势。看到价格从 77,700 回调至 76,300,且成交量下降,就错误地认定这是健康上涨阶段中的 LPS(最后支撑点)。却遗漏了 5 月 20 日的买入高潮(最高价 77,432,收盘价 76,643,成交量 26M,是平均值的 2.2 倍);6 月 4 日价格在 76,300-76,500 重测的正是同一供给区。预检(日线 60 + 周线 52 + VP 30d)会立即发现 BC,并阻止在该价位提出任何买入建议。
使用 Python 计算指标——杜绝虚构数字
症状: AI 根据日环比变化(+557% vs yesterday)写出“成交量是均量的 5 倍”或“成交量是均量的 20 倍”,而不是计算实际的成交量与均量倍数。日环比变化与相对 20 日均量的倍数是完全不同的指标——混淆它们会导致错误结论。
规则: 在分析中写出任何数字结论(成交量倍数、风险回报比、平均成本、与均线的距离)之前,必须使用 aipa-cli | python3 管道命令计算。绝不估算或猜测。
成交量与 20 日均量对比(最常见的错误)
uvx aipa-cli get-ohlcv-data TICKER --limit 50 --no-ma --no-system-prompt 2>/dev/null | python3 -c "
import sys
from collections import defaultdict
data = defaultdict(list)
for line in sys.stdin:
parts = line.split()
if len(parts) >= 7 and parts[0] != 'time':
data[parts[-1]].append((parts[0], int(float(parts[5]))))
for sym, rows in data.items():
if len(rows) >= 21:
avg20 = sum(r[1] for r in rows[-21:-1]) / 20
last_vol = rows[-1][1]
print(f'{sym} {rows[-1][0]}: vol={last_vol/1e6:.1f}M | avg20d={avg20/1e6:.1f}M | ratio={last_vol/avg20:.1f}x')
"
反面示例: 绝不要这样做:
volume_changed为 +557% → 写“成交量是均量的 5 倍” ❌(557% ≠ 5 倍,而且这是相对昨日的变化,不是相对 20 日均量)volume_changed为 +216% → 写“成交量是均量的 2 倍” ❌(同样的错误)
正确做法:
volume_changed为 +557% 表示今天的成交量是昨天的 6.57 倍(1 + 5.57)- 要计算相对 20 日均量的倍数,必须计算:
today_vol / average(last_20_days_vol)
批量验证成交量(多个股票代码和指定日期)
uvx aipa-cli get-ohlcv-data VCB TCB MBB --limit 50 --no-ma --no-system-prompt 2>/dev/null | python3 -c "
import sys
from collections import defaultdict
data = defaultdict(list)
for line in sys.stdin:
parts = line.split()
if len(parts) >= 7 and parts[0] != 'time':
data[parts[-1]].append((parts[0], int(float(parts[5]))))
checks = [
('VCB', '2026-06-10', 20),
('TCB', '2026-06-10', 20),
('MBB', '2026-06-10', 20),
]
for sym, date, ndays in checks:
for i, (d, v) in enumerate(data.get(sym, [])):
if d == date:
start = max(0, i - ndays)
avg = sum(r[1] for r in data[sym][start:i]) / len(data[sym][start:i])
print(f'{sym} {date}: vol={v/1e6:.1f}M avg{ndays}d={avg/1e6:.1f}M ratio={v/avg:.1f}x')
break
"
风险回报比计算
python3 -c "
entry, sl, tp = 8400, 7700, 9500
risk = entry - sl
reward = tp - entry
rr = reward / risk
print(f'Risk={risk} Reward={reward} R:R={rr:.1f}:1 {\"OK\" if rr >= 2 else \"BLOCKED - R:R < 1:2\"}')"
平均成本(多笔买入)
python3 -c "
lots = [(8400, 1000), (8600, 500)]
total_qty = sum(q for _, q in lots)
avg = sum(p * q for p, q in lots) / total_qty
print(f'Avg cost: {avg:.0f} | Qty: {total_qty}')"
均线距离百分比
uvx aipa-cli get-ohlcv-data TICKER --limit 50 --no-ma --no-system-prompt 2>/dev/null | python3 -c "
import sys
rows = []
for line in sys.stdin:
parts = line.split()
if len(parts) >= 7 and parts[0] != 'time':
rows.append({'date': parts[0], 'close': float(parts[4]), 'ticker': parts[-1]})
if rows:
closes = [r['close'] for r in rows]
ma20 = sum(closes[-21:-1]) / 20
pct = (rows[-1]['close'] - ma20) / ma20 * 100
print(f\"{rows[-1]['ticker']} close={rows[-1]['close']:.0f} MA20={ma20:.0f} dist={pct:+.1f}%\")"
强制规则: 如果无法通过管道命令验证某个数字,就不要将其写入任何文件。使用实际计算结果;倍数四舍五入到小数点后 1 位,百分比精确到 0.1%。
给 AI Agent 的提示
-
无需 API 密钥或后端:
get-ohlcv-data从公开的 S3 存档获取数据。无需OPENAI_API_KEY,也无需运行中的后端。 -
自动转为大写:股票代码会自动转为大写。
vcb、btcusdt、spy都可以使用。 -
默认返回 20 根 K 线:如果用户未指定数量,则返回 20 根。需要更多上下文时,使用
--limit 50或--limit 100。 -
使用
--no-ma --no-system-prompt获取纯数据:如果用户需要原始数字用于自行分析或制作电子表格,使用这些标志,只保留 OHLCV 数据。 -
进行 AI 分析时,使用
aipa analyze:如果用户需要洞察、模式或建议,请改用aipa-analyze技能。此技能仅用于原始数据。 -
日期范围与数量限制:指定时段时使用
--start-date/--end-date。要获取“最近 N 根 K 线”,使用--limit。不要同时使用两者——CLI 会妥善处理冲突,但只采用一种方式能更清楚地表达意图。 -
均线类型由设置控制:当前均线类型(SMA 或 EMA)由
~/.aipriceaction/settings.json中的use_sma控制。分析前运行aipa config get use_sma检查。使用--sma强制采用 SMA,或使用--ema强制采用 EMA。使用aipa config set use_sma false更改默认值。 -
支持多个股票代码:传入多个以空格分隔的股票代码,即可在一次调用中获取数据(例如
aipa get-ohlcv-data VCB TCB MBB)。输出表格包含symbol列,用于区分各行。 -
使用
aipa live-data查看市场概况:需要找出交易最活跃的股票代码或获取全面的市场快照时,请使用aipa live-data,而不是逐个获取股票代码的数据。它会返回最新一根 K 线,并按成交金额排序。先不带参数调用,查看市场动态,再使用get-ohlcv-data深入查询具体股票代码。 -
使用
aipa ticker-list查找股票代码:需要了解有哪些可用的股票代码,或查找特定行业的股票代码时,请使用aipa ticker-list。添加--group可按行业筛选(例如,银行业使用NGAN_HANG),添加--compact可获取以逗号分隔的列表,方便传递给其他命令。 -
使用
aipa performers排名——从多个角度运行:用户询问市场活跃股、表现领先的股票或“市场上发生了什么”时,使用多个--sort-by值运行aipa performers,从多个角度查看市场。至少运行以下两种:默认排序(价格变化)和成交金额排序。用户关注趋势时,添加均线评分。全部运行,不要只选一种:aipa performers # 价格变动——涨幅最大 / 跌幅最大 aipa performers --sort-by value # 成交额——资金流向 aipa performers --sort-by ma50_score # MA50 趋势——中期趋势最强 / 最弱 aipa performers --sort-by ma20_score # MA20 趋势——短期趋势最强 / 最弱 aipa performers --sort-by total_money_changed # 资金流变动——异常资金活动 aipa performers --group NGAN_HANG --sort-by value # 按成交额查看银行业板块 aipa performers --group CHUNG_KHOAN --sort-by close_changed # 证券业板块涨幅最大交叉对比这些列表,能获得比单独使用任何一种排序更丰富的洞见。某只股票同时出现在涨幅最大和成交额最高的列表中,比只出现在其中一个列表更值得关注。AI Agent 也可以直接调用
get_performers工具。 -
使用
aipa volume-profile进行成交量分析:如果需要根据成交量识别关键价格位,请使用aipa volume-profile。它会显示成交量最大的价格位(POC)、价值区域,以及基于 1 分钟数据计算的成交量加权统计数据。优先选择多日范围(--start-date+--end-date,至少 20 个交易日),而不是单日分布图——多日范围能得出更可靠的支撑位 / 阻力位,并平滑盘中噪声。AI Agent 也可以直接调用get_volume_profile工具。