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 đỉnh có hai thời điểm
- Định nghĩa có thể lập trình
- Ví dụ xác nhận và tình huống thất bại
- Từ detector sang một giả thuyết giao dịch
- Volume nên bổ sung điều gì
- Đo tính đúng trước khi đo lợi nhuận
- 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
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.
Quy trình thực hành
- Kiểm tra nếnChỉ nhận cửa sổ đủ dữ liệu đã đóng.
- Lùi r nếnỨng viên cần kiểm tra là i=t−r.
- So hai phíaÁp đúng tie-break của phiên bản.
- Ghi xác nhậnLưu occurred_at và confirmed_at riêng.
- 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.
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.
- 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: .
- 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: .
- 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