aipa-analyze
Developed by AIPriceAction. More data and documentation at
https://aipriceaction.com
What is aipa
is an AI-powered financial analysis CLI for Vietnamese stocks, cryptocurrencies, and global assets. It combines OHLCV price data with LLM analysis to produce actionable trading insights using frameworks like Wyckoff, VPA (Volume Price Analysis), and MA momentum scoring.
Installation
Use — it always pulls the latest version from PyPI automatically. No install step needed.
bash
# Preferred: uvx (always up-to-date, no install needed)
uvx aipa-cli analyze VCB
# Fallback: pip (if uv is not available)
pip install aipa-cli
aipa analyze VCB
# Last fallback: system pip (if pip fails due to PEP 668)
python3 -m pip install aipa-cli --break-system-packages
aipa analyze VCB
All command examples in this skill use
for brevity. Replace
with
if not installed globally.
Keeping the CLI Updated
The aipa CLI is actively developed with frequent improvements.
Always prefer over . When using
:
- Use plain for fast cached execution:
- Fallback on failure — if a command fails with a schema or missing argument error, retry with :
uvx aipa-cli@latest analyze VCB
If
is installed globally via
, update before each session:
bash
pip install --upgrade aipa-cli
The agent should prefer
for all commands. Only fall back to
if
is unavailable.
Environment Variables
| Variable | Required | Default | Purpose |
|---|
| Yes (for AI) | — | API key for the LLM provider |
| No | OpenRouter | Base URL for OpenAI-compatible API |
| No | | Model to use for analysis |
Run
for interactive first-run configuration. Settings are saved to
~/.aipriceaction/settings.json
.
Available Data Sources
- Vietnamese stocks (): VIC, VCB, FPT, HPG, VNM, MBB, TCB, CTG, VPB, HDB, etc.
- Cryptocurrencies (): BTCUSDT, ETHUSDT, BNBUSDT, SOLUSDT, etc.
- Global/Yahoo (): AAPL, TSLA, NVDA, SPY, etc.
- SJC Gold (): SJC gold prices
Predefined Watchlists
The CLI has built-in watchlists for common ticker groups. Use
aipa watchlist get <NAME>
to get tickers for a group, or reference them directly when the user asks about a group like "VN30 stocks" or "Vingroup ecosystem".
| Name | Tickers | Count |
|---|
| 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 |
Note: VN30 was updated on 2026-05-13 — DGC removed (placed under controlled status), BSR added as replacement.
bash
# 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 analyze
aipa analyze $(aipa watchlist get VN30)
Supported Intervals
| Interval | Description |
|---|
| 1 minute |
| 5 minutes |
| 15 minutes |
| 30 minutes |
| 1 hour |
| 4 hours |
| 1 day (default) |
| 1 week |
Note: All intervals work natively —
,
,
,
,
,
,
,
,
. Non-native intervals are aggregated client-side from base data.
— AI Analysis
Run AI-powered technical analysis on one or more tickers.
bash
aipa analyze TICKER [TICKERS...] [options]
Flags
| Flag | Default | Description |
|---|
| — | One or more ticker symbols (auto-uppercased) |
| | Time interval: , , , , , , , , |
| | Number of bars/candles to fetch |
| auto-detect | Filter by source: , , |
| — | Start date (e.g. ) |
| — | End date (e.g. ) |
| auto-detect | Reference ticker: (VN stocks), (crypto), (global) |
| saved setting | Language: or |
| | Moving average type: or |
| template 0 | Custom analysis question (overrides templates) |
| — | List available question templates and exit |
| — | Dump raw context without calling LLM (no API key needed) |
| — | Exclude system prompt from context output |
| — | Show thinking tokens during analysis |
Usage Examples
bash
# Basic single-ticker analysis
aipa analyze VCB
# Multi-ticker comparison
aipa analyze VCB TCB MBB CTG VPB
# Specific interval and bar count
aipa analyze BTCUSDT --interval 4h --limit 50
# Custom date range
aipa analyze FPT --start-date 2025-01-01 --end-date 2025-05-01
# Custom analysis question
aipa analyze VIC --question "What is the Wyckoff phase and what are the key price targets?"
# Vietnamese language output
aipa analyze VNM --lang vn
# Dump raw data context without AI analysis (no API key needed)
aipa analyze VCB --context-only
# Show thinking tokens during analysis
aipa analyze HPG --verbose
# Override auto-detected reference ticker
aipa analyze VCB --reference-ticker VN30
# Specific source
aipa analyze BTCUSDT --source crypto
Analysis Workflow
Follow this multi-step workflow for every analysis request. Do NOT just run
and stop.
Step 1: Daily Timeframe Analysis
Run
on the daily chart first. Use
minimum for sufficient context. For Wyckoff phase identification or TP setting, use
or higher.
bash
aipa analyze VCB --limit 50
Step 2: Volume Profile for Support/Resistance
Run
to get structural price levels (POC, Value Area, high-volume nodes). Use a multi-day range covering at least 20 trading days.
bash
aipa volume-profile VCB --start-date 2026-04-14 --end-date 2026-05-27
Note: The dates above are examples. Always use a range covering at least
30 trading days (roughly 6 calendar weeks) ending on today. Calculate
dynamically.
Cross-reference the volume profile levels with the daily analysis — key S/R levels with high volume clusters are more significant.
Step 3: Intraday Deep Dive (If Needed)
Based on the daily analysis, decide whether an intraday look adds value:
| Trigger | Action |
|---|
| Daily shows breakout/reversal forming NOW | Run to see entry timing |
| Daily shows tight consolidation near key level | Run to check for patterns |
| User asks about entry/exit timing or scalping | Run --interval 15m --limit 50
for micro structure |
| Daily chart is clear and no timing ambiguity | Skip intraday — daily analysis is sufficient |
bash
# 1h for entry/exit timing
aipa analyze VCB --interval 1h --limit 50
# 15m for scalping or micro structure
aipa analyze VCB --interval 15m --limit 50
Step 4: Present Combined Analysis
Synthesize all steps into a single response:
- Daily chart: Trend, Wyckoff phase, key levels
- Volume profile: Structural S/R with volume confirmation
- Intraday (if run): Entry/exit timing, short-term patterns
Do NOT present each step as a separate section. Combine insights into a coherent analysis.
When to Use This Skill vs Others
| User Request | Use |
|---|
| "Analyze VCB" | |
| "Compare FPT and VNM" | |
| "Wyckoff analysis for HPG" | aipa analyze HPG --question "Wyckoff analysis with phases, events, and price targets"
|
| "Research the banking sector deeply" | Use the skill instead |
| "Get price data for VCB" | Use the skill instead |
| "Show me OHLCV candles for BTC" | Use the skill instead |
| "What are the top stocks today?" | (no AI, quick market overview) |
| "Top gainers / losers" | (no AI) |
| "Best stocks by trading value" | aipa performers --sort-by value
(no AI) |
| "Volume profile / POC / value area" | aipa volume-profile TICKER
(no AI) |
| "What banking stocks are available?" | aipa ticker-list --source vn --group NGAN_HANG
|
Key rule:
AI insights → , raw numbers → , comprehensive report → , quick market overview → .
Question Templates
The CLI includes pre-built analysis question templates organized by framework. Use
to list all available templates.
Single-Ticker Templates (English)
| Index | Template | Description |
|---|
| 0 | Trading Opportunity | Wyckoff phases, Smart Money behavior, deployment roadmap, risk management |
| 1 | News & Events Research | Detect extreme moves (>6.7% or Volume >150%), web search for causes |
| 2 | Price Action & Volume | VPA analysis, smart money footprints, supply/demand zones |
| 3 | MA Momentum & Trend | MA alignment, crossover detection, volume confirmation |
| 4 | Wyckoff Method | Wyckoff phases, Spring/Upthrust/SOS events, price targets |
| 5 | Bob Volman Price Action | Micro pullback entries, breakout/fading setups, trade planning |
Multi-Ticker Templates (English)
| Index | Template | Description |
|---|
| 0 | Trading Opportunity | Analyze all tickers, rank by opportunity quality |
| 1 | Stock Performance Comparison | Compare price action strength, MA momentum, volume |
| 2 | Market Trend Analysis | Sector rotation via MA scores, accumulation/distribution |
| 3 | Risk & Support/Resistance | Map S/R levels with volume context |
| 4 | News & Events Research | Detect extreme moves across multiple tickers |
| 5 | Bob Volman Price Action | Applied to multiple tickers with ranking |
| 6 | Wyckoff Method | Multi-ticker Wyckoff analysis with ranking |
Vietnamese translations exist for all templates (use
).
Using Templates
bash
# List all templates
aipa analyze --questions
# Use a specific template by index (TUI only: /analyze VCB 2)
# In CLI, use --question for custom questions
aipa analyze HPG --question "Phân tích theo phương pháp Wyckoff: xác định pha, sự kiện quan trọng (Spring/Upthrust/SOS), mục tiêu giá và xác nhận khối lượng"
Interpreting Output
The CLI outputs to two streams:
- stdout: The final analysis result (the AI's response). This is what you should present to the user.
- stderr: Status messages with structured markers for tracking progress.
Status Markers (stderr)
| Marker | Meaning |
|---|
| Context building status and timing |
| Analysis question being sent to the LLM |
| Tool call being executed (e.g., fetching OHLCV data) |
| Tool execution result returned |
| Agent reasoning tokens (only with ) |
| Error message |
| Analysis complete, includes total time |
| Final analysis output follows |
When presenting results to the user, always use the stdout output (after the
marker in stderr).
Attribution
When presenting any analysis to the user, always include an attribution line at the end of your response:
- 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."
Do NOT say "analysis provided by AIPriceAction" or "phân tích được cung cấp bởi AIPriceAction". AIPriceAction provides the data; the analysis is AI-generated and may be inaccurate.
No API Key — Agent Fallback
When
is not set,
prints the raw context to stdout and exits with
messages instead of an error. The context contains all the OHLCV data, MA scores, and market metadata needed for analysis.
If you are an AI agent and see this fallback output, you should perform the analysis yourself using the printed context:
- Read the OHLCV data, MA scores, and market context from the stdout output
- Apply the same analytical framework the CLI would have used (Wyckoff, VPA, MA momentum, etc.)
- Produce the analysis result as if the LLM agent had generated it
- Present the result to the user in the same format the CLI normally would
The context output is identical to
aipa analyze --context-only
, so treat it as your input data and do the reasoning yourself.
Fundamentals: Ask Before Running
Do NOT automatically run commands unless the user explicitly asks for fundamental data or fundamental analysis (phân tích cơ bản). Technical analysis (VPA, Wyckoff, MA) is the default. Only fetch fundamentals when:
- The user explicitly says "fundamentals", "fundamental analysis", "cơ bản", "phân tích cơ bản", "PE", "ROE", "NPL", "CAR", etc.
- The user asks about valuation, profitability, or financial health
- The user asks to compare stocks by financial metrics (not price action)
Version gate: requires
aipa-cli >= 0.1.43. Verify before use:
If < 0.1.43, upgrade:
or
pip install --upgrade aipa-cli
.
NOTE: and
are NOT valid for
commands. Do NOT add them.
When fundamentals are relevant, use these commands to enrich your technical analysis:
bash
# Quick company snapshot
aipa fundamentals info VCB
# Latest financial ratios
aipa fundamentals ratios VCB --latest
# Bank-specific metrics (NPL, CAR, CASA, CIR)
aipa fundamentals ratios VCB --category bank --latest
# Compare ROE across peers
aipa fundamentals rank VCB BID CTG TCB MBB --sort-by roe
# Screen for value stocks
aipa fundamentals screen --pe-max 15 --roe-min 0.15 --sort-by roe
# Screen banking sector for asset quality
aipa fundamentals screen --industry "ngân hàng" --npl-max 0.015 --sort-by npl --direction asc
How Fundamentals Enhance Technical Analysis
When the user asks for fundamentals, combine technical and fundamental views:
- Valuation context: Is the stock expensive (high PE/PB) or cheap? A breakout at PE=8 is different from PE=30.
- Bank health (VN banks): NPL, CAR, CASA, CIR provide critical risk context. High NPL + bearish technicals = strong sell signal.
- Profitability confirmation: High ROE/ROA supports bullish thesis. Declining margins = fundamental weakness beneath technical strength.
- Screening for candidates: Use and to find fundamentally strong stocks, then apply technical analysis to time entries.
Fundamental Comparison Workflow
When comparing fundamentals across multiple tickers (e.g., "compare VCB TCB MBB fundamentals", "which bank is healthiest", "rank banks by NPL"), follow this workflow.
Do NOT just call aipa fundamentals ratios TICKER --latest
for each ticker individually — that produces N separate outputs that are hard to compare. Use
and
first.
Step 1: Side-by-side ranking (mandatory)
Use
with the specific tickers to get a comparative table in a single call. Run at least 2 perspectives relevant to the sector:
bash
# 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
Step 2: Screen for quality (optional but recommended)
Use
with the tickers to filter by quality criteria. This eliminates weak candidates immediately:
bash
# 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
Step 3: Individual deep dive (only for shortlisted tickers)
Only after Steps 1-2, use
for individual tickers that ranked at the top or need further investigation. Use
for company context:
bash
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
Why this matters: and
return all tickers in a single comparative table — far more efficient than calling
N times for N tickers and trying to manually compare across outputs. The ranking shows relative position immediately, and the screen eliminates unsuitable candidates before wasting tokens on deep dives.
Analysis Framework
When performing analysis (either via the CLI or as agent fallback), follow these priorities:
- Volume Price Action (VPA) Analysis: Always analyze the relationship between price and volume to identify smart money behavior, accumulation/distribution patterns, and confirm trend strength
- Price-Volume Confirmation: Look for volume confirmation on price movements — increasing volume on breakouts (bullish) vs decreasing volume on rallies (bearish divergence)
- Wyckoff Phases: Identify market phases (Accumulation, Markup, Distribution, Markdown) based on price-volume patterns. Key events: Spring, Upthrust, SOS (Sign of Strength), SOW (Sign of Weakness), Buying Climax, Test for Supply
- Support/Resistance with Volume: Key levels are more significant when accompanied by high volume — look for volume spikes at support/resistance
- Volume Trends: Compare current volume to recent average volume to gauge conviction behind price moves
- Extreme Price Changes: Detect moves exceeding ±6.7%/day (VN market limit) and search recent news/events to find causes
- Risk Management: Every analysis must include both positive (opportunities, strengths, bullish signals) and negative (risks, weaknesses, bearish signals) insights. Quantify downside risk with specific price levels, identify what would invalidate the current thesis, and never present a one-sided view
- Fundamental Context (when requested): When the user asks for fundamentals, enrich the technical analysis with PE, PB, ROE, NPL, CAR, and other financial metrics. Fundamentals do NOT replace technical analysis — they add context.
- Nhóm Chủ Lực (Core Market Sectors - VN Market Only): When analyzing the Vietnamese market, always contextualize tickers within their respective "Nhóm Chủ Lực" (Core Sectors) to assess systemic flow. The key groups are:
- Nhóm Ngân hàng (Banking): VCB, BID, CTG, TCB, MBB, ACB, VPB, HDB, SHB, TPB, VIB, SSB, MSB, STB, LPB, EIB.
- Nhóm Bất động sản (Real Estate): VIC, VHM, VRE, VPL, DIG, CEO, L14, TCH, HHS, VGC, IDC.
- Nhóm Chứng khoán (Securities): SSI, VND, HCM, VCI, SHS, VIX, VDS.
- Nhóm Trụ cột / Sản xuất & Bán lẻ (Blue-chips / Core Economy): HPG, HSG, NKG, FPT, MWG, GAS, GVR, PLX, BSR, MSN, VNM, SAB.
- Nhóm Hệ sinh thái (Corporate Ecosystems):
- Họ Vingroup: VIC, VHM, VRE, VPL.
- Họ Bầu Thụy: STB, LPB, THD, HAG.
- Họ Gelex ("Tuấn Mượt"): GEX, GEE, VIX, VGC, EIB, IDC.
- Họ Hoàng Huy: TCH, HHS.
- Họ A7: DIG, CEO, L14.
- Họ TTC (Thành Thành Công): SBT, GEG, VDS.
- Họ Masan: MSN, MCH, MSR, MML, VCF, VSN, NET.
(Note: This classification applies only to the Vietnamese market. Crypto and Global markets do not use this specific grouping yet).
Data Usage Policy (CRITICAL)
- NEVER generate, guess, estimate, or hallucinate any numbers — prices, volumes, MA values, MA scores, percentages, dates, or any financial data. Only use data from tool results or user-provided context
- NEVER mention a specific number unless it appears in your tool results or user-provided context
- Use tools proactively — call , , and/or BEFORE answering price-related questions
- When researching news or events, ALWAYS include the source name (e.g., "Source: CafeF", "Source: VNExpress")
- Trading Hours: VN market trades 09:00–15:00 ICT (UTC+7), Mon–Fri. Crypto 24/7. If the latest bar shows unusually low volume, the session may still be in progress
T+2 Settlement Rule (VN stocks only)
This rule applies ONLY to Vietnamese stocks (). Crypto and global stocks are not subject to T+2 settlement.
IMPORTANT: For all stock purchases in the Vietnamese stock market, shares are only settled and available for trading (selling) on the afternoon of T+2 (specifically at 13:00 / 1:00 PM on day T+2, not T+3).
- NEVER propose or attempt to execute any Stop Loss or Take Profit actions on T+1 (the first business day after the purchase), as the shares have not yet settled.
- Always check the purchase date of any stock positions when recommending sell actions.
Portfolio File
The agent looks for a portfolio file in the working directory to track positions. Accepted file names (checked in order):
If none exists, the agent should ask the user whether they want to create one.
Watchlist File
The agent also looks for a watchlist file to track tickers being monitored (no positions yet). Accepted file names (checked in order):
This tracks potential entry candidates. Include: ticker, sector, watch reason, entry zone, key level, and added date.
Risk Management Rules (MANDATORY)
- Always check settlement status before recommending sell actions (VN stocks only) — cross-reference buy date with today. For VN stocks, shares are NOT sellable until afternoon of T+2. Does NOT apply to crypto or global stocks
- Every analysis must quantify risk — include specific Stop Loss and Take Profit levels with reasoning, state what invalidates the thesis, calculate risk-reward ratio
- Never present one-sided analysis — every ticker must have both bullish signals and bearish risks
- Position sizing awareness — flag concentration risk when >30% of portfolio is in one sector
- Daily portfolio review — mark settled positions, check SL/TP hits, flag thesis changes
Strict Data Reading & Validation (CRITICAL)
Symptom: Misreading or hallucinating the relationship between Price and Moving Averages (e.g., stating a stock is "below EMA20" when it is actually above), or misclassifying a technical event (e.g., calling a failed breakout a "healthy pullback").
Rules:
- Row-by-Row Verification: When reading OHLCV data output from the CLI, you MUST strictly read the exact row for the exact date requested. Do not accidentally read data from an adjacent row or a different ticker's block in multi-ticker outputs.
- Precision Filter with Grep: To minimize reading errors and context volume, always use to isolate your target dates across one or multiple tickers. Use as your header anchor.
- Surgical view (Header + Today + Breakout Day):
uvx aipa-cli get-ohlcv-data TCB MSB STB | grep -E "time|2026-05-27|2026-05-07"
- Comparing recent days:
uvx aipa-cli get-ohlcv-data VND | grep -E "time|2026-05-27|2026-05-26"
- Explicit Value Comparison: Before concluding whether a trend is broken or intact, explicitly state the values being compared: vs .
- Example: "Close is 17.750, EMA20 is 16.881. 17.750 > 16.881 → Price is ABOVE EMA20 (Trend intact)."
- Breakout Validation: A breakout (significant positive price change + high volume) creates a critical support at the structural breakout level — the top of the pre-breakout base/range, the prior swing high, or the pattern's neckline. The breakout candle's Low is NOT a reliable invalidation point: it can extend well below the structural level due to gap opens, intraday noise, or volatile entry bars.
- The correct invalidation is a fall back below the structural breakout level, not below the candle's Low.
- If price pulls back but stays above the structural level, the breakout is intact — this is a healthy pullback.
- If price falls below the structural breakout level, it is a Failed Breakout / Structural Violation.
- Action: Always identify the pre-breakout structure first. Only then assess whether a pullback is healthy (above structure) or a failure (below structure).
Tips for AI Agents
-
Auto-uppercase: Ticker symbols are automatically converted to uppercase. You can pass
,
, etc. — they will be treated as
,
.
-
Use for data inspection: If you only need to see what data is available without spending API credits, use
aipa analyze VCB --context-only
.
-
Default is good enough: The default template (index 0, Trading Opportunity) is comprehensive. Only specify
when the user has a specific analytical framework in mind.
-
Multi-ticker for comparisons: When the user asks to "compare" or "which is better", pass multiple tickers:
.
-
Use for Vietnamese users: If the user writes in Vietnamese or asks for Vietnamese output, add
.
-
Use for transparency: When the user wants to see the reasoning process, add
.
-
for raw numbers: If the user asks for "price data", "candle data", or "OHLCV" without wanting AI analysis, use the
skill instead.
-
Interval matters: For intraday analysis, use
or
. For swing trading, use
. For scalping, use
or
.
-
Combine with : More bars = more context. Use
or
for deeper analysis. Default is 20.
-
Reference ticker: Auto-detected based on the ticker's source —
for VN stocks,
for crypto,
for global stocks. Use
to override.
-
Use to find tickers to analyze — run multiple perspectives: When the user asks "what should I analyze?" or "what's moving today?", run
with multiple
values to get a multi-perspective view.
Always run at least these two: default (price change) and value (trading value). Add MA scores when the user cares about trends. Cross-referencing the lists reveals more significant tickers. Then analyze the interesting ones with
.
bash
aipa performers # price change — top gainers / worst losers
aipa performers --sort-by value # trading value — where the money flows
aipa performers --sort-by ma50_score # MA50 trend — strongest/weakest medium-term trends
aipa performers --sort-by ma20_score # MA20 trend — strongest/weakest short-term trends
aipa performers --sort-by total_money_changed # money flow change — unusual capital activity
aipa performers --source crypto --sort-by value # crypto by trading value
aipa performers --group NGAN_HANG --sort-by value # banking sector by trading value
aipa performers --group CHUNG_KHOAN --sort-by close_changed # securities sector top gainers
-
Use for support/resistance context: When analyzing a ticker and the user asks about key price levels, support, resistance, or "where is the volume?", run
aipa volume-profile TICKER
to get POC (Point of Control), value area, and volume-weighted statistics.
Prefer multi-day ranges over single-day profiles — they produce more reliable support/resistance levels and smooth out intraday noise. Use
and
covering at least 20 trading days as the default approach. Only use a single
when the user explicitly asks for one specific day. Examples:
aipa volume-profile VCB --start-date 2026-04-14 --end-date 2026-05-09
— 1-month range (preferred default)
aipa volume-profile VCB --start-date 2026-04-28 --end-date 2026-05-09 --bins 30
— 2-week range
aipa volume-profile VCB --date 2026-05-08
— single date (only when specifically requested)
aipa volume-profile BTCUSDT --source crypto --bins 30 --start-date 2026-05-05 --end-date 2026-05-09
— crypto multi-day
aipa volume-profile FPT --start-date 2026-05-01 --end-date 2026-05-09 --bins 30 --value-area-pct 80
— full options