pyquotex is a Python library designed to easily integrate with the Quotex API, enabling automated trading operations. Fully open-source and licensed under MIT, the library provides features like order execution, balance checking, real-time market data collection, and more. Perfect for traders and developers looking to build efficient and customized solutions.
O projeto segue uma estrutura modular organizada da seguinte maneira:
📦 pyquotex/
┣ 📂 docs/ # Documentação
┣ 📂 examples/ # Exemplos de uso
┃ ┣ 📜 custom_config.py # Configuração personalizada
┃ ┣ 📜 monitoring_assets.py # Monitoramento de ativos
┃ ┣ 📜 trade_bot.py # Bot de trading
┃ ┗ 📜 user_test.py # Testes de usuário
┣ 📂 quotexapi/ # Núcleo da API
┃ ┣ 📂 http/ # Módulos HTTP
┃ ┃ ┣ 📜 login.py
┃ ┃ ┣ 📜 logout.py
┃ ┃ ┗ 📜 settings.py
┃ ┣ 📂 utils/ # Utilitários
┃ ┣ 📂 ws/ # WebSocket
┃ ┃ ┣ 📂 channels/ # Canais WS
┃ ┃ ┗ 📂 objects/ # Objetos WS
┃ ┣ 📜 api.py # API principal
┃ ┗ 📜 stable_api.py # API estável
A API é construída sobre uma arquitetura cliente-servidor utilizando WebSocket como protocolo principal de comunicação. Os componentes principais são:
A API implementa vários canais WebSocket para diferentes funcionalidades:
O sistema implementa um sofisticado gerenciamento de sessões que inclui:
async def authenticate(self):
status, message = await self.login(
self.username,
self.password,
self.user_data_dir
)
if status:
global_value.SSID = self.session_data.get("token")
self.is_logged = True
return status, message
session.json
ssl_context = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)
ssl_context.options |= ssl.OP_NO_TLSv1 | ssl.OP_NO_TLSv1_1 | ssl.OP_NO_TLSv1_2
ssl_context.minimum_version = ssl.TLSVersion.TLSv1_3
try:
await self.connect()
except Exception as e:
logger.error(f"Erro de conexão: {e}")
await self.reconnect()
logging.basicConfig(
level=logging.DEBUG,
format='%(asctime)s %(message)s'
)