Sistema Windows-nativo para integração ProfitDLL (Nelogica) - Captura e processamento de dados de mercado B3 em tempo real
Sistema modular de trading desenvolvido em WPF/.NET 9.0 que integra com a ProfitDLL da Nelogica para:
- Captura em tempo real de dados de mercado (trades, orderbook, cotações)
- Análise quantitativa e descoberta de padrões (Strategy Discovery)
- Backtesting de estratégias em dados históricos
- Visualização de gráficos e order flow
- Gestão de ordens e posições
| Camada | Tecnologia |
|---|---|
| UI | WPF + MVVM (CommunityToolkit.Mvvm) |
| Runtime | .NET 9.0 (Windows-only) |
| IPC | Named Pipes + MessagePack |
| Database Local | DuckDB |
| Database Time-Series | QuestDB (opcional) |
| Logging | Serilog + OpenTelemetry |
- Windows 10/11 (x64)
- .NET 9.0 SDK (Download)
- Visual Studio 2022 ou Rider (opcional)
- ProfitDLL.dll (Nelogica) - Ver
knowledge/nelogica/
# Clone do repositório
git clone https://github.com/your-org/PROFITDLL.git
cd PROFITDLL
# Build da solução completa
cd WPF
dotnet build ProfitBridge.slnx
# Executar o Host (servidor principal)
cd Host
dotnet run
# Em outro terminal, executar cliente (ex: RealTime)
cd ../RealTime
dotnet run# Executar todos os testes
dotnet test WPF/ProfitBridge.slnx
# Executar testes de um projeto específico
dotnet test WPF/Host.TestsPROFITDLL/
├── WPF/
│ ├── Host/ # Servidor principal - gerencia DLL e IPC
│ ├── RealTime/ # Cliente de streaming de dados
│ ├── Charts/ # Visualização de gráficos
│ ├── Broker/ # Gestão de ordens e posições
│ ├── Analysis/ # Análise de mercado e sinais
│ ├── Strategy/ # Strategy Discovery e Backtesting
│ ├── Scrapper/ # Coleta de dados B3 (Playwright)
│ ├── Shared/ # DTOs e contratos IPC
│ └── Core/ # Infraestrutura cliente
├── knowledge/ # Documentação da ProfitDLL API
├── docs/ # Documentação do projeto
│ ├── ai-context/ # Contexto otimizado para AI
│ ├── adr/ # Decisões arquiteturais
│ ├── backend/ # Docs de backend
│ └── architecture/ # Arquitetura do sistema
└── openspec/ # Gestão de mudanças
| Tópico | Localização | Descrição |
|---|---|---|
| Arquitetura | docs/ARCHITECTURE.md | Visão geral do sistema |
| ADRs | docs/adr/ | Decisões arquiteturais |
| Patterns | docs/ai-context/patterns.md | Padrões aprovados |
| Anti-Patterns | docs/ai-context/anti-patterns.md | O que evitar |
| Backend | docs/backend/ | Database, IPC, services |
| Recurso | Localização |
|---|---|
| Quick Reference | knowledge/QUICK_REFERENCE.md |
| API Completa | knowledge/api/ |
| Manual Nelogica (PT) | knowledge/nelogica/Manual/Manual - ProfitDLL pt_br.md |
| Manual Nelogica (EN) | knowledge/nelogica/Manual/Manual - ProfitDLL en_us.md |
Antes de qualquer implementação:
- Ler
CLAUDE.md(regras master) - Ler
docs/ai-context/(patterns, anti-patterns, module-map) - Consultar
_bmad-output/project-context.md(102 regras)
O sistema usa DPAPI para armazenamento seguro de credenciais:
// As credenciais são gerenciadas via WPF/Host/Services/CredentialService.cs
// Configurar via UI: Host → Settings → CredentialsO sistema suporta 3 perfis (ver WPF/Host/appsettings.json):
| Perfil | Buffer Size | Max Tickers | Use Case |
|---|---|---|---|
| Low | 1K | 5 | Máquinas antigas |
| Medium | 10K | 20 | Uso típico |
| High | 50K | 100 | Servidores |
- Unit Tests: Lógica de negócio e algoritmos
- Integration Tests: IPC, callbacks da DLL, database
- Stress Tests: Cargas de mercado extremas (10K trades/s)
[Fact]
public void MethodName_Scenario_ExpectedBehavior()
{
// Arrange - Setup
var sut = new SystemUnderTest();
// Act - Execute
var result = sut.DoSomething();
// Assert - Verify
result.Should().BeTrue();
}- ✅ Credenciais via DPAPI (ProtectedData)
- ✅ Nunca commitar
.env,.dll, ou secrets - ✅ Callbacks: copiar dados imediatamente (pointers invalidam)
- ❌ NUNCA usar
.Resultou.Wait()(deadlocks WPF)
type(scope): description
Tipos: feat, fix, perf, refactor, test, docs, chore
Scopes: host, ipc, ui, analysis, charts, etc.
Exemplo: feat(host): add ticker subscription caching
feature/short-description
fix/bug-description
refactor/area-description
| Elemento | Padrão | Exemplo |
|---|---|---|
| ViewModel | {Name}ViewModel.cs |
MarketViewModel.cs |
| View | {Name}View.xaml |
MarketView.xaml |
| Service | I{Name}Service.cs |
IMarketService.cs |
| Tickers | UPPERCASE | PETR4, VALE3, WINFUT |
ProfitDLL.dll REQUER Windows nativo. Sem WSL2, Docker, ou cross-platform.
DLL permite apenas UMA instância por processo. O Host gerencia o ciclo de vida.
// ❌ ERRADO - pointer invalida após callback retornar
void OnTrade(TradeData* data) { _lastTrade = data; }
// ✅ CORRETO - copiar dados imediatamente
void OnTrade(TradeData* data) {
var ticker = Marshal.PtrToStringUni(data->Ticker);
ProcessTrade(new Trade { Ticker = ticker, Price = data->Price });
}| Métrica | Alvo |
|---|---|
| Frame time | <5ms |
| GC pressure | <50KB/s |
| Tickers simultâneos | 10+ |
| IPC latency | <1ms |
- Ler CLAUDE.md e docs/ai-context/
- Criar branch
feature/nome-da-feature - Seguir convenções de código
- Escrever testes (AAA pattern)
- Atualizar documentação se necessário
- Abrir PR com descrição clara
Proprietary - Ver LICENSE para detalhes.
Última atualização: 2026-01-28 Versão: 3.0.0 Maintainers: @marce