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
- Poll your data, on regular time intervals
- 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 46e04a6a00a6ed24ebd87e12e0f53b513fcec45a4aca2a965e778d3c01b1c5e3 |
|
MD5 | 002fc9d8c99569615a47907cb205ffeb |
|
BLAKE2b-256 | a84c31bcf157c9a704e9c2c8bddc14c7fd751e35fdc4255598dd4fc8c47efd2f |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | cd0ba358df1bbd821ee975c6d7ccf27a47979b6b88f883636729a9a234794021 |
|
MD5 | b642d9af00e86590bd06bcff2d491ec3 |
|
BLAKE2b-256 | f915e65cfe915cd60742128ec2605f7c0a48a4bbc67d0108e1f79c9c459af12c |