Biến lịch sử MT5 thành báo cáo.
Đọc giao dịch thực tế. Tách tiền nạp. Xuất kết quả.
Hướng dẫn bằng văn bản
- 0:00
Biến lịch sử MT5 thành báo cáo.
Hướng dẫn này trình bày cách đọc lịch sử giao dịch MT5, tính kết quả giao dịch đã được ghi nhận và xuất báo cáo rõ ràng bằng Python.
- 0:11
Kết nối ở chế độ chỉ đọc.
Mở mt5.mrpc.pro và chọn ConnectEx. Nhập số đăng nhập, mật khẩu và máy chủ của nhà môi giới cho tài khoản demo. Dùng TRIAL hoặc khóa API của bạn. Để trống id tùy chọn. Chúng ta dùng mật khẩu nhà đầu tư để truy cập chỉ đọc. Bảng điều khiển sẽ lưu id terminal được trả về.
- 0:39
Kiểm tra tiền tệ của tài khoản.
Chạy AccountSummary. Đây là tài khoản demo dùng đô la Mỹ, với số dư chín mươi chín nghìn chín trăm chín mươi chín đô la và chín mươi sáu xu. Khi trình bày lợi nhuận và chi phí, hãy dùng tiền tệ của tài khoản.
- 0:57
Chọn một giai đoạn đã kết thúc.
Chọn DealsHistory. Điền inputFromUtc và inputToUtc bằng dấu thời gian kết thúc bằng Z. Để trống các trường giờ máy chủ môi giới tương ứng. Bản ghi này lấy từ ngày một tháng mười đến đầu ngày hai mươi tám tháng mười. Giữ nguyên khoảng thời gian khi yêu cầu các trang tiếp theo.
- 1:25
Đọc tất cả các trang.
Sau HTTP Status Code 200, hãy kiểm tra error trước. Phản hồi này không có lỗi API. Khi pageSize bằng hai, phản hồi đầu chỉ chứa hai trong tổng số mười ba giao dịch. Sao chép nextPageToken sang pageToken và giữ nguyên bộ lọc. Tiếp tục cho đến khi nextPageToken trống.
- 1:52
Lệnh, giao dịch khớp và vị thế.
Lệnh là chỉ thị giao dịch, còn deal ghi lại lần thực hiện. AllHistoryOrders hiển thị bản ghi lệnh. Trong DealsHistory, order liên kết đến số ticket của lệnh, còn positionId nhóm các lần thực hiện liên quan. Vị thế này có một lần vào không phẩy không hai lot và hai lần thoát, mỗi lần không phẩy không một lot.
- 2:19
Giữ nguyên dấu của số tiền.
Với mỗi deal, cộng profit, commission, swap và fee đúng như giá trị trả về. Giữ nguyên dấu, không trừ lại một khoản hoa hồng đã là số âm. Lần đóng này lãi hai xu và không có chi phí. Hãy tính cả deal mở vị thế, vì nhà môi giới có thể thu hoa hồng ngay khi mở.
- 2:42
Tách riêng dòng tiền.
Bản ghi đầu là khoản nạp demo một trăm nghìn đô la. Nó có loại BALANCE, không có lệnh hay vị thế. Đây không phải lợi nhuận giao dịch. Báo cáo tách deal Buy và Sell khỏi các loại khác. Hãy xem phí riêng, tín dụng và điều chỉnh trong tệp other-deals.
- 3:03
Kiểm tra phạm vi báo cáo.
Đã có đủ mười ba bản ghi. Mười hai deal giao dịch có tổng là âm bốn xu. Trong ví dụ này, commission, swap và fee đều bằng không. Tiền nạp được tách riêng. Đây là số tiền đã ghi nhận trong các ngày đã chọn, không phải lãi lỗ chưa thực hiện. Vị thế mở trước khoảng thời gian này có thể có chi phí cũ nằm ngoài báo cáo.
- 3:28
Xuất cùng dữ liệu bằng Python.
Script đi kèm gọi cùng endpoint DealsHistory, đi qua các trang bằng con trỏ và kiểm tra số lượng cuối cùng. Nó dùng phép tính thập phân và nhóm số tiền theo positionId. Đặt khóa API và id terminal riêng tư trong biến môi trường. Script không mở hay đóng bất kỳ giao dịch nào.
- 3:52
Mở ba tệp báo cáo.
Chạy script với ngày UTC cố định. Nó tạo trade-deals.csv, other-deals.csv và summary.json. Bản xuất mẫu đã được đối chiếu với lịch sử vừa ghi lại. Nếu có lỗi API hoặc thiếu trang, script dừng thay vì đưa ra tổng số chưa đầy đủ.
- 4:15
Ngắt kết nối khi hoàn tất.
Cuối cùng, gọi Disconnect trong bảng điều khiển để giải phóng terminal. Phiên của chúng ta đã ngắt kết nối. Bạn đã lấy lịch sử, tách dòng tiền khỏi kết quả giao dịch và xuất báo cáo có thể xem lại và tái sử dụng.