mcpField
A
aipa-research

aipa-research

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

关于 aipa-research

aipa-research 是面向越南股票、加密货币和全球资产研究的命令行技能,使用多 Agent 流程生成市场报告。它结合市场快照、并行板块分析、汇总和质量审查,并支持从检查点恢复研究。

主要功能

  1. 01执行多 Agent 市场研究流程
  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-research

安装后在 Claude Code 中输入/aipa-research确认已加载。

详细介绍

aipa-research

由 AIPriceAction 开发。更多数据和文档请访问 https://aipriceaction.com

给交易者的灵感箴言

思维与方法论
  • "只有趋势才能带来利润,别试图和市场争辩。"
  • "交易不是预测未来,而是管理风险并遵守纪律。"
  • "Volume 是聪明资金的足迹。价格可能骗人,但成交量不会。"
  • "耐心等待合适的形态,是通往成功的金钥匙。"
  • "市场永远是对的,只有我们自己要为钱包负责。"
  • "可持续的利润不是靠猜中顶部和底部得来的,而是源于耐心和坚持。"
  • "跌得多不代表跌势结束——还需要进一步确认。"
纪律与风险管理
  • "遵守风险管理纪律,就不会轻易‘翻车’!"
  • "没有计划地交易,就是在为失败做计划。"
  • "止损总是对的,死扛亏损总是错的。"
  • "先求生存,再考虑盈利。"
  • "保住本金比赚钱更重要。"
  • "永远不要爱上一只股票,只爱它带来的利润和安全感。"
  • "Spring 需要 2-3 个交易日确认,并伴随 No Supply 回踩。单日爆发说明不了什么。"
  • "即使股价已经跌了 30%,也不要接飞刀。等 Volume Profile + Wyckoff 确认后再行动。"
心态与实战
  • "宁可流口水,也不要流眼泪。"
  • "还没看到坚实的底部,就别试图接飞刀。"
  • "上涨趋势中,人人都是投资天才;只有潮水退去,才知道谁没穿裤子。"
  • "价格已经暴涨还追高(FOMO),就像坐过山车时忘了系安全带。"
  • "别猜顶部,别抄底。"
  • "牛能赚钱,熊能赚钱,猪会被宰。"
  • "趋势是你的朋友,跟着朋友走。"
  • "买入传闻,卖出事实。"
  • "最大的错误,就是看到股票跌了很多便以为它会涨回来——市场不欠你任何理由。"
  • "区分 Spring 和 Upthrust:问问‘这只股票跌得够多、足以出清供应了吗?’如果跌得不多 = 供应仍在 = 有风险。如果已经跌了很多 = 没人卖了 = 有机会。"
耐心与仓位管理(不提前止盈并加仓)
  • "让利润奔跑。"
  • "过早止盈,会错失好处。"
  • "对了就加仓,错了就止损。"
  • "大幅盈利来自于按兵不动。"
  • "对了就持有,错了就止损。"

什么是 aipa

aipa 是一款由 AI 驱动的金融分析命令行工具,适用于越南股票、加密货币和全球资产。deep-research 命令会运行多 Agent 工作流,生成全面的市场报告,内容远比单一股票分析详尽。

安装

使用 uvx——无需安装。在每个会话中首次调用时,使用 uvx aipa-cli@latest 刷新缓存。之后的所有调用都使用普通的 uvx aipa-cli(速度快,使用缓存)。

# All calls — fast cached execution (uvx automatically checks for updates)
uvx aipa-cli deep-research

uvx aipa-cli deep-research

# Fallback: pip (if uv is not available)
pip install aipa-cli
aipa deep-research

# Fallback: system pip (if pip fails due to PEP 668)
python3 -m pip install aipa-cli --break-system-packages
aipa deep-research

# 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 deep-research
  2. 失败时回退——如果命令因架构错误或缺少参数而失败,请使用 @latest 重试: uvx aipa-cli deep-research(如果命令失败,则添加 @latest)

如果通过 pip 全局安装了 aipa,请在每个会话开始前更新:

pip install --upgrade aipa-cli

Agent 应优先使用 uvx aipa-cli 执行所有命令。仅当 uvx 不可用时,才回退到 aipa。

环境变量

变量必需默认值用途
OPENAI_API_KEY仅在使用 --run 时需要—LLM 提供方的 API 密钥
OPENAI_BASE_URL否OpenRouterOpenAI 兼容 API 的基础 URL
OPENAI_MODEL否openrouter/owl-alpha用于分析的模型

运行 aipa setup 进行交互式首次配置。设置会保存到 ~/.aipriceaction/settings.json。

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)一致。


执行前:询问用户

停止。此时不要运行任何命令。你必须先调用 AskUserQuestion(或兼容 Agent 中的 question / QuestionTool)询问用户希望使用哪种模式。

如果在询问用户前运行了任何 aipa 命令,即表示操作失败。务必先询问。

使用 AskUserQuestion 工具(或等效的 question 工具)询问用户:

  1. 快速研究(推荐) — 运行 aipa deep-research 获取市场快照,然后由你(AI Agent)使用子 Agent 和 aipa get-ohlcv-data 复现多 Agent 工作流。无需 API 密钥。这是推荐的默认方式——无需等待 5-10 分钟即可获得详尽结果。
  2. 完整工作流(--run) — 运行 aipa deep-research --run,使用实际的 CLI 多 Agent 工作流。需要 5-10 分钟,并且需要通过 aipa setup 配置 API 密钥。

只有当用户的请求明确表示希望运行完整 CLI 工作流时,才可跳过询问(例如:“运行完整工作流”“使用 --run”)。

  • 如果用户选择快速研究:遵循下方的快速研究:Agent 驱动的工作流部分。
  • 如果用户选择完整工作流:运行 aipa deep-research --run [QUESTION] 并展示 stdout 输出。

可用数据源

  • 越南股票(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 in deep-research worker assignments
aipa watchlist get VN30  # use these tickers for the VN30 sector worker
支持的时间间隔
时间间隔描述
1m1 分钟
5m5 分钟
15m15 分钟
30m30 分钟
1h1 小时
4h4 小时
1D1 天(默认)
1W1 周
2W2 周

aipa deep-research — 多 Agent 研究流水线

默认行为(不带标志运行 aipa deep-research)是获取并打印市场快照。添加 --run 可执行完整的多 Agent 流水线。使用 --source 可选择不同市场——主管、工作者、提示词和默认问题都会根据所选数据源进行调整。

aipa deep-research [QUESTION] [options]
标志
标志默认值描述
QUESTION市场概览研究问题(可选)
--run关闭运行完整的多 Agent 流水线(5-10 分钟)。不带此标志时,只会转储市场快照。
--sourcevn数据源:vn、crypto、global、sjc
--resume ID—从检查点会话 ID 恢复
--output FILE—将最终报告保存到文件
--lang已保存的设置语言:en 或 vn

MA 类型: 所有 MA 指标都遵循 use_sma 设置(~/.aipriceaction/settings.json)。运行 aipa config get use_sma,在分析前查看当前启用的类型。使用 aipa config set use_sma false 可切换为 EMA,或在单独的 aipa analyze 调用中传入 --sma/--ema 标志。

用法示例
# Market snapshot only (default, fast, no API key needed)
aipa deep-research

# Crypto market snapshot
aipa deep-research --source crypto

# Market snapshot with a custom question in the output
aipa deep-research "Research banking sector"

# Run the FULL multi-agent pipeline (slow, 5-10 min, requires API key)
aipa deep-research --run

# Full pipeline for global stocks
aipa deep-research --source global --run

# Full pipeline for crypto
aipa deep-research --source crypto --run

# Full pipeline with a custom research question
aipa deep-research --run "Deep research on the banking sector: analyze top 10 banks by market cap, assess trend direction, VPA signals, MA momentum, and identify leaders vs laggards"

# Save full pipeline report to file
aipa deep-research --run --output banking_report.md

# Vietnamese output (full pipeline)
aipa deep-research --run "Phân tích toàn diện thị trường chứng khoán Việt Nam" --lang vn

# Resume an interrupted research session
aipa deep-research --run --resume abc123

流水线的工作方式

深度研究流水线采用带质量控制的多 Agent 架构:

Supervisor
    │  Decomposes question into 3-5 sector subtasks
    │  Selects top 10 tickers per sector
    ▼
Parallel Workers (fan-out)
    │  Each worker analyzes one sector
    │  Fetches OHLCV data for each ticker
    │  Produces sector-specific report
    ▼
Aggregator
    │  Synthesizes all sector reports
    │  Cross-references findings
    │  Builds unified ranking table
    ▼
Reviewer
    │  Checks data integrity
    │  Verifies MA scores and ticker coverage
    │  Approves or rejects with feedback
    ▼
Final Report
流水线阶段
  1. 市场快照:从所选数据源(--source,默认为 vn)获取所有股票代码的最新 OHLCV 数据,以识别活跃板块和股票代码。

  2. 主管:分析研究问题和市场快照,并将其拆解为 3-5 个特定板块的子任务。必选板块取决于数据源:

    • VN:银行、证券、房地产
    • Crypto:Layer 1(BTC、ETH、SOL)、DeFi、AI 代币
    • Global/Yahoo:科技、金融、能源
    • SJC:黄金/贵金属

    根据市场活跃度额外添加 0-2 个板块。

  3. 并行工作者:每个工作者负责一个板块:

    • 获取每个分配股票代码的 OHLCV 数据(上限为 50 根柱线)
    • 为最重要的前 3 个股票代码运行成交量分布分析(范围为 30 个以上交易日)
    • 为呈现突破/反转形态的股票代码获取日内数据(1h)
    • 分析趋势方向、VPA 信号、MA 评分动量、成交量和支撑/阻力
    • 将成交量分布价位与价格走势进行交叉核对
    • 提供每个股票代码的评估、板块排名和主要风险因素
    • 工作者并发运行以提高效率
  4. 汇总器:收集所有工作者报告并综合为统一分析:

    • 对各板块的发现进行交叉核对
    • 构建多板块排名表
    • 识别跨板块轮动模式
    • 突出主要机会和风险
  5. 审核员:进行质量保证检查:

    • 确认不存在虚构股票(工作者报告中没有的股票代码)
    • 抽查 MA 评分准确性(3-5 个已报告的评分)
    • 确认表格完整
    • 根据具体反馈批准或拒绝
    • 最多进行 3 轮审核
  6. 最终输出:输出已批准的报告。如果指定了 --output,则保存到文件。

检查点与恢复

研究会话会检查点保存到磁盘。每个会话都会获得唯一 ID。中间输出会保存为 Markdown 文件:

/tmp/aipriceaction-checkpoints/{session_id}/
├── worker_Technology.md
├── worker_Financials.md
├── worker_Energy.md
├── worker_Additional_Sector.md
├── aggregator_output.md
└── final_report.md

使用 --resume ID 继续中断的会话或先前已完成的会话。


快速研究:Agent 驱动的流水线

这是推荐的研究方式。运行 aipa deep-research 获取市场快照,然后由你(AI Agent)使用子 Agent 编排多 Agent 流水线。此方式能产出同样详尽的结果,且不需要 API 密钥或运行 aipa setup。

步骤 1 — 获取市场快照

运行 aipa deep-research(不带 --run)以获取最新市场快照。使用 --source 选择市场(默认值:vn)。这将提供市场背景,供你分发给各个工作单元。

# VN stocks (default)
aipa deep-research

# Crypto
aipa deep-research --source crypto

# Global stocks
aipa deep-research --source global
步骤 2 — 多视角表现扫描(可选,但建议执行)

运行 aipa performers,使用多个 --sort-by 值交叉参考市场异动情况。这有助于丰富你的行业分析。

aipa performers                                          # top gainers / worst losers
aipa performers --sort-by value                          # where the money flows
aipa performers --sort-by ma50_score                     # trend strength
# For sector-specific:
aipa performers --group NGAN_HANG --sort-by value
# For crypto:
aipa performers --source crypto --sort-by value
步骤 3 — 主管(你)

根据市场快照和表现扫描结果,将研究问题拆解为 3-5 个行业专项子任务。必选行业取决于数据源:

  • VN:银行、证券、房地产
  • Crypto:Layer 1、DeFi、AI 代币
  • Global:科技、金融、能源
  • SJC:黄金 / 贵金属

根据市场活跃情况再增加 0-2 个行业。每个行业选取约 10 个股票代码。

步骤 3.5 — 基本面背景(可选,仅限 VN)

版本要求: aipa fundamentals 要求 aipa-cli >= 0.1.48。使用前运行 aipa --version 进行确认。

对于 VN 股票研究,基本面能提供重要背景。**仅当用户要求基本面分析,或估值 / 财务健康状况与研究问题相关时,才纳入基本面分析。**对于纯技术分析研究,不要自动运行基本面分析。如果用户提到“报告”或“báo cáo”,他们可能需要基本面分析;如不确定,请先询问确认。

如有必要,在主管步骤中加入基本面筛选。**请遵循以下 3 步工作流,不要只对每个股票代码单独调用 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

# Historical year
aipa fundamentals rank --year 2023 --sort-by roe

# Specific quarter
aipa fundamentals rank --period "2016 Q4" --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

# Top stocks by ROE across all VN
aipa fundamentals rank --sort-by roe --limit 20

步骤 2:筛选优质标的(可选,但建议执行)

使用 aipa fundamentals screen 按质量标准筛选。这能立即剔除较弱的候选标的:

# Only banks with acceptable asset quality AND profitability
aipa fundamentals screen --industry "ngân hàng" --npl-max 0.02 --car-min 0.10 --sort-by roe --limit 15

# Value screen: low PE + high ROE
aipa fundamentals screen --pe-max 15 --roe-min 0.15 --sort-by roe --limit 20

# Screen specific tickers by quality
aipa fundamentals screen VCB BID CTG TCB MBB --npl-max 0.015 --roe-min 0.15 --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。排名能立即显示相对位置,而筛选则可在深入分析前剔除不合适的候选标的,避免浪费令牌。

将基本面排名数据传递给各工作单元,以便它们交叉参考技术信号与基本面优势 / 劣势。

步骤 4 — 并行启动工作子 Agent

针对每个行业子任务,启动一个独立的子 Agent(使用 Task 工具),该子 Agent 将:

  • 接收行业名称、股票代码列表、研究问题和市场快照
  • 获取其负责股票代码的详细 OHLCV 数据(使用 aipa get-ohlcv-data 和 --limit 50)
  • 对其行业中最重要的 3 个股票代码运行 aipa volume-profile(依据最高交易额、最有意思的价格走势,或投资组合 / 关注列表中的股票代码进行选择)。使用多日区间,覆盖至少 30 个交易日,并以今天为结束日期
  • 对呈现突破 / 反转形态或关键 S/R 水平的股票代码,也获取日内数据(--interval 1h --limit 50),以评估入场时机
  • 分析趋势方向、VPA 信号、MA 动量、成交量模式以及支撑 / 阻力位
  • 将成交量分布水平(POC、Value Area High/Low)与 OHLCV 分析结果交叉参考
  • 在行业内对股票代码进行排名
  • 返回结构化的行业报告,包含每个股票代码的评估、排名和主要风险因素

在一条消息中并行启动所有工作子 Agent,不要依次运行。

步骤 5 — 汇总(你)

所有工作者返回后,将各行业报告综合为统一分析:

  • 交叉核对各行业的发现
  • 构建多行业排名表
  • 识别跨行业轮动模式
  • 突出关键机会与风险
步骤 6 — 审核(你)

对汇总报告进行质量检查:

  • 确认没有虚构的股票(未出现在工作者报告中的股票代码)
  • 抽查 MA 评分的合理性
  • 确认表格完整
  • 修复问题并生成最终报告

将最终报告呈现给用户。根据研究问题和用户使用的语言确定重点和输出语言。


何时使用 Research 与 Analyze

场景使用
“Analyze VCB”aipa analyze VCB(单只股票)
“Compare FPT and VNM”aipa analyze FPT VNM(快速比较)
“What's the trend for BTCUSDT?”aipa analyze BTCUSDT(聚焦问题)
“Research the banking sector”aipa-research 技能(多 Agent、覆盖整个行业)
“Comprehensive market overview”aipa-research 技能(全面扫描市场)
“Deep dive into real estate”aipa-research 技能(深入调查)
“Which sectors are leading?”aipa-research 技能(跨行业分析)
“Most active tickers right now?”aipa live-data(无 AI,即时获取热门列表)
“Top gainers / losers”aipa performers(无 AI)
“Best stocks by trading value”aipa performers --sort-by value(无 AI)
“Banking sector top movers”aipa performers --group NGAN_HANG --sort-by value(无 AI)
“Volume profile / POC / value area”aipa volume-profile TICKER(无 AI)
“What tickers are in the real estate sector?”aipa ticker-list --source vn --group BAT_DONG_SAN
主要区别
  • aipa analyze:快速,聚焦 1-5 个股票代码,仅调用一次 LLM,数秒内返回结果。
  • aipa deep-research --run:覆盖整个行业,通过多个 Agent 多次调用 LLM,耗时数分钟。生成包含质量审核的全面报告。
  • 快速研究(Agent 驱动):使用子 Agent 复现整个流程。结果全面,无需等待 CLI 执行。

在以下情况下使用 deep-research:

  • 问题涉及多个行业
  • 用户需要全面报告(而非快速概览)
  • 需要进行跨行业比较或轮动分析
  • 用户明确要求“研究”“深入分析”或“全面分析”

在以下情况下使用 analyze:

  • 问题涉及特定股票代码
  • 速度比深度更重要
  • 用户需要聚焦的回答,而非完整报告

解读输出

CLI 会向两个流输出内容:

  • stdout:最终研究报告。这是你应呈现给用户的内容。
  • stderr:包含结构化标记的状态消息,用于跟踪流程进度。
状态标记(stderr)
标记含义
[build]上下文构建状态与耗时
[tool]正在执行的工具调用(例如,获取 OHLCV 数据)
[tool-result]工具执行结果已返回
[thinking]Agent 推理令牌
[error]错误消息
[done]流程完成,包含总耗时
[result]后面是最终研究报告输出

向用户呈现结果时,始终使用 stdout 输出(最终批准的报告)。

署名

向用户呈现任何研究报告时,始终在回复末尾添加署名:

  • 英语:"数据由 AIPriceAction 提供 | AI 生成的分析,可能存在错误。交易前请核实。"
  • 越南语:"数据由 AIPriceAction 提供 | AI 生成的分析,可能存在错误。交易前请核实。"

不要说“分析由 AIPriceAction 提供”或“phân tích được cung cấp bởi AIPriceAction”。AIPriceAction 提供的是数据;分析由 AI 生成,可能并不准确。


分析框架

进行分析时(无论通过工作线程还是由 Agent 驱动的流水线),请遵循以下优先事项:

  1. 量价行为(VPA)分析:始终分析价格与成交量之间的关系,以识别聪明资金的行为、吸筹/派发形态,并确认趋势强度
  2. 量价确认:关注价格走势是否得到成交量确认——突破时成交量增加(看涨),而上涨时成交量减少(看跌背离)
  3. Wyckoff 阶段:根据量价形态识别市场阶段(吸筹、拉升、派发、下跌)。关键事件:Spring(弹簧)、Upthrust(上冲回落)、SOS(强势信号)、SOW(弱势信号)、Buying Climax(买入高潮)、Test for Supply(供应测试)
  4. 结合成交量分析支撑位/阻力位:高成交量伴随的关键价位更重要——关注支撑位/阻力位处的成交量激增
  5. 成交量趋势与峰值:将当前成交量与近期平均成交量(例如 20 日均量)进行比较,不要只与前一日成交量比较。如果日环比百分比大幅跳升(如 volume_changed +92%),但前一日流动性异常低,这就是一个错误信号。在声称出现“爆发式放量”“派发”或“高潮”事件前,务必先根据平均成交量核实绝对成交量。
  6. 极端价格变动:检测超过 ±6.7%/日(越南市场涨跌停幅度)的走势,并搜索近期新闻/事件以查明原因
  7. 风险管理:每项分析都必须包含正面(机会、优势、看涨信号)和负面(风险、弱点、看跌信号)信息。用具体价位量化下行风险,指出哪些情况会推翻当前判断,绝不要只呈现单方面观点
  8. Nhóm Chủ Lực(核心市场板块——仅限越南市场):分析越南市场时,务必将股票代码置于各自的“Nhóm Chủ Lực”(核心板块)背景下,以评估系统性资金流向。主要板块包括:
    • Nhóm Ngân hàng(银行): VCB、BID、CTG、TCB、MBB、ACB、VPB、HDB、SHB、TPB、VIB、SSB、MSB、STB、LPB、EIB。
    • Nhóm Bất động sản(房地产): VIC、VHM、VRE、VPL、DIG、CEO、L14、TCH、HHS、VGC、IDC。
    • Nhóm Chứng khoán(证券): SSI、VND、HCM、VCI、SHS、VIX、VDS。
    • Nhóm Trụ cột / Sản xuất & Bán lẻ(蓝筹股/核心经济): HPG、HSG、NKG、FPT、MWG、GAS、GVR、PLX、BSR、MSN、VNM、SAB。
    • Nhóm Hệ sinh thái(企业生态圈):
      • 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. 主动使用工具——在生成任何分析前,先获取 OHLCV 数据。仅有市场快照并不足够——每项分析都必须至少调用一次 get-ohlcv-data 工具
  4. 研究新闻或事件时,务必注明来源名称(例如,“来源:CafeF”“来源:VNExpress”)
  5. 交易时段:越南市场交易时间为 ICT(UTC+7)09:00–15:00,周一至周五。加密货币市场全天候交易。如果最新一根 K 线的成交量异常低,交易时段可能仍在进行中

T+2 结算规则(仅适用于越南股票)

此规则仅适用于越南股票(--source vn)。 加密货币和全球股票不受 T+2 结算规则约束。

重要: 在越南股市购买的所有股票,只能在 T+2 当天下午(具体为 T+2 日 13:00,即下午 1:00,而非 T+3)结算并可用于交易(卖出)。

  • 绝不能在 T+1(买入后的第一个工作日)提出或尝试执行止损或止盈操作,因为股票尚未结算。
  • 提出卖出建议时,务必核查相关股票持仓的买入日期。

投资组合文件

Agent 会在工作目录中查找投资组合文件以跟踪持仓。可接受的文件名(按检查顺序排列):

  1. DANH_MUC.md
  2. PORTFOLIO.md
  3. ACCOUNT.md

如果这些文件都不存在,Agent 应询问用户是否要创建一个。

观察列表文件

Agent 还会查找观察列表文件,以跟踪正在关注的股票代码(尚未持仓)。可接受的文件名(按检查顺序排列):

  1. THEO_DOI.md
  2. WATCHLIST.md

此文件用于跟踪潜在的入场标的。请填写:股票代码、行业、关注原因、入场区间、关键价位和添加日期。

风险管理规则(必须遵守)

  1. 提出卖出建议前,务必核查结算状态(仅适用于越南股票)——将买入日期与今天对照。越南股票须等到 T+2 当天下午才能卖出。不适用于加密货币或全球股票。
  2. 每次分析都必须量化风险——提供具体的止损和止盈价位及其依据,说明什么情况会使投资逻辑失效,并计算风险回报比。
  3. 绝不只呈现单方面的分析——每个股票代码都必须同时包含看涨信号和看跌风险。
  4. 关注仓位规模——当投资组合中某个行业的占比超过 30% 时,提示集中度风险。
  5. 每日检查投资组合——标记已结算的持仓,检查是否触及止损/止盈位,并提示投资逻辑的变化。

严格的数据读取与验证(关键)

**症状:**误读或臆造价格与移动平均线之间的关系(例如,实际股价高于 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"
  • **明确比较数值:**在判断趋势是否破坏或仍然完好之前,明确写出正在比较的数值:[收盘价] vs [MA/EMA 数值]。
    • 示例:“收盘价为 17.750,EMA20 为 16.881。17.750 > 16.881 → 价格高于 EMA20(趋势完好)。”
  • 突破验证:突破(显著上涨 + 成交量放大)会在结构性突破位形成关键支撑——即突破前整理区间的顶部、前期波段高点或形态颈线。突破 K 线的最低价不是可靠的失效判断位:由于跳空开盘、盘中噪声或入场 K 线波动剧烈,价格可能大幅低于结构位。
    • 正确的失效条件是回落至结构性突破位下方,而不是跌破该 K 线的最低价。
    • 如果价格回调但仍处于结构位上方,突破就仍然有效——这是健康回调。
    • 如果价格跌破结构性突破位,则属于突破失败/结构破坏。
    • *操作:*始终先识别突破前的结构,再判断回调是健康的(在结构位上方)还是突破失败(在结构位下方)。

不要过早止盈(Chốt Non)— 关键

**症状:**仓位盈利 1-3%,Agent 却因“达到 TP1”而建议部分或全部平仓,忽略了 Wyckoff 交易逻辑(E 阶段上涨/SOS/LPS 尚未确认)。

规则:

  1. **当盈亏比入场价高出的幅度不足 1× ATR(14) 时,绝不要建议止盈(部分或全部)。**如果没有 ATR 数据:D/E 阶段上涨时,利润不足 3% 不要止盈;吸筹突破时,利润不足 5% 不要止盈。

  2. 提及“止盈”前,务必先检查 Wyckoff 阶段:

    • **E 阶段上涨/SOS 突破:**不要止盈——趋势才刚开始。这是趋势交易,不是短线交易。
    • **再吸筹/Spring 测试:**不要止盈——仓位才刚建立。
    • 只有出现派发迹象时才考虑止盈(成交量高潮、周线看跌吞没、上涨延续较长时间后的 Upthrust)。
  3. 建议止盈前检查动能:

    • 价格是否处于波段高点,且成交量高于 20 日均值?
    • 是否出现派发 K 线(射击之星、看跌吞没、成交量激增)?
    • 上方是否有周线阻力位?
    • 如果以上 3 项均为否 → **禁止止盈。**让利润继续奔跑。
  4. 过早止盈检查清单(每次建议卖出/减仓前都要检查):

    问题通过/未通过
    盈亏比 > 3%?
    Wyckoff 阶段是否为派发/Upthrust?
    是否存在派发迹象(成交量高潮、周线看跌)?
    周线图上方是否显示强阻力?

    如果4 项均为否 → **禁止止盈。**在报告中说明原因。

  5. 有限例外:只有当用户明确提出要求或急需流动性时,才允许过早止盈。Agent 绝不能自主建议任何形式的过早止盈(包括“锁定利润”“降低风险”等)。


加仓规则 — 建议加仓,而非过早止盈

症状: 持仓上涨 2-3%,Agent 却建议部分止盈。实际上,Agent 应该寻找加仓机会——表现良好的持仓是继续增持的候选,而不是减仓的对象。

思维转变: 当持仓表现良好(上涨 2-5%,且得到量价行为确认)时,正确的做法是:

  • 不要:“在此处止盈 50%”
  • 应该:“以下是可以在回调时加仓 / 突破确认后加仓的位置”

规则:

  1. 当持仓盈利且交易逻辑依然成立时,考虑止盈前,务必先检查是否有加仓形态。 加仓计划必须在入场时确定(不能等持仓变动后才临时制定)。

  2. 两种有效的加仓情形(必须在入场时选定一种):

    • 回调加仓(Zone B): 价格回调至更低的价值区,且成交量萎缩(No Supply)。例如:GAS 在 84,800 买入 → 在低成交量测试时于 82,500-83,500 加仓。
    • 突破加仓: 价格放量突破明确的结构位(区间顶部、波段高点),成交量 > 20 日均量的 1.5 倍。例如:ACB > 25,500 且成交量 > 40M。
  3. 没有结构性理由时,绝不按市价加仓。“动能很强”不是理由——等待价格回调至预定义区域才是。

  4. 每次提出建议前都要检查是否适合加仓:

    问题通过/不通过
    原有的 Wyckoff 交易逻辑是否依然成立?
    价格是否处于预定义的加仓区域(而非无明确方向的区域)?
    成交量是否确认?(回调 = 低位 / 萎缩,突破 = 放大 / 激增)
    持仓是否没有测试其 SL?
    如果这笔加仓作为独立交易,风险回报比是否 ≥ 1:1?

    如果全部通过 → 建议加仓。如果任何一项未通过 → 仅持有,不加仓。

  5. 每笔持仓最多加仓 2 次。 达到最大仓位后,只需持有并让趋势延续。不得继续金字塔式加仓。


强制预检 — 每次入场决策前的安全关卡

症状: 在低时间周期(15m/1h)上分析入场,却不检查更高时间周期的结构——漏掉会使交易逻辑失效的历史供应区(Buying Climax、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]

这是一个安全关卡,不是分析。目的是在投入 Token 进行深入分析前,识别结构性风险信号:

检测结果含义操作
当前价格区域出现 Buying Climax (BC)历史成交量峰值 = 大量供应不要在此处入场。降低入场区域或取消。
Upthrust After Distribution (UTAD)假突破,牛市陷阱取消入场。等待价格回到区间内。
周线趋势看跌(价格低于周线 MA20/50)总体趋势向下不要做多。等待周线反转。
SOS 确认 + 周线上涨真正的突破✅ 继续进行入场分析。
Spring 位于 POC + 周线支撑成功的底部测试✅ 入场有效。

每次入场前的预检清单:

□ 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 (Last Point of Support)。忽略了 5 月 20 日的 Buying Climax(最高价 77,432,收盘价 76,643,成交量 26M — 均量的 2.2 倍);这正是价格在 6 月 4 日于 76,300-76,500 回测的同一供应区。预检(日线 60 + 周线 52 + VP 30d)本可以立即发现 BC,并阻止在该价位提出任何买入建议。


使用 Python 计算指标——杜绝幻觉数字

症状: AI 根据日环比变化百分比(较昨日 +557%),而不是计算实际的成交量与平均值倍数,写出“成交量为平均值的 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. 快速研究是默认方式:除非用户明确要求使用 --run,否则运行 aipa deep-research 获取快照,然后自行编排整个流程(上文步骤 1-5)。

  2. 问题要具体:默认问题会生成概括性的市场综述。若想获得更好的结果,请提出具体的研究问题,聚焦感兴趣的行业或主题。

  3. 保存报告:使用 --run 时,通过 --output FILE 保存报告。这便于分享或日后查阅。

  4. 失败后恢复:如果 --run 会话中断,输出中会显示会话 ID。使用 --resume ID 继续。

  5. 越南语分析:如果用户使用越南语交流或希望获得越南语输出,请添加 --lang vn。对于快速研究,请使用用户所用语言撰写报告。

  6. 结合分析功能:如需完整的工作流,先用深度研究了解整体情况,再用 analyze 深入分析研究中发现的特定股票代码。

  7. 流程会自动纠错:审核者可能会拒绝聚合器的输出并要求修改。这是正常的,有助于确保质量。流程最多重试 3 次。

  8. 必选行业因数据源而异:每个数据源都有各自的必选行业(例如,VN 包括银行/证券/房地产,加密货币包括 Layer 1/DeFi/AI 代币,全球市场包括科技/金融/能源)。主管会根据市场状况额外添加 0-2 个行业。

  9. 自动转为大写:问题中的股票代码会自动处理。流程会在内部将其转换为大写。

  10. 研究非 VN 市场时使用 --source:添加 --source crypto、--source global 或 --source sjc 以研究其他市场。主管、工作者、工具和默认问题都会自动适配所选数据源。

  11. 使用 aipa performers 找出领涨和落后者——从多个角度运行:在研究前或研究过程中,使用多个 --sort-by 值运行 aipa performers。至少始终运行以下两项:默认值(价格变化)和 value(交易额)。添加 MA 评分以了解趋势背景。交叉参考这些列表有助于为行业工作者挑选更合适的股票代码,并为最终报告提供更丰富的排名背景。

    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 --source crypto --sort-by value          # 按交易额排列的加密货币
    aipa performers --group NGAN_HANG --sort-by value        # 按交易额排列的银行业
    aipa performers --group CHUNG_KHOAN --sort-by close_changed  # 证券业涨幅最大者
    
  12. 使用 aipa volume-profile 查找关键价格位:当工作者需要了解某个行业的支撑位/阻力位时,对涨跌幅最大的标的运行 aipa volume-profile TICKER,以获取 POC、价值区间和成交量加权统计数据。优先使用多日区间,而非单日剖面——这样得出的支撑位/阻力位更可靠,也能平滑日内噪声。默认使用 --start-date 和 --end-date,覆盖至少 20 个交易日。只有在用户明确要求查询某个特定日期时,才使用单日 --date。示例:

    • aipa volume-profile VCB --start-date 2026-04-14 --end-date 2026-05-09 — 1 个月区间(首选默认值)
    • aipa volume-profile VCB --start-date 2026-04-28 --end-date 2026-05-09 --bins 30 — 2 周区间
    • aipa volume-profile BTCUSDT --source crypto --bins 30 --start-date 2026-05-05 --end-date 2026-05-09 — 加密货币多日区间

评论

支持 Markdown