Gỡ lỗi mã Pine Script® bằng Pine Logs

Aug 29, 2023

Nâng việc gỡ lỗi Pine Script® lên tầm cao mới bằng các hàm log.*() của chúng tôi, hiển thị văn bản trong bảng điều khiển Pine Logs mới khi tập lệnh thực thi. Ba chức năng ghi nhật ký mới là:

  • log.error() tạo tin nhắn thuộc loại “Error” được hiển thị màu đỏ.
  • log.info() tạo tin nhắn thuộc loại “Info” được hiển thị màu xám.
  • log.warning() tạo tin nhắn thuộc loại “Warning” được hiển thị màu cam.

Bạn có thể xem Pine Logs bằng cách chọn “Pine Logs…” từ trình đơn “Thêm” của Trình chỉnh sửa hoặc từ trình đơn “Thêm” của tập lệnh được tải trên biểu đồ của bạn nếu tập lệnh sử dụng các hàm log.*().

Pine Logs hoạt động ở mọi nơi: trên các thanh lịch sử, trong thời gian thực và ở chế độ Phát lại. Các hàm ghi nhật ký có thể được gọi từ bất kỳ loại tập lệnh nào (chỉ báo, chiến lược hoặc thư viện) và từ bất kỳ đâu trong tập lệnh, bao gồm các khối, vòng lặp cục bộ và từ bên trong request.security() và các hàm tương tự. Bạn có thể gọi các hàm ghi nhật ký theo hai cách: chỉ sử dụng đối số chuỗi hoặc sử dụng chuỗi định dạng và danh sách các giá trị theo kiểu str.format().

Các tập lệnh sử dụng nhật ký phải là tập lệnh cá nhân; các tập lệnh được xuất bản riêng tư hoặc công khai không thể tạo nhật ký, ngay cả khi tập lệnh chứa lệnh gọi hàm log.*().

Ví dụ mã sau đây sử dụng cả ba hàm ghi nhật ký:

//@version=5
indicator("Pine Logs")
if barstate.ishistory
    if bar_index % 100 == 0
        log.warning("\nBar index: {0,number,#}", bar_index)
else
    // Realtime bar processing.
    varip lastTime = timenow
    varip updateNo = 0
    if barstate.isnew
        updateNo := 0
        log.error("\nNew bar")
    else
        log.info("\nUpdate no: {0}\nclose: {1}\nSeconds elapsed: {2}", updateNo, close, (timenow - lastTime) / 1000)
        updateNo += 1
    lastTime := timenow
plot(timenow)

Ví dụ này hiển thị chỉ mục thanh trên mỗi thanh lịch sử thứ một trăm bằng tin nhắn cảnh báo màu cam. Trong thời gian thực, hệ thống hiển thị tin nhắn lỗi màu đỏ cho mỗi thanh mới. Đối với mỗi lần cập nhật theo thời gian thực, hệ thống tạo ra một tin nhắn thông tin màu xám hiển thị số cập nhật, giá đóng cửa và thời gian trôi qua kể từ lần cập nhật biểu đồ cuối cùng.

Để xem Pine Logs hoạt động:

  1. Lưu ví dụ mã ở trên vào tập lệnh cá nhân rồi thêm tập lệnh vào biểu đồ có thị trường đang hoạt động.
  2. Mở bảng điều khiển “Pine Logs” bằng menu “Thêm” của Trình chỉnh sửa hoặc menu “Thêm” của chỉ báo trên biểu đồ.

Dấu thời gian đặt trước mỗi mục nhật ký. Đây là thời gian mở cửa của thành đối với các thanh lịch sử và là thời điểm hiện tại dành cho các tin nhắn theo thời gian thực. Tin nhắn mới hơn xuất hiện ở cuối khung. Các thanh lịch sử chỉ hiển thị 10.000 tin nhắn cuối cùng; tin nhắn thời gian thực được thêm vào những tin nhắn mới đó.

Phần trên cùng của khung chứa các biểu tượng cho phép bạn bắt đầu/dừng ghi nhật ký, chỉ định ngày bắt đầu, lọc nhật ký theo loại thông báo và tìm kiếm nhật ký. Trường tìm kiếm chứa một menu phụ cho phép bạn khớp các trường hợp, toàn bộ từ và sử dụng biểu thức chính quy.

Khi bạn di chuột qua tin nhắn nhật ký, các biểu tượng sẽ xuất hiện cho phép bạn xem mã nguồn đã tạo tin nhắn hoặc chuyển đến thanh biểu đồ tương ứng:

Khi có nhiều tập lệnh trên biểu đồ sử dụng nhật ký, mỗi tập lệnh sẽ duy trì tập hợp tin nhắn riêng. Bạn có thể chuyển đổi giữa các nhật ký của mỗi tập lệnh bằng cách sử dụng menu thả xuống ở đầu bảng điều khiển Pine Logs:

Để luôn cập nhật các tính năng mới của Pine Script®, hãy theo dõi chú thích phát hành trong Hướng dẫn Sử dụng. Tài khoản PineCoders cũng phát các nội dung cập nhật từ tài khoản Squawk Box trên Telegram, tài khoản Twitter và trong trò chuyện công khai Pine Script® Q&A trên TradingView.

Chúng tôi mong bạn thấy tính năng được nhiều người yêu cầu này hữu ích như chúng tôi mong mỏi. Vui lòng tiếp tục gửi cho chúng tôi phản hồi và gợi ý để chúng tôi có thể khiến nền tảng trở nên tốt nhất có thể. Chúng tôi xây dựng TradingView cho bạn nên chúng tôi luôn mong muốn lắng nghe suy nghĩ của bạn.

— Team 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
Khởi chạy Biểu đồ