Cú pháp phương thức đã có mặt trong Pine Script®

Mar 7, 2023

Ký hiệu dấu chấm được sử dụng cho các phương thức mở rộng trong các ngôn ngữ khác hiện đã có mặt trong Pine Script®. Các lập trình viên có thể sử dụng cú pháp theo hai phương thức khác nhau:

  • Bằng các phương thức do người dùng định nghĩa, là các hàm đặc biệt được định nghĩa độc lập bằng từ khoá phương thức mới.
  • Bằng các hàm tích hợp sẵn từ các không gian tênarray, box, label, line, linefill, matrix, và các loại table khi tham số đầu tiên là ID của đối tượng trong loại đó.

Hãy cùng xem ví dụ đơn giản sau trong đó chúng ta tính toán giá trị trung bình mức thấp của một cửa sổ lăn của các thanh tăng:

//@version=5
indicator("Long stop", "", true)
int lengthInput = input(20)
var pricesArray = array.new<float>(lengthInput)

method maintainQueue(array<float> srcArray, float value) =>
    // Append a new value to the end of the array.
    srcArray.push(value)
    // Remove the oldest value from the beginning of the array.
    srcArray.shift()

if close > open
    // Track the `low` values of up bars.
    pricesArray.maintainQueue(low)

plot(pricesArray.avg(), "Stop")

Phương thức maintainQueue() rất giống với một hàm thông thường và có thể được sử dụng như vậy. Tuy nhiên, từ khoá phương thức cũng cho phép hàm được sử dụng với ký hiệu dấu chấm sau một biến thuộc loại tham số đầu tiên. Khi làm như vậy, chúng tôi bỏ qua đối số đầu tiên từ lệnh gọi phương thức, như trong pricesArray.maintainQueue(low).

Cũng lưu ý cách chúng tôi sử dụng ký hiệu phương thức với các chức năng từ không gian tên array trong các lệnh gọi như srcArray.push() và srcArray.shift() bên trong mã của phương thức và pricesArray.avg() trong dòng cuối cùng của ví dụ.

Bạn sẽ tìm thấy thêm thông tin về tính năng mới này trong trang Hướng dẫn sử dụng các phương thức của chúng tôi.

Để xem các phương thức đang triển khai, bạn có thể xem mã được cập nhật của chỉ báo Khoảng Trống tích hợp. Mã này sử dụng cả phương thức tích hợp sẵn và phương thức do người dùng định nghĩa để làm nổi bật các khoảng trống trong biểu đồ bằng các ô:

Ngoài ra, chúng tôi đã cập nhật mã của thư viện ZigZag để sử dụng các phương thức tích hợp sẵn và phương thức do người dùng định nghĩa:

ZigZag của TradingView

Xem các đối tượng và phương thức được sử dụng trong các tập lệnh sau do một vài PineCoder của chúng tôi viết:

Flare của Fikira

Recursive Zigzag [Trendoscope] của HeWhoMustNotBeNamed

Recursive Auto-Pitchfork [Trendoscope] của HeWhoMustNotBeNamed

Để luôn được cập nhật về các tính năng mới của Pine Script®, hãy theo dõi Ghi chú phát hành trong Hướng dẫn sử dụng. Tài khoản PineCoder cũng phát các bản cập nhật từ Squawk Box trên Telegram, tài khoản Twitter và từ cuộc trò chuyện công khai Hỏi Đáp về Pine Script® trên TradingView.

Chúng tôi hy vọng bạn thấy tính năng được nhiều người yêu cầu này hữu ích. Hãy tiếp tục gửi cho chúng tôi phản hồi và đề xuất của bạn để cải thiện. Chúng tôi xây dựng TradingView cho chính các bạn nên luôn mong muốn nhận được phản hồi từ các bạn.

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 đồ