Skip to main content

Metatrader API

Project description

Python Metatrader DataFrame API

for the server side you need to download Metatrader docker from

https://github.com/traderpedroso/datafeed-mt5-docker

Installation

pip install ejtraderMT

or
git clone https://github.com/traderpedroso/ejtraderMT
cd ejtraderMT
python setup.py install

import

from ejtraderMT import Metatrader

Connect to expert to Metatrader 5

# for change the host Metatrader("hostIP")
mt = Metatrader()

Account information

accountInfo = mt.accountInfo()
print(accountInfo)
print(accountInfo['broker'])
print(accountInfo['balance'])

You can create market or pending order with the commands.

Market Orders

# symbol, volume, stoploss, takeprofit, deviation
mt.buy("EURUSD", 0.01, 1.18, 1.19, 5)
mt.sell("EURUSD", 0.01, 1.18, 1.19, 5)

Limit Orders

# symbol, volume, stoploss, takeprofit, price, deviation
mt.buyLimit("EURUSD", 0.01, 1.17, 1.19, 1.18, 5)
mt.sellLimit("EURUSD", 0.01, 1.20, 1.17, 1.19, 5)

Stop Orders

#symbol, volume, stoploss, takeprofit, price, deviation
mt.buyStop("EURUSD", 0.01, 1.18, 1.20, 1.19, 5)
mt.sellStop("EURUSD", 0.01, 1.19, 1.17, 1.18, 5)

Positions & Manipulation

positions = mt.positions()


if 'positions' in positions:
    for position in positions['positions']:
        mt.CloseById(position['id'])

Orders & Manipulation

orders = mt.orders()

if 'orders' in orders:
    for order in orders['orders']:
        mt.CancelById(order['id'])

Modify possition

mt.positionModify( id, stoploss, takeprofit)

Modify order

mt.orderModify( id, stoploss, takeprofit, price)

close by symbol

mt.CloseBySymbol("EURUSD")

close particial

# id , volume
mt.ClosePartial( id, volume)

If you want to cancel all Orders

mt.cancel_all()

if you want to close all positions

mt.close_all()

History fromDate toDate

symbol = "EURUSD"
timeframe = "M1"
fromDate = "24/02/2021"
toDate = "24/02/2021"

history = mt.history(symbol,timeframe,fromDate,toDate)
print(history)

                        open     high      low    close  volume  spread
date
2021-02-24 02:55:00  1.21628  1.21637  1.21572  1.21582   228.0       5
2021-02-24 03:00:00  1.21583  1.21620  1.21576  1.21615   273.0       5
2021-02-24 03:05:00  1.21614  1.21618  1.21577  1.21583   338.0       5
2021-02-24 03:10:00  1.21585  1.21608  1.21579  1.21598   218.0       5
2021-02-24 03:15:00  1.21599  1.21603  1.21578  1.21581   199.0       5
2021-02-24 03:20:00  1.21580  1.21608  1.21577  1.21602   323.0       5
2021-02-24 03:25:00  1.21601  1.21606  1.21582  1.21588   157.0       5
2021-02-24 03:30:00  1.21589  1.21597  1.21548  1.21553   238.0       5
2021-02-24 03:35:00  1.21553  1.21578  1.21550  1.21577   216.0       5
2021-02-24 03:40:00  1.21576  1.21579  1.21533  1.21553   242.0       5
2021-02-24 03:45:00  1.21552  1.21554  1.21524  1.21528   245.0       5
2021-02-24 03:50:00  1.21528  1.21543  1.21509  1.21542   198.0       5
2021-02-24 03:55:00  1.21541  1.21557  1.21535  1.21554   214.0       5
2021-02-24 04:00:00  1.21555  1.21567  1.21544  1.21564   222.0       5
2021-02-24 04:05:00  1.21563  1.21564  1.21533  1.21540   207.0       5
2021-02-24 04:10:00  1.21539  1.21559  1.21523  1.21554   206.0       5
2021-02-24 04:15:00  1.21554  1.21566  1.21543  1.21548   244.0       5
2021-02-24 04:20:00  1.21548  1.21564  1.21544  1.21554    99.0       5
2021-02-24 04:25:00  1.21553  1.21565  1.21544  1.21556   149.0       5
2021-02-24 04:30:00  1.21557  1.21563  1.21527  1.21532   133.0       5
2021-02-24 04:35:00  1.21533  1.21558  1.21522  1.21536   184.0       5
2021-02-24 04:40:00  1.21537  1.21550  1.21525  1.21546   260.0       5
2021-02-24 04:45:00  1.21548  1.21548  1.21527  1.21529   216.0       5
2021-02-24 04:50:00  1.21529  1.21547  1.21517  1.21523   151.0       5
2021-02-24 04:55:00  1.21521  1.21527  1.21501  1.21517   160.0       5
2021-02-24 05:00:00  1.21518  1.21521  1.21509  1.21513   130.0       5
2021-02-24 05:05:00  1.21513  1.21516  1.21493  1.21508   202.0       5
2021-02-24 05:10:00  1.21507  1.21520  1.21506  1.21508   129.0       5
2021-02-24 05:15:00  1.21508  1.21515  1.21502  1.21502   129.0       5
2021-02-24 05:20:00  1.21503  1.21506  1.21496  1.21503   120.0       5
2021-02-24 05:25:00  1.21503  1.21513  1.21501  1.21508    64.0       5
2021-02-24 05:30:00  1.21509  1.21513  1.21496  1.21498   134.0       5
2021-02-24 05:35:00  1.21498  1.21503  1.21495  1.21502   101.0       5
2021-02-24 05:40:00  1.21502  1.21504  1.21492  1.21495    89.0       5
2021-02-24 05:45:00  1.21496  1.21498  1.21476  1.21485   123.0       5
2021-02-24 05:50:00  1.21486  1.21496  1.21486  1.21493    41.0       5

Short History

symbol = "EURUSD"
timeframe = "M1"

history = mt.Shorthistory(symbol,timeframe,1)
print(history)

                        open     high      low    close  volume  spread
date
2021-02-24 02:55:00  1.21628  1.21637  1.21572  1.21582   228.0       5
2021-02-24 03:00:00  1.21583  1.21620  1.21576  1.21615   273.0       5
2021-02-24 03:05:00  1.21614  1.21618  1.21577  1.21583   338.0       5
2021-02-24 03:10:00  1.21585  1.21608  1.21579  1.21598   218.0       5
2021-02-24 03:15:00  1.21599  1.21603  1.21578  1.21581   199.0       5
2021-02-24 03:20:00  1.21580  1.21608  1.21577  1.21602   323.0       5
2021-02-24 03:25:00  1.21601  1.21606  1.21582  1.21588   157.0       5
2021-02-24 03:30:00  1.21589  1.21597  1.21548  1.21553   238.0       5
2021-02-24 03:35:00  1.21553  1.21578  1.21550  1.21577   216.0       5
2021-02-24 03:40:00  1.21576  1.21579  1.21533  1.21553   242.0       5
2021-02-24 03:45:00  1.21552  1.21554  1.21524  1.21528   245.0       5
2021-02-24 03:50:00  1.21528  1.21543  1.21509  1.21542   198.0       5
2021-02-24 03:55:00  1.21541  1.21557  1.21535  1.21554   214.0       5
2021-02-24 04:00:00  1.21555  1.21567  1.21544  1.21564   222.0       5
2021-02-24 04:05:00  1.21563  1.21564  1.21533  1.21540   207.0       5
2021-02-24 04:10:00  1.21539  1.21559  1.21523  1.21554   206.0       5
2021-02-24 04:15:00  1.21554  1.21566  1.21543  1.21548   244.0       5
2021-02-24 04:20:00  1.21548  1.21564  1.21544  1.21554    99.0       5
2021-02-24 04:25:00  1.21553  1.21565  1.21544  1.21556   149.0       5
2021-02-24 04:30:00  1.21557  1.21563  1.21527  1.21532   133.0       5
2021-02-24 04:35:00  1.21533  1.21558  1.21522  1.21536   184.0       5
2021-02-24 04:40:00  1.21537  1.21550  1.21525  1.21546   260.0       5
2021-02-24 04:45:00  1.21548  1.21548  1.21527  1.21529   216.0       5
2021-02-24 04:50:00  1.21529  1.21547  1.21517  1.21523   151.0       5
2021-02-24 04:55:00  1.21521  1.21527  1.21501  1.21517   160.0       5
2021-02-24 05:00:00  1.21518  1.21521  1.21509  1.21513   130.0       5
2021-02-24 05:05:00  1.21513  1.21516  1.21493  1.21508   202.0       5
2021-02-24 05:10:00  1.21507  1.21520  1.21506  1.21508   129.0       5
2021-02-24 05:15:00  1.21508  1.21515  1.21502  1.21502   129.0       5
2021-02-24 05:20:00  1.21503  1.21506  1.21496  1.21503   120.0       5
2021-02-24 05:25:00  1.21503  1.21513  1.21501  1.21508    64.0       5
2021-02-24 05:30:00  1.21509  1.21513  1.21496  1.21498   134.0       5
2021-02-24 05:35:00  1.21498  1.21503  1.21495  1.21502   101.0       5
2021-02-24 05:40:00  1.21502  1.21504  1.21492  1.21495    89.0       5
2021-02-24 05:45:00  1.21496  1.21498  1.21476  1.21485   123.0       5
2021-02-24 05:50:00  1.21486  1.21496  1.21486  1.21493    41.0       5

Live data and streaming events

from ejtraderMT import Metatrader
from threading import Thread




api = Metatrader()

symbols = ["EURUSD","GBPUSD","AUDUSD"]
timeframe = "TICK"


# Live data stream subscribe
api.live(symbols,timeframe)




def price():
    connect = api.livePrice
    while True:
        price = connect.recv_json()
        print(price)


def event():
    connect = api.liveEvent
    while True:
        event = connect.recv_json()
        print(event)




t = Thread(target=price, daemon=True)
t.start()

t = Thread(target=event, daemon=True)
t.start()




while True:
    pass

,,,
### Future add comming soon

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

ejtraderMT-1.0.0.tar.gz (9.8 kB view details)

Uploaded Source

Built Distribution

ejtraderMT-1.0.0-py3-none-any.whl (7.5 kB view details)

Uploaded Python 3

File details

Details for the file ejtraderMT-1.0.0.tar.gz.

File metadata

  • Download URL: ejtraderMT-1.0.0.tar.gz
  • Upload date:
  • Size: 9.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/52.0.0.post20210125 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.5

File hashes

Hashes for ejtraderMT-1.0.0.tar.gz
Algorithm Hash digest
SHA256 8566cf557032827c35aa11b482f90065653654521933418d3801ee0ee86fb15d
MD5 f206184af13f6ee9e0ad1a7538f887e6
BLAKE2b-256 0e1cbbd58a90167d5a76e97a38559a89d789348df7d401939a4a3dea97f136da

See more details on using hashes here.

File details

Details for the file ejtraderMT-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: ejtraderMT-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 7.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/52.0.0.post20210125 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.5

File hashes

Hashes for ejtraderMT-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0454a470ebb84d6c19e8b600b7b792175a1476c92e573d0c0f100d0ff7e41f2d
MD5 8f8a43725be8362cd948de2ab99aca16
BLAKE2b-256 6415fe29ef1a6f401abfb1e52dc5a6af66ad2d808ef177401a071116aa4b9d4f

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