拓十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

OpenAlice 交易执行指南:`alice-uta` CLI 的账户、合约、订单与交易即 Git 审批流

OpenAlice 交易执行指南:`alice-uta` CLI 的账户、合约、订单与交易即 Git 审批流 【免费下载链接】OpenAliceYour one-person Wall Street. An AI trading agent covering equities, crypto, commodities, forex, and macro — from research through position entry, ongoing management, to exit.项目地址https://gitcode.com/gh_mirrors/op/OpenAlice点击查看免费下载alice-uta是 OpenAlice 放在 shell PATH 上的交易专用可执行文件覆盖账户/组合读取、合约解析、报价、订单生命周期管理以及一套刻意模仿 git 语义的交易即 Git审批流。本文以 default/skills/alice-uta/SKILL.md 为骨架结合仓库源码CLI 导出映射、UTA 协议类型、SDK 与工具层给出每条命令的用法、边界与底层原理读完即可安全地查询持仓、下单、撤单并通过 commit→push 的人机审批链把交易送到券商。alice-uta从实现上看是 OpenAlice 的utaCLI 导出见 src/server/cli-commands.ts它以alice-uta为二进制名、作用域为global把account / contract / order / position / git / market / sim七个命令组逐 verb 映射到底层 UTA 工具如searchContracts、placeOrder、tradingStatus、tradingPush。因此本文中的每个alice-uta group verb调用最终都会落到src/tool/trading.ts中同名工具的执行逻辑上。一、先分清哪些命令只读哪些命令会动交易状态在动手之前先建立安全边界。alice-uta的命令分为两类这也是 SKILL.md 开篇的警告只读、不改变券商状态账户、组合、合约、报价、市场时钟、历史记录。包括account list / info / portfolio、contract search / details / quote / expand / option-contracts / option-chain / order-book、market clock、order list / history / trades。可能改变交易状态订单写入、平仓、审批流命令与模拟器。包括order place / modify / cancel、position close、git commit / push / reject / sync、sim price-change。执行前必须先看对应 verb 的实时帮助并且只执行用户指令实际覆盖的操作。从协议层看这种区分同样体现在 packages/uta-protocol/src/types/broker.ts 与 packages/uta-protocol/src/types/git.ts 中读操作返回的是账户信息、报价、历史等查询结果而写操作下单、平仓、撤单被建模为 git 风格的操作记录必须经过 commit/push 审批阶段才会真正送达券商。二、发现优先先看帮助不要猜参数技能的第一原则是发现而非猜测Discover, dont guessalice-uta --help # 查看所有命令组 alice-uta group verb --help # 查看某个 verb 的 flags以及哪些是必填的在任务中第一次执行 UTA 命令之前先读本文档如果命令被拒绝就按 CLI 提示的建议命令重试或先运行对应 verb 的--help不要凭印象编造位置参数如账户 id或臆造--account、--query、--symbols之类的 flag。这个约定在源码中也有对应约束src/server/cli-commands.ts 的resolveCommand把导出、命令组、verb三元组精确映射到底层工具名因此命令面完全由 manifest 决定猜测别名必然失败。三、常用只读操作账户与组合alice-uta account list # 列出所有交易账户UTA id alice-uta account info --source account-id # 单个账户的详情 alice-uta account portfolio # 所有交易账户的组合 alice-uta account portfolio --source account-id # 单个账户的组合 alice-uta account portfolio --source account-id --symbol AAPL # 单个标的的持仓关键约束--source接受的是account list返回的账户 id——它不是--account也不是券商原生的账号数字。源码层面命令组的映射在 src/server/cli-commands.tsaccount list → listUTAs、account info → getAccount、account portfolio → getPortfolio这些工具最终通过 src/services/uta-client/UTAAccountSDK.ts 以 HTTP 方式访问同址部署的 UTA 服务例如GET /api/trading/uta/:id/portfolio一类的路由SDK 本身只是UnifiedTradingAccount公开接口的 HTTP 适配层。四、合约解析是下单的前置步骤任何报价与下单之前必须先用券商解析出合约的原生身份绝不能凭 symbol 猜。标准链路是 search → details → quotealice-uta contract search --source account-id --pattern AAPL alice-uta contract details --source account-id --alice-id alice-id-from-search alice-uta contract quote --alice-id alice-id-from-search要点合约搜索用的是--pattern不是--query。quote一次只接受一个券商已解析的--alice-id多合约就重复执行命令不要发明--symbolsflag。quote 会从aliceId的前缀推断账户所以不需要--source。aliceId值必须用引号包裹因为它包含|字符shell 会把它当作管道符解释。合约搜索可能返回的是目录而非可交易叶子例如期权链、期货月、债券发行方这类 hub下单/报价前需要先展开alice-uta contract expand --help # 展开目录式结果链、族源码佐证packages/uta-protocol/src/brokers/preset-catalog.ts 定义了ccxt / alpaca / ibkr / leverup / longbridge / mock六类券商引擎而 src/services/uta-client/UTAAccountSDK.ts 展示了searchContracts的实现细节搜索路由是跨账户聚合的/api/trading/contracts/search返回扁平行、每行带source标签SDK 会过滤出属于本账户的结果并剥离source字段。aliceId的格式约定可见 src/tool/trading.tsaccountId|nativeKey这正是从aliceId前缀推断账户的由来。4.1 券商研究期权定义、期权链与订单簿contract组还提供了三个研究类 verb源码映射见 src/server/cli-commands.tsalice-uta contract option-contracts --help # 分页的期权定义与 dated 未平仓量 alice-uta contract option-chain --help # 分页的期权快照含 IV/Greeks alice-uta contract order-book --help # 订单簿深度Alpaca 加密币与 CCXT协议层面的过滤条件定义在 packages/uta-protocol/src/broker-research.tsoptionResearchSchemaaliceId必填来自contract search的标的 aliceIdexpiration/expirationFrom/expirationTo日期过滤YYYY-MM-DDrightcall或putstrikeMin/strikeMax非负数的行权价范围limit1–1000 的分页大小pageToken继续翻页时保持相同的过滤条件并传入返回的nextPageTokenfeedindicative默认或opra。默认的 indicative 行情包含修改过的报价和延迟成交需要结合观测时间戳使用不能当作可执行的 OPRA 数据OPRA 需要交易所授权。orderBookSchema则接受aliceId与limit1–100。需要特别提醒的是目前只有Alpaca支持期权读取且期权读取不代表具备期权交易权限。另外 Alpaca 加密币使用CRYPTO合约、支持 GTC 或 IOC 订单其股票市场时钟并不能描述 24/7 的加密币会话。五、下单、改单与撤单alice-uta order place --help # 下单前检查每一个 flag alice-uta order modify --help # 修改工作订单 alice-uta order cancel --help # 撤销工作订单 alice-uta order list # 工作订单列表 alice-uta order history --help # 订单记录 alice-uta order trades --help # 成交fills规则每次订单操作的结果都必须向用户报告——订单 id、状态、你做了什么。券商账户里出现意外是不可接受的。源码层面order place → placeOrder、order modify → modifyOrder、order cancel → cancelOrdersrc/server/cli-commands.ts而placeOrder工具的完整参数可见 src/tool/trading.ts要点包括orderType枚举MKT需totalQuantity或cashQty、LMT需totalQuantity lmtPrice、STP需totalQuantity auxPrice、STP LMT需totalQuantity auxPrice lmtPrice、TRAIL/TRAIL LIMIT需totalQuantity auxPrice或trailingPercent、MOC需totalQuantitytif枚举DAY默认、GTC、IOC、FOK、OPG、GTD需配合goodTillDate可附加takeProfit/stopLoss自动退出订单以及ocaGroup、parentId、outsideRth、subAccountId等所有价格与数量都要求以十进制字符串传入如0.001以保证 satoshi 级精度不丢失——这与 packages/uta-protocol/src/types/git.ts 中所有货币字段用字符串存储以规避 IEEE 754 伪影的约定一致。closePosition的参数在 src/tool/trading.tsqty省略即平掉全部仓位多钱包券商如 Binance 的spot/derivatives必须显式传subAccountIdUTA 层对多子账户的写入会响亮拒绝而不猜测。六、平仓alice-uta position close --help # 平掉一个仓位部分或全部持仓的查看属于account portfolioposition 组只有 close 一个 verb这一点在 src/server/cli-commands.ts 有明确注释。七、交易即 GitOpenAlice 的交易审批流git组是 OpenAlice 的交易审批流——每个 verb 刻意镜像 git 的语义alice-uta git status # 待提交 / 已暂存的交易状态类比 git status alice-uta git log # 历史类比 git log alice-uta git show --help # 查看某一条记录类比 git show alice-uta git commit --help # 批准 / 提交类比 git commit -m alice-uta git push --help # 把已提交的订单发送到券商类比 git push alice-uta git reject --help # 拒绝暂存的变更类比 git reset alice-uta git sync --help # 与券商对账类比 git pull源码映射在 src/server/cli-commands.tsgit status → tradingStatus、git commit → tradingCommit、git push → tradingPush、git reject → tradingReject、git sync → tradingSync工具实现与行为语义在 src/tool/trading.tsgit statustradingStatussrc/tool/trading.ts查看当前交易暂存区状态source省略时聚合所有账户。git committradingCommitsrc/tool/trading.ts带一条信息提交暂存的交易操作不会真正执行。git pushtradingPushsrc/tool/trading.ts最终的真实执行步骤。默认不执行——它返回待处理操作要求用户在 Web UI 的 Trading as Git 页面或账户详情页人工批准只有当运营者在 Settings → Agent Permissions 中开启了 Allow AI to push trades才会直接把已提交操作作为真实订单发给券商。如果存在已暂存但未提交的操作会明确报错并列出uncommitted。git rejecttradingRejectsrc/tool/trading.ts丢弃暂存以及已提交未 push的操作——是错误暂存的撤销不会向券商发任何东西拒绝会被记录到交易日志。git synctradingSyncsrc/tool/trading.ts从券商同步待处理订单状态delayMs0–30000市价单后建议 2000–5000用于等待交易所结算。协议层的数据模型在 packages/uta-protocol/src/types/git.tsOperation是带类型的判别联合placeOrder/modifyOrder/closePosition/cancelOrder/syncOrders/observeExternalOrder/reconcileBalancecommit hash 是 8 字符的短 SHA-256每次 commit 都会快照GitState净清算价值、总现金、浮动盈亏、持仓、待处理订单全部以字符串存储。值得注意的两个细节observeExternalOrder记录用户直接在交易所 App 下单这类 Alice 未发起的订单——同一轮扫描观测到的 N 个未追踪订单会被压成一个[observed]commitreconcileBalance处理券商报告的、Alice 未发起的余额变动首次启动对账、外部转账、质押奖励、平台外成交作为观测价格下的虚拟买入/卖出参与成本基准。测试侧src/workspaces/cli/shim.spec.ts 验证了这些行为的 CLI 契约包括alice-uta order place --help输出包含--commit-message-file path、以及通过文件传入 thesis 后placeOrder收到的commitMessage与文件内容完全一致。7.1 交易论点中的美元符号引号陷阱shell 会在双引号内展开$。任何包含货币的交易论点要么用单引号要么用文件版 flagalice-uta order place ... --commit-message Buy below $971 after support confirmation alice-uta order place ... --commit-message-file /path/to/thesis.txt绝不要把美元计价的论点放在双引号的--commit-message里$971到达 OpenAlice 时可能变成71。文件版字符串 flag 还接受-以从 stdin 读取当确切值已经以流的形式存在时。这个陷阱在 src/workspaces/cli/shim.spec.ts 有对应的端到端断言通过--commit-message-file传入Buy MU below $971 after support confirmation最终工具收到的commitMessage与原文逐字节一致。八、市场时钟与模拟器alice-uta market clock # 券商当前是否开市market clock → getMarketClock alice-uta sim price-change --help # 仅 MockBroker —— 移动模拟价格用于测试对真实券商是 no-opsim组映射到simulatePriceChangesrc/server/cli-commands.ts其输入输出模型在 packages/uta-protocol/src/types/git.tssymbol合约 aliceId、symbol或allchange88000绝对价格或10%/-5%相对变动返回当前状态与模拟后状态的对比权益、浮动盈亏、每个仓位的avgCost、marketPrice、simulatedPrice、pnlChange、priceChangePercent以及最坏情形worstCase。工具层在 src/tool/trading.ts 中标注为dry run, READ-ONLY模拟价格变动看组合影响。此外packages/uta-protocol/src/brokers/preset-catalog.ts 说明 MockBroker 是内存中的模拟券商真实资金、无交易所仓位与订单存在于进程内存开发服务器重启即全部清空——这正是sim price-change只对 MockBroker 生效的原因。九、这里没有的调度不在alice-uta中调度不在alice-uta里。周期性 / 无头headless的 Workspace 工作是 issue 驱动的使用alice issue create或直接编写带when字段的.alice/issues/id.md详见 self-scheduling 技能。源码上也印证了这一点src/server/cli-commands.ts 明确注释cron故意不导出——调度保持 MCP-only。自调度 issue 与交易的关系有一条重要原则见 default/skills/self-scheduling/SKILL.md定时任务仍然需要人来批准交易——一个调度运行可以研究、准备、甚至暂存交易但暂存的交易只有在你在 Web UITrading-as-Git中批准后才会执行定时器永远不会自己动钱。这与alice-uta git push默认要求人工审批的设计完全一致。十、实操速查从查询到成交的完整链路把上面的内容串成一条可复现的链路每个命令前请先跑--help确认 flags发现账户alice-uta account list→ 拿到--source account-id解析合约alice-uta contract search --source account-id --pattern AAPL→ 拿到引号包裹的aliceId如返回目录式结果先alice-uta contract expand --help展开确认细节与报价alice-uta contract details --source account-id --alice-id id、alice-uta contract quote --alice-id id研究如需alice-uta contract option-chain --alice-id id、alice-uta contract order-book --alice-id id下单并提交alice-uta order place ... --commit-message Buy below $971 after support confirmation含$的论点务必用单引号或--commit-message-file查看暂存区alice-uta git status审批alice-uta git commit --help→ 提交alice-uta git push --help→ 默认由用户在 Web UI 批准启用 Allow AI to push trades 后才直接执行跟踪与对账alice-uta order list/order history/order trades必要时alice-uta git sync平仓alice-uta position close --source account-id --alice-id id --qty qty省略qty即全平。整个流程中只读步骤1–4、8 的查询部分随时可安全执行任何写操作5–7、9都在执行前检查--help并向用户报告订单 id 与状态——这是alice-uta技能反复强调的安全底线也是 src/tool/trading.ts 中stage → commit → push分层设计的实际意义暂存是纯 git 状态变更commit 是带消息的批准push 才是唯一真正触达券商的环节。赞分享【免费下载链接】OpenAliceYour one-person Wall Street. An AI trading agent covering equities, crypto, commodities, forex, and macro — from research through position entry, ongoing management, to exit.项目地址https://gitcode.com/gh_mirrors/op/OpenAlice点击查看免费下载相关推荐CCXT项目中Hyperliquid平台Vault账户执行问题解析CCXT项目中Hyperliquid平台Vault账户执行问题解析 在CCXT项目中使用Hyperliquid平台时开发者可能会遇到一个关于Vault账户执行金融科技区块链后端Video2X 视频超分辨率指南AI 免费把 360P 老片补成 4KVideo2X 视频超分辨率指南AI 免费把 360P 老片补成 4K 同一段婚礼录像有人在 4K 电视上把每个笑脸放得清清楚楚有人只能对着满屏马赛克叹气音视频视频处理图像处理深度学习高频交易实战指南订单流分析与低延迟执行策略在当今金融市场中高频交易已成为量化投资的重要分支。 订单流分析 和 低延迟执行策略 构成了高频交易的核心竞争力。通过实时分析市场微观结构数据交易系统能够在微金融科技数据分析上一篇从0到1构建实时聊天应用基于socket.io-client-dart与Flutter的完整指南下一篇SpaceX-API 终极指南如何快速上手可测试的REST接口创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表