EA tải API được trên demo nhưng không có phản hồi tương đương trong tester chưa chứng minh server hỏng. Trước khi kiểm archive, kiểm hàm có chạy trong môi trường ấy không. Lấy số hôm nay gán cho quyết định quá khứ tạo phép thử khác. Mô hình dưới phát lại phiên bản đã ghi, tách bản sửa và dữ liệu chưa có, không kết nối API bên ngoài.

WebRequest chạy được ngoài tester chưa đủ

Tài liệu MQL5 ghi WebRequest không thực thi trong Strategy Tester. Thêm endpoint vào permitted URLs không bỏ hạn chế này. Tách lỗi môi trường, hết quyền, network và phản hồi trong EA chạy bình thường, không gom thành một lỗi dữ liệu.

Nếu quy tắc cần quan sát kinh tế bên ngoài, đừng đổi yêu cầu thất bại thành 0:0 có thể là giá trị hợp lệ, còn thất bại là chưa có đầu vào. Đổi HTTP thành tệp cũng chưa đủ nếu tệp chứa bản sửa chưa được biết lúc quyết định. Ghi quan sát, phiên bản, giá trị và thời điểm có thể dùng trước khi nối tín hiệu với HTTP. Cấu trúc EA tách dữ liệu, quyết định và thực thi; adapter khác không được âm thầm đổi ý nghĩa hoặc luật thiếu dữ liệu.

Tách adapter trực tuyến và ngoại tuyến

Adapter trực tuyến xử lý phản hồi nhà cung cấp; adapter thử chọn bản đã lưu có sẵn ở thời điểm quyết định. Cả hai trả cùng loại kết quả cho logic: giá trị hợp lệ, chưa có rõ ràng hoặc lỗi. Đây là cách tổ chức đề xuất, không robot hoàn chỉnh hoặc bảo đảm tương thích mọi API.

Giữ phản hồi thô riêng với record dùng để test. Ghi nguồn, schema version, thời điểm lấy và bằng chứng khả dụng. Kỳ mà quan sát mô tả khác lúc biết được quan sát ấy. Nếu chỉ có vintage date, không tự đặt giờ công bố chính xác; archive theo ngày chưa chứng minh biết được trong ngày.

FRED/ALFRED mô tả real-time periods để tách dữ liệu biết hiện tại với biết ở quá khứ. Đây là ví dụ dữ liệu có phiên bản, không API FX phổ quát. Date-only không tự cung cấp giờ UTC. Cần chronology đúng nguồn cho nghiên cứu intraday.

FileOpen trong MQL5 dùng vùng tệp giới hạn; testing có thư mục agent riêng. Relative path không nhất thiết trỏ thư mục terminal bình thường. Kiểm handle và đọc thành công, không coi tệp thiếu thành bảng rỗng có lịch sử đầy đủ. Dùng bản dữ liệu cố định cho chạy song song, không ghi đè bằng phản hồi live trong nghiên cứu.

Quyết định cũ dùng được phiên bản nào?

Ba phản hồi hư cấu

Quan sát GDP-model ngày 01/10/2026, không bản công bố GDP thật. Toàn bộ mốc gốc là UTC. availableAt là lúc mô hình truy cập được, không thời điểm khớp lệnh.

Bản đến sau không là kiến thức đến trước
availableAtrevisionvalue
2026-10-01T12:00:00Zinitial"1.0"
2026-10-01T13:00:00Zrevised"1.4"
2026-10-01T14:00:00Zunavailablenull

12:30 chọn 1.0;13:30 chọn 1.4;14:30 bản hợp lệ mới nhất có null nên chưa có. Mô hình không lùi về 1.4 hoặc đổi thành 0. Tên revision là nhãn, không bộ đếm số để sắp thời gian.

Phiên bản có sẵn lúc đó, không hôm nay

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

Phiên bản có sẵn lúc đó, không hôm nayGDP-model hư cấu:1.0 có 12:00 UTC, bản sửa 1.4 có 13:00, null 14:00. Quyết định 12:30 chọn 1.0,13:30 chọn 1.4,14:30 chưa có. Thiếu không là 0.Phiên bản có sẵn lúc đó12:00 UTCBản đầuGiá trị:"1.0"12:30 → 1.013:00 UTCBản sửaGiá trị:"1.4"13:30 → 1.414:00 UTCChưa cóGiá trị: null14:30 → chưa cóMô hình riêng 01/10/2026 • toàn bộ giờ UTC
Bản sửa không thay kiến thức của quyết định trước. Trong biến thể này, null chặn đánh giá tín hiệu mới, không dùng 0 hoặc bản cũ.

Quy tắc hư cấu cần value>1.2 là sai lúc 12:30; đưa bản 1.4 đến sau vào sẽ đảo quyết định dù giá không đổi. Đây là kiểm khả dụng, không kết quả chiến lược. Tool chọn record, không tính tín hiệu hoặc lợi nhuận.

Nếu muốn giữ giá trị cuối khi bản mới chưa có, thiết kế đó là chính sách riêng: tuổi tối đa và lý do thiếu phải định trước. Biến thể null của bài cố ý không có fallback. Đừng thêm sau khi thấy kết quả hấp dẫn rồi gọi rerun là không đổi.

Giờ Việt Nam: đã công bố khác EA đã nhận

Mô hình độc lập ngày 01/10/2026, một phiên bản được nguồn công bố 12:00 UTC tức 19:00 Việt Nam. Adapter riêng chỉ nhận và xác thực xong 12:04 UTC tức 19:04. Nếu nghiên cứu mô phỏng đúng pipeline này, availableAt là 12:04, không tự cho robot biết tại 12:00. Đây là độ trễ hư cấu 4 phút, không đo hiệu năng nguồn thật.

Quyết định giờ Việt NamUTCKiến thức của pipeline này
19:0212:02Chưa nhận xong, không dùng giá trị
19:0412:04Đúng biên availableAt, được chọn 1.0
19:0512:05Chọn 1.0 nếu không bản mới

Chỉ điền 12:04 sau khi có log/bằng chứng trong nghiên cứu thật, không đoán giờ tải. Nếu mục tiêu là mô phỏng người nhận sớm nhất ở nguồn thì định nghĩa/giả định khác phải ghi riêng. Không sửa mốc theo kết quả đẹp. Khi nhập tool vẫn dùng UTC kèm Z, không gõ 19:04 rồi thêm Z cho giờ Việt Nam.

Kiểm gì trong bộ phát lại cục bộ?

Dán JSON có version là số 1 và events là mảng. Mỗi event có đúng availableAt, observation, value, revision. availableAt theo YYYY-MM-DDTHH: mm: ssZ, không giây lẻ hoặc offset khác. observation/revision là chuỗi; value là chuỗi số dấu chấm hoặc null, không đổi sang Number. Tối đa 1–200 events,64 KiB JSON; observation/value 128 ký tự, revision 64. Giới hạn cấu trúc 8 tầng và 2.000 giá trị. Dấu phẩy thập phân trong văn xuôi không thay dấu chấm của dữ liệu JSON.

Phát lại thông tin có sẵn lúc quyết định

Ví dụ học tập chạy trong trình duyệt. Không kết nối tài khoản hoặc API, không gửi đầu vào hay lưu bền vững. Không nhập mật khẩu hoặc dữ liệu cá nhân.

Định dạng và giới hạn mô hình

version: 1; events: 1–200 đối tượng có đúng các trường availableAt, observation, value, revision. availableAt: YYYY-MM-DDTHH:mm:ssZ. observation: chuỗi tối đa 128 ký tự; revision: chuỗi tối đa 64 ký tự; value: chuỗi số dùng dấu chấm thập phân (tối đa 128 ký tự) hoặc null. Dữ liệu chưa có không phải số 0.

Mô hình chọn bản mới nhất có availableAt không vượt thời điểm quyết định. Hai mục có cùng observation và availableAt gây mơ hồ, chặn phân tích. JSON tối đa 64 KiB, 8 tầng, 2.000 giá trị. Thời điểm do đầu vào khai báo; trang không xác minh giờ công bố thật.

Nhập decisionAt riêng cùng định dạng UTC. Chọn bản mới nhất có availableAt≤decisionAt. Trước bản đầu thì chưa có. Hai record cùng observation và availableAt là mơ hồ, bị từ chối thay vì chọn theo thứ tự dán. availableAt là khai báo: tool không xác minh giờ công bố thật hoặc tính xác thực archive.

Công cụ chạy với dữ liệu dán trong trình duyệt, không tải công bố, không kết nối tài khoản/API và không lưu bền vững. JSON hợp lệ chưa chứng minh archive thật. Gán giờ bản đầu cho mọi revision về sau vẫn gây sai dù thuật toán chọn đúng. Giữ provenance cho mọi dataset thật.

Tester có môi trường/file agent riêng theo tài liệu MetaQuotes. Giữ dataset không đổi với báo cáo trong run manifest, không chỉ tên endpoint. Backtest Python tiếp tục join theo thời gian;lịch kinh tế giải thích bản sửa công bố. Phát lại đầu vào chưa phát lại execution: Bid/Ask, phí, lượng và phản hồi server vẫn riêng. So vài quyết định không đặt lệnh trước khi gán khác biệt cho chiến lược.

Công bố chưa là nhận xong

Công bố chưa là nhận xongPipeline hư cấu 01/10/2026: nguồn 12:00 UTC, nhận/xác thực 12:04. Giờ Việt Nam UTC+7.PHÉP TÍNH GIẢ ĐỊNH19:02 Việt Nam12:02 UTC: chưa có19:04 Việt Nam12:04 UTC:1.019:05 Việt Nam12:05 UTC:1.0
Công bố chưa là nhận xong. Pipeline hư cấu 01/10/2026: nguồn 12:00 UTC, nhận/xác thực 12:04. Giờ Việt Nam UTC+7.

Giữ nguồn timestamp và pipeline timestamp riêng; không nhập giờ Việt Nam như UTC.

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.

19:02 Việt Nam
12:02 UTC: chưa có – Sớm hơn availableAt hai phút
19:04 Việt Nam
12:04 UTC:1.0 – Bằng biên cho phép
19:05 Việt Nam
12:05 UTC:1.0 – Nếu không bản mới

Trước khi đánh giá kết quả EA

  1. Viết data contract, giữ raw và evidence, định nghĩa quan sát/phiên bản. Thiếu lịch sử là hạn chế, không thay bằng giá trị endpoint hôm nay.
  2. Trace trước bản đầu, giữa bản đầu và bản sửa, sau null. Kiểm đúng biên thời gian và timestamp xung đột. Với ví dụ pipeline riêng, thêm ca đã công bố nhưng chưa nhận.
  3. Xác nhận đúng tệp được đọc và missing được nhận biết. Giữ phiên bản với report; kiểm tín hiệu, khớp và chi phí riêng. Replay đúng không chứng minh ưu thế hoặc lợi nhuận tương lai.