Bot automatizado que recebe sinais do TradingView via webhook e executa operações robustas em Binance Futures Testnet / Demo para ETHUSDT e altcoins. Inclui sistema de Dashboard Full-Stack e suporte para Auto-Reversão, e Take Profits Múltiplos (TP1/TP2).
- Node.js 20+
- npm
npm installcp .env.example .env
# Edite .env com seus valores (WEBHOOK_TOKEN e chaves da Binance são obrigatórios)npx prisma db push && npx prisma generatenpm run dev
# O servidor iniciará em http://localhost:3333.cd frontend
npm install
npm run dev
# O Painel Dashboard iniciará de forma independente em http://localhost:3002.# Edite .env primeiro
docker compose up --build -dVerificador de pulso e saúde da aplicação.
curl http://localhost:3333/healthRecebe os sinais oficiais e agnósticos a Timeframe do TradingView.
Headers:
Content-Type: application/jsonX-WEBHOOK-TOKEN: <seu-token>
Payload Base:
{
"strategy_id": "PEDRO_MVP_V1",
"exchange": "BINANCE_TESTNET",
"symbol": "ETHUSDT",
"timeframe": "60",
"price": 2845.5,
"timestamp": "2026-02-25T12:00:00Z",
"bar_close": true,
"event": "MACD_ENTRY_LONG",
"trend_1d": "UP"
}| Evento | Descrição |
|---|---|
MACD_ENTRY_LONG |
Abertura de operação Comprada (e reversão automática de eventuais Shorts) |
MACD_ENTRY_SHORT |
Abertura de operação Vendida (e reversão automática de eventuais Longs) |
VMC_PARTIAL_25_LONG |
Recolhimento (Take Profit virtual) de 25% da posição comprada |
VMC_PARTIAL_50_LONG |
Recolhimento (Take Profit virtual) de 50% da posição comprada |
VMC_PARTIAL_25_SHORT |
Recolhimento de 25% da posição vendida |
VMC_PARTIAL_50_SHORT |
Recolhimento de 50% da posição vendida |
A pasta src foi moldada com excelência.
src/
├── index.ts # Bootstrap Fastify Integrado
├── config/
│ └── env.ts # Validação rigorosa de ambiente via Zod
├── domain/
│ ├── strategy-engine.ts # Máquina de estados (Auto-Reversões e Cálculos de PNL)
│ └── risk-manager.ts # Oráculo de Risco (Limites diários)
├── infra/
│ ├── binance-adapter.ts # Adapter para a Binance via Rest API / FAPI (Substituível agnosticamente)
│ ├── telegram-notifier.ts # Transmissão assíncrona ao Telegram do Contratante
│ └── prisma.ts # Instância SQLite unificada
├── webhook/
│ ├── webhook.controller.ts # Rotas de recepção, health e Status UI
│ ├── webhook.schema.ts # Restrições matemáticas Zod
│ └── webhook.service.ts # Filtro de repetições (Idempotência Hash)
└── utils/
└── hash.ts # Algoritmo de Hashing criptográfico
A arquitetura foi projetada de forma a isolar completamente as decisões lógicas do strategy-engine do servidor financeiro. Migrar deste Testnet Binance para Bybit ou Kucoin no futuro exigirá apenas a adesão de um novo Adapter.