Skip to main content

tickerall-nt-community

An independent community MetaTrader 5 adapter for NautilusTrader — stream live market data and backtest any MT5 broker (Exness, IC Markets, Pepperstone, FBS, and more) from Linux, macOS, or Windows, with no local MT5 terminal in the path. Live trading is coming in Phase 2 (see Status).

⚠️ Disclaimer: This is an independent community project. It is not affiliated with, endorsed by, or supported by Nautech Systems Pty Ltd or the official NautilusTrader project.

Disclosure: This adapter is built and maintained by Miguel Santos, who also builds and operates TickerAll — the hosted MT5 API this adapter connects to. It is an open-source client for that API; you need a TickerAll account and API key to use it.

PyPI License: MIT Python 3.11+ Platform: any


What this is

tickerall-nt-community connects NautilusTrader to MetaTrader 5 brokers through TickerAll, a hosted MT5 API (REST + WebSocket). Because the broker session lives on TickerAll's servers, the adapter itself is a plain HTTP/WebSocket client — structurally a standard live adapter, like NautilusTrader's other venue integrations.

                              (any OS, no terminal)
NautilusTrader  ←→  tickerall-nt-community  ←→  TickerAll hosted API  ←→  MT5 broker
                     quote ticks + bars          (holds the broker
                     (live trading: Phase 2)      session)

Why hosted?

The standard MetaTrader5 Python library is Windows-only and needs a running MT5 terminal. That forces algo devs onto a Windows box or a Wine/Docker workaround just to reach a broker. This adapter removes both: the terminal runs on TickerAll's infrastructure, and your strategy process talks to it over HTTPS/WSS from any operating system — a Linux server, a Mac laptop, a container, a CI runner.

If you already run a local Windows MT5 terminal and prefer to keep the broker session on your own machine, the mt5-connector community adapter is a good local-terminal alternative. This project is for people who want a hosted, OS-agnostic path instead.


Status

This is an early release. Feature coverage is being built out in phases:

Phase Scope Status
1 Market data — instruments, live quote ticks, historical bars ✅ available
2 Execution — market/limit/stop orders, SL/TP, position + account reconciliation ⏳ planned

Live execution is intentionally not enabled yet — the execution client raises NotImplementedError until Phase 2 is complete and tested. Use Phase 1 for data + backtesting.


Requirements

  • Python 3.11+
  • A TickerAll account and API key (cf_...)
  • nautilus_trader
  • tickerall (the official TickerAll Python SDK; installed as a dependency)

Installation

pip install tickerall-nt-community

nautilus_trader and tickerall are installed automatically.

Or install from source:

git clone https://github.com/miguelangelo78/tickerall-nt-community.git
cd tickerall-nt-community
pip install -e .

See LOCAL_TESTING.md for a full walkthrough on any OS.

Quick start (data)

from nautilus_trader.config import TradingNodeConfig, InstrumentProviderConfig
from nautilus_trader.live.node import TradingNode

from tickerall_nt import (
    TickerAllDataClientConfig,
    TickerAllLiveDataClientFactory,
)

config = TradingNodeConfig(
    trader_id="TESTER-001",
    data_clients={
        "TICKERALL": TickerAllDataClientConfig(
            api_key="cf_...",               # or TICKERALL_API_KEY
            account="12345678",             # your MT5 login   (or TICKERALL_ACCOUNT)
            server="Exness-MT5Trial7",      # your broker server (or TICKERALL_SERVER)
            password="...",                 # your broker password (or TICKERALL_PASSWORD)
            instrument_provider=InstrumentProviderConfig(load_all=True),
        ),
    },
)

node = TradingNode(config=config)
node.add_data_client_factory("TICKERALL", TickerAllLiveDataClientFactory)
node.build()
# ... add your strategy, then node.run()

See examples/data_tester.py for a runnable data-only example, run.py for a quick smoke test with timings, and LOCAL_TESTING.md for step-by-step setup on any OS.

Connecting your account

You configure the adapter with the same details you use to log into MetaTrader — plus a TickerAll API key. You never handle an internal TickerAll account id. The adapter opens (warms) the broker session for you.

Field Meaning Env var
api_key Your TickerAll API key TICKERALL_API_KEY
account Your MT5 login number TICKERALL_ACCOUNT
server Your broker server TICKERALL_SERVER
password Your broker password TICKERALL_PASSWORD

Prefer the environment variables for the password rather than hard-coding it.

Quick-test shortcut: if you have already connected an account (it's hot) and it's the only hot account on your key, you can omit account/server/ password and the adapter uses it — just the API key. Execution (Phase 2) will always require the explicit account fields.


Symbol naming

MT5 symbols map to Nautilus instrument IDs as {SYMBOL}.TICKERALL, e.g. EURUSD.TICKERALL, XAUUSD.TICKERALL, BTCUSDm.TICKERALL. Broker-specific suffixes (e.g. the Exness m) are preserved verbatim as the raw symbol.

Safety

TickerAll enforces demo/live status server-side; this adapter does not bypass it. Test strategies on a demo account before trading anything funded. Trading is at your own risk.

License

MIT. NautilusTrader is licensed separately under LGPL-3.0.

Metadata

Release files for tickerall-nt-community 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tickerall-nt-community 0.1.1
File Size Uploaded
tickerall_nt_community-0.1.1.tar.gz 17.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tickerall-nt-community 0.1.1
File Interpreter ABI Platform
tickerall_nt_community-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 34.5 kB

Release files / tickerall_nt_community-0.1.1.tar.gz

Download URL tickerall_nt_community-0.1.1.tar.gz
Size 17.6 kB
Tags Source
SHA-256 checksum
How to use checksums
160d6e2cdb48be22ed57b4130266eaa66ff8e6609ea1e6fa0b11b1b6f99eed7a
BLAKE2b-256 checksum
How to use checksums
2af2b3eec0f29806a7471fb1742d10d802f21be46c9ea37bd24b0c77cc9f9b7e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.2

Release files / tickerall_nt_community-0.1.1-py3-none-any.whl

Download URL tickerall_nt_community-0.1.1-py3-none-any.whl
Size 16.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4d3a9bb637d94418ec27b8135fca3424c4a353df86669164b195678d8e48063d
BLAKE2b-256 checksum
How to use checksums
4abd90489267eb04de15e570e4e36f29cab6e2fa19670921083be2f1e23afd68
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.2

Release history Release notifications | RSS feed

0.1.2

2 release files

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page