Dữ liệu dấu chân khối lượng giờ đã có trong Pine Script

Mar 2

Pine Script giờ đã hỗ trợ dữ liệu dấu chân khối lượng, cho phép bạn truy cập trực tiếp dòng lệnh chi tiết bên trong từng thanh giá.

Bản cập nhật này giúp bạn xây dựng các chỉ báo dấu chân tùy chỉnh, trích xuất các chỉ số khối lượng chính xác, và phân tích hoạt động bên trong thanh giá mà không cần dùng các giải pháp vòng như chuyển sang khung thời gian thấp hơn.

Vì sao nên dùng dấu chân trong Pine?

Các yêu cầu dữ liệu dấu chân cho phép bạn ngay lập tức mở khóa dữ liệu chi tiết bên trong thanh giá và xác định các mức dòng lệnh quan trọng về mặt cấu trúc, chẳng hạn như:

  • Phân tách khối lượng chi tiết — tổng khối lượng mua (ask) và bán (bid) chính xác cho toàn bộ thanh giá cũng như tại từng mức giá cụ thể.
  • Delta khối lượng chính xác — chênh lệch cụ thể giữa áp lực mua và áp lực bán.
  • Các mức đấu giá quan trọng — truy cập ngay các mức Điểm kiểm soát (POC), Giá trị cao (VAH) và Giá trị thấp (VAL) của thanh giá.
  • Mất cân bằng — dữ liệu về mất cân bằng mua và bán tại các hàng giá cụ thể.

Khi kết hợp request.footprint() với các tập lệnh tùy chỉnh, bạn có thể theo dõi dữ liệu dòng lệnh chuyên sâu theo cách lập trình, đồng thời vẫn tập trung vào chiến lược và việc thực thi giao dịch.

Cách hoạt động của dấu chân và cấu trúc dữ liệu

Hàm request.footprint() là công cụ cốt lõi dùng để yêu cầu dữ liệu dấu chân khối lượng cho thanh giá hiện tại. Khi được gọi, hàm sẽ trả về một đối tượng footprint, chứa toàn bộ dữ liệu dấu chân khối lượng đã truy xuất cho thanh giá đó.

Dữ liệu được tổ chức thành hai cấu trúc chính:

  • Đối tượng Footprint — cho phép bạn truy cập các chỉ số tổng thể của thanh giá. Bằng cách sử dụng các hàm footprint.*() bạn có thể lấy dữ liệu như tổng khối lượng mua, tổng khối lượng bán, và delta khối lượng.
  • Đối tượng Volume_row: đại diện cho các hàng giá cụ thể trong dấu chân, chẳng hạn như Điểm kiểm soát (POC) hoặc các ranh giới vùng giá trị. Bằng cách sử dụng các hàm volume_row.*() bạn có thể truy xuất mức giá của hàng đó, giá trị khối lượng, delta khối lượng, và các trạng thái mất cân bằng.

Lưu ý: nếu không có dữ liệu dấu chân cho một thanh giá nhất định, hàm request.footprint() function sẽ trả về na.

Hãy luôn đảm bảo tập lệnh của bạn kiểm tra đối tượng trả vềlà not na trước khi cố gắng trích xuất dữ liệu bằng các hàm footprint.*() hoặc volume_row.*().

Ví dụ sử dụng

Bên dưới là một tập lệnh đơn giản minh họa cách yêu cầu dữ liệu dấu chân và truy cập các điểm dữ liệu bên trong:

//@version=6
indicator("Footprint Data Highlight", overlay = true)

// Request the footprint object for the current bar (100 ticks per row, 70% Value Area)
footprint reqFootprint = request.footprint(100, 70)

// We use a block to ensure we only process data when the footprint is available
if not na(reqFootprint)
    // 1. Access overall bar metrics from the `footprint` object
    float totalBuyVol = reqFootprint.buy_volume()
    float totalSellVol = reqFootprint.sell_volume()
    float volumeDelta = reqFootprint.delta()

    // 2. Retrieve a specific `volume_row` object (the Point of Control)
    volume_row pocRow = reqFootprint.poc()

    // 3. Access specific price values from the `volume_row` object
    float pocUpperPrice = pocRow.up_price()
    float pocLowerPrice = pocRow.down_price()

// --- USING THE VARIABLES ---

// Use Buy/Sell Volume and Delta in a label
    if barstate.islast
        label.new(bar_index, high, 
               text = "Buy: " + str.tostring(totalBuyVol, format.volume) + 
               "\nSell: " + str.tostring(totalSellVol, format.volume) + 
               "\nDelta: " + str.tostring(volumeDelta, format.volume),
               color = color.new(color.blue, 20), 
               textcolor = color.white,
               style = label.style_label_down)

    // Use POC prices to highlight the POC area on the chart
    linefill.new(
               line.new(bar_index, pocUpperPrice, bar_index[1], pocUpperPrice, color = color.orange),
               line.new(bar_index, pocLowerPrice, bar_index[1], pocLowerPrice, color = color.orange),
               color.new(color.orange, 80))

// Plotting the volume delta on a separate pane (if moved to non-overlay) 
// or as a reference value in the Data Window
plot(not na(reqFootprint) ? reqFootprint.total_volume() : na, "Volume Delta", display = display.data_window)

Xin lưu ý rằng để sử dụng các tính năng dấu chân này, bạn cần có gói Premium hoặc Ultimate.

Để cập nhật những cải tiến mới nhất của Pine Script®, hãy theo dõi mục Ghi chú phát hành trong Hướng dẫn sử dụng.

Chúng tôi hy vọng bạn sẽ thấy những tính năng này hữu ích như chính chúng tôi. Hãy tiếp tục gửi cho chúng tôi phản hồi và đề xuất để chúng tôi có thể làm cho nền tảng ngày càng tốt hơn. Chúng tôi xây dựng TradingView dành cho bạn và luôn mong muốn lắng nghe ý kiến của bạn.

Đội ngũ TradingView

Look first Then leap

TradingView được xây dựng dành cho bạn, vì vậy nhớ đảm bảo bạn tận dụng hiệu quả nhất các tính năng tuyệt vời của chúng tôi