Sobre o projeto

OpenPit é um espaço de trabalho para componentes de risco pré-negociação embutíveis, projetado para sistemas de negociação algorítmica e eletrônica. Antes de uma ordem chegar a um mercado, ela passa por um pipeline de risco determinístico que pode rejeitar solicitações, reservar estado e, posteriormente, absorver resultados pós-negociação de volta ao mesmo sistema de controle. O motor é em memória e determinístico, destinado a ser embutido em um sistema de negociação maior, em vez de substituí-lo. Ele fornece uma variedade de políticas integradas, incluindo verificações de solvência de fundos à vista, validação de ordens, limitação de taxa, limites de tamanho de ordem (caps de fat-finger) e um kill switch de P&L. Políticas personalizadas podem ser implementadas em Go, Python, JavaScript, C++ ou Rust. Os principais recursos incluem grupos de contas para ramificação de políticas, bloqueio de contas, drop copy para registrar ordens executadas, ajustes de contas e reconciliação de saldos, suporte a dados de mercado, reconfiguração dinâmica de políticas ativas e um motor assíncrono com filas por conta em Go e C++. Os contratos de armazenamento e threading são selecionados uma vez na construção do motor. OpenPit oferece SDKs para vários idiomas: Rust (crate `openpit`), Go (módulo `go.openpit.dev/openpit`), Python (pacote `openpit`), JavaScript/TypeScript (pacote `@openpit/engine`, uma compilação WebAssembly), C++ (pacote CMake C++17 somente cabeçalho) e C (através do ABI C). Todos os SDKs expõem o mesmo pipeline em seus respectivos idiomas. Antes do lançamento 1.0, o OpenPit segue Versionamento Semântico relaxado, onde lançamentos menores podem introduzir mudanças de API que quebram compatibilidade. O projeto inclui documentação abrangente em seu wiki, referências de API geradas e exemplos de ponta a ponta. Ele suporta construção e teste em sistemas POSIX e Windows, com instruções detalhadas para cada binding de idioma.