CommunityProgramación y desarrollogithub.com

aabrur/trading-agent-mpu-gandring

Envía una orden que ha pasado el filtro de Riesgo una vez en Bybit (CEX) o Hyperliquid (DEX) y luego la concilia desde el registro del exchange. Úsalo cuando una orden tenga estado PASS y esté lista para enviar, o para verificar un envío cuyo resultado se desconoce.

¿Qué es trading-agent-mpu-gandring?

Este skill implementa el módulo de ejecución de órdenes para un agente de trading. Su función principal es enviar una orden (ticket) que haya superado el filtro de Riesgo (Risk PASS) a un exchange centralizado (Bybit) o descentralizado (Hyperliquid), y luego reconciliar el resultado desde los registros del propio exchange. Es útil porque garantiza que solo se ejecuten órdenes validadas, evitando envíos duplicados o erróneos, y maneja correctamente casos de timeout o estado desconocido sin reintentar automáticamente. El skill sigue una estricta checklist previa al envío (verifica frescura, precios, posición abierta, redondeo de cantidades) y reporta únicamente códigos de error, sin exponer claves API ni cuerpos de error completos. Está diseñado para ejecutarse en entornos testnet o mainnet, con soporte para modo de aprobación por ticket o automático, y requiere que las credenciales se proporcionen mediante variables de entorno o un gestor de secretos.

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

Installed? Explore more Programación y desarrollo skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Ejecución de órdenes (Trading Agent Mpu Gandring)

La ejecución es el único asiento que escribe en el exchange. Todos los demás asientos solo leen.

Entrevista inicial (haz una pregunta a la vez)

  1. Lugar de operación: CEX Bybit (V5 linear USDT perps) o DEX Hyperliquid (perps).
  2. Red: testnet o mainnet. Testnet es la opción predeterminada. Mainnet requiere un "sí" escrito.
  3. Cuenta: para Bybit, la cuenta principal o una subcuenta dedicada (se recomienda una subcuenta). Para Hyperliquid, la dirección de la billetera principal más una billetera API aprobada. Nunca tomes la clave privada de la billetera principal.
  4. Modo de aprobación: aprobar cada orden por su id en el chat, o enviar automáticamente todo Risk PASS (trading automático). El modo automático requiere un "sí" escrito y el tope diario de risk-gate.
  5. Dónde se ejecuta el bot: desde una computadora cuya región esté permitida por el exchange. Si el exchange devuelve un bloqueo por país o región (HTTP 403), detente y pide al usuario que lo ejecute desde una máquina permitida. Nunca uses una VPN o proxy sin la elección explícita del usuario.

El usuario coloca las credenciales en un almacén de secretos o variables de entorno y nunca las pega en el chat:

  • Bybit: BYBIT_API_KEY más BYBIT_API_SECRET (HMAC) o BYBIT_PRIVATE_KEY_PATH (RSA). Solo permiso de trading. Desactiva los retiros. Restringe a una IP cuando sea posible.
  • Hyperliquid: HL_ACCOUNT_ADDRESS y HL_API_WALLET_KEY (solo una billetera de agente aprobada).

Antes del primer envío, realiza una lectura firmada (saldo o posiciones). Si falla, reporta solo el código de error, nunca el cuerpo ni la clave.

Lista de verificación previa al envío (cada elemento debe ser verdadero)

  1. La orden tiene un id y un Risk PASS con campos exactos: símbolo, lado, cantidad, apalancamiento, stop, take-profit o ninguno, y nivel de cancelación. En modo por orden, el usuario también ha aprobado ese id en esta sesión.
  2. La orden está fresca, con menos de 30 minutos de antigüedad por defecto.
  3. Una lectura en vivo muestra que el último precio y el mejor precio en el lado de entrada aún están del lado correcto del nivel de cancelación de la orden. Si no, omite la orden y explica por qué.
  4. Ese símbolo aún no tiene una posición abierta, a menos que la orden indique añadir. El conteo de posiciones abiertas se mantiene por debajo del límite de risk-gate.
  5. La cantidad y el precio se redondean al lote y tamaño de tick del instrumento, leídos en vivo. La cantidad nunca supera la de la orden.
  6. Se registra un id de cliente nuevo antes del envío. En Bybit es orderLinkId, alfanumérico, único. En Hyperliquid es cloid.

Si algún elemento falla, no envíes. Nombra el elemento fallido y devuelve el control.

Construcción de la orden

  • Bybit: modo unidireccional (positionIdx 0). Establece el apalancamiento al valor de la orden primero. El error 110043 significa que ya está configurado, así que continúa. Luego envía una orden limit IOC con un tope de aproximadamente 10 bps por encima del mejor precio, redondeada al tick, con stopLoss (slTriggerBy=MarkPrice). Agrega takeProfit solo si la orden lo especifica.
  • Hyperliquid: usa el índice del activo desde meta en vivo. Envía una orden IOC limit a un precio acotado por deslizamiento. Agrupa la entrada con su stop, y con un take-profit solo si se proporciona, en una sola acción normalTpsl.
  • Una orden, un envío. Nunca agrupes órdenes no relacionadas.

Después del envío

  • Si retCode o status es OK, lee el historial de órdenes por id, luego posiciones y órdenes abiertas. Reporta los números del exchange: precio de llenado promedio, cantidad llenada, comisión, stop colocado e id de la orden. Incluye UTC y la hora local del usuario.
  • Un timeout, error de transporte o resultado poco claro es desconocido, no fallido. Nunca reenvíes. Concilia desde el historial de órdenes por id de cliente, más la posición. Informa al escritorio que el envío no está confirmado hasta que el registro lo muestre.
  • Un envío rechazado (un código de error) es un fallo. Reporta solo el código y no reintentes con una orden modificada.
  • Escribe un registro de ejecución por orden en execution/<UTC-time>-<ticket-id>.md.
  • La deriva del reloj (Bybit 10002) se puede corregir con una recv_window más grande o una sincronización de hora. No es motivo para reenviar.

Límites

  • Nunca imprimas, registres o confirmes claves API, secretos, contenido PEM o cuerpos de error completos. Los cuerpos de error pueden reflejar la clave.
  • Nunca deposites, retires o transfieras fondos.
  • Nunca cambies los límites de riesgo ni calcules el tamaño de una operación. Una orden incorrecta vuelve a Riesgo.
  • Nunca cierres, canceles o muevas un stop sin una orden. Si una posición se cierra, cancela su stop huérfano e indica que lo hiciste.
  • Sin promesas de ganancias en ningún informe.

Formato de informe (corto)

EXECUTION | <ticket-id> | <venue> <network> | <UTC> (<local>) sent: <symbol> <side> <qty> IOC limit <px> lev <x> stop <sl> tp <tp|none> clientId <id> result: <Filled|Partial|Rejected code|Unknown> avg <px> qty <q> fee <f> orderId <id> reconciled: position <side size avg>, stop order <id> Untriggered

Individual skills in this repo

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

Skills relacionados