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.

Latest Blog Posts

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