Skip to main content

No project description provided

Project description

metrapy

A batteries included wrapper around MetaTrader5's python utility.

[+] Wrapper Functions: Get account, tickers, orders, positions, history & deals

[+] Polling utility that uses thread to fetch data periodically

[+] Wrapper utility for placing orders, Maps for MT5 constants

What does it tries to solve?

It tries to make working with Python + MT5 easier, by adding default validation & error messages, parsing responses, and wrapping them appropriately.

Installation

  pip install metrapy

Connection

  from metrapy.connector import MT5

  mpy = MT5({
    'server': 'ServerName-Global',
    'login': 1876876,
    'password': 'yourpass'
  })

  # Default terminal path location is already provided. However, you can override that with your own.

   mpy = MT5({
    'path': 'your-terminal-location',
    'server': 'ServerName-Global',
    'login': 1876876,
    'password': 'yourpass'
  })

[x] Make sure you have Algorithmic trading enabled in MT5 terminal

Exposed Defaults

  • timezone is UTC 0 by default, you can override it with your own.
  • mt5 core package is exposed as _mt5 property. so, you do not need to import it explicitly.
   mt5 = mpy._mt5
  • All the mappings are exposed via mpy.maps property.
  • mpy.connected provides connected status
  • You can pass magic & debug parameters to the MT5() constructor, for helpful debugging.

Polling Utility

MT5 does not provide for data fetching in realtime mode. So, the options are

  1. Poll your data, on regular time intervals
  2. Make a bridge between MQL5 & Python to fetch that data (using sockets, streams or something else)

Support for 1 is available and should be useful enough in most of the cases.

  from metrapy.sync import poller

  poller(your_func, timeframe, adjusted_secs=0)
  • your_func is piece of code to execute at any given timeframe
  • supports integer (number of secs), or timeframe (1s, 1M, 2M, 5M, 15M, 30M, 1H, 4H, 1D, 1W)
   def start():
     print("5 minutes spent")

    poller(start, "5M")

    poller(start, 100, 2)

It must be noted that code will run at regular time intervals, not from when you start the code. For example, above code will run at HH:05, HH:10, HH:15, HH:20, ...

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

metrapy-0.2.1.tar.gz (6.9 kB view details)

Uploaded Source

Built Distribution

metrapy-0.2.1-py3-none-any.whl (8.1 kB view details)

Uploaded Python 3

File details

Details for the file metrapy-0.2.1.tar.gz.

File metadata

  • Download URL: metrapy-0.2.1.tar.gz
  • Upload date:
  • Size: 6.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.6.1 CPython/3.11.4 Windows/10

File hashes

Hashes for metrapy-0.2.1.tar.gz
Algorithm Hash digest
SHA256 46e04a6a00a6ed24ebd87e12e0f53b513fcec45a4aca2a965e778d3c01b1c5e3
MD5 002fc9d8c99569615a47907cb205ffeb
BLAKE2b-256 a84c31bcf157c9a704e9c2c8bddc14c7fd751e35fdc4255598dd4fc8c47efd2f

See more details on using hashes here.

File details

Details for the file metrapy-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: metrapy-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 8.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.6.1 CPython/3.11.4 Windows/10

File hashes

Hashes for metrapy-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 cd0ba358df1bbd821ee975c6d7ccf27a47979b6b88f883636729a9a234794021
MD5 b642d9af00e86590bd06bcff2d491ec3
BLAKE2b-256 f915e65cfe915cd60742128ec2605f7c0a48a4bbc67d0108e1f79c9c459af12c

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