> ## Documentation Index
> Fetch the complete documentation index at: https://docs.arbitragem-crypto.cloud/llms.txt
> Use this file to discover all available pages before exploring further.

# Sistema de Alertas de Arbitragem

> Configure alertas personalizados para oportunidades de arbitragem de criptomoedas

# Sistema de Alertas de Arbitragem

O Sistema de Gerenciamento de Alertas permite que você configure notificações personalizadas para oportunidades de arbitragem de criptomoedas. O sistema monitora continuamente as operações de arbitragem e notifica quando suas condições configuradas são atendidas.

<Callout title="Funcionalidade Ativa" icon="bell" color="green">
  O sistema de alertas está totalmente operacional e monitorando oportunidades em tempo real.
</Callout>

## 🚀 Funcionalidades Principais

### Configuração Personalizada

* **Criptomoedas**: Especifique quais criptomoedas deseja monitorar (ex: BTC, ETH, PEPE)
* **Exchanges**: Defina quais exchanges deseja acompanhar (ex: Binance, OKX, Kraken)
* **Spread**: Estabeleça condições de spread com operadores logicos
* **Canal de Notificação**: Atualmente suporta notificações via Telegram

### Monitoramento em Tempo Real

* **Frequência de Busca**: Alertas do usuário são verificados a cada 5 minutos
* **Processamento**: Operações de arbitragem são analisadas a cada 19 segundos
* **Correspondência Inteligente**: Compara condições dos alertas com operações encontradas

## 📋 Como Configurar Alertas

### Exemplo de Configuração

```json theme={null}
{
  "user_email": "usuario@email.com",
  "type": "telegram",
  "condition": {
    "exchanges": ["Binance", "OKX"],
    "cryptocurrencies": ["BTC", "ETH"],
    "spread": {
      "operator": ">=",
      "value": 3.0
    }
  }
}
```

### Correspondência de Criptomoedas

O sistema implementa uma lógica inteligente para corresponder criptomoedas:

<CardGroup cols={2}>
  <Card title="Correspondência Exata" icon="check-circle">
    "BTC" = "BTC"
  </Card>

  <Card title="Correspondência por Conteúdo" icon="search">
    "PEPE" corresponde a "PEPE-USDT"
  </Card>
</CardGroup>

**Exemplos de Correspondência:**

* Usuário configura: "PEPE" → Sistema detecta: "PEPE-USDT" ✅
* Usuário configura: "BTC" → Sistema detecta: "BTC-USDC" ✅
* Usuário configura: "ETH" → Sistema detecta: "ETH-BTC" ✅

## 🔍 Validação de Condições

Para cada operação de arbitragem, o sistema verifica:

1. **Criptomoeda**: Se a crypto da operação corresponde ao alerta do usuário
2. **Exchanges**: Se pelo menos uma exchange da operação está no alerta
3. **Spread**: Se o spread atende à condição configurada (ex: >= 3.0%)

## 📱 Notificações Automáticas

### Telegram

Quando uma operação atende aos critérios de um alerta, você recebe uma notificação no formato:

```
🚨 Alerta de Arbitragem!

💰 PEPE-USDT
📈 Spread: 5.50%
🏪 Exchanges: Binance ↔ OKX
📊 Volume: 100.00
⏰ PEPE-USDT: Spread 5.50% >= 5.00%
```

### Estrutura da Mensagem

```json theme={null}
{
  "type": "ALERT_TELEGRAM_PRIVATE_USER",
  "content": {
    "email": "usuario@email.com",
    "message": "🚨 Alerta de Arbitragem!\n\n💰 PEPE-USDT..."
  }
}
```

## 🏗️ Arquitetura Técnica

### Componentes Principais

<CardGroup cols={2}>
  <Card title="AlertManagerService" icon="cog">
    Serviço principal de gerenciamento
  </Card>

  <Card title="Processor" icon="microchip">
    Lógica de correspondência e validação
  </Card>

  <Card title="Converter" icon="arrow-right-arrow-left">
    Conversão de dados entre sistemas
  </Card>

  <Card title="EventDispatcher" icon="paper-plane">
    Envio de notificações via RabbitMQ
  </Card>
</CardGroup>

### Fluxo de Processamento

```mermaid theme={null}
graph TD
    A[Operação de Arbitragem] --> B[Converter para Operation]
    B --> C[Buscar Alertas Ativos]
    C --> D[Verificar Correspondência]
    D --> E{Critérios Atendidos?}
    E -->|Sim| F[Gerar MatchedAlert]
    E -->|Não| G[Descartar]
    F --> H[Processar Notificações]
    H --> I[Enviar via RabbitMQ]
    I --> J[Usuário Recebe Notificação]
```

## 📊 Casos de Uso Práticos

### Caso 1: Alertas de Spread Alto

**Cenário**: Usuário quer ser notificado quando BTC tiver spread >= 2% entre Binance e OKX

**Configuração**:

```json theme={null}
{
  "cryptocurrencies": ["BTC"],
  "exchanges": ["Binance", "OKX"],
  "spread": {"operator": ">=", "value": 2.0}
}
```

**Resultado**: Notificação quando spread de BTC entre essas exchanges for >= 2%

### Caso 2: Monitoramento de Altcoins

**Cenário**: Usuário monitora PEPE em qualquer exchange com spread >= 5%

**Configuração**:

```json theme={null}
{
  "cryptocurrencies": ["PEPE"],
  "exchanges": [],
  "spread": {"operator": ">=", "value": 5.0}
}
```

**Resultado**: Notificação para qualquer spread de PEPE >= 5% em qualquer exchange

### Caso 3: Alertas Específicos de Exchange

**Cenário**: Usuário quer apenas alertas da Kraken para ETH

**Configuração**:

```json theme={null}
{
  "cryptocurrencies": ["ETH"],
  "exchanges": ["Kraken"],
  "spread": {"operator": ">", "value": 1.5}
}
```

**Resultado**: Notificação apenas quando ETH na Kraken tiver spread > 1.5%

## 🔗 Integração com Sistema Principal

O sistema está integrado ao processamento principal de arbitragem:

* **processAlerts()**: Função chamada a cada ciclo de processamento
* **convertToAlertManagerOperations()**: Converte operações para formato do alerta
* **ProcessNotifications()**: Envia notificações para alertas compatíveis

### Endpoint de Alertas

* **URL**: `https://communication-service-4f4f57e0a956.herokuapp.com/alerts/grouped`
* **Método**: GET
* **Frequência**: A cada 5 minutos
* **Formato**: JSON com lista de usuários e seus alertas

## 📈 Métricas e Monitoramento

<CardGroup cols={2}>
  <Card title="Alertas Ativos" icon="bell">
    Contagem de alertas configurados pelos usuários
  </Card>

  <Card title="Notificações Enviadas" icon="paper-plane">
    Quantidade de notificações processadas
  </Card>

  <Card title="Taxa de Correspondência" icon="chart-line">
    Percentual de operações que geram alertas
  </Card>

  <Card title="Tempo de Processamento" icon="clock">
    Latência entre detecção e notificação
  </Card>
</CardGroup>

## 🎯 Benefícios para o Negócio

<Callout title="Vantagens Principais" icon="star" color="blue">
  O sistema de alertas oferece múltiplas vantagens para maximizar suas oportunidades de arbitragem.
</Callout>

1. **Automação**: Usuários não precisam monitorar manualmente
2. **Personalização**: Cada usuário pode configurar seus próprios critérios
3. **Tempo Real**: Notificações instantâneas quando condições são atendidas
4. **Escalabilidade**: Sistema suporta múltiplos usuários e tipos de alerta
5. **Flexibilidade**: Fácil adição de novos tipos de notificação

## 🚧 Roadmap Futuro

<Callout title="Melhorias Planejadas" icon="lightbulb" color="yellow">
  Estamos trabalhando para expandir as funcionalidades do sistema de alertas.
</Callout>

1. **Novos Tipos de Notificação**: Email, SMS, Push notifications
2. **Alertas Avançados**: Condições baseadas em volume, volatilidade
3. **Dashboard**: Interface para gerenciamento de alertas
4. **Histórico**: Armazenamento de alertas enviados
5. **Machine Learning**: Otimização automática de critérios de alerta

## ⚠️ Estados do Sistema

* **Inicialização**: Busca alertas iniciais e inicia monitoramento
* **Execução**: Processamento contínuo em background
* **Parada**: Para o monitoramento e libera recursos

<Callout title="Suporte" icon="headset" color="purple">
  Para dúvidas sobre o sistema de alertas, entre em contato através dos canais de suporte listados na navegação.
</Callout>
