Community编程与开发github.com

风险门控

在向CEX(Bybit V5)或DEX(Hyperliquid)发送任何订单前使用。通过访谈所有者获取书面限制,根据实时账户读取结果计算每个仓位大小,返回通过或失败,从不发送订单。

风险门控 是什么?

该技能在订单执行前严格进行风险评估和审查。它通过交互式访谈,引导用户设定风险参数(如每笔最大亏损、总风险敞口、杠杆上限等),并写入`risk-limits.md`文件。在每次开仓前,它会实时读取账户权益、可用保证金、持仓和订单簿数据,根据公式计算仓位大小,并对照预先设定的限制进行多项检查(如市场允许列表、杠杆、日亏损止损等)。仅当所有检查通过(PASS)时,才允许执行代理发送订单;失败(FAIL)时会记录原因。该技能支持Bybit V5(CEX)和Hyperliquid(DEX)两类交易所,并强调绝不发送或修改订单,确保风险控制与执行完全分离。

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

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

在你喜欢的 AI 中提问

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

文档

风险门控 是做什么的?

风险规模和否决。风险从不发送、更改或取消订单。只有执行席位在收到“通过”后发送一次。

1. 设置访谈(一次只问一个问题)

在将每个答案写入工作文件夹中的 risk-limits.md 之前,不要签署任何订单。

  1. 交易所:CEX(Bybit 线性 USDT 永续合约)还是 DEX(Hyperliquid 永续合约)?先测试网还是主网?
  2. 读取权限:我可以从哪个账户读取余额、持仓和未成交订单?我只需要读取范围。可以交易的密钥属于执行席位,并从环境变量中读取,切勿粘贴到聊天中或提交到仓库。
  3. 每张订单的最大亏损,按止损触发时权益的百分比计算。建议默认值 1%。超过 5% 需一次明确警告和书面确认。
  4. 所有持仓的最大总风险敞口。建议默认值 3%。
  5. 最大持仓数量。建议默认值 2。
  6. 最大杠杆。建议默认值 3 倍。
  7. 允许的市场(精确符号,例如 Bybit 上的 ETHUSDT、SOLUSDT 或 Hyperliquid 上的 ETH、SOL)。
  8. 每日亏损止损,按当日开始时权益的百分比计算。建议默认值 5%。一旦达到,自动交易暂停,直到所有者书面重置。
  9. 发送时的最大滑点。建议默认值 10 个基点。

审批模式(审批每张订单,还是自动发送所有通过订单)在 order-execution 中只询问一次,不在此处。自动模式需要先写入第 8 步的每日亏损止损。

将答案、日期和交易所写入 risk-limits.md。更新的书面限制替换旧的;切勿混合它们。

2. 每张订单

一张订单必须包含:市场、方向、入场类型和价格、止损价格、规模或风险预算,以及其来源的策略方向和 K 线收盘时间。

在计算规模之前,实时读取:

  • 账户:权益、可用保证金、未平仓持仓、未成交订单。
    • Bybit:GET /v5/account/wallet-balance,GET /v5/position/list?category=linear,GET /v5/order/realtime?category=linear。
    • Hyperliquid:POST /info 使用 clearinghouseState 和 openOrders 获取账户地址的信息。
  • 合约:最小数量、数量步长、报价精度、最小名义价值、最大杠杆。
    • Bybit:GET /v5/market/instruments-info?category=linear&symbol=...。
    • Hyperliquid:POST /info 使用 meta (szDecimals, maxLeverage)。
  • 盘口:最优买价和卖价。如果超过 60 秒则拒绝。

计算规模:

stressed_loss = qty * |entry - stop| + qty * entry * taker_fee * 2 + qty * entry * slippage
qty = floor_to_step(max_loss_usd / per_unit_stressed_loss)

使用交易所的真实吃单费率(Bybit 线性合约默认 0.00055;Hyperliquid 根据您的费率等级)。

如果出现以下任何一种情况,则返回“失败”:

  • 没有止损,或者止损在入场方向的错误一侧。
  • 市场不在允许列表中。
  • 四舍五入后的数量低于交易所最低要求,或者在不突破亏损上限的情况下无法达到最小名义价值。不要通过向上取整来适配。
  • 所选杠杆下的保证金超过可用保证金。
  • 杠杆超过上限,持仓数量会超过上限,或者总风险敞口会超过上限。
  • 每日亏损止损已触发。
  • 策略方向在实时盘口上已失效(价格超过其失效点)。
  • 账户或盘口读取失败或已过期。绝不使用旧数据。

通过会写入文件 risk/<UTC time>-<symbol>-<side>-pass.md,包含:输入、带 UTC 时间的实时读取数据、数量、止损、杠杆、按美元和占权益百分比计算的紧张亏损,以及订单 ID。失败会写入相同文件,并附上原因。

3. 永不改变的规则

  • 绝不发送订单。绝不转移资金。绝不询问或打印私钥。
  • 没有利润承诺。未实现的盈亏不是利润。存款不是利润。
  • 机器人之间的协议不是证据。闲置现金不是交易的理由。
  • 如果发送结果未知,在读取交易所记录之前绝不重新发送。
  • 秘密只存在于环境变量或平台密钥保管库中,绝不在仓库中。

Individual skills in this repo

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

相关技能