Skip to main content
Glama

MCP Trader Server

by Af7007
README-TradingChatbot.md9.79 kB
# 🤖 Trading Chatbot - IA Conversacional para Trading Um sistema avançado de chatbot que integra modelos de IA locais (Ollama) com operações reais de trading no MetaTrader 5 através do protocolo MCP (Model Context Protocol). ## 📋 Visão Geral O Trading Chatbot permite que usuários façam operações de trading através de linguagem natural, usando inteligência artificial para interpretar comandos e executar trades de forma segura e automatizada. ### 🏗️ Arquitetura ``` ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ Web Interface │ │ Chatbot Client │ │ MCP Servers │ │ (Flask) │◄──►│ (AI Logic) │◄──►│ - MT5 Server │ │ Port: 3000 │ │ │ │ - Ollama Server│ └─────────────────┘ └─────────────────┘ │ Ports: 8000/8001│ └─────────────────┘ ▲ │ ┌─────────────────┐ │ External APIs │ │ - MT5 Terminal │ │ - Ollama AI │ │ - Models Local │ └─────────────────┘ ``` ## 🚀 Recursos Principais ### 💬 Comandos de Trading Natural - **Compra/Venda**: "comprar 100 EURUSD" ou "vender 0.01 BTCUSD com stop loss 44000" - **Informações**: "qual meu saldo?" ou "mostrar posições abertas" - **Análises**: "analisar tendência EURUSD" ou "melhores oportunidades agora" ### 🛡️ Segurança Integrada - Validação automática de comandos de trading - Confirmação para operações de alto risco - Limites de volume e verificações de conta - Logs detalhados de todas as operações ### 🔧 MCP - Model Context Protocol - Protocolo padrão para integração com LLMs - Servidor MT5 completo com 20+ ferramentas - Servidor Ollama para modelos locais - Comunicação HTTP eficiente ### 🌐 Interface Web Moderna - Interface responsiva com design moderno - Comandos rápidos predefinidos - Status em tempo real dos sistemas - Suporte a confirmações visuais ## 📦 Instalação ### Pré-requisitos 1. **Python 3.8+** 2. **MetaTrader 5 Terminal** rodando e logado 3. **Ollama** instalado: https://ollama.ai ### Instalação Rápida ```bash # 1. Clone o repositório git clone https://github.com/Af7007/mcp-trader.git cd mcp-trader # 2. Instale dependências pip install -r requirements.txt # 3. Instale modelos Ollama (opcional) ollama pull qwen2.5-coder # Para análise de comandos ollama pull llama3.1:8b # Para conversação geral ollama pull deepseek-r1 # Para análise avançada # 4. Execute o sistema completo python main.py ``` ### Configuração Avançada #### Arquivo .env ```env # MT5 Configuration MT5_LOGIN=your_account_number MT5_PASSWORD=your_password MT5_SERVER=your_broker_server # System Configuration OLLAMA_HOST=http://localhost:11434 MT5_HOST=127.0.0.1 WEB_HOST=0.0.0.0 WEB_PORT=3000 ``` ## 🖥️ Como Usar ### 1. Iniciar o Sistema ```bash python main.py ``` ### 2. Acessar Interface Web Abra: http://localhost:3000 ### 3. Exemplos de Comandos ```bash # Ordens de compra/venda "comprar 100 EURUSD" "vender 0.01 BTCUSD com stop loss 45000 e take profit 47000" "comprar EURUSD market 0.02 lots" # Consultas de conta "quanto dinheiro tenho na conta?" "mostrar minhas posições abertas" "qual o saldo atual?" # Informações de mercado "qual o preço atual de GBPUSD?" "mostrar candles H1 de BTCUSD" "listar símbolos disponíveis" # Análises "analisar tendência do mercado" "qual a melhor oportunidade de trading agora?" "prever direção do EURUSD para próxima hora" # Gerenciamento de ordens "cancelar ordem 12345" "mostrar todas as ordens pendentes" "modificar stop loss da posição EURUSD" ``` ## 🛠️ Desenvolvimento ### Estrutura do Projeto ``` mcp-trader/ ├── src/ │ ├── core/ # Configurações compartilhadas │ ├── mcp_mt5/ # Servidor MCP MT5 │ ├── mcp_ollama/ # Servidor MCP Ollama │ ├── chatbot/ # Lógica do chatbot │ └── web/ # Interface web Flask ├── tests/ # Testes unitários ├── main.py # Ponto de entrada principal ├── test_chatbot.py # Teste do sistema completo ├── fastmcp.json # Configuração MCP └── pyproject.toml # Dependências Python ``` ### Servidores Individuais ```bash # MT5 MCP Server (porta 8000) python -m fastmcp run fastmcp.json # Ollama MCP Server (porta 8001) python -c "from src.mcp_ollama.main import mcp; mcp.run()" # Web Interface (porta 3000) python src/web/app.py ``` ### Testes ```bash # Teste completo python test_chatbot.py # Teste MCP MT5 python test_mcp.py # Testes unitários pytest tests/ ``` ## 🔧 API Endpoints ### Interface Web - `GET /` - Interface principal do chatbot - `POST /api/chatbot/initialize` - Inicializar chatbot - `POST /api/chat` - Enviar mensagem - `POST /api/chat/confirm` - Confirmar operação - `GET /api/chatbot/status` - Status dos sistemas ### MCP Servers #### MT5 Server (porta 8000) - `initialize(path)` - Iniciar terminal MT5 - `login(login, password, server)` - Login conta - `get_account_info()` - Informações da conta - `buy_market(symbol, volume, sl, tp)` - Ordem market buy - `sell_market(symbol, volume, sl, tp)` - Ordem market sell - `positions_get()` - Posições abertas - `orders_get()` - Ordens pendentes #### Ollama Server (porta 8001) - `chat_completion(model, messages)` - Chat com LLM - `analyze_trading_intent(message)` - Analisar intenção - `pull_model(model_name)` - Baixar modelo - `get_available_models()` - Listar modelos ## 📊 Comandos Suportados ### 💰 Operações de Trading | Comando | Exemplo | Descrição | |---------|---------|-----------| | `buy` | "comprar 100 EURUSD" | Ordem de compra | | `sell` | "vender 0.01 BTCUSD sl 44000" | Ordem de venda | | `long` | "ir long em EURUSD" | Posição comprada | | `short` | "ir short em GBPUSD" | Posição vendida | ### 📈 Consultas de Informações | Comando | Exemplo | Descrição | |---------|---------|-----------| | `balance` | "qual meu saldo?" | Saldo da conta | | `positions` | "minhas posições" | Posições abertas | | `orders` | "mostrar ordens" | Ordens pendentes | | `price` | "preço de BTCUSD" | Preço atual | ### 🎯 Análises e Previsões | Comando | Exemplo | Descrição | |---------|---------|-----------| | `analyze` | "analisar EURUSD" | Análise técnica | | `predict` | "prever BTCUSD" | Previsão de preço | | `trend` | "tendência do mercado" | Análise de tendência | | `opportunity` | "melhores oportunidades" | Oportunidades de trade | ## 🛡️ Segurança e Validação ### Verificações Automáticas - **Volume máximo** para prevenir perdas grandes - **Stop Loss obrigatório** para todas as posições - **Confirmação manual** para operações > 1 lote - **Validação de símbolos** disponíveis - **Verificação de saldo** suficiente ### Logs de Segurança - Todas as operações são registradas - Tentativas suspeitas são sinalizadas - Histórico completo de conversação - Alertas para padrões de risco ## 🔍 Monitoramento e Logs ### Arquivos de Log - `trading_chatbot.log` - Logs principais do sistema - `mt5_operations.log` - Operações de trading - `ollama_requests.log` - Requisições à IA ### Monitoramento em Tempo Real - Status dos servidores MCP - Conectividade MT5 e Ollama - Taxa de resposta do chatbot - Contadores de operações ## 🚀 Deploy e Produção ### Configuração para Produção ```bash # Usar Gunicorn para Flask pip install gunicorn gunicorn --bind 0.0.0.0:3000 --workers 4 src.web.app:create_app() # Usar PM2 para gerenciar processos npm install -g pm2 pm2 start ecosystem.config.js ``` ### Docker (opcional) ```dockerfile FROM python:3.8-slim WORKDIR /app COPY requirements.txt . RUN pip install -r requirements.txt COPY . . EXPOSE 3000 8000 8001 CMD ["python", "main.py"] ``` ## 🤝 Contribuindo 1. Fork o projeto 2. Crie sua branch (`git checkout -b feature/novo-comando`) 3. Commit suas mudanças (`git commit -am 'Adiciona novo comando'`) 4. Push para a branch (`git push origin feature/novo-comando`) 5. Abra um Pull Request ### Áreas de Contribuição - Novos comandos de trading - Melhorias na análise de intenção - Interface web avançada - Suporte a mais indicadores - Documentação adicional ## 📝 Licença Este projeto está sob a licença MIT. Veja o arquivo LICENSE para detalhes. ## 🆘 Suporte - **Issues**: https://github.com/Af7007/mcp-trader/issues - **Documentação**: Consulte os arquivos em `docs/` - **Exemplos**: Veja `test_chatbot.py` para exemplos de uso ## 🙏 Agradecimentos - **FastMCP**: Framework MCP para Python - **Ollama**: Plataforma de IA local - **MetaTrader 5**: Plataforma de trading - **Comunidade Open Source**: Por ferramentas e bibliotecas --- **⚠️ Disclaimer**: Este software é para fins educacionais. Trading envolve riscos financeiros. Use por sua conta e risco. Sempre implemente suas próprias validações de segurança antes do uso em produção.

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Af7007/mcp-trader'

If you have feedback or need assistance with the MCP directory API, please join our Discord server