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.

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

Install from source (a PyPI release is planned):

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

nautilus_trader and tickerall are installed automatically. 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.0

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.0
File Size Uploaded
tickerall_nt_community-0.1.0.tar.gz 17.1 kB Details

Built distribution (wheel)

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

Total release size: 33.9 kB

Release files / tickerall_nt_community-0.1.0.tar.gz

Download URL tickerall_nt_community-0.1.0.tar.gz
Size 17.1 kB
Tags Source
SHA-256 checksum
How to use checksums
12d8b2ee92417812791d71c5a6dcbef3b5d50f907de9fbf08d25e9e589816b4a
BLAKE2b-256 checksum
How to use checksums
c7461cf0d9315b3159756e79d9a99f4fe986fe097774d3470c2de36e5630e5fc
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.0-py3-none-any.whl

Download URL tickerall_nt_community-0.1.0-py3-none-any.whl
Size 16.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d5fd5c727ca31b03c78ce84320b12eb903811d069b477a95aa9d9e830b6c9ed5
BLAKE2b-256 checksum
How to use checksums
9d442cfb57c57323ae047cb0273c35efe76cc614105d8695efb6c97f900728cd
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

0.1.1

2 release files

This release

0.1.0 This release

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