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

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

Tài liệu chính thức xác nhận cơ chế cực trị và nguy cơ vẽ lùi. Các quy tắc hòa giá, ghép mẫu và kiểm thử dưới đây là thiết kế nghiên cứu, chưa có kết quả lợi nhuận.

Dữ liệu và thị trườngOHLC đã đóng của cổ phiếu, futures hoặc crypto; giữ riêng từng sàn và cách điều chỉnh giá.
Khung thời gian nghiên cứuM15, H1, H4 và ngày là các tập nghiên cứu riêng; số nến không tương đương cùng thời gian giao dịch.
Đỉnh 105 xuất hiện tại nến 2 nhưng chỉ xác nhận tại nến 4, đáy 99 xác nhận hai nến sau.Mở hình kích thước đầy đủ
Dữ liệu tổng hợp tự tạo. Đường biểu diễn high mẫu; hai bước từ cực trị đến xác nhận là độ trễ bắt buộc, không phải lợi nhuận.

Quy trình thực hành

Sơ đồ quy trình Pivot cửa sổ trái phải: xác định đỉ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. Kiểm tra nếnChỉ nhận cửa sổ đủ dữ liệu đã đóng.
  2. Lùi r nếnỨng viên cần kiểm tra là i=t−r.
  3. So hai phíaÁp đúng tie-break của phiên bản.
  4. Ghi xác nhậnLưu occurred_at và confirmed_at riêng.
  5. Chuyển chiến lượcChỉ trigger từ dữ liệu đến sau xác nhận.

Một đỉnh có hai thời điểm

Tại nến i, giá cao nhất mới chỉ là ứng viên. Với r=3, hệ thống cần đóng thêm ba nến để biết các high phía sau có thấp hơn nó hay không. occurred_at ghi vị trí i; confirmed_at ghi i+3. Trên biểu đồ có thể đặt dấu ở i để dễ đọc, nhưng mọi quyết định giao dịch phải bắt đầu từ confirmed_at.

TradingView mô tả pivot bằng cực trị trong cửa sổ hai phía [1]. Tài liệu Pine cảnh báo việc đặt dấu pivot vào quá khứ có thể làm người xem hiểu sai thời điểm biết tín hiệu [2]. SciPy lại chọn giữa một plateau trong find_peaks [3]. Vì vậy không nên kỳ vọng các thư viện cho cùng anchors nếu chưa thống nhất quy tắc hòa giá.

Định nghĩa có thể lập trình

Phiên bản đề xuất dùng l=r=2 và chọn điểm bằng nhau ngoài cùng bên phải. High tại i phải lớn hơn hoặc bằng mọi high phía trái, đồng thời lớn hơn mọi high phía phải. Đáy đảo chiều bất đẳng thức. Đây là tham số và tie-break nghiên cứu, không phải thông số tối ưu hay bản sao nguyên xi của thư viện.

Yêu cầu l+r+1 nến hợp lệ, timestamp tăng, không trùng và đúng lịch thị trường. Nếu cửa sổ cắt qua dữ liệu thiếu, đánh dấu thiếu dữ liệu rồi bỏ xác nhận. Không lấp chỗ trống bằng nến giao dịch giả, vì một hàng bằng giá có thể làm thay đổi plateau và độ trễ.

on_closed_bar(t):
    i = t - r
    if i < l or window_has_missing_bar(i-l, t): return
    high_ok = H[i] >= max(H[i-l:i]) and H[i] > max(H[i+1:t+1])
    low_ok  = L[i] <= min(L[i-l:i]) and L[i] < min(L[i+1:t+1])
    if high_ok and low_ok: emit_ambiguous(i, confirmed_at=t)
    elif high_ok: emit_once('HIGH', i, H[i], confirmed_at=t)
    elif low_ok: emit_once('LOW', i, L[i], confirmed_at=t)

Ví dụ xác nhận và tình huống thất bại

Ví dụ tổng hợp: chuỗi high 100, 102, 105, 104, 103 có đỉnh 105 tại chỉ số 2. Với l=r=2, đến close chỉ số 4 mới phát sự kiện. Nếu đây là nến H1 có giờ đóng 09:00 đến 13:00 thì 105 xảy ra lúc 11:00 và chỉ được biết là pivot lúc 13:00; lệnh theo close sớm nhất gửi sau 13:00.

Thay high cuối bằng 106 thì ứng viên 105 thất bại. Không có pivot để xóa vì trước đó chưa phát sự kiện xác nhận. Với chuỗi 100, 102, 105, 105, 104, 103, điểm 105 thứ hai được chọn theo tie-break đề xuất. Khi đổi sang strict cả hai phía, toàn plateau bị loại; hai biến thể không được gộp chung.

Một outside bar có H=108, L=95 trong cửa sổ các high thấp hơn 108 và các low cao hơn 95 có thể đạt cả hai điều kiện. OHLC không cho biết thứ tự chạm 108 và 95. Detector vẫn có thể lưu hai cực trị đồng thời, nhưng không dùng chúng như hai bước tuần tự trong vai đầu vai hoặc sóng tăng giảm.

Từ detector sang một giả thuyết giao dịch

Pivot tự nó không tạo lệnh. Một thử nghiệm cụ thể là chỉ mua khi close tương lai vượt pivot high đã xác nhận cộng buffer, với buffer đề xuất max(2 tick, 0,1 ATR trước nến trigger). Lệnh thị trường ở open tiếp theo và lệnh buy stop đặt sẵn là hai mô hình thực thi khác nhau; chọn một trước backtest.

Stop có thể dựa vào pivot low đã biết, còn thời hạn chờ là K nến từ xác nhận. Khi high đã bị vượt trước lúc pivot đủ điều kiện công bố, không được ghi một breakout trong quá khứ. Có thể bỏ sự kiện hoặc định nghĩa chiến lược vào muộn từ hiện tại; không chọn cách có giá vào đẹp hơn cho từng trade.

Với hai pivot cùng loại liên tiếp, lưu stream gốc bất biến. Nếu cần chuỗi luân phiên, tạo lớp xử lý riêng và ghi phiên bản. Không thay anchor của một candidate đã phát hành chỉ vì sau đó xuất hiện đỉnh cao hơn; candidate cũ phải có trạng thái vô hiệu hoặc hết hạn rõ ràng.

Volume nên bổ sung điều gì

Lưu V tại occurred_at và V tại confirmed_at thành hai feature khác nhau. Volume lớn ở nến đỉnh trả lời câu hỏi hoạt động tại cực trị; volume của nến xác nhận thuộc giai đoạn sau. Lấy volume ba nến tương lai rồi ghi nó như thuộc tính biết ngay ở đỉnh là rò rỉ dữ liệu.

Thử so sánh detector nguyên bản với bộ lọc RVOL tại trigger: V hiện tại chia median 20 nến trước, ngưỡng 1,5 là giả thuyết. Với cổ phiếu intraday, nên dùng baseline cùng giờ phiên thay vì trộn mở cửa với giữa trưa. Tick volume của FX là số cập nhật theo nhà cung cấp, không tự động bằng lượng hợp đồng giao dịch.

Đo tính đúng trước khi đo lợi nhuận

Kiểm thử replay từng prefix: kết quả phát hành trước t phải giữ nguyên khi nối thêm 100 nến. So sánh timestamp, loại pivot, giá và ID; đừng chỉ so hình vẽ cuối cùng. Thêm fixture plateau, outside bar, thiếu nến, giá âm nếu hợp đồng cho phép và khác tick size.

Đo số pivot trên 1.000 nến, phân phối độ trễ, khoảng cách giữa pivots và tỷ lệ mẫu hình học bị loại bởi xác nhận muộn. Sau đó mới đánh giá chiến lược breakout với phí, spread, gap và stop. So sánh l=r=2 với 3 và 5 trên development, khóa lựa chọn trước đoạn test; nhiều anchors đẹp hơn không đồng nghĩa expectancy cao hơn.

Sai lầm thường gặp

Vào đúng đỉnh trên backtest

Dấu vẽ lùi bị dùng làm timestamp vào lệnh; replay chỉ với dữ liệu đã biết sẽ phát hiện.

Nhầm Pivot Points

Pivot cửa sổ là cực trị cục bộ; mức P,R,S theo phiên là hệ công thức khác.

Chọn scale sau kết quả

Mỗi mức l/r là một giả thuyết; báo toàn bộ biến thể đã thử.

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/8 mục

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

r=0 có loại bỏ độ trễ không?

Có thể tính cực trị chỉ so quá khứ, nhưng nó không xác nhận đảo chiều phía phải và là detector khác.

Pivot xác nhận rồi có bị phá không?

Có. Sự kiện lịch sử vẫn đúng; một mức kháng cự bị vượt không làm cực trị đã xác nhận biến mất.

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. Auto trendlinesTradingView. Đã đọc định nghĩa pivot hai phía; không dùng kết quả thương mại làm bằng chứng lợi nhuận. Đối chiếu: .
  2. Pine Script: RepaintingTradingView. Đã đọc mục vẽ tín hiệu vào quá khứ và dữ liệu đang hình thành. Đối chiếu: .
  3. scipy.signal.find_peaksSciPy. Đã đọc xử lý plateau và dữ liệu thiếu; chỉ là đặc tả hàm. Đố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