Community编程与开发github.com

aabrur/trading-agent-mpu-gandring

在 Bybit(中心化交易所)或 Hyperliquid(去中心化交易所)上一次发送一个已通过风险审核的订单,然后从交易记录中进行对账。当订单已获得 PASS 且准备发送,或需要检查发送结果未知的订单时使用。

trading-agent-mpu-gandring 是什么?

该技能是交易代理 Mpu Gandring 的核心执行模块,负责在 Bybit (CEX V5 线性 USDT 永续合约) 或 Hyperliquid (DEX 永续合约) 上安全、准确地执行单个已通过风险审核的订单。它严格遵守“一次发送,绝不重发”的原则,并通过交易记录对账来确认订单状态,避免因网络超时或错误码导致的重复发送风险。技能支持测试网和主网,提供按单审批和自动交易两种模式,并内置了发送前检查清单(如价格偏离、仓位限制、新鲜度)和边界控制(禁止暴露密钥、禁止提现、禁止修改风险参数)。执行后,它会生成格式化的报告,记录订单详情、执行结果和对账信息,并将记录写入本地文件,便于审计和追踪。主要适用于需要安全、可靠执行单笔风险通过订单的高频或策略交易场景。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/aabrur/trading-agent-mpu-gandring/tree/HEAD/skills/order-execution

Installed? Explore more 编程与开发 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

订单执行(交易代理 Mpu Gandring)

执行是唯一一个向交易所写入数据的席位。其他所有席位只读。

首次运行访谈(一次问一个问题)

  1. 交易场所:CEX Bybit(V5 线性 USDT 永续合约)或 DEX Hyperliquid(永续合约)。
  2. 网络:testnet 或 mainnet。测试网为默认选项。主网需要输入 yes 确认。
  3. 账户:对于 Bybit,使用主账户或专用子账户(推荐子账户)。对于 Hyperliquid,使用主钱包地址加上一个已授权的 API 钱包。永远不要获取主钱包私钥。
  4. 审批模式:在聊天中按订单 ID 逐个审批,或自动发送每个通过风险审核的订单(自动交易)。自动模式需要输入 yes 确认并设置来自风险门的每日止损。
  5. 机器人运行位置:在交易所允许的区域内的计算机上运行。如果交易所返回国家或地区封锁(HTTP 403),则停止运行并要求用户在允许的机器上运行。未经用户明确同意,不得使用 VPN 或代理。

用户将凭据存储在密钥存储或环境变量中,切勿粘贴到聊天中:

  • Bybit:BYBIT_API_KEY 加上 BYBIT_API_SECRET(HMAC)或 BYBIT_PRIVATE_KEY_PATH(RSA)。仅限交易权限。关闭提现功能。尽可能限制 IP 地址。
  • Hyperliquid:HL_ACCOUNT_ADDRESS 和 HL_API_WALLET_KEY(仅限已授权的代理钱包)。

在首次发送前,执行一次签名读取(余额或持仓)。如果失败,仅报告错误代码,不要报告响应体或密钥。

发送前检查清单(每一项必须为真)

  1. 订单具有 ID 和包含以下精确字段的风险 PASS:币对、方向、数量、杠杆、止损、止盈或无、以及取消级别。在按单审批模式下,用户已在本会话中批准该 ID。
  2. 订单是新鲜的,默认情况下不超过 30 分钟。
  3. 实时读取显示最新价格和入场侧最优价格仍然在订单取消级别的正确一侧。如果不是,则跳过该订单并说明原因。
  4. 该币对尚无未平仓仓位,除非订单注明要增加。未平仓仓位数量保持在风险门限以下。
  5. 数量和价格已根据实时读取的品种最小变动单位和最小交易量进行四舍五入。数量不得超过订单规定。
  6. 在发送前记录一个新鲜的客户端 ID。在 Bybit 上,该 ID 为 orderLinkId,字母数字组合,唯一。在 Hyperliquid 上,该 ID 为 cloid。

如果任何一项不满足,则不发送。指明失败项并交回控制权。

构建订单

  • Bybit:单向模式(positionIdx 0)。首先将杠杆设置为订单值。错误码 110043 表示已设置,可继续执行。然后发送一个限价 IOC 订单,价格略高于最优价格约 10 个基点(取整到最小变动单位),并设置 stopLoss(slTriggerBy=MarkPrice)。仅当订单指定止盈时才添加 takeProfit。
  • Hyperliquid:使用实时 meta 中的资产索引。在滑点限制价格内发送一个 IOC 限价单。将入场单与其止损单组合在一起,如果指定了止盈,也将止盈包含在内,形成一个 normalTpsl 操作。
  • 一个订单,一次发送。从不批量处理不相关的订单。

发送后

  • 如果 retCode 或状态为 OK,则按订单 ID 读取历史记录,然后读取持仓和未成交订单。报告交易所的数字:平均成交价、成交量、手续费、止损设置和订单 ID。包含 UTC 时间和用户的本地时间。
  • 超时、传输错误或结果不明确视为未知,而非失败。绝不重发。通过客户端 ID 和持仓从历史记录中核对。通知交易台发送尚未确认,直到记录显示确认。
  • 发送被拒绝(错误码)视为失败。仅报告错误码,不要重试更改后的订单。
  • 每个订单将一条执行记录写入 execution/<UTC时间>-<订单ID>.md。
  • 时钟漂移(Bybit 10002)可以通过更大的 recv_window 或同步时间来解决。这不是重发的理由。

边界限制

  • 绝不打印、记录或提交 API 密钥、密文、PEM 内容或完整的错误响应体。错误响应体可能包含密钥信息。
  • 绝不充值、提现或转账。
  • 绝不改变风险限制或交易规模。错误的订单退回给风险部门。
  • 未经订单授权,绝不关闭、取消或移动止损。如果仓位关闭,取消其孤立的止损并报告已执行操作。
  • 任何报告中不得包含盈利承诺。

报告格式(简短)

执行 | <订单ID> | <交易所> <网络> | <UTC时间> (<本地时间>) 已发送: <币对> <方向> <数量> IOC限价 <价格> 杠杆 <倍数> 止损 <止损价> 止盈 <止盈价|无> 客户端ID <ID> 结果: <成交|部分成交|拒绝码|未知> 均价 <价格> 数量 <数量> 手续费 <手续费> 订单ID <ID> 已对账: 持仓 <方向 数量 均价>, 止损单 <ID> 未触发

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

相关技能