Metadata-Version: 2.1
Name: metatrader-sockets-client
Version: 0.0.2
Summary: Client SDK of MetaTrader Sockets API
Home-page: https://github.com/FortesenseLabs/metatrader-terminal/clients/metatrader-sockets
Download-URL: https://github.com/FortesenseLabs/metatrader-terminal/archive/refs/tags/v0.0.2.tar.gz
Author: Fortesense Labs
Author-email: fortesenselabs@gmail.com
License: GPL-3.0
Project-URL: Bug Reports, https://github.com/FortesenseLabs/metatrader-terminal/issues
Project-URL: Source, https://github.com/FortesenseLabs/metatrader-terminal/clients/metatrader-sockets
Project-URL: Documentation, https://github.com/FortesenseLabs/metatrader-terminal/clients/metatrader-sockets/examples
Keywords: metatrader,api,socket-io,mt5,mt4,websockets,mt5-ea,f-api,historical-data,financial-data,stocks,funds,etfs,indices,currency crosses,bonds,commodities,crypto currencies,synthetic instruments,trading,investment,portfolio,backtesting,quantitative analysis
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: License :: OSI Approved :: MIT License
Classifier: Intended Audience :: Developers
Classifier: Topic :: Office/Business :: Financial
Classifier: Topic :: Office/Business :: Financial :: Investment
Classifier: Topic :: Scientific/Engineering :: Information Analysis
Classifier: Topic :: Software Development :: Libraries
Requires-Python: >=3.7
Description-Content-Type: text/markdown
Requires-Dist: colorlog
Requires-Dist: pydantic ==2.8.0
Requires-Dist: asyncio >=3.4.3
Requires-Dist: python-socketio ==5.11.3

# MetaTrader Sockets API Client

Client SDK of MetaTrader Sockets API

## Run

```python
import asyncio
from metatrader import (
    TerminalClient,
)


async def main():
    client = await TerminalClient.create(verbose=False)

    async def fetch_account_info():
        account_info = await client.get_account()
        if account_info:
            print(f"Account Info: {account_info}")
        else:
            print("Failed to fetch account info.")

    async def fetch_exchange_info():
        exchange_info = await client.get_exchange_info()
        if exchange_info:
            print(f"Exchange Info: {exchange_info}")
        else:
            print("Failed to fetch exchange info.")

    await fetch_account_info()
    # OR
    tasks = [fetch_account_info, fetch_exchange_info]
    await client._run(tasks)


if __name__ == "__main__":
    loop = asyncio.get_event_loop()
    try:
        loop.run_until_complete(main())
    finally:
        loop.close()

```
