Cùng tên robot và tham số hiển thị vẫn có thể cho kết quả khác khi code, dữ liệu, quy cách sản phẩm hoặc mô phỏng thực hiện đổi. Manifest ghi các điều kiện ấy. Công cụ dưới so hai khai báo, không xác minh môi trường thực; giữ báo cáo và log làm bằng chứng phía sau từng bản ghi.

Lưu gì trước khi chạy lại?

Giữ cả báo cáo, danh sách thực hiện, nhật ký và bộ tham số, kể cả kết quả xấu hơn. Ảnh đường equity không xác định giá khớp đầu, số lần khớp từng phần hay ngày bắt đầu thực. Cần nối điều kiện chạy với thao tác rồi kết quả cuối.

Tách test đơn, tìm tham số tối ưu và đánh giá kỳ sau theo tài liệu Strategy Tester. Cùng tên file EA có thể là bản biên dịch hoặc thư viện khác; lưu build terminal, chương trình và phụ thuộc. Tên file không định danh nội dung.

So requestedStart với actualStart. MetaQuotes mô tả chuẩn bị lịch sử; khi lịch sử trước kỳ không đủ, test có thể bắt đầu muộn hơn. Cả tháng với kỳ rút ngắn không phải cùng đánh giá. Công cụ kiểm tra phủ CSV chỉ kiểm tra bản xuất; bài này xét điều kiện rộng hơn.

Hai manifest cùng định dạng

Dán hai JSON với đúng 13 khóa dưới, không dịch hoặc thêm khóa cấp đầu. version là số 1, chỉ phiên bản định dạng chứ không phải phiên bản EA. Các giá trị khác là chuỗi; inputs, costs, initialState cũng có thể là object thường mô tả cài đặt.

13 trường: đang so điều kiện nào?
KhóaNội dung cần lưu
version, platform, build, codeRevisionĐịnh dạng, nền tảng, build, code và phụ thuộc.
inputs, dataSnapshotTham số và phiên bản dữ liệu được giữ.
symbolSpecification, executionModel, costsHợp đồng, quy tắc mô phỏng và mọi phí giả định.
requestedStart, actualStart, endRanh giới yêu cầu và thực tế.
initialStateSố dư, vị thế và điều kiện khởi tạo.

dataSnapshot ghi mã lưu trữ hoặc checksum tính riêng. “data-v1” chỉ là khai báo, trang không đọc file; gọi codeRevision là hash cũng không tự xác minh nó. Không nhập mật khẩu, mã truy cập hay thông tin cá nhân; chưa biết thì để trạng thái cần xác định, không bịa phiên bản.

Ghi ngày có múi giờ rõ, ưu tiên UTC nhất quán. Công cụ so chuỗi, không tự đổi lịch nhà cung cấp. Hai mô tả cùng thời điểm có thể cần chuẩn hóa tay. Thêm Z vào giờ server không phải chuyển sang UTC. Ví dụ riêng: 14:00 giờ Việt Nam UTC+7 bằng 07:00Z cùng ngày, không phải 14:00Z; sai lệch 7 giờ dù nhãn ngày giống nhau.

Công cụ thực sự kiểm tra gì?

Hai bản mẫu có thể sửa để so trường và khai báo thiếu. Phân tích cục bộ, không gửi dữ liệu, nhập file hoặc lưu bền vững; không chạy MT5 hoặc đọc tài khoản. Object bằng nhau chỉ là mục nhập bằng nhau, không chứng nhận cùng điều kiện thị trường hoặc môi trường đầy đủ.

So hai bản ghi backtest

Phân tích trong trình duyệt, không gửi dữ liệu hoặc lưu bền vững. Không nhập mật khẩu hoặc thông tin cá nhân.

Dùng schema đã nêu với version: 1. Số quy cách ghi bằng chuỗi dấu chấm thập phân. Trường trống hoặc thiếu là chưa biết. Mỗi bản ghi giới hạn 64 KiB.

Định dạng JSON: trường và giới hạn

version: 1. Các trường khác được hỗ trợ: platform, build, codeRevision, inputs, dataSnapshot, symbolSpecification, executionModel, costs, requestedStart, actualStart, end, initialState.

Giá trị trường cấp đầu là chuỗi; inputs, costs và initialState cũng có thể là object. Trống hoặc bỏ qua được coi là chưa biết. Từ chối khóa trùng và trường cấp đầu ngoài schema. Giới hạn 8 tầng, 2.000 giá trị; số lồng nhau tối đa 15 chữ số có nghĩa, loại số nguyên lớn không an toàn. Ngày phải có múi giờ. So nguyên khai báo, không tự đồng nhất mô tả hoặc định dạng ngày khác nhau.

Mô hình: cùng giao dịch, hoa hồng khác

Hợp đồng tuyến tính, tài khoản USD, một giao dịch đóng với hai lần khớp. Lãi theo giá 10 USD; giá, lượng, kỳ giống nhau, tài trợ và phí khác bằng 0. A khai hoa hồng 1 USD/lần khớp trong costs, B là 2 USD. Không phải biểu phí broker.

A: 10−2×1=8 USD. B: 10−2×2=6 USD. Phí giải thích chênh 2 USD; không chứng minh tín hiệu kém, dữ liệu lỗi hoặc trượt giá. Công cụ cần đánh dấu costs đổi, nhưng diễn giải vẫn cần báo cáo và giả định khác.

Một lệnh, hai giả định phí

Cuộn ngang để xem hết sơ đồ.

Một lệnh, hai giả định phíMô hình lãi theo giá 10 USD. Hai lần khớp có tổng phí 2 USD ở A, 4 USD ở B. Lãi ròng 8 và 6 USD.Một lệnh, hai giả định phíLần ALãi theo giá: +10 USD1 USD mỗi lần khớpPhí: 2 × 1 = 2 USDRòng: +8 USDMột khai báo đổiTrường: costsGiá và khối lượng khớp nhauChênh ròng: 2 USDMô hình, không phải biểu phíLần BLãi theo giá: +10 USD2 USD mỗi lần khớpPhí: 2 × 2 = 4 USDRòng: +6 USDGiả định: 1 giao dịch, 2 lần khớp, phí khác = 0.
Hoa hồng đủ giải thích chênh trong mô hình này. Công cụ không xác minh khai báo đúng môi trường thực.

Nếu khai báo vẫn giống nhau?

Tìm thực hiện khác đầu tiên: giờ tín hiệu, mã, phía giá, lượng và lý do vào/thoát. Số dư cuối có thể che khác biệt ngay từ lần đọc chỉ báo đầu. Ghi cả quyết định không giao dịch. Mỗi lượt kiểm soát chỉ đổi một điều kiện và giữ báo cáo cũ; đổi nhiều thứ khó quy nguyên nhân.

Kiểm tra phụ thuộc file và khởi tạo. Tài liệu tester tách agent khỏi terminal, gồm global variables và thao tác file. Code dùng ngẫu nhiên cần lưu cách khởi tạo bộ sinh. Đừng mặc định mọi chênh do cache hoặc xóa bản lưu trước khi xác định nguyên nhân.

Manifest có thể bỏ sót phụ thuộc hoặc mô tả dữ liệu sai. Đừng chọn bản lãi cao hay gán bản thấp cho lỗi nền tảng. Sổ phiên bản và bằng chứng mở rộng kiểm định; hướng dẫn MT4/MT5 bàn cài đặt.

Giá trị bổ sung: cùng lãi ròng có thể che hai thay đổi

Phản ví dụ riêng: A lãi theo giá 10 USD, tổng phí 2, ròng 8; B lãi theo giá 12 USD, phí 4, ròng cũng 8. Chênh giá +2 và chênh phí +2 bù nhau. Số cuối giống nhau không xác nhận cùng khớp hoặc code; phải đối chiếu từng thành phần và sự kiện. Đây là số hư cấu, không phải hai lần chạy thực.

Kết quả bằng nhau chưa đủ để tái lập
Thành phầnAB
Theo giá10 USD12 USD
Phí2 USD4 USD
Ròng8 USD8 USD

Lãi ròng bằng nhau, thành phần khác nhau

Lãi ròng bằng nhau, thành phần khác nhauPhản ví dụ giả định có hai thay đổi bù nhau.PHÉP TÍNH GIẢ ĐỊNHTheo giá A/B10 / 12 USDPhí A/B2 / 4 USDRòng A/B8 / 8 USD
Lãi ròng bằng nhau, thành phần khác nhau. Phản ví dụ giả định có hai thay đổi bù nhau.

So từng thành phần và sự kiện đầu tiên khác nhau.

Trên màn hình nhỏ, bạn có thể cuộn ngang hoặc phóng to sơ đồ. Các giá trị và kết luận cũng có ở phần văn bản bên dưới.

Theo giá A/B
10 / 12 USD – B cao hơn 2.
Phí A/B
2 / 4 USD – B cũng cao hơn 2.
Ròng A/B
8 / 8 USD – Bằng nhau không chứng nhận cùng khớp.

Sau khi so hai lượt chạy

  1. Giữ A/B riêng, hoàn thiện 13 trường và nối mã với bản code/dữ liệu/cài đặt đúng. Chưa có bằng chứng thì ghi chưa biết.
  2. Chọn một khác biệt, kiểm tra trong mô hình ngắn. Với hoa hồng, đối chiếu số khớp và phí; với ngày đầu, tìm tín hiệu sớm nhất. Giữ cả lượt không xác nhận giả thuyết.
  3. Nếu khai báo giống nhau, tìm sự kiện nhật ký khác đầu tiên và dữ liệu cần để tái lập quyết định. Chỉ quay lại đánh giá chiến lược sau khi giải thích nguyên nhân; công cụ không dự đoán lợi nhuận hoặc chứng nhận lịch sử.