Kết nối tập lệnh Python với terminal và tài khoản
Hàm initialize
thiết lập kết nối với terminal MetaTrader 5 và có 2 dạng: ngắn (không có tham số) và đầy đủ (với một số tham số tùy chọn, tham số đầu tiên là path
và là tham số vị trí, còn tất cả các tham số còn lại là tham số đặt tên).
bool initialize()
bool initialize(path, account = <ACCOUNT>, password = "PASSWORD", server = "SERVER", timeout = 60000, portable = False)
Tham số path
đặt đường dẫn đến tệp terminal (metatrader64.exe
) (lưu ý rằng đây là tham số không đặt tên, không giống như tất cả các tham số khác, vì vậy nếu nó được chỉ định, nó phải đứng đầu trong danh sách).
Nếu đường dẫn không được chỉ định, mô-đun sẽ cố gắng tự tìm tệp thực thi (các nhà phát triển không tiết lộ thuật toán chính xác). Để loại bỏ sự mơ hồ, hãy sử dụng dạng thứ hai của hàm với các tham số.
Trong tham số account
, bạn có thể chỉ định số tài khoản giao dịch. Nếu không được chỉ định, tài khoản giao dịch cuối cùng trong phiên bản terminal đã chọn sẽ được sử dụng.
Mật khẩu cho tài khoản giao dịch được chỉ định trong tham số password
và cũng có thể được bỏ qua: trong trường hợp này, mật khẩu được lưu trong cơ sở dữ liệu terminal cho tài khoản giao dịch đã chỉ định sẽ được tự động thay thế.
Tham số server
được xử lý tương tự với tên máy chủ giao dịch (như được chỉ định trong terminal): nếu không được chỉ định, máy chủ được lưu trong cơ sở dữ liệu terminal cho tài khoản giao dịch đã chỉ định sẽ được tự động thay thế.
Tham số timeout
cho biết thời gian chờ tính bằng mili giây được cấp cho kết nối (nếu vượt quá, sẽ xảy ra lỗi). Giá trị mặc định là 60000 (60 giây).
Tham số portable
chứa cờ để khởi chạy terminal ở chế độ portable (mặc định là False
).
Hàm trả về True
trong trường hợp kết nối thành công với terminal MetaTrader 5 và False
nếu không.
Nếu cần, khi gọi initialize
, terminal MetaTrader 5 có thể được khởi chạy.
Ví dụ, kết nối với một tài khoản giao dịch cụ thể được thực hiện như sau:
import MetaTrader5 as mt5
if not mt5.initialize(login = 562175752, server = "MetaQuotes-Demo", password = "abc"):
print("initialize() failed, error code =", mt5.last_error())
quit()
...
2
3
4
5
Hàm login
cũng kết nối với tài khoản giao dịch với các tham số đã chỉ định. Nhưng điều này ngụ ý rằng kết nối với terminal đã được thiết lập, tức là hàm thường được sử dụng để thay đổi tài khoản.
bool login(account, password = "PASSWORD", server = "SERVER", timeout = 60000)
Số tài khoản giao dịch được cung cấp trong tham số account
. Đây là tham số không đặt tên bắt buộc, nghĩa là nó phải đứng đầu trong danh sách.
Các tham số password
, server
, và timeout
giống với các tham số liên quan của hàm initialize
.
Hàm trả về True
trong trường hợp kết nối thành công với tài khoản giao dịch và False
nếu không.
shutdown()
Hàm shutdown
đóng kết nối đã thiết lập trước đó với terminal MetaTrader 5.
Ví dụ cho các hàm trên sẽ được cung cấp trong phần tiếp theo.
Khi kết nối được thiết lập, tập lệnh có thể tìm phiên bản của terminal.
tuple version()
Hàm version
trả về thông tin ngắn gọn về phiên bản của terminal MetaTrader 5 dưới dạng tuple gồm ba giá trị: số phiên bản, số build, và ngày build.
Kiểu trường | Mô tả |
---|---|
integer | Phiên bản terminal MetaTrader 5 (hiện tại, 500) |
integer | Số build (ví dụ, 3456) |
string | Ngày build (ví dụ: '25 Feb 2022') |
Trong trường hợp có lỗi, hàm trả về None
, và mã lỗi có thể được lấy bằng last_error
.
Thông tin đầy đủ hơn về terminal có thể được lấy bằng hàm terminal_info
.