Mục lục bài viết

Bằng chứng và phạm vi

Nguồn công cụ có EQH/EQL; nghiên cứu support/resistance và tài liệu repainting cung cấp bối cảnh. Chưa kiểm định lợi nhuận cho thuật toán cluster đề xuất.

Dữ liệu và thị trườngÁp dụng với OHLC và bước giá chính xác; cần điều chỉnh giá cổ phiếu hoặc cách nối futures trước khi gom cụm.
Khung thời gian nghiên cứuMột stream pivot cho mỗi scale; ví dụ M15 nhỏ và H1 lớn phải được lưu riêng.
Ba đỉnh tách biệt gần mức 100 tạo cụm; lần xuyên phía sau được kiểm tra bởi detector riêng.Mở hình kích thước đầy đủ
Giá và volume giả lập; ba đỉnh tạo vùng có độ rộng 0,25. Không phải kết quả giao dịch thật. Các điểm là mốc sự kiện đã rút gọn; không đại diện các bar liên tiếp hay khoảng thời gian đều nhau.

Quy trình thực hành

Sơ đồ quy trình Equal highs và equal lows: gom cụm đỉnh đáy không nhìn trước
Các bước được mô tả đầy đủ bên dưới. Tại mỗi bước, dữ liệu thiếu hoặc điều kiện sai phải có lý do loại bỏ.
  1. Xác nhận pivotGiữ occurred_at và confirmed_at riêng.
  2. Kiểm tra khoảng cáchCùng scale; touch tách biệt.
  3. Kiểm độ rộngXét toàn cluster, không chỉ láng giềng.
  4. Công bố versionĐóng băng biên và thời điểm hiệu lực.
  5. Chờ triggerSweep hoặc breakout được kiểm định riêng.

Cụm giá quan sát được, thanh khoản là giả thuyết

Hai đáy 50 và 50,08 có thể được coi gần bằng nhau khi dao động thông thường lớn hơn sai khác đó. Nhưng trên tài sản tick 0,25, mức 50,08 không hợp lệ; detector phải nhận đúng thang giá. Việc người tham gia chú ý cùng một mức có thể tạo phản ứng, song số lần chạm không tiết lộ tổng stop phía ngoài.

LuxAlgo cung cấp EQH/EQL và số nến xác nhận tùy chọn [1]. Bằng chứng support/resistance của Osler có phạm vi riêng [2]; không thể chuyển thẳng thành tỷ lệ thắng của mọi cụm hai đáy. Bài này thiết kế vùng online nhằm tạo một đầu vào nhất quán cho sweep hoặc breakout.

Hai highs gần nhau chưa đủ gọi mô hình hai đỉnh: mô hình đảo chiều còn cần xu hướng trước, đáy giữa và trigger neckline. Equal highs chỉ nói về vị trí cực trị; đôi khi nó tồn tại trong xu hướng tăng và sau đó bị phá lên.

Gom cụm theo độ rộng toàn nhóm

Đề xuất dùng pivot trái/phải 3/3; đỉnh tại i được biết ở i+3 và eligible từ i+4. A_ref là ATR14 trước thời điểm cụm được tạo. Đặt eps=max(2 tick,0,15A_ref). Một cluster gồm tối thiểu hai pivot cùng loại, cùng scale, có max(price)−min(price)≤2eps. Zone là min/max của giá pivot thật; center là median, không tự cộng eps một lần nữa.

Đề xuất khoảng cách touch tối thiểu 5 nến và yêu cầu giá đã rời vùng ít nhất eps giữa các touch. Điều này tránh đếm ba pivot cùng một vùng đi ngang rất ngắn thành ba lần test độc lập. TTL ví dụ 100 nến tính từ lúc công bố; tuổi vùng là feature, không phải mặc định càng cũ càng mạnh.

Khi một pivot mới phù hợp nhiều cụm, dùng quy tắc quyết định trước: ưu tiên tâm gần nhất, hòa thì cụm mới hơn. Nếu thêm pivot làm độ rộng toàn cụm vượt giới hạn, không thêm. Tránh chaining: A gần B, B gần C không có nghĩa A gần C.

Để hoàn tất baseline, seed chưa đủ hai touch hết hạn sau 100 bar từ xác nhận pivot đầu. Cluster đã công bố hết hạn sau 100 bar từ lần công bố đầu; phiên bản sau không gia hạn. Departure chỉ xét giữa hai occurred_at của touch, không dùng các bar sau touch thứ hai trong thời gian chờ xác nhận. Loại pivot trùng ID và chỉ công bố từ eligible_from đã tính.

for p in newly_confirmed_pivots:
  eligible_from = p.confirmed_at+1
  expire_seeds_and_clusters_at_fixed_deadlines(p.confirmed_at)
  candidates = active_clusters_same_type_and_scale(p)
  keep = [c for c in candidates if
          max(c.prices+[p.price])-min(c.prices+[p.price]) <= 2*c.eps]
  c = nearest_center_then_newest(keep)
  if c is None:
    A = ATR14[p.confirmed_at-1]
    if not finite_positive(A): continue
    create_unpublished_seed(p,eps=max(2*tick,0.15*A),
                            seed_expiry=p.confirmed_at+100)
    continue
  if p.id in c.pivot_ids: continue
  if not separated_touch_between_occurrences(p,c,min_bars=5): continue
  append_pivot_once(c,p)
  c.last_touch_index = p.occurred_at
  if c.first_published_at is None:
    c.first_published_at = p.confirmed_at
    c.expiry = p.confirmed_at+100
  publish_new_version(c,eligible_from=eligible_from,expiry=c.expiry)
# Departure is measured only between touch occurrence times.
# Later versions never reset expiry or rewrite active setup snapshots.

Volume quanh các lần test và giới hạn suy luận

Có thể tổng hợp volume trong một cửa sổ đối xứng quanh pivot, nhưng phần bên phải chỉ được biết khi hoàn tất. Nếu detector công bố trước cửa sổ volume kết thúc, feature đó không được dùng. Lựa chọn đơn giản hơn là volume từ khi chạm đến lúc pivot xác nhận, với độ dài cố định cho mọi touch.

Thử số đo volume giảm ở lần chạm thứ hai như giả thuyết yếu lực; cũng giữ nhóm volume tăng nhưng giá vẫn không vượt mức. Không gọi nhóm nào là accumulation hoặc distribution chỉ từ histogram. Một cụm cùng hướng với trend, volume cao và acceptance ngoài vùng có thể trở thành breakout tiếp diễn.

Với thị trường có phiên, chuẩn hóa theo cùng giờ. So một đáy lúc mở cửa và một đáy giờ trưa bằng raw volume sẽ trộn hiệu ứng giờ giao dịch vào hiệu ứng số lần test.

Ví dụ cluster hợp lệ và lỗi nối chuỗi

Dữ liệu giả lập: tick=0,01, A_ref=1 nên eps=0,15, chiều rộng tối đa 0,30. Ba đỉnh tại nến 10, 24, 39 có giá 100; 100,12; 100,25. Nếu tất cả đã xác nhận và mỗi lần giá rời vùng, cluster hợp lệ là [100,100,25], tâm 100,12. Nó chỉ sẵn dùng sau xác nhận đỉnh cuối, không từ nến 10.

Đỉnh mới 100,42 cách 100,25 chỉ 0,17 nhưng làm nhóm rộng 0,42 nên bị loại khỏi cụm cũ. Đây là ví dụ thất bại của chaining: chỉ so với điểm gần nhất sẽ kéo vùng lên vô hạn. Tạo cụm mới là lựa chọn có thể thử, không sửa tọa độ của setup đã phát.

Ví dụ dùng vùng: một nến sau đó high 100,50, close 99,80 tạo ứng viên sweep phía trên tùy buffer. Short giả lập 99,75, stop 100,60, target 98,05 cho 2R trước phí. Nếu close tiếp theo lên 100,80 và stop khớp 100,65, trade thua dù cluster ban đầu hợp lệ. Detector không hứa mức sẽ giữ.

Vùng chỉ trở thành trade qua một trigger riêng

Hai cách nghiên cứu là fade sau sweep/reclaim hoặc theo breakout có acceptance. Mỗi cách dùng cùng cluster để tránh selection bias. Không đặt lệnh short chỉ vì vừa thấy EQH; có thể giá chưa hề quay lại vùng.

Một candidate đã liên kết zone_version phải giữ version đó đến khi hết hạn. Khi thêm touch, tạo version mới có eligible_at riêng; detector sweep đang chạy không được tăng biên ngoài để làm biến mất việc giá đã xuyên. Giữ source_pivot_ids để truy nguyên từng vùng.

Cụm đã bị close-break có thể bị đánh dấu consumed hoặc chuyển trạng thái; lựa chọn nghiên cứu này phải thống nhất. Nếu level nằm sát một level ngày trước, lưu overlap để phân tích nhưng không tăng hai lần ngân sách rủi ro. Tài liệu TradingView hữu ích để đối chiếu cách marker quá khứ khác thời điểm biết tín hiệu [3].

Kiểm tra chất lượng vùng trước lợi nhuận

Đầu tiên kiểm tra tính ổn định: replay từng nến phải cho cùng versions như batch chỉ trên prefix dữ liệu. Kiểm các trường hợp equal-price ties, thiếu nến, split cổ phiếu và tick thay đổi. Đừng dùng clustering toàn mẫu rồi quay lại chấm lịch sử.

Sau đó đo phản ứng sau lần tiếp cận đầu tiên, có đủ cả breakout và rejection. Ghép vùng theo tuổi, độ rộng, số touch và regime. So với mức rolling extrema hoặc lưới giá ngẫu nhiên có cùng mật độ; nếu tạo quá nhiều vùng, gần như mọi đảo chiều đều gần một vùng nào đó.

Báo độ phủ, số candidate trên ngày và kết quả sau chi phí của trigger cụ thể. Một detector vẽ đẹp nhưng đẻ hàng trăm mức không nhất thiết tạo lợi thế có thể giao dịch.

Sai lầm thường gặp

Sai số bằng giá tuyệt đối

Một mức dung sai cố định không thích hợp mọi volatility; kiểm sensitivity theo ATR/tick.

Gộp dây chuyền

Đo max−min toàn cụm để chặn vùng trôi.

Dùng equal highs như hai đỉnh

Thiếu bối cảnh và neckline; đây chỉ là vùng tham chiếu.

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.

0/7 mục

Câu hỏi thường gặp

Phải bằng nhau chính xác không?

Không. Dung sai cần theo tick và mức dao động, được cố định trước kiểm định.

Ba lần chạm luôn mạnh hơn hai lần?

Chưa có quy luật phổ quát trong đặc tả này. Lần chạm thêm cũng có thể đi cùng suy yếu của mức; đo riêng theo regime.

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.

  1. Smart Money ConceptsLuxAlgo trên TradingView. Đọc mô tả công cụ và giới hạn bằng chứng. Đối chiếu: .
  2. Support for ResistanceFederal Reserve Bank of New York. Thông cáo nghiên cứu gốc; không phải kết quả của biến thể ở đây. Đối chiếu: .
  3. RepaintingTradingView. Tài liệu tính toán lịch sử và thời gian thực. Đố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