Trade Modal(交易弹窗)
Trade Modal 是全局下单弹窗,从聊天卡片、资产详情页、自选列表和通知中均可打开。
入口:弹窗 本身没有 URL。它会在任何触发点上以全局对话框形式覆盖在当前页面之上。
1. 它是什么
Trade Modal 是 Alphio 在三条 trade rails 上共用的同一个下单表单。它由全局 store(useTradeModalStore)维护当前 ticker、symbolType 和 locale,任何页面都可以在不跳转的情况下打开它。
这种设计带来几个直接后果:
- 你可以从任意位置打开(聊天、自选、详情页、通知),原页面不会丢失。
- 它从
symbolType推断标的类别(Stock / ETF / Crypto / Metals / Forex / Hyperliquid),并渲染对应表单(股票 / 永续 / 预测事件)。 - 关闭弹窗不会触发导航,底层页面也不会被卸载。
2. 入口
Trade Modal 可从四类入口打开:
- 聊天卡片。 Alphio AI 在对话里返回股票 / 加密货币 / ETF / 事件卡片时,卡片上的 Trade 或 Buy / Sell 按钮会调用
openTradeModal(ticker, symbolType, locale)。 - 资产详情页。 每个受支持的详情页(
/stock/:symbol、/crypto/:symbol、/etf/:symbol、/stock-hk/:symbol、/forex/:symbol、/metals/:symbol、Hyperliquid 永续页、Polymarket 事件页)上的 Buy / Sell 或 Trade 按钮都会带着 symbol 预填打开弹窗。 - 自选列表行。 每一行自选都有一个交易按钮,点击即用该行 ticker 打开弹窗。
- 通知。 带有动作按钮的通知(信号告警、跟单触发等)可以直接拉起弹窗。
入口决定哪些字段会被预填,但所有入口都通向同一个弹窗。
3. 字段
Trade Modal 内部展示的字段取决于由 symbolType 推导出的轨道:
| 字段 | Stock / ETF | Hyperliquid 永续 | 预测事件 |
|---|---|---|---|
| 资产(Asset) | symbol(由调用方预填) | 永续 ticker(预填) | 事件 + 方向(YES / NO) |
| 方向(Side) | Buy / Sell | Long / Short | YES / NO |
| 数量(Amount) | 股数或美元金额 | 仓位规模(USDC) | 股数 |
| 杠杆(Leverage) | 不适用 | 杠杆选择器 | 不适用 |
| 价格类型(Price type) | Market / Limit / Stop / Stop-Limit | Market / Limit | Market / Limit(CLOB) |
| 有效期(Time-in-force) | Day / GTC | 不适用(永续) | 不适用(事件到期结算) |
弹窗会在发起任何网络请求前先做本地校验。除上表外更具体的轨道行为见对应深入文档(Stock Trading、Hyperliquid Perpetuals、Prediction Markets)。
4. 确认流程
Trade Modal 始终走 check → preview → submit → confirmation 流程,订单不会未经预览就发出去。
- Check(预检)。 弹窗先做本地校验;轨道支持时还会做一次预检(例如股票走 SnapTrade 的
check-equity-order-impact)。 - Preview(预览)。 弹窗显示预估成交价、手续费以及对余额 / 仓位的影响,等你确认。
- Submit(提交)。 你点击确认后,弹窗用已校验的 payload 调用对应轨道的下单接口。
- Confirmation(确认)。 弹窗展示订单状态(Pending / Filled / Rejected),订单同时出现在对应轨道的订单列表里。
提交成功后弹窗会自动关闭,订单出现在该轨道的订单列表中。
5. 取消
未提交直接关闭 Trade Modal 会清空 store(closeTradeModal)并丢弃表单。没有任何请求会发出,底层页面也不会受影响。
如果你已经提交了订单,取消要去对应轨道的订单列表 —— 不是从弹窗里:
- 股票订单:在券商账户页的 24-hour orders 列表里取消(见 Stock Trading)。
- Hyperliquid 永续订单:在永续仓位视图里取消。
- 预测订单:在 Polymarket 事件详情页里取消。
6. 限制
Trade Modal 有意不做的几件事:
- 没有 URL。 弹窗没有自己的路由,无法直接链接到"Trade Modal"。请链接到能打开它的资产详情页或聊天卡片。
- 一次一个标的。 弹窗只处理单个 ticker,不支持批量 / 多腿订单。
- 不支持改单。 如要改已有订单的价格或数量,请到对应轨道的订单列表先取消,再用弹窗重新下一笔。
- 轨道前置条件仍然要满足。 弹窗本身不管连接状态都能打开,但提交股票订单需要已连接券商,永续订单需要已绑定 Hyperliquid 钱包,预测订单需要 Polymarket 账户里有 USDC。前置条件缺失会在 Check 步骤报错。
弹窗根据调用方传入的 symbolType 渲染表单。如果调用方传入缺失或错误的 symbolType,弹窗可能会回退到股票表单。对最终用户通常无感,但接入新入口时需要注意。
If you need information not on this page, you can query the docs dynamically by sending a GET request with the ask query parameter:
GET https://docs.alphio.ai/zh/trade/trade-modal.md?ask=<question>The question should be specific, self-contained, and written in natural language. The response includes a direct answer plus relevant excerpts and sources.