Install
$ agentstack add skill-intelliscale-alphameta-skills-alphameta-kline ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ● Network access Used
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
AlphaMeta Kline
Fetch candlestick / OHLCV data via Interactive Brokers — latest N bars, history by date range, and today's intraday minute curve. Supports 1m to month periods with split/dividend-adjusted pricing.
When to Use
- "NVDA 近一周走势" / "AAPL 1-week chart" — daily bars, 5 trading days
- "TSLA 近一个月" / "1-month chart" — daily bars, 22 trading days
- "TSLA 近一年日 K" / "AAPL 1-year chart" — daily bars, 252 trading days
- "TSLA 5 分钟 K 线 200 根" / "last 200 5m candles" — intraday bars with explicit count
- "AAPL 月 K 线" / "MSFT monthly chart" — monthly bars
- "NVDA 分时图" / "AAPL intraday today" — intraday mode
- "AAPL 2024 年日 K" / "price history Jan-Jun 2024" — history by date range
- "前复权日 K" / "forward adjusted chart" — add
adjflag
Workflow
- Resolve symbol — use standard ticker (
NVDA,AAPL,SPY). AlphaMeta handles contract resolution via its position/quote database.
- Determine mode:
- Explicit "intraday" or "today" → intraday mode
- Date-like first argument (YYYY-MM-DD, "today", "yesterday") → history mode
- Otherwise → latest N candles mode
- Map time windows — translate natural-language ranges to (
period,count). Use trading-day counts (1 year ≈ 252 trading days, 1 month ≈ 22):
- "1-week" →
day, 5 - "1-month" →
day, 22 - "3-months" →
day, 66 - "6-months" →
day, 126 - "1-year" →
day, 252 - "today / intraday" → intraday mode
- Execute command via REST API:
``bash curl -X POST "http://127.0.0.1:18080/api/v1/execute" \ -H "Content-Type: application/json" \ -d '{"cmd": "kline "}' ` Concrete examples: ``bash # Latest 100 daily bars curl ... -d '{"cmd": "kline AAPL day 100"}'
# Last 200 5m candles with split+dividend adjustment curl ... -d '{"cmd": "kline NVDA 5m 200 adj"}'
# History by date range (daily) curl ... -d '{"cmd": "kline AAPL 2025-01-01 2025-06-30 day"}'
# Today's intraday 1m chart (includes pre/after-market data) curl ... -d '{"cmd": "kline NVDA intraday"}' ```
- Interpret results — summarize the OHLCV data: range high/low, close-to-close net move, volume patterns. Use ▲/▼ for direction. Calculate net move as
(last_close - first_close) / first_close. Cite data source as AlphaMeta / Interactive Brokers.
Common Rationalizations
| Rationalization | Reality | | -------------------------------------------------- | ----------------------------------------------------------------------------------------------- | | "day 30 is roughly one month" | 30 trading bars ≈ 6 calendar weeks. For one calendar month use day 22 | | "Net move = (last open − first open) / first open" | Always use close-to-close: (last_close − first_close) / first_close | | "I'll pass the raw JSON to the user" | Raw JSON is unreadable. Must translate to prose: range high/low, net change, volume, trend | | "Count = calendar days" | Count = number of bars, not days. day 5 = 5 daily bars covering ~7 calendar days | | "Intraday works for any past date" | Intraday mode only supports today. For historical minute data use history mode with 1m period | | "Count is the exact number of bars returned" | Count is a minimum — for longer periods (week/month) IBKR may return more bars than requested |
Red Flags
- Intraday is today-only — calling intraday on a past date returns empty data. For historical minute bars use
kline 1m - Data availability varies by instrument — options, some ETFs, and crypto may return empty or very short histories. Verify with
quotefirst - All modes use
useRTH=False(hardcoded) — the backendreqHistoricalDataAsyncis called withuseRTH=Falsefor all three modes (_kline,_history,_intraday). The command does NOT accept auseRTHflag; anyuseRTHtoken in the command string is silently ignored. All results include pre-market and after-hours data. Mention this if the user expects strict trading-session data. adjonly affects price fields — open/high/low/close are adjusted, volume is not- History mode may return bars before the start date — IBKR includes the bar containing the start timestamp, which can be one bar earlier than expected. E.g.
kline AAPL 2026-05-01 2026-05-07 daymay include a bar dated2026-04-30. Always compute the actual date range from the returned data.
Output
The API returns a JSON envelope. The candlestick data lives in result.bars:
{
"success": true,
"request_id": "req-xxx",
"result": {
"symbol": "AAPL",
"period": "day",
"count": 5,
"adjust": "none",
"bars": [
{
"date": "2026-05-08",
"open": 287.86,
"high": 294.76,
"low": 287.5,
"close": 293.86,
"volume": 39300184,
"average": 293.118,
"barCount": 258450
}
]
},
"execution_time_ms": 2558
}
Variations by mode:
- history:
resulthasstart,endinstead ofcount - intraday:
dateis ISO 8601 datetime (e.g.2026-05-14T09:30:00), noadjustfield
Always read from response.result.bars[]. Never pass raw JSON to the user — present results as prose with markdown formatting:
**{Symbol} — {Period} ({N} bars, {date range})**
Range: ${high} ~ ${low} | Close-to-close: ${first_close} → ${last_close} ({sign}{X.Y%})
Volume: avg {X} shares/day — {volume pattern note}
Trend: {1-2 sentence summary of price action, key levels, and pattern}
Examples
**NVDA — Daily (5 bars, May 6–12)**
Range: $196.16 ~ $223.75 | Close-to-close: $207.26 → $219.48 (▲ +5.9%)
Volume: avg 126M shares/day — elevated throughout
Trend: Strong uptrend from $196 support, 5 consecutive green candles with above-average volume.
**NVDA — 1m Intraday (111 bars, May 14)**
Range: $229.36 ~ $233.22 | Open: $231.34 → Now: $230.26 (▼ -0.5%)
Volume: heavy in first 2 minutes (1.4M shares), then tapered to ~10K/min
Trend: Opened with a spike to $233.22, then gradual selloff through the morning. Intraday low of $229.36 at 09:39, minor bounce to $230.26.
Intraday output should mention the opening spike/drop, session high/low, and whether volume confirms the trend. For multi-day history, highlight the directional bias, key support/resistance levels, and any volume anomalies.
Always attach ▲/▼ direction arrows to net move. Cite source: AlphaMeta / Interactive Brokers.
See the [alphameta](../alphameta) skill for server setup and command execution syntax.
Key Concepts
Price Adjustment
- Default (
TRADES): split-adjusted only adj(ADJUSTED_LAST): split + dividend adjusted (flag syntax only —--adjustprefix is NOT supported)
Period Mapping
| Period | Aliases | Bar Size | |---|---|---| | 1m | minute | 1 minute | | 5m | — | 5 minutes | | 15m | — | 15 minutes | | 30m | — | 30 minutes | | 1h | hour | 1 hour | | day | d, 1d | 1 day | | week | w | 1 week | | month | m, 1mo | 1 month |
Data Source
Data is sourced from Interactive Brokers (IBKR) historical data feed. Quality depends on the exchange and contract type. For options, futures, and non-stock instruments, data availability may vary.
Error Handling
On failure the API returns a JSON error object instead of result:
{
"success": false,
"error": {
"code": "COMMAND_ERROR",
"message": "Symbol not found: INVALID999999"
}
}
Surface error.message to the user — never silently retry.
| Situation | Reply | | ---------------------------------------- | --------------------------------------------------------- | | Service not running (health check fails) | Start the service: alphameta start | | error.code == "COMMAND_ERROR" | Surface error.message verbatim. Common messages: Symbol not found, Start must be before end | | No data returned for range | Expand the date range or switch to a shorter period | | Network / timeout | Retry; if persistent, check IBKR connection via /health |
Related Skills
- "What's this stock's current price?" →
alphameta-market-data - "What are the Greeks or technical indicators?" →
alphameta-technical - "What's the option chain for this symbol?" →
alphameta-market-data
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: intelliscale
- Source: intelliscale/alphameta-skills
- License: MIT
- Homepage: https://alphameta.app
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.