Skip to main content

Современная Python-библиотека для взаимодействия с MetaTrader5

Project description

MT5 Trading Library

Python Version License Code Style CI

Современная Python-библиотека для взаимодействия с MetaTrader5, предоставляющая высокоуровневый API с расширенными возможностями.

🚀 Особенности

  • Надежное соединение с автоматическим переподключением и circuit breaker
  • Асинхронная поддержка для высокопроизводительных сценариев
  • Умное кэширование с TTL и стратегиями инвалидации
  • Безопасность с шифрованием учетных данных
  • Мониторинг и метрики производительности
  • Расширяемость через middleware и event-driven архитектуру
  • Production-ready с comprehensive тестированием

📦 Установка

pip install mt5-trading-lib

🔧 Быстрый старт

Асинхронный высокоуровневый клиент:

import asyncio
from mt5_trading_lib import AsyncMt5Client, Config
from mt5_trading_lib.logging_config import setup_logging
import MetaTrader5 as mt5

async def main():
    setup_logging()
    cfg = Config.load_config()
    client = AsyncMt5Client(cfg)

    if await client.connect():
        account = await client.get_account_info()
        print(f"Balance: {account['balance']}")

        quotes = await client.get_real_time_quotes("EURUSD")
        print(f"EURUSD: {quotes['bid']}/{quotes['ask']}")

        await client.disconnect()

if __name__ == "__main__":
    asyncio.run(main())

Синхронные компоненты (низкоуровневое использование):

from mt5_trading_lib import (
    Config, Mt5Connector, CacheManager, RetryManager, DataFetcher
)
from mt5_trading_lib.logging_config import setup_logging
import MetaTrader5 as mt5

setup_logging()
cfg = Config.load_config()

connector = Mt5Connector(cfg)
connector.connect()

cache = CacheManager(cfg)
retry = RetryManager(cfg)
data = DataFetcher(cfg, connector, cache, retry)

account = data.get_account_info()
print(account)

quotes = data.get_real_time_quotes("EURUSD")
print(quotes)

connector.disconnect()

📚 Документация

  • API Reference: docs/api_reference.rst
  • Архитектура: doc/project_design_concept.md
  • План проекта: doc/project_plan.md

🛠️ Разработка

Этот проект находится в активной разработке. См. план проекта для деталей.

Требования для разработки

  • Python 3.8+
  • MetaTrader5 Terminal
  • Windows 10/11

Установка для разработки

git clone https://github.com/paxelcool/MT5_trading_lib_project.git
cd MT5_trading_lib_project
python -m venv venv
venv\Scripts\activate
pip install -e ".[dev]"

🤝 Участие в проекте

Приветствуются contributions! См. CONTRIBUTING.md для деталей.

📄 Лицензия

Этот проект лицензирован под MIT License - см. LICENSE файл для деталей.

⚠️ Предупреждение

Эта библиотека предназначена для образовательных и исследовательских целей. Торговля на финансовых рынках связана с высокими рисками. Всегда тестируйте стратегии на демо-счетах перед использованием реальных средств.

📞 Поддержка

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

mt5_trading_lib-0.1.1.tar.gz (58.1 kB view details)

Uploaded Source

Built Distribution

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

mt5_trading_lib-0.1.1-py3-none-any.whl (55.0 kB view details)

Uploaded Python 3

File details

Details for the file mt5_trading_lib-0.1.1.tar.gz.

File metadata

  • Download URL: mt5_trading_lib-0.1.1.tar.gz
  • Upload date:
  • Size: 58.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.9

File hashes

Hashes for mt5_trading_lib-0.1.1.tar.gz
Algorithm Hash digest
SHA256 4ae289b82d4b6addab5728e09e84b6df1e74d47e3fb3d29d636c0d7b106dcdbc
MD5 41e4bd72381f157e91c8e1cac05b8560
BLAKE2b-256 fbf15441e89261feaa64d9989edf92af895c67634861bbbc56eea76ee6f2a72c

See more details on using hashes here.

File details

Details for the file mt5_trading_lib-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for mt5_trading_lib-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 84533cb06f81b1c2a57349e74c5cf9d08e59aa2eeec4c6191e56085f446ec89e
MD5 e2c91c8a96f2fe80abc73fe8e39dab4b
BLAKE2b-256 4874c5afc3af524a8e1a8a0770293ee9ed9e12073fb87ff9ee8c2d823e64afea

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