Mục lục bài viết
- Bằng chứng và phạm vi
- Hình minh họa
- Quy trình
- Một vùng gồm nhiều quan sát đã biết
- Giới hạn toàn bộ độ rộng, tránh nối chuỗi
- Ví dụ tạo vùng và lỗi dây chuyền
- Đếm lần chạm độc lập
- Phản ứng và phá vỡ là hai chiến lược
- Volume tại vùng và volume tại phản ứng
- Kiểm định detector và tuổi thọ vùng
- Sai lầm thường gặp
- Checklist thực hành
- Câu hỏi thường gặp
- Nguồn nghiên cứu
Bằng chứng và phạm vi
CME cung cấp bối cảnh hỗ trợ/kháng cự; scikit-learn cung cấp định nghĩa linkage. Nghiên cứu FX của Osler hỗ trợ cơ chế stop cascade, không xác nhận lợi nhuận của thuật toán cụm này.
Quy trình thực hành
- Nhận pivotChỉ lấy cực trị đã xác nhận cùng loại.
- Thử thêm cụmKiểm tra toàn bộ đường kính sau khi thêm.
- Đếm touchYêu cầu giá đã rời vùng và đủ khoảng cách thời gian.
- Phát phiên bảnĐóng băng min, max, median và IDs.
- Theo dõi phản ứngBreakout hoặc reclaim theo strategy riêng.
Một vùng gồm nhiều quan sát đã biết
CME liệt kê đỉnh đáy cũ trong các cách tìm hỗ trợ và kháng cự [1]. Trong phần mềm, nên diễn đạt cụ thể hơn: đây là tập cực trị từng xuất hiện gần nhau. Một vùng chưa chứng minh có người mua bán đang chờ, cũng không đảm bảo lần chạm kế tiếp sẽ bật lại.
Đề xuất lưu cluster_id, loại HIGH hoặc LOW, danh sách pivot IDs, min, max, median, confirmed_at cuối và số touch độc lập. Mọi thành viên phải đã xác nhận trước lúc vùng được sử dụng. Tên gọi equal-high zone chỉ mô tả giá; muốn gọi orderbook wall cần dữ liệu sổ lệnh.
Giới hạn toàn bộ độ rộng, tránh nối chuỗi
Đặt eps=max(2 tick,0,15 A_ref), A_ref chốt khi tạo cụm; ngưỡng này là giả thuyết nghiên cứu. Chỉ thêm pivot mới nếu max của toàn cụm trừ min không vượt 2eps. Tiêu chuẩn kiểm soát đường kính gần với ý tưởng complete linkage dùng khoảng cách lớn nhất [2], nhưng thuật toán tuần tự ở đây không phải toàn bộ AgglomerativeClustering.
Nếu pivot phù hợp nhiều cụm, chọn cụm có median gần nhất, hòa thì chọn ID cũ hơn. Khi không phù hợp cụm nào, mở cụm mới. W=200 nến và min_separation=5 là điểm xuất phát nghiên cứu; không gom HIGH với LOW trước khi có định nghĩa riêng về đổi vai hỗ trợ thành kháng cự.
on_confirmed_pivot(p):
candidates = active_clusters_of_same_kind(p)
eligible = [c for c in candidates
if max(c.max,p.price)-min(c.min,p.price) <= 2*c.eps]
c = nearest_median_then_oldest_id(eligible)
if c is None:
c = new_cluster_with_single_member(p, touch_count=1,
last_touch_index=p.index)
return
independent = p.index-c.last_touch_index >= min_separation
independent &= price_departed_frozen_zone_between(c.last_touch_index,p.index,c)
add_pivot_once(c,p)
if independent:
c.touch_count += 1
c.last_touch_index = p.index
if c.touch_count >= 2:
publish_new_zone_version(c, available_at=p.confirmed_at)
# Candidate đang hoạt động giữ snapshot phiên bản vùng ban đầu.
Ví dụ tạo vùng và lỗi dây chuyền
Ví dụ tổng hợp: ATR tham chiếu 2, tick 0,01 cho eps=0,30 và độ rộng tối đa 0,60. Ba pivot high 100,00; 100,35; 100,55 tạo vùng [100,00;100,55], median 100,35 nếu các touch độc lập. High mới 100,80 không được thêm vì toàn vùng sẽ rộng 0,80, dù nó chỉ cách điểm gần nhất 0,25.
Đây là lý do kiểm tra khoảng cách với một thành viên chưa đủ. Dãy 100;100,4;100,8;101,2 có thể bị single-link nối thành một vùng rất rộng. Khi dùng vùng đó để gọi mọi phản ứng là retest, detector gần như không còn tiêu chuẩn có thể bác bỏ.
Nhánh thành công giả định: giá xuyên 100,55 đến 100,90 rồi đóng 100,20, candidate reclaim short xuất hiện. Entry 100,10, stop 101,00 và target 98,30 cho 2R gộp. Nhánh thất bại: giá đóng 101,10 rồi giữ trên vùng; lệnh short nếu đã khớp phải ghi thua theo stop, không đổi vùng lên 101 để cứu nhãn.
Đếm lần chạm độc lập
Năm nến liên tiếp quanh 100,3 thường là một đợt kiểm tra vùng, không phải năm touch độc lập. Đề xuất chỉ reset bộ đếm sau khi close rời vùng ít nhất 1 ATR đã chốt và đi qua ít nhất năm nến. Như vậy touch mới mô tả một lần thị trường quay lại từ xa.
Độ mạnh vùng có thể dùng tuổi, số lần quay lại và biên độ rời vùng, nhưng không dùng số touch tương lai tăng điểm lịch sử. Vùng càng được chạm nhiều có giữ tốt hơn hay dễ phá hơn là câu hỏi thực nghiệm. Không mặc định cộng mỗi touch thành một phần trăm xác suất.
Phản ứng và phá vỡ là hai chiến lược
Vùng có thể làm bối cảnh cho fade, breakout hoặc retest; detector vùng không chọn giúp. Baseline reclaim dùng close quay vào vùng rồi vào nến sau. Baseline breakout dùng close vượt max+buffer và có thời hạn chờ retest riêng. Mỗi cấu hình cần vô hiệu, stop và target nhất quán.
Osler báo cáo bằng chứng stop-loss góp phần làm tăng tốc chuyển động FX trong nghiên cứu của mình [3]. Điều này không cho phép suy rằng một cụm high trong OHLCV có cùng lượng stop, càng không bảo đảm quét xong đảo chiều. Gọi sự kiện là xuyên mức/reclaim đúng với dữ liệu quan sát.
Volume tại vùng và volume tại phản ứng
OHLCV cho biết volume của nến, không cho biết tất cả volume đó giao dịch bên trong vùng. Chỉ cộng toàn V của các nến chạm rồi gọi là volume-at-price sẽ tạo sai lệch, nhất là nến range lớn. Muốn phân bố chính xác theo giá cần trades hoặc dữ liệu nhỏ hơn với giới hạn được ghi rõ.
Feature đề xuất gồm RVOL nến breakout, tỷ lệ volume pullback so baseline và volume trung bình mỗi touch. Giữ feature ngoài hình học cụm, để có thể bỏ volume trong ablation. Tăng volume cùng range tăng có thể vừa là thông tin vừa làm giá fill xấu đi; cần đo cả hai.
Kiểm định detector và tuổi thọ vùng
Replay phải cho cùng lịch sử phiên bản vùng. Test chuỗi nối dài, điểm hòa khoảng cách, hết hạn W, nhiều touch trong cùng đợt và pivot mới đến trễ. Sau mỗi lần dùng vùng, lưu chính xác version_id; hình hiện tại không đủ tái dựng lý do của trade cũ.
So sánh chiến lược dùng một pivot với dùng cụm hai touch và ba touch. Báo số vùng, thời gian chờ, tỷ lệ được kiểm tra lại, lợi suất sau chi phí và mức độ chồng lấn. Vùng không được chạm lại cũng thuộc mẫu nghiên cứu; chỉ thống kê các vùng tạo trade thắng sẽ làm sai xác suất.
Sai lầm thường gặp
Nối chuỗi thành vùng quá rộng
Khoảng cách cặp gần nhất không khống chế toàn cụm.
Touch tăng nhờ nến đi ngang
Thiếu điều kiện rời vùng khiến số lần chạm bị thổi phồng.
Suy lệnh ẩn từ đường giá
Cụm cực trị không phải bản đồ stop hoặc thanh khoản chờ đã đo trực tiếp.
Checklist trước khi dùng phương pháp
Tự đánh dấu khi đã kiểm tra trên dữ liệu của bạn. Trạng thái lưu trong trình duyệt này; đây không phải chứng nhận chiến lược có lãi.
Câu hỏi thường gặp
Nên dùng median hay mean làm tâm?
Median ít chịu ảnh hưởng của một điểm lệch; nhưng trigger nên dựa biên min/max rõ ràng. So sánh hai lựa chọn nếu tâm thực sự tham gia chiến lược.
Có gộp hỗ trợ cũ và kháng cự mới không?
Có thể thiết kế đổi vai sau breakout và retest đã xác nhận, nhưng cần lưu lịch sử trạng thái thay vì gộp tự động mọi mức gần giá.
Nguồn nghiên cứu
Các nguồn dưới đây hỗ trợ phần định nghĩa hoặc bằng chứng được ghi bên cạnh. Mã giả, ví dụ minh họa và tham số đề xuất trong bài cần được kiểm định riêng.
- Support and ResistanceCME Group. Đã đọc nội dung giáo dục về đỉnh đáy cũ và vùng giá. Đối chiếu: .
- AgglomerativeClusteringscikit-learn. Đã đọc định nghĩa complete và single linkage. Đối chiếu: .
- Stop-Loss Orders and Price Cascades in Currency MarketsCarol L. Osler, Federal Reserve Bank of New York. Đã đọc phần tóm tắt chính thức; không dùng như backtest detector vùng. Đối chiếu: .
Đọc tiếp theo phương pháp
Lưu ý rủi ro
Nội dung phục vụ giáo dục và thiết kế nghiên cứu, không phải lời khuyên tài chính. Backtest là mô phỏng lịch sử, không bảo đảm hiệu quả tương lai và không đặt lệnh giao dịch thật. Các phương pháp trong thư viện không mặc nhiên là tính năng đã có trong ứng dụng. Xem phương pháp tính và trung tâm học.
Kiểm tra quy tắc trước khi dùng vốn thật
Đối chiếu khả năng hỗ trợ của ứng dụng, dữ liệu và từng giao dịch mô phỏng; các detector nâng cao có thể cần triển khai riêng.
Tải Backtest trên App Store