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

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.

Dữ liệu và thị trườngChuỗi close hoặc một indicator số; lựa chọn một đơn vị giá nhất quán, xử lý NaN và gaps trước khi tìm đỉnh.
Khung thời gian nghiên cứuCó thể nghiên cứu trên H1 hoặc ngày; mọi wlen biểu diễn số mẫu, không tự động là cùng khoảng thời gian thị trường.
Đỉnh 106 cao hơn nền 102 bốn điểm, còn đỉnh 110 chỉ nhô nhẹ trên nền 109,7 của cửa sổ riêng.Mở hình kích thước đầy đủ
Chuỗi giá tổng hợp. Hai cửa sổ cục bộ cho thấy đỉnh 106 nổi bật hơn gợn 110 dù giá tuyệt đối thấp hơn; không dùng toàn chuỗi làm một cửa sổ.

Quy trình thực hành

Sơ đồ quy trình Peak prominence: lọc đỉnh đáy theo độ nổi bật
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. Chọn chuỗiClose hoặc indicator; kiểm tra dữ liệu thiếu.
  2. Chờ cửa sổỨng viên ở tâm chỉ được xét khi đủ phía phải.
  3. Tìm hai baseDừng theo biên và đỉnh cao hơn.
  4. Chuẩn hóaSo prominence/ATR với ngưỡng đã đăng ký.
  5. 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.

0/8 mục

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.

  1. 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: .
  2. scipy.signal.peak_widthsSciPy. Đã đọc chiều rộng tại tỷ lệ prominence và nội suy. Đối chiếu: .
  3. 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