mt5-trading-lib


Namemt5-trading-lib JSON
Version 0.1.1 PyPI version JSON
download
home_pageNone
SummaryСовременная Python-библиотека для взаимодействия с MetaTrader5
upload_time2025-08-13 13:52:35
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseMIT
keywords trading metatrader5 forex finance
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # MT5 Trading Library

[![Python Version](https://img.shields.io/badge/python-3.8%2B-blue)](https://www.python.org/downloads/)
[![License](https://img.shields.io/badge/license-MIT-green)](LICENSE)
[![Code Style](https://img.shields.io/badge/code%20style-black-black)](https://github.com/psf/black)
[![CI](https://github.com/paxelcool/MT5_trading_lib_project/actions/workflows/ci.yml/badge.svg)](https://github.com/paxelcool/MT5_trading_lib_project/actions/workflows/ci.yml)

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

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

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

## 📦 Установка

```bash
pip install mt5-trading-lib
```

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

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

```python
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())
```

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

```python
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`

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

Этот проект находится в активной разработке. См. [план проекта](project_plan.md) для деталей.

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

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

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

```bash
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](CONTRIBUTING.md) для деталей.

## 📄 Лицензия

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

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

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

## 📞 Поддержка

- 📧 Email: mtrfrgm@gmail.com
- 🐛 Issues: [GitHub Issues](https://github.com/yourusername/mt5-trading-lib/issues)
- 💬 Discussions: [GitHub Discussions](https://github.com/yourusername/mt5-trading-lib/discussions)

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "mt5-trading-lib",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "trading, metatrader5, forex, finance",
    "author": null,
    "author_email": "\u041f\u0430\u0432\u0435\u043b \u0421\u0430\u0434\u043e\u0432\u0435\u043d\u043a\u043e <mtrfrgm@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/fb/f1/5441e89261feaa64d9989edf92af895c67634861bbbc56eea76ee6f2a72c/mt5_trading_lib-0.1.1.tar.gz",
    "platform": null,
    "description": "# MT5 Trading Library\r\n\r\n[![Python Version](https://img.shields.io/badge/python-3.8%2B-blue)](https://www.python.org/downloads/)\r\n[![License](https://img.shields.io/badge/license-MIT-green)](LICENSE)\r\n[![Code Style](https://img.shields.io/badge/code%20style-black-black)](https://github.com/psf/black)\r\n[![CI](https://github.com/paxelcool/MT5_trading_lib_project/actions/workflows/ci.yml/badge.svg)](https://github.com/paxelcool/MT5_trading_lib_project/actions/workflows/ci.yml)\r\n\r\n\u0421\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f Python-\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043b\u044f \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441 MetaTrader5, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0430\u044f \u0432\u044b\u0441\u043e\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0439 API \u0441 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u043c\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044f\u043c\u0438.\r\n\r\n## \ud83d\ude80 \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438\r\n\r\n- **\u041d\u0430\u0434\u0435\u0436\u043d\u043e\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435** \u0441 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u043f\u0435\u0440\u0435\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u0438 circuit breaker\r\n- **\u0410\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u0430\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430** \u0434\u043b\u044f \u0432\u044b\u0441\u043e\u043a\u043e\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0435\u0432\r\n- **\u0423\u043c\u043d\u043e\u0435 \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435** \u0441 TTL \u0438 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044f\u043c\u0438 \u0438\u043d\u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u0438\r\n- **\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c** \u0441 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0443\u0447\u0435\u0442\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445\r\n- **\u041c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433** \u0438 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438\r\n- **\u0420\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u043c\u043e\u0441\u0442\u044c** \u0447\u0435\u0440\u0435\u0437 middleware \u0438 event-driven \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443\r\n- **Production-ready** \u0441 comprehensive \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c\r\n\r\n## \ud83d\udce6 \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430\r\n\r\n```bash\r\npip install mt5-trading-lib\r\n```\r\n\r\n## \ud83d\udd27 \u0411\u044b\u0441\u0442\u0440\u044b\u0439 \u0441\u0442\u0430\u0440\u0442\r\n\r\n\u0410\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0439 \u0432\u044b\u0441\u043e\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0439 \u043a\u043b\u0438\u0435\u043d\u0442:\r\n\r\n```python\r\nimport asyncio\r\nfrom mt5_trading_lib import AsyncMt5Client, Config\r\nfrom mt5_trading_lib.logging_config import setup_logging\r\nimport MetaTrader5 as mt5\r\n\r\nasync def main():\r\n    setup_logging()\r\n    cfg = Config.load_config()\r\n    client = AsyncMt5Client(cfg)\r\n\r\n    if await client.connect():\r\n        account = await client.get_account_info()\r\n        print(f\"Balance: {account['balance']}\")\r\n\r\n        quotes = await client.get_real_time_quotes(\"EURUSD\")\r\n        print(f\"EURUSD: {quotes['bid']}/{quotes['ask']}\")\r\n\r\n        await client.disconnect()\r\n\r\nif __name__ == \"__main__\":\r\n    asyncio.run(main())\r\n```\r\n\r\n\u0421\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b (\u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435):\r\n\r\n```python\r\nfrom mt5_trading_lib import (\r\n    Config, Mt5Connector, CacheManager, RetryManager, DataFetcher\r\n)\r\nfrom mt5_trading_lib.logging_config import setup_logging\r\nimport MetaTrader5 as mt5\r\n\r\nsetup_logging()\r\ncfg = Config.load_config()\r\n\r\nconnector = Mt5Connector(cfg)\r\nconnector.connect()\r\n\r\ncache = CacheManager(cfg)\r\nretry = RetryManager(cfg)\r\ndata = DataFetcher(cfg, connector, cache, retry)\r\n\r\naccount = data.get_account_info()\r\nprint(account)\r\n\r\nquotes = data.get_real_time_quotes(\"EURUSD\")\r\nprint(quotes)\r\n\r\nconnector.disconnect()\r\n```\r\n\r\n## \ud83d\udcda \u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f\r\n\r\n- API Reference: `docs/api_reference.rst`\r\n- \u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430: `doc/project_design_concept.md`\r\n- \u041f\u043b\u0430\u043d \u043f\u0440\u043e\u0435\u043a\u0442\u0430: `doc/project_plan.md`\r\n\r\n## \ud83d\udee0\ufe0f \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430\r\n\r\n\u042d\u0442\u043e\u0442 \u043f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435. \u0421\u043c. [\u043f\u043b\u0430\u043d \u043f\u0440\u043e\u0435\u043a\u0442\u0430](project_plan.md) \u0434\u043b\u044f \u0434\u0435\u0442\u0430\u043b\u0435\u0439.\r\n\r\n### \u0422\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438\r\n\r\n- Python 3.8+\r\n- MetaTrader5 Terminal\r\n- Windows 10/11\r\n\r\n### \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438\r\n\r\n```bash\r\ngit clone https://github.com/paxelcool/MT5_trading_lib_project.git\r\ncd MT5_trading_lib_project\r\npython -m venv venv\r\nvenv\\Scripts\\activate\r\npip install -e \".[dev]\"\r\n```\r\n\r\n## \ud83e\udd1d \u0423\u0447\u0430\u0441\u0442\u0438\u0435 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435\r\n\r\n\u041f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442\u0441\u044f contributions! \u0421\u043c. [CONTRIBUTING.md](CONTRIBUTING.md) \u0434\u043b\u044f \u0434\u0435\u0442\u0430\u043b\u0435\u0439.\r\n\r\n## \ud83d\udcc4 \u041b\u0438\u0446\u0435\u043d\u0437\u0438\u044f\r\n\r\n\u042d\u0442\u043e\u0442 \u043f\u0440\u043e\u0435\u043a\u0442 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0440\u043e\u0432\u0430\u043d \u043f\u043e\u0434 MIT License - \u0441\u043c. [LICENSE](LICENSE) \u0444\u0430\u0439\u043b \u0434\u043b\u044f \u0434\u0435\u0442\u0430\u043b\u0435\u0439.\r\n\r\n## \u26a0\ufe0f \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435\r\n\r\n\u042d\u0442\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0430 \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0438 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u0446\u0435\u043b\u0435\u0439. \u0422\u043e\u0440\u0433\u043e\u0432\u043b\u044f \u043d\u0430 \u0444\u0438\u043d\u0430\u043d\u0441\u043e\u0432\u044b\u0445 \u0440\u044b\u043d\u043a\u0430\u0445 \u0441\u0432\u044f\u0437\u0430\u043d\u0430 \u0441 \u0432\u044b\u0441\u043e\u043a\u0438\u043c\u0438 \u0440\u0438\u0441\u043a\u0430\u043c\u0438. \u0412\u0441\u0435\u0433\u0434\u0430 \u0442\u0435\u0441\u0442\u0438\u0440\u0443\u0439\u0442\u0435 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438 \u043d\u0430 \u0434\u0435\u043c\u043e-\u0441\u0447\u0435\u0442\u0430\u0445 \u043f\u0435\u0440\u0435\u0434 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u0440\u0435\u0434\u0441\u0442\u0432.\r\n\r\n## \ud83d\udcde \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430\r\n\r\n- \ud83d\udce7 Email: mtrfrgm@gmail.com\r\n- \ud83d\udc1b Issues: [GitHub Issues](https://github.com/yourusername/mt5-trading-lib/issues)\r\n- \ud83d\udcac Discussions: [GitHub Discussions](https://github.com/yourusername/mt5-trading-lib/discussions)\r\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "\u0421\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f Python-\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043b\u044f \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441 MetaTrader5",
    "version": "0.1.1",
    "project_urls": {
        "Bug Tracker": "https://github.com/paxelcool/MT5_trading_lib_project/issues",
        "Documentation": "https://github.com/paxelcool/MT5_trading_lib_project/blob/main/README.md",
        "Homepage": "https://github.com/paxelcool/MT5_trading_lib_project",
        "Repository": "https://github.com/paxelcool/MT5_trading_lib_project"
    },
    "split_keywords": [
        "trading",
        " metatrader5",
        " forex",
        " finance"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4874c5afc3af524a8e1a8a0770293ee9ed9e12073fb87ff9ee8c2d823e64afea",
                "md5": "e2c91c8a96f2fe80abc73fe8e39dab4b",
                "sha256": "84533cb06f81b1c2a57349e74c5cf9d08e59aa2eeec4c6191e56085f446ec89e"
            },
            "downloads": -1,
            "filename": "mt5_trading_lib-0.1.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "e2c91c8a96f2fe80abc73fe8e39dab4b",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 54990,
            "upload_time": "2025-08-13T13:52:34",
            "upload_time_iso_8601": "2025-08-13T13:52:34.058268Z",
            "url": "https://files.pythonhosted.org/packages/48/74/c5afc3af524a8e1a8a0770293ee9ed9e12073fb87ff9ee8c2d823e64afea/mt5_trading_lib-0.1.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "fbf15441e89261feaa64d9989edf92af895c67634861bbbc56eea76ee6f2a72c",
                "md5": "41e4bd72381f157e91c8e1cac05b8560",
                "sha256": "4ae289b82d4b6addab5728e09e84b6df1e74d47e3fb3d29d636c0d7b106dcdbc"
            },
            "downloads": -1,
            "filename": "mt5_trading_lib-0.1.1.tar.gz",
            "has_sig": false,
            "md5_digest": "41e4bd72381f157e91c8e1cac05b8560",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 58088,
            "upload_time": "2025-08-13T13:52:35",
            "upload_time_iso_8601": "2025-08-13T13:52:35.690530Z",
            "url": "https://files.pythonhosted.org/packages/fb/f1/5441e89261feaa64d9989edf92af895c67634861bbbc56eea76ee6f2a72c/mt5_trading_lib-0.1.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-13 13:52:35",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "paxelcool",
    "github_project": "MT5_trading_lib_project",
    "github_not_found": true,
    "lcname": "mt5-trading-lib"
}
        
Elapsed time: 0.48272s