June 25, 2019

Giới thiệu phiên bản Pine Script v4

Hãy cùng tham khảo ngôn ngữ lập trình Pine Script v4! Có một số điểm mới đã được cập nhật. Chúng tôi đã cải thiện cấu trúc của ngôn ngữ và khắc phục một số vấn đề. Tuy nhiên, tính năng quan trọng nhất và được chờ đợi từ lâu là sự hỗ trợ của các công cụ vẽ.  

Chúng tôi sẽ mô tả ngắn gọn lại các tính năng mới trong bài viết này. Vui lòng đọc lại kỹ  tài liệu  và  hướng dẫn mô tả nếu bạn muốn biết thêm thông tin chi tiết (chú ý rằng bạn có thể đi thẳng đến phần mô tả công cụ vẽ).

Nhãn của Công cụ Vẽ

Chức năng label.new cho phép bạn vẽ các nhãn trên biểu đồ bao gồm văn bản tùy ý. Dưới đây là ví dụ về tập lệnh vẽ nhãn của thanh đóng cuối cùng:  

//@version=4
study("Last Bar Price", overlay=true)

l = label.new(bar_index, na, 'last price is '+tostring(close), 
  color=close >= open ? color.green : color.red, 
  textcolor=color.white,
  style=label.style_labeldown, yloc=yloc.abovebar)

label.delete(l[1])


Bạn có thể edit và  delete nhãn sau khi tạo ra và sử dụng tính năng  label.*. Đây là một ví dụ khi sử dụng phức tạp hơn các nhãn — Pivot Points High/Low.

Vẽ Đường

Tính năng line.new cho phép bạn vẽ các đường thẳng trong biểu đồ. Đây là ví dụ khi vẽ một đường nối các thanh hiện tại quay lại tới thanh thứ 10 trong lịch sử:    

//@version=4
study("Line", overlay=true)
l = line.new(bar_index, high, bar_index[10], low[10], width = 4)
line.delete(l[1])


Đường thẳng có thể  tùy chỉnh và xóa sử dụng tính năng line.*. Ví dụ  — Zig Zag.

Xin lưu ý rằng hiện tại chúng tôi có thể hiển thị tổng cộng khoảng 50 – 55 bản vẽ của một loại (nhãn hoặc dòng) trên mỗi tập lệnh trên biểu đồ. Đây là một giới hạn dự định được thiết kế để ngăn chặn việc sử dụng tài nguyên máy chủ quá mức.

Các kiểu dữ liệu dòng và nhãn mới giúp tăng cường đáng kể các tính năng của Pine Script, bằng cách cho phép bạn triển khai logic phức tạp đằng sau các chỉ báo phổ biến trong tập lệnh người dùng. Ví dụ có thể được tham khảo thêm trong phần tài liệu.

Chuỗi

Hiện tại chúng tôi hỗ trợ các biến của một kiểu dữ liệu chuỗi. Dưới đây là một ví dụ về việc sử dụng chuỗi trong nhãn:

//@version=4
study("Series string", overlay = true)
draw_label(title) =>
    label.new(bar_index, high, text=title)
t = close >= open ? "green" : "red"
draw_label(t)

 

Từ khóa Var

Một biến được khai báo theo cách thông thường được khởi tạo lại trên mỗi phép tính của tập lệnh. Điều này yêu cầu các kịch bản để tuyên truyền giá trị trước đó của biến một cách rõ ràng. Từ khóa var khai báo một biến và chỉ khởi tạo nó một lần. Điều này cho phép giá trị của biến được lưu tự động giữa các thanh kể từ thời điểm khởi tạo hoặc lần gán cuối cùng. Đây là một ví dụ về tập lệnh đếm số lượng thanh màu xanh lục trên biểu đồ:

//@version=4
study("My Script")
var s = 0.0
if close >= open
    s := s + 1
plot(s)

Mỗi khi điều kiện  close >= open được đáp ứng, giá trị biến s sẽ tăng lên 1 lần. Giá trị khởi tạo có thể là bất kỳ biểu thức số học nào.

Cú pháp khai báo các biến với từ khóa var tránh sử dụng code sau: s := nz(s[1], s). Khai báo biến với var có thể hiệu quả khi làm việc với công cụ vẽ.

Đổi tên các hằng, biến và hàm tích hợp

Trong Pine Script v4, các hằng, biến và hàm dựng sẵn sau đây đã được đổi tên:

  1. Tô mầu cho hằng sô (ví dụ red) sẽ bị chuyển thành  color.*  (vd  color.red).
  2. Tính năng color được đổi thành color.new.
  3. Hằng số cho các kiểu đầu vào (vd integer) được chuyển thành input.* (vd  input.integer).
  4. Các hằng số kiểu cốt lõi (vd histogram ) được chuyển thanh plot.style_* (vd plot.style_histogram).
  5. Kiểu hằng số cho tính năng hline (vd dotted ) được chuyển thanh hline.style_* (vd hline.style_dotted).
  6. Hằng số ngày trong tuần (vd sunday) chuyển thành dayofweek.* (vd  dayofweek.sunday).
  7. Biến khung thời gian biểu đồ hiện tại (vd period, isintraday) được chuyển thành timeframe.* (Vd timeframe.period, timeframe.isintraday).
  8. Biến  interval được chuyển thành timeframe.multiplier.
  9. Biến ticker và tickerid được chuyển thành syminfo.ticker và syminfo.tickerid.
  10. Biến n bao gồm các thanh giá trị được chuyển thành bar_index.

Lý do đằng sau việc đổi tên tất cả những biến trên là để cấu trúc các công cụ ngôn ngữ tiêu chuẩn và làm việc với mã dễ dàng hơn. Tên mới được nhóm theo các tiền tố phổ biến. Ví dụ: bạn sẽ thấy một danh sách với tất cả các hằng số màu có sẵn nếu bạn nhập ‘color, trong trình chỉnh sửa và nhấn Ctrl + Space .

Khai báo loại biến rõ ràng

Trong Pine Script v4, nó không còn có thể tạo các biến có kiểu dữ liệu không xác định tại thời điểm khai báo (xem na value). Điều này được thực hiện để tránh một số vấn đề phát sinh khi loại biến thay đổi sau khi khởi tạo với giá trị na. Từ giờ trở đi, bạn cần xác định rõ loại của chúng bằng cách sử dụng từ khóa hoặc hàm loại tính năng (ví dụ, float) khi khai báo các biến có giá trị na:

//@version=4
study("NA", overlay=true)
float a = na
a := if close >= open
    high
else
    low
plot(a)

Hãy dùng thử Script Script mới v4! Một số người dùng đã thử nghiệm các tính năng mới và đã viết một số tập lệnh ấn tượng bằng bản vẽ.

Ví dụ, Ricardo Santos đã viết như bạn có thể xem bên dưới:

Joris Duyck viết tập lệnh Trendlines , minh họa các khả năng phát triển theo đường vẽ.

Chúng tôi hy vọng với những ví dụ trên sẽ là động lực cho bạn! Bạn có thể hỏi chúng tôi bất cứ câu hỏi nào và chia sẻ các vấn đề cần thảo luận trong phần  thảo luận. Chúng tôi muốn cảm ơn tất cả cộng đồng Pinescripters đã góp phần thử nghiệm và giúp chúng tôi rất nhiều! Bạn cũng có thể đặt các câu hỏi về code tại Stack Overflow page.