Skip to main content

Asynchronous MetaTrader5 library and Bot Builder

Project description

aiomql

GitHub GitHub issues PyPI GitHub Workflow Status Libraries.io dependency status for GitHub repo

Installation

pip install aiomql

Key Features

  • Asynchronous Python Library For MetaTrader 5
  • Build bots for trading in different financial markets using a bot factory
  • Use threadpool or proccesspool executors to run multiple strategies on multiple instruments concurrently
  • Record and keep track of trades and strategies in csv files.
  • Utility classes for using the MetaTrader 5 Library
  • Sample Pre-Built strategies

Simple Usage as an Async MetaTrader5 Libray

import asyncio

# import the class
from aiomql import MetaTrader
from aiomql import Account, Terminal
from aiomql import TimeFrame, OrderType


async def main():
    # Initialize Terminal
    terminal = Terminal()
    mt5 = MetaTrader()
    await mt5.initialize()

    # create Account
    account = Account(account_number=30371334, password="nwa0#anaEze", server="Deriv-Demo")

    # login with account
    await account.login()

    # connection status with the account.connected property
    res = "Login Successful" if account.connected else "Unable to login into account"
    print(res)

    # set account properties
    account.risk = 0.10  # percentage of account equity to risk i.e 10%
    account.risk_to_reward = 3

    # get symbols available for the account if login was successful
    if account.connected:
        symbols = await mt5.symbols_get()
        print(symbols)

    # print timeframe constant for five minutes
    print(TimeFrame.M5)
    await terminal.shutdown()


asyncio.run(main())

As a Bot Building FrameWork using a Prebuilt Strategy

import logging

from aiomql import Bot
from aiomql.lib import ForexMarket, FingerTrap

fmt = "%(asctime)s : %(message)s"

logging.basicConfig(filename='example.log', format=fmt, level=logging.DEBUG)

market = ForexMarket()
bot = Bot(market=market)

# Finger strategy on all instruments in the forex markets
bot.add_strategy_all(strategy=FingerTrap)
bot.execute()
# This assumes that a mt5.json config file with account_number, password and server keys is available

see docs

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aiomql-1.tar.gz (37.7 kB view details)

Uploaded Source

Built Distribution

aiomql-1-py3-none-any.whl (44.4 kB view details)

Uploaded Python 3

File details

Details for the file aiomql-1.tar.gz.

File metadata

  • Download URL: aiomql-1.tar.gz
  • Upload date:
  • Size: 37.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.4

File hashes

Hashes for aiomql-1.tar.gz
Algorithm Hash digest
SHA256 cb9a52a620c6c497a810edf453b1f752199043373b4a409838ffb34876a529a5
MD5 a6506c10b583097070c5345d3bc8b05f
BLAKE2b-256 ee9f6d2ca71c79431a5fa7fde9f41adc39da459370c3b5b0d89f9ba5c18c935b

See more details on using hashes here.

File details

Details for the file aiomql-1-py3-none-any.whl.

File metadata

  • Download URL: aiomql-1-py3-none-any.whl
  • Upload date:
  • Size: 44.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.4

File hashes

Hashes for aiomql-1-py3-none-any.whl
Algorithm Hash digest
SHA256 3fabd67e1ffa3112c406531b7d8639ee9378e859d3b676dc5967bb6c56e44bb5
MD5 9f94d1fb2de45346b2a37a5eac3a4332
BLAKE2b-256 e20b135e4bcba02cc89961dabf4f930895e68a18329979b5125e693ba0758317

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page