Quick Start

Basic Connection

import asyncio
from pymt5 import MT5WebClient


async def main():
    async with MT5WebClient(auto_reconnect=True) as client:
        await client.login(login=12345678, password="your-password")

        # Load symbol cache
        await client.load_symbols()
        print(f"Loaded {len(client.symbol_names)} symbols")

        # Full account info
        acct = await client.get_account()
        print(f"Balance: {acct['balance']}, Currency: {acct['currency']}")

        # Symbol groups
        groups = await client.get_symbol_groups()
        print(f"Groups: {groups}")

        await asyncio.sleep(5)


asyncio.run(main())

Tick Subscription

async with MT5WebClient() as client:
    await client.login(login=12345678, password="your-password")
    await client.load_symbols()

    def on_ticks(ticks):
        for t in ticks:
            print(f"TICK {t.get('symbol', t['symbol_id'])}: "
                  f"bid={t['bid']} ask={t['ask']}")

    client.on_tick(on_ticks)
    await client.subscribe_symbols(["EURUSD", "GBPUSD"])
    await asyncio.sleep(30)

Logging

Enable debug logging to see protocol details:

import logging
logging.basicConfig(level=logging.DEBUG)
# Loggers: pymt5.client, pymt5.transport