mcpField
A
aipa-data

aipa-data

github.com/quanhua92数据与数据库254 次安装2 天前更新
代码仓库

关于 aipa-data

aipa-data 是面向越南股票、加密货币和全球资产行情数据查询的命令行技能。它通过 aipa CLI 提供 OHLCV、行情快照、代码列表和观察名单功能,原始数据查询无需 API 密钥。

主要功能

  1. 01获取多市场 OHLCV 数据
  2. 02支持多种时间间隔和日期范围
  3. 03查询实时报价及成交额排行
  4. 04列出代码并筛选市场与类别
  5. 05管理预设及自定义观察名单
  6. 06配置移动平均线类型

适用场景

  1. 01查看越南股票或加密货币蜡烛数据
  2. 02按日期范围提取市场行情
  3. 03快速查看成交额靠前的代码
  4. 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 时:

  1. 使用普通的 uvx 快速执行缓存内容: uvx aipa-cli get-ohlcv-data VCB
  2. 失败时回退——如果命令因架构或缺少参数的错误而失败,请使用 @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 生态”等组,也可以直接引用这些列表。

名称股票代码数量
VN30ACB, 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, VPL30
VINGROUPVIC, VHM, VRE, VPL4
TMGEX, GEE, VIX, EIB, VGC, IDC6
MASANMSN, MCH, MSR, MML, VCF, VSN, NET7
INDEXVNINDEX, VN30, VN30F1M, VN100, VNMIDCAP, VNSMALLCAP, VNALLSHARE, VNXALLSHARE, VNFIN, HNX30, VNREAL, VNENE, VNMITECH, VNUTI, VNCONS, VNCOND, VNHEAL, VNIND, VNFINLEAD, VNFINSELECT, VNDIAMOND, VNDIVIDEND22
CROSSVNINDEX, ^GSPC, GC=F, SJC-GOLD, KC=F, BZ=F, BTCUSDT7

注意: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)
支持的时间间隔
时间间隔描述适用场景
1D1 天(默认)波段交易、趋势分析
1h1 小时日内分析、日内交易
1m1 分钟剥头皮交易、微观结构
5m5 分钟剥头皮交易、微观结构
15m15 分钟日内形态
30m30 分钟日内形态
4h4 小时波段交易、日内交易
1W1 周中期趋势分析
2W2 周中期趋势分析

aipa get-ohlcv-data — 原始 OHLCV 数据

获取原始 OHLCV 价格数据,不进行 AI 分析。输出价格数据,并可选择包含移动平均线。

aipa get-ohlcv-data TICKER [TICKERS...] [options]
标志
标志默认值描述
TICKER [TICKERS...]—一个或多个股票代码(自动转为大写)
--interval1D时间间隔: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_smatruetrue / falsetrue = SMA,false = EMA。控制所有命令使用的 MA 类型。CLI 标志(--sma、--ema)会按单次调用覆盖该设置。
languagevnen / vnanalyze 和 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 N50未指定代码时要显示的热门代码数量
--interval1D时间间隔: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-byclose_changed指标:close_changed、volume、value、volume_changed、ma10_score、ma20_score、ma50_score、ma100_score、ma200_score、total_money_changed
--directiondesc排序方向:desc(最强在前)或 asc(最弱在前)
--limit N10每个列表的条目数量
--min-volume N10000越南代码的最低成交量
--sourcevn数据来源: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—代码(必填)
--datetoday单日日期(YYYY-MM-DD)
--start-date / --end-date—日期范围
--sourceauto-detect用于确定最小价格变动单位的来源:vn、crypto、global、sjc
--bins N50价格区间数量(2–200)
--value-area-pct70价值区域目标百分比(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—股票代码(必填)
--sourceauto数据源
使用示例
# 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—股票代码(必填)
--latestoff仅显示最新一期(季度或年度)——速度最快,仅返回一条结果
--no-yearlyoff包含季度报告
--yearlyoff仅显示年度报告
--year YEAR—显示指定年份(例如 2024)
--period PERIOD—指定报告期,例如 "2024" 或 "2024 Q2"
--categoryallvaluation、profitability、leverage、liquidity、bank、efficiency
--jsonoff输出原始 JSON
--sourceauto数据源
使用示例
# 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
类别
类别字段
ValuationPE、PB、PS、EV/EBITDA、Price/CashFlow、股息率、市值
ProfitabilityROE、ROA、ROIC、毛利率、税后利润率、税前利润率、EBIT 利润率、净利息收益率
Efficiency资产周转率、固定资产周转率、现金周期、DSO、DIO、DPO
Leverage负债/权益、财务杠杆、权益/负债、权益/贷款、权益/总资产
Liquidity流动比率、速动比率、现金比率
BankNPL、LDR、CAR、CASA、CIR、非利息收入、存款/贷款增长率、LLR 比率

aipa fundamentals rank — 按基本面字段排名

按 50 多个基本面字段对股票代码进行排名。不涉及大模型,无需 API key。

aipa fundamentals rank [TICKERS...] [options]
标志
标志默认值说明
tickersall VN位置参数形式的股票代码
--sort-byroe排名依据的字段(50 多个字段,见下文)
--directiondescdesc(从高到低)或 asc(从低到高)
--limit10结果数量上限
--latestoff仅显示最新期间(季度或年度)
--yearlyoff仅显示年度报告
--year YEAR—指定年份(例如 2024)
--period PERIOD—指定期间,例如 "2024" 或 "2024 Q2"
--watchlist—使用自选列表作为股票代码来源(VN30、VINGROUP、TM、MASAN、自定义列表等)
--sourceauto数据来源
用法示例
# 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。

股票代码来源解析(排名和筛选)
  1. --watchlist NAME — 从预定义列表(VN30、VINGROUP 等)或自定义自选列表中解析
  2. 位置参数 tickers — 指定股票代码列表
  3. 默认 — 从股票代码元数据中获取所有越南股票代码

aipa fundamentals screen — 多条件筛选

按基本面条件筛选股票代码,然后按某个字段排名。不涉及 LLM,也不需要 API 密钥。

aipa fundamentals screen [TICKERS...] [options]
标志
标志默认值说明
tickersall VN位置参数形式的股票代码
--sort-byroe排名依据的字段(与 rank 相同)
--directiondesc排序方向
--limit50结果数量上限(1–500)
--latestoff仅显示最新期间(季度或年度)
--yearlyoff仅显示年度报告
--year YEAR—指定年份(例如 2024)
--period PERIOD—指定期间,例如 "2024" 或 "2024 Q2"
--watchlist—使用自选列表作为股票代码来源
--sourceauto数据来源
--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。

(注意:此分类仅适用于越南市场。加密货币和全球市场目前尚未采用这一特定分组。)


数据使用政策(重要)

  1. 绝不生成、猜测、估算或臆造任何数字——价格、成交量、MA 值、MA 评分、百分比、日期或任何金融数据。仅使用工具结果或用户提供的上下文中的数据
  2. 除非某个具体数字出现在工具结果或用户提供的上下文中,否则绝不提及该数字
  3. 主动使用工具——回答与价格相关的问题前,调用 aipa get-ohlcv-data 和/或 aipa performers。仅当工具调用失败时才询问用户
  4. 研究新闻或事件时,务必注明来源名称(例如:“来源:CafeF”“来源:VNExpress”)
  5. 交易时间: 越南市场交易时间为 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 的提示

  1. 无需 API 密钥或后端:get-ohlcv-data 从公开的 S3 存档获取数据。无需 OPENAI_API_KEY,也无需运行中的后端。

  2. 自动转为大写:股票代码会自动转为大写。vcb、btcusdt、spy 都可以使用。

  3. 默认返回 20 根 K 线:如果用户未指定数量,则返回 20 根。需要更多上下文时,使用 --limit 50 或 --limit 100。

  4. 使用 --no-ma --no-system-prompt 获取纯数据:如果用户需要原始数字用于自行分析或制作电子表格,使用这些标志,只保留 OHLCV 数据。

  5. 进行 AI 分析时,使用 aipa analyze:如果用户需要洞察、模式或建议,请改用 aipa-analyze 技能。此技能仅用于原始数据。

  6. 日期范围与数量限制:指定时段时使用 --start-date/--end-date。要获取“最近 N 根 K 线”,使用 --limit。不要同时使用两者——CLI 会妥善处理冲突,但只采用一种方式能更清楚地表达意图。

  7. 均线类型由设置控制:当前均线类型(SMA 或 EMA)由 ~/.aipriceaction/settings.json 中的 use_sma 控制。分析前运行 aipa config get use_sma 检查。使用 --sma 强制采用 SMA,或使用 --ema 强制采用 EMA。使用 aipa config set use_sma false 更改默认值。

  8. 支持多个股票代码:传入多个以空格分隔的股票代码,即可在一次调用中获取数据(例如 aipa get-ohlcv-data VCB TCB MBB)。输出表格包含 symbol 列,用于区分各行。

  9. 使用 aipa live-data 查看市场概况:需要找出交易最活跃的股票代码或获取全面的市场快照时,请使用 aipa live-data,而不是逐个获取股票代码的数据。它会返回最新一根 K 线,并按成交金额排序。先不带参数调用,查看市场动态,再使用 get-ohlcv-data 深入查询具体股票代码。

  10. 使用 aipa ticker-list 查找股票代码:需要了解有哪些可用的股票代码,或查找特定行业的股票代码时,请使用 aipa ticker-list。添加 --group 可按行业筛选(例如,银行业使用 NGAN_HANG),添加 --compact 可获取以逗号分隔的列表,方便传递给其他命令。

  11. 使用 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 工具。

  12. 使用 aipa volume-profile 进行成交量分析:如果需要根据成交量识别关键价格位,请使用 aipa volume-profile。它会显示成交量最大的价格位(POC)、价值区域,以及基于 1 分钟数据计算的成交量加权统计数据。优先选择多日范围(--start-date + --end-date,至少 20 个交易日),而不是单日分布图——多日范围能得出更可靠的支撑位 / 阻力位,并平滑盘中噪声。AI Agent 也可以直接调用 get_volume_profile 工具。

评论

支持 Markdown