aabrur/trading-agent-mpu-gandring

Gate de risco que entrevista o proprietário para limites por escrito, dimensiona cada ticket a partir de uma leitura ao vivo da conta e retorna PASS ou FAIL. Nunca envia ordens.

O que é trading-agent-mpu-gandring?

Este skill implementa um gate de risco rigoroso para traders algorítmicos que operam em exchanges centralizadas (Bybit V5) ou descentralizadas (Hyperliquid) para futuros perpétuos. Antes de qualquer ordem ser enviada, ele realiza uma entrevista interativa com o proprietário da conta para definir limites de risco documentados em `risk-limits.md`, como perda máxima por ticket (padrão 1% do patrimônio), risco máximo total, alavancagem máxima, mercados permitidos e stop de perda diária. Para cada ticket, ele lê dados ao vivo da conta (patrimônio, margem, posições) e do livro de ofertas, calcula o tamanho da posição com base em uma fórmula de estresse que considera taxas e slippage, e verifica múltiplas condições (stop válido, mercado permitido, alavancagem dentro do limite, margem disponível, etc.). Somente se todas as validações passarem, ele grava um arquivo de aprovação (PASS), que pode ser usado por um módulo de execução separado para enviar a ordem. O skill nunca envia, modifica ou cancela ordens; é exclusivamente um gate de risco configurável e auditável, ideal para traders que desejam implementar controle de risco programático antes da execução.

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

Installed? Explore more Programação e Desenvolvimento skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Gate de risco

Dimensiona riscos e veta. Risco nunca envia, altera ou cancela uma ordem. Apenas o assento de execução envia, uma vez, após um PASS.

1. Entrevista de configuração (faça uma pergunta de cada vez)

Não assine nenhum ticket até que cada resposta seja escrita em risk-limits.md na pasta de trabalho.

  1. Local: CEX (Bybit futuros lineares USDT) ou DEX (Hyperliquid futuros)? Testnet primeiro ou mainnet?
  2. Acesso de leitura: qual conta posso ler saldos, posições e ordens abertas? Preciso apenas de escopo de leitura. A chave que pode negociar pertence ao assento de execução e é lida de uma variável de ambiente, nunca colada no chat ou commitada em um repositório.
  3. Perda máxima por ticket, como um percentual do patrimônio se o stop for atingido. Padrão sugerido 1%. Acima de 5% recebe um aviso simples e uma confirmação por escrito.
  4. Risco máximo total aberto em todas as posições. Padrão sugerido 3%.
  5. Posições máximas. Padrão sugerido 2.
  6. Alavancagem máxima. Padrão sugerido 3x.
  7. Mercados permitidos (símbolos exatos, ex.: ETHUSDT, SOLUSDT na Bybit ou ETH, SOL na Hyperliquid).
  8. Stop de perda diária como percentual do patrimônio do início do dia. Padrão sugerido 5%. Quando atingido, a negociação automática pausa até que o proprietário a redefina por escrito.
  9. Slippage máxima no envio. Padrão sugerido 10 bps.

O modo de aprovação (aprovar cada ticket, ou enviar automaticamente cada PASS) é perguntado uma vez em order-execution, não aqui. O modo automático precisa do stop de perda diária da etapa 8 para ser escrito primeiro.

Escreva as respostas, a data e o local em risk-limits.md. Limites escritos mais recentes substituem os mais antigos; nunca os misture.

2. Cada ticket

Um ticket deve nomear: mercado, lado, tipo de entrada e preço, preço de stop, tamanho ou orçamento de risco, e o lado da estratégia de onde veio com seu horário de fechamento da barra.

Leia ao vivo, bem antes de dimensionar:

  • Conta: patrimônio, margem disponível, posições abertas, ordens abertas.
    • Bybit: GET /v5/account/wallet-balance, GET /v5/position/list?category=linear, GET /v5/order/realtime?category=linear.
    • Hyperliquid: POST /info com clearinghouseState e openOrders para o endereço da conta.
  • Instrumento: qtd mínima, passo de qtd, tamanho do tick, nocional mínimo, alavancagem máxima.
    • Bybit: GET /v5/market/instruments-info?category=linear&symbol=....
    • Hyperliquid: POST /info com meta (szDecimals, maxLeverage).
  • Livro: melhor bid e ask. Rejeite se mais antigo que 60 segundos.

Dimensionamento:

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

Use a taxa de taker real do local (Bybit linear padrão 0,00055; Hyperliquid conforme seu nível de taxa).

FALHA se alguma destas condições for verdadeira:

  • Sem stop, ou stop no lado errado da entrada.
  • Mercado não está na lista permitida.
  • qty após arredondamento está abaixo do mínimo da exchange, ou o nocional mínimo não pode ser atendido sem quebrar o limite de perda. Não arredonde para cima para caber.
  • Margem na alavancagem escolhida excede a margem disponível.
  • Alavancagem acima do limite, posições excederiam o limite, ou risco total aberto excederia o limite.
  • Stop de perda diária já foi atingido.
  • Lado da estratégia está cancelado (preço passou da invalidação) no livro ao vivo.
  • Leitura da conta ou do livro falhou ou está desatualizada. Números antigos nunca são usados.

PASS escreve um arquivo risk/<UTC time>-<symbol>-<side>-pass.md com: entradas, leituras ao vivo com horários UTC, qty, stop, alavancagem, perda estressada em USD e como % do patrimônio, e o id do ticket. FALHA escreve o mesmo com o motivo.

3. Regras que nunca mudam

  • Nunca envie uma ordem. Nunca mova fundos. Nunca peça ou imprima uma chave privada.
  • Sem promessas de lucro. PnL não realizado não é lucro. Um depósito não é lucro.
  • Acordo entre bots não é evidência. Dinheiro parado não é motivo para negociar.
  • Se o resultado de um envio for desconhecido, nada é reenviado até que o registro da exchange seja lido.
  • Segredos vivem apenas em variáveis de ambiente ou no armazém de segredos da plataforma, nunca no repositório.

Individual skills in this repo

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

Habilidades Relacionadas