{"tools":[{"name":"account_balance","title":"Account Balance","description":"Get account cash balance and asset summary. Returns balances[]{currency, total_cash, max_finance_amount, remaining_finance_amount, risk_level, margin_call}. Filter by currency (e.g. \"USD\", \"HKD\").","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"currency":{"description":"Filter by currency code (e.g. \"USD\", \"HKD\"). Omit to return all currencies.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}},"type":"object"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"ah_premium","title":"A/H Premium","description":"Get A/H share premium historical K-line data. Returns items[]{timestamp, open, high, low, close} representing the premium percentage over the given period.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"700.HK\". Use the canonical form — a padded code like \"00700.HK\" returns an empty record, not an error.","type":"string"},"period":{"description":"K-line period: \"1m\", \"5m\", \"15m\", \"30m\", \"60m\", \"day\" (default), \"week\", \"month\", \"year\"","type":"string"},"count":{"description":"Number of K-lines to return (default: 100)","type":"integer","minimum":0},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"ah_premium_intraday","title":"A/H Premium (Intraday)","description":"Get A/H share premium intraday time-share data. Returns items[]{timestamp, premium_rate} showing the intraday A/H premium percentage minute by minute.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"700.HK\". Use the canonical form — a padded code like \"00700.HK\" returns an empty record, not an error.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"alert_add","title":"Add Price Alert","description":"Add a price alert. condition: price_rise/price_fall (absolute price) or percent_rise/percent_fall (relative %). frequency: once/daily/every. Returns created alert object.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol","condition","price"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"700.HK\". Use the canonical form — a padded code like \"00700.HK\" returns an empty record, not an error.","type":"string"},"condition":{"description":"Alert condition: \"price_rise\", \"price_fall\", \"percent_rise\", \"percent_fall\"","type":"string"},"price":{"description":"Threshold price or percentage value","type":"string"},"frequency":{"description":"Alert frequency: \"once\" (trigger once then disable), \"daily\" (once per day), \"every\" (alert every time condition is met)","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"alert_delete","title":"Delete Price Alert","description":"Delete a price alert by alert_id (numeric string from alert_list). Returns upstream API response on success; errors if alert_id is invalid.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["alert_id"],"type":"object","properties":{"alert_id":{"description":"Alert indicator id","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true}},{"name":"alert_disable","title":"Disable Price Alert","description":"Disable a price alert by alert_id. Use alert_list to find the numeric alert_id.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["alert_id"],"type":"object","properties":{"alert_id":{"description":"Alert indicator id","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"alert_enable","title":"Enable Price Alert","description":"Enable a price alert by alert_id. Use alert_list to find the numeric alert_id.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["alert_id"],"type":"object","properties":{"alert_id":{"description":"Alert indicator id","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"alert_list","title":"List Price Alerts","description":"Get all configured price alerts.","inputSchema":{"type":"object","properties":{"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"anomaly","title":"Market Anomaly","description":"Get market anomaly alerts (unusual price/volume changes). market: HK/US/CN/SG. symbol: optional, filter to a specific stock. count: results per page (default 50, max 100).","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["market"],"type":"object","properties":{"market":{"description":"Market code: HK, US, CN, SG","type":"string"},"symbol":{"description":"Filter to a specific symbol, e.g. \"700.HK\" or \"AAPL.US\"","type":"string"},"count":{"description":"Number of results to return (default: 50, max: 100)","type":"integer","minimum":0},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"authenticate","title":"Authenticate","description":"Authenticate when you have no Longbridge credentials yet (e.g. your client could not complete the browser OAuth flow). The user generates a one-time authorization code at https://open.longbridge.cn/connect and pastes it to you; pass it as `auth_code`. On success the server returns an access token to use as the Bearer credential on subsequent requests, unlocking the full tool set. If you are not authenticated and the user has not provided a code, direct them to https://open.longbridge.cn/connect to generate one.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["auth_code"],"properties":{"auth_code":{"description":"One-time OAuth authorization code generated by the user at\n<https://open.longbridge.cn/connect>. Valid for 10 minutes and usable\nonly once.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}},"type":"object"},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"bank_cards","title":"Bank Cards","description":"List linked withdrawal bank cards for the current account. Returns cards[]{id, bank_name, account_number (masked), currency, status}.","inputSchema":{"type":"object","properties":{"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"broker_holding","title":"Broker Holding","description":"Get top broker holding data for a symbol (HK stocks only; sourced from HKEX CCASS participant disclosure).","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"700.HK\". Use the canonical form — a padded code like \"00700.HK\" returns an empty record, not an error.","type":"string"},"period":{"description":"Period: \"rct_1\" (1 day, default), \"rct_5\" (5 days), \"rct_20\" (20 days), \"rct_60\" (60 days)","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"broker_holding_daily","title":"Broker Holding (Daily)","description":"Get daily holding history for a specific broker (by broker_id) in a symbol (HK stocks only; sourced from HKEX CCASS participant disclosure).","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol","broker_id"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"700.HK\". Use the canonical form — a padded code like \"00700.HK\" returns an empty record, not an error.","type":"string"},"broker_id":{"description":"Broker participant number","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"broker_holding_detail","title":"Broker Holding Detail","description":"Get full broker holding detail list for a symbol (HK stocks only; sourced from HKEX CCASS participant disclosure).","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"700.HK\". Use the canonical form — a padded code like \"00700.HK\" returns an empty record, not an error.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"brokers","title":"Broker Queue","description":"Get broker queue (HK stocks only). Map broker IDs to names via participants.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"700.HK\". Use the canonical form — a padded code like \"00700.HK\" returns an empty record, not an error.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"business_segments","title":"Business Segments","description":"Get current-period business segment revenue breakdown for a symbol (name, percent, total, currency)","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"AAPL.US\"","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"business_segments_history","title":"Business Segments History","description":"Get historical business segment revenue trends (by period and category).","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"AAPL.US\"","type":"string"},"report":{"description":"Report period: \"qf\" (quarterly), \"saf\" (semi-annual), \"af\" (annual)","type":"string"},"cate":{"description":"Segment category filter","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"calc_indexes","title":"Calc Indexes","description":"Calculate financial indexes for symbols. Pass symbols, and optionally indexes (e.g. [\"PeTtmRatio\",\"PbRatio\",\"LastDone\",\"TurnoverRate\"]). When indexes is omitted or empty, defaults to [\"LastDone\",\"ChangeValue\",\"ChangeRate\",\"Volume\",\"PeTtmRatio\",\"PbRatio\",\"DividendRatioTtm\",\"TurnoverRate\",\"TotalMarketValue\"]. Returns per-symbol index values. When Greek indexes (Delta, Gamma, Theta, Vega, Rho) are requested, they are normalized: theta is the per-day value (one day's time decay), vega is the price change per 1% change in implied volatility, and rho is the price change per 1% change in the risk-free interest rate.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbols"],"type":"object","properties":{"symbols":{"description":"Security symbols, e.g. [\"700.HK\", \"AAPL.US\"]. Use the canonical form — a padded code like \"00700.HK\" returns an empty record, not an error.","type":"array","items":{"type":"string"}},"indexes":{"description":"Calc indexes (optional; defaults to LastDone, ChangeValue, ChangeRate, Volume, PeTtmRatio, PbRatio, DividendRatioTtm, TurnoverRate, TotalMarketValue): LastDone, ChangeValue, ChangeRate, Volume, Turnover, YtdChangeRate, TurnoverRate, TotalMarketValue, CapitalFlow, Amplitude, VolumeRatio, PeTtmRatio, PbRatio, DividendRatioTtm, FiveDayChangeRate, TenDayChangeRate, HalfYearChangeRate, FiveMinutesChangeRate, ExpiryDate, StrikePrice, UpperStrikePrice, LowerStrikePrice, OutstandingQty, OutstandingRatio, Premium, ItmOtm, ImpliedVolatility, WarrantDelta, CallPrice, ToCallPrice, EffectiveLeverage, LeverageRatio, ConversionRatio, BalancePoint, OpenInterest, Delta, Gamma, Theta, Vega, Rho","type":"array","items":{"type":"string"},"default":[]},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"cancel_order","title":"Cancel Order","description":"Cancel an open order by order_id. Returns plain text \"order cancelled\" on success; errors if the order is already filled or cancelled. TWO-STEP CONFIRMATION IS MANDATORY: this tool is a DRY RUN unless you pass the confirmation_code its own dry run returned. Call it first without execute, show the returned preview to the user, and only call it again with execute=\"<confirmation_code>\" after the user has explicitly confirmed that exact order. The code is derived from the order itself, so it applies only to that exact order. Never quote it back on your own initiative, and never in the same turn the user first asks. The dry run also echoes the order being targeted so the user can verify it is the right one. Set is_attached=true to cancel a single take-profit/stop-loss leg by its own order_id; cancelling a parent order cancels its legs along with it.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["order_id"],"type":"object","properties":{"order_id":{"description":"Order ID to cancel (from today's orders or order history)","type":"string"},"is_attached":{"description":"Set to true to cancel an attached take-profit / stop-loss leg by its own\norder_id, leaving the parent order in place. Omit (or false) to cancel a\nparent order, which cancels its attached legs with it.","type":"boolean"},"execute":{"description":"The `confirmation_code` from this order's dry run. WITHOUT IT NOTHING IS\nSENT.\n\nOmitted (the default) makes this a DRY RUN: the request is validated and\nechoed back with a three-digit `confirmation_code`, and nothing reaches\nthe exchange.\n\nRequired protocol: call once without `execute`, show the returned\npreview to the user, and call again quoting the code only after the user\nhas explicitly confirmed that exact order. The code is single use,\nexpires in 10 minutes, and applies only to this exact order — change any\nfield and it stops working. Never quote it back on your own initiative,\nand never in the same turn the user first asks.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true}},{"name":"candlesticks","title":"Candlesticks","description":"Get candlestick data (OHLCV). Only symbol is required; period defaults to day, count to 100 (max 1000), forward_adjust to false, trade_sessions to all. period: 1m/5m/15m/30m/60m/day/week/month/year. trade_sessions: intraday/all. If the account's entitlement caps out below the requested count, this returns as many candles as allowed instead of erroring — check the returned array length against count if an exact number matters.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"700.HK\". Use the canonical form — a padded code like \"00700.HK\" returns an empty record, not an error.","type":"string"},"period":{"description":"Period: 1m, 5m, 15m, 30m, 60m, day, week, month, year (default: day)","type":"string","default":"day"},"count":{"description":"Number of candlesticks (optional, max 1000; default 100)","type":"integer","default":100,"minimum":0},"forward_adjust":{"description":"Whether to forward-adjust for splits/dividends (default: false / no adjust)","type":"boolean","default":false},"trade_sessions":{"description":"Trade sessions: \"intraday\" (regular hours only) or \"all\" (include pre-market and post-market; default \"all\")","type":"string","default":"all"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"capital_distribution","title":"Capital Distribution","description":"Get capital distribution for a symbol. data_available is false for symbols with no capital-flow data (e.g. indices) — the other fields are still present but meaningless zeros in that case.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"700.HK\". Use the canonical form — a padded code like \"00700.HK\" returns an empty record, not an error.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"capital_flow","title":"Capital Flow","description":"Get capital inflow/outflow time series. Returns items[]{timestamp, inflow, outflow, net_flow} for the symbol (same-day data).","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"700.HK\". Use the canonical form — a padded code like \"00700.HK\" returns an empty record, not an error.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"cash_flow","title":"Cash Flow","description":"Get cash flow records (deposits, withdrawals, dividends). Returns items[]{transaction_type, amount, currency, balance, created_at, remark}. start_at/end_at in RFC3339.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["start_at","end_at"],"type":"object","properties":{"start_at":{"description":"Start time (RFC3339)","type":"string"},"end_at":{"description":"End time (RFC3339)","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"company","title":"Company Profile","description":"Get company overview. US accounts querying a .US symbol get a US-specific variant (intro, market_cap, top_rank_tags, sharelist, detail_url). The region is detected from the account automatically.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"700.HK\". Use the canonical form — a padded code like \"00700.HK\" returns an empty record, not an error.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"consensus","title":"Analyst Consensus","description":"Get financial consensus estimates for upcoming periods. US accounts querying a .US symbol get a US-specific variant (ai_summary plus a details[] list per period, instead of items[]). The region is detected from the account automatically.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"700.HK\". Use the canonical form — a padded code like \"00700.HK\" returns an empty record, not an error.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"constituent","title":"Index Constituents / ETF Asset Allocation","description":"Get the constituents of an index or the asset allocation of an ETF. For an index (e.g. HSI.HK, .DJI.US) returns constituents[]{symbol, name, last_done, change_rate, market_cap, weight}. For an ETF (e.g. QQQ.US, 2800.HK) returns the asset allocation as info[] grouped by asset_type: 1=Holdings (top constituents with code, symbol, holding_detail), 2=Regional (country/region breakdown), 3=AssetClass (stock/bond/cash etc.), 4=Industry (sector breakdown). Each group has report_date and lists[]{name, position_ratio, name_locales}; Holdings groups additionally include code, symbol and holding_detail{industry_name, index_name, holding_type_name}.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Index symbol, e.g. \"HSI.HK\"","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"corp_action","title":"Corporate Actions","description":"Get corporate actions (splits, buybacks, name changes).","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"700.HK\". Use the canonical form — a padded code like \"00700.HK\" returns an empty record, not an error.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"create_watchlist_group","title":"Create Watchlist Group","description":"Create a new watchlist group. Optionally pass securities (e.g. [\"AAPL.US\", \"700.HK\"]) to pre-populate.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["name"],"type":"object","properties":{"name":{"description":"Group name","type":"string"},"securities":{"description":"Securities to add, e.g. [\"700.HK\", \"AAPL.US\"]","type":"array","items":{"type":"string"},"default":null},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"dca_check","title":"Check DCA Support","description":"Check whether given symbols support DCA recurring investment.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbols"],"type":"object","properties":{"symbols":{"description":"Security symbols to check, e.g. [\"AAPL.US\", \"TSLA.US\"]","type":"array","items":{"type":"string"}},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"dca_create","title":"Create DCA Plan","description":"Create a DCA recurring investment plan. frequency: Daily/Weekly/Monthly. day_of_week (Weekly): Mon/Tue/Wed/Thu/Fri. day_of_month (Monthly): 1-28.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol","amount","frequency"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"AAPL.US\"","type":"string"},"amount":{"description":"Amount to invest per cycle, e.g. \"100\"","type":"string"},"frequency":{"description":"Investment frequency: Daily, Weekly, Monthly","type":"string"},"day_of_week":{"description":"Day of week for Weekly frequency: Mon, Tue, Wed, Thu, Fri","type":"string"},"day_of_month":{"description":"Day of month for Monthly frequency (1-28)","type":"integer","default":null,"minimum":0},"allow_margin":{"description":"Allow margin financing (default false)","type":"boolean","default":null},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"dca_history","title":"DCA Execution History","description":"Get execution history records for a DCA plan by plan_id.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["plan_id"],"type":"object","properties":{"plan_id":{"description":"Plan ID","type":"string"},"page":{"description":"Page number (default 1)","type":"integer","default":null,"minimum":0},"limit":{"description":"Records per page (default 20)","type":"integer","default":null,"minimum":0},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"dca_list","title":"List DCA Plans","description":"List DCA recurring investment plans. Filter by status (Active/Suspended/Finished) or symbol.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"status":{"description":"Filter by status: Active, Suspended, Finished. Omit to return all.","type":"string"},"symbol":{"description":"Filter by symbol, e.g. \"AAPL.US\". Omit to return all plans.","type":"string"},"page":{"description":"Page number (default 1)","type":"integer","default":null,"minimum":0},"limit":{"description":"Records per page (default 20)","type":"integer","default":null,"minimum":0},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}},"type":"object"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"dca_pause","title":"Pause DCA Plan","description":"Pause (suspend) a DCA plan by plan_id. The plan stops executing until resumed. Returns upstream API response. Use dca_resume to restart.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["plan_id"],"type":"object","properties":{"plan_id":{"description":"Plan ID","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"dca_resume","title":"Resume DCA Plan","description":"Resume a suspended DCA plan by plan_id. Resumes automated execution on the configured schedule. Returns upstream API response.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["plan_id"],"type":"object","properties":{"plan_id":{"description":"Plan ID","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"dca_stats","title":"DCA Statistics","description":"Get DCA investment statistics.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"symbol":{"description":"Filter by symbol, e.g. \"AAPL.US\". Omit to return stats for all plans.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}},"type":"object"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"dca_stop","title":"Stop DCA Plan","description":"Permanently stop a DCA plan by plan_id. This cannot be undone. To temporarily pause, use dca_pause instead. Returns upstream API response.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["plan_id"],"type":"object","properties":{"plan_id":{"description":"Plan ID","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true}},{"name":"dca_update","title":"Update DCA Plan","description":"Update an existing DCA plan by plan_id. Can change amount, frequency (Daily/Weekly/Monthly), day_of_week (Mon-Fri), or day_of_month (1-28). Returns updated plan.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["plan_id"],"type":"object","properties":{"plan_id":{"description":"Plan ID to update","type":"string"},"amount":{"description":"New investment amount per cycle","type":"string"},"frequency":{"description":"New investment frequency: Daily, Weekly, Monthly","type":"string"},"day_of_week":{"description":"Day of week for Weekly frequency: Mon, Tue, Wed, Thu, Fri","type":"string"},"day_of_month":{"description":"Day of month for Monthly frequency (1-28)","type":"integer","default":null,"minimum":0},"allow_margin":{"description":"Allow margin financing","type":"boolean","default":null},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true}},{"name":"delete_watchlist_group","title":"Delete Watchlist Group","description":"Delete a watchlist group by id (numeric). Set purge=true to also remove its securities from all other groups.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["id","purge"],"type":"object","properties":{"id":{"description":"Watchlist group id","type":"integer"},"purge":{"description":"Whether to also remove the securities from other groups","type":"boolean"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true}},{"name":"deposits","title":"Deposits","description":"List deposit history for the current account. Returns items[]{id, amount, currency, status, created_at, updated_at}. states: comma-separated (Pending/Finished/Failed). currencies: comma-separated codes.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"page":{"description":"Page number (default: 1)","type":"integer","minimum":0},"size":{"description":"Page size (default: 20)","type":"integer","minimum":0},"states":{"description":"Filter by deposit states (comma-separated)","type":"string"},"currencies":{"description":"Filter by currencies (comma-separated, e.g. \"USD,HKD\")","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}},"type":"object"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"depth","title":"Order Book Depth","description":"Get order book depth for a symbol. Up to 10 price levels.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"700.HK\". Use the canonical form — a padded code like \"00700.HK\" returns an empty record, not an error.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"dividend","title":"Dividend","description":"Get dividend history for the symbol. US accounts querying a .US symbol get a US-specific variant (e.g. dividend_yield_ttm is a percent value: 0.34 means 0.34%). The region is detected from the account automatically.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"700.HK\". Use the canonical form — a padded code like \"00700.HK\" returns an empty record, not an error.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"dividend_detail","title":"Dividend Detail","description":"Get detailed dividend distribution scheme.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"700.HK\". Use the canonical form — a padded code like \"00700.HK\" returns an empty record, not an error.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"estimate_max_purchase_quantity","title":"Estimate Max Purchase Quantity","description":"Estimate maximum buy/sell quantity for a symbol. Only symbol is required; side (case-insensitive Buy/Sell) defaults to Buy, order_type (case-insensitive) defaults to LO, and price is optional.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"700.HK\". Use the canonical form — a padded code like \"00700.HK\" returns an empty record, not an error.","type":"string"},"side":{"description":"Buy or Sell (case-insensitive; default: Buy)","type":"string","default":"Buy"},"order_type":{"description":"Order type, case-insensitive (default: LO): LO (Limit Order) / ELO (Enhanced Limit Order) / MO (Market Order) / AO (At-auction) / ALO (At-auction Limit Order)","type":"string","default":"LO"},"price":{"description":"Limit price for limit-style orders. Omit for market orders.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"etf_docs","title":"ETF Documents (US)","description":"Get regulatory/prospectus documents (etf-files) for a US ETF. US accounts only; errors with DcRegionRestricted for AP accounts.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"ETF symbol, e.g. \"SPY.US\"","type":"string"},"limit":{"description":"Maximum number of documents to return. Omit for all.","type":"integer","minimum":0},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"exchange_rate","title":"Exchange Rate","description":"Get exchange rates for all supported currencies. Returns list[]{from_currency, to_currency, rate, timestamp} covering USD, HKD, CNY, SGD and others.","inputSchema":{"type":"object","properties":{"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"executive","title":"Executive","description":"Get company executive and board member information.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"700.HK\". Use the canonical form — a padded code like \"00700.HK\" returns an empty record, not an error.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"filings","title":"Filings","description":"Get regulatory filings (8-K, 10-Q, 10-K, etc.). Returns items[]{id, title, type, language, filing_date, url} for the symbol.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"700.HK\". Use the canonical form — a padded code like \"00700.HK\" returns an empty record, not an error.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"finance_calendar","title":"Financial Calendar","description":"Finance calendar by category: report (earnings) / dividend / split / ipo / macrodata (CPI, NFP, rates) / closed (holidays). start and end (YYYY-MM-DD) are optional, default today plus 7 days; keep ranges under 2 weeks or results truncate.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["category"],"type":"object","properties":{"category":{"description":"Event category. One of:\n- \"report\": earnings reports (includes financial statements)\n- \"dividend\": dividend announcements\n- \"split\": stock splits and reverse splits (share consolidations)\n- \"ipo\": upcoming IPO listings\n- \"macrodata\": macro economic data releases (CPI, NFP, rate decisions, etc.)\n- \"closed\": market closure days","type":"string"},"start":{"description":"Start date in YYYY-MM-DD format (inclusive). Defaults to today (UTC).","type":"string"},"end":{"description":"End date in YYYY-MM-DD format (inclusive). Defaults to 7 days after `start`.","type":"string"},"market":{"description":"Optional market filter. One of: HK, US, CN, SG, JP, UK, DE, AU.\nOmit to include all markets.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"financial_report","title":"Financial Report","description":"Get financial reports (income statement, balance sheet, cash flow). kind: IS/BS/CF/ALL. report_type: af (annual), saf (semi-annual), q1/q2/q3, qf (quarterly full).","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"AAPL.US\"","type":"string"},"kind":{"description":"Statement kind: \"IS\" (income statement), \"BS\" (balance sheet), \"CF\" (cash flow), \"ALL\" (default)","type":"string"},"report_type":{"description":"Report period: \"af\" (annual), \"saf\" (semi-annual), \"q1\"/\"q2\"/\"q3\" (quarterly), \"qf\" (quarterly full)","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"financial_report_key_metrics","title":"Financial Report Key Metrics (US)","description":"Get key financial metrics (fin-keyfactor) for a US symbol. report: af (annual, default), saf, qf, q1/q2/q3. US accounts only; errors with DcRegionRestricted for AP accounts.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"AAPL.US\"","type":"string"},"report":{"description":"Report period: \"af\" (annual, default), \"saf\" (semi-annual), \"qf\"\n(quarterly full), \"q1\"/\"q2\"/\"q3\".","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"financial_report_latest","title":"Latest Financial Report","description":"Get the latest financial report summary for a security.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"700.HK\". Use the canonical form — a padded code like \"00700.HK\" returns an empty record, not an error.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"financial_report_snapshot","title":"Financial Report Snapshot","description":"Get financial report snapshot: report_desc (text summary), fo_revenue/fo_ebit/fo_eps (actual vs forecast with yoy/cmp), fr_* financial ratios (ROE, margins, assets, cash flow). report: qf/saf/af.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"AAPL.US\"","type":"string"},"report":{"description":"Report type: \"qf\" (quarterly), \"saf\" (semi-annual), \"af\" (annual)","type":"string"},"fiscal_year":{"description":"Fiscal year, e.g. 2024","type":"integer","minimum":0},"fiscal_period":{"description":"Fiscal period, e.g. \"1\" \"2\" \"3\" \"4\"","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"financial_statement","title":"Financial Statements","description":"Get financial statements (income statement, balance sheet, or cash flow) for a security. kind: IS/BS/CF/ALL. report: af (annual, default), saf (semi-annual), qf (quarterly full), q1/q2/q3.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"AAPL.US\"","type":"string"},"kind":{"description":"Statement kind: \"IS\" (income statement), \"BS\" (balance sheet), \"CF\" (cash flow), \"ALL\" (default)","type":"string"},"report":{"description":"Report period: \"af\" (annual), \"saf\" (semi-annual), \"qf\" (quarterly full), \"q1\"/\"q2\"/\"q3\"","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"forecast_eps","title":"Forecast EPS","description":"Get EPS forecast and analyst estimate history.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"700.HK\". Use the canonical form — a padded code like \"00700.HK\" returns an empty record, not an error.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"fund_holder","title":"Fund Holders","description":"Get funds and ETFs that hold a given symbol.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"700.HK\". Use the canonical form — a padded code like \"00700.HK\" returns an empty record, not an error.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"fund_positions","title":"Fund Positions","description":"Get current fund positions.","inputSchema":{"type":"object","properties":{"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"grid_cancel","title":"Cancel Grid Order","description":"Cancel (terminate) a grid order by order_id. TWO-STEP CONFIRMATION IS MANDATORY: this tool is a DRY RUN unless you pass the confirmation_code its own dry run returned. Call it first without execute, show the returned preview to the user, and only call it again with execute=\"<confirmation_code>\" after the user has explicitly confirmed it. The code is derived from the order itself, so it applies only to that exact request. Never quote it back on your own initiative.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["order_id"],"type":"object","properties":{"order_id":{"description":"Grid order ID.","type":"string"},"execute":{"description":"The `confirmation_code` from this request's dry run. WITHOUT IT NOTHING\nIS SENT.\n\nOmitted (the default) makes this a DRY RUN: the request is validated and\nechoed back with a three-digit `confirmation_code`, and nothing reaches\nthe exchange.\n\nRequired protocol: call once without `execute`, show the returned\npreview to the user, and call again quoting the code only after the user\nhas explicitly confirmed it. The code is single use, expires in 10\nminutes, and applies only to this exact request — change any field and\nit stops working. A grid strategy keeps placing orders on its own once\nlive, so never quote the code back on your own initiative.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true}},{"name":"grid_detail","title":"Grid Order Detail","description":"Full detail for one grid order: rule parameters, status, embedded child orders (grid_sub_orders) and lifecycle history (grid_order_history). Supports history_id cursor + limit paging.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["order_id"],"type":"object","properties":{"order_id":{"description":"Grid order ID.","type":"string"},"history_id":{"description":"History cursor for paging the embedded trigger history.","type":"string"},"limit":{"description":"Page size for the embedded sub-order / history lists.","type":"integer"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"openWorldHint":true}},{"name":"grid_list","title":"List Grid Orders","description":"List grid trading orders. Filter by symbol or comma-joined status (e.g. \"Performing,Suspended\"); supports page/limit and sort_by/sort_order.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"symbol":{"description":"Filter by symbol, e.g. \"700.HK\". Omit for all grid orders.","type":"string"},"status":{"description":"Comma-joined status filter, e.g. \"Performing,Suspended\". Omit for all.","type":"string"},"page":{"description":"Page number (default 1).","type":"integer"},"limit":{"description":"Records per page (default 20).","type":"integer"},"sort_by":{"description":"Sort field (e.g. \"created_at\").","type":"string"},"sort_order":{"description":"Sort order (\"asc\" / \"desc\").","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}},"type":"object"},"annotations":{"readOnlyHint":true,"openWorldHint":true}},{"name":"grid_list_by_ids","title":"Get Grid Orders By IDs","description":"Fetch specific grid orders by their IDs.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["order_ids"],"type":"object","properties":{"order_ids":{"description":"Grid order IDs to fetch, e.g. [\"123\", \"456\"].","type":"array","items":{"type":"string"}},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"openWorldHint":true}},{"name":"grid_replace","title":"Replace Grid Order","description":"Replace an existing grid order's rule by order_id. Accepts the same grid rule fields as grid_submit. Overwrites the order's entire rule. TWO-STEP CONFIRMATION IS MANDATORY: this tool is a DRY RUN unless you pass the confirmation_code its own dry run returned. Call it first without execute, show the returned preview to the user, and only call it again with execute=\"<confirmation_code>\" after the user has explicitly confirmed it. The code is derived from the order itself, so it applies only to that exact request. Never quote it back on your own initiative. The dry run echoes the rule that would replace the current one.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["order_id"],"properties":{"order_id":{"description":"Grid order ID to replace.","type":"string"},"submitted_base_price":{"description":"Base price the grid is anchored to (decimal string).","type":"string"},"upper_limit_price":{"description":"Upper price bound (decimal string).","type":"string"},"lower_limit_price":{"description":"Lower price bound (decimal string).","type":"string"},"trigger_price_type":{"description":"Trigger price type: 1 = spread (absolute), 2 = percent.","type":"integer"},"trigger_spread_up":{"description":"Upward trigger spread, absolute (decimal string; use with type 1).","type":"string"},"trigger_spread_down":{"description":"Downward trigger spread, absolute (decimal string; use with type 1).","type":"string"},"trigger_percent_up":{"description":"Upward trigger percent (decimal string; use with type 2).","type":"string"},"trigger_percent_down":{"description":"Downward trigger percent (decimal string; use with type 2).","type":"string"},"multiple_trigger":{"description":"Whether one grid level may trigger multiple times.","type":"boolean"},"time_in_force":{"description":"Time in force: 0 = Day, 1 = GTC, 6 = GTD.","type":"integer"},"upper_limit_quantity":{"description":"Quantity handled when the upper bound is reached (decimal string).","type":"string"},"lower_limit_quantity":{"description":"Quantity handled when the lower bound is reached (decimal string).","type":"string"},"expire_time":{"description":"Expiry time in unix seconds (use with GTD).","type":"integer"},"upper_limit_event":{"description":"Action at upper bound: 1 = ignore (keep running), 2 = close at last price.","type":"integer"},"lower_limit_event":{"description":"Action at lower bound: 1 = ignore (keep running), 2 = close at last price.","type":"integer"},"trigger_sell_depth":{"description":"Sell-side order-book depth (-5..5; 0 = use grid_order_type_up).","type":"integer"},"trigger_buy_depth":{"description":"Buy-side order-book depth (-5..5; 0 = use grid_order_type_down).","type":"integer"},"trigger_quantity":{"description":"Quantity per trigger (decimal string).","type":"string"},"support_shortsell":{"description":"Whether short selling is allowed.","type":"boolean"},"rth":{"description":"Regular-trading-hours flag: 0 / 1 / 2.","type":"integer"},"grid_order_type_up":{"description":"Sell-side order type when depth is 0: GMO / GLO / GTG.","type":"string"},"grid_order_type_down":{"description":"Buy-side order type when depth is 0: GMO / GLO / GTG.","type":"string"},"execute":{"description":"The `confirmation_code` from this request's dry run. WITHOUT IT NOTHING\nIS SENT.\n\nOmitted (the default) makes this a DRY RUN: the request is validated and\nechoed back with a three-digit `confirmation_code`, and nothing reaches\nthe exchange.\n\nRequired protocol: call once without `execute`, show the returned\npreview to the user, and call again quoting the code only after the user\nhas explicitly confirmed it. The code is single use, expires in 10\nminutes, and applies only to this exact request — change any field and\nit stops working. A grid strategy keeps placing orders on its own once\nlive, so never quote the code back on your own initiative.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}},"type":"object"},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true}},{"name":"grid_restart","title":"Restart Grid Order","description":"Restart (resume) a suspended grid order by order_id. TWO-STEP CONFIRMATION IS MANDATORY: this tool is a DRY RUN unless you pass the confirmation_code its own dry run returned. Call it first without execute, show the returned preview to the user, and only call it again with execute=\"<confirmation_code>\" after the user has explicitly confirmed it. The code is derived from the order itself, so it applies only to that exact request. Never quote it back on your own initiative. A restarted grid resumes placing orders on its own.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["order_id"],"type":"object","properties":{"order_id":{"description":"Grid order ID.","type":"string"},"execute":{"description":"The `confirmation_code` from this request's dry run. WITHOUT IT NOTHING\nIS SENT.\n\nOmitted (the default) makes this a DRY RUN: the request is validated and\nechoed back with a three-digit `confirmation_code`, and nothing reaches\nthe exchange.\n\nRequired protocol: call once without `execute`, show the returned\npreview to the user, and call again quoting the code only after the user\nhas explicitly confirmed it. The code is single use, expires in 10\nminutes, and applies only to this exact request — change any field and\nit stops working. A grid strategy keeps placing orders on its own once\nlive, so never quote the code back on your own initiative.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"grid_submit","title":"Submit Grid Order","description":"Submit a grid trading order. DRY RUN unless execute is the confirmation_code from its own dry run: call once without execute, show the preview, then re-call quoting the code only after the user confirms.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol","settlement_currency"],"properties":{"symbol":{"description":"Security symbol, e.g. \"700.HK\".","type":"string"},"settlement_currency":{"description":"Settlement currency, e.g. \"HKD\".","type":"string"},"submitted_base_price":{"description":"Base price the grid is anchored to (decimal string).","type":"string"},"upper_limit_price":{"description":"Upper price bound (decimal string).","type":"string"},"lower_limit_price":{"description":"Lower price bound (decimal string).","type":"string"},"trigger_price_type":{"description":"Trigger price type: 1 = spread (absolute), 2 = percent.","type":"integer"},"trigger_spread_up":{"description":"Upward trigger spread, absolute (decimal string; use with type 1).","type":"string"},"trigger_spread_down":{"description":"Downward trigger spread, absolute (decimal string; use with type 1).","type":"string"},"trigger_percent_up":{"description":"Upward trigger percent (decimal string; use with type 2).","type":"string"},"trigger_percent_down":{"description":"Downward trigger percent (decimal string; use with type 2).","type":"string"},"multiple_trigger":{"description":"Whether one grid level may trigger multiple times.","type":"boolean"},"time_in_force":{"description":"Time in force: 0 = Day, 1 = GTC, 6 = GTD.","type":"integer"},"upper_limit_quantity":{"description":"Quantity handled when the upper bound is reached (decimal string).","type":"string"},"lower_limit_quantity":{"description":"Quantity handled when the lower bound is reached (decimal string).","type":"string"},"expire_time":{"description":"Expiry time in unix seconds (use with GTD).","type":"integer"},"upper_limit_event":{"description":"Action at upper bound: 1 = ignore (keep running), 2 = close at last price.","type":"integer"},"lower_limit_event":{"description":"Action at lower bound: 1 = ignore (keep running), 2 = close at last price.","type":"integer"},"trigger_sell_depth":{"description":"Sell-side order-book depth (-5..5; 0 = use grid_order_type_up).","type":"integer"},"trigger_buy_depth":{"description":"Buy-side order-book depth (-5..5; 0 = use grid_order_type_down).","type":"integer"},"trigger_quantity":{"description":"Quantity per trigger (decimal string).","type":"string"},"support_shortsell":{"description":"Whether short selling is allowed.","type":"boolean"},"rth":{"description":"Regular-trading-hours flag: 0 / 1 / 2.","type":"integer"},"grid_order_type_up":{"description":"Sell-side order type when depth is 0: GMO / GLO / GTG.","type":"string"},"grid_order_type_down":{"description":"Buy-side order type when depth is 0: GMO / GLO / GTG.","type":"string"},"execute":{"description":"The `confirmation_code` from this request's dry run. WITHOUT IT NOTHING\nIS SENT.\n\nOmitted (the default) makes this a DRY RUN: the request is validated and\nechoed back with a three-digit `confirmation_code`, and nothing reaches\nthe exchange.\n\nRequired protocol: call once without `execute`, show the returned\npreview to the user, and call again quoting the code only after the user\nhas explicitly confirmed it. The code is single use, expires in 10\nminutes, and applies only to this exact request — change any field and\nit stops working. A grid strategy keeps placing orders on its own once\nlive, so never quote the code back on your own initiative.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}},"type":"object"},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"grid_suspend","title":"Suspend Grid Order","description":"Suspend (pause) a running grid order by order_id. Resume with grid_restart. TWO-STEP CONFIRMATION IS MANDATORY: this tool is a DRY RUN unless you pass the confirmation_code its own dry run returned. Call it first without execute, show the returned preview to the user, and only call it again with execute=\"<confirmation_code>\" after the user has explicitly confirmed it. The code is derived from the order itself, so it applies only to that exact request. Never quote it back on your own initiative.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["order_id"],"type":"object","properties":{"order_id":{"description":"Grid order ID.","type":"string"},"execute":{"description":"The `confirmation_code` from this request's dry run. WITHOUT IT NOTHING\nIS SENT.\n\nOmitted (the default) makes this a DRY RUN: the request is validated and\nechoed back with a three-digit `confirmation_code`, and nothing reaches\nthe exchange.\n\nRequired protocol: call once without `execute`, show the returned\npreview to the user, and call again quoting the code only after the user\nhas explicitly confirmed it. The code is single use, expires in 10\nminutes, and applies only to this exact request — change any field and\nit stops working. A grid strategy keeps placing orders on its own once\nlive, so never quote the code back on your own initiative.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"grid_symbol_info","title":"Grid Symbol Info","description":"Pre-trade grid setup info for a security (takes a symbol, not an order_id): security name, last price, board lot sizes (buy/sell), price-step (bid_size) table, and channel/authorization info (strategy grant flag, RTH support, supported s...","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"700.HK\".","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"openWorldHint":true}},{"name":"grid_trigger_history","title":"Grid Trigger History","description":"Trigger history for one grid order: each triggered child order with price, quantity, executed price/qty, and trigger time. Supports page/limit.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["order_id"],"type":"object","properties":{"order_id":{"description":"Grid order ID whose trigger history to fetch.","type":"string"},"page":{"description":"Page number (default 1).","type":"integer"},"limit":{"description":"Records per page (default 20).","type":"integer"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"openWorldHint":true}},{"name":"history_candlesticks_by_date","title":"Historical Candlesticks by Date","description":"Get historical candlestick data by date range. Only symbol is required; period defaults to day (1m/5m/15m/30m/60m/day/week/month/year), forward_adjust to false, trade_sessions to all.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"700.HK\". Use the canonical form — a padded code like \"00700.HK\" returns an empty record, not an error.","type":"string"},"period":{"description":"Period: 1m, 5m, 15m, 30m, 60m, day, week, month, year (default: day)","type":"string","default":"day"},"forward_adjust":{"description":"Whether to forward-adjust for splits/dividends (default: false / no adjust)","type":"boolean","default":false},"start":{"description":"Start date (yyyy-mm-dd), optional","type":"string"},"end":{"description":"End date (yyyy-mm-dd), optional","type":"string"},"trade_sessions":{"description":"Trade sessions: \"intraday\" (regular hours only) or \"all\" (include pre-market and post-market; default \"all\")","type":"string","default":"all"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"history_candlesticks_by_offset","title":"Historical Candlesticks by Offset","description":"Get historical candlestick data by offset from a reference time. Only symbol is required; period defaults to day (1m/5m/15m/30m/60m/day/week/month/year), count to 100, forward_adjust/forward to false, trade_sessions to all. If the account's entitlement caps out below the requested count, this returns as many candles as allowed instead of erroring — check the returned array length against count if an exact number matters.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"700.HK\". Use the canonical form — a padded code like \"00700.HK\" returns an empty record, not an error.","type":"string"},"period":{"description":"Period: 1m, 5m, 15m, 30m, 60m, day, week, month, year (default: day)","type":"string","default":"day"},"forward_adjust":{"description":"Whether to forward-adjust for splits/dividends (default: false / no adjust)","type":"boolean","default":false},"forward":{"description":"Whether to query forward in time (true) or backward (false; default)","type":"boolean","default":false},"time":{"description":"Reference datetime (yyyy-mm-ddTHH:MM:SS), omit to start from latest","type":"string"},"count":{"description":"Number of candlesticks (optional, max 1000; default 100)","type":"integer","default":100,"minimum":0},"trade_sessions":{"description":"Trade sessions: \"intraday\" (regular hours only) or \"all\" (include pre-market and post-market; default \"all\")","type":"string","default":"all"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"history_executions","title":"Historical Executions","description":"Get every trade execution (fill) in a date range, filtered by execution time (trade_done_at) and auto-paginated to return the complete set (never truncated at the 1000-per-page cap). Returns executions[]{order_id, trade_id, symbol, side, quantity, price, trade_done_at}; trade_id is the stable dedupe key. start_at/end_at in RFC3339.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["start_at","end_at"],"type":"object","properties":{"symbol":{"description":"Filter by symbol (optional)","type":"string"},"start_at":{"description":"Start time (RFC3339)","type":"string"},"end_at":{"description":"End time (RFC3339)","type":"string"},"us_page":{"description":"US accounts only: page number (default 1). Ignored for\nAP accounts (the region is inferred from the account — do not pass it).","type":"integer"},"us_limit":{"description":"US accounts only: page size (default 20). Ignored for\nAP accounts.","type":"integer"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"history_market_temperature","title":"Historical Market Temperature","description":"Get historical market temperature time series.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["market","start","end"],"type":"object","properties":{"market":{"description":"Market code: HK, US, CN, SG","type":"string"},"start":{"description":"Start date (yyyy-mm-dd)","type":"string"},"end":{"description":"End date (yyyy-mm-dd)","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"history_orders","title":"Historical Orders","description":"Get historical orders between dates (excludes today). Returns orders[]{order_id, symbol, side, status, quantity, price, submitted_at}. start_at/end_at in RFC3339. US accounts only: us_page, us_limit paginate via a separate US order endpoint (default page size 20 — pass us_page to see more than the first page).","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["start_at","end_at"],"type":"object","properties":{"symbol":{"description":"Filter by symbol (optional)","type":"string"},"start_at":{"description":"Start time (RFC3339)","type":"string"},"end_at":{"description":"End time (RFC3339)","type":"string"},"us_page":{"description":"US accounts only: page number (default 1). Ignored for\nAP accounts (the region is inferred from the account — do not pass it).","type":"integer"},"us_limit":{"description":"US accounts only: page size (default 20). Ignored for\nAP accounts.","type":"integer"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"industry_peers","title":"Industry Peers","description":"Hierarchical sub-sector tree for an industry group. Accepts an industry symbol from industry_rank (e.g. IN00258.US). Each node shows stock count, daily change, and YTD change.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Industry symbol from `industry_rank`, e.g. \"IN00258.US\". The BK\ncounter_id form (\"BK/US/IN00258\") is also accepted.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"industry_rank","title":"Industry Rank","description":"Industry ranking list by market (US/HK/CN/SG) and indicator (0=领涨/1=今日走势/2=人气/3=市值/4=营收/5=营收增长率/6=净利润/7=净利润增长率). sort_type: 0=单级 1=多层. Returns items[]{symbol(IN00258.US), name, chg, lists[]}. Pass a row's symbol directly to industry_peers.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["market"],"type":"object","properties":{"market":{"description":"Market: \"US\" | \"HK\" | \"SG\" | \"CN\"","type":"string"},"indicator":{"description":"Ranking indicator (default: \"0\"):\n  \"0\" = 领涨行业, \"1\" = 今日走势, \"2\" = 行业人气, \"3\" = 市值,\n  \"4\" = 营收, \"5\" = 营收增长率, \"6\" = 净利润, \"7\" = 净利润增长率","type":"string"},"limit":{"description":"Number of results to return (default: returns all)","type":"string"},"sort_type":{"description":"Sort type: \"0\" = 单级 (default) | \"1\" = 多层","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"industry_valuation","title":"Industry Valuation","description":"Get industry valuation comparison for peers.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"700.HK\". Use the canonical form — a padded code like \"00700.HK\" returns an empty record, not an error.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"industry_valuation_dist","title":"Industry Valuation Distribution","description":"Get industry PE/PB/PS valuation distribution.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"700.HK\". Use the canonical form — a padded code like \"00700.HK\" returns an empty record, not an error.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"institution_rating","title":"Institution Rating","description":"Get institution rating summary.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"700.HK\". Use the canonical form — a padded code like \"00700.HK\" returns an empty record, not an error.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"institution_rating_detail","title":"Institution Rating Detail","description":"Get detailed historical institution ratings and target price history.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"700.HK\". Use the canonical form — a padded code like \"00700.HK\" returns an empty record, not an error.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"institution_rating_history","title":"Institution Rating History","description":"Get institution rating history.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"700.HK\". Use the canonical form — a padded code like \"00700.HK\" returns an empty record, not an error.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"institution_rating_industry_rank","title":"Institution Rating Industry Rank","description":"Get peers ranked by institution analyst ratings in the same industry. Paginated.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"AAPL.US\"","type":"string"},"page":{"description":"Page number (default: 1)","type":"integer","minimum":0},"size":{"description":"Page size (default: 20)","type":"integer","minimum":0},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"institutional_views","title":"Institutional Views","description":"Get monthly institutional rating distribution timeline.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"700.HK\". Use the canonical form — a padded code like \"00700.HK\" returns an empty record, not an error.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"intraday","title":"Intraday Line","description":"Get intraday minute-by-minute price/volume data. trade_sessions: \"intraday\" (default, regular hours) or \"all\" (include pre-market and post-market)","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"700.HK\". Use the canonical form — a padded code like \"00700.HK\" returns an empty record, not an error.","type":"string"},"trade_sessions":{"description":"Trade sessions to include: \"intraday\" (default, regular hours only) or \"all\" (include pre-market and post-market).","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"invest_relation","title":"Investor Relations","description":"Get investor relations events and announcements.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"700.HK\". Use the canonical form — a padded code like \"00700.HK\" returns an empty record, not an error.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"ipo_calendar","title":"IPO Calendar","description":"Show the IPO calendar.","inputSchema":{"type":"object","properties":{"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"ipo_detail","title":"IPO Detail","description":"Show IPO detail for a symbol.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"6871.HK\" or \"ARM.US\"","type":"string"},"market":{"description":"Market: \"HK\" or \"US\" (default: inferred from symbol suffix)","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"ipo_listed","title":"IPO Listed","description":"List recently listed IPO stocks (HK+US).","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"page":{"description":"Page number (default: 1)","type":"integer","minimum":0},"size":{"description":"Page size (default: 20)","type":"integer","minimum":0},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}},"type":"object"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"ipo_order_detail","title":"IPO Order Detail","description":"Show detailed information for a specific IPO order by order_id.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["order_id"],"type":"object","properties":{"order_id":{"description":"IPO order ID","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"ipo_orders","title":"IPO Orders","description":"List IPO orders (active+history). Filter by symbol, market, or status.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"symbol":{"description":"Filter by symbol, e.g. \"6871.HK\"","type":"string"},"market":{"description":"Filter by market: \"HK\" or \"US\"","type":"string"},"status":{"description":"Filter by order status","type":"string"},"page":{"description":"Page number (default: 1)","type":"integer","minimum":0},"size":{"description":"Page size (default: 20)","type":"integer","minimum":0},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}},"type":"object"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"ipo_profit_loss","title":"IPO Profit / Loss","description":"Show IPO profit/loss summary and per-stock breakdown. period: all/ytd/1y/3y.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"period":{"description":"Period filter: \"all\", \"ytd\", \"1y\", \"3y\" (default: \"all\")","type":"string"},"page":{"description":"Page number (default: 1)","type":"integer","minimum":0},"size":{"description":"Page size (default: 20)","type":"integer","minimum":0},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}},"type":"object"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"ipo_subscriptions","title":"IPO Subscriptions","description":"List IPO stocks in subscription/pre-filing stage (HK+US).","inputSchema":{"type":"object","properties":{"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"macrodata","title":"Macro Indicator Data","description":"Get historical observations for one macro-economic indicator. Use indicator_code from macrodata_indicators; start_date/end_date accept YYYY-MM-DD. Supports offset/limit pagination.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["indicator_code"],"type":"object","properties":{"indicator_code":{"description":"Indicator code from `macrodata_indicators`, e.g. `\"30771718\"`.","type":"string"},"start_date":{"description":"Earliest release date to include (YYYY-MM-DD, e.g. `\"2024-01-01\"`).","type":"string"},"end_date":{"description":"Latest release date to include (YYYY-MM-DD, e.g. `\"2024-12-31\"`).","type":"string"},"offset":{"description":"Pagination offset for historical data points, default 0.","type":"integer"},"limit":{"description":"Maximum number of data points to return (default 100, max 100).","type":"integer"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"macrodata_indicators","title":"Macro Indicator List","description":"List macro-economic indicators. Filter by keyword and country (US/CN/HK/EU/JP/SG). Use the returned indicator_code with macrodata. Supports offset/limit pagination.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"keyword":{"description":"Keyword to search indicator names (e.g. \"CPI\", \"非农\", \"GDP\").","type":"string"},"country":{"description":"Filter by country code. One of: \"US\", \"CN\", \"HK\", \"EU\", \"JP\", \"SG\".\nOmit to return all countries.","type":"string"},"offset":{"description":"Pagination offset, default 0.","type":"integer"},"limit":{"description":"Maximum number of indicators to return (default 100, max 1000).","type":"integer"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}},"type":"object"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"margin_ratio","title":"Margin Ratio","description":"Get margin ratio for a symbol.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"700.HK\". Use the canonical form — a padded code like \"00700.HK\" returns an empty record, not an error.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"market_status","title":"Market Status","description":"Get current market trading status for all markets.","inputSchema":{"type":"object","properties":{"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"market_temperature","title":"Market Temperature","description":"Get current market sentiment temperature. market: HK/US/CN/SG.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["market"],"type":"object","properties":{"market":{"description":"Market code: HK, US, CN, SG","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"news","title":"News","description":"Get latest news articles for a symbol. Returns items[]{id, title, source, publish_time, summary, url, related_symbols[]}.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"700.HK\". Use the canonical form — a padded code like \"00700.HK\" returns an empty record, not an error.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"news_detail","title":"News Detail","description":"Get one news article's full detail by id (from news/news_search).","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["id"],"type":"object","properties":{"id":{"description":"News article ID (numeric), e.g. \"7123456789012345678\". Get IDs from `news` or `news_search`.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"news_search","title":"News Search","description":"Search news articles by keyword. Returns news_list[]{id, title, description, source_name, publish_at (RFC3339), score}. Paginate with score+publish_at_timestamp+id cursors.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["keyword"],"type":"object","properties":{"keyword":{"description":"Search keyword","type":"string"},"limit":{"description":"Max results to return (default: 20)","type":"integer","minimum":0},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"now","title":"Current Time","description":"Get current UTC time as an RFC3339 string (e.g. \"2025-01-15T08:30:00Z\"). Use to determine current date/time before making date-based queries.","inputSchema":{"type":"object","properties":{"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"operating","title":"Operating Performance","description":"Get company operating metrics (HK stocks only).","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"700.HK\". Use the canonical form — a padded code like \"00700.HK\" returns an empty record, not an error.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"option_chain_expiry_date_list","title":"Option Expiry Dates","description":"Get option chain expiry dates for a symbol (e.g. AAPL.US). Returns expiry_dates[] as \"yyyy-mm-dd\" strings. Use with option_chain_info_by_date to get strikes and Greeks.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"700.HK\". Use the canonical form — a padded code like \"00700.HK\" returns an empty record, not an error.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"option_chain_info_by_date","title":"Option Chain by Date","description":"Get option chain for an expiry date. Returns strikePrices[]{strike_price, call{symbol, last_done, iv, delta, gamma}, put{symbol, last_done, iv, delta, gamma}}.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol","date"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"700.HK\". Use the canonical form — a padded code like \"00700.HK\" returns an empty record, not an error.","type":"string"},"date":{"description":"Date (yyyy-mm-dd)","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"option_quote","title":"Option Quote","description":"Get option quotes (max 500 symbols). Symbols must be option contract symbols (e.g. \"AAPL230317P160000.US\"), NOT plain stock symbols — obtain valid ones from option_chain_info_by_date's call.symbol/put.symbol fields. Returns last_done, prev_close, open, high, low, volume, turnover, implied_volatility, delta, gamma, theta, vega, rho, open_interest per symbol. Greeks are normalized: theta is the per-day value (one day's time decay), vega is the price change per 1% change in implied volatility, and rho is the price change per 1% change in the risk-free interest rate.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbols"],"type":"object","properties":{"symbols":{"description":"Option contract symbols, e.g. [\"AAPL230317P160000.US\"]. These are NOT\nplain stock symbols — get valid ones from `option_chain_info_by_date`'s\nper-strike `call.symbol`/`put.symbol` fields (after listing expiry\ndates with `option_chain_expiry_date_list`).","type":"array","items":{"type":"string"}},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"option_volume","title":"Option Volume","description":"Get real-time option call/put volume stats for a US stock. Returns {call_volume, put_volume, put_call_ratio, call_oi, put_oi} and top active contracts.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Underlying symbol (US market only), e.g. \"AAPL.US\"","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"option_volume_daily","title":"Option Volume (Daily)","description":"Get daily historical option stats for a US stock. Returns items[]{date, call_volume, put_volume, put_call_vol_ratio, call_oi, put_oi, put_call_oi_ratio}.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Underlying symbol (US market only), e.g. \"AAPL.US\"","type":"string"},"count":{"description":"Number of trading days to return (default 20)","type":"integer","default":null,"minimum":0},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"order_detail","title":"Order Detail","description":"Get detailed information about a specific order. To look up such a leg by its own ID instead, pass it as order_id with is_attached=true: the response is then that leg, with charge_detail null.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["order_id"],"type":"object","properties":{"order_id":{"description":"Order ID to look up. A parent order ID, or (with is_attached=true) the\nID of an attached take-profit / stop-loss leg.","type":"string"},"is_attached":{"description":"Set to true when order_id is the ID of an attached take-profit /\nstop-loss leg rather than a parent order. The response is then that leg\nitself, with charge_detail null. Omit (or false) for parent orders. Has\nno effect for US accounts, which are served by the US order endpoint.","type":"boolean"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"participants","title":"Market Participants","description":"Get HK market participant broker information. Returns participants[]{broker_ids[], name_en, name_cn, name_hk}. Use broker_ids to interpret broker queue data.","inputSchema":{"type":"object","properties":{"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"profit_analysis","title":"Profit Analysis","description":"Get portfolio profit and loss analysis summary. start/end: optional date range in yyyy-mm-dd format. Both must be provided together — passing only one returns empty results.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"start":{"description":"Start date (yyyy-mm-dd). Must be paired with `end`; passing only one returns empty results.","type":"string"},"end":{"description":"End date (yyyy-mm-dd). Must be paired with `start`; passing only one returns empty results.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}},"type":"object"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"profit_analysis_detail","title":"Profit Analysis Detail","description":"Get detailed profit and loss analysis for a specific symbol. start/end: optional date range in yyyy-mm-dd format. Both must be provided together — passing only one returns empty results.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"700.HK\". Use the canonical form — a padded code like \"00700.HK\" returns an empty record, not an error.","type":"string"},"start":{"description":"Start date (yyyy-mm-dd). Must be paired with `end`; passing only one returns empty results.","type":"string"},"end":{"description":"End date (yyyy-mm-dd). Must be paired with `start`; passing only one returns empty results.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"profit_analysis_realized","title":"Profit Analysis (Realized, US)","description":"Get realized P&L for a US account, broken down by category (stock/option/crypto) and period. US accounts only; errors with DcRegionRestricted for AP accounts.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"currency":{"description":"Currency to report in, e.g. \"USD\" (default: \"USD\"). US accounts only.","type":"string"},"category":{"description":"Filter by category: \"STOCK\", \"OPTION\", \"CRYPTO\", or omit for all.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}},"type":"object"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"quant_run","title":"Quant — Run Indicator Script","description":"Run a quant indicator script against historical K-line data on the server. Executes the script server-side and returns the computed indicator/plot values as JSON. Periods: 1m, 5m, 15m, 30m, 1h, day, week, month, year (default: day). The optional input parameter accepts a JSON array matching the order of input.*() calls in the script, e.g. \"[14,2.0]\".","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol","start","end"],"properties":{"symbol":{"description":"Symbol in <CODE>.<MARKET> format, e.g. TSLA.US, 700.HK","type":"string"},"period":{"description":"K-line period: 1m, 5m, 15m, 30m, 1h, day, week, month, year (default: day)","type":"string","default":"day"},"start":{"description":"Start date (YYYY-MM-DD) for the K-line range","type":"string"},"end":{"description":"End date (YYYY-MM-DD) for the K-line range","type":"string"},"script":{"description":"Indicator script source.","type":"string"},"input":{"description":"Script input values as a JSON array, e.g. \"[14,2.0]\". Must match the order of input.*() calls in the script.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}},"type":"object"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"quote","title":"Quote","description":"Get latest price quotes. Returns per symbol: last_done, prev_close, open, high, low, volume, turnover, change_rate, change_value, trade_status, timestamp.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbols"],"type":"object","properties":{"symbols":{"description":"Security symbols, e.g. [\"700.HK\", \"AAPL.US\"]. Use the canonical form — a padded code like \"00700.HK\" returns an empty record, not an error.","type":"array","items":{"type":"string"}},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"rank_categories","title":"Rank Categories","description":"Get rank tab category configurations for the popularity leaderboard. Pass a second_tags key (e.g. `hot_all-us`) to rank_list.","inputSchema":{"type":"object","properties":{"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"rank_list","title":"Rank List","description":"Get ranked stock list by leaderboard tab key. key: from rank_categories second_tags[].key (e.g. \"hot_all-us\", \"hot_up-hk\", \"trade_heat-us\"). market: inferred from key suffix (-us/-hk) or pass explicitly. size: results (default 20).","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["key"],"type":"object","properties":{"key":{"description":"Tab key from rank_categories second_tags[].key, e.g. \"hot_all-us\" (US total heat),\n\"hot_up-hk\" (HK rising heat), \"trade_heat-us\" (US hot trades).\nThe \"ib_\" prefix is stripped from rank_categories keys and added back automatically.","type":"string"},"market":{"description":"Market override: \"US\" | \"HK\" | \"CN\" | \"SG\".\nDefaults to the market suffix in the key (e.g. \"ib_hot_all-hk\" → HK), then \"US\".","type":"string"},"size":{"description":"Number of results to return (default: 20)","type":"integer","minimum":0},"need_article":{"description":"Whether to include related news articles (default: false)","type":"boolean"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"replace_order","title":"Replace Order","description":"Modify an open order's quantity, price, trigger_price, or trailing params. Returns \"order replaced\" on success. Only open/pending orders can be modified. TWO-STEP CONFIRMATION IS MANDATORY: this tool is a DRY RUN unless you pass the confirmation_code its own dry run returned. Call it first without execute, show the returned preview to the user, and only call it again with execute=\"<confirmation_code>\" after the user has explicitly confirmed that exact order. The code is derived from the order itself, so it applies only to that exact order. Never quote it back on your own initiative, and never in the same turn the user first asks. The dry run echoes the current order alongside the requested change. Attached take-profit/stop-loss legs are changed here too: attached_order_type with the new attached_profit_taker_price / attached_stop_loss_price adds or reprices a leg, attached_profit_taker_id / attached_stop_loss_id target an existing leg, and attached_cancel_all=true removes every leg while leaving the order in place.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["order_id","quantity"],"type":"object","properties":{"order_id":{"description":"Order ID to replace (returned by submit_order or listed in today_orders / history_orders)","type":"string"},"quantity":{"description":"New order quantity (number of shares)","type":"string"},"price":{"description":"New limit price (for limit-style orders)","type":"string"},"trigger_price":{"description":"New trigger (activation) price (for LIT / MIT / trailing-stop orders)","type":"string"},"limit_offset":{"description":"New limit offset from the trailing stop price (for TSLPAMT / TSLPPCT)","type":"string"},"trailing_amount":{"description":"New trailing amount as absolute price distance (for TSLPAMT)","type":"string"},"trailing_percent":{"description":"New trailing percent as decimal e.g. 0.05 = 5% (for TSLPPCT)","type":"string"},"attached_cancel_all":{"description":"Set to true to cancel every attached take-profit / stop-loss leg of this\norder, leaving the order itself in place.","type":"boolean"},"attached_order_type":{"description":"Attached leg to add or update: \"PROFIT_TAKER\", \"STOP_LOSS\" or \"BRACKET\".\nRequired unless the only attached change is attached_cancel_all.","type":"string"},"attached_profit_taker_id":{"description":"ID of the existing take-profit leg to update (from\norder_detail's attached_orders[]). Omit to add a new leg.","type":"string"},"attached_stop_loss_id":{"description":"ID of the existing stop-loss leg to update (from order_detail's\nattached_orders[]). Omit to add a new leg.","type":"string"},"attached_profit_taker_price":{"description":"New take-profit trigger price.","type":"string"},"attached_stop_loss_price":{"description":"New stop-loss trigger price.","type":"string"},"attached_profit_taker_submit_price":{"description":"New limit price for the take-profit leg.","type":"string"},"attached_stop_loss_submit_price":{"description":"New limit price for the stop-loss leg.","type":"string"},"attached_time_in_force":{"description":"New time-in-force for the attached leg: \"Day\" / \"GTC\" / \"GTD\".","type":"string"},"attached_expire_time":{"description":"New expiry for the attached leg as a unix timestamp in seconds.\nRequired when attached_time_in_force is GTD.","type":"string"},"attached_activate_order_type":{"description":"New order type for the triggered leg, e.g. \"LO\" or \"MO\".","type":"string"},"attached_outside_rth":{"description":"New outside-RTH setting for the triggered leg: \"RTH_ONLY\" / \"ANY_TIME\"\n/ \"OVERNIGHT\".","type":"string"},"attached_main_id":{"description":"ID of the parent order that owns the attached leg, when the leg is\nmodified on its own rather than through its parent.","type":"string"},"attached_quantity":{"description":"New quantity for the attached leg.","type":"string"},"attached_market_price":{"description":"Reference market price for the attached leg.","type":"string"},"execute":{"description":"The `confirmation_code` from this order's dry run. WITHOUT IT NOTHING IS\nSENT.\n\nOmitted (the default) makes this a DRY RUN: the request is validated and\nechoed back with a three-digit `confirmation_code`, and nothing reaches\nthe exchange.\n\nRequired protocol: call once without `execute`, show the returned\npreview to the user, and call again quoting the code only after the user\nhas explicitly confirmed that exact order. The code is single use,\nexpires in 10 minutes, and applies only to this exact order — change any\nfield and it stops working. Never quote it back on your own initiative,\nand never in the same turn the user first asks.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true}},{"name":"screener_indicators","title":"Screener Indicators","description":"Get all available screener indicator keys with units and default value ranges. Technical indicators include a tech_values field showing available options (e.g. macd_day: {category:[goldenfork,deadcross], period:[day,week]}).","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"symbol":{"description":"Optional security symbol to filter indicators for a specific stock, e.g. \"AAPL.US\"","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}},"type":"object"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"screener_recommend_strategies","title":"Screener Recommend Strategies","description":"List platform-preset screener strategies. market: US|HK|CN|SG (default: US). Pass id to screener_search strategy_id to run, or screener_strategy to inspect filter conditions.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"market":{"description":"Market filter: \"US\" | \"HK\" | \"CN\" | \"SG\" (default: \"US\")","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}},"type":"object"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"screener_search","title":"Screener Search","description":"Screen stocks. market: US|HK|CN|SG (Mode B required; Mode A uses strategy's market). Mode A: strategy_id from screener_recommend_strategies — auto-runs saved strategy.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"market":{"description":"Market: \"US\" | \"HK\" | \"CN\" | \"SG\".\nMode A: overridden by the market embedded in the strategy; pass any value or omit.\nMode B: required — determines which market to screen.","type":"string"},"strategy_id":{"description":"Mode A — Strategy ID from screener_recommend_strategies screeners[].id.\nThe tool auto-fetches the strategy and builds filters. Omit for Mode B.","type":"string"},"conditions":{"description":"Mode B — Filter conditions, passed directly to the API. Omit for Mode A.\n\nFundamental keys (pass with or without filter_ prefix):\n  pettm  pbmrq  roe  roa  netmargin\n  salesgrowthyoy  netincomegrowthyoy  marketcap(亿)\n  circulating_marketcap(亿)  prevclose  prevchg(%)\n  divyld  la  epsttm  netincome(亿)  sales(亿)  turnover_rate  balance(万)\n\nTechnical indicator keys (tech_values required; call screener_indicators for schema):\n  macd_day/week  → {\"category\":\"goldenfork\"|\"deadcross\",\"period\":\"day\"|\"week\"}\n  rsi_day/week   → {\"value_type\":\"overbought\"|\"oversold\"}\n  kdj_day/week   → {\"category\":\"goldenfork\"|\"deadcross\"}\n  boll_day/week  → {\"category\":\"breakthrough_up\"|\"breakthrough_down\"}","type":"array","items":{"type":"object","properties":{"key":{"description":"Indicator key; the \"filter_\" prefix is added automatically if missing.\nFundamental: pettm, pbmrq, roe, roa, netmargin, salesgrowthyoy, netincomegrowthyoy, marketcap, circulating_marketcap, prevclose, prevchg, divyld, la, epsttm, netincome, sales, turnover_rate, balance.\nTechnical: macd_day, macd_week, rsi_day, rsi_week, kdj_day, kdj_week, boll_day, boll_week.","type":"string"},"min":{"description":"Lower bound as a numeric string, e.g. \"10\". Pass an empty string when unbounded or for technical keys.","type":"string"},"max":{"description":"Upper bound as a numeric string, e.g. \"50\". Pass an empty string when unbounded or for technical keys.","type":"string"},"tech_values":{"description":"Technical-indicator params as a JSON string (empty string for fundamental keys):\nmacd_day/week: {\"category\":\"goldenfork\"|\"deadcross\",\"period\":\"day\"|\"week\"}\nrsi_day/week: {\"value_type\":\"overbought\"|\"oversold\"}\nkdj_day/week: {\"category\":\"goldenfork\"|\"deadcross\"}\nboll_day/week: {\"category\":\"breakthrough_up\"|\"breakthrough_down\"}","type":"string"}},"required":["key"]}},"extra_returns":{"description":"Extra indicator keys to include in each result row (display-only, not used as filters).\nSame key naming as conditions (filter_ prefix added automatically).\nExample: [\"marketcap\", \"prevclose\", \"epsttm\"]","type":"array","items":{"type":"string"}},"sort_by_key":{"description":"Indicator key to sort results by (e.g. \"marketcap\", \"roe\").\nDefaults to the first condition key. Must be one of the condition or extra_returns keys.","type":"string"},"sort_order":{"description":"Sort order: \"asc\" | \"desc\" (default: \"desc\")","type":"string"},"page":{"description":"Page number, 0-based (default: 0)","type":"integer","minimum":0},"size":{"description":"Page size (default: 20, max: 100)","type":"integer","minimum":0},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}},"type":"object"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"screener_strategy","title":"Screener Strategy","description":"Inspect a screener strategy's filter conditions before running it. Use screener_search strategy_id to execute the strategy.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["id"],"type":"object","properties":{"id":{"description":"Strategy ID from screener_recommend_strategies or screener_user_strategies screeners[].id","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"screener_user_strategies","title":"Screener User Strategies","description":"List the current user's saved screener strategies. market: US|HK|CN|SG (default: US). Pass id to screener_search strategy_id to run, or screener_strategy to inspect conditions.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"market":{"description":"Market filter: \"US\" | \"HK\" | \"CN\" | \"SG\" (default: \"US\")","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}},"type":"object"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"security_facts","title":"Security Facts","description":"List a security's fact (catalyst) events — anomaly detections, factor readings, data sources and natural-language summaries — filtered by time range and count. Facts are what strategies react to: a signal names its trigger in key_fact_id.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Security symbol to query, e.g. \"AAPL.US\" or \"700.HK\".","type":"string"},"begin_time":{"description":"The optional start time of the fact query, formatted as 2006-01-02T15:04:05Z in UTC Timezone. If left empty, the query will include the earliest available data.","type":"string"},"end_time":{"description":"The end time of the fact to be queried, formatted as 2006-01-02T15:04:05Z in UTC Timezone. If left empty, the query will default to retrieving the latest data.","type":"string"},"limit":{"description":"The maximum number of facts to return. If the number of facts in the time range exceeds this limit, only the latest 'limit' facts will be returned. Defaults to 100.","type":"integer","default":100},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"security_list","title":"Security List","description":"Get security list for a market. Supports market: US, HK, CN, SG. category: \"Overnight\" (default). page: 1-based page number (default 1). count: records per page (default 50).","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["market"],"type":"object","properties":{"market":{"description":"Market code: US, HK, CN, SG","type":"string"},"category":{"description":"Category filter. Currently only \"Overnight\" is supported; omitting defaults to Overnight.","type":"string"},"page":{"description":"Page number, 1-based (default: 1)","type":"integer","default":null,"minimum":0},"count":{"description":"Records per page (default: 50)","type":"integer","default":null,"minimum":0},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"shareholder","title":"Shareholders","description":"Get institutional shareholders for a symbol.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"700.HK\". Use the canonical form — a padded code like \"00700.HK\" returns an empty record, not an error.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"shareholder_detail","title":"Shareholder Detail","description":"Get a single shareholder's holding and trade history. Requires object_id from shareholder_top. Note: trading_details[] is empty for institutional (13F) holders — it is only populated for insider/individual filers (Form 4).","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol","object_id"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"AAPL.US\"","type":"string"},"object_id":{"description":"Shareholder object_id from shareholder_top tool","type":"integer"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"shareholder_top","title":"Top 20 Shareholders","description":"Get Top 20 major shareholders (institutions, individuals, insiders) across reporting periods. Use object_id with shareholder_detail to drill into a holder's full trade history.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"AAPL.US\"","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"sharelist_add","title":"Add to Sharelist","description":"Add securities to a community sharelist by id. Provide symbols (e.g. [\"AAPL.US\", \"700.HK\"]) to add. Returns upstream API response.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["id","symbols"],"type":"object","properties":{"id":{"description":"Sharelist ID","type":"string"},"symbols":{"description":"Security symbols, e.g. [\"AAPL.US\", \"700.HK\"]","type":"array","items":{"type":"string"}},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sharelist_create","title":"Create Sharelist","description":"Create a new community sharelist with a name and optional description.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["name"],"type":"object","properties":{"name":{"description":"List name (also used as description if `description` is omitted).","type":"string"},"description":{"description":"List description. Defaults to `name` when omitted.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sharelist_delete","title":"Delete Sharelist","description":"Delete a community sharelist by id (own lists only; subscribed lists cannot be deleted). Returns upstream API response on success.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["id"],"type":"object","properties":{"id":{"description":"Sharelist ID","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true}},{"name":"sharelist_detail","title":"Sharelist Detail","description":"Get community sharelist detail by id.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["id"],"type":"object","properties":{"id":{"description":"Sharelist ID","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"sharelist_list","title":"List Sharelists","description":"List user's own and subscribed community sharelists.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"count":{"description":"Number of lists to return (default 20)","type":"integer","default":null,"minimum":0},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}},"type":"object"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"sharelist_popular","title":"Popular Sharelists","description":"Get popular/trending community sharelists.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"count":{"description":"Number of lists to return (default 20)","type":"integer","default":null,"minimum":0},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}},"type":"object"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"sharelist_remove","title":"Remove from Sharelist","description":"Remove securities from a community sharelist by id. Provide symbols to remove. Returns upstream API response on success.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["id","symbols"],"type":"object","properties":{"id":{"description":"Sharelist ID","type":"string"},"symbols":{"description":"Security symbols, e.g. [\"AAPL.US\", \"700.HK\"]","type":"array","items":{"type":"string"}},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true}},{"name":"sharelist_sort","title":"Sort Sharelist","description":"Reorder securities in a community sharelist by id. Provide symbols in the desired new order. Returns upstream API response on success.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["id","symbols"],"type":"object","properties":{"id":{"description":"Sharelist ID","type":"string"},"symbols":{"description":"Security symbols, e.g. [\"AAPL.US\", \"700.HK\"]","type":"array","items":{"type":"string"}},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true}},{"name":"short_margin","title":"Short Margin","description":"Get short margin deposit details for the current account. Returns short positions with margin_amount, margin_rate, interest_rate, symbol, quantity per position.","inputSchema":{"type":"object","properties":{"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"short_positions","title":"Short Positions","description":"Get short interest history (open short positions) for HK or US stocks. Market inferred from symbol suffix. count: 1–100 (default 20). Unified data[]{timestamp(RFC3339), short_shares(open short position in shares), rate(decimal ratio e.g. 0.009=0.9%), close}. US-only: avg_daily_vol, days_to_cover. HK-only: balance(outstanding short position in HKD). US source: FINRA bi-weekly. HK source: HKEX daily.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"AAPL.US\" (US) or \"700.HK\" (HK). Market is inferred from suffix.","type":"string"},"count":{"description":"Number of records to return (1-100, default 20)","type":"integer","default":null,"minimum":0},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"short_trades","title":"Short Trades","description":"Get daily short-sale volume history for HK or US stocks. Market inferred from symbol suffix. last_timestamp: unix seconds (omit for latest). page_size: 1–100 (default 20). US source: FINRA/NASDAQ daily. HK source: HKEX daily.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol","last_timestamp"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"AAPL.US\" (US) or \"700.HK\" (HK). Market is inferred from suffix.","type":"string"},"last_timestamp":{"description":"Query cutoff timestamp in seconds (pass current timestamp for latest data)","type":"string"},"page_size":{"description":"Page size: 1–100 (default: 20)","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"signal_detail","title":"Signal Detail","description":"Get one signal by ID (from `signals`). Same fields as the list, plus `analysis` — the full strategy analysis: fit scores, valuation scenarios, evidence sources and related fact IDs.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["signal_id"],"type":"object","properties":{"signal_id":{"description":"Signal ID, e.g. \"sign_992_1a00c9425c3_48ab\". Get IDs from `signals`.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"signals","title":"Signals","description":"Query strategy signals — a strategy's take on a security, triggered by a catalyst. Filter by symbol, strategy, catalyst and time range; page with limit/offset. The full strategy analysis is omitted here — fetch it with signal_detail.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"symbol_name":{"description":"Filter by security symbol, e.g. \"AAPL.US\" or \"700.HK\". If omitted, returns signals for all symbols.","type":"string"},"strategy_id":{"description":"Filter by strategy id (e.g., \"buffett-value\"). Preferred over the deprecated strategy_name; takes precedence when both are provided.","type":"string"},"strategy_name":{"description":"Filter by strategy name. If omitted, returns signals from all strategies.","type":"string"},"catalyst_name":{"description":"Filter by the name of the factor that triggered the signal, e.g. \"EARNINGS_RELEASED\" or \"macd_12_26_9\" — not the display label returned in key_catalyst. If omitted, signals with any catalyst name are returned.","type":"string"},"catalyst_type":{"description":"Filter by the catalyst type that triggered the signal, e.g. \"News\", \"Fundamental\", \"Technical\". If omitted, signals with any catalyst type are returned.","type":"string"},"start_time":{"description":"Filter records created at or after this time. ISO 8601 datetime with timezone, e.g. 2024-01-15T10:30:00Z. If omitted, no lower bound.","type":"string"},"end_time":{"description":"Filter records created at or before this time. ISO 8601 datetime with timezone. If omitted, no upper bound.","type":"string"},"limit":{"description":"Maximum number of results to return. Defaults to 20.","type":"integer","default":20},"offset":{"description":"Number of results to skip for pagination. Defaults to 0.","type":"integer","default":0},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}},"type":"object"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"statement_export","title":"Export Statement","description":"Get a pre-signed download URL for a statement data file (obtained from statement_list).","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["file_key"],"type":"object","properties":{"file_key":{"description":"File key from statement_list, e.g. \"/statement_data/data/.../20975338.json\"","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"statement_list","title":"Statement List","description":"List available account statements (daily/monthly). Use the id with statement_export to download.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"statement_type":{"description":"Statement type: \"daily\" (default) or \"monthly\".","type":"string"},"start_date":{"description":"Start date (yyyy-mm-dd). Defaults to 30 days ago for \"daily\" or 12 months ago for \"monthly\".","type":"string"},"limit":{"description":"Number of records to return. Defaults to 30 for \"daily\" or 12 for \"monthly\".\n\nThe default depends on `statement_type`, so the schema declares none:\n`skip_serializing_if` is what stops schemars deriving `default: null`\nfrom `serde(default)`, which would contradict the integer type.","type":"integer"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}},"type":"object"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"static_info","title":"Security Static Info","description":"Get static info for securities. Returns per symbol: symbol, name_cn, name_en, exchange (e.g. NASDAQ), type (e.g. US_Stock), lot_size, listed_date, delisted (bool). US accounts only: .BKKT crypto symbols (e.g. BTCUSD.BKKT) are routed to a separate US crypto overview endpoint; .HAS/.OSL crypto symbols are unaffected.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbols"],"type":"object","properties":{"symbols":{"description":"Security symbols, e.g. [\"700.HK\", \"AAPL.US\"]. Use the canonical form — a padded code like \"00700.HK\" returns an empty record, not an error.","type":"array","items":{"type":"string"}},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"stock_positions","title":"Stock Positions","description":"Get current stock positions across all channels. US accounts only: an additional us_asset_overview field {cash_list, stock_list, option_list, crypto_list, cash_buy_power, overnight_buy_power} is included alongside the existing data.","inputSchema":{"type":"object","properties":{"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"submit_multileg_order","title":"Submit Multi-Leg Order","description":"Submit a multi-leg option combination order; all legs fill or rest together as one strategy order. strategy: CoveredCall / CoveredPut / VerticalCallSpread / VerticalPutSpread / Collar / Straddle / Strangle.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","$defs":{"MultiLegParam":{"description":"One leg of a multi-leg combination order.","type":"object","properties":{"symbol":{"description":"Option symbol in `<CODE>.<MARKET>` format, e.g. \"QQQ260731C764000.US\"","type":"string"},"ratio_quantity":{"description":"Leg ratio, a positive number (e.g. \"1\", \"2\"). The buy/sell direction of\neach leg comes from `strategy` together with the order `side`, never\nfrom the sign here — a zero or negative ratio is rejected upstream.","type":"string"}},"required":["symbol","ratio_quantity"]}},"type":"object","properties":{"strategy":{"description":"Strategy, which fixes how many legs are required and the direction of\neach: CoveredCall / CoveredPut (stock + option) / VerticalCallSpread /\nVerticalPutSpread / Collar / Straddle / Strangle","type":"string"},"side":{"description":"Buy or Sell — the direction of the strategy as a whole","type":"string"},"order_type":{"description":"Order type: LO (Limit, requires submitted_price) or MO (Market)","type":"string"},"submitted_quantity":{"description":"Number of strategy units to trade (each unit is one set of legs in the\nratios given by `legs`)","type":"string"},"legs":{"description":"The legs of the combination, in strategy order. Option symbols only.","type":"array","items":{"$ref":"#/$defs/MultiLegParam"}},"submitted_price":{"description":"Net limit price for the whole combination. Required for LO.","type":"string"},"remark":{"description":"Order remark (max 255 characters)","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}},"required":["strategy","side","order_type","submitted_quantity","legs"]},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"submit_order","title":"Submit Order","description":"Submit a buy/sell order. DRY RUN unless execute is the confirmation_code from its own dry run: call once without execute, show the preview to the user, then re-call quoting the code only after they explicitly confirm.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol","order_type","side","submitted_quantity","time_in_force"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"700.HK\". Use the canonical form — a padded code like \"00700.HK\" returns an empty record, not an error.","type":"string"},"order_type":{"description":"Order type (HK supports all; US supports LO/MO/LIT/MIT/TSLPAMT/TSLPPCT only):\n- LO (Limit Order): requires submitted_price\n- ELO (Enhanced Limit Order, HK only): requires submitted_price\n- MO (Market Order): no price required\n- AO (At-auction Order, HK only): executed at auction price, no price required\n- ALO (At-auction Limit Order, HK only): requires submitted_price\n- ODD (Odd Lots Order, HK only): requires submitted_price, for non-standard lot sizes\n- LIT (Limit If Touched): requires submitted_price and trigger_price; activates when market price touches trigger_price\n- MIT (Market If Touched): requires trigger_price only; executes at market when trigger_price is touched\n- TSLPAMT (Trailing Limit If Touched by Amount): requires trailing_amount and limit_offset; trailing stop by fixed amount\n- TSLPPCT (Trailing Limit If Touched by Percent): requires trailing_percent (0-1) and limit_offset; trailing stop by percentage\n- SLO (Special Limit Order, HK only): requires submitted_price; cannot be replaced after submission","type":"string"},"side":{"description":"Buy or Sell","type":"string"},"submitted_quantity":{"description":"Order quantity (number of shares)","type":"string"},"time_in_force":{"description":"Order validity: \"Day\" (Day Order, expires end of session), \"GTC\" (Good Til Canceled), \"GTD\" (Good Til Date, requires expire_date)","type":"string"},"submitted_price":{"description":"Limit price. Required for: LO, ELO, ALO, ODD, LIT, SLO","type":"string"},"trigger_price":{"description":"Trigger (activation) price. Required for: LIT, MIT, TSLPAMT, TSLPPCT","type":"string"},"limit_offset":{"description":"Limit offset from the trailing stop price. Required for: TSLPAMT, TSLPPCT","type":"string"},"trailing_amount":{"description":"Trailing amount (absolute price distance). Required for TSLPAMT","type":"string"},"trailing_percent":{"description":"Trailing percent as decimal (e.g. 0.05 = 5%). Required for TSLPPCT","type":"string"},"expire_date":{"description":"Expiry date (yyyy-mm-dd). Required when time_in_force is GTD","type":"string"},"outside_rth":{"description":"Outside regular trading hours: \"RTH_ONLY\" (regular trading hours only), \"ANY_TIME\" (any time including pre/post market), \"OVERNIGHT\" (overnight session, US only)","type":"string"},"remark":{"description":"Order remark (max 255 characters)","type":"string"},"attached_order_type":{"description":"Attach a take-profit / stop-loss leg to this order: \"PROFIT_TAKER\"\n(take-profit only), \"STOP_LOSS\" (stop-loss only) or \"BRACKET\" (both).\nOmit for a plain order; every other attached_* field is ignored without\nit.","type":"string"},"attached_profit_taker_price":{"description":"Take-profit trigger price. Required for PROFIT_TAKER and BRACKET.","type":"string"},"attached_stop_loss_price":{"description":"Stop-loss trigger price. Required for STOP_LOSS and BRACKET.","type":"string"},"attached_profit_taker_submit_price":{"description":"Limit price of the take-profit leg, for an LO attached_activate_order_type.","type":"string"},"attached_stop_loss_submit_price":{"description":"Limit price of the stop-loss leg, for an LO attached_activate_order_type.","type":"string"},"attached_time_in_force":{"description":"Time-in-force of the attached leg: \"Day\" / \"GTC\" / \"GTD\". Defaults to\nthe parent order's setting when omitted.","type":"string"},"attached_expire_time":{"description":"Expiry of the attached leg as a unix timestamp in seconds (e.g.\n\"1767139200\"). Required when attached_time_in_force is GTD.","type":"string"},"attached_activate_order_type":{"description":"Order type the attached leg is submitted as once triggered, e.g. \"LO\"\n(then set the matching attached_*_submit_price) or \"MO\".","type":"string"},"attached_outside_rth":{"description":"Outside-RTH setting of the triggered leg: \"RTH_ONLY\" / \"ANY_TIME\" /\n\"OVERNIGHT\".","type":"string"},"execute":{"description":"The `confirmation_code` from this order's dry run. WITHOUT IT NOTHING IS\nSENT.\n\nOmitted (the default) makes this a DRY RUN: the request is validated and\nechoed back with a three-digit `confirmation_code`, and nothing reaches\nthe exchange.\n\nRequired protocol: call once without `execute`, show the returned\npreview to the user, and call again quoting the code only after the user\nhas explicitly confirmed that exact order. The code is single use,\nexpires in 10 minutes, and applies only to this exact order — change any\nfield and it stops working. Never quote it back on your own initiative,\nand never in the same turn the user first asks.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"today_executions","title":"Today's Executions","description":"Get today's trade executions (fills). Returns executions[]{order_id, trade_id, symbol, side, quantity, price, trade_done_at}. Pass symbol or order_id to filter.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"symbol":{"description":"Filter by symbol, e.g. \"700.HK\".","type":"string"},"order_id":{"description":"Filter by a specific order_id.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}},"type":"object"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"today_orders","title":"Today's Orders","description":"Get orders placed today. Returns orders[]{order_id, symbol, side, order_type, status, quantity, price, submitted_at, executed_quantity, executed_price, attached_orders[]}, where attached_orders[] holds the order's take-profit/stop-loss legs. Pass symbol to filter by security, or order_id for one order. To fetch an attached leg by its own ID, pass that ID as order_id together with is_attached=true — the leg itself comes back as the order entry. is_attached does nothing without order_id, and neither has any effect for US accounts, which are served by the US order endpoint. US accounts only: us_action (Buy/Sell), us_page, us_limit filter/paginate via a separate US order endpoint.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"symbol":{"description":"Filter by symbol, e.g. \"700.HK\". Omit to return all today's orders.","type":"string"},"order_id":{"description":"Filter by order ID: a parent order ID, or (with is_attached=true) the ID\nof an attached take-profit / stop-loss leg. Has no effect for\nUS accounts, which are served by the US order endpoint.","type":"string"},"is_attached":{"description":"Only meaningful together with order_id: it says that order_id is the ID\nof an attached take-profit / stop-loss leg, and the response then\ncarries that leg itself as an order entry. On its own it does nothing,\nand it has no effect for US accounts either.","type":"boolean"},"us_action":{"description":"US accounts only: filter by side, \"Buy\" or \"Sell\". Omit for\nall. Ignored for AP accounts (the region is inferred from the\naccount — do not pass it).","type":"string"},"us_page":{"description":"US accounts only: page number (default 1). Ignored for\nAP accounts.","type":"integer"},"us_limit":{"description":"US accounts only: page size (default 20). Ignored for\nAP accounts.","type":"integer"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}},"type":"object"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"top_movers","title":"Top Movers","description":"Get stocks whose price fluctuation exceeds the 20-trading-day standard deviation, with correlated news reasons. markets: comma-separated HK/US/CN/SG (omit=all). sort: 0=time 1=change-magnitude 2=popularity/heat (default).","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"markets":{"description":"Market filter: comma-separated list of markets to include.\nSupported values: \"HK\", \"US\", \"CN\", \"SG\". Omit to return all markets.\nExample: \"HK,US\"","type":"string"},"sort":{"description":"Sort order (default: \"2\"):\n  \"0\" = by time (most recent first)\n  \"1\" = by price change magnitude (largest move first)\n  \"2\" = by popularity (most-viewed first)","type":"string"},"date":{"description":"Date to query in \"YYYY-MM-DD\" format. Omit for today's movers.","type":"string"},"limit":{"description":"Number of events to return per page (default: 20, max: 100)","type":"integer","minimum":0},"next_params":{"description":"Pagination cursor from previous response next_params field.\nPass the entire next_params object returned by the previous call to get the next page.\nOmit for the first page.","type":"object","properties":{"visited":{"description":"Event IDs already seen in previous pages. Pass back verbatim from the previous response — do not fabricate.","type":"array","items":{"type":"string"}}},"required":["visited"],"default":null},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}},"type":"object"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"topic","title":"Topic List","description":"Get discussion topics for a symbol. Returns items[]{id, title, author, created_at, like_count, comment_count, content_summary}.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"700.HK\". Use the canonical form — a padded code like \"00700.HK\" returns an empty record, not an error.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"topic_create","title":"Create Topic","description":"Create a new discussion topic. topic_type=\"post\" (default) is plain text; \"article\" requires a non-empty title and accepts Markdown body.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["title","body"],"type":"object","properties":{"title":{"description":"Topic title. Required when topic_type is \"article\", optional for \"post\".","type":"string"},"body":{"description":"Topic body. \"post\" type is plain text only; \"article\" type accepts Markdown.","type":"string"},"symbols":{"description":"Related security symbols, e.g. [\"700.HK\", \"TSLA.US\"] (max 10).","type":"array","items":{"type":"string"},"default":null},"topic_type":{"description":"Topic type: \"post\" (default, plain text) or \"article\" (Markdown, title required).","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"topic_create_reply","title":"Create Topic Reply","description":"Create a reply to a discussion topic. Pass reply_to_id to nest under another reply; omit for a top-level reply.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["topic_id","body"],"type":"object","properties":{"topic_id":{"description":"Topic ID to reply to.","type":"string"},"body":{"description":"Reply body (plain text only).","type":"string"},"reply_to_id":{"description":"Optional parent reply ID for nested replies. Get IDs from `topic_replies`. Omit for a top-level reply.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"topic_detail","title":"Topic Detail","description":"Get discussion topic detail by topic_id.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["topic_id"],"type":"object","properties":{"topic_id":{"description":"Topic ID","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"topic_replies","title":"Topic Replies","description":"Get replies to a discussion topic, paginated (page default 1, size default 20, range 1-50)","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["topic_id"],"type":"object","properties":{"topic_id":{"description":"Topic ID.","type":"string"},"page":{"description":"Page number, 1-based (default: 1).","type":"integer","default":1},"size":{"description":"Records per page, 1-50 (default: 20).","type":"integer","default":20},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"topic_search","title":"Topic Search","description":"Search community topics/posts by keyword. Returns id, author, time, and excerpt.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["keyword"],"type":"object","properties":{"keyword":{"description":"Search keyword","type":"string"},"limit":{"description":"Max results to return (default: 20)","type":"integer","minimum":0},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"trade_stats","title":"Trade Statistics","description":"Get trade statistics (buy/sell/neutral volume distribution). Returns items[]{price_range, buy_volume, sell_volume, neutral_volume} for price-volume profile.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"700.HK\". Use the canonical form — a padded code like \"00700.HK\" returns an empty record, not an error.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"trades","title":"Recent Trades","description":"Get recent trades (max 1000). Returns trades[]{price, volume, timestamp, trade_type, direction} for the symbol.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol","count"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"700.HK\". Use the canonical form — a padded code like \"00700.HK\" returns an empty record, not an error.","type":"string"},"count":{"description":"Maximum number of results (max 1000)","type":"integer","minimum":0},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"trading_days","title":"Trading Days","description":"Get trading days for a market between dates. market: HK/US/CN/SG.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["market","start","end"],"type":"object","properties":{"market":{"description":"Market code: HK, US, CN, SG","type":"string"},"start":{"description":"Start date (yyyy-mm-dd)","type":"string"},"end":{"description":"End date (yyyy-mm-dd)","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"trading_session","title":"Trading Sessions","description":"Get trading session schedule for all markets. Returns market_sessions[]{market, trade_sessions[]{beg_time, end_time, trade_session_type}}.","inputSchema":{"type":"object","properties":{"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"update_watchlist_group","title":"Update Watchlist Group","description":"Update a watchlist group by id. Can rename (name param) or modify securities (securities + mode: add/remove/replace).","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["id"],"type":"object","properties":{"id":{"description":"Watchlist group id","type":"integer"},"name":{"description":"New group name (optional)","type":"string"},"securities":{"description":"Securities list (optional)","type":"array","items":{"type":"string"},"default":null},"mode":{"description":"Update mode for securities: \"add\", \"remove\", or \"replace\" (default: \"replace\")","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true}},{"name":"valuation","title":"Valuation","description":"Get valuation overview with peer comparison. US accounts querying a .US symbol get a US-specific variant (ai_summary plus a metrics.pe object with different sub-fields). The region is detected from the account automatically.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"700.HK\". Use the canonical form — a padded code like \"00700.HK\" returns an empty record, not an error.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"valuation_comparison","title":"Stock Comparison","description":"Stock valuation comparison. Mode A (single): pass only symbol — server returns stock + auto-selected industry peers.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol","currency"],"type":"object","properties":{"symbol":{"description":"Security symbol to compare, e.g. \"AAPL.US\"","type":"string"},"currency":{"description":"Currency: \"USD\" | \"HKD\" | \"CNY\"","type":"string"},"comparison_symbols":{"description":"Comparison symbols, comma-separated, max 4, e.g. \"MSFT.US,GOOGL.US\".\nNote: pending backend support — currently server auto-selects industry peers.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"valuation_history","title":"Valuation History","description":"Get detailed valuation history time series.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"700.HK\". Use the canonical form — a padded code like \"00700.HK\" returns an empty record, not an error.","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"valuation_rank","title":"Valuation Rank","description":"Get daily valuation rank (PE/PB/PS/dividend yield industry percentile) for a security over a date range. start/end in yyyymmdd format.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol"],"type":"object","properties":{"symbol":{"description":"Security symbol, e.g. \"AAPL.US\"","type":"string"},"start":{"description":"Start date in yyyymmdd format (default: 30 days ago)","type":"string"},"end":{"description":"End date in yyyymmdd format (default: today)","type":"string"},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"warrant_issuers","title":"Warrant Issuers","description":"Get HK warrant issuer information. Returns issuers[]{id, name_en, name_cn}. Use id in warrant_list issuer filter.","inputSchema":{"type":"object","properties":{"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"warrant_list","title":"Warrant List","description":"Get filtered warrant list for an underlying symbol. Returns warrants[]{symbol, name, last_done, change_rate, implied_volatility, expiry_date, strike_price, leverage_ratio, outstanding_ratio}.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbol","sort_by","sort_order"],"type":"object","properties":{"symbol":{"description":"Underlying symbol, e.g. \"700.HK\"","type":"string"},"sort_by":{"description":"Sort field: LastDone, ChangeRate, ChangeValue, Volume, Turnover, ExpiryDate, StrikePrice, UpperStrikePrice, LowerStrikePrice, OutstandingQuantity, OutstandingRatio, Premium, ItmOtm, ImpliedVolatility, Delta","type":"string"},"sort_order":{"description":"Sort order: Ascending or Descending","type":"string"},"warrant_type":{"description":"Filter by warrant type (optional): \"Call\", \"Put\", \"Bull\", \"Bear\", \"Inline\"","type":"array","items":{"type":"string"},"default":null},"issuer":{"description":"Filter by issuer ID (optional), use issuer_id from warrant_issuers tool","type":"array","items":{"type":"integer"},"default":null},"expiry_date":{"description":"Filter by expiry date range (optional): \"LT_3\" (<3 months), \"Between_3_6\" (3-6 months), \"Between_6_12\" (6-12 months), \"GT_12\" (>12 months)","type":"array","items":{"type":"string"},"default":null},"price_type":{"description":"Filter by in/out of bounds (optional): \"In\" (in bounds), \"Out\" (out of bounds). Only for Inline warrants.","type":"array","items":{"type":"string"},"default":null},"status":{"description":"Filter by status (optional): \"Suspend\" (suspended), \"PrepareList\" (pending listing), \"Normal\" (normal trading)","type":"array","items":{"type":"string"},"default":null},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"warrant_quote","title":"Warrant Quote","description":"Get warrant quotes. Returns last_done, prev_close, open, high, low, volume, turnover, implied_volatility, delta, leverage_ratio, effective_leverage per symbol.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","required":["symbols"],"type":"object","properties":{"symbols":{"description":"Security symbols, e.g. [\"700.HK\", \"AAPL.US\"]. Use the canonical form — a padded code like \"00700.HK\" returns an empty record, not an error.","type":"array","items":{"type":"string"}},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"watchlist","title":"Watchlist","description":"Get all watchlist groups and their securities. Returns groups[]{id, name, securities[]{symbol, market, name, watched_price, watched_at}}.","inputSchema":{"type":"object","properties":{"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"withdrawals","title":"Withdrawals","description":"List withdrawal history for the current account. Returns items[]{id, amount, currency, status, created_at, bank_name, account_number (masked)}.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"page":{"description":"Page number (default: 1)","type":"integer","minimum":0},"size":{"description":"Page size (default: 20)","type":"integer","minimum":0},"_jq":{"type":"string","description":"Optional jq filter (jaq syntax) applied to this tool's JSON response before it is returned; it never changes the upstream request. One output is returned as-is, several as a JSON array, none as []. Module imports and the `env`/`debug`/`stderr` builtins are unavailable. Example: .data | map({symbol}). Omit for the full response."}},"type":"object"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}}],"scopes":[{"id":"0","name":"General","key":"","description":"General-purpose tools covering market data, quotes, fundamentals, alerts, DCA, sharelists, IPO, and content.","tools":["ah_premium","ah_premium_intraday","alert_add","alert_delete","alert_disable","alert_enable","alert_list","anomaly","broker_holding","broker_holding_daily","broker_holding_detail","brokers","business_segments","business_segments_history","calc_indexes","candlesticks","capital_distribution","capital_flow","company","consensus","constituent","corp_action","dca_check","depth","dividend","dividend_detail","etf_docs","exchange_rate","executive","filings","finance_calendar","financial_report","financial_report_key_metrics","financial_report_latest","financial_report_snapshot","financial_statement","forecast_eps","fund_holder","history_candlesticks_by_date","history_candlesticks_by_offset","history_market_temperature","industry_peers","industry_rank","industry_valuation","industry_valuation_dist","institution_rating","institution_rating_detail","institution_rating_history","institution_rating_industry_rank","institutional_views","intraday","invest_relation","ipo_calendar","ipo_detail","ipo_listed","ipo_subscriptions","market_status","market_temperature","news","news_detail","news_search","now","operating","option_chain_expiry_date_list","option_chain_info_by_date","option_quote","option_volume","option_volume_daily","participants","quant_run","quote","rank_categories","rank_list","screener_indicators","screener_recommend_strategies","screener_search","screener_strategy","screener_user_strategies","security_facts","shareholder","shareholder_detail","shareholder_top","sharelist_add","sharelist_create","sharelist_delete","sharelist_detail","sharelist_list","sharelist_popular","sharelist_remove","sharelist_sort","short_positions","short_trades","signal_detail","signals","static_info","top_movers","topic","topic_create","topic_create_reply","topic_detail","topic_replies","topic_search","trade_stats","trades","trading_days","trading_session","valuation","valuation_comparison","valuation_history","valuation_rank","warrant_issuers","warrant_list","warrant_quote"]},{"id":"4","name":"Watchlist","key":"watchlist","description":"Manage the user's watchlist groups (read/create/update/delete) and look up the securities each group contains.","tools":["create_watchlist_group","delete_watchlist_group","security_list","update_watchlist_group","watchlist"]},{"id":"6","name":"Account & Positions","key":"account.read","description":"Query account assets and cash flow — fund/stock holdings, account cash and equity, margin ratio, profit analysis and statements — for portfolio overviews, position display and account reconciliation.","tools":["account_balance","bank_cards","cash_flow","deposits","fund_positions","ipo_order_detail","ipo_orders","ipo_profit_loss","margin_ratio","profit_analysis","profit_analysis_detail","profit_analysis_realized","short_margin","statement_export","statement_list","stock_positions","withdrawals"]},{"id":"10","name":"Trade Order Lookup","key":"trade.read","description":"Cover the post-submit order lifecycle and execution data: order detail, today/history orders, today/history executions, DCA plan reads, grid order reads (list/detail/trigger history) and grid symbol setup info, plus pre-trade max purchase quantity estimation.","tools":["dca_history","dca_list","dca_stats","estimate_max_purchase_quantity","grid_detail","grid_list","grid_list_by_ids","grid_symbol_info","grid_trigger_history","history_executions","history_orders","order_detail","today_executions","today_orders"]},{"id":"11","name":"Trade Execution","key":"trade.write","description":"Place, replace and cancel orders, DCA plan create/update/pause/resume/stop, and grid order submit/replace/cancel/suspend/restart plus the one-time grid strategy consent.","tools":["cancel_order","dca_create","dca_pause","dca_resume","dca_stop","dca_update","grid_cancel","grid_replace","grid_restart","grid_submit","grid_suspend","replace_order","submit_multileg_order","submit_order"]}],"locales":{"zh-CN":{"$schema":"../tools.schema.json","server_instructions":"长桥 MCP 服务 —— 提供市场数据、交易与金融分析工具。委托执行需要两步确认：submit_order、cancel_order、replace_order 以及全部网格写操作（grid_submit、grid_replace、grid_cancel、grid_suspend、grid_restart）在未回填确认码时均为 DRY RUN（试运行），并会返回一个一次性 confirmation_code。请务必先不带 execute 调用一次，把预览展示给用户，只有在用户明确确认之后，才可再次调用并把该确认码传入 execute。 调用失败时，工具会在结果内容里返回带 error_code 和 recoverable 字段的 JSON 信封：reauth（重新鉴权后重试）、backoff（等待后重试）、fix_params（修正参数后重试）、none（不要重试，告知用户）。","tools":{"create_watchlist_group":{"title":"新建自选分组","description":"新建自选分组，返回 {id, name}。可选传入 securities（如 [\"AAPL.US\"]）预填入证券","properties":{"name":"分组名称","securities":"要加入的证券代码，例如 `[\"700.HK\", \"AAPL.US\"]`"}},"delete_watchlist_group":{"title":"删除自选分组","description":"按分组 id 删除自选分组。purge=true 时同时从其他分组中移除该分组包含的证券","properties":{"id":"自选分组 id","purge":"是否同时从其他分组中清除这些证券"}},"security_list":{"title":"证券列表","description":"获取指定市场的证券列表。支持市场：US、HK、CN、SG。category 当前仅支持 \"Overnight\"（默认）。page：页码（从1开始，默认1）。count：每页条数（默认50）。返回 {total, page, count, items[]{symbol, name_en, name_cn}}。","properties":{"market":"市场代码：US、HK、CN、SG","category":"类别筛选，当前仅支持 \"Overnight\"（默认）","page":"页码，从1开始，默认1","count":"每页返回条数，默认50"}},"update_watchlist_group":{"title":"更新自选分组","description":"更新自选分组：重命名（name）或修改成员证券（securities + mode: add/remove/replace）","properties":{"id":"自选分组 id","name":"新的分组名称（可选）","securities":"证券代码列表（可选）","mode":"证券更新模式：`add`（新增）、`remove`（移除）或 `replace`（替换，默认）"}},"watchlist":{"title":"自选列表","description":"获取所有自选分组及其包含的证券，返回 groups[]{id, name, securities[]{symbol, name, watched_price, watched_at}}"},"account_balance":{"title":"账户余额","description":"查询账户现金余额与资产概览，返回 balances[]{currency, total_cash, max_finance_amount, remaining_finance_amount, risk_level, margin_call}","properties":{"currency":"按币种代码筛选（如 `\"USD\"`、`\"HKD\"`），省略则返回所有币种"}},"cash_flow":{"title":"资金流水","description":"查询资金流水记录（出入金、派息等），返回 items[]{transaction_type, amount, currency, balance, created_at, remark}","properties":{"start_at":"起始时间（RFC3339 格式）","end_at":"结束时间（RFC3339 格式）"}},"fund_positions":{"title":"基金持仓","description":"查询当前基金持仓，返回 list[].fund_info[]{symbol, symbol_name, currency, holding_units, current_net_asset_value, cost_net_asset_value, net_asset_value_day}"},"margin_ratio":{"title":"保证金比率","description":"查询标的保证金比率，返回 {im_factor（初始保证金）, mm_factor（维持保证金）, fm_factor（强平保证金）}","properties":{"symbol":"证券代码，例如 `\"700.HK\"`。请用规范代码，补零的代码（如 \"00700.HK\"）会返回空记录而非报错"}},"profit_analysis":{"title":"盈亏分析","description":"获取组合盈亏分析汇总。start/end（yyyy-mm-dd）须成对传入，只传其中之一会返回空结果","properties":{"start":"起始日期（`yyyy-mm-dd`）。必须与 `end` 成对传入，只传其一会返回空结果","end":"结束日期（`yyyy-mm-dd`）。必须与 `start` 成对传入，只传其一会返回空结果"}},"profit_analysis_detail":{"title":"盈亏分析明细","description":"获取指定标的详细盈亏分析。start/end（yyyy-mm-dd）须成对传入，只传其中之一会返回空结果","properties":{"symbol":"证券代码，例如 `\"700.HK\"`。请用规范代码，补零的代码（如 \"00700.HK\"）会返回空记录而非报错","start":"起始日期（`yyyy-mm-dd`）。必须与 `end` 成对传入，只传其一会返回空结果","end":"结束日期（`yyyy-mm-dd`）。必须与 `start` 成对传入，只传其一会返回空结果"}},"profit_analysis_realized":{"title":"已实现盈亏分析（美股）","description":"获取美股账户的已实现盈亏，按类别（股票/期权/加密货币）和周期拆分。仅限美股账户；亚太账户调用会返回 DcRegionRestricted 错误","properties":{"currency":"报告货币，例如 `\"USD\"`（默认 `\"USD\"`）。仅限美股账户","category":"按类别筛选：`\"STOCK\"`、`\"OPTION\"`、`\"CRYPTO\"`，留空表示全部"}},"statement_export":{"title":"对账单导出","description":"获取对账单文件的预签名下载 URL（file_key 来自 statement_list），返回 {url}，访问该 URL 即可获取对账单 JSON","properties":{"file_key":"来自 `statement_list` 的文件 key，例如 `\"/statement_data/data/.../20975338.json\"`"}},"statement_list":{"title":"对账单列表","description":"列出可获取的账户对账单（日报/月报），返回 list[]{id, type, date, status}，用 id 调用 statement_export 下载","properties":{"statement_type":"对账单类型：`\"daily\"`（默认，日报）或 `\"monthly\"`（月报）","start_date":"起始日期（`yyyy-mm-dd`）。`daily` 默认 30 天前，`monthly` 默认 12 个月前","limit":"返回条数。`daily` 默认 30，`monthly` 默认 12"}},"stock_positions":{"title":"股票持仓","description":"查询所有渠道下的当前股票持仓，返回 list[].stock_info[]{symbol, symbol_name, quantity, available_quantity, currency, cost_price, market}。仅限美股账户：额外附带 us_asset_overview 字段 {cash_list, stock_list, option_list, crypto_list, cash_buy_power, overnight_buy_power}"},"dca_history":{"title":"定投执行历史","description":"按 plan_id 查询定投计划的扣款执行历史，返回 executions[]{date, quantity, amount, price, status, order_id}","properties":{"plan_id":"定投计划 ID","page":"页码（默认 1）","limit":"每页条数（默认 20）"}},"dca_list":{"title":"定投计划列表","description":"列出定投计划，返回 plans[]{plan_id, symbol, amount, currency, frequency, status, next_execution_date}","properties":{"status":"按状态筛选：`Active`、`Suspended`、`Finished`，省略则返回全部","symbol":"按证券筛选，例如 `\"AAPL.US\"`，省略则返回全部计划","page":"页码（默认 1）","limit":"每页条数（默认 20）"}},"dca_stats":{"title":"定投统计","description":"获取定投投资统计汇总，返回 {total_invested, total_value, total_return, return_rate, plan_count, items[]{symbol, invested, value, return_rate}}","properties":{"symbol":"按证券筛选，例如 `\"AAPL.US\"`，省略则返回所有计划的合计统计"}},"estimate_max_purchase_quantity":{"title":"最大可买估算","description":"估算指定证券的最大可买/可卖数量，返回 {cash_max_qty, margin_max_qty}","properties":{"symbol":"证券代码","side":"买卖方向：`Buy`（买入）或 `Sell`（卖出）","order_type":"委托类型：`LO`（限价单）/ `ELO`（增强限价单）/ `MO`（市价单）/ `AO`（竞价单）/ `ALO`（竞价限价单）","price":"委托价格（限价类委托需要）"}},"history_executions":{"title":"历史成交","description":"查询指定日期区间内的全部成交记录，按成交时间（trade_done_at）筛选并自动翻页返回完整结果（不受每页 1000 条截断），trade_id 为稳定去重键。返回 executions[]{order_id, trade_id, symbol, side, quantity, price, trade_done_at}","properties":{"symbol":"按证券筛选（可选）","start_at":"起始时间（RFC3339 格式）","end_at":"结束时间（RFC3339 格式）"}},"history_orders":{"title":"历史委托","description":"查询指定日期区间内的历史委托（不含当日），返回 orders[]{order_id, symbol, side, status, quantity, price, submitted_at}。仅限美股账户：us_page、us_limit 通过独立的美股委托接口分页（默认每页 20 条，传 us_page 可翻页）","properties":{"symbol":"按证券筛选（可选）","start_at":"起始时间（RFC3339 格式）","end_at":"结束时间（RFC3339 格式）","us_page":"仅限美股账户：页码（默认 1）。亚太账户忽略（区域由账户自动识别，无需传入）","us_limit":"仅限美股账户：每页数量（默认 20）。亚太账户忽略（区域由账户自动识别，无需传入）"}},"order_detail":{"title":"委托详情","description":"查询单个委托详情，返回 {order_id, symbol, status, side, order_type, quantity, price, executed_quantity, executed_price, submitted_at, time_in_force, msg, attached_orders[]}，其中 attached_orders[] 为该委托的止盈/止损附加单及其各自单号。要按附加单自身的单号查询，设置 is_attached=true，此时返回该附加单本身，charge_detail 为 null。美股账户由独立的美股委托详情接口提供，其委托及附加单直接嵌套在 `order` 中返回。区域由账户自动识别","properties":{"order_id":"委托单号：母单单号，或（配合 is_attached=true）止盈/止损附加单单号","is_attached":"设为 true 表示 order_id 是止盈/止损附加单单号，返回该附加单本身（charge_detail 为 null）；查询母单时省略或传 false。美股账户下无效"}},"today_executions":{"title":"当日成交","description":"查询当日成交（filled），返回 executions[]{order_id, trade_id, symbol, side, quantity, price, trade_done_at}。可按 symbol 或 order_id 筛选","properties":{"symbol":"按证券筛选，例如 `\"700.HK\"`","order_id":"按指定委托单号筛选"}},"today_orders":{"title":"当日委托","description":"查询当日委托，返回 orders[]{order_id, symbol, side, order_type, status, quantity, price, submitted_at, executed_quantity, executed_price, attached_orders[]}，其中 attached_orders[] 为该委托的止盈/止损附加单。可用 symbol 按证券筛选，或用 order_id 查询单笔委托；要按附加单自身的单号查询，把该单号作为 order_id 并同时设置 is_attached=true，返回结果即为该附加单本身。is_attached 单独使用无效；美股账户由独立的美股委托接口提供，两者在美股账户下均无效。仅限美股账户：us_action（Buy/Sell）、us_page、us_limit 通过独立的美股委托接口筛选/分页","properties":{"symbol":"按证券筛选，例如 `\"700.HK\"`，省略则返回当日全部委托","order_id":"按委托单号筛选：母单单号，或（配合 is_attached=true）止盈/止损附加单单号。美股账户下无效","is_attached":"仅在同时传入 order_id 时有效：表示该 order_id 是止盈/止损附加单单号，返回结果即为该附加单本身。单独使用无效，美股账户下同样无效","us_action":"仅限美股账户：按方向筛选，`\"Buy\"` 或 `\"Sell\"`，留空表示全部。亚太账户忽略（区域由账户自动识别，无需传入）","us_page":"仅限美股账户：页码（默认 1）。亚太账户忽略（区域由账户自动识别，无需传入）","us_limit":"仅限美股账户：每页数量（默认 20）。亚太账户忽略（区域由账户自动识别，无需传入）"}},"cancel_order":{"title":"撤销委托","description":"按 order_id 撤销未成交的委托，成功返回 \"order cancelled\"；已成交或已撤销则报错。【必须两步确认】未传本次试运行返回的 confirmation_code 时，本工具为 DRY RUN（试运行）：只校验并回显委托内容，不会发往交易所。请先不带 execute 调用一次，把返回的预览完整展示给用户，只有在用户明确确认这笔委托之后，才可再次调用并把该确认码传入 execute。确认码由订单本身（代码、方向、数量、价格）推导而来，只对这一笔完全相同的请求生效。绝不可自行决定回填确认码，也不可在用户首次提出请求的同一轮就回填。试运行还会回显本次要撤销的委托，便于用户核对是否为目标订单。设为 is_attached=true 可按附加单自身的 order_id 单独撤销某个止盈/止损附加单；撤销母单则会连同其附加单一并撤销","properties":{"order_id":"委托单号","is_attached":"设为 true 表示按止盈/止损附加单自身的 order_id 撤销该附加单，母单保持不变；省略或传 false 表示撤销母单（其附加单会一并撤销）","execute":"本次试运行返回的 confirmation_code。省略（默认）表示 DRY RUN：只校验并回显请求，同时返回一个三位确认码，不会发往交易所。必须先不带该参数调用一次，把预览展示给用户，待用户明确确认后才可再次调用并回填该码。确认码由订单本身（代码、方向、数量、价格）推导而来，只对这一笔完全相同的请求生效——改动任何字段即失效。不可自行决定回填。"}},"dca_create":{"title":"创建定投计划","description":"创建定投（DCA）计划。frequency: Daily/Weekly/Monthly；周频对应 day_of_week（Mon–Fri），月频对应 day_of_month（1-28）","properties":{"symbol":"证券代码，例如 `\"AAPL.US\"`","amount":"每期投入金额，例如 `\"100\"`","frequency":"定投频率：`Daily`（每日）、`Weekly`（每周）、`Monthly`（每月）","day_of_week":"周频时指定的周几：`Mon`、`Tue`、`Wed`、`Thu`、`Fri`","day_of_month":"月频时指定的日期（1-28）","allow_margin":"是否允许使用融资（默认 `false`）"}},"dca_pause":{"title":"暂停定投计划","description":"按 plan_id 暂停定投计划，计划停止执行直至恢复。如需临时暂停请使用此接口（永久终止用 dca_stop）","properties":{"plan_id":"定投计划 ID"}},"dca_resume":{"title":"恢复定投计划","description":"按 plan_id 恢复已暂停的定投计划，按原有周期继续自动执行","properties":{"plan_id":"定投计划 ID"}},"dca_stop":{"title":"终止定投计划","description":"按 plan_id 永久终止定投计划，操作不可撤销。如需临时暂停请使用 dca_pause","properties":{"plan_id":"定投计划 ID"}},"dca_update":{"title":"更新定投计划","description":"按 plan_id 更新定投计划，可修改 amount、frequency（Daily/Weekly/Monthly）、day_of_week（Mon-Fri）或 day_of_month（1-28）","properties":{"plan_id":"待更新的定投计划 ID","amount":"新的每期投入金额","frequency":"新的定投频率：`Daily`、`Weekly`、`Monthly`","day_of_week":"周频时指定的周几：`Mon`、`Tue`、`Wed`、`Thu`、`Fri`","day_of_month":"月频时指定的日期（1-28）","allow_margin":"是否允许使用融资"}},"replace_order":{"title":"修改委托","description":"修改未成交委托的数量、价格、触发价或追踪止损参数，成功返回 \"order replaced\"。【必须两步确认】未传本次试运行返回的 confirmation_code 时，本工具为 DRY RUN（试运行）：只校验并回显委托内容，不会发往交易所。请先不带 execute 调用一次，把返回的预览完整展示给用户，只有在用户明确确认这笔委托之后，才可再次调用并把该确认码传入 execute。确认码由订单本身（代码、方向、数量、价格）推导而来，只对这一笔完全相同的请求生效。绝不可自行决定回填确认码，也不可在用户首次提出请求的同一轮就回填。试运行会同时回显当前委托与本次拟修改的内容。止盈/止损附加单也在此修改：attached_order_type 配合新的 attached_profit_taker_price / attached_stop_loss_price 可新增或改价，attached_profit_taker_id / attached_stop_loss_id 用于指定要修改的现有附加单，attached_cancel_all=true 则撤销全部附加单而保留母单","properties":{"order_id":"委托单号","quantity":"新的委托数量","price":"新的委托价格","trigger_price":"新的触发价","limit_offset":"新的限价偏移量","trailing_amount":"新的跟踪止损金额","trailing_percent":"新的跟踪止损百分比","attached_cancel_all":"设为 true 撤销该委托的全部止盈/止损附加单，母单本身保持不变","attached_order_type":"要新增或修改的附加单类型：`PROFIT_TAKER` / `STOP_LOSS` / `BRACKET`。除仅做 attached_cancel_all 外必填","attached_profit_taker_id":"要修改的现有止盈单单号（取自 order_detail 的 attached_orders[]）；新增附加单时省略","attached_stop_loss_id":"要修改的现有止损单单号（取自 order_detail 的 attached_orders[]）；新增附加单时省略","attached_profit_taker_price":"新的止盈触发价","attached_stop_loss_price":"新的止损触发价","attached_profit_taker_submit_price":"新的止盈单委托限价","attached_stop_loss_submit_price":"新的止损单委托限价","attached_time_in_force":"新的附加单有效期：`Day` / `GTC` / `GTD`","attached_expire_time":"新的附加单到期时间，Unix 时间戳（秒）；`attached_time_in_force=GTD` 时必填","attached_activate_order_type":"新的触发后委托类型，例如 `LO` 或 `MO`","attached_outside_rth":"新的触发后盘前盘后设置：`RTH_ONLY` / `ANY_TIME` / `OVERNIGHT`","attached_main_id":"附加单所属母单的单号；仅在不经母单、单独修改某个附加单时需要","attached_quantity":"新的附加单数量","attached_market_price":"附加单的参考市价","execute":"本次试运行返回的 confirmation_code。省略（默认）表示 DRY RUN：只校验并回显请求，同时返回一个三位确认码，不会发往交易所。必须先不带该参数调用一次，把预览展示给用户，待用户明确确认后才可再次调用并回填该码。确认码由订单本身（代码、方向、数量、价格）推导而来，只对这一笔完全相同的请求生效——改动任何字段即失效。不可自行决定回填。"}},"submit_order":{"title":"提交委托","description":"提交买卖委托。order_type：LO（限价）/ ELO（港股增强限价）/ MO（市价）/ AO（港股竞价）/ ALO（港股竞价限价）/ ODD（港股碎股）/ LIT（触价限价）/ MIT（触价市价）/ TSLPAMT（按金额追踪止损）/ TSLPPCT（按百分比追踪止损）/ SLO（港股特别限价）；side：Buy/Sell；time_in_force：Day/GTC/GTD。【必须两步确认】未传本次试运行返回的 confirmation_code 时，本工具为 DRY RUN（试运行）：只校验并回显委托内容，不会发往交易所。请先不带 execute 调用一次，把返回的预览完整展示给用户，只有在用户明确确认这笔委托之后，才可再次调用并把该确认码传入 execute。确认码由订单本身（代码、方向、数量、价格）推导而来，只对这一笔完全相同的请求生效。绝不可自行决定回填确认码，也不可在用户首次提出请求的同一轮就回填。该委托会动用真实资金——试运行是用户发现代码、方向、数量或价格错误的唯一机会。如需附加止盈/止损单：设置 attached_order_type（PROFIT_TAKER / STOP_LOSS / BRACKET）并填写 attached_profit_taker_price 和/或 attached_stop_loss_price；附加单会在试运行预览中回显，并计入确认码","properties":{"symbol":"证券代码","order_type":"委托类型（港股全部支持；美股仅支持 `LO` / `MO` / `LIT` / `MIT` / `TSLPAMT` / `TSLPPCT`）：<br>- `LO`（限价单）：需 `submitted_price`<br>- `ELO`（增强限价单，港股）：需 `submitted_price`<br>- `MO`（市价单）：无需价格<br>- `AO`（竞价单，港股）：以竞价价成交，无需价格<br>- `ALO`（竞价限价单，港股）：需 `submitted_price`<br>- `ODD`（碎股单，港股）：需 `submitted_price`，用于非标准手数<br>- `LIT`（触价限价）：需 `submitted_price` 与 `trigger_price`，行情触及触发价时激活<br>- `MIT`（触价市价）：仅需 `trigger_price`，触及后按市价成交<br>- `TSLPAMT`（按金额跟踪止损限价）：需 `trailing_amount` 与 `limit_offset`<br>- `TSLPPCT`（按百分比跟踪止损限价）：需 `trailing_percent`（0-1）与 `limit_offset`<br>- `SLO`（特别限价单，港股）：需 `submitted_price`，提交后不可改单","side":"买卖方向：`Buy`（买入）或 `Sell`（卖出）","submitted_quantity":"委托数量","time_in_force":"委托有效期：`Day`（当日有效）、`GTC`（撤单前有效）、`GTD`（指定日期前有效，需 `expire_date`）","submitted_price":"委托限价。`LO` / `ELO` / `ALO` / `ODD` / `LIT` / `SLO` 必填","trigger_price":"触发价。`LIT` / `MIT` / `TSLPAMT` / `TSLPPCT` 必填","limit_offset":"相对跟踪止损价的限价偏移量。`TSLPAMT` / `TSLPPCT` 必填","trailing_amount":"跟踪金额（绝对价格距离），`TSLPAMT` 必填","trailing_percent":"跟踪百分比（小数形式，例如 `0.05` 表示 5%），`TSLPPCT` 必填","expire_date":"到期日期（`yyyy-mm-dd`），`time_in_force=GTD` 时必填","outside_rth":"盘前盘后设置：`RTH_ONLY`（仅常规交易时段）、`ANY_TIME`（含盘前盘后任意时段）、`OVERNIGHT`（夜盘，仅美股）","remark":"委托备注（最多 255 字符）","attached_order_type":"附加止盈/止损单类型：`PROFIT_TAKER`（仅止盈）、`STOP_LOSS`（仅止损）、`BRACKET`（止盈止损同时挂）。普通委托请省略；不传该参数时其余 attached_* 参数均被忽略","attached_profit_taker_price":"止盈触发价。`PROFIT_TAKER` 与 `BRACKET` 必填","attached_stop_loss_price":"止损触发价。`STOP_LOSS` 与 `BRACKET` 必填","attached_profit_taker_submit_price":"止盈单触发后的委托限价，配合 `attached_activate_order_type=LO` 使用","attached_stop_loss_submit_price":"止损单触发后的委托限价，配合 `attached_activate_order_type=LO` 使用","attached_time_in_force":"附加单有效期：`Day` / `GTC` / `GTD`；省略则沿用母单设置","attached_expire_time":"附加单到期时间，Unix 时间戳（秒），例如 `\"1767139200\"`；`attached_time_in_force=GTD` 时必填","attached_activate_order_type":"附加单触发后提交的委托类型，例如 `LO`（需同时给出对应的 `attached_*_submit_price`）或 `MO`","attached_outside_rth":"附加单触发后的盘前盘后设置：`RTH_ONLY` / `ANY_TIME` / `OVERNIGHT`","execute":"本次试运行返回的 confirmation_code。省略（默认）表示 DRY RUN：只校验并回显请求，同时返回一个三位确认码，不会发往交易所。必须先不带该参数调用一次，把预览展示给用户，待用户明确确认后才可再次调用并回填该码。确认码由订单本身（代码、方向、数量、价格）推导而来，只对这一笔完全相同的请求生效——改动任何字段即失效。不可自行决定回填。"}},"submit_multileg_order":{"title":"提交组合期权委托","description":"提交多腿期权组合委托，各腿作为一个策略单一起成交或挂单。strategy：CoveredCall（备兑看涨）/ CoveredPut（备兑看跌）/ VerticalCallSpread（垂直看涨价差）/ VerticalPutSpread（垂直看跌价差）/ Collar（领口）/ Straddle（跨式）/ Strangle（宽跨式）；side：Buy/Sell（整个策略的方向）；order_type：LO（需 submitted_price，为组合净价）或 MO；legs[]：{symbol, ratio_quantity}，按策略顺序排列，仅接受期权代码；ratio_quantity 恒为正数——每条腿的买卖方向由 strategy 与 side 共同决定","properties":{"strategy":"组合策略，决定所需腿数与每条腿的方向：`CoveredCall`（备兑看涨）/ `CoveredPut`（备兑看跌）/ `VerticalCallSpread`（垂直看涨价差）/ `VerticalPutSpread`（垂直看跌价差）/ `Collar`（领口）/ `Straddle`（跨式）/ `Strangle`（宽跨式）","side":"买卖方向：`Buy`（买入）或 `Sell`（卖出），指整个策略的方向","order_type":"委托类型：`LO`（限价，需 `submitted_price`）或 `MO`（市价）","submitted_quantity":"委托组数（每组为一套按 `legs` 比例构成的腿）","legs":"组合的各条腿，按策略顺序排列，仅接受期权代码","submitted_price":"整个组合的净限价，`LO` 必填","remark":"委托备注（最多 255 字符）"}},"ah_premium":{"title":"A/H 溢价","description":"获取 A/H 股溢价历史 K 线数据，返回 items[]{timestamp, open, high, low, close}，表示溢价百分比","properties":{"symbol":"证券代码，例如 `\"700.HK\"`。请用规范代码，补零的代码（如 \"00700.HK\"）会返回空记录而非报错","period":"K 线周期：`1m`、`5m`、`15m`、`30m`、`60m`、`day`（默认）、`week`、`month`、`year`","count":"返回的 K 线数量（默认 100）"}},"ah_premium_intraday":{"title":"A/H 溢价（分时）","description":"获取 A/H 股溢价当日分时数据，返回 items[]{timestamp, premium_rate}，逐分钟展示溢价百分比","properties":{"symbol":"证券代码，例如 `\"700.HK\"`。请用规范代码，补零的代码（如 \"00700.HK\"）会返回空记录而非报错"}},"alert_add":{"title":"新增价格预警","description":"新增价格预警，返回已创建的预警对象。condition：price_rise/price_fall（绝对价格）或 percent_rise/percent_fall（涨跌幅）；frequency：once/daily/every","properties":{"symbol":"证券代码，例如 `\"700.HK\"`。请用规范代码，补零的代码（如 \"00700.HK\"）会返回空记录而非报错","condition":"预警条件：`price_rise`、`price_fall`、`percent_rise`、`percent_fall`","price":"阈值价格或百分比数值","frequency":"预警频率：`once`（触发一次后停用）、`daily`（每日一次）、`every`（每次满足条件都触发）"}},"alert_delete":{"title":"删除价格预警","description":"按 alert_id（来自 alert_list 的数字字符串）删除价格预警","properties":{"alert_id":"预警指标 id"}},"alert_disable":{"title":"停用价格预警","description":"按 alert_id 停用价格预警，返回 {alert_id, enabled: false}","properties":{"alert_id":"预警指标 id"}},"alert_enable":{"title":"启用价格预警","description":"按 alert_id 启用价格预警，返回 {alert_id, enabled: true}","properties":{"alert_id":"预警指标 id"}},"alert_list":{"title":"价格预警列表","description":"获取所有已配置的价格预警，返回 lists[]{symbol, indicators[]{id, condition, price, frequency, enabled, triggered_at}}"},"anomaly":{"title":"市场异动","description":"获取市场异动提醒（价量异常变动）。market: HK/US/CN/SG。symbol: 可选，筛选特定股票。count: 返回数量（默认 50，最多 100）。返回 changes[]{symbol, name, change_rate, volume, ...}, all_off。","properties":{"market":"市场代码：HK、US、CN、SG","symbol":"可选证券代码，如 AAPL.US 或 700.HK，筛选特定股票的异动","count":"返回数量，默认 50，最多 100"}},"broker_holding":{"title":"券商持仓","description":"获取指定证券的主要券商持仓数据，返回 items[]{broker_name, holding_quantity, holding_change, holding_ratio}","properties":{"symbol":"证券代码，例如 `\"700.HK\"`。请用规范代码，补零的代码（如 \"00700.HK\"）会返回空记录而非报错","period":"时间窗口：`rct_1`（近 1 日，默认）、`rct_5`（近 5 日）、`rct_20`（近 20 日）、`rct_60`（近 60 日）"}},"broker_holding_daily":{"title":"券商持仓（日度）","description":"获取指定券商（broker_id）对某证券的逐日持仓历史，返回 items[]{date, holding_quantity, holding_change, holding_ratio}","properties":{"symbol":"证券代码，例如 `\"700.HK\"`。请用规范代码，补零的代码（如 \"00700.HK\"）会返回空记录而非报错","broker_id":"券商参与者编号"}},"broker_holding_detail":{"title":"券商持仓明细","description":"获取完整的券商持仓明细列表，返回 items[]{broker_id, broker_name, holding_quantity, holding_ratio, holding_change, date}","properties":{"symbol":"证券代码，例如 `\"700.HK\"`。请用规范代码，补零的代码（如 \"00700.HK\"）会返回空记录而非报错"}},"brokers":{"title":"经纪商队列","description":"获取港股经纪商买卖盘队列（仅港股），返回 bid_brokers/ask_brokers[]{position, broker_ids}，通过 participants 工具将 broker_id 映射为名称","properties":{"symbol":"证券代码，例如 `\"700.HK\"`。请用规范代码，补零的代码（如 \"00700.HK\"）会返回空记录而非报错"}},"calc_indexes":{"title":"指标计算","description":"批量计算证券的行情/财务指标（PE、PB、股息率、最新价、换手率等），传入 symbols 和 indexes 列表，返回各标的的指标值。当请求希腊字母指标（Delta、Gamma、Theta、Vega、Rho）时，返回值已归一化：theta 为每日值（一天的时间损耗），vega 为隐含波动率每变动 1% 的价格变化，rho 为无风险利率每变动 1% 的价格变化。","properties":{"symbols":"证券代码，例如 `[\"700.HK\", \"AAPL.US\"]`","indexes":"待计算指标：`LastDone`、`ChangeValue`、`ChangeRate`、`Volume`、`Turnover`、`YtdChangeRate`、`TurnoverRate`、`TotalMarketValue`、`CapitalFlow`、`Amplitude`、`VolumeRatio`、`PeTtmRatio`、`PbRatio`、`DividendRatioTtm`、`FiveDayChangeRate`、`TenDayChangeRate`、`HalfYearChangeRate`、`FiveMinutesChangeRate`、`ExpiryDate`、`StrikePrice`、`UpperStrikePrice`、`LowerStrikePrice`、`OutstandingQty`、`OutstandingRatio`、`Premium`、`ItmOtm`、`ImpliedVolatility`、`WarrantDelta`、`CallPrice`、`ToCallPrice`、`EffectiveLeverage`、`LeverageRatio`、`ConversionRatio`、`BalancePoint`、`OpenInterest`、`Delta`、`Gamma`、`Theta`、`Vega`、`Rho`"}},"candlesticks":{"title":"K 线数据","description":"获取 K 线数据（OHLCV）。period：1m/5m/15m/30m/60m/day/week/month/year；trade_sessions：intraday（默认，仅正常时段）或 all（含盘前盘后）。若账号权限上限低于请求的 count，会返回权限允许范围内尽量多的数据而不报错——如果需要精确数量，请检查返回数组的长度。","properties":{"symbol":"证券代码","period":"K 线周期：`1m`、`5m`、`15m`、`30m`、`60m`、`day`、`week`、`month`、`year`","count":"K 线数量（最多 1000）","forward_adjust":"是否对拆股 / 派息进行前复权","trade_sessions":"交易时段：`intraday`（仅常规时段）或 `all`（含盘前盘后）"}},"capital_distribution":{"title":"资金分布","description":"获取资金分布（大/中/小单流入流出），返回 {timestamp, capital_in{large, medium, small}, capital_out{large, medium, small}, data_available}。data_available 为 false 时表示该标的（如指数）没有资金流数据，此时其余字段仍会返回但都是无意义的零值","properties":{"symbol":"证券代码，例如 `\"700.HK\"`。请用规范代码，补零的代码（如 \"00700.HK\"）会返回空记录而非报错"}},"capital_flow":{"title":"资金流向","description":"获取资金净流入/流出当日时间序列，返回 items[]{timestamp, inflow, outflow, net_flow}","properties":{"symbol":"证券代码，例如 `\"700.HK\"`。请用规范代码，补零的代码（如 \"00700.HK\"）会返回空记录而非报错"}},"company":{"title":"公司概况","description":"获取公司概况，返回 name、description、employees、CEO、founded_year、website、exchange、industry、market_cap 等信息。美股账户查询 `.US` 标的会得到美股专属变体（intro、market_cap、top_rank_tags、sharelist、detail_url）。区域由账户自动识别","properties":{"symbol":"证券代码，例如 `\"700.HK\"`。请用规范代码，补零的代码（如 \"00700.HK\"）会返回空记录而非报错"}},"consensus":{"title":"一致预期","description":"获取分析师一致预期，返回 items[]{period, revenue_estimate, eps_estimate, net_income_estimate, analyst_count, last_updated}。美股账户查询 `.US` 标的会得到美股专属变体（ai_summary + 按期间的 details[] 列表，替代 items[]）。区域由账户自动识别","properties":{"symbol":"证券代码，例如 `\"700.HK\"`。请用规范代码，补零的代码（如 \"00700.HK\"）会返回空记录而非报错"}},"constituent":{"title":"指数成份股 / ETF 资产分布","description":"获取指数成份股或 ETF 资产分布。指数（如 HSI.HK、.DJI.US）返回 constituents[]{symbol, name, last_done（最新价）, change_rate, market_cap, weight}。ETF（如 QQQ.US、2800.HK）返回资产分布 info[]，按 asset_type 分组：1=Holdings（前十大持仓，含 code、symbol、holding_detail）/ 2=Regional（地区分布）/ 3=AssetClass（资产类别，如股票/债券/现金）/ 4=Industry（行业分布）。每组含 report_date 与 lists[]{name, position_ratio, name_locales}；Holdings 组额外含 code、symbol 及 holding_detail{industry_name, index_name, holding_type_name}","properties":{"symbol":"指数或 ETF 代码，例如 `\"HSI.HK\"`、`\"QQQ.US\"`"}},"corp_action":{"title":"公司行动","description":"获取公司行动信息（拆股、回购、更名等），返回 items[]{action_type, effective_date, ratio, description}","properties":{"symbol":"证券代码，例如 `\"700.HK\"`。请用规范代码，补零的代码（如 \"00700.HK\"）会返回空记录而非报错"}},"dca_check":{"title":"检查定投支持","description":"检查证券是否支持定投（DCA），返回 items[]{symbol, support_dca, reason}","properties":{"symbols":"待检查的证券代码，例如 `[\"AAPL.US\", \"TSLA.US\"]`"}},"depth":{"title":"盘口深度","description":"获取买卖盘深度（最多 10 档），返回 {bids[]{position, price, volume, order_num}, asks[]{position, price, volume, order_num}}","properties":{"symbol":"证券代码，例如 `\"700.HK\"`。请用规范代码，补零的代码（如 \"00700.HK\"）会返回空记录而非报错"}},"dividend":{"title":"派息历史","description":"获取证券的派息历史，返回 items[]{ex_date（除权日）, pay_date（派发日）, record_date, dividend_type, amount, currency, status}。美股账户查询 `.US` 标的会按 ETF/个股得到美股专属变体（dividend_yield/dividend_yield_ttm 是百分比数值，例如 0.34 代表 0.34%，不是 0-1 的小数）。区域由账户自动识别","properties":{"symbol":"证券代码，例如 `\"700.HK\"`。请用规范代码，补零的代码（如 \"00700.HK\"）会返回空记录而非报错"}},"dividend_detail":{"title":"派息明细","description":"获取详细派息分红方案，返回 details[]{period, cash_dividend, stock_dividend, record_date, ex_date, pay_date, currency}","properties":{"symbol":"证券代码，例如 `\"700.HK\"`。请用规范代码，补零的代码（如 \"00700.HK\"）会返回空记录而非报错"}},"etf_docs":{"title":"ETF文件（美股）","description":"获取美股ETF的监管/招募说明书文件（etf-files）。仅限美股账户；亚太账户调用会返回 DcRegionRestricted 错误","properties":{"symbol":"ETF代码，例如 `\"SPY.US\"`","limit":"最多返回的文件数量，留空返回全部"}},"exchange_rate":{"title":"汇率","description":"获取全部支持币种的汇率，返回 list[]{from_currency, to_currency, rate, timestamp}，覆盖 USD/HKD/CNY/SGD 等"},"executive":{"title":"高管与董事","description":"获取公司高管及董事会成员信息，返回 members[]{name, title, appointed_date, age, biography, compensation}","properties":{"symbol":"证券代码，例如 `\"700.HK\"`。请用规范代码，补零的代码（如 \"00700.HK\"）会返回空记录而非报错"}},"filings":{"title":"监管公告","description":"获取监管文件公告（8-K、10-Q、10-K 等），返回 items[]{id, title, type, language, filing_date, url}","properties":{"symbol":"证券代码，例如 `\"700.HK\"`。请用规范代码，补零的代码（如 \"00700.HK\"）会返回空记录而非报错"}},"finance_calendar":{"title":"财经日历","description":"获取财经日历事件。category：report（财报）/ dividend（除息与派息）/ split（拆股与反向拆股）/ ipo / macrodata（CPI、非农、议息等）/ closed（休市日）。start、end（`yyyy-mm-dd`）均可选，默认为今天起 7 天；范围建议不超过 2 周，否则结果会被截断。","properties":{"market":"市场代码：HK、US、CN、SG，省略则查询所有市场","start":"起始日期（`yyyy-mm-dd`），可选，默认为今天","end":"结束日期（`yyyy-mm-dd`），可选，默认为起始日期之后 7 天","category":"事件类别：`report`（财报披露）/ `dividend`（除息日与派发日）/ `split`（拆股与反向拆股）/ `ipo`（IPO 上市日期）/ `macrodata`（宏观数据发布，如 GDP、CPI、非农）/ `closed`（市场休市日）"}},"financial_report":{"title":"财务报表","description":"获取财务报告（利润表/资产负债表/现金流量表）。kind：IS/BS/CF/ALL；report_type：af（年报）/saf（半年报）/q1/q2/q3/qf（季报全量）。美股账户在不传 kind 的情况下查询 `.US` 标的会路由到专属美股概览接口；显式传入 kind 时始终走通用接口","properties":{"symbol":"证券代码，例如 `\"AAPL.US\"`","kind":"报表种类：`IS`（利润表）、`BS`（资产负债表）、`CF`（现金流量表）、`ALL`（默认全部）","report_type":"报告期：`af`（年度）、`saf`（半年度）、`q1` / `q2` / `q3`（季度）、`qf`（季度全量）"}},"financial_report_key_metrics":{"title":"关键财务指标（美股）","description":"获取美股标的的关键财务指标（fin-keyfactor）。report: af（年度，默认）、saf、qf、q1/q2/q3。仅限美股账户；亚太账户调用会返回 DcRegionRestricted 错误","properties":{"symbol":"证券代码，例如 `\"AAPL.US\"`","report":"报告期：`\"annual\"`（默认）或 `\"quarterly\"`"}},"forecast_eps":{"title":"EPS 预测","description":"获取 EPS 预测及分析师预期历史，返回 items[]{forecast_start_date, forecast_end_date, eps_estimate, eps_actual, surprise_pct, analyst_count}","properties":{"symbol":"证券代码，例如 `\"700.HK\"`。请用规范代码，补零的代码（如 \"00700.HK\"）会返回空记录而非报错"}},"fund_holder":{"title":"持仓基金","description":"获取持有指定证券的基金及 ETF，返回 fund_holders[]{fund_name, fund_symbol, shares, ratio, change, reported_at}","properties":{"symbol":"证券代码，例如 `\"700.HK\"`。请用规范代码，补零的代码（如 \"00700.HK\"）会返回空记录而非报错"}},"grid_symbol_info":{"title":"网格标的信息","description":"按 symbol 获取某标的网格下单的盘前设置信息(入参是标的代码,不是订单号):证券名称、最新价、买/卖每手股数、价格档位表(bid_size),以及渠道/授权信息(策略授权标志、是否支持盘前盘后、可用结算货币)。下单前可先查该标的的网格约束。","properties":{"symbol":"证券代码,例如 \"700.HK\""}},"grid_list":{"title":"网格订单列表","description":"列出网格交易订单。可按标的或逗号分隔的状态(如 \"Performing,Suspended\")筛选,支持分页与排序。返回 grid_order[] 摘要与 has_more。","properties":{"symbol":"证券代码,例如 \"700.HK\"","status":"逗号分隔的状态筛选,如 \"Performing,Suspended\"","page":"页码(默认 1)","limit":"每页数量(默认 20)","sort_by":"排序字段(如 \"created_at\")","sort_order":"排序方向(\"asc\"/\"desc\")"}},"grid_list_by_ids":{"title":"按 ID 查询网格订单","description":"按订单 ID 批量获取网格订单,返回 grid_orders[] 摘要。","properties":{"order_ids":"网格订单号数组,例如 [\"123\",\"456\"]"}},"grid_detail":{"title":"网格订单详情","description":"单个网格订单的完整详情:规则参数、状态、子订单(grid_sub_orders)与生命周期历史(grid_order_history)。支持 history_id 游标与 limit 分页。","properties":{"order_id":"网格订单号","history_id":"分页游标(翻页内嵌触发历史/子订单)","limit":"每页数量(默认 20)"}},"grid_trigger_history":{"title":"网格触发历史","description":"单个网格订单的触发历史:每笔被触发的子订单及其价格、数量、成交均价/数量与触发时间。支持 page/limit。","properties":{"order_id":"网格订单号","page":"页码(默认 1)","limit":"每页数量(默认 20)"}},"grid_submit":{"title":"提交网格订单","description":"提交网格交易订单。需提供 symbol、settlement_currency 及网格规则:基准价/上限价/下限价、trigger_price_type(1=价差,2=百分比)及对应的价差/百分比上下沿、trigger_quantity、上下限数量、time_in_force(0=当日,1=GTC,6=GTD)、grid_order_type_up/down(GMO/GLO/GTG)、边界事件(1=忽略,2=按最新价平仓)。价格/数量为字符串。【必须两步确认】未传本次试运行返回的 confirmation_code 时，本工具为 DRY RUN（试运行）：只校验并回显请求内容，不会发往交易所。请先不带 execute 调用一次，把返回的预览完整展示给用户，只有在用户明确确认之后，才可再次调用并把该确认码传入 execute。确认码由订单本身（代码、方向、数量、价格）推导而来，只对这一笔完全相同的请求生效。绝不可自行决定回填确认码。网格一旦生效会自行持续交易","properties":{"symbol":"证券代码,例如 \"700.HK\"","settlement_currency":"结算货币,例如 \"HKD\"","submitted_base_price":"基准价(网格锚定价,小数字符串)","upper_limit_price":"上限价(小数字符串)","lower_limit_price":"下限价(小数字符串)","trigger_price_type":"触发方式:1=价差,2=百分比","trigger_spread_up":"向上触发价差(绝对值,配 type=1,小数字符串)","trigger_spread_down":"向下触发价差(绝对值,配 type=1,小数字符串)","trigger_percent_up":"向上触发百分比(配 type=2,小数字符串)","trigger_percent_down":"向下触发百分比(配 type=2,小数字符串)","multiple_trigger":"同一网格是否允许多次触发","time_in_force":"有效期:0=当日,1=GTC,6=GTD","upper_limit_quantity":"触及上限时处理的数量(小数字符串)","lower_limit_quantity":"触及下限时处理的数量(小数字符串)","expire_time":"到期时间(unix 秒,配 GTD)","upper_limit_event":"触及上限时的动作:1=忽略(继续运行),2=按最新价平仓","lower_limit_event":"触及下限时的动作:1=忽略(继续运行),2=按最新价平仓","trigger_sell_depth":"卖方盘口深度(-5..5,0=用 grid_order_type_up)","trigger_buy_depth":"买方盘口深度(-5..5,0=用 grid_order_type_down)","trigger_quantity":"每次触发数量(小数字符串)","support_shortsell":"是否允许融券卖出","rth":"盘中交易时段标志:0/1/2","grid_order_type_up":"深度为 0 时的卖方订单类型:GMO/GLO/GTG","grid_order_type_down":"深度为 0 时的买方订单类型:GMO/GLO/GTG","execute":"本次试运行返回的 confirmation_code。省略（默认）表示 DRY RUN：只校验并回显请求，同时返回一个三位确认码，不会发往交易所。必须先不带该参数调用一次，把预览展示给用户，待用户明确确认后才可再次调用并回填该码。确认码由订单本身（代码、方向、数量、价格）推导而来，只对这一笔完全相同的请求生效——改动任何字段即失效。不可自行决定回填。"}},"grid_replace":{"title":"修改网格订单","description":"按 order_id 修改网格订单规则,规则字段同 grid_submit。【必须两步确认】未传本次试运行返回的 confirmation_code 时，本工具为 DRY RUN（试运行）：只校验并回显请求内容，不会发往交易所。请先不带 execute 调用一次，把返回的预览完整展示给用户，只有在用户明确确认之后，才可再次调用并把该确认码传入 execute。确认码由订单本身（代码、方向、数量、价格）推导而来，只对这一笔完全相同的请求生效。绝不可自行决定回填确认码。试运行会回显将要替换当前规则的新规则","properties":{"order_id":"网格订单号","submitted_base_price":"基准价(网格锚定价,小数字符串)","upper_limit_price":"上限价(小数字符串)","lower_limit_price":"下限价(小数字符串)","trigger_price_type":"触发方式:1=价差,2=百分比","trigger_spread_up":"向上触发价差(绝对值,配 type=1,小数字符串)","trigger_spread_down":"向下触发价差(绝对值,配 type=1,小数字符串)","trigger_percent_up":"向上触发百分比(配 type=2,小数字符串)","trigger_percent_down":"向下触发百分比(配 type=2,小数字符串)","multiple_trigger":"同一网格是否允许多次触发","time_in_force":"有效期:0=当日,1=GTC,6=GTD","upper_limit_quantity":"触及上限时处理的数量(小数字符串)","lower_limit_quantity":"触及下限时处理的数量(小数字符串)","expire_time":"到期时间(unix 秒,配 GTD)","upper_limit_event":"触及上限时的动作:1=忽略(继续运行),2=按最新价平仓","lower_limit_event":"触及下限时的动作:1=忽略(继续运行),2=按最新价平仓","trigger_sell_depth":"卖方盘口深度(-5..5,0=用 grid_order_type_up)","trigger_buy_depth":"买方盘口深度(-5..5,0=用 grid_order_type_down)","trigger_quantity":"每次触发数量(小数字符串)","support_shortsell":"是否允许融券卖出","rth":"盘中交易时段标志:0/1/2","grid_order_type_up":"深度为 0 时的卖方订单类型:GMO/GLO/GTG","grid_order_type_down":"深度为 0 时的买方订单类型:GMO/GLO/GTG","execute":"本次试运行返回的 confirmation_code。省略（默认）表示 DRY RUN：只校验并回显请求，同时返回一个三位确认码，不会发往交易所。必须先不带该参数调用一次，把预览展示给用户，待用户明确确认后才可再次调用并回填该码。确认码由订单本身（代码、方向、数量、价格）推导而来，只对这一笔完全相同的请求生效——改动任何字段即失效。不可自行决定回填。"}},"grid_cancel":{"title":"取消网格订单","description":"按 order_id 取消(终止)网格订单。【必须两步确认】未传本次试运行返回的 confirmation_code 时，本工具为 DRY RUN（试运行）：只校验并回显请求内容，不会发往交易所。请先不带 execute 调用一次，把返回的预览完整展示给用户，只有在用户明确确认之后，才可再次调用并把该确认码传入 execute。确认码由订单本身（代码、方向、数量、价格）推导而来，只对这一笔完全相同的请求生效。绝不可自行决定回填确认码","properties":{"order_id":"网格订单号","execute":"本次试运行返回的 confirmation_code。省略（默认）表示 DRY RUN：只校验并回显请求，同时返回一个三位确认码，不会发往交易所。必须先不带该参数调用一次，把预览展示给用户，待用户明确确认后才可再次调用并回填该码。确认码由订单本身（代码、方向、数量、价格）推导而来，只对这一笔完全相同的请求生效——改动任何字段即失效。不可自行决定回填。"}},"grid_suspend":{"title":"暂停网格订单","description":"按 order_id 暂停运行中的网格订单,可用 grid_restart 恢复。【必须两步确认】未传本次试运行返回的 confirmation_code 时，本工具为 DRY RUN（试运行）：只校验并回显请求内容，不会发往交易所。请先不带 execute 调用一次，把返回的预览完整展示给用户，只有在用户明确确认之后，才可再次调用并把该确认码传入 execute。确认码由订单本身（代码、方向、数量、价格）推导而来，只对这一笔完全相同的请求生效。绝不可自行决定回填确认码","properties":{"order_id":"网格订单号","execute":"本次试运行返回的 confirmation_code。省略（默认）表示 DRY RUN：只校验并回显请求，同时返回一个三位确认码，不会发往交易所。必须先不带该参数调用一次，把预览展示给用户，待用户明确确认后才可再次调用并回填该码。确认码由订单本身（代码、方向、数量、价格）推导而来，只对这一笔完全相同的请求生效——改动任何字段即失效。不可自行决定回填。"}},"grid_restart":{"title":"恢复网格订单","description":"按 order_id 恢复已暂停的网格订单。【必须两步确认】未传本次试运行返回的 confirmation_code 时，本工具为 DRY RUN（试运行）：只校验并回显请求内容，不会发往交易所。请先不带 execute 调用一次，把返回的预览完整展示给用户，只有在用户明确确认之后，才可再次调用并把该确认码传入 execute。确认码由订单本身（代码、方向、数量、价格）推导而来，只对这一笔完全相同的请求生效。绝不可自行决定回填确认码。重启后网格会重新自行持续下单","properties":{"order_id":"网格订单号","execute":"本次试运行返回的 confirmation_code。省略（默认）表示 DRY RUN：只校验并回显请求，同时返回一个三位确认码，不会发往交易所。必须先不带该参数调用一次，把预览展示给用户，待用户明确确认后才可再次调用并回填该码。确认码由订单本身（代码、方向、数量、价格）推导而来，只对这一笔完全相同的请求生效——改动任何字段即失效。不可自行决定回填。"}},"history_candlesticks_by_date":{"title":"历史 K 线（按日期）","description":"按日期区间获取历史 K 线（OHLCV）数据。仅 symbol 必填，period 默认 day、forward_adjust 默认 false、trade_sessions 默认 all。period：1m/5m/15m/30m/60m/day/week/month/year","properties":{"symbol":"证券代码","period":"K 线周期：`1m`、`5m`、`15m`、`30m`、`60m`、`day`、`week`、`month`、`year`（默认 `day`）","forward_adjust":"是否对拆股 / 派息进行前复权（默认 `false`，不复权）","start":"起始日期（`yyyy-mm-dd`），可选","end":"结束日期（`yyyy-mm-dd`），可选","trade_sessions":"交易时段：`intraday`（仅常规时段）或 `all`（含盘前盘后，默认）"}},"history_candlesticks_by_offset":{"title":"历史 K 线（按偏移）","description":"以参考时间为锚点按偏移量获取历史 K 线（OHLCV）数据。仅 symbol 必填，period 默认 day、count 默认 100、forward_adjust 与 forward 默认 false、trade_sessions 默认 all。若账号权限上限低于请求的 count，会返回权限允许范围内尽量多的数据而不报错——如果需要精确数量，请检查返回数组的长度。","properties":{"symbol":"证券代码","period":"K 线周期：`1m`、`5m`、`15m`、`30m`、`60m`、`day`、`week`、`month`、`year`（默认 `day`）","forward_adjust":"是否对拆股 / 派息进行前复权（默认 `false`，不复权）","forward":"查询方向：`true` 向后（向未来），`false` 向前（向过去，默认）","time":"参考时间（`yyyy-mm-ddTHH:MM:SS`），省略则以最新时间为起点","count":"K 线数量（最多 1000，默认 100）","trade_sessions":"交易时段：`intraday`（仅常规时段）或 `all`（含盘前盘后，默认）"}},"history_market_temperature":{"title":"历史市场温度","description":"获取市场情绪温度历史时间序列，返回 {type, list[]{temperature, description, valuation, sentiment, timestamp}}","properties":{"market":"市场代码：HK、US、CN、SG","start":"起始日期（`yyyy-mm-dd`）","end":"结束日期（`yyyy-mm-dd`）"}},"industry_valuation":{"title":"行业估值","description":"获取同行业可比公司估值对比，返回 list[]{symbol, name, pe, pb, ps, dividend_yield, history[]{date, pe, pb}}","properties":{"symbol":"证券代码，例如 `\"700.HK\"`。请用规范代码，补零的代码（如 \"00700.HK\"）会返回空记录而非报错"}},"industry_valuation_dist":{"title":"行业估值分布","description":"获取行业 PE/PB/PS 估值分布，返回 distributions{pe/pb/ps}{min, p25, median, p75, max, current_percentile}，显示个股在行业中的分位","properties":{"symbol":"证券代码，例如 `\"700.HK\"`。请用规范代码，补零的代码（如 \"00700.HK\"）会返回空记录而非报错"}},"institution_rating":{"title":"机构评级","description":"获取机构评级汇总，返回 analyst{buy, outperform, hold, underperform, sell 家数, target_price, consensus_rating} 及评级列表","properties":{"symbol":"证券代码，例如 `\"700.HK\"`。请用规范代码，补零的代码（如 \"00700.HK\"）会返回空记录而非报错"}},"institution_rating_detail":{"title":"机构评级明细","description":"获取机构评级与目标价历史明细，返回 target.list[]{analyst, firm, rating, target_price, timestamp}","properties":{"symbol":"证券代码，例如 `\"700.HK\"`。请用规范代码，补零的代码（如 \"00700.HK\"）会返回空记录而非报错"}},"intraday":{"title":"分时数据","description":"获取分时（逐分钟）价格/成交量数据。trade_sessions：intraday（默认，仅正常时段）或 all（含盘前盘后）","properties":{"symbol":"证券代码，例如 `\"700.HK\"`。请用规范代码，补零的代码（如 \"00700.HK\"）会返回空记录而非报错","trade_sessions":"包含的交易时段：`intraday`（默认，仅常规时段）或 `all`（含盘前盘后）"}},"invest_relation":{"title":"投资者关系","description":"获取投资者关系事件与公告，返回 items[]{title, event_type, event_date, url, description}","properties":{"symbol":"证券代码，例如 `\"700.HK\"`。请用规范代码，补零的代码（如 \"00700.HK\"）会返回空记录而非报错"}},"market_status":{"title":"市场状态","description":"获取所有市场当前交易状态，返回 market_time[]{market, trade_status（Trading/Closed/Mid-Day Break/Pre-Market/Post-Market/Overnight 等）, timestamp}"},"macrodata_indicators":{"title":"宏观指标列表","description":"列出宏观经济指标。keyword 按指标名称搜索（如 \"CPI\"、\"非农\"、\"GDP\"）。可按国家代码过滤：US/CN/HK/EU/JP/SG，省略则返回全部。返回 {count, list[]{indicator_code, country, name, describe, periodicity, importance(1=低/2=中/3=高)}}。支持 offset/limit 分页。","properties":{"keyword":"按指标名称关键词搜索，例如 `\"CPI\"`、`\"非农\"`","country":"按国家代码过滤：US（美国）、CN（中国大陆）、HK（香港）、EU（欧元区）、JP（日本）、SG（新加坡）","offset":"分页偏移量，默认 0","limit":"返回条数上限，默认 100，最大 1000"}},"macrodata":{"title":"宏观指标历史数据","description":"按指标代码（来自 macrodata_indicators）查询历史数据。指标代码不存在时返回错误。返回 {count, info{indicator_code, country, name, describe, periodicity, importance(1=低/2=中/3=高)}, data[]{period, release_at, actual_value, previous_value, forecast_value, unit}}。period 格式因发布周期而异：月度=\"YYYY-MM-DD\"、季度=\"YYYY-Qn\"（如 \"2024-Q1\"）、年度=\"YYYY-01-01\"。注意：actual_value 为空表示该期数据尚未发布（仅有 forecast_value）；data[] 为空表示该日期范围内无记录。支持 offset/limit 分页（每页最多 100 条）。","properties":{"indicator_code":"指标代码，例如 `\"30771718\"`，来自 macrodata_indicators","start_date":"数据起始日期（`yyyy-mm-dd`，例如 `\"2024-01-01\"`）","end_date":"数据结束日期（`yyyy-mm-dd`，例如 `\"2024-12-31\"`）","offset":"分页偏移量，默认 0","limit":"返回条数上限，默认 100，最大 100"}},"market_temperature":{"title":"市场温度","description":"获取当前市场情绪温度，返回 {temperature（0-100）, description, valuation（0-100）, sentiment（0-100）, timestamp}","properties":{"market":"市场代码：HK、US、CN、SG"}},"news":{"title":"资讯","description":"获取证券相关最新新闻，返回 items[]{id, title, source, publish_time, summary, url, related_symbols[]}","properties":{"symbol":"证券代码，例如 `\"700.HK\"`。请用规范代码，补零的代码（如 \"00700.HK\"）会返回空记录而非报错"}},"news_detail":{"title":"资讯详情","description":"按 id 获取单篇资讯的完整内容（id 来自 news / news_search）。返回 {id, title, description, body (Markdown), url, author{id,name,avatar}, images[], comments_count, likes_count, shares_count, published_at, tickers[]}","properties":{"id":"资讯文章 ID（数字），例如 \"7123456789012345678\"。可从 news 或 news_search 获取"}},"now":{"title":"当前时间","description":"获取当前 UTC 时间（RFC3339 格式），用于在发起日期相关查询前确认当前日期"},"operating":{"title":"经营业绩","description":"获取公司经营指标（仅港股），返回 items[]{period, metric_name, value, unit}，如客运量、货运量、门店数等","properties":{"symbol":"证券代码，例如 `\"700.HK\"`。请用规范代码，补零的代码（如 \"00700.HK\"）会返回空记录而非报错"}},"option_chain_expiry_date_list":{"title":"期权到期日列表","description":"获取期权链可选到期日列表，返回 expiry_dates[]（yyyy-mm-dd）。配合 option_chain_info_by_date 查询行权价和 Greeks","properties":{"symbol":"证券代码，例如 `\"700.HK\"`。请用规范代码，补零的代码（如 \"00700.HK\"）会返回空记录而非报错"}},"option_chain_info_by_date":{"title":"期权链","description":"获取指定到期日的期权链，返回 strikePrices[]{strike_price, call{symbol, last_done, iv, delta, gamma}, put{symbol, last_done, iv, delta, gamma}}","properties":{"symbol":"证券代码","date":"到期日（`yyyy-mm-dd`）"}},"option_quote":{"title":"期权报价","description":"获取期权行情（最多 500 个）。symbols 必须是期权合约代码（例如 \"AAPL230317P160000.US\"），不能用普通股票代码——请先用 option_chain_info_by_date 返回的 call.symbol/put.symbol 字段获取有效的期权代码。返回各标的：last_done（最新价）, prev_close, open, high, low, volume（成交量）, turnover（成交额）, implied_volatility（隐含波动率）, delta/gamma/theta/vega/rho（Greeks）, open_interest（未平仓量）。Greeks 已归一化：theta 为每日值（一天的时间损耗），vega 为隐含波动率每变动 1% 的价格变化，rho 为无风险利率每变动 1% 的价格变化。","properties":{"symbols":"期权合约代码，例如 `[\"AAPL230317P160000.US\"]`。不是普通股票代码——请先用 option_chain_expiry_date_list 列出到期日，再用 option_chain_info_by_date 按行权价获取的 call.symbol/put.symbol 字段拿到有效代码"}},"option_volume":{"title":"期权成交量","description":"获取美股实时期权认购/认沽成交量统计，返回 {call_volume, put_volume, put_call_ratio, call_oi, put_oi} 及活跃合约列表","properties":{"symbol":"标的代码（仅美股），例如 `\"AAPL.US\"`"}},"option_volume_daily":{"title":"期权成交量（日度）","description":"获取美股逐日期权成交量历史，返回 items[]{date, call_volume, put_volume, put_call_vol_ratio, call_oi, put_oi, put_call_oi_ratio}","properties":{"symbol":"标的代码（仅美股），例如 `\"AAPL.US\"`","count":"返回的交易日数量（默认 20）"}},"participants":{"title":"市场参与者","description":"获取港股市场参与者（券商）信息，返回 participants[]{broker_ids[], name_en, name_cn, name_hk}，用于解析经纪商队列数据"},"quote":{"title":"行情快照","description":"获取最新行情快照，返回各标的：last_done（最新价）, prev_close（昨收）, open（开盘价）, high/low（最高/最低价）, volume（成交量）, turnover（成交额）, change_rate, change_value, trade_status, timestamp","properties":{"symbols":"证券代码，例如 `[\"700.HK\", \"AAPL.US\"]`"}},"shareholder":{"title":"机构股东","description":"获取证券的机构股东信息，返回 shareholders[]{institution, shares, ratio, change, change_type, reported_at}","properties":{"symbol":"证券代码，例如 `\"700.HK\"`。请用规范代码，补零的代码（如 \"00700.HK\"）会返回空记录而非报错"}},"sharelist_add":{"title":"加入分享股单","description":"向社区分享股单中添加证券。symbols 为股票代码列表（如 [\"AAPL.US\"]），id 为股单 ID。成功返回更新后的股单。","properties":{"id":"分享股单 ID","symbols":"证券代码，例如 `[\"AAPL.US\", \"700.HK\"]`"}},"sharelist_create":{"title":"创建分享股单","description":"新建社区分享股单，返回创建的股单对象（含 id、name、description）","properties":{"name":"股单名称（若未传 `description`，名称同时作为描述）","description":"股单描述，省略时默认与 `name` 相同"}},"sharelist_delete":{"title":"删除分享股单","description":"按 id 删除自建社区分享股单（已订阅他人的股单不可删除）","properties":{"id":"分享股单 ID"}},"sharelist_detail":{"title":"分享股单详情","description":"按 id 获取社区分享股单详情，返回 {id, name, description, constituents[]{symbol, name, last_done, change_rate}, 订阅状态}","properties":{"id":"分享股单 ID"}},"sharelist_list":{"title":"分享股单列表","description":"列出用户自建及已订阅的社区分享股单，返回 lists[]{id, name, description, symbol_count, is_owner, follower_count}","properties":{"count":"返回数量（默认 20）"}},"sharelist_popular":{"title":"热门分享股单","description":"获取热门/流行社区分享股单，返回 lists[]{id, name, description, symbol_count, follower_count, creator}，按热度排序","properties":{"count":"返回数量（默认 20）"}},"sharelist_remove":{"title":"移出分享股单","description":"从社区分享股单中移除指定证券。symbols 为要移除的股票代码列表，id 为股单 ID。成功返回更新后的股单。","properties":{"id":"分享股单 ID","symbols":"证券代码，例如 `[\"AAPL.US\", \"700.HK\"]`"}},"sharelist_sort":{"title":"分享股单排序","description":"调整社区分享股单中证券的排列顺序（按目标顺序传入 symbols）","properties":{"id":"分享股单 ID","symbols":"证券代码，例如 `[\"AAPL.US\", \"700.HK\"]`"}},"short_positions":{"title":"做空持仓","description":"获取港股或美股的卖空持仓历史（未平仓空头头寸）。市场由 symbol 后缀自动判断。count: 1–100（默认20）。统一返回 data[]{timestamp(RFC3339), short_shares(空头持仓股数), rate(小数比率 如0.009=0.9%), close}。仅美股：avg_daily_vol(日均成交量), days_to_cover(回补天数)。仅港股：balance(港元空头余额)。美股来源：FINRA 双周报。港股来源：HKEX 每日。","properties":{"symbol":"证券代码，如 AAPL.US（美股）或 700.HK（港股），市场由后缀自动判断","count":"返回记录数，1–100，默认 20"}},"static_info":{"title":"证券基础信息","description":"获取证券基础信息，返回各标的：symbol, name_cn, name_en, exchange（如 NASDAQ）, type（如 US_Stock）, lot_size（每手股数）, listed_date, delisted。仅限美股账户：`.BKKT` 加密货币代码（如 BTCUSD.BKKT）会路由到独立的美股加密货币概览接口；`.HAS`/`.OSL` 不受影响","properties":{"symbols":"证券代码，例如 `[\"700.HK\", \"AAPL.US\"]`"}},"topic":{"title":"讨论列表","description":"获取证券相关的社区讨论，返回 items[]{id, title, author, created_at, like_count, comment_count, content_summary}","properties":{"symbol":"证券代码，例如 `\"700.HK\"`。请用规范代码，补零的代码（如 \"00700.HK\"）会返回空记录而非报错"}},"topic_create":{"title":"发布讨论","description":"发布社区讨论。topic_type=\"post\"（默认）为纯文本；\"article\" 需非空 title，正文支持 Markdown","properties":{"title":"讨论标题。`topic_type=\"article\"` 时必填，`\"post\"` 时可选","body":"讨论正文。`post` 仅支持纯文本，`article` 支持 Markdown","symbols":"相关证券代码，例如 `[\"700.HK\", \"TSLA.US\"]`（最多 10 个）","topic_type":"讨论类型：`post`（默认，纯文本）或 `article`（Markdown，需 `title`）"}},"topic_create_reply":{"title":"发布讨论回复","description":"对讨论发表回复。传入 reply_to_id 表示楼中楼回复，省略则为顶层回复","properties":{"topic_id":"待回复的讨论 ID","body":"回复正文（仅支持纯文本）","reply_to_id":"可选的父回复 ID，用于楼中楼回复，从 `topic_replies` 获取；省略则为顶层回复"}},"topic_detail":{"title":"讨论详情","description":"按 topic_id 获取讨论详情，返回 {id, title, content, author, created_at, like_count, comment_count, symbols[]}","properties":{"topic_id":"讨论 ID"}},"topic_replies":{"title":"讨论回复","description":"分页获取讨论的回复（page 默认 1，size 默认 20，范围 1-50）","properties":{"topic_id":"讨论 ID","page":"页码（从 1 开始，默认 1）","size":"每页条数（1-50，默认 20）"}},"trade_stats":{"title":"成交统计","description":"获取成交统计（主动买/主动卖/中性盘成交量分布），返回 items[]{price_range, buy_volume, sell_volume, neutral_volume}","properties":{"symbol":"证券代码，例如 `\"700.HK\"`。请用规范代码，补零的代码（如 \"00700.HK\"）会返回空记录而非报错"}},"trades":{"title":"最近成交","description":"获取最近逐笔成交（最多 1000 条），返回 trades[]{price, volume, timestamp, trade_type, direction}","properties":{"symbol":"证券代码","count":"返回的最大条数（最多 1000）"}},"trading_days":{"title":"交易日列表","description":"获取指定市场在日期区间内的交易日，返回 trading_days[] 和 half_trading_days[]（格式 yyyy-mm-dd）","properties":{"market":"市场代码：HK、US、CN、SG","start":"起始日期（`yyyy-mm-dd`）","end":"结束日期（`yyyy-mm-dd`）"}},"trading_session":{"title":"交易时段","description":"获取所有市场的交易时段安排，返回 market_sessions[]{market, trade_sessions[]{beg_time, end_time, trade_session_type}}"},"valuation":{"title":"估值","description":"获取估值概览及同业对比，返回 metrics.pe/pb/ps/dividend_yield{current, industry_avg, 5yr_avg, percentile} 及同业对比列表。美股账户查询 `.US` 标的会得到美股专属变体（ai_summary + 字段不同的 metrics.pe）。区域由账户自动识别","properties":{"symbol":"证券代码，例如 `\"700.HK\"`。请用规范代码，补零的代码（如 \"00700.HK\"）会返回空记录而非报错"}},"valuation_history":{"title":"估值历史","description":"获取详细估值历史时间序列，返回 history.metrics{pe/pb/ps/dividend_yield}[]{timestamp, value}，用于长期分位分析","properties":{"symbol":"证券代码，例如 `\"700.HK\"`。请用规范代码，补零的代码（如 \"00700.HK\"）会返回空记录而非报错"}},"warrant_issuers":{"title":"权证发行商","description":"获取港股窝轮/牛熊证发行商信息，返回 issuers[]{id, name_en, name_cn}，id 可用于 warrant_list 的发行商筛选"},"warrant_list":{"title":"权证列表","description":"按条件筛选标的的窝轮/牛熊证列表，返回 warrants[]{symbol, name, last_done, change_rate, implied_volatility, expiry_date, strike_price, leverage_ratio, outstanding_ratio}","properties":{"symbol":"标的代码，例如 `\"700.HK\"`","sort_by":"排序字段：`LastDone`、`ChangeRate`、`ChangeValue`、`Volume`、`Turnover`、`ExpiryDate`、`StrikePrice`、`UpperStrikePrice`、`LowerStrikePrice`、`OutstandingQuantity`、`OutstandingRatio`、`Premium`、`ItmOtm`、`ImpliedVolatility`、`Delta`","sort_order":"排序方向：`Ascending`（升序）或 `Descending`（降序）","warrant_type":"按品种筛选（可选）：`Call`（认购证）、`Put`（认沽证）、`Bull`（牛证）、`Bear`（熊证）、`Inline`（界内证）","issuer":"按发行商 ID 筛选（可选），`issuer_id` 来自 `warrant_issuers`","expiry_date":"按到期时段筛选（可选）：`LT_3`（<3 个月）、`Between_3_6`（3-6 个月）、`Between_6_12`（6-12 个月）、`GT_12`（>12 个月）","price_type":"按界内 / 界外筛选（可选）：`In`（界内）、`Out`（界外），仅适用于界内证","status":"按状态筛选（可选）：`Suspend`（停牌）、`PrepareList`（待上市）、`Normal`（正常交易）"}},"warrant_quote":{"title":"权证报价","description":"获取窝轮/牛熊证行情，返回各标的：last_done（最新价）, prev_close, open, high, low, volume（成交量）, turnover（成交额）, implied_volatility（隐含波动率）, delta, leverage_ratio, effective_leverage","properties":{"symbols":"证券代码，例如 `[\"700.HK\", \"AAPL.US\"]`"}},"quant_run":{"title":"量化指标脚本运行","description":"在服务端对历史 K 线数据运行量化指标脚本，以 JSON 形式返回计算的指标/绘图值。周期：1m/5m/15m/30m/1h/day/week/month/year（默认 day）；input 为 JSON 数组，顺序需与脚本中 input.*() 调用一致","properties":{"symbol":"证券代码，`<CODE>.<MARKET>` 格式，例如 `TSLA.US`、`700.HK`","period":"K 线周期：`1m`、`5m`、`15m`、`30m`、`1h`、`day`、`week`、`month`、`year`（默认 `day`）","start":"K 线区间起始日期（YYYY-MM-DD）","end":"K 线区间结束日期（YYYY-MM-DD）","script":"指标脚本源代码","input":"脚本输入参数（JSON 数组字符串），顺序需与脚本中 `input.*()` 调用一致，例如 `\"[14,2.0]\"`"}},"news_search":{"title":"新闻搜索","description":"按关键词搜索新闻文章，返回 news_list[]{id, title, description, source_name, publish_at（RFC3339 时间格式）, score}","properties":{"keyword":"搜索关键词","limit":"最多返回条数（默认 20）"}},"topic_search":{"title":"社区话题搜索","description":"按关键词搜索社区帖子/话题，返回 id、作者、时间及摘要","properties":{"keyword":"搜索关键词","limit":"最多返回条数（默认 20）"}},"financial_statement":{"title":"财务报表","description":"获取证券财务报表（利润表/资产负债表/现金流量表）。kind：IS/BS/CF/ALL（默认）；report：af（年报，默认）/saf（半年报）/qf（季报）/q1/q2/q3。美股账户查询 `.US` 标的时会路由到专属美股报表接口（report 词汇表与通用接口相同；kind=ALL/默认会拆成 IS+BS+CF 三次请求合并返回 {income_statement, balance_sheet, cash_flow}，因为后端不支持合并请求），其余组合走通用接口","properties":{"symbol":"证券代码，例如 `\"AAPL.US\"`","kind":"报表类型：`IS`（利润表）、`BS`（资产负债表）、`CF`（现金流量表）、`ALL`（全部，默认）","report":"报告期：`af`（年报）、`saf`（半年报）、`qf`（季报）、`q1`/`q2`/`q3`"}},"financial_report_latest":{"title":"最新财务报告","description":"获取证券最新财务报告摘要，返回 {period, revenue, net_income, eps, roe, gross_margin, report_date} 等主要财务指标","properties":{"symbol":"证券代码，例如 `\"AAPL.US\"`"}},"valuation_rank":{"title":"估值分位","description":"获取证券在指定日期区间内每日估值分位（PE/PB/PS/股息率行业百分位）。start/end 格式：yyyymmdd","properties":{"symbol":"证券代码，例如 `\"AAPL.US\"`","start":"起始日期，yyyymmdd 格式（默认近 30 天）","end":"结束日期，yyyymmdd 格式（默认今日）"}},"institution_rating_history":{"title":"机构评级历史","description":"获取机构评级历史，返回 target_history[]{firm, analyst, old_target, new_target, date} 及 evaluate_history[]{firm, old_rating, new_rating, date}","properties":{"symbol":"证券代码，例如 `\"AAPL.US\"`"}},"institution_rating_industry_rank":{"title":"机构评级行业排名","description":"获取同行业各证券的机构评级排名对比，返回 list[]{symbol, name, buy_count, sell_count, consensus_rating, target_price}，支持分页","properties":{"symbol":"证券代码，例如 `\"AAPL.US\"`","page":"页码（默认 1）","size":"每页条数（默认 20）"}},"short_margin":{"title":"卖空保证金","description":"获取当前账户卖空保证金存款明细，返回各空头持仓的 margin_amount、margin_rate、interest_rate、symbol、quantity"},"bank_cards":{"title":"绑定银行卡","description":"列出当前账户绑定的提款银行卡，返回 cards[]{id, bank_name, account_number（脱敏）, currency, status}"},"withdrawals":{"title":"提款记录","description":"获取当前账户提款历史，返回 items[]{id, amount, currency, status, created_at, bank_name, account_number（脱敏）}","properties":{"page":"页码（默认 1）","size":"每页条数（默认 20）"}},"deposits":{"title":"入款记录","description":"获取当前账户入款历史，返回 items[]{id, amount, currency, status, created_at, updated_at}。states：逗号分隔的状态（Pending/Finished/Failed）；currencies：逗号分隔的货币代码","properties":{"page":"页码（默认 1）","size":"每页条数（默认 20）","states":"入款状态过滤（逗号分隔）","currencies":"货币代码过滤（逗号分隔），例如 `\"USD,HKD\"`"}},"ipo_subscriptions":{"title":"IPO 认购列表","description":"列出港股和美股当前处于认购/预申请阶段的 IPO，返回 items[]{symbol, name, market, sub_start_date, sub_end_date, listing_date, issue_price, min_lot_size}"},"ipo_calendar":{"title":"IPO 日历","description":"显示 IPO 日历，返回 items[]{symbol, name, market, sub_start_date, sub_end_date, listing_date, status}，含即将上市及近期已上市的 IPO"},"ipo_listed":{"title":"IPO 已上市列表","description":"列出港股和美股近期已上市的 IPO，返回 items[]{symbol, name, listing_date, issue_price, first_day_close, first_day_return, volume, market}","properties":{"page":"页码（默认 1）","size":"每页条数（默认 20）"}},"ipo_detail":{"title":"IPO 详情","description":"查看 IPO 详情，返回 profile（业务简介）、timeline[]{event, date}、认购资格（eligibility）、pricing_range、lot_size、配股规则","properties":{"symbol":"证券代码，例如 `\"6871.HK\"` 或 `\"ARM.US\"`","market":"市场：`HK` 或 `US`（默认根据代码后缀推断）"}},"ipo_orders":{"title":"IPO 订单列表","description":"列出当前账户的 IPO 订单（有效和历史），返回 orders[]{order_id, symbol, market, quantity, total_amount, status, submitted_at}，可按 symbol/market/status 过滤","properties":{"symbol":"按证券代码过滤，例如 `\"6871.HK\"`","market":"按市场过滤：`HK` 或 `US`","status":"按订单状态过滤","page":"页码（默认 1）","size":"每页条数（默认 20）"}},"ipo_order_detail":{"title":"IPO 订单详情","description":"按 order_id 查看 IPO 订单详细信息，返回 {order_id, symbol, market, quantity, allotted_quantity, total_amount, status, submitted_at}","properties":{"order_id":"IPO 订单 ID"}},"ipo_profit_loss":{"title":"IPO 盈亏","description":"查看账户 IPO 打新盈亏汇总及逐笔明细，返回 {total_cost, total_value, total_return, items[]{symbol, cost, current_value, return_rate}}。period：all/ytd/1y/3y","properties":{"period":"时间范围：`all`（全部，默认）、`ytd`（今年）、`1y`（近一年）、`3y`（近三年）","page":"页码（默认 1）","size":"每页条数（默认 20）"}},"business_segments":{"title":"主营业务分部","description":"获取当期主营业务分部营收占比快照，返回各分部名称、占比、总营收及货币单位","properties":{"symbol":"证券代码，例如 `\"AAPL.US\"`"}},"business_segments_history":{"title":"主营业务分部历史","description":"获取主营业务分部营收历史趋势，返回 historical[]{date, total, currency, business[{name, percent, value}], regionals[{name, percent, value}]}","properties":{"symbol":"证券代码，例如 `\"AAPL.US\"`","report":"报告期：`qf`（季报）、`saf`（中报）、`af`（年报）"}},"institutional_views":{"title":"机构观点月度时序","description":"获取机构评级月度分布时序，返回 months[]{date, buy, outperform, hold, underperform, sell, total}，用于评级趋势分析","properties":{"symbol":"证券代码，例如 `\"AAPL.US\"`"}},"industry_rank":{"title":"行业排行榜","description":"按市场（US/HK/CN/SG）和指标排列行业。indicator：0=领涨 1=今日走势 2=人气 3=市值 4=营收 5=营收增长率 6=净利润 7=净利润增长率。sort_type：0=单级 1=多层。返回 items[]{symbol（如 IN00258.US）, name, chg, lists[]}，可将某行的 symbol 直接传入 industry_peers","properties":{"market":"市场代码：US、HK、CN、SG","indicator":"排列指标：0=领涨、1=今日走势、2=人气、3=市值、4=营收、5=营收增长率、6=净利润、7=净利润增长率","sort_type":"排序类型：0=单级、1=多层"}},"industry_peers":{"title":"行业同业分组树","description":"获取行业分组的层级同业树，接受来自 industry_rank 的行业 symbol（如 IN00258.US），返回 chain{name, symbol, stock_num, chg, ytd_chg, next[...]} 和 top{name, market}","properties":{"symbol":"来自 industry_rank 的行业 symbol，例如 `\"IN00258.US\"`；也接受 BK counter_id 形式（`\"BK/US/IN00258\"`）"}},"financial_report_snapshot":{"title":"财报快照","description":"获取财报快照：report_desc（文字摘要）、fo_revenue/fo_ebit/fo_eps（实际 vs 预期，含同比/超预期描述）、fr_* 财务比率（ROE、利润率、资产负债、现金流）。report：qf/saf/af","properties":{"symbol":"证券代码，例如 `\"AAPL.US\"`","report":"报告期：`qf`（季报）、`saf`（半年报）、`af`（年报）"}},"shareholder_top":{"title":"Top20 大股东","description":"获取前20大股东（机构、个人、内部人士）的多期持仓信息。返回 info[]{period, share_holders[]{object_id, name, title, shares_held, percent_shares_held, shares_changed, filing_date}}。用 object_id 传入 shareholder_detail 查看该股东的完整交易记录。","properties":{"symbol":"证券代码，如 AAPL.US"}},"shareholder_detail":{"title":"股东持仓详情","description":"获取指定股东的持仓历史与交易明细。需要来自 shareholder_top 的 object_id。返回 name, owner_source（Company/Institution/Person/Insider）, tradings[]{period, accum_buy, accum_sell, net_buy, trading_details[]{trading_date, trading_type, trading_shares, trading_price, security_type, filing_date}}, holding_summary, holding_periods, trading_periods。注意：机构股东（13F申报）的 trading_details[] 为空，仅个人/内部人（Form 4）有交易明细。","properties":{"symbol":"证券代码，如 AAPL.US","object_id":"股东 object_id，来自 shareholder_top 返回的数据"}},"valuation_comparison":{"title":"多股股票对比","description":"股票估值对比。模式A（单股）：只传 symbol，服务端自动返回该股票及同行业推荐对标股。模式B（多股）：传 symbol 作为主股 + comparison_symbols（逗号分隔，如 'MSFT.US,GOOGL.US'）进行指定股票对比。currency: USD/HKD/CNY。返回 list[]{symbol, name, market_value, price_close, pe, pb, ps, history[]{date, pe, pb, ps}}。","properties":{"symbol":"要比较的证券代码，如 AAPL.US","currency":"货币单位：USD/HKD/CNY","comparison_symbols":"对比标的，逗号分隔，最多 4 个，如 MSFT.US,GOOGL.US"}},"screener_strategy":{"title":"策略详情","description":"运行前查看策略的过滤条件详情。返回 market, filter{filters[]{key, min, max, tech_values}}。如需直接执行策略，使用 screener_search 的 strategy_id 参数。","properties":{"id":"策略 ID，来自 screener_recommend_strategies 或 screener_user_strategies 的 screeners[].id"}},"screener_search":{"title":"策略选股","description":"执行选股查询。market: US|HK|CN|SG（模式B必填；模式A使用策略内置市场）。模式A：传 strategy_id（来自 screener_recommend_strategies）自动运行策略。模式B：conditions=[{\"key\":\"KEY\",\"min\":\"10\",\"max\":\"50\",\"tech_values\":{}},...] 直接透传给 API。 extra_returns=[\"key\",...] 追加展示列；sort_by_key 指定排序字段；sort_order: asc|desc（默认 desc）；page: 从0开始（默认0）。返回 {total, items[]{symbol, name, indicators[]{key, name, value, unit}}}，每条结果默认包含 prevclose、prevchg、marketcap、salesgrowthyoy、pettm、pbmrq、industry 七列。基本面 key：pettm pbmrq roe roa netmargin salesgrowthyoy netincomegrowthyoy marketcap(亿) circulating_marketcap(亿) prevclose prevchg(%) divyld la epsttm netincome(亿) sales(亿) turnover_rate balance(万)。技术 key（tech_values 见 screener_indicators）：macd_day/week rsi_day/week kdj_day/week boll_day/week。注意：key 由平台动态维护，不确定时先调 screener_indicators 确认。","properties":{"market":"市场：US/HK/CN/SG。模式B必填；模式A可不传（策略已内置市场）"}},"screener_indicators":{"title":"选股指标配置","description":"获取全部可用选股指标的 key、单位和默认值域。技术指标（MACD/RSI/KDJ/BOLL）含 tech_values 字段，列出可选参数值（如 macd_day 的 category: goldenfork/deadcross/upzero）。可选 symbol（如 AAPL.US）过滤特定股票的指标。返回 groups[]{group_name, indicators[]{id, key, name, unit, default_range{min,max}, tech_values?{param:[{value,label},...]}}}。","properties":{"symbol":"可选证券代码，用于筛选该股票支持的指标，如 AAPL.US"}},"screener_recommend_strategies":{"title":"平台预设选股策略","description":"获取平台预设的选股策略列表。market: US|HK|CN|SG（默认 US）。返回 strategys[]{id, name, description, market, three_months_chg, risk}。将 id 传入 screener_search 的 strategy_id 可直接运行该策略；传入 screener_strategy 可查看策略的过滤条件。"},"screener_user_strategies":{"title":"我的选股策略","description":"获取当前用户已保存的选股策略列表。market: US|HK|CN|SG（默认 US）。返回 strategys[]{id, name, description, market, three_months_chg, risk}。将 id 传入 screener_search 的 strategy_id 可直接运行该策略；传入 screener_strategy 可查看策略的过滤条件。","properties":{"market":"市场筛选：US/HK/CN/SG，默认 US"}},"top_movers":{"title":"热股异动","description":"获取价格波动超过近20日标准差的异动股票及关联新闻原因。markets: 逗号分隔的 HK/US/CN/SG（不传 = 全市场）。sort: 0=时间 1=涨跌幅 2=热度（默认）。limit: 每页数量（默认20）。next_params: 分页游标，传上一次返回的 next_params 对象。返回 events[]{timestamp(RFC3339), alert_reason, alert_type, stock{symbol, name, change(小数如0.0445=+4.45%), last_done, labels[], intro}}, updated_at, next_params。","properties":{"markets":"市场筛选，逗号分隔，支持 HK/US/CN/SG，不传返回全市场","sort":"排序方式：0=按时间（最新优先）1=按涨跌幅（幅度最大优先）2=按热度（默认）","date":"查询日期，格式 YYYY-MM-DD，不传默认今日","limit":"每页返回数量，默认 20，最多 100","next_params":"翻页游标，将上一次响应的 next_params 原样传入即可获取下一页，首页不传"}},"rank_categories":{"title":"热度榜分类配置","description":"获取热度排行榜的分类配置。返回 first_tags[]{key, name, second_tags[]{key, name, market}}。将 second_tags[].key（如 hot_all-us）传入 rank_list 获取对应榜单。"},"rank_list":{"title":"热度榜股票列表","description":"按热度榜 key 获取股票排名列表。key 来自 rank_categories 的 second_tags[].key（如 hot_all-us、hot_up-hk、trade_heat-us）。market: 从 key 后缀推断或显式传入。size: 返回数量（默认 20）。返回 lists[]{symbol, name, last_done, chg(小数), inflow, market_cap, pre_post_price, pre_post_chg, amplitude, turnover_rate, volume_rate, five_day_chg, ten_day_chg, twenty_day_chg, this_year_chg, industry, intro}, updated_at。","properties":{"key":"榜单 key，来自 rank_categories 的 second_tags[].key，如 hot_all-us、hot_up-hk","market":"市场覆盖：US/HK/CN/SG，默认从 key 后缀推断","size":"返回数量，默认 20","need_article":"是否返回关联新闻，默认 false"}},"short_trades":{"title":"做空成交","description":"获取港股或美股的每日卖空成交量历史。市场由 symbol 后缀自动判断。last_timestamp: Unix 秒（不传则取最新）。page_size: 1–100（默认20）。统一返回 data[]{timestamp(RFC3339), short_vol(当日卖空股数), rate(小数比率 如0.36=36%), close}。仅美股：nasdaq_vol(纳斯达克卖空量), nyse_vol(纽交所卖空量)。仅港股：balance(港元), market_vol(当日市场总成交量)。美股来源：FINRA/NASDAQ。港股来源：HKEX。","properties":{"symbol":"证券代码，如 AAPL.US（美股）或 700.HK（港股），市场由后缀自动判断","last_timestamp":"查询截止时间戳（秒），传当前时间戳获取最新数据","page_size":"每页数量，1–100，默认 20"}},"authenticate":{"title":"授权认证","description":"当你尚未取得长桥凭据时使用（例如客户端无法完成浏览器 OAuth 流程）。用户在 https://open.longbridge.cn/connect 生成一次性授权码并粘贴给你，将其作为 `auth_code` 传入。成功后服务端会返回访问令牌，请在后续请求中作为 Bearer 凭据使用，即可解锁全部工具。若你未授权且用户尚未提供授权码，请引导其前往 https://open.longbridge.cn/connect 生成。","properties":{"auth_code":"用户在 https://open.longbridge.cn/connect 生成的一次性 OAuth 授权码，5 分钟内有效且仅可使用一次。"}},"signals":{"title":"策略信号","description":"查询策略信号 —— 策略基于催化剂对某只证券给出的判断。支持按股票代码、策略、催化剂和时间范围筛选，用 limit/offset 分页。返回标题、摘要、看法与保守/基准/乐观目标价，以及用于翻页的 total。完整策略分析请用 signal_detail 获取","properties":{"symbol_name":"按证券代码筛选，例如 `AAPL.US` 或 `700.HK`；省略则返回全部股票","strategy_id":"按策略 id 筛选，例如 buffett-value。优先于已废弃的 strategy_name，两者同时传入时以此为准","strategy_name":"按策略名称筛选；省略则返回全部策略的命中结果","catalyst_name":"按触发信号的因子名称筛选，例如 `EARNINGS_RELEASED`、`macd_12_26_9`——不是返回结果里 `key_catalyst` 的展示文案；省略则不限","catalyst_type":"按触发信号的催化剂类型筛选，例如 News、Fundamental、Technical；省略则不限催化剂类型","start_time":"筛选此时间之后创建的命中记录，ISO 8601 带时区格式，例如 2024-01-15T10:30:00Z；省略则不限下限","end_time":"筛选此时间之前创建的命中记录，ISO 8601 带时区格式；省略则不限上限","limit":"返回结果数量上限，默认 20","offset":"分页跳过的条数，默认 0"}},"signal_detail":{"title":"信号详情","description":"按 ID 获取单条信号（ID 来自 signals）。字段与列表一致，另含 analysis —— 完整策略分析：契合度评分、估值情景、证据来源与相关事实 ID","properties":{"signal_id":"信号 ID，例如 sign_992_1a00c9425c3_48ab，可从 signals 获取"}},"security_facts":{"title":"证券事实（催化剂）","description":"查询指定证券的事实事件列表 —— 异动检测、因子信息、数据来源及自然语言摘要，支持按时间范围和数量上限筛选。事实是策略的触发源：信号的 key_fact_id 即指向触发它的事实","properties":{"symbol":"要查询的证券代码，例如 `AAPL.US` 或 `700.HK`","begin_time":"查询起始时间，UTC 时区，格式为 2006-01-02T15:04:05Z；留空则从最早可用数据开始","end_time":"查询结束时间，UTC 时区，格式为 2006-01-02T15:04:05Z；留空则返回最新数据","limit":"返回事实数量上限。时间范围内的事实超出该上限时，仅返回最新的 limit 条。默认 100"}}},"scopes":{"Watchlist":{"name":"自选列表","description":"用于管理用户的自选列表（获取/创建/更新/删除），并支持查询指定自选列表包含的标的清单以便展示与维护。"},"Account & Positions":{"name":"账户资产与资金明细查询","description":"提供账户资产与资金相关信息的查询能力，包含基金持仓、股票持仓、账户现金/资金信息，以及资金流水历史明细，用于资产总览、持仓展示与账务对账分析。"},"Trade Order Lookup":{"name":"交易查询","description":"覆盖下单后的订单生命周期与执行能力，包括订单详情与当日/历史订单查询，以及当日/历史成交回报查询，并提供下单前的最大可买数量预估。"},"Trade Execution":{"name":"交易下单","description":"执行交易，下单，撤单等功能，以及定投下单。"},"General":{"name":"通用","description":"通用工具，覆盖市场数据、行情、基本面、提醒、定投、股单、IPO 及社区内容。"}}},"zh-HK":{"$schema":"../tools.schema.json","server_instructions":"長橋 MCP 服務 —— 提供市場數據、交易與金融分析工具。委託執行需要兩步確認：submit_order、cancel_order、replace_order 以及全部網格寫操作（grid_submit、grid_replace、grid_cancel、grid_suspend、grid_restart）在未回填確認碼時均為 DRY RUN（試執行），並會返回一個一次性 confirmation_code。請務必先不帶 execute 呼叫一次，把預覽展示給用戶，只有在用戶明確確認之後，才可再次呼叫並把該確認碼傳入 execute。 調用失敗時，工具會在結果內容裡返回帶 error_code 和 recoverable 欄位的 JSON 信封：reauth（重新鑑權後重試）、backoff（等待後重試）、fix_params（修正參數後重試）、none（不要重試，告知用戶）。","tools":{"create_watchlist_group":{"title":"新建自選分組","description":"新建自選分組，返回 {id, name}。可選傳入 securities（如 [\"AAPL.US\"]）預填入證券","properties":{"name":"分組名稱","securities":"要加入的證券代碼，例如 `[\"700.HK\", \"AAPL.US\"]`"}},"delete_watchlist_group":{"title":"刪除自選分組","description":"按分組 id 刪除自選分組。purge=true 時同時從其他分組中移除該分組包含的證券","properties":{"id":"自選分組 id","purge":"是否同時從其他分組中清除這些證券"}},"security_list":{"title":"證券列表","description":"獲取指定市場的證券列表。支援市場：US、HK、CN、SG。category 當前僅支援 \"Overnight\"（預設）。page：頁碼（從1開始，預設1）。count：每頁筆數（預設50）。返回 {total, page, count, items[]{symbol, name_en, name_cn}}。","properties":{"market":"市場代碼：US、HK、CN、SG","category":"類別篩選，當前僅支援 \"Overnight\"（預設）","page":"頁碼，從1開始，預設1","count":"每頁返回筆數，預設50"}},"update_watchlist_group":{"title":"更新自選分組","description":"更新自選分組：重命名（name）或修改成員證券（securities + mode: add/remove/replace）","properties":{"id":"自選分組 id","name":"新的分組名稱（可選）","securities":"證券代碼列表（可選）","mode":"證券更新模式：`add`（新增）、`remove`（移除）或 `replace`（替換，預設）"}},"watchlist":{"title":"自選列表","description":"獲取所有自選分組及其包含的證券，返回 groups[]{id, name, securities[]{symbol, name, watched_price, watched_at}}"},"account_balance":{"title":"帳戶餘額","description":"查詢帳戶現金餘額與資產概覽，返回 balances[]{currency, total_cash, max_finance_amount, remaining_finance_amount, risk_level, margin_call}","properties":{"currency":"按幣種代碼篩選（如 `\"USD\"`、`\"HKD\"`），省略則返回所有幣種"}},"cash_flow":{"title":"資金流水","description":"查詢資金流水記錄（出入金、派息等），返回 items[]{transaction_type, amount, currency, balance, created_at, remark}","properties":{"start_at":"起始時間（RFC3339 時間格式）","end_at":"結束時間（RFC3339 時間格式）"}},"fund_positions":{"title":"基金持倉","description":"查詢當前基金持倉，返回 list[].fund_info[]{symbol, symbol_name, currency, holding_units, current_net_asset_value, cost_net_asset_value, net_asset_value_day}"},"margin_ratio":{"title":"保證金比率","description":"查詢標的保證金比率，返回 {im_factor（初始保證金）, mm_factor（維持保證金）, fm_factor（強平保證金）}","properties":{"symbol":"證券代碼，例如 `\"700.HK\"`。請用規範代碼，補零的代碼（如 \"00700.HK\"）會返回空記錄而非報錯"}},"profit_analysis":{"title":"盈虧分析","description":"獲取組合盈虧分析彙總。start/end（yyyy-mm-dd）須成對傳入，只傳其中之一會返回空結果","properties":{"start":"起始日期（`yyyy-mm-dd`）。必須與 `end` 成對傳入，只傳其一會返回空結果","end":"結束日期（`yyyy-mm-dd`）。必須與 `start` 成對傳入，只傳其一會返回空結果"}},"profit_analysis_detail":{"title":"盈虧分析明細","description":"獲取指定標的詳細盈虧分析。start/end（yyyy-mm-dd）須成對傳入，只傳其中之一會返回空結果","properties":{"symbol":"證券代碼，例如 `\"700.HK\"`。請用規範代碼，補零的代碼（如 \"00700.HK\"）會返回空記錄而非報錯","start":"起始日期（`yyyy-mm-dd`）。必須與 `end` 成對傳入，只傳其一會返回空結果","end":"結束日期（`yyyy-mm-dd`）。必須與 `start` 成對傳入，只傳其一會返回空結果"}},"profit_analysis_realized":{"title":"已實現盈虧分析（美股）","description":"獲取美股賬戶的已實現盈虧，按類別（股票/期權/加密貨幣）和週期拆分。僅限美股賬戶；亞太賬戶調用會返回 DcRegionRestricted 錯誤","properties":{"currency":"報告貨幣，例如 `\"USD\"`（默認 `\"USD\"`）。僅限美股賬戶","category":"按類別篩選：`\"STOCK\"`、`\"OPTION\"`、`\"CRYPTO\"`，留空表示全部"}},"statement_export":{"title":"對帳單導出","description":"獲取對帳單文件的預簽名下載 URL（file_key 來自 statement_list），返回 {url}，訪問該 URL 即可獲取對帳單 JSON","properties":{"file_key":"來自 `statement_list` 的文件 key，例如 `\"/statement_data/data/.../20975338.json\"`"}},"statement_list":{"title":"對帳單列表","description":"列出可獲取的帳戶對帳單（日報/月報），返回 list[]{id, type, date, status}，用 id 調用 statement_export 下載","properties":{"statement_type":"對帳單類型：`\"daily\"`（預設，日報）或 `\"monthly\"`（月報）","start_date":"起始日期（`yyyy-mm-dd`）。`daily` 預設 30 天前，`monthly` 預設 12 個月前","limit":"返回條數。`daily` 預設 30，`monthly` 預設 12"}},"stock_positions":{"title":"股票持倉","description":"查詢所有渠道下的當前股票持倉，返回 list[].stock_info[]{symbol, symbol_name, quantity, available_quantity, currency, cost_price, market}。僅限美股賬戶：額外附帶 us_asset_overview 字段 {cash_list, stock_list, option_list, crypto_list, cash_buy_power, overnight_buy_power}"},"dca_history":{"title":"定投執行歷史","description":"按 plan_id 查詢定投計劃的扣款執行歷史，返回 executions[]{date, quantity, amount, price, status, order_id}","properties":{"plan_id":"定投計劃 ID","page":"頁碼（預設 1）","limit":"每頁條數（預設 20）"}},"dca_list":{"title":"定投計劃列表","description":"列出定投計劃，返回 plans[]{plan_id, symbol, amount, currency, frequency, status, next_execution_date}","properties":{"status":"按狀態篩選：`Active`、`Suspended`、`Finished`，省略則返回全部","symbol":"按證券篩選，例如 `\"AAPL.US\"`，省略則返回全部計劃","page":"頁碼（預設 1）","limit":"每頁條數（預設 20）"}},"dca_stats":{"title":"定投統計","description":"獲取定投投資統計彙總，返回 {total_invested, total_value, total_return, return_rate, plan_count, items[]{symbol, invested, value, return_rate}}","properties":{"symbol":"按證券篩選，例如 `\"AAPL.US\"`，省略則返回所有計劃的合計統計"}},"estimate_max_purchase_quantity":{"title":"最大可買估算","description":"估算指定證券的最大可買/可賣數量，返回 {cash_max_qty, margin_max_qty}","properties":{"symbol":"證券代碼","side":"買賣方向：`Buy`（買入）或 `Sell`（賣出）","order_type":"委託類型：`LO`（限價單）/ `ELO`（增強限價單）/ `MO`（市價單）/ `AO`（競價單）/ `ALO`（競價限價單）","price":"委託價格（限價類委託需要）"}},"history_executions":{"title":"歷史成交","description":"查詢指定日期區間內的全部成交記錄，按成交時間（trade_done_at）篩選並自動翻頁返回完整結果（不受每頁 1000 條截斷），trade_id 為穩定去重鍵。返回 executions[]{order_id, trade_id, symbol, side, quantity, price, trade_done_at}","properties":{"symbol":"按證券篩選（可選）","start_at":"起始時間（RFC3339 時間格式）","end_at":"結束時間（RFC3339 時間格式）"}},"history_orders":{"title":"歷史委託","description":"查詢指定日期區間內的歷史委託（不含當日），返回 orders[]{order_id, symbol, side, status, quantity, price, submitted_at}。僅限美股賬戶：us_page、us_limit 通過獨立的美股委託接口分頁（預設每頁 20 條，傳 us_page 可翻頁）","properties":{"symbol":"按證券篩選（可選）","start_at":"起始時間（RFC3339 時間格式）","end_at":"結束時間（RFC3339 時間格式）","us_page":"僅限美股賬戶：頁碼（預設 1）。亞太賬戶忽略（區域由賬戶自動識別，無需傳入）","us_limit":"僅限美股賬戶：每頁數量（預設 20）。亞太賬戶忽略（區域由賬戶自動識別，無需傳入）"}},"order_detail":{"title":"委託詳情","description":"查詢單個委託詳情，返回 {order_id, symbol, status, side, order_type, quantity, price, executed_quantity, executed_price, submitted_at, time_in_force, msg, attached_orders[]}，其中 attached_orders[] 為該委託的止盈/止損附加單及其各自單號。要按附加單自身的單號查詢，設置 is_attached=true，此時返回該附加單本身，charge_detail 為 null。美股賬戶由獨立的美股委託詳情接口提供，其委託及附加單直接嵌套在 `order` 中返回。區域由賬戶自動識別","properties":{"order_id":"委託單號：母單單號，或（配合 is_attached=true）止盈/止損附加單單號","is_attached":"設為 true 表示 order_id 是止盈/止損附加單單號，返回該附加單本身（charge_detail 為 null）；查詢母單時省略或傳 false。美股賬戶下無效"}},"today_executions":{"title":"當日成交","description":"查詢當日成交（filled），返回 executions[]{order_id, trade_id, symbol, side, quantity, price, trade_done_at}。可按 symbol 或 order_id 篩選","properties":{"symbol":"按證券篩選，例如 `\"700.HK\"`","order_id":"按指定委託單號篩選"}},"today_orders":{"title":"當日委託","description":"查詢當日委託，返回 orders[]{order_id, symbol, side, order_type, status, quantity, price, submitted_at, executed_quantity, executed_price, attached_orders[]}，其中 attached_orders[] 為該委託的止盈/止損附加單。可用 symbol 按證券篩選，或用 order_id 查詢單筆委託；要按附加單自身的單號查詢，把該單號作為 order_id 並同時設置 is_attached=true，返回結果即為該附加單本身。is_attached 單獨使用無效；美股賬戶由獨立的美股委託接口提供，兩者在美股賬戶下均無效。僅限美股賬戶：us_action（Buy/Sell）、us_page、us_limit 通過獨立的美股委託接口篩選/分頁","properties":{"symbol":"按證券篩選，例如 `\"700.HK\"`，省略則返回當日全部委託","order_id":"按委託單號篩選：母單單號，或（配合 is_attached=true）止盈/止損附加單單號。美股賬戶下無效","is_attached":"僅在同時傳入 order_id 時有效：表示該 order_id 是止盈/止損附加單單號，返回結果即為該附加單本身。單獨使用無效，美股賬戶下同樣無效","us_action":"僅限美股賬戶：按方向篩選，`\"Buy\"` 或 `\"Sell\"`，留空表示全部。亞太賬戶忽略（區域由賬戶自動識別，無需傳入）","us_page":"僅限美股賬戶：頁碼（默認 1）。亞太賬戶忽略（區域由賬戶自動識別，無需傳入）","us_limit":"僅限美股賬戶：每頁數量（默認 20）。亞太賬戶忽略（區域由賬戶自動識別，無需傳入）"}},"cancel_order":{"title":"撤銷委託","description":"按 order_id 撤銷未成交的委託，成功返回 \"order cancelled\"；已成交或已撤銷則報錯。【必須兩步確認】未傳本次試執行返回的 confirmation_code 時，本工具為 DRY RUN（試執行）：只校驗並回顯委託內容，不會發往交易所。請先不帶 execute 呼叫一次，把返回的預覽完整展示給用戶，只有在用戶明確確認這筆委託之後，才可再次呼叫並把該確認碼傳入 execute。確認碼由訂單本身（代碼、方向、數量、價格）推導而來，只對這一筆完全相同的請求生效。絕不可自行決定回填確認碼，也不可在用戶首次提出請求的同一輪就回填。試執行還會回顯本次要撤銷的委託，便於用戶核對是否為目標訂單。設為 is_attached=true 可按附加單自身的 order_id 單獨撤銷某個止盈/止損附加單；撤銷母單則會連同其附加單一併撤銷","properties":{"order_id":"委託單號","is_attached":"設為 true 表示按止盈/止損附加單自身的 order_id 撤銷該附加單，母單保持不變；省略或傳 false 表示撤銷母單（其附加單會一併撤銷）","execute":"本次試執行返回的 confirmation_code。省略（預設）表示 DRY RUN：只校驗並回顯請求，同時返回一個三位確認碼，不會發往交易所。必須先不帶該參數呼叫一次，把預覽展示給用戶，待用戶明確確認後才可再次呼叫並回填該碼。確認碼由訂單本身（代碼、方向、數量、價格）推導而來，只對這一筆完全相同的請求生效——改動任何欄位即失效。不可自行決定回填。"}},"dca_create":{"title":"創建定投計劃","description":"創建定投（DCA）計劃。frequency：Daily/Weekly/Monthly；週頻對應 day_of_week（Mon–Fri），月頻對應 day_of_month（1-28）","properties":{"symbol":"證券代碼，例如 `\"AAPL.US\"`","amount":"每期投入金額，例如 `\"100\"`","frequency":"定投頻率：`Daily`（每日）、`Weekly`（每週）、`Monthly`（每月）","day_of_week":"週頻時指定的週幾：`Mon`、`Tue`、`Wed`、`Thu`、`Fri`","day_of_month":"月頻時指定的日期（1-28）","allow_margin":"是否允許使用融資（預設 `false`）"}},"dca_pause":{"title":"暫停定投計劃","description":"按 plan_id 暫停定投計劃，計劃停止執行直至恢復。如需臨時暫停請使用此接口（永久終止用 dca_stop）","properties":{"plan_id":"定投計劃 ID"}},"dca_resume":{"title":"恢復定投計劃","description":"按 plan_id 恢復已暫停的定投計劃，按原有週期繼續自動執行","properties":{"plan_id":"定投計劃 ID"}},"dca_stop":{"title":"終止定投計劃","description":"按 plan_id 永久終止定投計劃，操作不可撤銷。如需臨時暫停請使用 dca_pause","properties":{"plan_id":"定投計劃 ID"}},"dca_update":{"title":"更新定投計劃","description":"按 plan_id 更新定投計劃，可修改 amount、frequency（Daily/Weekly/Monthly）、day_of_week（Mon-Fri）或 day_of_month（1-28）","properties":{"plan_id":"待更新的定投計劃 ID","amount":"新的每期投入金額","frequency":"新的定投頻率：`Daily`、`Weekly`、`Monthly`","day_of_week":"週頻時指定的週幾：`Mon`、`Tue`、`Wed`、`Thu`、`Fri`","day_of_month":"月頻時指定的日期（1-28）","allow_margin":"是否允許使用融資"}},"replace_order":{"title":"修改委託","description":"修改未成交委託的數量、價格、觸發價或追蹤止損參數，成功返回 \"order replaced\"。【必須兩步確認】未傳本次試執行返回的 confirmation_code 時，本工具為 DRY RUN（試執行）：只校驗並回顯委託內容，不會發往交易所。請先不帶 execute 呼叫一次，把返回的預覽完整展示給用戶，只有在用戶明確確認這筆委託之後，才可再次呼叫並把該確認碼傳入 execute。確認碼由訂單本身（代碼、方向、數量、價格）推導而來，只對這一筆完全相同的請求生效。絕不可自行決定回填確認碼，也不可在用戶首次提出請求的同一輪就回填。試執行會同時回顯當前委託與本次擬修改的內容。止盈/止損附加單也在此修改：attached_order_type 配合新的 attached_profit_taker_price / attached_stop_loss_price 可新增或改價，attached_profit_taker_id / attached_stop_loss_id 用於指定要修改的現有附加單，attached_cancel_all=true 則撤銷全部附加單而保留母單","properties":{"order_id":"委託單號","quantity":"新的委託數量","price":"新的委託價格","trigger_price":"新的觸發價","limit_offset":"新的限價偏移量","trailing_amount":"新的追蹤止損金額","trailing_percent":"新的追蹤止損百分比","attached_cancel_all":"設為 true 撤銷該委託的全部止盈/止損附加單，母單本身保持不變","attached_order_type":"要新增或修改的附加單類型：`PROFIT_TAKER` / `STOP_LOSS` / `BRACKET`。除僅做 attached_cancel_all 外必填","attached_profit_taker_id":"要修改的現有止盈單單號（取自 order_detail 的 attached_orders[]）；新增附加單時省略","attached_stop_loss_id":"要修改的現有止損單單號（取自 order_detail 的 attached_orders[]）；新增附加單時省略","attached_profit_taker_price":"新的止盈觸發價","attached_stop_loss_price":"新的止損觸發價","attached_profit_taker_submit_price":"新的止盈單委託限價","attached_stop_loss_submit_price":"新的止損單委託限價","attached_time_in_force":"新的附加單有效期：`Day` / `GTC` / `GTD`","attached_expire_time":"新的附加單到期時間，Unix 時間戳（秒）；`attached_time_in_force=GTD` 時必填","attached_activate_order_type":"新的觸發後委託類型，例如 `LO` 或 `MO`","attached_outside_rth":"新的觸發後盤前盤後設置：`RTH_ONLY` / `ANY_TIME` / `OVERNIGHT`","attached_main_id":"附加單所屬母單的單號；僅在不經母單、單獨修改某個附加單時需要","attached_quantity":"新的附加單數量","attached_market_price":"附加單的參考市價","execute":"本次試執行返回的 confirmation_code。省略（預設）表示 DRY RUN：只校驗並回顯請求，同時返回一個三位確認碼，不會發往交易所。必須先不帶該參數呼叫一次，把預覽展示給用戶，待用戶明確確認後才可再次呼叫並回填該碼。確認碼由訂單本身（代碼、方向、數量、價格）推導而來，只對這一筆完全相同的請求生效——改動任何欄位即失效。不可自行決定回填。"}},"submit_order":{"title":"提交委託","description":"提交買賣委託。order_type：LO（限價）/ ELO（港股增強限價）/ MO（市價）/ AO（港股競價）/ ALO（港股競價限價）/ ODD（港股碎股）/ LIT（觸價限價）/ MIT（觸價市價）/ TSLPAMT（按金額追蹤止損）/ TSLPPCT（按百分比追蹤止損）/ SLO（港股特別限價）；side：Buy/Sell；time_in_force：Day/GTC/GTD。【必須兩步確認】未傳本次試執行返回的 confirmation_code 時，本工具為 DRY RUN（試執行）：只校驗並回顯委託內容，不會發往交易所。請先不帶 execute 呼叫一次，把返回的預覽完整展示給用戶，只有在用戶明確確認這筆委託之後，才可再次呼叫並把該確認碼傳入 execute。確認碼由訂單本身（代碼、方向、數量、價格）推導而來，只對這一筆完全相同的請求生效。絕不可自行決定回填確認碼，也不可在用戶首次提出請求的同一輪就回填。該委託會動用真實資金——試執行是用戶發現代碼、方向、數量或價格錯誤的唯一機會。如需附加止盈/止損單：設置 attached_order_type（PROFIT_TAKER / STOP_LOSS / BRACKET）並填寫 attached_profit_taker_price 和/或 attached_stop_loss_price；附加單會在試執行預覽中回顯，並計入確認碼","properties":{"symbol":"證券代碼","order_type":"委託類型（港股全部支援；美股僅支援 `LO` / `MO` / `LIT` / `MIT` / `TSLPAMT` / `TSLPPCT`）：<br>- `LO`（限價單）：需 `submitted_price`<br>- `ELO`（增強限價單，港股）：需 `submitted_price`<br>- `MO`（市價單）：無需價格<br>- `AO`（競價單，港股）：以競價價成交，無需價格<br>- `ALO`（競價限價單，港股）：需 `submitted_price`<br>- `ODD`（碎股單，港股）：需 `submitted_price`，用於非標準手數<br>- `LIT`（觸價限價）：需 `submitted_price` 與 `trigger_price`，行情觸及觸發價時激活<br>- `MIT`（觸價市價）：僅需 `trigger_price`，觸及後按市價成交<br>- `TSLPAMT`（按金額追蹤止損限價）：需 `trailing_amount` 與 `limit_offset`<br>- `TSLPPCT`（按百分比追蹤止損限價）：需 `trailing_percent`（0-1）與 `limit_offset`<br>- `SLO`（特別限價單，港股）：需 `submitted_price`，提交後不可改單","side":"買賣方向：`Buy`（買入）或 `Sell`（賣出）","submitted_quantity":"委託數量","time_in_force":"委託有效期：`Day`（當日有效）、`GTC`（撤單前有效）、`GTD`（指定日期前有效，需 `expire_date`）","submitted_price":"委託限價。`LO` / `ELO` / `ALO` / `ODD` / `LIT` / `SLO` 必填","trigger_price":"觸發價。`LIT` / `MIT` / `TSLPAMT` / `TSLPPCT` 必填","limit_offset":"相對追蹤止損價的限價偏移量。`TSLPAMT` / `TSLPPCT` 必填","trailing_amount":"追蹤金額（絕對價格距離），`TSLPAMT` 必填","trailing_percent":"追蹤百分比（小數形式，例如 `0.05` 表示 5%），`TSLPPCT` 必填","expire_date":"到期日期（`yyyy-mm-dd`），`time_in_force=GTD` 時必填","outside_rth":"盤前盤後設置：`RTH_ONLY`（僅常規交易時段）、`ANY_TIME`（含盤前盤後任意時段）、`OVERNIGHT`（夜盤，僅美股）","remark":"委託備註（最多 255 字符）","attached_order_type":"附加止盈/止損單類型：`PROFIT_TAKER`（僅止盈）、`STOP_LOSS`（僅止損）、`BRACKET`（止盈止損同時掛）。普通委託請省略；不傳該參數時其餘 attached_* 參數均被忽略","attached_profit_taker_price":"止盈觸發價。`PROFIT_TAKER` 與 `BRACKET` 必填","attached_stop_loss_price":"止損觸發價。`STOP_LOSS` 與 `BRACKET` 必填","attached_profit_taker_submit_price":"止盈單觸發後的委託限價，配合 `attached_activate_order_type=LO` 使用","attached_stop_loss_submit_price":"止損單觸發後的委託限價，配合 `attached_activate_order_type=LO` 使用","attached_time_in_force":"附加單有效期：`Day` / `GTC` / `GTD`；省略則沿用母單設置","attached_expire_time":"附加單到期時間，Unix 時間戳（秒），例如 `\"1767139200\"`；`attached_time_in_force=GTD` 時必填","attached_activate_order_type":"附加單觸發後提交的委託類型，例如 `LO`（需同時給出對應的 `attached_*_submit_price`）或 `MO`","attached_outside_rth":"附加單觸發後的盤前盤後設置：`RTH_ONLY` / `ANY_TIME` / `OVERNIGHT`","execute":"本次試執行返回的 confirmation_code。省略（預設）表示 DRY RUN：只校驗並回顯請求，同時返回一個三位確認碼，不會發往交易所。必須先不帶該參數呼叫一次，把預覽展示給用戶，待用戶明確確認後才可再次呼叫並回填該碼。確認碼由訂單本身（代碼、方向、數量、價格）推導而來，只對這一筆完全相同的請求生效——改動任何欄位即失效。不可自行決定回填。"}},"submit_multileg_order":{"title":"提交組合期權委託","description":"提交多腿期權組合委託，各腿作為一個策略單一起成交或掛單。strategy：CoveredCall（備兌認購）/ CoveredPut（備兌認沽）/ VerticalCallSpread（垂直認購價差）/ VerticalPutSpread（垂直認沽價差）/ Collar（領口）/ Straddle（跨式）/ Strangle（寬跨式）；side：Buy/Sell（整個策略的方向）；order_type：LO（需 submitted_price，為組合淨價）或 MO；legs[]：{symbol, ratio_quantity}，按策略順序排列，僅接受期權代碼；ratio_quantity 恆為正數——每條腿的買賣方向由 strategy 與 side 共同決定","properties":{"strategy":"組合策略，決定所需腿數與每條腿的方向：`CoveredCall`（備兌認購）/ `CoveredPut`（備兌認沽）/ `VerticalCallSpread`（垂直認購價差）/ `VerticalPutSpread`（垂直認沽價差）/ `Collar`（領口）/ `Straddle`（跨式）/ `Strangle`（寬跨式）","side":"買賣方向：`Buy`（買入）或 `Sell`（賣出），指整個策略的方向","order_type":"委託類型：`LO`（限價，需 `submitted_price`）或 `MO`（市價）","submitted_quantity":"委託組數（每組為一套按 `legs` 比例構成的腿）","legs":"組合的各條腿，按策略順序排列，僅接受期權代碼","submitted_price":"整個組合的淨限價，`LO` 必填","remark":"委託備註（最多 255 字符）"}},"ah_premium":{"title":"A/H 溢價","description":"獲取 A/H 股溢價歷史 K 線數據，返回 items[]{timestamp, open, high, low, close}，表示溢價百分比","properties":{"symbol":"證券代碼，例如 `\"700.HK\"`。請用規範代碼，補零的代碼（如 \"00700.HK\"）會返回空記錄而非報錯","period":"K 線週期：`1m`、`5m`、`15m`、`30m`、`60m`、`day`（預設）、`week`、`month`、`year`","count":"返回的 K 線數量（預設 100）"}},"ah_premium_intraday":{"title":"A/H 溢價（分時）","description":"獲取 A/H 股溢價當日分時數據，返回 items[]{timestamp, premium_rate}，逐分鐘展示溢價百分比","properties":{"symbol":"證券代碼，例如 `\"700.HK\"`。請用規範代碼，補零的代碼（如 \"00700.HK\"）會返回空記錄而非報錯"}},"alert_add":{"title":"新增價格預警","description":"新增價格預警，返回已創建的預警對象。condition：price_rise/price_fall（絕對價格）或 percent_rise/percent_fall（升跌幅）；frequency：once/daily/every","properties":{"symbol":"證券代碼，例如 `\"700.HK\"`。請用規範代碼，補零的代碼（如 \"00700.HK\"）會返回空記錄而非報錯","condition":"預警條件：`price_rise`、`price_fall`、`percent_rise`、`percent_fall`","price":"閾值價格或百分比數值","frequency":"預警頻率：`once`（觸發一次後停用）、`daily`（每日一次）、`every`（每次滿足條件都觸發）"}},"alert_delete":{"title":"刪除價格預警","description":"按 alert_id（來自 alert_list 的數字字符串）刪除價格預警","properties":{"alert_id":"預警指標 id"}},"alert_disable":{"title":"停用價格預警","description":"按 alert_id 停用價格預警，返回 {alert_id, enabled: false}","properties":{"alert_id":"預警指標 id"}},"alert_enable":{"title":"啟用價格預警","description":"按 alert_id 啟用價格預警，返回 {alert_id, enabled: true}","properties":{"alert_id":"預警指標 id"}},"alert_list":{"title":"價格預警列表","description":"獲取所有已配置的價格預警，返回 lists[]{symbol, indicators[]{id, condition, price, frequency, enabled, triggered_at}}"},"anomaly":{"title":"市場異動","description":"獲取市場異動提醒（價量異常變動）。market: HK/US/CN/SG。symbol: 可選，篩選特定股票。count: 返回數量（預設 50，最多 100）。返回 changes[]{symbol, name, change_rate, volume, ...}, all_off。","properties":{"market":"市場代碼：HK、US、CN、SG","symbol":"可選證券代碼，如 AAPL.US 或 700.HK，篩選特定股票的異動","count":"返回數量，預設 50，最多 100"}},"broker_holding":{"title":"券商持倉","description":"獲取指定證券的主要券商持倉數據，返回 items[]{broker_name, holding_quantity, holding_change, holding_ratio}","properties":{"symbol":"證券代碼，例如 `\"700.HK\"`。請用規範代碼，補零的代碼（如 \"00700.HK\"）會返回空記錄而非報錯","period":"時間窗口：`rct_1`（近 1 日，預設）、`rct_5`（近 5 日）、`rct_20`（近 20 日）、`rct_60`（近 60 日）"}},"broker_holding_daily":{"title":"券商持倉（日度）","description":"獲取指定券商（broker_id）對某證券的逐日持倉歷史，返回 items[]{date, holding_quantity, holding_change, holding_ratio}","properties":{"symbol":"證券代碼，例如 `\"700.HK\"`。請用規範代碼，補零的代碼（如 \"00700.HK\"）會返回空記錄而非報錯","broker_id":"券商參與者編號"}},"broker_holding_detail":{"title":"券商持倉明細","description":"獲取完整的券商持倉明細列表，返回 items[]{broker_id, broker_name, holding_quantity, holding_ratio, holding_change, date}","properties":{"symbol":"證券代碼，例如 `\"700.HK\"`。請用規範代碼，補零的代碼（如 \"00700.HK\"）會返回空記錄而非報錯"}},"brokers":{"title":"經紀商隊列","description":"獲取港股經紀商買賣盤隊列（僅港股），返回 bid_brokers/ask_brokers[]{position, broker_ids}，通過 participants 工具將 broker_id 映射為名稱","properties":{"symbol":"證券代碼，例如 `\"700.HK\"`。請用規範代碼，補零的代碼（如 \"00700.HK\"）會返回空記錄而非報錯"}},"calc_indexes":{"title":"指標計算","description":"批量計算證券的行情/財務指標（PE、PB、股息率、最新價、換手率等），傳入 symbols 和 indexes 列表，返回各標的的指標值。當請求希臘字母指標（Delta、Gamma、Theta、Vega、Rho）時，返回值已歸一化：theta 為每日值（一天的時間損耗），vega 為隱含波動率每變動 1% 的價格變化，rho 為無風險利率每變動 1% 的價格變化。","properties":{"symbols":"證券代碼，例如 `[\"700.HK\", \"AAPL.US\"]`","indexes":"待計算指標：`LastDone`、`ChangeValue`、`ChangeRate`、`Volume`、`Turnover`、`YtdChangeRate`、`TurnoverRate`、`TotalMarketValue`、`CapitalFlow`、`Amplitude`、`VolumeRatio`、`PeTtmRatio`、`PbRatio`、`DividendRatioTtm`、`FiveDayChangeRate`、`TenDayChangeRate`、`HalfYearChangeRate`、`FiveMinutesChangeRate`、`ExpiryDate`、`StrikePrice`、`UpperStrikePrice`、`LowerStrikePrice`、`OutstandingQty`、`OutstandingRatio`、`Premium`、`ItmOtm`、`ImpliedVolatility`、`WarrantDelta`、`CallPrice`、`ToCallPrice`、`EffectiveLeverage`、`LeverageRatio`、`ConversionRatio`、`BalancePoint`、`OpenInterest`、`Delta`、`Gamma`、`Theta`、`Vega`、`Rho`"}},"candlesticks":{"title":"K 線數據","description":"獲取 K 線數據（OHLCV）。period：1m/5m/15m/30m/60m/day/week/month/year；trade_sessions：intraday（預設，僅正常時段）或 all（含盤前盤後）。若賬戶權限上限低於請求的 count，會返回權限允許範圍內盡量多的數據而不報錯——如果需要精確數量，請檢查返回數組的長度。","properties":{"symbol":"證券代碼","period":"K 線週期：`1m`、`5m`、`15m`、`30m`、`60m`、`day`、`week`、`month`、`year`","count":"K 線數量（最多 1000）","forward_adjust":"是否對拆股 / 派息進行前復權","trade_sessions":"交易時段：`intraday`（僅常規時段）或 `all`（含盤前盤後）"}},"capital_distribution":{"title":"資金分佈","description":"獲取資金分佈（大/中/小單流入流出），返回 {timestamp, capital_in{large, medium, small}, capital_out{large, medium, small}, data_available}。data_available 為 false 時表示該標的（如指數）沒有資金流數據，此時其餘欄位仍會返回但都是無意義的零值","properties":{"symbol":"證券代碼，例如 `\"700.HK\"`。請用規範代碼，補零的代碼（如 \"00700.HK\"）會返回空記錄而非報錯"}},"capital_flow":{"title":"資金流向","description":"獲取資金淨流入/流出當日時間序列，返回 items[]{timestamp, inflow, outflow, net_flow}","properties":{"symbol":"證券代碼，例如 `\"700.HK\"`。請用規範代碼，補零的代碼（如 \"00700.HK\"）會返回空記錄而非報錯"}},"company":{"title":"公司概況","description":"獲取公司概況，返回 name、description、employees、CEO、founded_year、website、exchange、industry、market_cap 等信息。美股賬戶查詢 `.US` 標的會得到美股專屬變體（intro、market_cap、top_rank_tags、sharelist、detail_url）。區域由賬戶自動識別","properties":{"symbol":"證券代碼，例如 `\"700.HK\"`。請用規範代碼，補零的代碼（如 \"00700.HK\"）會返回空記錄而非報錯"}},"consensus":{"title":"一致預期","description":"獲取分析師一致預期，返回 items[]{period, revenue_estimate, eps_estimate, net_income_estimate, analyst_count, last_updated}。美股賬戶查詢 `.US` 標的會得到美股專屬變體（ai_summary + 按期間的 details[] 列表，替代 items[]）。區域由賬戶自動識別","properties":{"symbol":"證券代碼，例如 `\"700.HK\"`。請用規範代碼，補零的代碼（如 \"00700.HK\"）會返回空記錄而非報錯"}},"constituent":{"title":"指數成份股 / ETF 資產分佈","description":"獲取指數成份股或 ETF 資產分佈。指數（如 HSI.HK、.DJI.US）返回 constituents[]{symbol, name, last_done（最新價）, change_rate, market_cap, weight}。ETF（如 QQQ.US、2800.HK）返回資產分佈 info[]，按 asset_type 分組：1=Holdings（前十大持倉，含 code、symbol、holding_detail）/ 2=Regional（地區分佈）/ 3=AssetClass（資產類別，如股票/債券/現金）/ 4=Industry（行業分佈）。每組含 report_date 與 lists[]{name, position_ratio, name_locales}；Holdings 組額外含 code、symbol 及 holding_detail{industry_name, index_name, holding_type_name}","properties":{"symbol":"指數或 ETF 代碼，例如 `\"HSI.HK\"`、`\"QQQ.US\"`"}},"corp_action":{"title":"公司行動","description":"獲取公司行動信息（拆股、回購、更名等），返回 items[]{action_type, effective_date, ratio, description}","properties":{"symbol":"證券代碼，例如 `\"700.HK\"`。請用規範代碼，補零的代碼（如 \"00700.HK\"）會返回空記錄而非報錯"}},"dca_check":{"title":"檢查定投支援","description":"檢查證券是否支援定投（DCA），返回 items[]{symbol, support_dca, reason}","properties":{"symbols":"待檢查的證券代碼，例如 `[\"AAPL.US\", \"TSLA.US\"]`"}},"depth":{"title":"盤口深度","description":"獲取買賣盤深度（最多 10 檔），返回 {bids[]{position, price, volume, order_num}, asks[]{position, price, volume, order_num}}","properties":{"symbol":"證券代碼，例如 `\"700.HK\"`。請用規範代碼，補零的代碼（如 \"00700.HK\"）會返回空記錄而非報錯"}},"dividend":{"title":"派息歷史","description":"獲取證券的派息歷史，返回 items[]{ex_date（除權日）, pay_date（派發日）, record_date, dividend_type, amount, currency, status}。美股賬戶查詢 `.US` 標的會按 ETF/個股得到美股專屬變體（dividend_yield/dividend_yield_ttm 是百分比數值，例如 0.34 代表 0.34%，不是 0-1 的小數）。區域由賬戶自動識別","properties":{"symbol":"證券代碼，例如 `\"700.HK\"`。請用規範代碼，補零的代碼（如 \"00700.HK\"）會返回空記錄而非報錯"}},"dividend_detail":{"title":"派息明細","description":"獲取詳細派息分紅方案，返回 details[]{period, cash_dividend, stock_dividend, record_date, ex_date, pay_date, currency}","properties":{"symbol":"證券代碼，例如 `\"700.HK\"`。請用規範代碼，補零的代碼（如 \"00700.HK\"）會返回空記錄而非報錯"}},"etf_docs":{"title":"ETF文件（美股）","description":"獲取美股ETF的監管/招募說明書文件（etf-files）。僅限美股賬戶；亞太賬戶調用會返回 DcRegionRestricted 錯誤","properties":{"symbol":"ETF代碼，例如 `\"SPY.US\"`","limit":"最多返回的文件數量，留空返回全部"}},"exchange_rate":{"title":"匯率","description":"獲取全部支援幣種的匯率，返回 list[]{from_currency, to_currency, rate, timestamp}，覆蓋 USD/HKD/CNY/SGD 等"},"executive":{"title":"高管與董事","description":"獲取公司高管及董事會成員信息，返回 members[]{name, title, appointed_date, age, biography, compensation}","properties":{"symbol":"證券代碼，例如 `\"700.HK\"`。請用規範代碼，補零的代碼（如 \"00700.HK\"）會返回空記錄而非報錯"}},"filings":{"title":"監管公告","description":"獲取監管文件公告（8-K、10-Q、10-K 等），返回 items[]{id, title, type, language, filing_date, url}","properties":{"symbol":"證券代碼，例如 `\"700.HK\"`。請用規範代碼，補零的代碼（如 \"00700.HK\"）會返回空記錄而非報錯"}},"finance_calendar":{"title":"財經日曆","description":"獲取財經日曆事件。category：report（財報）/ dividend（除息與派息）/ split（拆股與反向拆股）/ ipo / macrodata（CPI、非農、議息等）/ closed（休市日）。start、end（`yyyy-mm-dd`）均為可選，預設為今天起 7 天；範圍建議不超過 2 週，否則結果會被截斷。","properties":{"market":"市場代碼：HK、US、CN、SG，省略則查詢所有市場","start":"起始日期（`yyyy-mm-dd`），可選，預設為今天","end":"結束日期（`yyyy-mm-dd`），可選，預設為起始日期之後 7 天","category":"事件類別：`report`（財報披露）/ `dividend`（除息日與派發日）/ `split`（拆股與反向拆股）/ `ipo`（IPO 上市日期）/ `macrodata`（宏觀數據發佈，如 GDP、CPI、非農）/ `closed`（市場休市日）"}},"financial_report":{"title":"財務報表","description":"獲取財務報告（損益表/資產負債表/現金流量表）。kind：IS/BS/CF/ALL；report_type：af（年報）/saf（半年報）/q1/q2/q3/qf（季報全量）。美股賬戶在不傳 kind 的情況下查詢 `.US` 標的會路由到專屬美股概覽接口；顯式傳入 kind 時始終走通用接口","properties":{"symbol":"證券代碼，例如 `\"AAPL.US\"`","kind":"報表種類：`IS`（損益表）、`BS`（資產負債表）、`CF`（現金流量表）、`ALL`（預設全部）","report_type":"報告期：`af`（年度）、`saf`（半年度）、`q1` / `q2` / `q3`（季度）、`qf`（季度全量）"}},"financial_report_key_metrics":{"title":"關鍵財務指標（美股）","description":"獲取美股標的的關鍵財務指標（fin-keyfactor）。report: af（年度，默認）、saf、qf、q1/q2/q3。僅限美股賬戶；亞太賬戶調用會返回 DcRegionRestricted 錯誤","properties":{"symbol":"證券代碼，例如 `\"AAPL.US\"`","report":"報告期：`\"annual\"`（默認）或 `\"quarterly\"`"}},"forecast_eps":{"title":"EPS 預測","description":"獲取 EPS 預測及分析師預期歷史，返回 items[]{forecast_start_date, forecast_end_date, eps_estimate, eps_actual, surprise_pct, analyst_count}","properties":{"symbol":"證券代碼，例如 `\"700.HK\"`。請用規範代碼，補零的代碼（如 \"00700.HK\"）會返回空記錄而非報錯"}},"fund_holder":{"title":"持倉基金","description":"獲取持有指定證券的基金及 ETF，返回 fund_holders[]{fund_name, fund_symbol, shares, ratio, change, reported_at}","properties":{"symbol":"證券代碼，例如 `\"700.HK\"`。請用規範代碼，補零的代碼（如 \"00700.HK\"）會返回空記錄而非報錯"}},"grid_symbol_info":{"title":"網格標的資訊","description":"按 symbol 取得某標的網格下單的盤前設定資訊(入參是標的代碼,不是訂單號):證券名稱、最新價、買/賣每手股數、價格檔位表(bid_size),以及渠道/授權資訊(策略授權標誌、是否支援盤前盤後、可用結算貨幣)。下單前可先查該標的的網格約束。","properties":{"symbol":"證券代碼,例如 \"700.HK\""}},"grid_list":{"title":"網格訂單列表","description":"列出網格交易訂單。可按標的或逗號分隔的狀態(如 \"Performing,Suspended\")篩選,支援分頁與排序。返回 grid_order[] 摘要與 has_more。","properties":{"symbol":"證券代碼,例如 \"700.HK\"","status":"逗號分隔的狀態篩選,如 \"Performing,Suspended\"","page":"頁碼(預設 1)","limit":"每頁數量(預設 20)","sort_by":"排序欄位(如 \"created_at\")","sort_order":"排序方向(\"asc\"/\"desc\")"}},"grid_list_by_ids":{"title":"按 ID 查詢網格訂單","description":"按訂單 ID 批量取得網格訂單,返回 grid_orders[] 摘要。","properties":{"order_ids":"網格訂單號陣列,例如 [\"123\",\"456\"]"}},"grid_detail":{"title":"網格訂單詳情","description":"單個網格訂單的完整詳情:規則參數、狀態、子訂單(grid_sub_orders)與生命週期歷史(grid_order_history)。支援 history_id 游標與 limit 分頁。","properties":{"order_id":"網格訂單號","history_id":"分頁游標(翻頁內嵌觸發歷史/子訂單)","limit":"每頁數量(預設 20)"}},"grid_trigger_history":{"title":"網格觸發歷史","description":"單個網格訂單的觸發歷史:每筆被觸發的子訂單及其價格、數量、成交均價/數量與觸發時間。支援 page/limit。","properties":{"order_id":"網格訂單號","page":"頁碼(預設 1)","limit":"每頁數量(預設 20)"}},"grid_submit":{"title":"提交網格訂單","description":"提交網格交易訂單。需提供 symbol、settlement_currency 及網格規則:基準價/上限價/下限價、trigger_price_type(1=價差,2=百分比)及對應的價差/百分比上下沿、trigger_quantity、上下限數量、time_in_force(0=當日,1=GTC,6=GTD)、grid_order_type_up/down(GMO/GLO/GTG)、邊界事件(1=忽略,2=按最新價平倉)。價格/數量為字串。【必須兩步確認】未傳本次試執行返回的 confirmation_code 時，本工具為 DRY RUN（試執行）：只校驗並回顯請求內容，不會發往交易所。請先不帶 execute 呼叫一次，把返回的預覽完整展示給用戶，只有在用戶明確確認之後，才可再次呼叫並把該確認碼傳入 execute。確認碼由訂單本身（代碼、方向、數量、價格）推導而來，只對這一筆完全相同的請求生效。絕不可自行決定回填確認碼。網格一旦生效會自行持續交易","properties":{"symbol":"證券代碼,例如 \"700.HK\"","settlement_currency":"結算貨幣,例如 \"HKD\"","submitted_base_price":"基準價(網格錨定價,小數字串)","upper_limit_price":"上限價(小數字串)","lower_limit_price":"下限價(小數字串)","trigger_price_type":"觸發方式:1=價差,2=百分比","trigger_spread_up":"向上觸發價差(絕對值,配 type=1,小數字串)","trigger_spread_down":"向下觸發價差(絕對值,配 type=1,小數字串)","trigger_percent_up":"向上觸發百分比(配 type=2,小數字串)","trigger_percent_down":"向下觸發百分比(配 type=2,小數字串)","multiple_trigger":"同一網格是否允許多次觸發","time_in_force":"有效期:0=當日,1=GTC,6=GTD","upper_limit_quantity":"觸及上限時處理的數量(小數字串)","lower_limit_quantity":"觸及下限時處理的數量(小數字串)","expire_time":"到期時間(unix 秒,配 GTD)","upper_limit_event":"觸及上限時的動作:1=忽略(繼續運行),2=按最新價平倉","lower_limit_event":"觸及下限時的動作:1=忽略(繼續運行),2=按最新價平倉","trigger_sell_depth":"賣方盤口深度(-5..5,0=用 grid_order_type_up)","trigger_buy_depth":"買方盤口深度(-5..5,0=用 grid_order_type_down)","trigger_quantity":"每次觸發數量(小數字串)","support_shortsell":"是否允許融券賣出","rth":"盤中交易時段標誌:0/1/2","grid_order_type_up":"深度為 0 時的賣方訂單類型:GMO/GLO/GTG","grid_order_type_down":"深度為 0 時的買方訂單類型:GMO/GLO/GTG","execute":"本次試執行返回的 confirmation_code。省略（預設）表示 DRY RUN：只校驗並回顯請求，同時返回一個三位確認碼，不會發往交易所。必須先不帶該參數呼叫一次，把預覽展示給用戶，待用戶明確確認後才可再次呼叫並回填該碼。確認碼由訂單本身（代碼、方向、數量、價格）推導而來，只對這一筆完全相同的請求生效——改動任何欄位即失效。不可自行決定回填。"}},"grid_replace":{"title":"修改網格訂單","description":"按 order_id 修改網格訂單規則,規則欄位同 grid_submit。【必須兩步確認】未傳本次試執行返回的 confirmation_code 時，本工具為 DRY RUN（試執行）：只校驗並回顯請求內容，不會發往交易所。請先不帶 execute 呼叫一次，把返回的預覽完整展示給用戶，只有在用戶明確確認之後，才可再次呼叫並把該確認碼傳入 execute。確認碼由訂單本身（代碼、方向、數量、價格）推導而來，只對這一筆完全相同的請求生效。絕不可自行決定回填確認碼。試執行會回顯將要替換當前規則的新規則","properties":{"order_id":"網格訂單號","submitted_base_price":"基準價(網格錨定價,小數字串)","upper_limit_price":"上限價(小數字串)","lower_limit_price":"下限價(小數字串)","trigger_price_type":"觸發方式:1=價差,2=百分比","trigger_spread_up":"向上觸發價差(絕對值,配 type=1,小數字串)","trigger_spread_down":"向下觸發價差(絕對值,配 type=1,小數字串)","trigger_percent_up":"向上觸發百分比(配 type=2,小數字串)","trigger_percent_down":"向下觸發百分比(配 type=2,小數字串)","multiple_trigger":"同一網格是否允許多次觸發","time_in_force":"有效期:0=當日,1=GTC,6=GTD","upper_limit_quantity":"觸及上限時處理的數量(小數字串)","lower_limit_quantity":"觸及下限時處理的數量(小數字串)","expire_time":"到期時間(unix 秒,配 GTD)","upper_limit_event":"觸及上限時的動作:1=忽略(繼續運行),2=按最新價平倉","lower_limit_event":"觸及下限時的動作:1=忽略(繼續運行),2=按最新價平倉","trigger_sell_depth":"賣方盤口深度(-5..5,0=用 grid_order_type_up)","trigger_buy_depth":"買方盤口深度(-5..5,0=用 grid_order_type_down)","trigger_quantity":"每次觸發數量(小數字串)","support_shortsell":"是否允許融券賣出","rth":"盤中交易時段標誌:0/1/2","grid_order_type_up":"深度為 0 時的賣方訂單類型:GMO/GLO/GTG","grid_order_type_down":"深度為 0 時的買方訂單類型:GMO/GLO/GTG","execute":"本次試執行返回的 confirmation_code。省略（預設）表示 DRY RUN：只校驗並回顯請求，同時返回一個三位確認碼，不會發往交易所。必須先不帶該參數呼叫一次，把預覽展示給用戶，待用戶明確確認後才可再次呼叫並回填該碼。確認碼由訂單本身（代碼、方向、數量、價格）推導而來，只對這一筆完全相同的請求生效——改動任何欄位即失效。不可自行決定回填。"}},"grid_cancel":{"title":"取消網格訂單","description":"按 order_id 取消(終止)網格訂單。【必須兩步確認】未傳本次試執行返回的 confirmation_code 時，本工具為 DRY RUN（試執行）：只校驗並回顯請求內容，不會發往交易所。請先不帶 execute 呼叫一次，把返回的預覽完整展示給用戶，只有在用戶明確確認之後，才可再次呼叫並把該確認碼傳入 execute。確認碼由訂單本身（代碼、方向、數量、價格）推導而來，只對這一筆完全相同的請求生效。絕不可自行決定回填確認碼","properties":{"order_id":"網格訂單號","execute":"本次試執行返回的 confirmation_code。省略（預設）表示 DRY RUN：只校驗並回顯請求，同時返回一個三位確認碼，不會發往交易所。必須先不帶該參數呼叫一次，把預覽展示給用戶，待用戶明確確認後才可再次呼叫並回填該碼。確認碼由訂單本身（代碼、方向、數量、價格）推導而來，只對這一筆完全相同的請求生效——改動任何欄位即失效。不可自行決定回填。"}},"grid_suspend":{"title":"暫停網格訂單","description":"按 order_id 暫停運行中的網格訂單,可用 grid_restart 恢復。【必須兩步確認】未傳本次試執行返回的 confirmation_code 時，本工具為 DRY RUN（試執行）：只校驗並回顯請求內容，不會發往交易所。請先不帶 execute 呼叫一次，把返回的預覽完整展示給用戶，只有在用戶明確確認之後，才可再次呼叫並把該確認碼傳入 execute。確認碼由訂單本身（代碼、方向、數量、價格）推導而來，只對這一筆完全相同的請求生效。絕不可自行決定回填確認碼","properties":{"order_id":"網格訂單號","execute":"本次試執行返回的 confirmation_code。省略（預設）表示 DRY RUN：只校驗並回顯請求，同時返回一個三位確認碼，不會發往交易所。必須先不帶該參數呼叫一次，把預覽展示給用戶，待用戶明確確認後才可再次呼叫並回填該碼。確認碼由訂單本身（代碼、方向、數量、價格）推導而來，只對這一筆完全相同的請求生效——改動任何欄位即失效。不可自行決定回填。"}},"grid_restart":{"title":"恢復網格訂單","description":"按 order_id 恢復已暫停的網格訂單。【必須兩步確認】未傳本次試執行返回的 confirmation_code 時，本工具為 DRY RUN（試執行）：只校驗並回顯請求內容，不會發往交易所。請先不帶 execute 呼叫一次，把返回的預覽完整展示給用戶，只有在用戶明確確認之後，才可再次呼叫並把該確認碼傳入 execute。確認碼由訂單本身（代碼、方向、數量、價格）推導而來，只對這一筆完全相同的請求生效。絕不可自行決定回填確認碼。重啟後網格會重新自行持續下單","properties":{"order_id":"網格訂單號","execute":"本次試執行返回的 confirmation_code。省略（預設）表示 DRY RUN：只校驗並回顯請求，同時返回一個三位確認碼，不會發往交易所。必須先不帶該參數呼叫一次，把預覽展示給用戶，待用戶明確確認後才可再次呼叫並回填該碼。確認碼由訂單本身（代碼、方向、數量、價格）推導而來，只對這一筆完全相同的請求生效——改動任何欄位即失效。不可自行決定回填。"}},"history_candlesticks_by_date":{"title":"歷史 K 線（按日期）","description":"按日期區間獲取歷史 K 線（OHLCV）數據。僅 symbol 必填，period 預設 day、forward_adjust 預設 false、trade_sessions 預設 all。period：1m/5m/15m/30m/60m/day/week/month/year","properties":{"symbol":"證券代碼","period":"K 線週期：`1m`、`5m`、`15m`、`30m`、`60m`、`day`、`week`、`month`、`year`（預設 `day`）","forward_adjust":"是否對拆股 / 派息進行前復權（預設 `false`，不復權）","start":"起始日期（`yyyy-mm-dd`），可選","end":"結束日期（`yyyy-mm-dd`），可選","trade_sessions":"交易時段：`intraday`（僅常規時段）或 `all`（含盤前盤後，預設）"}},"history_candlesticks_by_offset":{"title":"歷史 K 線（按偏移）","description":"以參考時間為錨點按偏移量獲取歷史 K 線（OHLCV）數據。僅 symbol 必填，period 預設 day、count 預設 100、forward_adjust 與 forward 預設 false、trade_sessions 預設 all。若賬戶權限上限低於請求的 count，會返回權限允許範圍內盡量多的數據而不報錯——如果需要精確數量，請檢查返回數組的長度。","properties":{"symbol":"證券代碼","period":"K 線週期：`1m`、`5m`、`15m`、`30m`、`60m`、`day`、`week`、`month`、`year`（預設 `day`）","forward_adjust":"是否對拆股 / 派息進行前復權（預設 `false`，不復權）","forward":"查詢方向：`true` 向後（向未來），`false` 向前（向過去，預設）","time":"參考時間（`yyyy-mm-ddTHH:MM:SS`），省略則以最新時間為起點","count":"K 線數量（最多 1000，預設 100）","trade_sessions":"交易時段：`intraday`（僅常規時段）或 `all`（含盤前盤後，預設）"}},"history_market_temperature":{"title":"歷史市場溫度","description":"獲取市場情緒溫度歷史時間序列，返回 {type, list[]{temperature, description, valuation, sentiment, timestamp}}","properties":{"market":"市場代碼：HK、US、CN、SG","start":"起始日期（`yyyy-mm-dd`）","end":"結束日期（`yyyy-mm-dd`）"}},"industry_valuation":{"title":"行業估值","description":"獲取同行業可比公司估值對比，返回 list[]{symbol, name, pe, pb, ps, dividend_yield, history[]{date, pe, pb}}","properties":{"symbol":"證券代碼，例如 `\"700.HK\"`。請用規範代碼，補零的代碼（如 \"00700.HK\"）會返回空記錄而非報錯"}},"industry_valuation_dist":{"title":"行業估值分佈","description":"獲取行業 PE/PB/PS 估值分佈，返回 distributions{pe/pb/ps}{min, p25, median, p75, max, current_percentile}，顯示個股在行業中的分位","properties":{"symbol":"證券代碼，例如 `\"700.HK\"`。請用規範代碼，補零的代碼（如 \"00700.HK\"）會返回空記錄而非報錯"}},"institution_rating":{"title":"機構評級","description":"獲取機構評級彙總，返回 analyst{buy, outperform, hold, underperform, sell 家數, target_price, consensus_rating} 及評級列表","properties":{"symbol":"證券代碼，例如 `\"700.HK\"`。請用規範代碼，補零的代碼（如 \"00700.HK\"）會返回空記錄而非報錯"}},"institution_rating_detail":{"title":"機構評級明細","description":"獲取機構評級與目標價歷史明細，返回 target.list[]{analyst, firm, rating, target_price, timestamp}","properties":{"symbol":"證券代碼，例如 `\"700.HK\"`。請用規範代碼，補零的代碼（如 \"00700.HK\"）會返回空記錄而非報錯"}},"intraday":{"title":"分時數據","description":"獲取分時（逐分鐘）價格/成交量數據。trade_sessions：intraday（預設，僅正常時段）或 all（含盤前盤後）","properties":{"symbol":"證券代碼，例如 `\"700.HK\"`。請用規範代碼，補零的代碼（如 \"00700.HK\"）會返回空記錄而非報錯","trade_sessions":"包含的交易時段：`intraday`（預設，僅常規時段）或 `all`（含盤前盤後）"}},"invest_relation":{"title":"投資者關係","description":"獲取投資者關係事件與公告，返回 items[]{title, event_type, event_date, url, description}","properties":{"symbol":"證券代碼，例如 `\"700.HK\"`。請用規範代碼，補零的代碼（如 \"00700.HK\"）會返回空記錄而非報錯"}},"market_status":{"title":"市場狀態","description":"獲取所有市場當前交易狀態，返回 market_time[]{market, trade_status（Trading/Closed/Mid-Day Break/Pre-Market/Post-Market/Overnight 等）, timestamp}"},"macrodata_indicators":{"title":"宏觀指標列表","description":"列出宏觀經濟指標。keyword 按指標名稱搜尋（如 \"CPI\"、\"非農\"、\"GDP\"）。可按國家代碼過濾：US/CN/HK/EU/JP/SG，省略則返回全部。返回 {count, list[]{indicator_code, country, name, describe, periodicity, importance(1=低/2=中/3=高)}}。支援 offset/limit 分頁。","properties":{"keyword":"按指標名稱關鍵詞搜尋，例如 `\"CPI\"`、`\"非農\"`","country":"按國家代碼過濾：US（美國）、CN（中國大陸）、HK（香港）、EU（歐元區）、JP（日本）、SG（新加坡）","offset":"分頁偏移量，預設 0","limit":"返回條數上限，預設 100，最大 1000"}},"macrodata":{"title":"宏觀指標歷史數據","description":"按指標代碼（來自 macrodata_indicators）查詢歷史數據。指標代碼不存在時返回錯誤。返回 {count, info{indicator_code, country, name, describe, periodicity, importance(1=低/2=中/3=高)}, data[]{period, release_at, actual_value, previous_value, forecast_value, unit}}。period 格式因發布週期而異：月度=\"YYYY-MM-DD\"、季度=\"YYYY-Qn\"（如 \"2024-Q1\"）、年度=\"YYYY-01-01\"。注意：actual_value 為空表示該期數據尚未發佈（僅有 forecast_value）；data[] 為空表示該日期範圍內無記錄。支援 offset/limit 分頁（每頁最多 100 條）。","properties":{"indicator_code":"指標代碼，例如 `\"30771718\"`，來自 macrodata_indicators","start_date":"數據起始日期（`yyyy-mm-dd`，例如 `\"2024-01-01\"`）","end_date":"數據結束日期（`yyyy-mm-dd`，例如 `\"2024-12-31\"`）","offset":"分頁偏移量，預設 0","limit":"返回條數上限，預設 100，最大 100"}},"market_temperature":{"title":"市場溫度","description":"獲取當前市場情緒溫度，返回 {temperature（0-100）, description, valuation（0-100）, sentiment（0-100）, timestamp}","properties":{"market":"市場代碼：HK、US、CN、SG"}},"news":{"title":"資訊","description":"獲取證券相關最新新聞，返回 items[]{id, title, source, publish_time, summary, url, related_symbols[]}","properties":{"symbol":"證券代碼，例如 `\"700.HK\"`。請用規範代碼，補零的代碼（如 \"00700.HK\"）會返回空記錄而非報錯"}},"news_detail":{"title":"資訊詳情","description":"按 id 獲取單篇資訊的完整內容（id 來自 news / news_search）。返回 {id, title, description, body (Markdown), url, author{id,name,avatar}, images[], comments_count, likes_count, shares_count, published_at, tickers[]}","properties":{"id":"資訊文章 ID（數字），例如 \"7123456789012345678\"。可從 news 或 news_search 獲取"}},"now":{"title":"當前時間","description":"獲取當前 UTC 時間（RFC3339 時間格式），用於在發起日期相關查詢前確認當前日期"},"operating":{"title":"經營業績","description":"獲取公司經營指標（僅港股），返回 items[]{period, metric_name, value, unit}，如客運量、貨運量、門店數等","properties":{"symbol":"證券代碼，例如 `\"700.HK\"`。請用規範代碼，補零的代碼（如 \"00700.HK\"）會返回空記錄而非報錯"}},"option_chain_expiry_date_list":{"title":"期權到期日列表","description":"獲取期權鏈可選到期日列表，返回 expiry_dates[]（yyyy-mm-dd）。配合 option_chain_info_by_date 查詢行權價和 Greeks","properties":{"symbol":"證券代碼，例如 `\"700.HK\"`。請用規範代碼，補零的代碼（如 \"00700.HK\"）會返回空記錄而非報錯"}},"option_chain_info_by_date":{"title":"期權鏈","description":"獲取指定到期日的期權鏈，返回 strikePrices[]{strike_price, call{symbol, last_done, iv, delta, gamma}, put{symbol, last_done, iv, delta, gamma}}","properties":{"symbol":"證券代碼","date":"到期日（`yyyy-mm-dd`）"}},"option_quote":{"title":"期權報價","description":"獲取期權行情（最多 500 個）。symbols 必須是期權合約代碼（例如 \"AAPL230317P160000.US\"），不能用普通股票代碼——請先用 option_chain_info_by_date 返回的 call.symbol/put.symbol 欄位獲取有效的期權代碼。返回各標的：last_done（最新價）, prev_close, open, high, low, volume（成交量）, turnover（成交額）, implied_volatility（隱含波動率）, delta/gamma/theta/vega/rho（Greeks）, open_interest（未平倉量）。Greeks 已歸一化：theta 為每日值（一天的時間損耗），vega 為隱含波動率每變動 1% 的價格變化，rho 為無風險利率每變動 1% 的價格變化。","properties":{"symbols":"期權合約代碼，例如 `[\"AAPL230317P160000.US\"]`。不是普通股票代碼——請先用 option_chain_expiry_date_list 列出到期日，再用 option_chain_info_by_date 按行使價獲取的 call.symbol/put.symbol 欄位拿到有效代碼"}},"option_volume":{"title":"期權成交量","description":"獲取美股實時期權認購/認沽成交量統計，返回 {call_volume, put_volume, put_call_ratio, call_oi, put_oi} 及活躍合約列表","properties":{"symbol":"標的代碼（僅美股），例如 `\"AAPL.US\"`"}},"option_volume_daily":{"title":"期權成交量（日度）","description":"獲取美股逐日期權成交量歷史，返回 items[]{date, call_volume, put_volume, put_call_vol_ratio, call_oi, put_oi, put_call_oi_ratio}","properties":{"symbol":"標的代碼（僅美股），例如 `\"AAPL.US\"`","count":"返回的交易日數量（預設 20）"}},"participants":{"title":"市場參與者","description":"獲取港股市場參與者（券商）信息，返回 participants[]{broker_ids[], name_en, name_cn, name_hk}，用於解析經紀商隊列數據"},"quote":{"title":"行情快照","description":"獲取最新行情快照，返回各標的：last_done（最新價）, prev_close（昨收）, open（開盤價）, high/low（最高/最低價）, volume（成交量）, turnover（成交額）, change_rate, change_value, trade_status, timestamp","properties":{"symbols":"證券代碼，例如 `[\"700.HK\", \"AAPL.US\"]`"}},"shareholder":{"title":"機構股東","description":"獲取證券的機構股東信息，返回 shareholders[]{institution, shares, ratio, change, change_type, reported_at}","properties":{"symbol":"證券代碼，例如 `\"700.HK\"`。請用規範代碼，補零的代碼（如 \"00700.HK\"）會返回空記錄而非報錯"}},"sharelist_add":{"title":"加入分享股單","description":"向社區分享股單中添加證券。symbols 為股票代碼列表（如 [\"AAPL.US\"]），id 為股單 ID。成功返回更新後的股單。","properties":{"id":"分享股單 ID","symbols":"證券代碼，例如 `[\"AAPL.US\", \"700.HK\"]`"}},"sharelist_create":{"title":"創建分享股單","description":"新建社區分享股單，返回創建的股單對象（含 id、name、description）","properties":{"name":"股單名稱（若未傳 `description`，名稱同時作為描述）","description":"股單描述，省略時預設與 `name` 相同"}},"sharelist_delete":{"title":"刪除分享股單","description":"按 id 刪除自建社區分享股單（已訂閱他人的股單不可刪除）","properties":{"id":"分享股單 ID"}},"sharelist_detail":{"title":"分享股單詳情","description":"按 id 獲取社區分享股單詳情，返回 {id, name, description, constituents[]{symbol, name, last_done, change_rate}, 訂閱狀態}","properties":{"id":"分享股單 ID"}},"sharelist_list":{"title":"分享股單列表","description":"列出用戶自建及已訂閱的社區分享股單，返回 lists[]{id, name, description, symbol_count, is_owner, follower_count}","properties":{"count":"返回數量（預設 20）"}},"sharelist_popular":{"title":"熱門分享股單","description":"獲取熱門/流行社區分享股單，返回 lists[]{id, name, description, symbol_count, follower_count, creator}，按熱度排序","properties":{"count":"返回數量（預設 20）"}},"sharelist_remove":{"title":"移出分享股單","description":"從社區分享股單中移除指定證券。symbols 為要移除的股票代碼列表，id 為股單 ID。成功返回更新後的股單。","properties":{"id":"分享股單 ID","symbols":"證券代碼，例如 `[\"AAPL.US\", \"700.HK\"]`"}},"sharelist_sort":{"title":"分享股單排序","description":"調整社區分享股單中證券的排列順序（按目標順序傳入 symbols）","properties":{"id":"分享股單 ID","symbols":"證券代碼，例如 `[\"AAPL.US\", \"700.HK\"]`"}},"short_positions":{"title":"做空持倉","description":"獲取港股或美股的賣空持倉歷史（未平倉空頭頭寸）。市場由 symbol 後綴自動判斷。count: 1–100（預設20）。統一返回 data[]{timestamp(RFC3339), short_shares(空頭持倉股數), rate(小數比率 如0.009=0.9%), close}。僅美股：avg_daily_vol(日均成交量), days_to_cover(回補天數)。僅港股：balance(港元空頭餘額)。美股來源：FINRA 雙週報。港股來源：HKEX 每日。","properties":{"symbol":"證券代碼，如 AAPL.US（美股）或 700.HK（港股），市場由後綴自動判斷","count":"返回記錄數，1–100，預設 20"}},"static_info":{"title":"證券基礎信息","description":"獲取證券基礎信息，返回各標的：symbol, name_cn, name_en, exchange（如 NASDAQ）, type（如 US_Stock）, lot_size（每手股數）, listed_date, delisted。僅限美股賬戶：`.BKKT` 加密貨幣代碼（如 BTCUSD.BKKT）會路由到獨立的美股加密貨幣概覽接口；`.HAS`/`.OSL` 不受影響","properties":{"symbols":"證券代碼，例如 `[\"700.HK\", \"AAPL.US\"]`"}},"topic":{"title":"討論列表","description":"獲取證券相關的社區討論，返回 items[]{id, title, author, created_at, like_count, comment_count, content_summary}","properties":{"symbol":"證券代碼，例如 `\"700.HK\"`。請用規範代碼，補零的代碼（如 \"00700.HK\"）會返回空記錄而非報錯"}},"topic_create":{"title":"發佈討論","description":"發佈社區討論。topic_type=\"post\"（預設）為純文本；\"article\" 需非空 title，正文支援 Markdown","properties":{"title":"討論標題。`topic_type=\"article\"` 時必填，`\"post\"` 時可選","body":"討論正文。`post` 僅支援純文本，`article` 支援 Markdown","symbols":"相關證券代碼，例如 `[\"700.HK\", \"TSLA.US\"]`（最多 10 個）","topic_type":"討論類型：`post`（預設，純文本）或 `article`（Markdown，需 `title`）"}},"topic_create_reply":{"title":"發佈討論回覆","description":"對討論發表回覆。傳入 reply_to_id 表示樓中樓回覆，省略則為頂層回覆","properties":{"topic_id":"待回覆的討論 ID","body":"回覆正文（僅支援純文本）","reply_to_id":"可選的父回覆 ID，用於樓中樓回覆，從 `topic_replies` 獲取；省略則為頂層回覆"}},"topic_detail":{"title":"討論詳情","description":"按 topic_id 獲取討論詳情，返回 {id, title, content, author, created_at, like_count, comment_count, symbols[]}","properties":{"topic_id":"討論 ID"}},"topic_replies":{"title":"討論回覆","description":"分頁獲取討論的回覆（page 預設 1，size 預設 20，範圍 1-50）","properties":{"topic_id":"討論 ID","page":"頁碼（從 1 開始，預設 1）","size":"每頁條數（1-50，預設 20）"}},"trade_stats":{"title":"成交統計","description":"獲取成交統計（主動買/主動賣/中性盤成交量分佈），返回 items[]{price_range, buy_volume, sell_volume, neutral_volume}","properties":{"symbol":"證券代碼，例如 `\"700.HK\"`。請用規範代碼，補零的代碼（如 \"00700.HK\"）會返回空記錄而非報錯"}},"trades":{"title":"最近成交","description":"獲取最近逐筆成交（最多 1000 條），返回 trades[]{price, volume, timestamp, trade_type, direction}","properties":{"symbol":"證券代碼","count":"返回的最大條數（最多 1000）"}},"trading_days":{"title":"交易日列表","description":"獲取指定市場在日期區間內的交易日，返回 trading_days[] 和 half_trading_days[]（格式 yyyy-mm-dd）","properties":{"market":"市場代碼：HK、US、CN、SG","start":"起始日期（`yyyy-mm-dd`）","end":"結束日期（`yyyy-mm-dd`）"}},"trading_session":{"title":"交易時段","description":"獲取所有市場的交易時段安排，返回 market_sessions[]{market, trade_sessions[]{beg_time, end_time, trade_session_type}}"},"valuation":{"title":"估值","description":"獲取估值概覽及同業對比，返回 metrics.pe/pb/ps/dividend_yield{current, industry_avg, 5yr_avg, percentile} 及同業對比列表。美股賬戶查詢 `.US` 標的會得到美股專屬變體（ai_summary + 字段不同的 metrics.pe）。區域由賬戶自動識別","properties":{"symbol":"證券代碼，例如 `\"700.HK\"`。請用規範代碼，補零的代碼（如 \"00700.HK\"）會返回空記錄而非報錯"}},"valuation_history":{"title":"估值歷史","description":"獲取詳細估值歷史時間序列，返回 history.metrics{pe/pb/ps/dividend_yield}[]{timestamp, value}，用於長期分位分析","properties":{"symbol":"證券代碼，例如 `\"700.HK\"`。請用規範代碼，補零的代碼（如 \"00700.HK\"）會返回空記錄而非報錯"}},"warrant_issuers":{"title":"權證發行商","description":"獲取港股窩輪/牛熊證發行商信息，返回 issuers[]{id, name_en, name_cn}，id 可用於 warrant_list 的發行商篩選"},"warrant_list":{"title":"權證列表","description":"按條件篩選標的的窩輪/牛熊證列表，返回 warrants[]{symbol, name, last_done, change_rate, implied_volatility, expiry_date, strike_price, leverage_ratio, outstanding_ratio}","properties":{"symbol":"標的代碼，例如 `\"700.HK\"`","sort_by":"排序字段：`LastDone`、`ChangeRate`、`ChangeValue`、`Volume`、`Turnover`、`ExpiryDate`、`StrikePrice`、`UpperStrikePrice`、`LowerStrikePrice`、`OutstandingQuantity`、`OutstandingRatio`、`Premium`、`ItmOtm`、`ImpliedVolatility`、`Delta`","sort_order":"排序方向：`Ascending`（升序）或 `Descending`（降序）","warrant_type":"按品種篩選（可選）：`Call`（認購證）、`Put`（認沽證）、`Bull`（牛證）、`Bear`（熊證）、`Inline`（界內證）","issuer":"按發行商 ID 篩選（可選），`issuer_id` 來自 `warrant_issuers`","expiry_date":"按到期時段篩選（可選）：`LT_3`（<3 個月）、`Between_3_6`（3-6 個月）、`Between_6_12`（6-12 個月）、`GT_12`（>12 個月）","price_type":"按界內 / 界外篩選（可選）：`In`（界內）、`Out`（界外），僅適用於界內證","status":"按狀態篩選（可選）：`Suspend`（停牌）、`PrepareList`（待上市）、`Normal`（正常交易）"}},"warrant_quote":{"title":"權證報價","description":"獲取窩輪/牛熊證行情，返回各標的：last_done（最新價）, prev_close, open, high, low, volume（成交量）, turnover（成交額）, implied_volatility（隱含波動率）, delta, leverage_ratio, effective_leverage","properties":{"symbols":"證券代碼，例如 `[\"700.HK\", \"AAPL.US\"]`"}},"quant_run":{"title":"量化指標腳本運行","description":"在服務端對歷史 K 線數據運行量化指標腳本，以 JSON 形式返回計算的指標/繪圖值。週期：1m/5m/15m/30m/1h/day/week/month/year（預設 day）；input 為 JSON 數組，順序需與腳本中 input.*() 調用一致","properties":{"symbol":"證券代碼，`<CODE>.<MARKET>` 格式，例如 `TSLA.US`、`700.HK`","period":"K 線週期：`1m`、`5m`、`15m`、`30m`、`1h`、`day`、`week`、`month`、`year`（預設 `day`）","start":"K 線區間起始日期（YYYY-MM-DD）","end":"K 線區間結束日期（YYYY-MM-DD）","script":"指標腳本源代碼","input":"腳本輸入參數（JSON 數組字符串），順序需與腳本中 `input.*()` 調用一致，例如 `\"[14,2.0]\"`"}},"news_search":{"title":"新聞搜尋","description":"按關鍵詞搜尋新聞文章，返回 news_list[]{id, title, description, source_name, publish_at（RFC3339 時間格式）, score}","properties":{"keyword":"搜尋關鍵詞","limit":"最多返回條數（預設 20）"}},"topic_search":{"title":"社區話題搜尋","description":"按關鍵詞搜尋社區帖子/話題，返回 id、作者、時間及摘要","properties":{"keyword":"搜尋關鍵詞","limit":"最多返回條數（預設 20）"}},"financial_statement":{"title":"財務報表","description":"獲取證券財務報表（損益表/資產負債表/現金流量表）。kind：IS/BS/CF/ALL（預設）；report：af（年報，預設）/saf（半年報）/qf（季報）/q1/q2/q3。美股賬戶查詢 `.US` 標的時會路由到專屬美股報表接口（report 詞彙表與通用接口相同；kind=ALL/預設會拆成 IS+BS+CF 三次請求合併返回 {income_statement, balance_sheet, cash_flow}，因為後端不支持合併請求），其餘組合走通用接口","properties":{"symbol":"證券代碼，例如 `\"AAPL.US\"`","kind":"報表類型：`IS`（損益表）、`BS`（資產負債表）、`CF`（現金流量表）、`ALL`（全部，預設）","report":"報告期：`af`（年報）、`saf`（半年報）、`qf`（季報）、`q1`/`q2`/`q3`"}},"financial_report_latest":{"title":"最新財務報告","description":"獲取證券最新財務報告摘要，返回 {period, revenue, net_income, eps, roe, gross_margin, report_date} 等主要財務指標","properties":{"symbol":"證券代碼，例如 `\"AAPL.US\"`"}},"valuation_rank":{"title":"估值分位","description":"獲取證券在指定日期區間內每日估值分位（PE/PB/PS/股息率行業百分位）。start/end 格式：yyyymmdd","properties":{"symbol":"證券代碼，例如 `\"AAPL.US\"`","start":"起始日期，yyyymmdd 格式（預設近 30 天）","end":"結束日期，yyyymmdd 格式（預設今日）"}},"institution_rating_history":{"title":"機構評級歷史","description":"獲取機構評級歷史，返回 target_history[]{firm, analyst, old_target, new_target, date} 及 evaluate_history[]{firm, old_rating, new_rating, date}","properties":{"symbol":"證券代碼，例如 `\"AAPL.US\"`"}},"institution_rating_industry_rank":{"title":"機構評級行業排名","description":"獲取同行業各證券的機構評級排名對比，返回 list[]{symbol, name, buy_count, sell_count, consensus_rating, target_price}，支援分頁","properties":{"symbol":"證券代碼，例如 `\"AAPL.US\"`","page":"頁碼（預設 1）","size":"每頁條數（預設 20）"}},"short_margin":{"title":"沽空保證金","description":"獲取當前帳戶沽空保證金存款明細，返回各空頭持倉的 margin_amount、margin_rate、interest_rate、symbol、quantity"},"bank_cards":{"title":"綁定銀行卡","description":"列出當前帳戶綁定的提款銀行卡，返回 cards[]{id, bank_name, account_number（脫敏）, currency, status}"},"withdrawals":{"title":"提款記錄","description":"獲取當前帳戶提款歷史，返回 items[]{id, amount, currency, status, created_at, bank_name, account_number（脫敏）}","properties":{"page":"頁碼（預設 1）","size":"每頁條數（預設 20）"}},"deposits":{"title":"入款記錄","description":"獲取當前帳戶入款歷史，返回 items[]{id, amount, currency, status, created_at, updated_at}。states：逗號分隔的狀態（Pending/Finished/Failed）；currencies：逗號分隔的貨幣代碼","properties":{"page":"頁碼（預設 1）","size":"每頁條數（預設 20）","states":"入款狀態過濾（逗號分隔）","currencies":"貨幣代碼過濾（逗號分隔），例如 `\"USD,HKD\"`"}},"ipo_subscriptions":{"title":"IPO 認購列表","description":"列出港股和美股當前處於認購/預申請階段的 IPO，返回 items[]{symbol, name, market, sub_start_date, sub_end_date, listing_date, issue_price, min_lot_size}"},"ipo_calendar":{"title":"IPO 日曆","description":"顯示 IPO 日曆，返回 items[]{symbol, name, market, sub_start_date, sub_end_date, listing_date, status}，含即將上市及近期已上市的 IPO"},"ipo_listed":{"title":"IPO 已上市列表","description":"列出港股和美股近期已上市的 IPO，返回 items[]{symbol, name, listing_date, issue_price, first_day_close, first_day_return, volume, market}","properties":{"page":"頁碼（預設 1）","size":"每頁條數（預設 20）"}},"ipo_detail":{"title":"IPO 詳情","description":"查看 IPO 詳情，返回 profile（業務簡介）、timeline[]{event, date}、認購資格（eligibility）、pricing_range、lot_size、配股規則","properties":{"symbol":"證券代碼，例如 `\"6871.HK\"` 或 `\"ARM.US\"`","market":"市場：`HK` 或 `US`（預設根據代碼後綴推斷）"}},"ipo_orders":{"title":"IPO 訂單列表","description":"列出當前帳戶的 IPO 訂單（有效和歷史），返回 orders[]{order_id, symbol, market, quantity, total_amount, status, submitted_at}，可按 symbol/market/status 過濾","properties":{"symbol":"按證券代碼過濾，例如 `\"6871.HK\"`","market":"按市場過濾：`HK` 或 `US`","status":"按訂單狀態過濾","page":"頁碼（預設 1）","size":"每頁條數（預設 20）"}},"ipo_order_detail":{"title":"IPO 訂單詳情","description":"按 order_id 查看 IPO 訂單詳細信息，返回 {order_id, symbol, market, quantity, allotted_quantity, total_amount, status, submitted_at}","properties":{"order_id":"IPO 訂單 ID"}},"ipo_profit_loss":{"title":"IPO 盈虧","description":"查看帳戶 IPO 打新盈虧彙總及逐筆明細，返回 {total_cost, total_value, total_return, items[]{symbol, cost, current_value, return_rate}}。period：all/ytd/1y/3y","properties":{"period":"時間範圍：`all`（全部，預設）、`ytd`（今年）、`1y`（近一年）、`3y`（近三年）","page":"頁碼（預設 1）","size":"每頁條數（預設 20）"}},"business_segments":{"title":"主營業務分部","description":"獲取當期主營業務分部營收佔比快照，返回各分部名稱、佔比、總營收及貨幣單位","properties":{"symbol":"證券代碼，例如 `\"AAPL.US\"`"}},"business_segments_history":{"title":"主營業務分部歷史","description":"獲取主營業務分部營收歷史趨勢，返回 historical[]{date, total, currency, business[{name, percent, value}], regionals[{name, percent, value}]}","properties":{"symbol":"證券代碼，例如 `\"AAPL.US\"`","report":"報告期：`qf`（季報）、`saf`（中報）、`af`（年報）"}},"institutional_views":{"title":"機構觀點月度時序","description":"獲取機構評級月度分佈時序，返回 months[]{date, buy, outperform, hold, underperform, sell, total}，用於評級趨勢分析","properties":{"symbol":"證券代碼，例如 `\"AAPL.US\"`"}},"industry_rank":{"title":"行業排行榜","description":"按市場（US/HK/CN/SG）和指標排列行業。indicator：0=領漲 1=今日走勢 2=人氣 3=市值 4=營收 5=營收增長率 6=淨利潤 7=淨利潤增長率。sort_type：0=單級 1=多層。返回 items[]{symbol（如 IN00258.US）, name, chg, lists[]}，可將某行的 symbol 直接傳入 industry_peers","properties":{"market":"市場代碼：US、HK、CN、SG","indicator":"排列指標：0=領漲、1=今日走勢、2=人氣、3=市值、4=營收、5=營收增長率、6=淨利潤、7=淨利潤增長率","sort_type":"排序類型：0=單級、1=多層"}},"industry_peers":{"title":"行業同業分組樹","description":"獲取行業分組的層級同業樹，接受來自 industry_rank 的行業 symbol（如 IN00258.US），返回 chain{name, symbol, stock_num, chg, ytd_chg, next[...]} 和 top{name, market}","properties":{"symbol":"來自 industry_rank 的行業 symbol，例如 `\"IN00258.US\"`；也接受 BK counter_id 形式（`\"BK/US/IN00258\"`）"}},"financial_report_snapshot":{"title":"財報快照","description":"獲取財報快照：report_desc（文字摘要）、fo_revenue/fo_ebit/fo_eps（實際 vs 預期，含同比/超預期描述）、fr_* 財務比率（ROE、利潤率、資產負債、現金流）。report：qf/saf/af","properties":{"symbol":"證券代碼，例如 `\"AAPL.US\"`","report":"報告期：`qf`（季報）、`saf`（半年報）、`af`（年報）"}},"shareholder_top":{"title":"Top20 大股東","description":"獲取前20大股東（機構、個人、內部人士）的多期持倉資訊。返回 info[]{period, share_holders[]{object_id, name, title, shares_held, percent_shares_held, shares_changed, filing_date}}。用 object_id 傳入 shareholder_detail 查看該股東的完整交易記錄。","properties":{"symbol":"證券代碼，如 AAPL.US"}},"shareholder_detail":{"title":"股東持倉詳情","description":"獲取指定股東的持倉歷史與交易明細。需要來自 shareholder_top 的 object_id。返回 name, owner_source（Company/Institution/Person/Insider）, tradings[]{period, accum_buy, accum_sell, net_buy, trading_details[]{trading_date, trading_type, trading_shares, trading_price, security_type, filing_date}}, holding_summary, holding_periods, trading_periods。注意：機構股東（13F申報）的 trading_details[] 為空，僅個人/內部人（Form 4）有交易明細。","properties":{"symbol":"證券代碼，如 AAPL.US","object_id":"股東 object_id，來自 shareholder_top 返回的數據"}},"valuation_comparison":{"title":"多股股票對比","description":"股票估值對比。模式A（單股）：只傳 symbol，服務端自動返回該股票及同行業推薦對標股。模式B（多股）：傳 symbol 作為主股 + comparison_symbols（逗號分隔，如 'MSFT.US,GOOGL.US'）進行指定股票對比。currency: USD/HKD/CNY。返回 list[]{symbol, name, market_value, price_close, pe, pb, ps, history[]{date, pe, pb, ps}}。","properties":{"symbol":"要比較的證券代碼，如 AAPL.US","currency":"貨幣單位：USD/HKD/CNY","comparison_symbols":"對比標的，逗號分隔，最多 4 個，如 MSFT.US,GOOGL.US"}},"screener_strategy":{"title":"策略詳情","description":"執行前查看策略的篩選條件詳情。返回 market, filter{filters[]{key, min, max, tech_values}}。如需直接執行策略，使用 screener_search 的 strategy_id 參數。","properties":{"id":"策略 ID，來自 screener_recommend_strategies 或 screener_user_strategies 的 screeners[].id"}},"screener_search":{"title":"策略選股","description":"執行選股查詢。market: US|HK|CN|SG（模式B必填；模式A使用策略內建市場）。模式A：傳 strategy_id（來自 screener_recommend_strategies）自動執行策略。模式B：conditions=[{\"key\":\"KEY\",\"min\":\"10\",\"max\":\"50\",\"tech_values\":{}},...] 直接透傳給 API。 extra_returns=[\"key\",...] 追加展示欄；sort_by_key 指定排序欄位；sort_order: asc|desc（預設 desc）；page: 從0開始（預設0）。返回 {total, items[]{symbol, name, indicators[]{key, name, value, unit}}}，每條結果預設包含 prevclose、prevchg、marketcap、salesgrowthyoy、pettm、pbmrq、industry 七欄。基本面 key：pettm pbmrq roe roa netmargin salesgrowthyoy netincomegrowthyoy marketcap(億) circulating_marketcap(億) prevclose prevchg(%) divyld la epsttm netincome(億) sales(億) turnover_rate balance(萬)。技術 key（tech_values 見 screener_indicators）：macd_day/week rsi_day/week kdj_day/week boll_day/week。注意：key 由平台動態維護，不確定時先調 screener_indicators 確認。","properties":{"market":"市場：US/HK/CN/SG。模式B必填；模式A可不傳（策略已內建市場）"}},"screener_indicators":{"title":"選股指標配置","description":"獲取全部可用選股指標的 key、單位和預設值域。技術指標（MACD/RSI/KDJ/BOLL）含 tech_values 欄位，列出可選參數值（如 macd_day 的 category: goldenfork/deadcross/upzero）。可選 symbol（如 AAPL.US）過濾特定股票的指標。返回 groups[]{group_name, indicators[]{id, key, name, unit, default_range{min,max}, tech_values?{param:[{value,label},...]}}}。","properties":{"symbol":"可選證券代碼，用於篩選該股票支援的指標，如 AAPL.US"}},"screener_recommend_strategies":{"title":"平台預設選股策略","description":"獲取平台預設的選股策略列表。market: US|HK|CN|SG（預設 US）。返回 strategys[]{id, name, description, market, three_months_chg, risk}。將 id 傳入 screener_search 的 strategy_id 可直接執行該策略；傳入 screener_strategy 可查看策略的篩選條件。"},"screener_user_strategies":{"title":"我的選股策略","description":"獲取當前用戶已儲存的選股策略列表。market: US|HK|CN|SG（預設 US）。返回 strategys[]{id, name, description, market, three_months_chg, risk}。將 id 傳入 screener_search 的 strategy_id 可直接執行該策略；傳入 screener_strategy 可查看策略的篩選條件。","properties":{"market":"市場篩選：US/HK/CN/SG，預設 US"}},"top_movers":{"title":"熱股異動","description":"獲取價格波動超過近20日標準差的異動股票及關聯新聞原因。markets: 逗號分隔的 HK/US/CN/SG（不傳 = 全市場）。sort: 0=時間 1=漲跌幅 2=熱度（預設）。limit: 每頁數量（預設20）。next_params: 分頁游標，傳上一次返回的 next_params 物件。返回 events[]{timestamp(RFC3339), alert_reason, alert_type, stock{symbol, name, change(小數如0.0445=+4.45%), last_done, labels[], intro}}, updated_at, next_params。","properties":{"markets":"市場篩選，逗號分隔，支援 HK/US/CN/SG，不傳返回全市場","sort":"排序方式：0=按時間（最新優先）1=按漲跌幅（幅度最大優先）2=按熱度（預設）","date":"查詢日期，格式 YYYY-MM-DD，不傳預設今日","limit":"每頁返回數量，預設 20，最多 100","next_params":"翻頁游標，將上一次回應的 next_params 原樣傳入即可取得下一頁，首頁不傳"}},"rank_categories":{"title":"熱度榜分類配置","description":"獲取熱度排行榜的分類配置。返回 first_tags[]{key, name, second_tags[]{key, name, market}}。將 second_tags[].key（如 hot_all-us）傳入 rank_list 獲取對應榜單。"},"rank_list":{"title":"熱度榜股票列表","description":"按熱度榜 key 獲取股票排名列表。key 來自 rank_categories 的 second_tags[].key（如 hot_all-us、hot_up-hk、trade_heat-us）。market: 從 key 後綴推斷或顯式傳入。size: 返回數量（預設 20）。返回 lists[]{symbol, name, last_done, chg(小數), inflow, market_cap, pre_post_price, pre_post_chg, amplitude, turnover_rate, volume_rate, five_day_chg, ten_day_chg, twenty_day_chg, this_year_chg, industry, intro}, updated_at。","properties":{"key":"榜單 key，來自 rank_categories 的 second_tags[].key，如 hot_all-us、hot_up-hk","market":"市場覆蓋：US/HK/CN/SG，預設從 key 後綴推斷","size":"返回數量，預設 20","need_article":"是否返回關聯新聞，預設 false"}},"short_trades":{"title":"做空成交","description":"獲取港股或美股的每日賣空成交量歷史。市場由 symbol 後綴自動判斷。last_timestamp: Unix 秒（不傳則取最新）。page_size: 1–100（預設20）。統一返回 data[]{timestamp(RFC3339), short_vol(當日賣空股數), rate(小數比率 如0.36=36%), close}。僅美股：nasdaq_vol(納斯達克賣空量), nyse_vol(紐交所賣空量)。僅港股：balance(港元), market_vol(當日市場總成交量)。美股來源：FINRA/NASDAQ。港股來源：HKEX。","properties":{"symbol":"證券代碼，如 AAPL.US（美股）或 700.HK（港股），市場由後綴自動判斷","last_timestamp":"查詢截止時間戳（秒），傳當前時間戳取得最新數據","page_size":"每頁數量，1–100，預設 20"}},"authenticate":{"title":"授權認證","description":"當你尚未取得長橋憑據時使用（例如客戶端無法完成瀏覽器 OAuth 流程）。用戶在 https://open.longbridge.cn/connect 生成一次性授權碼並貼給你，將其作為 `auth_code` 傳入。成功後服務端會返回存取權杖，請在後續請求中作為 Bearer 憑據使用，即可解鎖全部工具。若你未授權且用戶尚未提供授權碼，請引導其前往 https://open.longbridge.cn/connect 生成。","properties":{"auth_code":"用戶在 https://open.longbridge.cn/connect 生成的一次性 OAuth 授權碼，5 分鐘內有效且僅可使用一次。"}},"signals":{"title":"策略訊號","description":"查詢策略訊號 —— 策略基於催化劑對某隻證券給出的判斷。支援按股票代碼、策略、催化劑和時間範圍篩選，用 limit/offset 分頁。返回標題、摘要、看法與保守/基準/樂觀目標價，以及用於翻頁的 total。完整策略分析請用 signal_detail 取得","properties":{"symbol_name":"按證券代碼篩選，例如 `AAPL.US` 或 `700.HK`；省略則返回全部股票","strategy_id":"按策略 id 篩選，例如 buffett-value。優先於已廢棄的 strategy_name，兩者同時傳入時以此為準","strategy_name":"按策略名稱篩選；省略則返回全部策略的命中結果","catalyst_name":"按觸發訊號的因子名稱篩選，例如 `EARNINGS_RELEASED`、`macd_12_26_9`——不是回傳結果裡 `key_catalyst` 的展示文案；省略則不限","catalyst_type":"按觸發訊號的催化劑類型篩選，例如 News、Fundamental、Technical；省略則不限催化劑類型","start_time":"篩選此時間之後創建的命中記錄，ISO 8601 帶時區格式，例如 2024-01-15T10:30:00Z；省略則不限下限","end_time":"篩選此時間之前創建的命中記錄，ISO 8601 帶時區格式；省略則不限上限","limit":"返回結果數量上限，預設 20","offset":"分頁跳過的條數，預設 0"}},"signal_detail":{"title":"訊號詳情","description":"按 ID 取得單條訊號（ID 來自 signals）。欄位與列表一致，另含 analysis —— 完整策略分析：契合度評分、估值情景、證據來源與相關事實 ID","properties":{"signal_id":"訊號 ID，例如 sign_992_1a00c9425c3_48ab，可從 signals 取得"}},"security_facts":{"title":"證券事實（催化劑）","description":"查詢指定證券的事實事件列表 —— 異動偵測、因子資訊、資料來源及自然語言摘要，支援按時間範圍和數量上限篩選。事實是策略的觸發源：訊號的 key_fact_id 即指向觸發它的事實","properties":{"symbol":"要查詢的證券代碼，例如 `AAPL.US` 或 `700.HK`","begin_time":"查詢起始時間，UTC 時區，格式為 2006-01-02T15:04:05Z；留空則從最早可用資料開始","end_time":"查詢結束時間，UTC 時區，格式為 2006-01-02T15:04:05Z；留空則返回最新資料","limit":"返回事實數量上限。時間範圍內的事實超出該上限時，僅返回最新的 limit 條。預設 100"}}},"scopes":{"Watchlist":{"name":"自選列表","description":"用於管理用戶的自選列表（獲取/創建/更新/刪除），並支持查詢指定自選列表包含的標的清單以便展示與維護。"},"Account & Positions":{"name":"賬戶資產與資金明細查詢","description":"提供賬戶資產與資金相關信息的查詢能力，包含基金持倉、股票持倉、賬戶現金/資金信息，以及資金流水歷史明細，用於資產總覽、持倉展示與賬務對賬分析。"},"Trade Order Lookup":{"name":"交易查詢","description":"覆蓋下單後的訂單生命週期與執行能力，包括訂單詳情與當日/歷史訂單查詢，以及當日/歷史成交回報查詢，並提供下單前的最大可買數量預估。"},"Trade Execution":{"name":"交易下單","description":"執行交易，下單，撤單等功能，以及定投下單。"},"General":{"name":"通用","description":"通用工具，覆蓋市場數據、行情、基本面、提醒、定投、股單、IPO 及社區內容。"}}}}}