timurila/mt5rest
MT5 RESTFul API that allows to work directly with any MT5 Server.
453
Full functional trial version for 14 days. More details and full version available at:
docker run -d --restart always --name mt5rest -p 5000:80 mtapiio/mt5rest
After that open in browser: http://localhost:5000
To establish connection with MT5 Server use Connect endpoint. It requires broker host, port, mt5 account number and password.
https://mt5.mtapi.io/Connect?user=62333850&password=tecimil4&host=78.140.180.198&port=443
It returns token that you need to use as 'id' parameter in further requests to server.
If you need Balance, Equity, Currency, FreeMargin etc. please use AccountSummary endpoint.
https://mt5.mtapi.io/AccountSummary?id=demo-token-mt5
To send different types of orders use OrderSend endpoint.
Market order: https://mt5.mtapi.io/OrderSend?id=demo-token-mt5&symbol=EURUSD&operation=Buy&volume=0.01
Stop order: https://mt5.mtapi.io/OrderSend?id=demo-token-mt5&symbol=EURUSD&operation=BuyStop&volume=0.01&price=1.5
Limit order: https://mt5.mtapi.io/OrderSend?id=demo-token-mt5&symbol=EURUSD&operation=BuyLimit&volume=0.01&price=0.5
Use OrderHistory endpoint to get list of closed orders.
https://mt5.mtapi.io/OrderHistory?id=demo-token-mt5&from=1970-01-01T00:00:00&to=2022-09-01T00:00:00
To get list of active market and pending orders use OpenedOrders endpoint.
https://mt5.mtapi.io/OpenedOrders?id=demo-token-mt5
It returns array of orders.
To get list of trading instruments please use Symbols endpoint.
https://mt5.mtapi.io/Symbols?id=demo-token-mt5
To get details of certain symbol use SymbolParams endpoint.
https://mt5.mtapi.io/SymbolParams?id=demo-token-mt5&symbol=EURUSD
Call /Connect method to get identification token.
https://mt5.mtapi.io/Connect?user=62333850&password=tecimil4&host=78.140.180.198&port=443
In websocket test client open link like this:
wss://mt5.mtapi.io/events?id=demo-token-mt5
where “id” parameter is identification token from previous step.
Simple Web Socket test client for chrome browser: https://chrome.google.com/webstore/detail/websocket-test-client/fgponpodhbmadfljofbimhhlengambbn
Call /Subscribe method
https://mt5.mtapi.be/Subscribe?id=demo-token-mt5&symbol=EURUSD
Quotes should start to flow in websocket test client
Install docker. https://docs.docker.com/engine/install/debian/
Pull and run
docker pull mtapiio/mt5rest
docker run --rm -p 5000:80 mtapiio/mt5rest
After that you can access API at http://localhost:5000.
We recommend to install on Debian 11 as below:
sudo apt-get update
sudo apt install snapd
sudo snap install microk8s –classic
cd /snap/bin
./microk8s enable dns dashboard storage
nano ~/mt5dep.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: mt5rest
labels:
app: mt5rest
spec:
replicas: 2
selector:
matchLabels:
app: mt5rest
template:
metadata:
labels:
app: mt5rest
spec:
containers:
– name: mt5rest
image: mtapiio/mt5rest
ports:
– containerPort: 80
livenessProbe:
httpGet:
path: /healthz
port: 80
initialDelaySeconds: 10
timeoutSeconds: 2
periodSeconds: 3
./microk8s.kubectl apply -f ~/mt5dep.yaml
nano ~/mt5srv.yaml
kind: Service
apiVersion: v1
metadata:
name: mt5rest
spec:
selector:
app: mt5rest
type: NodePort
ports:
– name: http
protocol: TCP
port: 80
nodePort: 30400
sessionAffinity: ClientIP
./microk8s.kubectl apply -f ~/mt5srv.yaml
./microk8s.kubectl –namespace kube-system patch svc kubernetes-dashboard -p ‘{“spec”: {“type”: “NodePort”}}’
./microk8s.kubectl –namespace kube-system patch svc kubernetes-dashboard -p ‘{“spec”: {“ports”:[{“nodePort”: 30100,”port”: 443,”protocol”: “TCP”,”targetPort”: 8443}]}}’
Check how is whole system running:
./microk8s kubectl get all –all-namespaces
Get control panel token:
token=$(./microk8s kubectl -n kube-system get secret | grep default-token | cut -d ” ” -f1)
./microk8s kubectl -n kube-system describe secret $token
After that control panel should be available at https://localhost:30100 and restful service at http://localhost:30400.
Install docker. https://docs.docker.com/engine/install/debian/
Login to our container registry with your username and password.
docker login reg.mtapi.io:5050
microk8s kubectl create secret generic regcred2 --from-file=.dockerconfigjson=/root/.docker/config.json --type=kubernetes.io/dockerconfigjson
apiVersion: apps/v1
kind: Deployment
metadata:
name: mt5rest
labels:
app: mt5rest
spec:
replicas: 2
selector:
matchLabels:
app: mt5rest
template:
metadata:
labels:
app: mt5rest
spec:
containers:
– name: mt5rest
image: reg.mtapi.io:5050/root/mt5rest-full/mt5rest
ports:
– containerPort: 80
livenessProbe:
httpGet:
path: /healthz
port: 80
initialDelaySeconds: 10
timeoutSeconds: 2
periodSeconds: 3
imagePullSecrets:
- name: regcred2
docker pull timurila/mt5rest