Skip to main content

Automation for operations and API data extraction from Cocos Capital broker.

Project description

CocosBot

CocosBot es un paquete de Python diseñado para automatizar operaciones y obtener datos de la API del broker argentino Cocos Capital. Utiliza Playwright para interactuar con la web app.

La historia del proyecto en Medium: CocosBot

Características

  • Arquitectura modular con servicios especializados
  • Automatización de operaciones en la plataforma Cocos Capital
  • Interceptación inteligente de endpoints de API
  • Soporte para 2FA (autenticación de dos factores) utilizando cuentas de Gmail
  • Sistema robusto de manejo de errores
  • Tipado completo con type hints

Arquitectura

cocos_bot/
├── core/                 # Componentes fundamentales
│   ├── browser.py       # Abstracción de Playwright
│   ├── cocos_capital.py # Orquestador principal
│   ├── exceptions.py    # Sistema de errores
├── config/              # Configuración centralizada
│   ├── constants.py     # URLs y configs
│   ├── urls.py        # Urls de la plataforma
│   └── selectors.py    # Selectores UI
│   └── enums.py        # Enums
├── utils/              # Utilidades
│   ├── validators.py   # Validación
│   ├── helpers.py     # Funciones auxiliares
│   ├── gmail_2fa.py   # Manejo 2FA
│   └── data_transformations.py
└── services/           # Lógica de negocio
    ├── auth.py        # Autenticación
    ├── market.py      # Operaciones
    └── user.py        # Gestión de usuario

Requisitos

  • Python 3.12 o superior.
  • Cuenta en Cocos Capital.
  • Credenciales de Gmail configuradas para autenticación 2FA.

Instalación

Instala el paquete y las dependencias ejecutando:

pip install CocosBot

Esto va a instalar automáticamente las dependencias necesarias, como playwright y beautifulsoup4.

Uso

Ejemplo básico

from CocosBot.core.cocos_capital import CocosCapital

# Configurar credenciales

username = "tu_usuario"
password = "tu_contraseña"
gmail_user = "tu_gmail@gmail.com"
gmail_app_pass = "tu_contraseña_de_aplicación"

with CocosCapital(username, password, gmail_user, gmail_app_pass, headless=False) as cocos:
    cocos.login()

    # Probar view accounts
    cuentas = cocos.get_linked_accounts()
    print("Cuentas:", cuentas)

    # Probar get_orders
    orders = cocos.get_orders()
    print("Orders:", orders)

    # Probar get_mep_value
    mep_value = cocos.get_mep_value()
    print("MEP Value:", mep_value)

    # Probar get_ticker_info
    ticker_info = cocos.get_ticker_info("AAPL", "CEDEARS")
    print("Ticker Info:", ticker_info)

    # Probar Create Order
    order= cocos.create_order("FIPL", "BUY", 20000, 335.5 )
    print("Order", order)

Métodos Disponibles

Autenticación

  • login() -> bool: Inicia sesión en la plataforma usando 2FA automático
  • logout() -> bool: Realiza el cierre de sesión seguro

Usuario y Cuenta

  • get_user_data() -> Dict[str, Any]: Obtiene los datos del usuario
  • get_account_tier() -> Dict[str, Any]: Obtiene el nivel de cuenta del usuario
  • get_portfolio_data() -> Dict[str, Any]: Obtiene los datos del portafolio
  • fetch_portfolio_balance() -> float: Obtiene el balance total del portafolio
  • get_linked_accounts(amount: float = 5000, currency: Currency = Currency.ARS) -> Dict[str, Any]: Obtiene información de cuentas vinculadas
  • get_academy_data() -> Dict[str, Any]: Obtiene datos de la sección Academia

Mercado y Operaciones

  • create_order(ticker: str, operation: OrderOperation, amount: float, limit: Optional[float] = None) -> bool: Crea una orden
  • get_ticker_info(ticker: str, ticker_type: Union[str, MarketType], segment: str = "C") -> Dict[str, Any]: Obtiene información de un ticker
  • get_market_schedule() -> Dict[str, Any]: Obtiene los horarios del mercado
  • get_orders() -> Dict[str, Any]: Obtiene las órdenes del usuario
  • get_mep_value() -> Dict[str, Any]: Obtiene el valor del dólar MEP

To-Do

  • 2FA manual
  • Tests unitarios y de integración
  • Documentación adicional

Contribución

¡Contribuciones bienvenidas! Si tenés ideas o mejoras, por favor abrí un issue o crea un pull request.

Licencia

Este proyecto está licenciado bajo la Licencia MIT.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cocosbot-0.1.0.tar.gz (14.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

CocosBot-0.1.0-py3-none-any.whl (24.7 kB view details)

Uploaded Python 3

File details

Details for the file cocosbot-0.1.0.tar.gz.

File metadata

  • Download URL: cocosbot-0.1.0.tar.gz
  • Upload date:
  • Size: 14.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.3

File hashes

Hashes for cocosbot-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d92f86156b6033fb249279dba4ae25728239406e32707edff06d6b5792987f68
MD5 6071fa395030ec7374a8470737f0818b
BLAKE2b-256 282178f04dec3ac801b5508a88c12bf7d59b8740aff3ef1f9db25de4112a28da

See more details on using hashes here.

File details

Details for the file CocosBot-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: CocosBot-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 24.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.3

File hashes

Hashes for CocosBot-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 dd3a8163eabdd494e55af46f58b63f03adb368b45049f12cafa1283f72e9d6b2
MD5 b83c552c9732d03e3e1d3784fe72ea01
BLAKE2b-256 d5ae00a16566bb2a671628e81a5388a490b43d78af4265994c212f3f6d1f812d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page