Tự động hóa và sàng lọc trong phân tích kỹ thuật — công cụ, quy trình và cạm bẫy
Bộ sàng lọc phải áp dụng cùng quy tắc cho toàn bộ danh sách công cụ đã ghi. Vì thế câu hỏi chính sau khi quét là: kết quả trống nghĩa là không có thiết lập hay không có dữ liệu? Chương này đi từ định nghĩa thiết lập tới mã giả hoàn chỉnh, sổ cảnh báo và kiểm thử ngoài mẫu dùng chọn tham số. Ta tách nhận diện ứng viên khỏi gửi lệnh. Tự động hóa có thể tiết kiệm công sức nhưng cũng lặp lỗi nhanh và nhất quán.

- Bộ sàng lọc chọn ứng viên. Giá trị có thể là giảm thời gian xem mà vẫn bao quát danh sách. Để đánh giá ảnh hưởng tới kết quả tài chính, còn cần quy tắc cố định về vào, ra và chi phí.
- Cảnh báo có phạm vi xác định. Nó không thay việc quét điều kiện ngoài phạm vi ấy. Có thể đo giảm thời gian nhìn màn hình; không giả định kỷ luật hay kết quả tự cải thiện.
- Kiểm thử lịch sử là mô hình. Bộ kiểm thử có thể đưa vào spread lịch sử, hoa hồng và giả định trượt giá. Nó không tái tạo được mọi giá khả dụng hay phản ứng tương lai của nhà môi giới, kể cả báo giá lại. Mô hình khớp lịch sử không chứng minh lợi thế tương lai.
- Các cấp tự động hóa là quy ước mô tả. Cảnh báo, bộ lọc và hệ thống thực thi lệnh có trách nhiệm khác nhau. Thực thi đầy đủ còn cần xử lý lỗi, trùng lặp và trạng thái tài khoản; chỉ tín hiệu chưa đủ.
1. Vì sao tự động hóa – và chính xác tự động hóa gì
Tám đồng USD, EUR, GBP, JPY, CHF, AUD, NZD và CAD tạo 8 × 7 / 2 = 28 cặp không xét thứ tự. Đây là tập đã chọn, không phải toàn thị trường Forex hay phép đo công cụ “được theo dõi nhiều nhất”. Nhà môi giới có thể cung cấp danh sách khác. Ghi mã, chiều báo giá và phiên bản danh sách trước khi quét. Ta đánh giá bộ lọc trung bình động, dao động và vùng S/R theo cùng hợp đồng dữ liệu.
Bộ sàng lọc áp điều kiện đã ghi trên một danh sách. Đầu ra là tập ứng viên và báo cáo độ phủ. Quyết định tay hay tự động sau đó có thể loại ứng viên; giữ kết quả ấy riêng.
Bộ lọc rà soát lặp lại mà không chọn biểu đồ yêu thích, nhưng chỉ trong cấu hình. Danh sách 28 cặp trong thiết lập không chứng minh tất cả đã nhận dữ liệu mới. Báo cáo còn phải ghi cặp không tín hiệu và cặp không thể đánh giá.
RSI dưới 30 là kết quả điều kiện, không phải lệnh mua. Nếu phân tích thêm về hành động giá hay bối cảnh quyết định vào, cũng ghi các trường hợp từ chối. Nếu không, kiểm thử chỉ bao quát giao dịch được lựa chọn thuận tiện.
2. Phổ tự động hóa: từ cảnh báo tới thuật toán
Năm cấp sau tổ chức phạm vi chức năng. Đây là quy ước khóa học, không xếp hạng lộ trình tối ưu cho đa số người giao dịch. Cấp cao hơn cần kiểm tra thêm nhưng không nhất thiết tốt hơn cho từng nhiệm vụ.
| Cấp | Máy làm gì | Người giao dịch làm gì | Ví dụ |
|---|---|---|---|
| 1. Cảnh báo giá | Thông báo khi giá chạm mức | Phân tích, quyết định, thực thi | Cảnh báo EUR/USD = 1.0700 |
| 2. Cảnh báo chỉ báo | Thông báo khi chỉ báo thỏa điều kiện | Phân tích bối cảnh, quyết định | RSI(14) < 30 trên D1 |
| 3. Bộ sàng lọc | Lọc danh sách công cụ theo tiêu chí | Xem kết quả, phân tích, quyết định | TradingView Bộ sàng lọc |
| 4. Hệ thống bán tự động | Tạo tín hiệu + tham số đề xuất | Chấp thuận hoặc từ chối, quản lý vị thế | Chỉ báo tùy chỉnh + cảnh báo Pine Script |
| 5. Tự động hoàn toàn | Phân tích, mở, quản lý, đóng | Giám sát, can thiệp khẩn cấp | Expert Advisor (EA) trong MT4/MT5 |
Bộ lọc hay cảnh báo có sẵn không luôn cần lập trình. Vẫn cần cấu hình, nguồn dữ liệu và thử vận hành. Thực thi bán tự động, tự động đưa thêm vấn đề riêng: điều kiện nhận diện đúng có thể khớp khác hoặc không khớp.
Bài tập trung cấp 1 đến 4. Tự động hoàn toàn (EA) chủ yếu xuất hiện ở cạm bẫy – vì đó là nơi người dùng đi tới khi tìm robot quá sớm.
3. Tiêu chí sàng lọc thực tế
Bắt đầu từ quan sát muốn tìm rồi chuyển thành điều kiện. Bộ lọc chọn lọc chỉ hữu ích nếu tìm đúng trường hợp và báo phần không thể đánh giá. Số kết quả tự nó không nói bộ lọc tốt hay không.
Danh sách để khách quan hóa quy tắc
Trước khi điều kiện vào máy quét, phải chuyển từ ngôn ngữ trực giác sang ngôn ngữ máy. Mỗi yếu tố dưới đây không được bạn giải quyết rõ sẽ do máy quyết thay – thường khác điều bạn tưởng:
| Yếu tố | Câu hỏi kiểm soát |
|---|---|
| Tập công cụ | Quét công cụ nào (danh sách đóng, không phải “mọi thứ”)? |
| Nguồn dữ liệu | Luồng của ai, giá nào (bid, ask, mid)? Cùng nguồn dùng giao dịch không? |
| Khung và lúc đánh giá | Nến nào – chỉ nến đóng? Chính xác tính điều kiện lúc nào? |
| Chỉ báo cùng cách triển khai | Tham số nào, triển khai của ai (RSI Wilder ≠ RSI dùng SMA)? |
| Toán tử và ngưỡng | Cắt qua ngưỡng hay trạng thái dưới/trên? Dung sai bao nhiêu? |
| Tần suất quét | Mỗi nến đóng một lần, hằng ngày giờ cố định hay liên tục? |
| Dữ liệu thiếu | Quy tắc làm gì khi thiếu nến, có khoảng trống hay đổi mã? |
| Khử trùng lặp | Bao nhiêu cảnh báo khi điều kiện đúng sáu nến liền – sáu hay một? |
| Điều kiện đặt lại | Điều gì vô hiệu tín hiệu và cho quy tắc kích hoạt lại? |
Ba thước đo riêng. Thời gian quét, độ phủ dữ liệu đo tiện lợi và tin cậy. Khớp mẫu tham chiếu được gắn nhãn độc lập đo khả năng phát hiện điều kiện. Kết quả tài chính cần cả chiến lược, gồm ứng viên bị từ chối, giá phản ứng và chi phí. Chạm TP tự nó không định nghĩa kết quả lọc “đúng”, và tỷ lệ thắng không tăng không phủ nhận tiết kiệm thời gian. So với biến thể không lọc trên cùng mẫu đã để riêng từ trước.
Bộ lọc xu hướng
- Giá so với EMA/SMA. Giá trên EMA 200 đang tăng trên D1 có thể định nghĩa bộ lọc hướng. Nó loại ứng viên không thỏa điều kiện này, không phải mọi giao dịch “ngược xu hướng” theo mọi định nghĩa thị trường. Giá bằng trung bình hoặc độ dốc phẳng cần quyết định rõ.
- Giao cắt trung bình động. Điều kiện EMA 50 trước ≤ EMA 200, nay > EMA 200 phát hiện chuyển trạng thái. Nó không phải tỷ giá chéo hay bằng chứng giá tương lai đổi hướng. Cả hai giá trị phải lấy từ nến hoàn chỉnh trong cùng chuỗi.
- ADX trên ngưỡng. Ngưỡng ví dụ theo quy ước lâu dùng: ADX(14) > 25 được xem là có xu hướng, < 20 là đi ngang – nhớ ADX đo sức mạnh, không đo hướng. Chủ yếu hữu ích như bộ lọc loại: dưới ngưỡng, quy tắc theo xu hướng loại công cụ theo tham số đã chọn.
Bộ lọc động lượng và dao động
- RSI trong vùng cực đoan. Ngưỡng ví dụ của RSI(14) là 30 và 70. Tần suất tùy công cụ, khung, kỳ và phương pháp khởi tạo. Quá bán không phải tín hiệu mua độc lập, quá mua cũng không phải tín hiệu bán. Không có nghiên cứu, ta không gán cực trị D1 giá trị thông tin cao hơn H1.
- Phân kỳ. Phải định nghĩa swing, cách ghép cực trị giá và dao động, cùng thời điểm xác nhận. Với chúng, cả mô hình phức tạp cũng tính được. Đánh giá thủ công phân kỳ “đa sóng” không quy tắc để lại lựa chọn tùy ý khó tái tạo công bằng trong kiểm thử.
- Histogram MACD – đổi dấu. Histogram cắt lên qua không – trong triển khai này là đổi quan hệ đường MACD và đường tín hiệu, không chứng minh giá đổi hướng. Dễ lập trình, thường dùng lọc sơ bộ để phân tích tiếp.
Bộ lọc giá và cấu trúc
- Gần S/R. Định nghĩa vùng, dung sai cùng đơn vị giá. Cảnh báo tại vùng vẽ thủ công có thể đơn giản hóa việc xem, nhưng hiệu quả cần kiểm thử; không suy ra từ dễ cấu hình.
- Phá biên N nến. Ví dụ giá đóng nến hoàn chỉnh > đỉnh cao nhất 20 nến hoàn chỉnh trước. Loại nến đang thử khỏi cửa sổ cực đại; bằng nhau không là phá vỡ ở biến thể nghiêm ngặt. Đây là một quy ước Donchian, không tự hứa lợi nhuận.
- Fibonacci. Định nghĩa hai đầu swing xác nhận và dung sai quanh mức hồi. Độ trễ xác nhận được mô tả ở bài 5.11. Tính mức không chứng minh giá sẽ phản ứng.
Xử lý một nến trước khi đọc toàn bộ đặc tả
Dùng hỗ trợ S=1.1000, ATR cố định A=0.0040. Vùng [1.0992;1.1008]; mất hiệu lực cần C < 1.0980; tái sẵn sàng cần C ≥ 1.1040 và L > 1.1008. Giả sử điều kiện EMA đã nêu đạt khi kiểm tra tín hiệu.
- Dữ liệu thiếu hay lỗi: ghi trạng thái, tạm ngừng cảnh báo mới.
- Đóng dưới biên mất hiệu lực thì loại bối cảnh này.
- Nếu không sẵn sàng, kiểm tra tái sẵn sàng cho nến tiếp. Không cảnh báo trên nến này.
- Nếu sẵn sàng, biên độ giao vùng và C > S có thể tạo ứng viên nếu bộ lọc EMA đạt.
Vết xử lý dưới cung cấp số. Đây là đầu vào mô hình, không dựng lại lịch sử thị trường. Đặc tả sau thêm kiểm soát để giữ ý nghĩa khi dữ liệu hay yêu cầu lặp.
Phát lại trạng thái cảnh báo mà chưa thấy nến sau
Giữ S, A cố định, thứ tự nhánh và bối cảnh. Sáu quyết định đầu dùng vết xử lý đã công bố, gồm lần thử lại. Khoảng thiếu cuối là riêng. Chọn trước khi mở kiểm tra; không cần nhập ghi chú để xem đáp án.
Bước 1. Sẵn sàng. L=1.1007,H=1.1015,C=1.1010.
Ghi chú tùy chọn. Giữ bản sao nếu không có lưu trữ trình duyệt.
Kiểm tra bước này rồi mở bước tiếp
SIGNAL. Biên độ giao vùng, C > S và bộ lọc EMA giả định đạt. Ngừng sẵn sàng bối cảnh này.
Bước 1 — thử lại. Cùng khóa và mã băm đầu vào tới lần nữa.
Ghi chú tùy chọn. Giữ bản sao nếu không có lưu trữ trình duyệt.
Kiểm tra bước này rồi mở bước tiếp
Trả SIGNAL đã có. Không đánh giá bằng trạng thái hiện không sẵn sàng hay gửi thông báo nữa.
Bước 2. Không sẵn sàng. L=1.1010,H=1.1042,C=1.1040.
Ghi chú tùy chọn. Giữ bản sao nếu không có lưu trữ trình duyệt.
Kiểm tra bước này rồi mở bước tiếp
REARM cho nến tiếp. C bằng ngưỡng cho phép, L trên 1.1008. Chưa cảnh báo.
Bước 3. Sẵn sàng. L=1.1007,H=1.1025,C=1.1010; bộ lọc EMA đạt.
Ghi chú tùy chọn. Giữ bản sao nếu không có lưu trữ trình duyệt.
Kiểm tra bước này rồi mở bước tiếp
SIGNAL trên khóa nến mới này, rồi ngừng sẵn sàng.
Bước 4. Không sẵn sàng. L=1.0975,H=1.1014,C=1.0980.
Ghi chú tùy chọn. Giữ bản sao nếu không có lưu trữ trình duyệt.
Kiểm tra bước này rồi mở bước tiếp
DISARMED. Bằng nhau không thỏa C < 1.0980. Tái sẵn sàng cũng trượt.
Bước 5. Không sẵn sàng. L=1.0974,H=1.0982,C=1.0979.
Ghi chú tùy chọn. Giữ bản sao nếu không có lưu trữ trình duyệt.
Kiểm tra bước này rồi mở bước tiếp
INVALIDATED. Loại tâm cũ; cần fractal mới được xác nhận.
Bước khoảng thiếu riêng. Thay bản ghi đủ, lỗi dữ liệu khiến không thể đánh giá.
Ghi chú tùy chọn. Giữ bản sao nếu không có lưu trữ trình duyệt.
Kiểm tra bước này rồi mở bước tiếp
NO_DATA. Không bịa NO_SIGNAL hay suy tái sẵn sàng hoặc mất hiệu lực trong khoảng thiếu. Tạm ngừng cảnh báo tới khi dựng lại bối cảnh.
Đọc toàn bộ vết xử lý minh họa
Cùng mức, các trạng thái cảnh báo liên tiếp
Hãy đi qua quy tắc mà không đổi ngưỡng sau kết quả. Hỗ trợ S = 1.1000 lấy từ fractal xác nhận trước ngày thử đầu. ATR A = 0.0040, tức 40 pip, cố định lúc ấy, định vùng [1.0992; 1.1008], vô hiệu khi C < 1.0980, tái kích hoạt khi C ≥ 1.1040 và L > 1.1008. Đây là tham số mô hình, không phải giá trị khuyên dùng EUR/USD. Tâm fractal và A giữ nguyên suốt ví dụ.
| Bước | L / H / C | Trạng thái trước | Kết quả |
|---|---|---|---|
| 1 | 1,1007 / 1,1015 / 1,1010 | Đã sẵn sàng kích hoạt | Biên cắt vùng, C > S: cảnh báo rồi ngừng sẵn sàng |
| 1 — thử lại | Cùng khóa, mã băm đầu vào như 1 | Bản ghi SIGNAL đã có | Trả kết quả cũ; không đánh giá, đổi trạng thái hay thông báo mới |
| 2 | 1,1010 / 1,1042 / 1,1040 | Chưa sẵn sàng kích hoạt | C bằng ngưỡng tái kích hoạt, L trên vùng: sẵn sàng cho bước sau, không cảnh báo |
| 3 | 1,1007 / 1,1025 / 1,1010 | Đã sẵn sàng kích hoạt | Kiểm tra mới: cảnh báo thứ hai, thời điểm hết nến và khóa khác |
| 4 | 1,0975 / 1,1014 / 1,0980 | Chưa sẵn sàng kích hoạt | Bằng nhau không vô hiệu theo quy tắc nghiêm; không tái kích hoạt, không cảnh báo |
| 5 | 1,0974 / 1,0982 / 1,0979 | Chưa sẵn sàng kích hoạt | C < 1.0980: bối cảnh vô hiệu |
Ở bước 1 và 3, bộ lọc EMA đã khai báo thỏa: giá đóng trên EMA, EMA hiện tại trên giá trị 20 nến trước. Bảng không tái dựng 500 nến khởi tạo; hai điều kiện là đầu vào mô hình logic, không phải quan sát thị trường được ghi chứng. Thử lại bước 1 phải trả cùng SIGNAL; không tính lại bằng trạng thái nay đã ngừng sẵn sàng rồi ghi đè DISARMED. Khi sửa, ta tái dựng riêng trạng thái trước nến và các trạng thái phụ thuộc sau, giữ lần chạy gốc. Bước 2 không vừa tái kích hoạt vừa cảnh báo vì đầu lần đánh giá chưa sẵn sàng. Thứ tự nhánh là phần định nghĩa, không phải chi tiết kỹ thuật.
Sau bước 5, fractal cũ vẫn lưu là vô hiệu. Quét hôm sau không được đổi tên thành “hỗ trợ mới nhất” rồi tạo cảnh báo từ cùng tâm. Cần fractal mới xác nhận. Hết hạn sau 60 nến là trạng thái riêng, xảy ra cả khi không cắt mức vô hiệu. Nếu thiếu dữ liệu giữa bước, không biết có tái kích hoạt hay vô hiệu trong khoảng trống không; báo gián đoạn, ngừng cảnh báo mới tới khi dựng lại bối cảnh.
Sửa đỉnh/đáy có thể đổi điều kiện fractal. Giữ ảnh chụp dữ liệu gốc, kết quả đã có lúc ấy và sửa đổi về sau liên kết với nó. Đánh giá “quy tắc chạy ra sao trên dữ liệu cuối” và “thực sự có thể gửi gì lúc ấy” là hai thí nghiệm khác. Có thể chạy cả hai, không trộn bản ghi. Tệp CSV trạng thái đính kèm cung cấp dữ liệu kiểm tra triển khai mà không đặt lệnh.
Từ trực giác sang điều kiện – quy tắc đầy đủ và điều mất đi khi chuyển ngữ
Trực giác: “mua bật hỗ trợ trong xu hướng tăng D1”. Cùng ý viết để máy quét thực hiện được:
Bản đầy đủ có bốn trách nhiệm: lấy ảnh dữ liệu có phiên bản; cố định bối cảnh; đánh giá nến từ trạng thái gốc; lưu kết quả và gửi thông báo khử trùng. Đọc nhánh theo thứ tự. Thử lại không là nến mới, sửa đổi không là cảnh báo gốc.
Đọc toàn bộ đặc tả dữ liệu, trạng thái và chuyển phát
MÃ GIẢ: ỨNG VIÊN “KIỂM TRA HỖ TRỢ”, KHÔNG PHẢI LỆNH
Cấu hình cố định: phiên bản, 28 cặp, luồng BID, D1, lịch,
EMA: α=2/201, khởi tạo bằng SMA của 200 C đầu; ATR Wilder(14):
seed = trung bình 14 TR đầu có C trước, rồi α=1/14;
khởi tạo ít nhất 500 nến hoàn chỉnh là lựa chọn mô hình, không đảm bảo hội tụ.
Trạng thái mã: mức S, ATR A, khoảng nhận diện, armed/disarmed.
Đầu t, ghi ảnh chụp bối cảnh bất biến từ dữ liệu biết trước start_t:
ghi đầu vào t mà không đổi trạng thái armed đang dùng; thử lại dùng ảnh này.
Trạng thái trước t và kho tâm lấy từ nến được xử lý cuối trước đó.
chọn fractal đáy nghiêm ngặt cuối có 2 nến mỗi phía,
xác nhận và nhận trước start_t, tuổi không quá 60 nến;
đáy bằng nhau không tạo fractal nghiêm; không có = NO_LEVEL.
Nhận diện bối cảnh mới bằng luồng và tâm fractal. Giữ tâm vô hiệu
trong sổ; không tái tạo bối cảnh từ cùng tâm.
Với bối cảnh mới A := ATR biết trước start_t; giữ nguyên
tới hết hạn, vô hiệu hoặc tâm mới xác nhận.
Sau 60 nến từ tâm, ghi EXPIRED; không cảnh báo.
Nếu A ≤ 0 hoặc thiếu giá trị: NO_VALUE, không tín hiệu.
Ghi vùng [S − 0.2A; S + 0.2A] và vô hiệu C < S − 0.5A.
Fractal mới xác nhận tạo bối cảnh mới, armed trước kiểm tra.
Sau khi t kết thúc, với MỌI mã trong toàn tập:
Key := (version, feed, symbol, D1, end_UTC).
Lấy OHLC t hoàn chỉnh, known_at và ảnh bối cảnh đã lưu trước start_t.
Mã băm đầu vào gồm OHLC, lịch sử chỉ báo, bối cảnh, cấu hình, phiên bản dữ liệu.
Nếu khóa và mã băm đã có: trả kết quả cũ, không đánh giá hay đổi trạng thái.
Nếu khóa có nhưng mã băm khác: thêm sửa đổi, chạy phát lại riêng
từ trạng thái cố định trước t; không đánh giá t bằng trạng thái đã bị t đổi.
Sửa lịch sử trước t cần phát lại từ đầu vào thay đổi đầu tiên.
Giữ kết quả/known_at gốc; đánh dấu kết quả phát lại là sửa đổi về sau.
Không gửi sửa đổi như cảnh báo gốc mới; kết thúc mã.
Lần đánh giá đầu dùng bản sao trạng thái trước t và ảnh bối cảnh;
kiểm tra L ≤ min(O,C) ≤ max(O,C) ≤ H.
Kiểm tra liên tục phiên, luồng, thành phần, bước giá, khởi tạo.
Lỗi dữ liệu: ghi NO_DATA; giữ trạng thái; không cảnh báo.
Nếu C_t < S − 0.5A: ghi INVALIDATED, bỏ bối cảnh; kết thúc mã.
Nếu trước đó disarmed:
nếu C_t ≥ S + A AND L_t > S + 0.2A: arm cho nến TIẾP;
ghi REARM hoặc DISARMED; không cảnh báo cùng nến.
Nếu trước đó armed:
trend := C_t > EMA200_t AND EMA200_t > EMA200_(t−20).
test := H_t ≥ S − 0.2A AND L_t ≤ S + 0.2A AND C_t > S.
signal := trend AND test.
Ghi SIGNAL hoặc NO_SIGNAL với đầy đủ toán hạng.
Có tín hiệu thì ngừng sẵn sàng bối cảnh; chỉ cảnh báo mới sau REARM tương lai.
Mọi nhánh kết thúc đều ghi kết quả, đầu vào, trạng thái trước và sau t.
Commit bản ghi, trạng thái một lần trong một giao dịch với khóa duy nhất;
xung đột thử lại thì trả bản ghi đã có, không sửa lần hai.
Định danh thông báo bằng khóa này, cả khi tiếp tục chuyển phát.
Xử lý hết nến theo thời gian; khoảng thiếu dữ liệu chặn cảnh báo tiếp
tới khi dựng lại bối cảnh; không được đổi thành NO_SIGNAL.
Sau quét, báo expected/evaluated/missing/candidates, cả khi candidates = 0.
Cảnh báo có end_t, known_at, version, S, A, các điều kiện; không hàm thực thi.Việc chuyển thành quy tắc làm rõ lựa chọn. Hỗ trợ là fractal xác nhận, vùng ±0.2 × ATR cố định, kiểm tra cần biên độ giao vùng và giá đóng đã ghi. Bối cảnh W1 và đánh giá chất lượng nến tùy ý nằm ngoài quy tắc. Tái sẵn sàng cảnh báo và vô hiệu hỗ trợ là hai sự kiện riêng. Định nghĩa khác cần phiên bản khác.
Bối cảnh vĩ mô, lọc chi phí – điều bộ lọc riêng lẻ không cho thấy
Lọc lịch, spread hay chuyển ngày là quy tắc riêng. Chưa xác định cửa sổ 30 hay 60 phút là tối ưu ở đây. Ghi sự kiện được bao quát, nguồn ngày và việc nó chặn ứng viên mới, lệnh mới hay đổi cả xử lý vị thế hiện có.
- Bộ lọc lịch. Quy trình ví dụ có thể loại ứng viên mới hai giờ trước sự kiện đã chọn. Đây là tham số để thử, không phải yêu cầu phổ quát. Kiểm tra ngày với đơn vị công bố, phân biệt giờ dự kiến và công bố thật; “High impact” là phân loại của bên cung cấp lịch.
- Bộ lọc spread. Ngưỡng phải rõ cùng đơn vị và cơ sở so. Gấp hai mức đã đo trước cho cặp và thời điểm có thể chặn chỉ thị mới. Nó không giải thích vì sao spread rộng hay bảo vệ vị thế đang mở.
- Bộ lọc ATR. ATR > 1.2 × trung bình N giá trị trước mô tả việc vượt ngưỡng chọn. Dưới ngưỡng không tự có nghĩa “thị trường mỏng”. Đổi SL, TP và khối lượng cần quy tắc ghi rõ; không nhất thiết suy từ riêng ATR.
Giữ việc đánh giá tiếp về mô hình, bối cảnh và rủi ro thành quy tắc riêng. Nếu điều nào đổi hành động, giữ đầu vào và lý do loại.
Bộ lọc có thể trả số kết quả khác trong chế độ khác. Nếu đổi giữa bộ theo xu hướng và theo biên, phải ghi quy tắc chuyển trước kiểm thử, dùng dữ liệu đã có lúc ấy. Chọn bộ lọc tốt nhất hồi cứu cho từng đoạn lịch sử là tối ưu thêm. Tuần trống với dữ liệu đầy đủ là kết quả hợp lệ, không phải lý do nới ngưỡng ngay lúc chạy.
node reproduce-real-examples.cjs trong thư mục đó. Đọc hướng dẫn hoặc xem giá trị kỳ vọng. Trình kiểm tra xác minh 50 điều kiện và ghi kết quả vào ./reproduced. Có đủ mọi tệp nguồn phụ thuộc; ví dụ H1/H4 và ba mã liên quan dùng chung trình kiểm tra.Quét H1 thực: bóng bị loại và ứng viên mới
Thí nghiệm riêng đơn giản hơn gồm EURUSD, GBPUSD, USDJPY từ cùng bản xuất ICMarketsSC-Demo. Mỗi H1 đủ được đánh giá sau kết thúc, dùng Bid. Giữ giờ MT5 gốc, độ lệch chưa xác minh. Ngưỡng R là High điểm xoay nghiêm ngặt mới nhất có hai High thấp hơn bên trái và hai bên phải; bằng nhau không tạo điểm xoay. Tâm i chỉ biết sau i+2 đóng, chỉ dùng từ thanh tiếp. Dung sai bằng không.
Ứng viên cần cả hai: Ct > R và Ct−1 ≤ R. Mỗi điểm xoay tạo tối đa một ứng viên; khóa gồm phiên bản quy tắc, nguồn, mã, H1 và giờ mở thanh đánh giá. Thử lại trả kết quả đã ghi. Sau 24 thanh kế từ tâm, mức hết hạn; mọi khoảng không đúng một giờ đặt lại bối cảnh, cần điểm xoay liên tục mới. Không suy nguyên nhân gián đoạn. Đây là bộ lọc ứng viên, không phải chiến lược vào-ra.
EUR/USD: điểm xoay lúc 21:00 ngày 13 tháng 10 có High = 1,12037. Hai H1 bên phải kết thúc 00:00 ngày 14 tháng 10 nên chưa biết R trước đó. H1 [03:00, 04:00) có H = 1.12044 nhưng C = 1,12034: loại lần xuyên chỉ bằng bóng mà không bịa chuyện “bẫy”. Chỉ H1 [04:00, 05:00) đóng tại 1,12064, C trước vẫn ≤ R. Ứng viên xuất hiện sau khi nhận giá đóng ấy, không sớm hơn 05:00.
| Mã | R | C | Kết quả quét |
|---|---|---|---|
| EURUSD | 1,12037 | 1,12064 | Ứng viên mới |
| GBPUSD | 1,32593 | 1,32669 | Điểm xoay đã báo — không lặp |
| USDJPY | 158,466 | 158,392 | Bị loại: C ≤ R |
Đã đánh giá đủ 3 trên 3 mã; một ứng viên mới không nghĩa một giao dịch. Giữ cả trường hợp loại và mọi kết quả từ ngày 1 tháng 10. Chọn EURUSD đầu sau ngày đó có lần xuyên cùng R bị loại trong 12 H1 trước, không theo lợi nhuận về sau. Bản xuất không có giờ nhận trực tiếp, Ask, giá khớp hay đầy đủ sửa đổi. Đây là thứ tự nhân quả trên dữ liệu cố định, không phải thông báo thực gửi khi đó.
Để kiểm tra: các thanh H1 nguồn biểu đồ, các trạng thái ví dụ liên tiếp, cùng sổ đầy đủ ba mã, siêu dữ liệu và SHA-256, và tập lệnh tái lập. Kiểm tra phần đầu so kết quả chỉ dùng lịch sử tới thời điểm ấy với cùng phần trong phát lại đầy đủ. Thêm thanh tương lai không được đổi kết quả trước.
4. TradingView – sàng lọc, cảnh báo, Pine Script
Bộ sàng lọc tích hợp
TradingView có bộ lọc tiền tệ, cảnh báo, nhưng phạm vi chính xác tùy công cụ và gói hiện tại. Kiểm tra cột, khung, nguồn. “Volume” spot FX không là hồ sơ giao dịch tập trung: có thể chỉ số lần cập nhật một luồng. Hai nguồn có thể khác kết quả; vẫn so được nhưng cần xác định dữ liệu, phương pháp.
Triển khai đầu tiên nên dùng một mục đích: tìm ứng viên quá bán trong bộ lọc giảm D1 này. Đánh giá nến hoàn chỉnh sẵn có từ tập và nguồn đã ghi. Quy tắc là C < EMA(200) AND RSI(14) < 35 AND ADX(14) > 20. Bằng nhau trượt mọi so sánh nghiêm ngặt. Cách triển khai và khởi tạo chỉ báo theo hợp đồng dữ liệu đã nêu. Đầu ra là ứng viên để xem, không chỉ định bán hay mua.
| Hàng mô hình | Close / EMA200 | RSI14 / ADX14 | Kết quả |
|---|---|---|---|
| A | 1,0900 / 1,1000 | 32 / 24 | Ứng viên: cả ba so sánh đạt |
| B | 1,1100 / 1,1000 | 32 / 24 | Bị loại: giá đóng không dưới EMA |
| C | 1,0900 / 1,1000 | 68 / 24 | Bị loại: RSI không dưới 35 |
Các đầu vào kiểm tra logic, không dựng lại lịch sử chỉ báo. Lợi suất năm phiên là điều kiện riêng: 100 × (C_t / C_(t−5) − 1) có dấu; giá trị tuyệt đối thì không. Nêu dấu, ngưỡng, chuỗi trước khi thêm. Báo số kỳ vọng, đã đánh giá, thiếu, ứng viên thay vì hứa số lượng ngày điển hình.
Cảnh báo trong TradingView
Cảnh báo thông báo điều kiện: có thể đòi đóng nến hoặc phản ứng trong nến. Cả hai trường hợp ghi giờ dữ liệu, phát hiện, nhận thông điệp. Không giả định mọi thuật toán khác đã giao dịch hay thông báo nào cũng cùng độ trễ.
Giới hạn cảnh báo tùy gói TradingView hiện tại, loại và thời hạn cảnh báo. Kiểm tra trước khi chọn tập mã. Giới hạn cảnh báo hoạt động và mã được đánh giá là hai ràng buộc riêng.
Pine Script – chỉ báo, chiến lược tùy chỉnh
Pine Script hỗ trợ chỉ báo, cảnh báo, chiến lược mô phỏng. Bắt đầu điều kiện nhỏ kiểm tra tay được rồi xác minh trên thanh hoàn tất và đang hình thành. Tài liệu chính thức định nghĩa mô hình thực thi.
- Chỉ báo riêng có thể kết hợp RSI, vùng Fibonacci xác nhận và quan hệ EMA. Mỗi đầu vào cần cách tính, nguồn và lúc sẵn có; mũi tên không cung cấp định nghĩa.
- Cảnh báo theo chỉ báo tùy chỉnh – tập lệnh tự tạo cảnh báo khi hội đủ điều kiện. Nhận thông báo điện thoại rồi mở biểu đồ để phân tích.
- Kiểm thử chiến lược – Pine Script có mô-đun tích hợp
strategy()cho thử logic trên lịch sử. Kết quả ở thẻ “Strategy Tester”: đường vốn, sụt giảm vốn, tỷ lệ thắng, hệ số lợi nhuận.
Pine Script tính chỉ báo, cảnh báo, lệnh mô phỏng trong trình giả lập TradingView. Tích hợp nhà môi giới gốc để xử lý lệnh không có nghĩa tập lệnh chiến lược tự gửi giao dịch tới nhà môi giới. Thực thi tự động sau webhook cần lớp riêng cấu hình đúng, nhận diện trùng lặp, xác nhận nhận và lỗi. Môi trường tùy dữ liệu, yêu cầu; không đo thì không thể nói nền tảng nào đảm bảo trượt giá thấp hơn.
Sự kiện RSI bằng mã giả. Đây là mô tả logic, không phải mã dán chạy hay hệ thống gửi lệnh. Triển khai phải giữ hợp đồng hoàn chỉnh, thời gian và quy tắc khởi tạo ở bài 5.8.
MÃ GIẢ — CHỈ CẢNH BÁO, KHÔNG LỆNH
Cấu hình: phiên bản quy tắc, tập mã, luồng BID, khung D1,
biên ngày, triển khai RSI(14), EMA(200), ít nhất 500 nến lịch sử.
Sau mỗi D1 dự kiến kết thúc, với MỌI mã:
Kiểm tra hoàn chỉnh, OHLC, lịch liên tục, thời điểm khả dụng.
Thiếu dữ liệu: ghi NO_DATA; giữ trạng thái ngưỡng; kết thúc mã.
Tính RSI, EMA bằng cùng phương pháp khai báo trên hai D1 hoàn chỉnh liên tiếp.
Kết quả không xác định: ghi NO_VALUE; kết thúc mã.
Event := RSI trước ≥ 30 AND RSI mới < 30 AND C mới < EMA mới.
Key := (version, feed, symbol, D1, end_UTC).
Ghi kết quả cả khi event = FALSE, kèm giờ dữ liệu, mã băm.
Nếu event và key chưa gửi: ghi cảnh báo, gửi thông báo.
Chạy lại cùng key không gửi cảnh báo mới.
Sửa lịch sử: thêm phiên bản sửa; không thay quyết định gốc.
Có khoảng thiếu giữa nến: không giả như có giao cắt liên tục.
Sự kiện kế cần cặp nến hoàn chỉnh liên tiếp mới.
RSI = 30 ở nến trước cho phép chuyển, còn bằng nhau ở nến hiện tại không thỏa. Đó là lựa chọn toán tử rõ ràng. Một nến nữa vẫn dưới 30 không là chuyển mới. Riêng việc khử trùng lặp loại kết quả giống sau quét lại. Khoảng thiếu dữ liệu không cho bịa RSI thiếu hay chấp nhận giao cắt chưa quan sát.
Phát hiện và phản ứng. Close khả dụng sau khi nến hoàn chỉnh, được nhận. Cảnh báo, quyết định, nỗ lực thực thi theo sau. Giả lập mặc định TradingView khớp lệnh mới sớm nhất ở tick kế; cũng có tùy chọn mô hình hóa khớp lúc đóng. Tùy chọn không chứng minh giá ấy có thể đạt sau nhận cảnh báo. Dùng giá đóng HTF tương lai trước hết khoảng là nhìn trước, bất kể tên thiết lập. Dòng thời gian ở bài 5.11.
5. MT4/MT5 – bộ quét, chỉ báo, EA
MetaTrader hỗ trợ chỉ báo cục bộ và Expert Advisor viết bằng MQL4/MQL5. EA gửi, quản lý lệnh được nếu nền tảng, tài khoản, nhà cung cấp cho phép. Máy quét chỉ báo điều kiện có trách nhiệm hẹp hơn.
Chỉ báo và máy quét tùy chỉnh
Bảng điều khiển có thể báo trạng thái xu hướng, RSI, khoảng cách trung bình cho mã Market Watch. Kiểm tra quy tắc, phiên bản, độ phủ, xử lý dữ liệu. Tên sản phẩm hay đánh giá không giải quyết các câu hỏi ấy.
Máy quét MT4/MT5 cục bộ cần tiến trình nền tảng chạy trên máy tính hay VPS. Cảnh báo TradingView dùng máy chủ của họ. Kiểm tra độ mới, lỗi dịch vụ, nhận thông điệp ở cả hai; thông báo tách biệt phát hiện.
Expert Advisor – tự động hoàn toàn
EA là chương trình tự giao dịch. Khả năng rất rộng, từ “mua khi EMA 50 cắt lên EMA 200” đến hệ thống phức tạp quản lý vị thế động, dừng bám đuôi, phân tích đa khung.
Đánh giá EA có sẵn cần quy tắc ghi chép, lịch sử đổi, dữ liệu, chi phí, kết quả gồm cả giai đoạn kém. Đường mượt riêng lẻ không chứng minh gian lận hay khớp quá mức, nhưng thiếu thông tin ấy cũng không loại được. Phần còn lại chỉ cách kiểm tra.
MT5 so với MT4
MT5 có bộ thử đa mã, còn bộ thử MT4 chuẩn chạy trên mã đã chọn. Quan trọng với chiến lược danh mục nhưng không quyết định chất lượng dữ liệu, mô hình thực thi. Kiểm tra công cụ hỗ trợ, chế độ thử, điều khoản nhà môi giới; tên nền tảng không phải đánh giá thực thi.
6. Quy trình: từ quét tới danh sách theo dõi
Quy trình sau tách quét, xác minh và phản ứng. Đây là ví dụ tổ chức cho giao dịch swing, không phải kết quả nghiên cứu hiệu quả. Mỗi bước để lại bản ghi, cả từ chối.
- W1 sau khi hết tuần. Xem bối cảnh cùng vùng S/R đã xác nhận trước. Có thể đánh giá tay hay tự động nếu định nghĩa chính thức. Ghi thời điểm nhận diện, biên vùng; không dời sau để khớp kết quả.
- Quét D1 sau giờ đóng đã nêu. Đánh giá mọi mã theo quy tắc cố định. Xem ứng viên với bối cảnh tuần đã ghi; giữ cả loại tay và thiếu dữ liệu.
- Danh sách theo dõi, mức phơi nhiễm. Số cặp tùy khả năng xem, không phải khoảng “lý tưởng” 2–5. Mua EUR/USD, mua GBP/USD, bán USD/CHF cùng vế bán USD nhưng khác đồng tiền còn lại; không phải một vị thế hệt nhau. Đo tương quan trên lợi suất căn chỉnh, nêu kỳ và cửa sổ. DXY phần nào lặp các tỷ giá ấy. COT có ngày vị thế, ngày công bố riêng. Xác định quy mô vị thế chỉ thuộc kế hoạch giao dịch.
- Cảnh báo rồi chờ. Đặt cảnh báo cho cặp theo dõi: theo giá (chạm vùng), chỉ báo (RSI vào cực đoan), vật thể vẽ (chạm đường xu hướng). Không ngồi nhìn biểu đồ liên tục – đợi thông báo.
- Cảnh báo → xem xét → quyết định. Xem ứng viên đã ghi và điều kiện kích hoạt, rủi ro, thực hiện riêng. Thông báo không tự cho phép lệnh. Ghi lý do không hành động.
Ghi thời gian xem và độ phủ thực. Cảnh báo không đảm bảo đánh giá bối cảnh đúng hay danh sách đủ. Dữ liệu đổi sau can thiệp hay thông báo có thể đổi kết quả quy tắc; kiểm tra cần bản ghi mới, không thay cách đọc cũ.
Số ứng viên phải vừa khả năng xem. Chỉ coi kết quả trống là không thiết lập sau khi kiểm tra độ phủ tập mã, độ mới dữ liệu. Lỗi, nến chưa hoàn chỉnh, lịch sử thiếu có trạng thái riêng. “Hôm nay không có” là diễn giải, không phải thông báo chẩn đoán.
7. Sáng thứ Hai – sàng lọc 28 cặp ra sao
Ví dụ xem sáng thứ Hai: nguồn dùng ngày kết thúc 17:00 America/New_York, năm nến D1 đầy đủ trong tuần bình thường. Đánh giá dùng D1 hoàn chỉnh cuối đã nhận. Với UTC có thể đã có nến Chủ nhật ngắn vào thứ Hai, nên không mặc định chung cuối tuần không hình thành D1 mới.
8:15. Trong bộ lọc TradingView, điều kiện D1 từ cuối phiên thứ Sáu: RSI(14) < 35, giá dưới EMA 200, ADX(14) > 20. Mục tiêu: cặp quá bán trong xu hướng giảm.
Bộ lọc mô hình trả bốn cặp với dữ liệu đầy đủ cả 28. Rà soát dùng cùng nguồn, giờ hết D1 và khởi tạo chỉ báo:
- AUD/USD. RSI giả định 28, giá dưới EMA 200 thỏa bộ lọc. Có vùng W1 ghi trước thì ứng viên sang phân tích tiếp; riêng gần hỗ trợ không là lệnh mua.
- NZD/USD. Thỏa bộ lọc nhưng quy tắc thêm đòi gần vùng W1, ở đây không có. Ghi: từ chối khi xác thực, không gắn nhãn “tín hiệu giả” sau thua lỗ.
- EUR/GBP. Mô hình cho ADX 21 ở máy quét, 18 ở luồng thứ hai với ngưỡng > 20. Không phải một phép đo nhất quán. Ghi nguồn, ngừng so tới khi kiểm tra OHLC, biên ngày, khởi tạo. Không quy toàn bộ chênh ADX ba điểm cho riêng luồng nếu chưa tính lại.
- GBP/CHF. RSI giả định 31, ADX 27 thỏa bộ lọc. Gần mức hồi 61.8% cần swing đã biết trước và dung sai xác định; cảnh báo giá, RSI vẫn là điều kiện riêng.
Mô hình: 4/28 = 14.2857% công cụ qua bộ lọc, 2/28 = 7.1429% ở lại danh sách. Chưa đo thời gian làm. Thiếu hai bộ dữ liệu thì báo đúng là “4 ứng viên trên 26 đã đánh giá, độ phủ 26/28 = 92.8571%”, không phải “4 trên 28”; kết quả hai mã thiếu chưa biết.
8. Cảnh báo – không bỏ lỡ dù không nhìn liên tục
Cảnh báo tách chờ điều kiện khỏi xem biểu đồ. Có thể tính ảnh hưởng lên thời gian làm. Điều đó không đảm bảo ít giao dịch bốc đồng hơn; nhận thông báo vẫn phải theo kế hoạch.
Lệnh thị trường hay giới hạn – quy tắc ngắn
Lệnh thị trường không đảm bảo giá hay khớp trong mọi điều kiện. Giới hạn ràng buộc giá theo quy tắc sản phẩm nhưng có thể không khớp. Thiếu dữ liệu, không mặc định giới hạn “thường thắng” trên D1. Chọn loại lệnh, kích hoạt bid/ask ở bài 2.7.
Loại cảnh báo
- Giá. “Báo khi EUR/USD tới 1.0700.” Đặt tại mức S/R, mức hồi Fibonacci, vùng quan tâm. Không lập trình.
- Chỉ báo. “RSI(14) < 30 trên D1” hay “histogram MACD đổi dấu”. TradingView: nhấp chỉ báo → Create Alert. MT4/MT5: dùng chỉ báo tùy chỉnh có cảnh báo (lưu ý MT4 cần mở nền tảng hoặc VPS vì chạy cục bộ).
- Theo vật thể vẽ. TradingView cho cảnh báo trên đường xu hướng, vùng đã vẽ – giá chạm đường tuần, nhận thông báo điện thoại. Nó kết hợp phân tích vẽ tay với thông báo tự động.
- Điều kiện kết hợp. Cảnh báo nhiều điều kiện: “giá dưới EMA 200 VÀ RSI < 35 VÀ ADX > 25”. Cần Pine Script hoặc MQL, nhưng chỉ thiết lập một lần.
Kết hợp cảnh báo thực tế
Theo vùng + theo chỉ báo. Cuối tuần vẽ vùng W1/D1, đặt cảnh báo giá. Đồng thời đặt cảnh báo chỉ báo (RSI < 30) trên cặp theo dõi. Khi cùng kích hoạt gần nhau, có điều kiện chọn lọc hơn nhưng không nhất thiết xác nhận độc lập: cả hai tính từ cùng giá. Cách theo vùng hợp với phân tích hỗ trợ, kháng cự, cách theo chỉ báo hợp chiến lược dao động.
Giảm lặp không cần và điều kiện hết hạn. Số cảnh báo hoạt động tùy quy trình xem: có thể quét cả tập, chỉ gửi sự kiện mới đã khử trùng. Không cần bỏ công cụ để giảm thông báo.
Trạng thái như RSI < 30 có thể đúng nhiều nến. RSI trước ≥ 30 và RSI hiện tại < 30 là sự kiện chuyển tiếp. Đánh giá điều kiện chọn một lần mỗi nến hoàn chỉnh đã nêu rồi khử xử lý trùng nến. Đó là kiểm soát riêng.
Căn nguồn, phía giá, ranh giới ngày, khởi tạo chỉ báo trước khi so máy quét. OHLC khác có thể đổi kết quả ngưỡng. Chỉ nhãn múi giờ máy chủ không định quy mô hay hướng lệch. Bài 5.11 trình bày cách ánh xạ thời gian.
Trong mô hình giả định, vùng W1 [1.0680; 1.0720] xác định trước kiểm tra. Riêng giao cắt RSI(14) xuống dưới 30 được định nghĩa trên D1 hoàn chỉnh. Điều kiện kết hợp cần cửa sổ cụ thể, như hai sự kiện cùng ngày, không phải “gần lúc” bất kỳ chọn hồi cứu. Khi thỏa, xem H4 hoàn chỉnh theo quy tắc mô hình. Bộ lọc chọn lọc hơn nhưng cả hai tín hiệu từ giá, không tự độc lập.
9. Kiểm thử lịch sử – thử gì, diễn giải thế nào
Kiểm thử áp mô hình lên đầu vào lịch sử, có thể lộ quy tắc không nhất quán và ước tính kết quả theo giả định. Không xác lập giá chính xác sau quyết định trực tiếp hay bảo đảm kết quả ở quan sát mới.
Điều nên thử
Thử lịch sử cần quy tắc tái lập được, dữ liệu đã khả dụng ở mỗi thời điểm. Ngay bất đẳng thức đơn giản vẫn thiếu nếu không có nguồn, khung, khởi tạo, giá phản ứng.
- Điều kiện chỉ báo. RSI(14) < 30 chỉ tái lập được khi đã cố định nguồn, biên, cách tính, lúc đánh giá.
- Quy tắc thoát, SL/TP. SL cố định 50 pip, TP 100 pip. Hoặc dừng bám đuôi 2× ATR. Đo, so sánh được.
- So các biến thể. Đo cùng quy trình dưới ngưỡng hay stop khác. Ghi mọi biến thể đã xét và giữ dữ liệu không dùng chọn chúng.
Điều khó kiểm thử là mọi thứ cần đánh giá con người:
- Hành động giá. Hình học nến, vùng và giờ xác nhận có thể định nghĩa bằng số. Cảm nhận “trông thuyết phục” cần quy trình đánh giá riêng ghi rõ; không giả định con mắt mang lợi thế đã chứng minh hơn quy tắc.
- Bối cảnh cấu trúc. Gắn nhãn thủ công sóng 2 cần quy tắc, phiên bản nhãn, lúc tạo. Đổi nhãn sau không được cải thiện kết quả kiểm thử trước.
- Quyết định tùy nghi. Có thể ghi từ chối ứng viên theo tiến trình. Thiếu hồ sơ, không biết tùy nghi cải thiện kết quả hay chỉ chọn ca thành công. Không có cơ sở nói riêng bối cảnh thuật toán không thấy giải thích được lợi nhuận.
Chất lượng dữ liệu – chủ đề ít được nói
Kết quả kiểm thử chỉ đáng tin bằng dữ liệu dùng. Forex gặp vấn đề nghiêm trọng vì thị trường phi tập trung; dữ liệu nhà môi giới có thể khác (spread, OHLC chênh nhỏ). OHLC mất thông tin đường đi trong nến: SL, TP sát thì không biết mức nào chạm trước.
Chế độ MT5 “Every tick based on real ticks” dùng tick có sẵn, không đảm bảo nơi nào cũng có. MetaQuotes mô tả tạo tick ở chỗ thiếu, loại tick không nhất quán dữ liệu phút. Kiểm tra báo cáo dữ liệu. Spread lịch sử khác độ trễ thực thi. Spread “hiện tại” cố định trong chế độ khác là tình huống, không luôn ước tính thấp: nó có thể cao hay thấp so lịch sử thử.
Bid/ask, mid và giá nhà cung cấp. Đừng suy loại giá từ việc API miễn phí. Siêu dữ liệu phải nêu bid, ask, mid, giao dịch hay chuỗi khác. Với mô hình mua so mid, phí spread theo pip = (spread vào + spread ra)/2. Cả hai 1 pip, 200 vòng giao dịch thì chênh 200 pip trước phụ phí. Dùng ask vào, bid ra thực thì chênh đã nằm trong giá. Dukascopy và TrueFX là nguồn ví dụ để kiểm tra; tên nhà cung cấp không bỏ nhu cầu kiểm tra cột, độ phủ, khoảng trống.
Đóng nến và trong nến là quy tắc khác. Chạm mức có thể xảy ra rồi mất trước khi nến kết thúc. Sự kiện giá đóng chờ hoàn tất và nhận. OHLC không dựng được mọi thứ tự chuyển động trong khoảng nên không chứng minh ưu thế phần trăm cho quy tắc nào.
Tài trợ có dấu và đơn vị. Swap có thể âm, dương tùy sản phẩm, phía vị thế; không suy dấu cho bán USD/MXN hay mua USD/TRY chỉ từ tên tiền. Kiểm thử cần đặc tả lịch sử, hệ số ngày, không chỉ bảng hiện tại. Ví dụ kết quả giá +80 USD, hoa hồng −7 USD, tài trợ −18 USD cho +55 USD; tài trợ +18 USD cho +91 USD. Spread nằm trong giá thực không tính lại. Đơn vị, đổi tiền chi tiết ở bài 2.8.
Một nến, hai kết quả có thể
Mô hình mua đã mở tại giá khớp 1.1000. OHLC bid của nến kế: O = 1.1000, H = 1.1030, L = 1.0980, C = 1.1010. TP = 1.1020, SL thường = 1.0990; giả định khớp đúng mức, không khoảng trống hay phụ phí. Đường O→H→L→C chạm TP trước: +20 pip. O→L→H→C chạm SL trước: −10 pip. Cả hai cùng OHLC.
Với danh nghĩa 10.000 EUR, kết quả +20 hay −10 USD. Không phải hai kết quả của cùng giao dịch thật, mà là hai đường đi phù hợp dữ liệu thiếu. Giá khớp vào, ra đã gồm phía thị trường, không cộng spread lại. Bộ thử giả định thứ tự từ OHLC là chọn quy ước, phải công bố trong báo cáo. Khung thấp hay tick có thể giải thêm trường hợp, nhưng dữ liệu thiếu vẫn thiếu.
Mid và giá khớp — hai cách tính cùng vòng giao dịch
Mô hình EUR/USD: mid vào 1.1000, spread vào 2 pip nên ask 1.1001; khớp mua 1.1002. Mid ra 1.1020, spread ra 4 pip nên bid 1.1018; khớp bán 1.1017. Danh nghĩa 10.000 EUR. Lãi mid 20 USD. Hai nửa spread tốn 1 + 2 = 3 USD; trượt so ask/bid 1 + 1 = 2 USD. Kết quả theo khớp (1.1017 − 1.1002) × 10.000 = 15 USD, đúng với 20 − 3 − 2.
Hoa hồng khứ hồi 2 USD, tài trợ có dấu −1 USD cho ròng 12 USD. Giả định cùng tỷ giá 4.00 PLN/USD thì 48 PLN; sổ thực nên dùng tỷ giá, lúc hạch toán từng khoản. Không tính lại 15 − 3 − 2. CSV tách tham chiếu khỏi giá thực.
Cách diễn giải kết quả
Thước đo kiểm thử chính:
| Thước đo | Cho biết gì | Cần lưu ý |
|---|---|---|
| Hệ số lợi nhuận (PF) | Tổng kết quả RÒNG dương / trị tuyệt đối tổng kết quả âm | Không cộng các kết quả bằng không vào bất kỳ tổng nào. Không lỗ thì tỷ số không xác định, không chứng minh lợi thế vô hạn. PF 1.5 không là ngưỡng phổ quát. |
| Sụt giảm tối đa | Mức vốn giảm lớn nhất từ đỉnh trước | Theo tiền hoặc phần trăm đỉnh, tùy tần suất lấy mẫu. Chỉ kết quả lệnh đóng có thể bỏ rủi ro vị thế mở. |
| Tỷ lệ thắng | Tỷ trọng kết quả dương trong mẫu xác định | 30% kết quả +3R, 70% −1R cho gộp +0.2R mỗi giao dịch. Phí 0.25R mỗi vòng đổi kỳ vọng thành −0.05R. Riêng R:R, tỷ lệ thắng không chứng minh lợi nhuận tương lai. |
| Số giao dịch | Cỡ mẫu và mức đa dạng thực | 100 giao dịch cùng nhịp USD ≠ 100 quan sát độc lập. Xem cụm, chế độ, bất định; không có mức tối thiểu kỳ diệu. |
| Tỷ số Sharpe | Lợi suất vượt chuẩn trung bình / độ lệch chuẩn lợi suất | Tần suất, chuẩn, quy năm, phụ thuộc thời gian đều quan trọng. > 1 hay > 2 không là phép thử chất lượng hoặc bằng chứng khớp quá mức. |
Ví dụ: kiểm thử sai và cách sửa
Mô hình tối ưu: ngưỡng RSI 10 tới 30 bước 1, SL 30 tới 80 pip bước 1, TP 80 tới 200 pip bước 1. Lưới có 21 × 51 × 121 = 129.591 tổ hợp, không chỉ vài chục. Tính cả lần bỏ dở, đổi quy tắc tay. PF tốt nhất ví dụ 2.8 trên 2020–2025 là kết quả chọn trên bộ ấy, không chứng minh tổ hợp RSI 22 / SL 43 / TP 167 có lợi thế.
Đỉnh hiệu quả nhọn quanh một tổ hợp báo cần thử độ nhạy. Nó không tự chứng minh khớp quá mức: phí, mẫu nhỏ, đổi chế độ có thể góp phần. Báo cả lưới, quy tắc chọn, không chỉ điểm tốt nhất.
Đã chọn tham số trên cả 2020–2025 thì không được gọi lại 2024–2025 là mẫu giữ lại. Cần quan sát tương lai mới hoặc kế hoạch khác định trước. Huấn luyện, xác thực, thử có vai trò riêng; đã dùng mẫu thử thì không tối ưu lại trên đó.
Khác biệt giữa thử và vận hành có thể từ mô hình phí, dữ liệu, thực thi, điều kiện đổi. Không phải mọi lần thử thật kém hơn chứng minh khớp quá mức, không phải mọi kiểm thử mặc định lạc quan. Cần cùng quy tắc, nhật ký tín hiệu, lệnh, khớp thực để so.
Thử tiến tới kiểm tra vận hành trên quan sát mới. Độ dài không xác lập tính đại diện: vài tháng có thể ít sự kiện, một chế độ. Demo kiểm tra logic, tính khả dụng, nhưng khớp không nhất thiết như thật. Tách kết quả kém thành khác dữ liệu, thực thi, phí, phân phối sự kiện.
Xáo kết quả đã đóng, như 1.000 hoán vị 150 giao dịch, cho đường vốn có điều kiện trên cùng mẫu, quy tắc quy mô cố định. Không tạo sốc mới, đổi phân phối, có thể xóa phụ thuộc thời gian. Với rủi ro phần trăm hay vị thế đồng thời phải giữ cấu trúc. Phân vị 95 không đảm bảo giới hạn sụt giảm tương lai. Công cụ cho bài tập là trình mô phỏng Monte Carlo.
10. Python trong sàng lọc và kiểm thử
Python hỗ trợ sổ dữ liệu, kiểm thử riêng. Chi phí, độ khó tùy chất lượng nguồn, phạm vi, bảo trì. Máy quét riêng cần xử lý lỗi, phiên bản phụ thuộc, giám sát; bài đưa hợp đồng logic, không phải mã sản xuất hay lời hứa hệ thống rẻ chạy ngay.
Môi trường riêng cho kiểm soát vài phần quy trình:
- Tích hợp nguồn. API nhà môi giới và thư viện dữ liệu có công cụ, siêu dữ liệu khác. Kiểm tra truy cập, độ phủ, sửa đổi trước khi ghép chuỗi.
- Phân tích thống kê. Thư viện tính kiểm định và phân phối. Vẫn phải chọn đúng câu hỏi, phân phối tham chiếu, giả định phụ thuộc và họ các lần thử.
- Linh hoạt kiểm thử. Thư viện backtrader, vectorbt cho thử chiến lược danh mục nhiều cặp, phân bổ vốn động, tương quan giữa công cụ. Pine Script, MQL có giới hạn ở đây.
- Quy trình kết nối. Lấy dữ liệu, sàng lọc, thông báo có thể chung sổ. Thực hiện cần lớp chỉ thị và xác nhận riêng, xử lý thử lại riêng.
- Phân tích tâm lý. Một số người thử phân tích tự động tâm lý tin, báo cáo kinh tế rồi đưa tín hiệu vào chuỗi lọc. Có công cụ từ tập lệnh đơn giản tới API mô hình ngôn ngữ, nhưng trong bán lẻ vẫn nghiêng về thí nghiệm hơn giải pháp hoàn thiện.
Chuỗi xử lý bằng mã giả — dữ liệu, quét, lưu trữ. Không có token API hay hàm thực thi lệnh. Có thể triển khai cùng logic ở môi trường nào cũng được.
MÃ GIẢ CHUỖI XỬ LÝ — KHÔNG HÀM GỬI LỆNH
Nạp cấu hình cố định, toàn danh sách mã có phiên bản.
Xác định giờ hết nến dự kiến theo lịch nguồn, không theo đồng hồ máy.
Với mỗi mã, lấy dữ liệu cùng component, start, end, complete,
received_at, revision và định danh nguồn.
Giữ ảnh chụp dữ liệu bất biến, tổng kiểm.
Kiểm tra OHLC, đơn vị giá, liên tục phiên, khởi tạo chỉ báo.
Có lỗi ghi NO_DATA và nguyên nhân; không tạo NO_SIGNAL.
Trên ảnh hợp lệ, tính toàn bộ quy tắc tiêu chí.
Ghi kết quả mỗi mã, cả mã không thỏa điều kiện.
Khử trùng cảnh báo theo version, feed, symbol, timeframe, end_UTC.
Khi sửa, thêm bản ghi mới nối với ảnh trước.
Tổng hợp: expected, evaluated, missing, candidates, thời gian quét.
Lưu quyết định tay, thời điểm riêng, không ghi đè kết quả lọc.
Báo lỗi tiến trình, mã thiếu, cả khi không ứng viên.
Trước chọn nguồn, kiểm tra giấy phép, công cụ bao quát, phía giá, dấu giờ, hoàn chỉnh, sửa đổi, bid/ask khả dụng. Không dán chung nhãn cho mọi dữ liệu Yahoo hay API miễn phí. Thư viện đọc không tự nâng chất lượng hay cho giá khớp.
Thử lại yêu cầu dữ liệu khác thử gửi lệnh lại. Quét có thể an toàn tái tạo cùng khóa, trả kết quả cũ. Lớp thực thi cần mã chỉ thị riêng, kiểm tra trạng thái trước thử lại; nằm ngoài bộ lọc này.
11. Cạm bẫy tự động hóa
Tự động hóa lặp quy trình đã nêu. Đo xem có tiết kiệm thời gian xem, giữ độ phủ hay đổi lỗi vận hành không. Nó cũng lặp lỗi nhất quán; kiểm tra sau giúp dễ phát hiện.
| Cạm bẫy | Cơ chế | Cách hạn chế |
|---|---|---|
| Mô hình mid | Hai lần khớp chênh bằng nửa spread vào cộng nửa spread ra | Kiểm tra loại giá; không cộng spread lại cho khớp ask/bid thực |
| Spread cố định | Tình huống giả định có thể quá thấp hoặc cao | Lịch sử bid/ask, báo thiếu dữ liệu; riêng chế độ “real ticks” không đảm bảo đủ |
| Bỏ trượt giá, hoa hồng | Ròng thấp hơn gộp, nhất là khung thấp | Mô hình trượt giá thận trọng; tính hoa hồng theo R |
| Nhìn trước dữ liệu | Tín hiệu dùng dữ liệu chưa có lúc quyết định (giá đóng nến đang hình thành, swing tương lai) | Đầu vào sẵn có lúc quyết định, gồm trễ xác nhận và gửi; phản ứng tại báo giá sẵn có về sau |
| Khớp quá mức | Tham số khớp nhiễu của một lịch sử cụ thể | Ít tham số; ngoài mẫu; cuốn chiếu |
| Nhiều lần thử | Chọn biến thể tốt nhất tăng nguy cơ phát hiện giả | Ghi mọi lần thử, dùng hiệu chỉnh phù hợp, mẫu thử chưa dùng |
| Thiên lệch sống sót | Chỉ thấy hệ thống sống sót | Đánh giá quy trình, không phải kết quả chọn sẵn |
| Vẽ lại | Chỉ báo vẽ lại lịch sử đã đóng | Thử tiến tới chỉ báo; tránh công cụ kiểu ZigZag trong quy tắc |
| Bỏ swap | Chi phí giữ vị thế ăn kết quả swing | Đưa điểm swap vào; thử dữ liệu có phí |
Khớp quá mức (khớp quá khứ)
Khớp quá mức là chọn theo đặc tính riêng mẫu không tồn tại ngoài mẫu. Không đồng nghĩa mọi khoản lỗ ngày đầu. Độ nhạy tham số, số lần thử, quan sát mới giúp đánh giá.
Dấu hiệu cảnh báo khớp quá mức:[5]
- Chiến lược có nhiều tham số tự do so số giao dịch, lịch sử có sẵn.
- Đổi nhỏ tham số (RSI 14 → RSI 15) làm kết quả đổi mạnh – gọi là mong manh.
- Thử một kỳ cực tốt, kỳ khác lỗ.
- PF, Sharpe cao cần xét bất định, số biến thể đã thử, phụ thuộc kết quả. Mẫu dưới 100 hay trên 500 giao dịch riêng lẻ không quyết định có lợi thế không. Còn xem độ dài quan sát, lỗ lớn hiếm, hiệu quả trên dữ liệu không dùng chọn quy tắc.
Ngoài mẫu chỉ có nghĩa nếu mẫu không tham gia chọn quy tắc. Kiểm thử cuốn chiếu khớp trên cửa sổ trước rồi đánh giá cửa sổ sau; mọi ngưỡng, cập nhật, gộp kết quả ghi trước. Đòi dương mọi cửa sổ không phải quy tắc thống kê phổ quát.
Dò tìm dữ liệu
Với 50 kiểm định độc lập trong đó các giả thuyết không đều thực sự đúng, mức 5%, xác suất ít nhất một lần bác bỏ sai là 1 − 0.95^50 = 92.3055%, số kỳ vọng 2.5. Rủi ro cao, không chắc chắn. Các biến thể cùng dữ liệu thường phụ thuộc, nên không coi phép tính độc lập là xác suất đã đo của chúng.
Ghi họ lần thử trước chọn người thắng. Với 50 kiểm định, mức cả họ 5%, Bonferroni cho ngưỡng 0.05/50 = 0.001 cho mỗi p-value hợp lệ. Nó kiểm soát nguy cơ ít nhất một bác bỏ sai mà không đòi kiểm định độc lập. FDR trả lời câu khác, ví dụ sau phân biệt. Không hiệu chỉnh p-value nào xác lập chiến lược sinh lời.
Bonferroni, FDR và giới hạn suy luận
Mô hình năm kiểm định hợp lệ trong họ đã định: p-value theo thứ tự 0.0004; 0.008; 0.019; 0.021; 0.070. Bonferroni ở α = 0.05 cho 0.01, bác hai giá trị đầu. Benjamini–Hochberg ở q = 0.05 so với i × q / 5: 0.01; 0.02; 0.03; 0.04; 0.05. Chỉ số lớn nhất thỏa là 4, nên bác bốn đầu.
FWER kiểm soát xác suất ít nhất một bác bỏ sai; FDR kiểm soát kỳ vọng tỷ lệ bác bỏ sai trong mọi bác bỏ, tỷ lệ bằng không khi không bác bỏ. BH cổ điển cần giả định phụ thuộc phù hợp như độc lập hay phụ thuộc dương xác định; không áp dụng cho biến thể FX tương quan tùy ý khi chưa kiểm tra. q = 5% không nghĩa mỗi chiến lược chọn có 95% cơ hội hoạt động. Bài của các tác giả (1995) và tài liệu phương pháp mô tả phạm vi quy trình. Kiểm định hợp lệ cần câu hỏi, dữ liệu, phân phối chuẩn tham chiếu, thống kê định trước; p-value ở đây là đầu vào giả định.
Chia mẫu có cả thời điểm nhãn
Kế hoạch giả định cố định trước phân tích dùng huấn luyện 2018–2022, xác thực 2023, thử chưa xem 2024–2025. Nhãn có chân trời tối đa năm phiên thì quan sát cuối tháng 12 năm 2022, kết quả đến tháng 1 năm 2023 mới biết, không thuộc huấn luyện hết 31 tháng 12. Bỏ nhãn vượt ranh hoặc dời điểm cắt theo giờ kết thúc thật. Chỉ tách ngày vào chưa đủ.
Giá trước ranh có thể khởi tạo chỉ báo lúc bắt đầu thử nếu đã biết lúc ấy. Không khớp bộ chuẩn hóa, ngưỡng, chọn công cụ lên phần dữ liệu tương lai. Xác thực để chọn, thử để đánh giá một lần; đổi quy tắc dựa trên thử thì đã tiêu dùng mẫu. Cuốn chiếu cần cùng nguyên tắc mỗi cửa sổ, cách cập nhật ghi trước. Hiệu chuẩn xác suất cũng cần đoạn riêng: tám sự kiện trong mười dự báo 0.8 của nhóm nhỏ không chứng minh hiệu chuẩn phổ quát hay lợi nhuận.
Độ chính xác, độ bao phủ và chi phí bỏ sót
Mô hình 100 ca gắn nhãn độc lập: mẫu tham chiếu dương 20, âm 80. Bộ lọc phát 15 cảnh báo: 12 đúng tham chiếu, 3 sai, bỏ sót 8 dương. Precision = 12/15 = 80%, recall = 12/20 = 60%, specificity = 77/80 = 96.25%. Không suy hiệu quả tài chính từ ba số ấy. Nhãn chuẩn phải độc lập bộ lọc; không gắn dương cho mọi lợi nhuận tương lai chọn tay.
Nếu chuẩn dùng kết quả tương lai, nhãn chỉ có cuối chân trời. Không được ảnh hưởng tín hiệu trước hay vào huấn luyện quá sớm. Tải mô hình đã tính lại; mọi số trong khối này là giả định.
Thiên lệch sống sót ở EA có sẵn
Chỉ xem hệ thống còn bán, còn công bố bỏ qua lần thử đã rút. So sánh cần quần thể biết được, sổ cả phiên bản thất bại. Ta không biết con số “hàng nghìn” EA rút hay kết quả ví dụ của người ảnh hưởng, không dùng làm bằng chứng.
Ảo tưởng kiểm soát
Tự động hóa cần theo dõi trạng thái tiến trình, độ mới dữ liệu, lỗi chưa xử lý. Riêng chạy đêm không quyết định trượt giá hay số lỗ. Báo động cần báo thiếu dữ liệu, quét dừng, cả thiết lập thỏa.
Hộp đen
Thiếu tài liệu khó biết kết quả đổi từ dữ liệu, quy tắc hay thực thi. Hệ thống có thể ngừng hoạt động như mong đợi; cần điều kiện dừng, quy trình đánh giá. “Trước giờ vẫn tốt” chưa đủ.
Chỉ báo vẽ lại
Tách giá trị nến mở thay đổi, xác nhận swing trễ, sửa dữ liệu, viết lại tín hiệu trước. Giữ ảnh chụp giá trị cùng giờ đánh giá, so lịch sử về sau. Tên ZigZag không quyết định mọi cách dùng; vấn đề là dùng điểm trước xác nhận hay giấu thay đổi.
Công ty prop và tự động hóa
Quy tắc prop là hợp đồng, khác theo chương trình, giai đoạn. Không nói nhiều công ty cấm mọi tự động hóa. Ví dụ, FTMO mô tả cho phép thuật toán, EA theo hạn chế chương trình. Kiểm tra quy tắc hiện hành, bản chất tài khoản (kể cả mô phỏng), giới hạn, hành vi cấm; chấp nhận bộ lọc không tự chấp nhận mọi cách thực thi.
12. Những gì chưa nên tự động hóa sớm
Trước tự động thực thi, cũng phải mô tả việc ngoài tín hiệu. Danh sách sau chỉ nhiệm vụ cần quy tắc, kiểm thử riêng; không mặc định thực thi tay luôn hiệu quả hơn.
- Quản lý vị thế. Định quy mô, sửa stop, đóng phần trước khi tự động. Thực hành lộ quyết định mơ hồ nhưng thực hiện tay không chứng minh quy tắc hơn.
- Lịch vĩ mô. Bộ lọc có thể xét NFP nếu nhận lịch đúng, quy tắc chặn. Không dự báo spread hay nội dung chưa công bố. Không có lịch là hạn chế nêu rõ, không phải tính chất mọi hệ thống tự động.
- Chọn tập công cụ. Định nghĩa, gắn phiên bản danh sách trước thử. Loại cặp kém sau xem kết quả là lần chọn thêm. Đo đặc điểm cặp trên dữ liệu xác định, không gán tính chất cố định.
- Cuối tuần, ngắt quãng. Lọc spread có thể ngừng lệnh mới nhưng không giới hạn lỗ khoảng trống của vị thế cũ. Giảm danh nghĩa giảm độ nhạy giá; stop thường không đảm bảo giá. Phòng hộ quyền chọn cần thỏa thuận, tài khoản riêng, không chỉ nhãn “hedge”. Rủi ro ngắt ở bài 4.4.
- Trạng thái tài khoản. Kiểm tra sản phẩm, chế độ hedging/netting, ký quỹ cho chỉ thị mới, quy tắc đóng khi thiếu bảo đảm. Thứ tự thanh lý tùy nhà cung cấp; không mặc định đóng khoản lỗ lớn nhất là chung. Ký quỹ, bảo vệ khách ở riêng bài 2.6. Khả năng nhận lệnh một lúc không đảm bảo giữ được vị thế về sau.
Tự động việc rõ, lặp lại, giữ dấu vết. Quét, cảnh báo, quyết định, thực thi là các bước nối tiếp có lỗi, giới hạn riêng. Lặp quy tắc nhanh hơn không nâng chất lượng, chỉ cho triển khai, kiểm thử nhất quán.
13. So sánh công cụ
| Công cụ | Ngôn ngữ kịch bản | Sàng lọc | Cảnh báo | Kiểm thử lịch sử | Tự động thực thi | Chi phí (tham khảo) |
|---|---|---|---|---|---|---|
| TradingView — gói cơ bản | Pine Script | Bộ lọc nền tảng | Theo gói hiện tại | Giả lập chiến lược | Riêng tập lệnh chiến lược không gửi lệnh nhà môi giới gốc | Kiểm tra gói, dữ liệu |
| TradingView — gói trả phí | Pine Script | Phạm vi tùy công cụ | Theo gói hiện tại | Giả lập chiến lược | Webhook cần lớp thực thi riêng; tích hợp nhà môi giới không tự biến tập lệnh thành EA | Giá hiện tại |
| MT4 | MQL4 | Chỉ báo tùy chỉnh | Có (popup, push, email) | Strategy Tester (1 mã) | Expert Advisor | USD 0 (từ nhà môi giới) |
| MT5 | MQL5 | Chỉ báo tùy chỉnh | Có (popup, push, email) | Strategy Tester (đa tiền tệ) | Expert Advisor | USD 0 (từ nhà môi giới) |
| cTrader | C# / công cụ nền tảng | Theo cấu hình | Theo cấu hình | Kiểm thử cBot | cBot — logic thực thi riêng | Điều khoản nền tảng, nhà cung cấp |
| Môi trường riêng | Ví dụ Python | Quy tắc tác giả định | Hạ tầng riêng | Mô hình/thư viện tác giả | Lớp API riêng | Dữ liệu, bảo trì, hạ tầng |
Bảng mô tả phạm vi chức năng, không xếp hạng chất lượng. Giấy phép công cụ, truy cập dữ liệu, VPS, phí giao dịch là mục riêng. Kiểm tra giới hạn gói, giá trong tài liệu hiện hành.
- Khung chính: D1 – nơi sàng lọc, phân tích. Lấy bối cảnh từ W1.
- Danh sách theo dõi: chọn tập có phiên bản mà bạn xem và theo dõi được. Số tới danh sách hoạt động là đầu ra quy tắc, không phải mục tiêu ép đạt.
- Hai bộ lọc. Ví dụ EMA 200, RSI 14 như biến đổi giá định nghĩa rõ. Ngưỡng là quy ước để đánh giá, không chứng minh loại đa số nhiễu.
- 1 loại cảnh báo lúc đầu: cảnh báo giá ở vùng S/R tuần. Sau thêm cảnh báo chỉ báo.
- Bắt đầu quy trình kiểm tra được. Máy quét và một quy tắc cảnh báo có thể là bài đầu quản lý được. Thêm thực hiện sau khi xác định trạng thái tài khoản và xử lý lỗi.
- Luyện quy trình, thử tiến tới. Hai hay ba tháng demo có thể là kỳ tập vận hành, ghi, tuân thủ giả định; không đủ làm mức tối thiểu xác thực. Số, kỳ quan sát tùy tần suất sự kiện, phụ thuộc, biến thiên kết quả. Demo không tự tái tạo thực thi thật, qua một thời gian chọn không đảm bảo đại diện hay sinh lời.
Quy mô vị thế — ngoài phạm vi bài này
Chọn thiết lập mà thiếu quy mô đúng mới nửa việc – nhưng công thức, phí trong ngân sách rủi ro, ví dụ tính đầy đủ thuộc phần 9. Công cụ tương tác tính quy mô vị thế và mô phỏng Monte Carlo ở phần Công cụ.
Quy tắc cố định trên dữ liệu thực: đóng ngoài biên hay chỉ bóng?
Nến có thể vượt đỉnh trước rồi đóng trên, hoặc trở vào biên. Khác biệt ấy có mô tả thay đổi giá sau khác nhau trong các bản ghi này không? Chúng tôi cố định một so sánh trước khi tính tóm tắt. Đây là mô tả hồi cứu lịch sử một nguồn. Vài giai đoạn đã dùng trong ví dụ giáo dục; dấu thời gian kế hoạch hay chia theo ngày không tạo tập kiểm tra chưa từng thấy.
Đầu vào là 6.000 bản ghi Bid H1 không đổi cho mỗi EUR/USD, GBP/USD, USD/JPY từ ICMarketsSC-Demo / MT5. Trong ngày ứng viên, sổ có 17.995 bản ghi, 3.140 ứng viên một phía. Khoảng chờ chọn 1.086; 1.039 có kết quả sáu bản ghi liên tục, 47 cắt khoảng trống thời gian tương lai. Vẫn tính cả 47, không âm thầm bỏ.
| Hướng · nhóm | Sẵn có / được chọn | Trung bình | Trung vị | Tỷ lệ > 0 |
|---|---|---|---|---|
| LÊN · giá đóng | 271 / 280 | -0,0689 | -0,1433 | 0,4613 |
| LÊN · bóng | 258 / 273 | 0,2077 | 0,0577 | 0,5078 |
| XUỐNG · giá đóng | 226 / 236 | 0,0934 | -0,1256 | 0,4823 |
| XUỐNG · bóng | 284 / 297 | -0,0152 | -0,2569 | 0,4472 |
Thay đổi có dấu dương đi theo hướng phá; âm đi ngược. Trung bình, trung vị, tỷ lệ trên không trả lời các câu khác. Với XUỐNG · giá đóng, trung bình dương nhưng trung vị âm và chưa tới nửa quan sát dương. Không số nào là tỷ lệ thắng sau chi phí.
Quy tắc chính xác và giới hạn so sánh
Với ứng viên t, cố định High cao nhất, Low thấp nhất của 20 H1 hoàn tất trước. Cần liên tục từng giờ từ t−21 tới t; bản cũ nhất cung cấp Close trước cho True Range. Loại trước lần xuyên cả hai biên. Còn lại, Close ngoài nghiêm ngặt là CLOSE; High/Low xuyên nhưng Close trong, gồm bằng biên, là WICK. Riêng cực trị bằng biên không phải xuyên.
Lấy ứng viên đầu mỗi mã rồi bỏ sáu chỉ số kế, bất kể kết quả sau có sẵn không. Chỉ sau chọn mới kiểm tra sáu bản ghi tiếp có đúng bước một giờ. Đo hướng × (C tại t+6 − C tại t), bằng pip và chia trung bình số học TR của 20 bản trước. Ứng viên không góp vào biên tham chiếu hay mẫu số.
Hình gộp sự kiện nên mã có nhiều sự kiện có kết quả nhận trọng số lớn hơn. Cửa sổ kết quả không giao trong một mã, nhưng 808 cặp sự kiện kế nhau chung lịch sử trước, các cửa sổ có kết quả giữa cặp tiền giao theo giờ 950 lần. Nhóm tháng 7 dùng ngày ứng viên; một kết quả qua biên. Phụ thuộc và khoảng thiếu có cấu trúc thời gian ngăn diễn giải độc lập hay nhân quả. Không có khớp lệnh, giả định chênh lệch, lợi suất tài khoản hay tuyên bố lợi thế thống kê.
Toàn bộ 48 hàng tóm tắt (CSV) · Sổ phân loại đầy đủ (CSV) · Sự kiện được chọn và kết quả thiếu (CSV) · Phương pháp và hướng dẫn tái lập · Nguồn, kế hoạch cố định, mã và đầu ra (ZIP).
Bài cuối: tách quyết định khỏi sáu nến tiếp theo
Đây là EUR/USD UP_CLOSE được chọn đầu từ ngày 1 tháng 9 năm 2026 có kết quả sẵn có: H1 mở ngày 3 tháng 9 lúc 19:00. Các UP_CLOSE trước ở ngày 2 tháng 9 16:00 và 3 tháng 9 15:00 bị loại bởi khoảng chờ đã có. Chọn theo thời gian, khả dụng, không theo dấu hay độ lớn đợt sau. Gọi nến H1 đạt điều kiện là P.
Lúc quyết định, biên 20 bản trước là 1.15826–1.16302, trung bình True Range 9,325 pip. P đóng tại 1.16368 trên biên trên cố định. H4 đủ điều kiện mới nhất mở 16:00, kết thúc 20:00 cùng giá đóng H1 của P. Đó là góc nhìn rộng hơn cùng lịch sử Bid, không phải phiếu xác nhận độc lập. Cả hai bản cuối vẫn cần được nhận sau kết thúc khoảng.
Trước khi mở thanh khác: ghi điều đạt điều kiện, lúc đánh giá sớm nhất và phần chưa biết. Trong bài, dừng theo dõi tại Close H1 đầu về sau bằng hoặc dưới 1.16302. Giữ biên cố định. Đây là điều kiện dừng phân tích, không quy định lệnh, khớp stop-loss hay quy mô.
Khung 0: tới thanh H1 2026-09-03 19:00
P chỉ đạt UP_CLOSE sau bản ghi cuối tới, không sớm hơn 20:00. Đường sau còn ẩn. Đạt điều kiện không cung cấp Ask thực hiện được hay chi phí.
EUR/USD Bid H1/H4. Giờ MT5 gốc; chỉ hiện chuỗi đến bước này. Bối cảnh H4 giữ nguyên. Mở bản ghi 1 trong 6
Khung 1: tới thanh H1 2026-09-03 20:00
Close vừa được hiển thị là 1.16328, trên 1.16302. Điều kiện dừng theo dõi chưa xảy ra, không dự báo Close kế.
EUR/USD Bid H1/H4. Giờ MT5 gốc; chỉ hiện chuỗi đến bước này. Bối cảnh H4 giữ nguyên. Mở bản ghi 2 trong 6
Khung 2: tới thanh H1 2026-09-03 21:00
Close vừa được hiển thị là 1.16346, trên 1.16302. Điều kiện dừng theo dõi chưa xảy ra, không dự báo Close kế.
EUR/USD Bid H1/H4. Giờ MT5 gốc; chỉ hiện chuỗi đến bước này. Bối cảnh H4 giữ nguyên. Mở bản ghi 3 trong 6
Khung 3: tới thanh H1 2026-09-03 22:00
Close 1.16286 bằng hoặc dưới 1.16302. Dừng theo dõi sau khi thanh 22:00 đóng, không sớm hơn 23:00. Phân loại UP_CLOSE trước vẫn đúng.
EUR/USD Bid H1/H4. Giờ MT5 gốc; chỉ hiện chuỗi đến bước này. Bối cảnh H4 giữ nguyên. Mở bản ghi 4 trong 6
Khung 4: tới thanh H1 2026-09-03 23:00
Close hiện là 1.16257. Theo dõi đã kết thúc ở thanh 22:00; bản ghi mới không đổi lúc biết điều kiện.
EUR/USD Bid H1/H4. Giờ MT5 gốc; chỉ hiện chuỗi đến bước này. Bối cảnh H4 giữ nguyên. Mở bản ghi 5 trong 6
Khung 5: tới thanh H1 2026-09-04 00:00
Close hiện là 1.16229. Theo dõi đã kết thúc ở thanh 22:00; bản ghi mới không đổi lúc biết điều kiện.
EUR/USD Bid H1/H4. Giờ MT5 gốc; chỉ hiện chuỗi đến bước này. Bối cảnh H4 giữ nguyên. Mở bản ghi 6 trong 6
Khung 6: tới thanh H1 2026-09-04 01:00
Close thứ sáu là 1.16232: −13.6 pip từ P, hay −544/373 (khoảng −1.4584) đơn vị trung bình TR20 trước. Đây là thay đổi giá Bid quan sát, không dựng lại khoản lỗ giao dịch.
EUR/USD Bid H1/H4. Giờ MT5 gốc; chỉ hiện chuỗi đến bước này. Bối cảnh H4 giữ nguyên.
Mỗi khung đổi thang từ giá đang thấy; không cực trị tương lai nào đặt trục ban đầu. H4 giữ cố định tại quyết định. Giữ nhãn giờ mở MT5 gốc, độ lệch nhà môi giới chưa xác minh, giờ nhận thực chưa đo. Vẫn cần báo giá về sau để mô hình hóa phản ứng thực hiện được.
Dữ liệu bài cuối và ghi chú thời gian · Toàn bộ 28 bản ghi H1, gồm đường đã mở (CSV). Sổ đầy đủ và ZIP trên giữ các loại trừ và dấu vết phép tính.
Câu hỏi thường gặp – tự động hóa, sàng lọc phân tích kỹ thuật
Có cần biết lập trình để sàng lọc không?
Không. Bộ lọc TradingView tích hợp, bảng MT4/MT5 làm theo “nhấp bộ lọc, đặt ngưỡng, nhận danh sách”. Pine Script, MQL thêm khả năng (điều kiện riêng, cảnh báo kết hợp), nhưng lọc cơ bản không cần viết mã.
Có nên mua Expert Advisor (EA) có sẵn không?
Đánh giá cần quy tắc có tài liệu, toàn lịch sử thử, đổi, mô hình phí, quan sát mới. Dù lịch sử tài khoản xác minh cũng không đảm bảo đại diện, kết quả tương lai. Riêng kiểm thử, đánh giá hấp dẫn không thay các kiểm tra đó.
Nên đặt bao nhiêu cảnh báo cùng lúc?
Không có số chung. Ghi khả năng xem, lúc hết hạn điều kiện, giảm lặp bằng khử trùng. Có thể quét cả tập mà không báo sau mọi nến vẫn cùng trạng thái.
Kiểm thử Forex tin cậy tới đâu?
Tùy dữ liệu, quy tắc, mô hình thực thi. OHLC không xác định SL/TP trước sau trong cùng nến. Chế độ tick thật có thể lấp bằng dữ liệu tạo. Kiểm thử không dự báo; thử tiến tới xem quan sát mới với giới hạn độ dài, đa dạng mẫu.
TradingView hay MT4/MT5 để sàng lọc?
So nguồn, ranh giới nến, bộ lọc có sẵn, vận hành cảnh báo, phạm vi bộ thử. Cảnh báo TradingView chạy máy chủ; chỉ báo MT cục bộ cần nền tảng hoặc VPS đang chạy. Riêng tập lệnh chiến lược TradingView không là hệ thống giao dịch nhà môi giới gốc.
Python tốt hơn Pine Script để kiểm thử không?
Môi trường riêng cho quyền kiểm soát dữ liệu, mô hình nhưng chuyển trách nhiệm đúng đắn sang tác giả. Bộ thử nền tảng có quy ước, giới hạn xác định. Chọn công cụ không loại nhìn trước, lỗi đơn vị, bỏ phí.
Có phải chạy bộ lọc mỗi ngày không?
Nếu quy tắc đánh giá mỗi D1 đóng thì quét phải bao hết. Chỉ xem thứ Hai, thứ Năm bỏ điều kiện mới ngày khác, trừ khi hệ thống tự động vẫn ghi. Tách tần suất xem tay khỏi quét đầy đủ.
Nguồn
Nguồn chính
- Robert Pardo, Đánh giá và tối ưu chiến lược giao dịch, ấn bản thứ 2, Wiley, 2008 – phương pháp kiểm thử, cuốn chiếu, nhận diện khớp quá mức; tác phẩm trọng yếu xác thực chiến lược tự động.
- Ernest P. Chan, Giao dịch định lượng: xây dựng doanh nghiệp giao dịch thuật toán riêng, ấn bản thứ 2, Wiley, 2021 – hướng dẫn thực tế xây chiến lược định lượng, từ sàng lọc tới thực thi thuật toán.
- Perry J. Kaufman, Hệ thống và phương pháp giao dịch, ấn bản thứ 6, Wiley, 2020 – tổng quan bách khoa hệ thống: lọc xu hướng, sàng lọc, thử, tối ưu chiến lược.
- Andreas F. Clenow, Đi theo xu hướng, Wiley, 2013 – cách hệ thống giao dịch xu hướng: lọc công cụ, thử danh mục, quản lý vị thế; thực tế tự động hóa.
Đọc thêm
- David Aronson, Phân tích kỹ thuật dựa trên bằng chứng, Wiley, 2007 – xác thực thống kê phân tích kỹ thuật: thiên lệch đào dữ liệu, thử ý nghĩa, vấn đề so sánh nhiều (dò dữ liệu); cần đọc cho người thử chiến lược.
- Marcos Lopez de Prado, Tiến bộ học máy tài chính, Wiley, 2018 — đọc thêm; không dẫn chương chưa đọc làm bằng chứng quy tắc.
- Alexander Elder, Giao dịch để kiếm sống, phiên bản mới, Wiley, 2014 — đọc thêm; không dẫn chương chưa đọc làm bằng chứng quy tắc.
- Kathy Lien, Giao dịch trong ngày và swing trên thị trường tiền tệ, ấn bản thứ 3, Wiley, 2016 — đọc thêm; không dẫn chương chưa đọc làm bằng chứng quy tắc.
- Lukas Menkhoff, Mark P. Taylor, “Niềm đam mê bền bỉ của giới chuyên nghiệp ngoại hối: phân tích kỹ thuật”, Journal of Economic Literature, tập 45, số 4, 2007 – tổng quan dùng phân tích kỹ thuật trong Forex; bối cảnh vai trò tự động hóa ở nhà giao dịch tiền tệ chuyên nghiệp.
- Andrew W. Lo, Thị trường thích nghi: tiến hóa tài chính với tốc độ tư duy, Princeton University Press, 2017 – giả thuyết thị trường thích nghi: vì sao chiến lược từng hiệu quả có thể ngừng; hệ quả cho tự động hóa, kiểm thử.
Nguồn tổ chức và hướng dẫn
- Swiss National Bank (2015), “Ngân hàng Quốc gia Thụy Sĩ chấm dứt tỷ giá tối thiểu và hạ lãi suất xuống −0.75%”, thông cáo báo chí, ngày 15 tháng 1 năm 2015.
- FCA (2015), “Tin cho khách hàng Alpari (UK) Limited” – Alpari (UK) vào chế độ quản lý đặc biệt.
- BIS Markets Committee (2017), “Sự kiện chớp nhoáng của bảng Anh ngày 7 tháng 10 năm 2016”, tháng 1 năm 2017 — phân tích sự kiện: thanh khoản mỏng, lệnh, phản ứng thuật toán, khác biệt nền tảng.
- TradingView, Tài liệu Pine Script – tài liệu ngôn ngữ chính thức: hành vi tập lệnh trên nến hiện tại, nến đóng (barstate), cảnh báo, strategy().
- MetaQuotes, Tham khảo MQL5 – tài liệu MQL5 chính thức: chỉ báo, Expert Advisor, Strategy Tester.
- ESMA (2018), “ESMA nhất trí cấm quyền chọn nhị phân, hạn chế CFD để bảo vệ nhà đầu tư bán lẻ”, ngày 27 tháng 3 năm 2018 – gói can thiệp sản phẩm: giới hạn đòn bẩy, bảo vệ số dư âm, cảnh báo rủi ro; phân tích giám sát cho thấy 74–89% tài khoản CFD bán lẻ lỗ.