Mục lục bài viết
- Bằng chứng và phạm vi
- Hình minh họa
- Quy trình
- Đỉnh cao chưa chắc nổi bật
- Phiên bản cục bộ có độ trễ hữu hạn
- Bốn bộ lọc không thay thế nhau
- Ví dụ số và trường hợp tưởng nổi bật
- Dùng làm feature hoặc anchor
- Kết hợp hoạt động giao dịch
- Kiểm định hình học và giá trị thực tế
- 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
Ba nguồn là tài liệu API chính thức của SciPy, xác nhận định nghĩa và hành vi hàm. Chúng không cung cấp bằng chứng lợi nhuận của chiến lược trading.
Quy trình thực hành
- Chọn chuỗiClose hoặc indicator; kiểm tra dữ liệu thiếu.
- Chờ cửa sổỨng viên ở tâm chỉ được xét khi đủ phía phải.
- Tìm hai baseDừng theo biên và đỉnh cao hơn.
- Chuẩn hóaSo prominence/ATR với ngưỡng đã đăng ký.
- Lưu bất biếnĐóng băng đặc trưng và thời điểm xác nhận.
Đỉnh cao chưa chắc nổi bật
Một close 120 trên nền 119,8 có thể kém đáng chú ý hơn close 105 trên nền 100. Độ cao tuyệt đối phụ thuộc mức giá tài sản; độ nổi bật so nền trả lời câu hỏi hình học khác. Vì thế prominence hữu ích khi bộ quét sinh quá nhiều pivots nhỏ và cần tiêu chuẩn loại nhiễu có thể đo.
SciPy xác định prominence từ đỉnh đến đường nền tại base cao hơn trong hai phía [1]. Width đo bề rộng tại tỷ lệ của prominence [2]; find_peaks có thêm các bộ lọc riêng [3]. Đây là công cụ xử lý chuỗi số. Để gán ý nghĩa hỗ trợ/kháng cự, phải bổ sung bối cảnh và một thử nghiệm dự báo độc lập.
Phiên bản cục bộ có độ trễ hữu hạn
Đề xuất cửa sổ đối xứng W=11, bán kính h=5. Tại close t, chỉ đánh giá ứng viên i=t−5 trong đoạn i−5 đến i+5. W=11 và ngưỡng prominence tối thiểu 1,5 ATR là tham số nghiên cứu. Dùng ATR tại i−1 để chuẩn hóa theo điều kiện trước cực trị; đến t giá trị đó đã được biết.
Từ đỉnh, tìm mỗi phía đến biên cửa sổ hoặc gặp mức cao hơn đỉnh. Lấy minimum ở từng đoạn, chọn base cao hơn; prominence bằng đỉnh trừ base ấy. Đáy xử lý trên chuỗi −close. Đừng lấy min cả hai phía tùy ý vì có thể phóng đại một đỉnh nằm trên vai của đỉnh lớn.
h = 5; W = 2*h + 1
on_closed_bar(t):
i = t - h
if i-h < 0 or invalid_data(i-h, t): return
x = close[i-h:t+1]
candidates, _ = find_peaks(x, plateau_size=(1,1))
if h not in candidates: return
prominences, left_bases, right_bases = peak_prominences(x, [h], wlen=W)
p = prominences[0]
a = ATR[i-1]
if a is not missing and isfinite(a) and a > 0 and p / a >= 1.5:
emit_once(i, confirmed_at=t, prominence=p, window=W)
# Đáy: lặp lại trên -close, giữ nguyên timestamp và ATR.
Bốn bộ lọc không thay thế nhau
Height là giá trị đỉnh; threshold là chênh so láng giềng ngay sát; prominence nhìn nền rộng hơn; width tính bề ngang. Với một đỉnh tròn rộng, threshold sát cạnh có thể nhỏ dù prominence lớn. Thêm yêu cầu threshold quá cao có thể vô tình chỉ giữ các spike một nến, khác mục tiêu nhận diện đỉnh phân phối chậm.
Distance cũng cần kiểm soát nhân quả. Nếu chạy find_peaks một lần trên toàn lịch sử rồi để một đỉnh tương lai lớn hơn loại đỉnh trước vì quá gần, danh sách quá khứ sẽ thay đổi. Baseline trên chỉ xét từng ứng viên và không dùng bộ lọc distance toàn cục. Nếu cần khoảng cách tối thiểu, dùng cooldown từ sự kiện đã phát; quy tắc ấy ưu tiên thời gian xuất hiện, không ưu tiên đỉnh đẹp nhất sau này.
Ví dụ số và trường hợp tưởng nổi bật
Dữ liệu tổng hợp quanh một đỉnh là 100, 101, 103, 106, 104, 102, 103. Với vùng khảo sát đúng đoạn này, base trái 100 và base phải 102 cho prominence 4. Nếu ATR tham chiếu bằng 2 thì tỷ lệ là 2 ATR, vượt ngưỡng nghiên cứu 1,5. Khi cửa sổ bên phải chưa đóng hết, đây vẫn chỉ là kết quả tạm.
Một đoạn khác 108, 109, 110, 109,8, 109,7 có đỉnh giá cao hơn, nhưng base cao hơn bằng 109,7, nên prominence chỉ 0,3 trong cửa sổ đó. Nó thất bại ở bộ lọc 1,5 ATR khi ATR=1. Điều này minh họa bộ lọc loại một gợn nhỏ; không kết luận rằng đỉnh thứ nhất sinh lãi còn đỉnh thứ hai thua.
Thất bại giao dịch vẫn có thể xảy ra sau một đỉnh nổi bật: tín hiệu short được phép ở 102, nhưng giá hồi lên 107 ngay sau đó. Nếu stop tại 106,2 và fill đầu vào 101,8, rủi ro đã là 4,4 điểm. Một cực trị nổi bật được nhận diện muộn có thể để lại tỷ lệ lợi nhuận/rủi ro kém.
Dùng làm feature hoặc anchor
Cách thận trọng về thiết kế là để prominence chọn anchors cho hai đỉnh hoặc vùng kháng cự, còn trigger nằm ở một sự kiện tương lai như close phá đáy trung gian. Snapshot candidate gồm window_start, window_end, prominence, ATR_ref và confirmed_at để tái dựng quyết định.
Nếu thử vào ngay sau xác nhận đỉnh, cần đặt stop, time exit và giới hạn số vị thế riêng. Detector không cung cấp target tự nhiên. Mục tiêu bằng prominence chỉ là một giả thuyết; so sánh với target theo R và time exit trong các cấu hình đã đăng ký, tránh tối ưu riêng từng mẫu.
Kết hợp hoạt động giao dịch
Volume không có trong công thức prominence nên có thể thêm dưới dạng feature độc lập về dữ liệu, nhưng chưa chắc độc lập thống kê. Lưu volume quanh đỉnh và RVOL ở trigger; không gọi volume cao là dấu vết tổ chức nếu chỉ có tổng V. Đỉnh có prominence cao trong giờ tin có thể đi kèm spread lớn.
Thử nhóm theo prominence/ATR rồi so sánh trong cùng nhóm các mức RVOL. Cách này giúp phân biệt volume bổ sung thông tin hay chỉ đại diện cho biên độ giá. Với dữ liệu intraday, chuẩn hóa theo vị trí trong phiên; với crypto, cố định sàn và đơn vị base volume hoặc quote volume.
Kiểm định hình học và giá trị thực tế
Fixture nên bao gồm đỉnh lồng trong đỉnh lớn, plateau, NaN, biên cửa sổ và hai đỉnh cách nhau ít nến. Xác nhận rằng tăng W có thể đổi prominence của một đỉnh mới, nhưng không sửa sự kiện đã công bố của phiên bản W cũ. Ghi phiên bản SciPy nếu sử dụng thư viện.
Đo thêm số anchors còn lại, độ trễ h nến, tỷ lệ pattern không còn hợp lệ lúc anchor cuối được biết và kết quả ngoài mẫu sau chi phí. Nếu bộ lọc chỉ giảm số lệnh mà không tăng kỳ vọng ròng hoặc giảm rủi ro có ý nghĩa, chưa đủ lý do giữ thêm độ phức tạp.
Sai lầm thường gặp
Nhầm prominence với độ cao
Giá tuyệt đối lớn không có nghĩa đỉnh nổi bật so nền.
Lọc khoảng cách sau toàn lịch sử
Đỉnh tương lai có thể loại đỉnh cũ; dùng replay hoặc cooldown nhân quả.
Smoothing nhìn trước
Trung bình centered dùng dữ liệu tương lai; nếu dùng phải cộng đúng độ trễ vào confirmed_at.
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
Prominence có tốt hơn pivot thông thường không?
Nó thêm tiêu chuẩn biên độ và nền. Có ích hay không phụ thuộc mục tiêu detector và kiểm định của chiến lược sử dụng.
Có thể dùng cho RSI không?
Có thể vì RSI là chuỗi số, nhưng đơn vị prominence khi đó là điểm RSI; không chia trực tiếp cho ATR tính bằng đơn vị 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.
- scipy.signal.peak_prominencesSciPy. Đã đọc định nghĩa base, wlen và thuật toán; không phải nghiên cứu tài chính. Đối chiếu: .
- scipy.signal.peak_widthsSciPy. Đã đọc chiều rộng tại tỷ lệ prominence và nội suy. Đối chiếu: .
- scipy.signal.find_peaksSciPy. Đã đọc các bộ lọc và cách xử lý khoảng cách. Đố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