ForexBestRobots.comSo sánh EA →
VI

PHIÊN GIAO DỊCH VÀ RỦI RO TIN TỨC · HƯỚNG DẪN 3

Bộ lọc phiên và tin tức cho EA Forex: quy tắc và kiểm chứng

Xây dựng các bước kiểm tra rõ ràng cho bộ lọc phiên và tin tức: lịch thiếu dữ liệu, báo giá cũ, giới hạn MT4 và khởi động lại, qua nhật ký quyết định đơn giản.

14 phút đọcĐược nhóm biên tập ForexBestRobots rà soát
Bộ lọc phiên và tin tức kiểm soát việc cân nhắc mở thêm vị thế. Hãy xác minh đồng hồ, phạm vi dữ liệu lịch và báo giá của mã giao dịch, đồng thời duy trì quy trình quản lý vị thế đang mở đã quy định.
Kiểm tra dữ liệu trước khi cho phép cân nhắc vào lệnh mới.

Một bộ lọc hữu ích trả lời câu hỏi thực tế: EA này có được cân nhắc mở vị thế mới với thông tin hiện có không? Chỉ tên phiên hay một lịch trống chưa đủ. Quy tắc cần đồng hồ đã xác minh, phạm vi sự kiện rõ ràng và báo giá hiện tại của mã được giao dịch.

Bắt đầu bằng cách tách hai việc: quản lý mức phơi nhiễm hiện có theo quy tắc riêng; chỉ cân nhắc lệnh mới sau khi các kiểm tra bắt buộc đạt. Hướng dẫn này làm rõ sự tách biệt đó, đưa ra nhật ký quyết định ngắn và cách kiểm thử. Đây không phải EA hoàn chỉnh hay bằng chứng về khả năng sinh lời.

1. Xác định bộ lọc kiểm soát điều gì

Tách quy tắc phiên, hạn chế do tin theo lịch và điều kiện vào lệnh của chiến lược. Quy tắc phiên xác định giờ được phép; quy tắc tin loại trừ khoảng đã chọn; điều kiện chiến lược xác định cơ hội giao dịch. Vượt qua hai phần đầu không tạo ra cơ hội và không bỏ qua giới hạn thực thi hay rủi ro tài khoản.

Dùng ba kết quả rõ ràng: PASS, BLOCK và UNKNOWN. Đây là nhãn dữ liệu do tác giả đặt, không phải mã lỗi MT4. Một khung giờ đã biết là đóng có thể chặn; thông tin thiếu không thể là lý do cho qua. Theo chính sách minh họa, cả trạng thái bị chặn lẫn đầu vào bắt buộc chưa xác định đều tạm dừng cân nhắc lệnh mới. Quản lý vị thế có kiểm tra dữ liệu và quyền riêng.

Tách quản lý và giám sát vị thế hiện có khỏi quyền cân nhắc vào lệnh mới. Kiểm tra đồng hồ và phiên, lịch và sự kiện, rồi báo giá của mã. Kiểm tra bắt buộc không đạt hoặc chưa xác định sẽ giữ lệnh mới ở trạng thái chờ; vượt qua vẫn cần thiết lập giao dịch hợp lệ cùng kiểm tra thực thi và rủi ro tài khoản.
Tách quản lý và giám sát vị thế hiện có khỏi quyền cân nhắc vào lệnh mới. Kiểm tra đồng hồ và phiên, lịch và sự kiện, rồi báo giá của mã. Kiểm tra bắt buộc không đạt hoặc chưa xác định sẽ giữ lệnh mới ở trạng thái chờ; vượt qua vẫn cần thiết lập giao dịch hợp lệ cùng kiểm tra thực thi và rủi ro tài khoản.Trên màn hình hẹp, hãy cuộn sơ đồ theo chiều ngang.

2. Viết quy tắc thời gian và phạm vi trước khi kiểm thử

Dùng ánh xạ giờ theo ngày trong hướng dẫn phiên giao dịch và định nghĩa sự kiện trong hướng dẫn lịch kinh tế. Ghi quy tắc vào đặc tả có phiên bản để người khác áp dụng được với cùng đầu vào.

  • Công cụ và phạm vi: nhà môi giới, tài khoản, mã, đồng tiền liên quan và nhóm sự kiện đã chọn, kể cả các giai đoạn tiếp theo.
  • Phiên: ngày đầy đủ, múi giờ, quy tắc ngày trong tuần và ranh giới bao gồm hoặc loại trừ chính xác.
  • Ánh xạ thời gian: quan hệ đã xác minh giữa UTC, quy tắc giờ địa phương nếu có và giờ máy chủ nhà môi giới theo từng ngày.
  • Loại trừ tin: nguồn giờ sự kiện, khoảng trước/sau, phần chồng lấn và xử lý lịch tạm thời, trì hoãn hoặc thay đổi.
  • Yêu cầu dữ liệu: phạm vi ngày và đồng tiền, cấu trúc, phiên bản nguồn, trạng thái cập nhật và giới hạn tuổi dữ liệu.
  • Ứng phó lỗi: điều gì giữ lệnh mới, cách tiếp tục giám sát và quản lý, cùng trạng thái cần đối soát trước khi tiếp tục.

Nếu phiên địa phương qua nửa đêm, hãy xác định ngày giao dịch được gán và xử lý rõ việc đổi ngày. Tính cả sự kiện ngày liền kề nếu khoảng loại trừ của nó chạm thời điểm quyết định. Khi chuyển giờ mùa hè, xác minh cách quy đổi giờ địa phương bị lặp hoặc không tồn tại. Không âm thầm thay ánh xạ thiếu bằng múi giờ hiển thị của máy tính.

3. Kiểm chứng bản chụp lịch, không chỉ lần tải xuống

Bản chụp là một phiên bản lịch được lưu để ra quyết định. Tải thành công hay mảng sự kiện trống không chứng minh dữ liệu đầy đủ. Kiểm tra nhà cung cấp có hỗ trợ đồng tiền, ngày và loại sự kiện cần thiết không, đã lấy đủ bản ghi chưa, và giờ, đơn vị, phiên bản có được phân tích đúng không.

Lưu riêng thông tin cập nhật của nhà cung cấp và giờ bạn nhận dữ liệu. Phản hồi vừa nhận có thể chứa dữ liệu cũ. Chỉ thay bản chụp đang dùng sau khi toàn bộ bản mới vượt qua kiểm chứng; tệp dở dang hay danh sách mới cập nhật một phần không được coi là hợp lệ. Làm mới thất bại hoặc đọc lại bộ nhớ đệm không được đặt lại tuổi của bản đã kiểm tra gần nhất.

Bản chụp đã xác minh và đủ mới có thể cho thấy không có khoảng đã chọn nào đang hiệu lực trong phạm vi công bố. Thiếu phạm vi, thay đổi lịch chưa giải quyết, giờ sự kiện liên quan chưa biết hoặc bản chụp hết hạn vẫn là chưa xác định. Giữ các lệnh mới phụ thuộc theo quy định, đồng thời tiếp tục xử lý lỗi và quản lý vị thế. Tin bất ngờ nằm ngoài sự bảo vệ của lịch định sẵn.

Lịch đã kiểm chứng không có hạn chế được chọn đang hiệu lực cho phép kiểm tra tiếp. Có hạn chế hiệu lực thì chặn lệnh mới. Dữ liệu thiếu, cũ hoặc không đủ phạm vi vẫn là chưa xác định và giữ các lệnh phụ thuộc ở trạng thái chờ. Đây là trạng thái dữ liệu, không phải tín hiệu hướng thị trường.
Lịch đã kiểm chứng không có hạn chế được chọn đang hiệu lực cho phép kiểm tra tiếp. Có hạn chế hiệu lực thì chặn lệnh mới. Dữ liệu thiếu, cũ hoặc không đủ phạm vi vẫn là chưa xác định và giữ các lệnh phụ thuộc ở trạng thái chờ. Đây là trạng thái dữ liệu, không phải tín hiệu hướng thị trường.Trên màn hình hẹp, hãy cuộn sơ đồ theo chiều ngang.

4. Kiểm tra riêng báo giá của mã đang giao dịch

Theo dõi giờ nhận và tính hợp lệ của Bid/Ask cho đúng mã, bằng cách đo thời gian trôi qua có xử lý khởi động lại và thay đổi đồng hồ. Vừa nhận không chứng minh dữ liệu thượng nguồn còn mới hoặc có thể khớp lệnh. Xác minh riêng nguồn giá, bối cảnh thời gian, spread và quyền giao dịch; xem giám sát EA.

Trong MT4, TimeCurrent() trong OnTick() chỉ tick đang được xử lý; ở trình xử lý khác, nó có thể phản ánh báo giá mới nhất của bất kỳ mã nào trong Market Watch. Đây không phải bằng chứng mã của bạn có báo giá mới. Khi chạy thực tế, TimeGMT() phụ thuộc cài đặt giờ máy tính; trong bộ kiểm thử MT4 nó bằng TimeCurrent() mô phỏng. Hiệu số trong bộ kiểm thử không khôi phục được độ lệch giờ lịch sử của nhà môi giới.

5. Theo dõi nhật ký quyết định giả định

Chỉ trong ví dụ này, dùng phiên UTC [08:00, 17:00) ngày 2026-03-16. Giữ hợp các khoảng loại trừ tin A/B giả định [12:15, 13:05) từ hướng dẫn trước. Giả sử toàn bộ phạm vi và siêu dữ liệu bắt buộc đã được xác minh; sự kiện phủ cả ngày UTC, đủ cho các lần kiểm tra ban ngày này và khoảng đệm. Không khẳng định nhà cung cấp hay đợt công bố thực tế nào.

Để minh họa phép tính, chọn tuổi bản chụp tối đa 30 phút và tuổi báo giá của mã tối đa 5 giây. Đây là đầu vào do tác giả chọn, không phải thiết lập làm mới được khuyến nghị hay bảo đảm an toàn. Bản đầu được xác minh lúc 12:00:00; bản thay thế đầy đủ và hiện hành được xác minh lúc 13:06:00. Lúc 17:00:00 có bản hợp lệ khác. Tuổi dữ liệu giả định các phép đo thời gian đã xác minh và có thể so sánh.

Quyết định · UTCTuổi bản chụpTuổi báo giá của mãChỉ kết quả thời gian/dữ liệu
12:10:0010 min1 sCác kiểm tra này đạt; kiểm tra tiếp
12:20:0020 min1 sChặn: khoảng loại trừ tin có hiệu lực
13:05:0065 min1 sTạm giữ: lịch đã cũ
13:06:066 s12 sTạm giữ: báo giá của mã đã cũ
13:06:077 s1 sCác kiểm tra này đạt; kiểm tra tiếp
17:00:000 s1 sChặn: ngoài phiên

Lúc 13:05:00, khoảng tin kết thúc nhưng bản chụp cũ đã 65 phút tuổi. Lúc 13:06:06, bản mới mới 6 giây tuổi, nhưng lần nhận cuối của mã lúc 13:05:54 đã cách 12 giây. Báo giá nhận lúc 13:06:06 chỉ 1 giây tuổi tại 13:06:07. Hàng đó đạt các kiểm tra thời gian/dữ liệu minh họa, không phải kiểm tra chiến lược, thực thi hay rủi ro. Mốc 17:00 bị loại trừ. Không mô phỏng lệnh, thoát lệnh hay lợi suất.

Các lần kiểm tra giả định theo UTC ngày 2026-03-16. Lúc 13:05, khoảng loại trừ tin đã kết thúc nhưng bản chụp lịch 65 phút tuổi vượt giới hạn minh họa 30 phút. Lúc 13:06:06, lịch đã mới nhưng báo giá 12 giây tuổi vượt giới hạn 5 giây. Lúc 13:06:07, thời gian và dữ liệu đạt với báo giá 1 giây tuổi; không hàm ý có giao dịch hay lợi nhuận.
Các lần kiểm tra giả định theo UTC ngày 2026-03-16. Lúc 13:05, khoảng loại trừ tin đã kết thúc nhưng bản chụp lịch 65 phút tuổi vượt giới hạn minh họa 30 phút. Lúc 13:06:06, lịch đã mới nhưng báo giá 12 giây tuổi vượt giới hạn 5 giây. Lúc 13:06:07, thời gian và dữ liệu đạt với báo giá 1 giây tuổi; không hàm ý có giao dịch hay lợi nhuận.Trên màn hình hẹp, hãy cuộn sơ đồ theo chiều ngang.

6. Giữ quản lý vị thế và đối soát lệnh tại nhà môi giới

Chặn lệnh mới không được bỏ qua giám sát và quản lý vị thế hiện có theo quy định. Hành động quản lý vẫn cần dữ liệu và quyền hợp lệ riêng; thiếu giá không cho phép sửa stop một cách mù quáng. Quy định riêng việc giữ hay hủy lệnh chờ, rồi xác minh trạng thái được nhà môi giới chấp nhận thay vì giả sử yêu cầu hủy đã thành công.

Nút AutoTrading của MT4 cấm yêu cầu giao dịch tự động trong khi EA và OnTick() có thể tiếp tục chạy. Vì vậy, nó không phải nút tạm dừng riêng lệnh mới: hoạt động quản lý cần yêu cầu giao dịch cũng có thể bị ảnh hưởng. Phân biệt nút này với gỡ EA hay ngắt kết nối terminal. Bảo vệ đã có tại nhà môi giới và quản lý phía máy khách là hai cơ chế khác nhau; xem quản lý rủi ro.

7. Tránh để việc lấy dữ liệu chặn luồng quyết định

Dùng bộ nhớ đệm đầy đủ, đã kiểm chứng để quyết định và quy trình có kiểm soát để làm mới. Đặt thời gian chờ, báo lỗi và cách kích hoạt phiên bản mới. Gọi quản lý một lần trước yêu cầu chậm không giữ nó chạy trong khi yêu cầu đó chặn cùng EA.

Đọc thêm: giới hạn mạng và sự kiện của MT4

Trong MQL4, WebRequest() chạy đồng bộ. Chuyển từ OnTick() sang OnTimer() trong cùng EA không biến nó thành bất đồng bộ; thời gian chờ vẫn có thể làm chậm chương trình. Thành phần lấy dữ liệu riêng có thể cung cấp bản chụp đã kiểm chứng, nhưng cần xác minh cả việc bàn giao và lỗi. Bộ định thời dùng để lên lịch, không bảo đảm quản lý không bị gián đoạn.

Thứ tự logic là: chạy luồng quản lý/giám sát đã định, đánh giá kiểm tra bắt buộc cho lệnh mới, rồi chỉ khi đạt mới cân nhắc thiết lập hiện tại với kiểm soát thực thi và rủi ro. Đây là phân công trách nhiệm quyết định, không phải mã MQL4 chạy được hay bảo đảm xử lý kịp thời. Kiểm thử tích hợp thực tế, quyền và hành vi lỗi trước khi dựa vào nó.

8. Giữ nhật ký quyết định qua lần khởi động lại

Ghi giờ quyết định UTC, giờ máy chủ và ánh xạ đã xác minh, phiên bản quy tắc, mã bản chụp cùng giờ nguồn/nhận, phạm vi, giờ nhận và tuổi báo giá, khoảng loại trừ có hiệu lực và lý do kết quả. Giữ cả ứng viên bị từ chối và kiểm tra đã đạt. Nhật ký phải giải thích được việc tạm giữ mà không dựng lại sau này bằng lịch đã sửa đổi.

Sau khởi động lại hoặc kết nối lại, đối soát vị thế, lệnh chờ và yêu cầu chưa giải quyết với nhà môi giới. Chỉ khôi phục trạng thái kiểm chứng được; khởi động lại không có nghĩa tài khoản không có vị thế hay bộ nhớ đệm còn mới. Tránh xử lý lặp cùng ứng viên. Khi trạng thái cần thiết chưa xác định, giữ lệnh mới đến lúc đối soát xong và tiếp tục ứng phó lỗi cùng quản lý đã quy định.

9. Kiểm thử tính đúng trước khi diễn giải backtest

Trước khi đánh giá hiệu quả thị trường, tạo các ca nhỏ cố định với kết quả mong đợi. Bao gồm:

  • Đầu phiên được tính, cuối phiên bị loại trừ và khoảng qua nửa đêm.
  • Đầu/cuối khoảng loại trừ tin, sự kiện chồng lấn và lịch trì hoãn hoặc thay đổi.
  • Dữ liệu lịch thiếu, một phần, sai cấu trúc hoặc ngoài phạm vi, kể cả phản hồi trống chưa xác minh.
  • Tuổi dữ liệu đúng giới hạn đã chọn và vừa vượt, cùng tick mới ở mã khác trong khi mã giao dịch vẫn cũ.
  • Khởi động lại, đồng hồ nhảy, làm mới thất bại và thay bản chụp bị gián đoạn mà không đặt lại tuổi dữ liệu.
  • Lệnh tại nhà môi giới và luồng quản lý khi lệnh mới bị chặn, gồm hủy bị từ chối và không có quyền giao dịch.

Strategy Tester của MT4 không thực thi WebRequest() và không xử lý sự kiện Timer. Kiểm thử logic quyết định dùng chung với dữ liệu đóng băng và ánh xạ giờ lịch sử đã xác minh, qua đường kiểm thử được hỗ trợ. Chỉ phát lại từng bản chụp khi nó đã có thể sẵn có. Bảng sự kiện lịch sử không tự tái tạo việc lấy dữ liệu trực tiếp hay lên lịch định thời. Xem hướng dẫn backtest MT4 để biết giới hạn rộng hơn.

10. Đánh giá lợi ích tách khỏi vận hành đúng

Bộ lọc triển khai đúng có thể loại cả giao dịch thắng lẫn thua. So sánh quy tắc đề xuất với mốc tham chiếu đã công bố, dùng cùng chiến lược, dữ liệu và giả định chi phí. Giữ mọi ứng viên và lý do từ chối, dành dữ liệu giai đoạn sau để kiểm chứng, và tính chi phí thực thi thực tế. Tìm nhiều khung giờ rồi chỉ báo cáo khung thắng có thể gây khớp quá mức với mẫu.

Sau đó quan sát tích hợp thực tế trên demo trong điều kiện dữ liệu bình thường và lỗi. Đo làm mới thất bại, tạm giữ vì dữ liệu cũ, khoảng trống báo giá, chậm quản lý và phản hồi lệnh từ nhà môi giới. Nhật ký rõ cho thấy hệ thống đã làm gì; không chứng minh lợi nhuận tương lai. Trước khi dùng rộng hơn, xác nhận:

  • Đặc tả có phiên bản, ánh xạ thời gian và chính sách chọn sự kiện đã được ghi lại.
  • Kiểm tra phạm vi và tuổi dữ liệu phân biệt không hạn chế, bị chặn và chưa xác định.
  • Ca ranh giới và lỗi cho kết quả mong đợi.
  • Kiểm thử lịch sử giữ đúng thời điểm thông tin sẵn có và công bố phần lịch sử thiếu.
  • Kiểm tra demo xác minh lấy dữ liệu, khởi động lại, quản lý liên tục và trạng thái lệnh tại nhà môi giới.
  • Lợi ích được tuyên bố phải đánh giá riêng với chi phí và dữ liệu sau đó, không dùng số thành tích bịa đặt.

11. Câu hỏi về bộ lọc EA

Lịch không có hạn chế có nghĩa EA nên vào lệnh không?

Không. Lịch đã xác minh không có hạn chế chỉ đạt một phần quyết định. Phiên, chất lượng báo giá, thực thi, rủi ro tài khoản và điều kiện hiện tại của chiến lược vẫn cần kiểm tra. Tin bất ngờ có thể xuất hiện ngoài lịch.

Vì sao tải mới mà trạng thái vẫn chưa xác định?

Phản hồi có thể cũ, không đầy đủ, ngoài phạm vi cần thiết hoặc bị phân tích sai. Giờ nhận không tự xác thực dữ liệu nhà cung cấp. Tiếp tục giữ các lệnh phụ thuộc đến khi kiểm tra cần thiết đạt.

Có thể thử tải tin trực tiếp trong bộ kiểm thử MT4 không?

Bộ kiểm thử theo tài liệu không thực thi WebRequest hay sự kiện Timer. Dùng đầu vào đóng băng, có phiên bản và đường được hỗ trợ để thử logic chung, rồi xác minh riêng việc lấy dữ liệu và lên lịch thật trên demo.

Có nên dùng AutoTrading để tạm dừng khi có tin?

Nút này không chỉ áp dụng cho lệnh mới: yêu cầu tự động dùng trong quản lý cũng có thể bị cấm. Thiết kế ở đây là cổng kiểm soát lệnh mới nội bộ với trách nhiệm quản lý được xác minh riêng, không phải công tắc loại bỏ mọi mức phơi nhiễm.

12. Tài liệu tham khảo và phạm vi

Tài liệu MQL4 chính thức về WebRequest giải thích yêu cầu đồng bộ và giới hạn. Giới hạn của Strategy Tester MT4 mô tả mô phỏng thời gian cùng hàm bên ngoài và sự kiện không được hỗ trợ. Xác minh chức năng của đúng nền tảng và tích hợp bạn dùng, đừng mặc định ví dụ từ nền tảng khác tương thích. Tài liệu được kiểm tra ngày 2026-10-17.

Hướng dẫn này hoàn tất nhóm hướng dẫn phiên/tin bằng khung quy tắc và kiểm chứng. Lịch, bản chụp, tuổi dữ liệu và kết quả là tình huống giảng dạy giả định. Ngưỡng không phải khuyến nghị; không tuyên bố đã chạy EA hay có kết quả giao dịch. Bộ lọc không loại bỏ rủi ro thị trường, thực thi hoặc tài khoản.