Type/to search
8
Follow
1364
Followers
FMZ PINE Script tài liệu
Tutorials
Created 2022-05-06 14:27:06  Updated 2025-08-21 13:47:34
 24
 20877

Từ khóa, ngữ pháp, cấu hình

Cấu trúc mã

Cấu trúc chung của mã trong Pine:

<version> <declaration_statement> <code>

Ghi chú

Ghi chú được hỗ trợ bởi ngôn ngữ Pine của FMZ: Ghi chú một dòng//Các dòng chú thích/* */Ví dụ, cách viết chú thích trong ví dụ sau:

pine
[macdLine, signalLine, histLine] = ta.macd(close, 12, 26, 9) // 计算MACD指标 /* plot函数在图表上画出指标线 */ plot(macdLine, color = color.blue, title='macdLine') plot(signalLine, color = color.orange, title='signalLine') plot(histLine, color = color.red, title='histLine')

Phiên bản

Hướng dẫn trình biên dịch dưới dạng sau cho trình biên dịch biết kịch bản này được viết bằng phiên bản Pine:

pine
//@version=5

Bản v5 mặc định, có thể bỏ qua trong mã//@version=5

Tuyên bố

Các câu tuyên bố xác định loại kịch bản, và điều này quyết định những gì trong đó được phép, và cách sử dụng và thực hiện. Thiết lập các thuộc tính quan trọng của kịch bản, chẳng hạn như tên của nó, nơi nó sẽ xuất hiện khi nó được thêm vào biểu đồ, độ chính xác và định dạng của các giá trị mà nó hiển thị, và các giá trị số để quản lý một số hành vi khi nó chạy, chẳng hạn như số lượng đối tượng vẽ tối đa mà nó sẽ hiển thị trong biểu đồ. Đối với chiến lược, thuộc tính bao gồm các tham số được kiểm soát ngược, chẳng hạn như vốn đầu tiên, hoa hồng, điểm trượt, v.v.indicator()hoặcstrategy()Lời tuyên bố:

Một câu lệnh có thể là một trong những nội dung này.

  • Tuyên bố biến
  • Đặt lại giá trị của biến
  • Tuyên bố hàm
  • Gọi hàm được xây dựng, gọi hàm được định nghĩa bởi người dùng
  • ifforwhilehoặcswitchCấu trúc

Các câu có thể được sắp xếp theo nhiều cách

  • Một số câu lệnh có thể được thể hiện bằng một dòng, chẳng hạn như hầu hết các tuyên bố biến, chỉ chứa một dòng gọi hàm hoặc tuyên bố hàm một dòng. Những người khác, như cấu trúc, luôn cần nhiều dòng vì chúng cần một khối địa phương.
  • Các câu nói trong phạm vi toàn cầu của kịch bản (tức là những phần không thuộc khối địa phương) không thể được coi là空格hoặc制表符(Tab) bắt đầu. Các ký tự đầu tiên của chúng cũng phải là ký tự đầu tiên của dòng. Các dòng bắt đầu ở vị trí đầu tiên của dòng, theo định nghĩa trở thành một phần của phạm vi toàn cầu của kịch bản.
  • Một cấu trúc hay một hàm đa dòng luôn cần mộtlocal blockMột khối địa phương phải được thu nhỏ thành một dấu biểu thức hoặc bốn khoảng trống (trừ khi nó được phân tích thành chuỗi liên kết của dòng trước, tức là được coi là nội dung liên tục của dòng trước), mỗi khối địa phương xác định một phạm vi địa phương khác nhau.
  • Nhiều câu đơn hàng có thể được nối tiếp trong một dòng bằng cách sử dụng dấu chấm ký ức ((,) làm dấu phân cách.
  • Một dòng có thể chứa các chú thích, hoặc chỉ là chú thích.
  • Các dòng cũng có thể được gói lại (như tiếp tục trên nhiều dòng).

Ví dụ, bao gồm ba khối địa phương, một trong các tuyên bố hàm tùy chỉnh và hai trong các tuyên bố biến sử dụng cấu trúc if, như sau:

pine
indicator("", "", true) // 声明语句(全局范围),可以省略不写 barIsUp() => // 函数声明(全局范围) close > open // 本地块(本地范围) plotColor = if barIsUp() // 变量声明 (全局范围) color.green // 本地块 (本地范围) else color.red // 本地块 (本地范围) runtime.log("color", color = plotColor) // 调用一个内置函数输出日志 (全局范围)

Thay đổi mã

Các dòng dài có thể được chia thành nhiều dòng hoặc được "bọc" lên. Các dòng được bọc phải được thu hẹp vào bất kỳ số lượng khoảng trống nào, miễn là nó không phải là nhân của 4 (các biên giới này được sử dụng để thu hẹp vào các khối cục bộ).

pine
a = open + high + low + close

Có thể được đóng gói thành (lưu ý rằng số khoảng trống mỗi dòng không phải là nhân của 4):

pine
a = open + high + low + close

Một cuộc gọi plot (()) dài có thể được đóng gói thành ▽.

pine
close1 = request.security(syminfo.tickerid, "D", close) // syminfo.tickerid 当前交易对的日线级别收盘价数据系列 close2 = request.security(syminfo.tickerid, "240", close) // syminfo.tickerid 当前交易对的240分钟级别收盘价数据系列 plot(ta.correlation(close, open, 100), // 一行长的plot()调用可以被包装 color = color.new(color.purple, 40), style = plot.style_area, trackprice = true)

Các câu trong tuyên bố hàm được định nghĩa bởi người dùng cũng có thể được đóng gói. Tuy nhiên, vì khối địa phương phải bắt đầu bằng dấu rút gọn theo ngữ pháp ((4 khoảng trống hoặc 1 biểu tượng), khi chia nó thành hàng tiếp theo, phần tiếp tục của câu phải bắt đầu bằng một hoặc nhiều dấu rút gọn ((không bằng số nhân của 4 khoảng trống). Ví dụ:

pine
test(c, o) => ret = c > o ? (c > o+5000 ? 1 : 0): (c < o-5000 ? -1 : 0) a = test(close, open) plot(a, title="a")

Dòng thời gian

Dòng thời gian không phải là một loại dữ liệu hoặc định dạng, dãy thời gian là một khái niệm về cấu trúc cơ bản trong ngôn ngữ PINE. Nó được sử dụng để lưu trữ các giá trị thay đổi liên tục theo thời gian, mỗi giá trị tương ứng với một thời điểm.
Các biến tích hợpopenVí dụ:openCác biến tích hợp ghi lại giá mở của mỗi dòng K BAR, nếuopenlà 5 phút của K.openCác biến được ghi lại là giá mở mỗi 5 phút K dòng BAR ((cột)). Khi chương trình chiến lược của bạn được thực hiện, các tham chiếu trong mãopenVí dụ, giá mở cửa của dòng K BAR hiện tại được trích dẫn. Để trích dẫn các giá trị trước trong chuỗi thời gian, chúng tôi sử dụng[]Hình thức này được sử dụng khi thực hiện chiến lược trên một dòng KBAR.open[1]Nghĩa là giá mở đầu của Kbar trước Kbar hiện tại.

Mặc dùDòng thời gianNó dễ dàng gợi nhớ đến cấu trúc dữ liệu "mảng", mặc dù ngôn ngữ PINE cũng có các loại mảng. Tuy nhiên, chúng là những khái niệm hoàn toàn khác với chuỗi thời gian.

Ngôn ngữ PINE được thiết kế theo trình tự thời gian, có thể dễ dàng tính toán giá trị tích lũy của giá đóng cửa trong mã chiến lược, và không cần sử dụng cấu trúc vòng lặp như for, chỉ sử dụng hàm tích hợp trong ngôn ngữ PINEta.cum(close)Để lấy một ví dụ khác, chúng ta cần tính trung bình giá trị chênh lệch giữa giá trị cao nhất và giá trị thấp nhất của 14 dòng K BAR cuối cùng (tức là 14 dòng K BAR gần nhất từ thời điểm hiện tại khi code được thực hiện) có thể được viết là:ta.sma(high - low, 14)

Kết quả của việc gọi hàm trên chuỗi thời gian cũng sẽ để lại dấu vết trên chuỗi thời gian, cũng có thể sử dụng[]Ví dụ, khi kiểm tra xem giá trị đóng cửa của dòng K BAR hiện tại có vượt quá giá trị tối đa của giá trị cao nhất trong 10 dòng K BAR cuối cùng (không bao gồm dòng K BAR hiện tại) không. Chúng ta có thể viết làbreach = close > ta.highest(close, 10)[1]Cũng có thể viết:breach = close > ta.highest(close[1], 10)Vì thế.ta.highest(close, 10)[1]ta.highest(close[1], 10)Đương đương.

Có thể xác nhận bằng mã sau:

pine
strategy("test pine", "test", true) a = ta.highest(close, 10)[1] b = ta.highest(close[1], 10) plotchar(true, title="a", char=str.tostring(a), location=location.abovebar, color=color.red) plotchar(true, title="b", char=str.tostring(b), location=location.belowbar, color=color.green)

Các mã thử nghiệm trên sẽ đưa ra giá trị của a và b trên mỗi BAR theo trình tự thời gian tương ứng của chúng, và có thể thấy rằng giá trị của a và b luôn luôn bằng nhau, vì vậy hai cách biểu thị này là tương đương.

Đề cập dữ liệu lịch sử

Trading View có giới hạn về số lượng truy cập vào dữ liệu lịch sử (tối đa 5000 truy cập), ví dụ như mã:

pine
//@version=6 indicator("test") ema = ta.ema(close, 10000) // 报错:Error on bar 0: The 'ema'->'sum' function references too many historical candles (10000), the limit is 5000. plot(ema, "ema") // pre10000 = ema[10000] // 报错:Invalid number of bars back specified in the history-referencing operator. It accepts a value between 0 and 5000. // plot(pre10000, "pre10000")

Thiết lập giao dịch trong thư viện giao dịch ngôn ngữ Pine, tham số: "số chu kỳ dài nhất của biến" thiết lập cụ thể số lượng lớn nhất của dữ liệu có thể tham khảo được trên FMZ.

img

pine
indicator("test") ema = ta.ema(close, 1000) // ema = ta.ema(close, 3000) 则报错:Invalid number 3000 of bars back specified in the history-referencing operator. It accepts a value between 0 and 2000. plot(ema, "ema")

Các tham số "chiều dài nhất của biến" không nên được thiết lập quá lớn, trong phạm vi tham chiếu dữ liệu trong chính sách phù hợp có thể.

Các tham số mô hình của thư viện lớp giao dịch ngôn ngữ Pine

Hướng dẫn cài đặt tham số cho "Pine Language Transaction Class Library", một mẫu được xây dựng trong chính sách PINE.

img

Cài đặt giao dịch

  • Thực hiện
    Mô hình giá đóng cửa: mô hình được thực hiện khi BAR hiện tại kết thúc, giao dịch được thực hiện khi BAR gốc bắt đầu.
    Mô hình giá thực tế: Mô hình được thực hiện mỗi khi giá thay đổi, có tín hiệu để thực hiện giao dịch ngay lập tức.
  • Lệnh mở vị trí mặc định: Nếu lệnh giao dịch không chỉ định số lượng giao dịch, hãy thực hiện giao dịch theo số lượng được thiết lập.
  • Số đơn đặt hàng tối đa cho mỗi lần giao dịch: dựa trên mức bán thực tế, kết hợp với cài đặt tham số này, xác định số lượng lớn nhất cho mỗi lần đặt hàng, tránh va chạm với mặt phẳng.
  • Điểm giá trượt:定价货币精度Các tham số và tham số này xác định giá trượt tại thời điểm đặt hàng. Ví dụ, nếu định giá tiền tệ được đặt chính xác là 2, tức là chính xác đến số ký tự thứ hai, chính xác đến 0.01. Vậy thì mỗi điểm giá trượt đại diện cho 0.01 đơn vị định giá. Nếu định giá trượt là 5, giá trượt tại thời điểm đặt hàng là 0.05.
  • Số chu kỳ dài nhất của biến: số BAR của dòng K ảnh hưởng đến biểu đồ, vàjavascriptGọi trong chiến lượcSetMaxBarLenChức năng tương tự.

Tùy chọn tương lai

  • Mã giống: mã hợp đồng, chỉ cần thiết lập khi đối tượng giao dịch là đối tượng giao dịch không có mặt hàng.
  • Số lượng hợp đồng tối thiểu: Số lượng giao dịch tối thiểu của hợp đồng khi đặt hàng.

Tùy chọn thực tế

  • Tự động khôi phục tiến độ: tự động khôi phục trạng thái trước khi chiến lược cuối cùng dừng lại.
  • Số lần thử lại đặt hàng: Nếu lệnh không được giao dịch, lệnh sẽ bị hủy và đặt hàng lại để thử giao dịch, tham số này được sử dụng để giới hạn số lần thử lại tối đa.
  • Khoảng cách thăm dò mạng ((millisecond): Chỉ có hiệu lực đối với giao thức REST, kiểm soát khoảng cách yêu cầu mạng, tránh yêu cầu quá thường xuyên, vượt quá giới hạn của sàn giao dịch.
  • Thời gian đồng bộ hóa tài khoản (giây): chu kỳ thời gian đồng bộ hóa dữ liệu tài khoản
  • Thời gian đồng bộ hóa vị trí sau khi mở vị trí ((milliseconds): chỉ đối với một số giao dịch mở vị trí lặp lại do chậm dữ liệu, thiết lập thời gian đồng bộ lớn hơn có thể làm giảm bớt các vấn đề như vậy.
  • Tỷ lệ đòn bẩy: thiết lập tỷ lệ đòn bẩy.

Giao dịch trực tiếp, các thiết lập khác

  • Số lượng giao dịch một tay: Số lượng giao dịch một tay mặc định, chỉ có hiệu lực đối với hàng mặt hàng.
  • Số lượng giao dịch tối thiểu: Số lượng giao dịch tối thiểu.
  • Độ chính xác định giá tiền tệ: Độ chính xác giá, tức là số chữ số nhỏ của giá.
  • Tính chính xác của hàng hóa: Tính chính xác của đơn hàng tiếp theo, tức là số nhỏ của đơn hàng tiếp theo.
  • Phí xử lý: Tính toán một số dữ liệu dựa trên thiết lập này, 0.002 là 2 phần nghìn.
  • Thống kê lỗ hổng: Chỉ sử dụng thống kê lỗ hổng hiển thị trên ổ đĩa thực.
  • Thử lại thất bại ((ms): Khoảng thời gian thử lại khi yêu cầu mạng thất bại.
  • Sử dụng proxy: Chỉ có hiệu lực với giao thức REST.
  • Hide common network errors: Hide common error logs in the log area. Hide common error logs in the log area.
  • Địa chỉ chuyển đổi: chỉ có hiệu lực với giao thức REST.
  • Thông báo đẩy: Gửi tin nhắn đến hộp thư, v.v.

Đặt hàng

Khởi đầu

pine
strategy(title = "open long example", pyramiding = 3) // pyramiding 允许的同方向下单的次数 strategy.entry("long1", strategy.long, 0.01) // 市价开多仓,指定分组标签为long1 strategy.entry("long2", strategy.long, 0.02, when = close > ta.ema(close, 10)) // 条件触发,执行下单,市价开多仓 strategy.entry("long3", strategy.long, 0.03, limit = 30000) // 指定(较低的)价格,计划下买单订单,等待成交开仓,限价开仓

Cổ phiếu bằng phẳng

pine
strategy(title = "close long example", pyramiding = 2) // pyramiding 允许的同方向下单的次数 strategy.entry("long1", strategy.long, 0.1) // 市价开多仓,指定分组标签为long1 strategy.entry("long2", strategy.long, 0.1) // 市价开多仓,指定分组标签为long2 strategy.close("long1", when = strategy.position_size > 0.1, qty_percent = 50, comment = "close buy entry for 50%") // 平仓,指定平掉分组标签为long1的仓位的50%持仓 strategy.close("long2", when = strategy.position_size > 0.1, qty_percent = 80, comment = "close buy entry for 80%") // 平仓,指定平掉分组标签为long2的仓位的80%持仓

Cơ chế giao dịch

Cơ chế giữ vị trí của ngôn ngữ PINE tương tự như giữ vị trí một chiều. Ví dụ: khi giữ vị trí theo nhiều hướng (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((

Kế hoạch

Sử dụng lệnh đặt hàng để đặt hàng, nếu không chỉ định bất kỳ giá nào, thì giá thị trường được mặc định. Ngoài giá thị trường, bạn có thể đặt hàng thông qua bảng kế hoạch, và bảng kế hoạch sẽ không hoạt động ngay lập tức.Đĩa thật / Đánh giá lạiThông tin trạng thái thời gian (tức là trạng thái của chiến lược khi chạy) được nhìn thấy trong bảng xếp hạng "Lệnh kế hoạch". Hệ thống sẽ thực sự đặt hàng chỉ khi các đơn kế hoạch này được kích hoạt khi thị trường đáp ứng các điều kiện giá theo thời gian thực. Vì vậy, các đơn đặt hàng này có một chút sai lệch về giá giao dịch là điều bình thường.strategy.entryChúng ta có thể chỉ địnhlimitstopCác tham số.

var isTrade = false if not barstate.ishistory and not isTrade isTrade := true strategy.entry("test 1", strategy.long, 0.1, stop=close*1.3, comment="test 1 order") // stop strategy.entry("test 2", strategy.long, 0.2, limit=close*0.7, comment="test 2 order") // limit strategy.entry("test 3", strategy.short, 0.3, stop=close*0.6, limit=close*1.4, comment="test 3 order") // stop-limit
  • Lệnh giới hạn

    Thiết lập giá giới hạn của đơn đặt hàng, khi đơn đặt hàng là mua (tức làdirectionCác thông số làstrategy.long), chỉ khi giá hiện tại của thị trường thấp hơn giá đó thì lệnh sẽ được kích hoạt.
    Khi đơn đặt hàng là bán hàng đơn (tức làdirectionCác thông số làstrategy.short), chỉ khi giá hiện tại trên thị trường cao hơn giá đó thì lệnh sẽ được kích hoạt.

  • Lệnh dừng

    Đặt giá dừng của lệnh, khi lệnh là mua, chỉ khi giá thị trường hiện tại cao hơn giá đó, lệnh sẽ được kích hoạt.
    Khi đặt hàng là bán hàng, chỉ khi giá hiện tại của thị trường thấp hơn giá đó, lệnh sẽ được kích hoạt.

  • Lệnh stop-limit

    Có thể thiết lập cùng một lúclimitstopCác tham số, đặt hàng được kích hoạt với giá đầu tiên phù hợp.

Tỷ lệ phần trăm quyền lợi

pine
//@version=5 strategy("Percent of Equity Order", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100) // 简单的均线交叉策略 longCondition = ta.crossover(ta.sma(close, 14), ta.sma(close, 28)) shortCondition = ta.crossunder(ta.sma(close, 14), ta.sma(close, 28)) // 如果均线交叉条件满足,则买入或卖出 if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short)

Chỉ địnhdefault_qty_type=strategy.percent_of_equitySau đó, thiết lậpdefault_qty_valueNhư một số phần trăm ((0 ~ 100), 1 là 1%. Theo số lượng đồng tiền định giá trong tài khoản, đặt hàng được tính. Ví dụ: Tài khoản hiện tại có 10000 USDT, đặt hàng 1%, nghĩa là đặt hàng theo quy mô 100 USDT ((theo giá hiện tại khi bán).

Tuyên bố, cấu trúc logic từ khóa

var

var là từ khóa được dùng để phân bổ và khởi tạo biến một lần.
Thông thường, ngữ pháp gán giá trị biến mà không bao gồm từ khóa var sẽ dẫn đến giá trị của biến được phủ lên mỗi khi dữ liệu được cập nhật. Ngược lại, khi sử dụng từ khóa var để phân bổ biến, mặc dù dữ liệu được cập nhật, chúng vẫn có thể giữ trạng thái trục trặc, chỉ thay đổi nó khi đáp ứng các điều kiện trong if-expressions.

var variable_name = expression

Giải thích:

  • variable_name- Bất kỳ tên biến người dùng nào được phép trong Pine Script có thể bao gồm các ký tự Latinh lớn và nhỏ, số và dấu gạch dưới_), nhưng không được bắt đầu bằng số) 。
  • expression- Bất kỳ biểu thức toán học nào cũng giống như định nghĩa biến thường.

Ví dụ

pine
// Var keyword example var a = close var b = 0.0 var c = 0.0 var green_bars_count = 0 if close > open var x = close b := x green_bars_count := green_bars_count + 1 if green_bars_count >= 10 var y = close c := y plot(a, title = "a") plot(b, title = "b") plot(c, title = "c")

Biến số 'a' duy trì giá đóng cửa của mỗi cột đầu tiên trong chuỗi.
Biến số 'b' giữ giá đóng cửa của thanh giá thạch anh xanh đầu tiên trong chuỗi.
Biến số 'c' giữ giá đóng cửa của 10 quả khoai tây xanh trong chuỗi.

Trong FMZ, có mô hình giá thời gian thực, mô hình giá đóng cửa, mô hình giá đóng cửa, mô hình giá đóng cửa, mô hình giá đóng cửa.varvaripCác biến trong tuyên bố được kiểm tra bằng cách sử dụng mã:

pine
strategy("test pine", "test 1", true) // 测试 var varip var i = 0 varip ii = 0 // 将策略逻辑每轮改变的i、ii打印在图上 plotchar(true, title="ii", char=str.tostring(ii), location=location.abovebar, color=color.red) plotchar(true, title="i", char=str.tostring(i), location=location.belowbar, color=color.green) // 每轮逻辑执行都给i、ii递增1 if true i := i + 1 ii := ii + 1
  • Mô hình giá thời gian thực
    Các mã thử nghiệm trên được thực hiện trong hai giai đoạn: giai đoạn K-line lịch sử, giai đoạn K-line thực tế, và giai đoạn K-line lịch sử.varvaripCác biến i, ii của tuyên bố sẽ thực hiện các hoạt động gia tăng mỗi lần thực thi mã chính sách (bởi vìif trueVì vậy, chắc chắn sẽ thực hiện các khối mã điều kiện tương ứng) ❚ Vì vậy, bạn có thể thấy rằng các con số được hiển thị trên kết quả kiểm tra lại K-line BAR được tăng dần 1 một lần. ❚ Khi giai đoạn K-line lịch sử kết thúc, giai đoạn K-line thực tế bắt đầu. ❚varvaripCác biến trong tuyên bố bắt đầu thay đổi. Vì đây là mô hình giá thời gian thực, mỗi lần thay đổi giá trong một K-line BAR sẽ thực hiện một lần mã chiến lược, và các biến trong tuyên bố sẽ thay đổi theo thời gian.i := i + 1ii := ii + 1Tất cả đều được thực hiện một lần. Sự khác biệt là ii được sửa đổi mỗi lần. Mặc dù i cũng được sửa đổi mỗi lần, nhưng giá trị trước đó sẽ được khôi phục khi thực hiện chiến lược logic vòng tiếp theo, và giá trị của i sẽ được xác định lại cho đến khi dòng K hiện tại BAR đã hết ((tức là giá trị trước đó không được khôi phục khi thực hiện chiến lược logic vòng tiếp theo). Vì vậy, có thể thấy biến i vẫn là mỗi BAR tăng 1. Tuy nhiên, biến ii tích lũy mỗi BAR nhiều lần.

  • Mô hình giá đóng cửa
    Vì mô hình giá đóng cửa chỉ thực hiện một logic chiến lược khi mỗi K-line BAR đi qua. Vì vậy, trong mô hình giá đóng cửa, giai đoạn K-line lịch sử và giai đoạn K-line thực tế,varvaripCác biến được tuyên bố tăng lên trong các ví dụ trên là hoàn toàn phù hợp, mỗi dòng K tăng 1 BAR.

varip

varip ((var intrabar persist) là từ khóa được sử dụng để phân bổ và khởi tạo biến một lần. Nó tương tự như từ khóa var, nhưng biến sử dụng tuyên bố varip giữ giá trị của nó giữa các bản cập nhật K-line trong thời gian thực.

varip variable_name = expression

Giải thích:

  • variable_name- Bất kỳ tên biến người dùng nào được cho phép trong kịch bản Pine ((có thể bao gồm các ký tự Latin lớn và nhỏ, số và dấu gạch dưới))_), nhưng không được bắt đầu bằng số) 。
  • expression- Bất kỳ biểu thức toán học nào, giống như khi định nghĩa biến thường. Trên dòng K đầu tiên, biểu thức chỉ được tính một lần và được phân bổ cho biến một lần.

Ví dụ

pine
// varip varip int v = -1 v := v + 1 plot(v)

Khi sử dụng var, bản đồ sẽ trả về giá trị của bar_index. Sử dụng varip, hành vi tương tự xảy ra trên đường K lịch sử, nhưng trên đường K thời gian thực, bản đồ sẽ trả về một giá trị tăng lên một cho mỗi tick.

Ghi chú
Chỉ sử dụng với các kiểu đơn giản như float, int, bool, string, và các kiểu của các loại này.

true

thể hiện giá trị của một biến kiểu Boolean, hoặc khi biểu thức được sử dụngSo sánhhoặcLogicCác giá trị có thể tính toán khi toán tử ≠

Ghi chú
Xem thêmSo sánhCác toán tử vàLogicMô tả của toán tử.

Xem thêm
bool

false

Hiển thị giá trị của một biến kiểu Boolean, và kết quả của các thao tác so sánh, logic.

Ghi chú
Xem thêmSo sánhCác toán tử vàLogicMô tả của toán tử.

Xem thêm
bool

if

Các câu lệnh if xác định các khối câu lệnh phải được thực hiện khi đáp ứng các điều kiện biểu thức. Ngôn ngữ kịch bản Pine phiên bản 4 cho phép bạn sử dụng ngữ pháp <unk>else if<unk>.

Mã chung được lấy từ:

var_declarationX = if condition var_decl_then0 var_decl_then1 ... var_decl_thenN return_expression_then else if [optional block] var_decl_else0 var_decl_else1 ... var_decl_elseN return_expression_else else var_decl_else0 var_decl_else1 ... var_decl_elseN return_expression_else

Ghi chú
var_declarationX- biến này lấy giá trị của câu if
condition- Nếu điều kiện là true, sử dụng khối câu lệnhthenLogic trongvar_decl_then0var_decl_then1Nếu điều kiện là false, sử dụng khối câuelse ifhoặcelseLogic trongvar_decl_else0var_decl_else1(Cười)
return_expression_then , return_expression_else- biểu thức cuối cùng trong mô-đun hoặc biểu thức từ khốielse sẽ trả về giá trị cuối cùng của câu nói. Nếu biến được tuyên bố ở cuối, giá trị của nó sẽ là giá trị kết quả.

Loại giá trị trả về của câu if phụ thuộc vàoreturn_expression_thenreturn_expression_elseLoại 。 Khi chạy trên TradingView, các loại của chúng phải phù hợp: Khi bạn có một giá trị chuỗi trong khối else, không thể trả về một giá trị số nguyên từ khối câu then。 Khi chạy trên FMZ, ví dụ sau sẽ không bị lỗi, khi giá trị y được lấy giá trị "open", giá trị khi vẽ plot là n/a。

Ví dụ

pine
// This code compiles x = if close > open close else open // This code doesn’t compile by trading view // y = if close > open // close // else // "open" plot(x)

Có thể bỏ quaelseBảng <unk>. Trong trường hợp này, nếu điều kiện là false, biến var_declarationX sẽ được gán một giá trị <unk>empty (na, false hoặc <unk>):

Ví dụ

pine
// if x = if close > open close // If current close > current open, then x = close. // Otherwise the x = na. plot(x)

Có thể sử dụng nhiều khối <unk>else if<unk> hoặc không sử dụng <unk>then<unk>, <unk>else if<unk>, <unk>else<unk> được di chuyển bốn khoảng trống:

Ví dụ

pine
// if x = if open > close 5 else if high > low close else open plot(x)

Có thể bỏ quaifGiá trị kết quả của câu lệnh ((<unk>var_declarationX=<unk> có thể bỏ qua) <unk>. Nó có thể hữu ích nếu bạn cần các tác dụng phụ của biểu thức, chẳng hạn như trong giao dịch chiến lược:

Ví dụ

pine
if (ta.crossover(high, low)) strategy.entry("BBandLE", strategy.long, stop=low) else strategy.cancel(id="BBandLE")

Các câu lệnh If có thể chứa các câu lệnh:

Ví dụ

pine
// if float x = na if close > open if close > close[1] x := close else x := close[1] else x := open plot(x)

for

Cấu trúc 'for' cho phép thực hiện nhiều câu lặp lại:

[var_declaration =] for counter = from_num to to_num [by step_num] statements | continue | break return_expression

var_declaration- Một tuyên bố biến tùy chọn, nó sẽ được gán cho giá trị return_expression của vòng quay.
counter- Các biến của giá trị bộ đếm vòng quay được lưu, tăng/giảm 1 hoặc giá trị step_num trong mỗi lần lặp vòng quay.
from_num- Giá trị bắt đầu của bộ đếm. Cho phép sử dụng giá trị giảm giá / biểu thức int / float.
to_num- Giá trị cuối cùng của bộ đếm. Loop bị ngắt khi bộ đếm lớn hơn to_num (hoặc nhỏ hơn to_num trong trường hợp from_num > to_num).
step_num- Giá trị tăng/giảm của bộ đếm. Nó là tùy chọn. Giá trị mặc định là +1 hoặc -1, tùy thuộc vào số lớn nhất trong from_num hoặc to_num.
statements | continue | break- Bất kỳ số lượng câu nói, hoặc 'continue' hoặc 'break' từ khóa, thu nhỏ vào 4 khoảng trống hoặc một tab.
return_expression- Giá trị trả về của vòng tròn, nếu có, được phân bổ cho biến trong var_declaration. Nếu vòng tròn thoát ra do từ khóa <unk>continue<unk> hoặc <unk>break<unk>, giá trị trả về của vòng tròn là giá trị trả về của biến cuối cùng được phân bổ trước khi vòng tròn thoát ra.
continue- Từ khóa chỉ được sử dụng trong vòng lặp. Nó dẫn đến việc lặp lại vòng lặp tiếp theo được thực hiện.
break- Từ khóa để thoát khỏi vòng tròn.

Ví dụ

pine
// Here, we count the quantity of bars in a given 'lookback' length which closed above the current bar's close qtyOfHigherCloses(lookback) => int result = 0 for i = 1 to lookback if close[i] > close result += 1 result plot(qtyOfHigherCloses(14))

Xem thêm
for...in while

for...in

for...inCấu trúc cho phép thực hiện nhiều lệnh lặp lại cho mỗi phần tử trong mảng. Nó có thể được sử dụng với bất kỳ tham số nào:array_element, hoặc sử dụng với hai tham số:[index, array_element]。 Hình thức thứ hai không ảnh hưởng đến chức năng của vòng tròn。 Nó theo dõi chỉ số của sự lặp lại hiện tại trong biến số đầu tiên của mô-tô。

[var_declaration =] for array_element in array_id statements | continue | break return_expression [var_declaration =] for [index, array_element] in array_id statements | continue | break return_expression

var_declaration- Một tuyên bố biến tùy chọn, sẽ được trao cho vòng lặpreturn_expressionGiá trị của
index- Các biến tùy chọn theo dõi chỉ số thời gian hiện tại. Chỉ số bắt đầu từ 0. Các biến không thể thay đổi trong vòng lặp.array_elementTrong nhóm
array_element- Bao gồm các biến của mỗi thành phần của mảng liên tiếp được xử lý trong vòng lặp. Các biến này là không thay đổi trong vòng lặp.
array_id- ID của mảng lặp vòng tròn.
statements | continue | break- Bất kỳ số lượng câu nói, hoặc 'continue' hoặc 'break' từ khóa, thu nhỏ vào 4 khoảng trống hoặc một tab.
return_expression- giá trị trả về của vòng lặp được phân bổ chovar_declarationCác biến trong vòng lặp, nếu có. Nếu vòng lặp thoát vì từ khóa 'continue' hoặc 'break', thì giá trị trả về của vòng lặp là biến được gán cuối cùng trước khi vòng lặp thoát.
continue- Từ khóa chỉ được sử dụng trong vòng lặp. Nó dẫn đến việc lặp lại vòng lặp tiếp theo được thực hiện.
break- Từ khóa để thoát khỏi vòng tròn.

Cho phép thay đổi các phần tử hoặc kích thước của mảng trong vòng lặp.
Ở đây, chúng tôi sử dụngfor...inHình thức đơn tham số để xác định trên mỗi dòng K, có bao nhiêu giá trị OHLC của dòng K lớn hơn giá trị SMA của 'close':

Ví dụ

pine
// Here we determine on each bar how many of the bar's OHLC values are greater than the SMA of 'close' values float[] ohlcValues = array.from(open, high, low, close) qtyGreaterThan(value, array) => int result = 0 for currentElement in array if currentElement > value result += 1 result plot(qtyGreaterThan(ta.sma(close, 20), ohlcValues))

Ở đây, chúng ta sử dụng hai dạng tham số của for...in để đưa cho chúng taisPosCác giá trị của mảng được đặt thành trueKhi chúng ở trong tay chúng ta.valuesArrayCác giá trị tương ứng trong mảng là đúng thời gian:

Ví dụ

pine
// for...in var valuesArray = array.from(4, -8, 11, 78, -16, 34, 7, 99, 0, 55) var isPos = array.new_bool(10, false) for [index, value] in valuesArray if value > 0 array.set(isPos, index, true) if barstate.islastconfirmedhistory runtime.log(str.tostring(isPos))

Xem thêm
for while array.sum array.min array.max

while

whileCụm từ cho phép lặp lại điều kiện của khối mã địa phương.

variable_declaration = while boolean_expression ... continue ... break ... return_expression

Giải thích:
variable_declaration- Tuyên bố biến có thể chọn.return expressionBạn có thể cung cấp giá trị khởi tạo cho biến này.
boolean_expression- Nếu đúng, thực thiwhileNếu là false, thì trongwhileTiếp tục thực hiện kịch bản sau khi nói.
continue - continueTừ khóa dẫn đến vòng lặp phân nhánh đến lần lặp tiếp theo.
break - breakTừ khóa dẫn đến kết thúc vòng lặp.whileSau khi nói xong, chúng tôi quay lại.
return_expression- Cung cấp.whileCác dòng tùy chọn trả về giá trị của câu lệnh.

Ví dụ

pine
// This is a simple example of calculating a factorial using a while loop. int i_n = input.int(10, "Factorial Size", minval=0) int counter = i_n int factorial = 1 while counter > 0 factorial := factorial * counter counter := counter - 1 plot(factorial)

Ghi chú
Bắt đầuwhileCác khối mã cục bộ sau hàng phải được thu nhỏ vào bốn khoảng trống hoặc một ký tự đếm.whileVòng luân hồiwhileCác biểu thức Boolean sau đó phải trở thành false, hoặc phải được thực hiện.break

switch

Hoạt động chuyển đổi chuyển quyền kiểm soát sang một trong số các câu lệnh tùy thuộc vào điều kiện và giá trị của biểu thức.

[variable_declaration = ] switch expression value1 => local_block value2 => local_block ... => default_local_block [variable_declaration = ] switch boolean_expression1 => local_block boolean_expression2 => local_block ... => default_local_block

Switch có biểu thức:

Ví dụ

pine
// Switch using an expression string i_maType = input.string("EMA", "MA type", options = ["EMA", "SMA", "RMA", "WMA"]) float ma = switch i_maType "EMA" => ta.ema(close, 10) "SMA" => ta.sma(close, 10) "RMA" => ta.rma(close, 10) // Default used when the three first cases do not match. => ta.wma(close, 10) plot(ma)

Switch không có biểu thức:

Ví dụ

pine
strategy("Switch without an expression", overlay = true) bool longCondition = ta.crossover( ta.sma(close, 14), ta.sma(close, 28)) bool shortCondition = ta.crossunder(ta.sma(close, 14), ta.sma(close, 28)) switch longCondition => strategy.entry("Long ID", strategy.long) shortCondition => strategy.entry("Short ID", strategy.short)

Trả giá trị
Giá trị của biểu thức cuối cùng trong khối lệnh địa phương được thực thi.

Ghi chú
Chỉ có thể thực hiệnlocal_blockVí dụ hoặcdefault_local_blockMột.default_local_blockChỉ với=>Các ký hiệu được đưa vào cùng với nhau và chỉ được thực hiện khi không có khối trước đó được thực hiện. NếuswitchKết quả của câu lệnh được gán cho một biến và không được chỉ địnhdefault_local_blockNếu không thực hiện,local_block, thì câu trả lời làna- Không.switchKhi kết quả của câu lệnh được phân bổ cho biến, tất cảlocal_blockCác trường hợp phải trả về các giá trị cùng loại.

Xem thêm
if ?:

series

series là một từ khóa cho biết kiểu chuỗi dữ liệu.seriesTừ khóa thường không cần thiết.

Máy tính

=

Nó được sử dụng để gán giá trị cho biến, nhưng chỉ khi tuyên bố biến ((được sử dụng lần đầu tiên))

:=

Hoạt động gán giá trị, gán giá trị cho biến bên trái. Được dùng để gán giá trị cho biến đã được khai báo trước đó.

!=

Không tương đương với ≠ ≠ ≠ ≠ ≠

expr1 != expr2

Trả giá trị
Một giá trị, hoặc một chuỗi giá trị.

%

Số mô-đun ((số nguyên dư) <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk>

expr1 % expr2

Trả giá trị
Số nguyên hoặc giá trị điểm nổi, hoặc một loạt các giá trị.

Ghi chú
Trong kịch bản Pine, khi tính số dư của một số nguyên, doanh nghiệp sẽ bị cắt. Đó là, đưa nó vào vòng tròn đến giá trị tuyệt đối nhỏ nhất. Giá trị thu được sẽ có ký hiệu tương tự như cổ tức.

Ví dụ: -1 % 9 = -1 - 9 * truncate ((-1/9) = -1 - 9 * truncate ((-0.111) = -1 - 9 * 0 = -1。

%=

Định nghĩa mô-đun <unk> áp dụng cho biểu thức số <unk>

expr1 %= expr2

Ví dụ

pine
// Equals to expr1 = expr1 % expr2. a = 3 b = 3 a %= b // Result: a = 0. plot(a)

Trả giá trị
Số nguyên hoặc giá trị điểm nổi, hoặc một loạt các giá trị.

*

Phương thức nhân <unk> áp dụng cho các biểu thức số <unk>

expr1 * expr2

Trả giá trị
Số nguyên hoặc giá trị điểm nổi, hoặc một loạt các giá trị.

*=

Định nghĩa phép nhân. Sử dụng trong biểu thức số.

expr1 *= expr2

Ví dụ

pine
// Equals to expr1 = expr1 * expr2. a = 2 b = 3 a *= b // Result: a = 6. plot(a)

Trả giá trị
Số nguyên hoặc giá trị điểm nổi, hoặc một loạt các giá trị.

+

Thêm hoặc một số dương. áp dụng cho biểu thức số hoặc chuỗi.

expr1 + expr2
+ expr

Trả giá trị
Binary String+Trả về sự kết hợp của express1 và express2
Số trả về một số nguyên hoặc giá trị điểm nổi, hoặc một loạt các giá trị:
Binary '+' trả về express1 cộng với express2。
Một nhân + một nhân trả về expr ((không thêm bất cứ điều gì vào đối xứng của một nhân))

Ghi chú
Bạn có thể sử dụng các toán tử toán học với số và các chuỗi biến. Trong trường hợp sử dụng chuỗi, các toán tử được áp dụng cho các phần tử.

+=

Chức năng bổ sung ≠ áp dụng cho biểu thức số hoặc chuỗi ≠

expr1 += expr2

Ví dụ

pine
// Equals to expr1 = expr1 + expr2. a = 2 b = 3 a += b // Result: a = 5. plot(a)

Trả giá trị
Đối với chuỗi, trả về chuỗi expr1 và expr2. Đối với số, trả về số nguyên hoặc giá trị điểm nổi, hoặc một loạt các giá trị.

Ghi chú
Bạn có thể sử dụng các toán tử toán học với số và các chuỗi biến. Trong trường hợp sử dụng chuỗi, các toán tử được áp dụng cho các phần tử.

-

Phương pháp trừ hoặc số trừ một. <unk> áp dụng cho biểu thức số.

expr1 - expr2
- expr

Trả giá trị
Trả về số nguyên hoặc giá trị điểm nổi, hoặc một chuỗi giá trị:
Binary '+' trả về express1 trừ express2。
Một đồng.-Trả về từ chối của expres ≠

Ghi chú
Bạn có thể sử dụng các toán tử toán học với số và các chuỗi biến. Trong trường hợp sử dụng chuỗi, các toán tử được áp dụng cho các phần tử.

-=

Phương pháp trừ ≠ áp dụng cho biểu thức số ≠

expr1 -= expr2

Ví dụ

pine
// Equals to expr1 = expr1 - expr2. a = 2 b = 3 a -= b // Result: a = -1. plot(a)

Trả giá trị
Số nguyên hoặc giá trị điểm nổi, hoặc một loạt các giá trị.

/

Ngoại lệ <unk> áp dụng cho biểu thức số <unk>

expr1 / expr2

Trả giá trị
Số nguyên hoặc giá trị điểm nổi, hoặc một loạt các giá trị.

/=

Việc chỉ định loại trừ. áp dụng cho biểu thức số.

expr1 /= expr2

Ví dụ

pine
// Equals to expr1 = expr1 / expr2. a = 3 b = 3 a /= b // Result: a = 1. plot(a)

Trả giá trị
Số nguyên hoặc giá trị điểm nổi, hoặc một loạt các giá trị.

<

Nhỏ hơn ◄ áp dụng cho biểu thức số ◄

expr1 < expr2

Trả giá trị
Một giá trị, hoặc một chuỗi giá trị.

<=

< hoặc bằng ≠. áp dụng cho biểu thức số ≠.

expr1 <= expr2

Trả giá trị
Một giá trị, hoặc một chuỗi giá trị.

==

Tương đương với ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠

expr1 == expr2

Trả giá trị
Một giá trị, hoặc một chuỗi giá trị.

=>

'=>' được sử dụng để tuyên bố hàm được định nghĩa bởi người dùng vàswitchTrong câu nói.

Định nghĩa của hàm là:

<identifier>([<parameter_name>[=<default_value>]], ...) => <local_block> <function_result>

Một.<local_block>Không có câu Pine hoặc nhiều hơn.
<function_result>là một biến, một biểu thức hoặc một nhóm.

Ví dụ

pine
// single-line function f1(x, y) => x + y // multi-line function f2(x, y) => sum = x + y sumChange = ta.change(sum, 10) // Function automatically returns the last expression used in it plot(f1(30, 8) + f2(1, 3))

Ghi chú
Bạn có thể tìm hiểu thêm về các hàm được định nghĩa bởi người dùng trong hướng dẫn sử dụng của bạn trên trang hàm tuyên bố và thư viện kịch bản.

>

Lớn hơn ◄ áp dụng cho biểu thức số ◄

expr1 > expr2

Trả giá trị
Một giá trị, hoặc một chuỗi giá trị.

>=

Lớn hơn hoặc bằng <unk> áp dụng cho biểu thức số <unk>

expr1 >= expr2

Trả giá trị
Một giá trị, hoặc một chuỗi giá trị.

?:

Hoạt động điều kiện ba phương.

expr1 ? expr2 : expr3

Ví dụ

pine
// Draw circles at the bars where open crosses close s2 = ta.cross(open, close) ? math.avg(open,close) : na plot(s2, style=plot.style_circles, linewidth=2, color=color.red) // Combination of ?: operators for 'switch'-like logic c = timeframe.isintraday ? color.red : timeframe.isdaily ? color.green : timeframe.isweekly ? color.blue : color.gray plot(hl2, color=c)

Trả giá trị
Nếu expr1 được đánh giá là true, thì expr2 và nếu không thì expr3. Các giá trị 0 ((0 và NaN +, Infinity, -Infinity) được coi là false, các giá trị khác là true.

Ghi chú
Nếu bạn không cần, hãy sử dụng na như là một nhánh của xelse.
Bạn có thể kết hợp sử dụng hai hoặc nhiều điều khiển: để thực hiện các câu tương tự như <unk>switch<unk> (xem ví dụ trên) <unk>.
Bạn có thể sử dụng các toán tử toán học với số và các chuỗi biến. Trong trường hợp sử dụng chuỗi, các toán tử được áp dụng cho các phần tử.

Xem thêm
na

[]

Series suborder <unk> cung cấp quyền truy cập vào các giá trị trước của series expr1 <unk> expr2 là số của k dòng trước, phải là giá trị số <unk> floating sẽ được xoay xuống <unk>

expr1[expr2]

Ví dụ

pine
// [] can be used to "save" variable value between bars a = 0.0 // declare `a` a := a[1] // immediately set current value to the same as previous. `na` in the beginning of history if high == low // if some condition - change `a` value to another a := low plot(a)

Trả giá trị
Một chuỗi các giá trị.

Xem thêm
math.floor

and

Logic AND ≠ áp dụng cho các biểu thức Boolean ≠

expr1 and expr2

Trả giá trị
Một giá trị, hoặc một chuỗi giá trị.

or

Logic OR ≠ áp dụng cho các biểu thức Boolean ≠

expr1 or expr2

Trả giá trị
Một giá trị, hoặc một chuỗi giá trị.

not

Logical inversion ((NOT) <unk> áp dụng cho các biểu thức Boolean <unk>

not expr1

Trả giá trị
Một giá trị, hoặc một chuỗi giá trị.

Từ khóa kiểu dữ liệu

bool

Từ khóa của kiểu bool (bool) để khai báo một biến hoặc tham số rõ ràng. Các giá trị của biến "Bool" có thể là true, false hoặc na.

Ví dụ

pine
// bool bool b = true // Same as `b = true` b := na plot(b ? open : close)

Ghi chú
Việc đề cập rõ ràng đến kiểu trong tuyên bố biến là tùy chọn, trừ khi nó được khởi tạo bằng na. Tìm hiểu thêm về kiểu Pine trên trang hướng dẫn sử dụng của hệ thống kiểu.

Xem thêm
var varip int float color string true false

int

Từ khóa của kiểu <unk>int <unk> ((integer)) dùng để khai báo một biến hoặc tham số một cách rõ ràng.

Ví dụ

pine
// int int i = 14 // Same as `i = 14` i := na plot(i)

Ghi chú
Việc đề cập rõ ràng đến kiểu trong tuyên bố biến là tùy chọn, trừ khi nó được khởi tạo bằng na. Tìm hiểu thêm về kiểu Pine trên trang hướng dẫn sử dụng của hệ thống kiểu.

Xem thêm
var varip float bool color string

float

Từ khóa của kiểu float () của biến hoặc tham số tuyên bố rõ ràng.

Ví dụ

pine
// float float f = 3.14 // Same as `f = 3.14` f := na plot(f)

Ghi chú
Việc đề cập rõ ràng đến kiểu trong tuyên bố biến là tùy chọn, trừ khi nó được khởi tạo bằng na.

Xem thêm
var varip int bool color string

string

Từ khóa kiểu "string" dùng để khai báo một biến hoặc tham số rõ ràng.

Ví dụ

pine
// string string s = "Hello World!" // Same as `s = "Hello world!"` // string s = na // same as "" plot(na, title=s)

Ghi chú
Việc đề cập rõ ràng đến kiểu trong tuyên bố biến là tùy chọn, trừ khi nó được khởi tạo bằng na. Tìm hiểu thêm về kiểu Pine trên trang hướng dẫn sử dụng của hệ thống kiểu.

Xem thêm
var varip int float bool str.tostring str.format

color

Từ khóa kiểu "color" dùng để khai báo một biến hoặc tham số trong biểu thức.

Ví dụ

pine
// color color textColor = color.green if barstate.islastconfirmedhistory runtime.log("test", textcolor = textColor)

Ghi chú
Chữ màu có định dạng sau: #RRGGBB hoặc #RRGGBBAA. Các cặp chữ cái đại diện cho giá trị mười sáu ký tự từ 00 đến FF ((giá mười ký tự từ 0 đến 255), trong đó RR, GG và BB là giá trị của phân số màu đỏ, xanh lá cây và xanh dương. AA là độ trong suốt của màu sắc (hoặc phân số alpha), trong đó 00 không thể nhìn thấy, FF không minh bạch.
Việc đề cập rõ ràng đến kiểu trong tuyên bố biến là tùy chọn, trừ khi nó được khởi tạo bằng na. Tìm hiểu thêm về kiểu Pine trên trang hướng dẫn sử dụng của hệ thống kiểu.

Xem thêm
var varip int float string color.rgb color.new

array

Các từ khóa của kiểu phím mảng phím được sử dụng để khai báo một biến hoặc tham số một cách rõ ràng.array.new<type>,array.fromHàm tạo đối tượng mảng ((hoặc ID) <unk>

Ví dụ

pine
// array array<float> a = na a := array.new<float>(1, close) plot(array.get(a, 0))

Ghi chú
Các đối tượng của mảng luôn luôn là các dạng mảng chuỗi <unk>.

Xem thêm
var array.new array.from

Objects

Đối tượng Object của ngôn ngữ PINE là một ví dụ về kiểu định nghĩa người dùng ((UDT), có thể được hiểu là lớp không có phương pháp, cho phép người dùng tạo kiểu tùy chỉnh trong chính sách để tổ chức các giá trị khác nhau trong một thực thể.

Xác định kiểu

Hãy định nghĩa một kiểu order để lưu trữ thông tin về đơn hàng:

pine
type order float price float amount string symbol
  • sử dụngtypeLoại tuyên bố từ khóa:
  • type là tên của loại.
  • Dòng đầu tiên type xác định tên loại, sau đó thu nhỏ vào bốn khoảng trống để xác định trường chứa loại này.
  • Mỗi trường cần phải tuyên bố kiểu dữ liệu của nó, chẳng hạn như int, float, string.

Tạo đối tượng

Sử dụng loại tốt tuyên bố, gọinew()Chức năng tạo đối tượng:

pine
order1 = order.new()
pine
order1 = order.new(100, 0.1, "BTC_USDT")
pine
order1 = order.new(amount = 0.1, symbol = "BTC_USDT", price = 100)

Bạn cũng có thể tạo một đối tượng trống:

pine
order order1 = na

Sau đây là một ví dụ thực tế:

pine
type order float price float amount string symbol if strategy.position_size == 0 and open > close strategy.entry("long", strategy.long, 1) order1 = order.new(strategy.opentrades.entry_price(strategy.opentrades - 1), strategy.opentrades.size(strategy.opentrades - 1), syminfo.ticker) // runtime.log(order1) // 输出 {"data":{"price":46002.8,"amount":1,"symbol":"swap"},"_meta":0,"_type":"order"}

Ví dụ:

pine
order1 = order.new(strategy.opentrades.entry_price(strategy.opentrades - 1), strategy.opentrades.size(strategy.opentrades - 1), syminfo.ticker)

Bạn cũng có thể viết theo dạng sau:

pine
order order1 = na order1 := order.new(strategy.opentrades.entry_price(strategy.opentrades - 1), strategy.opentrades.size(strategy.opentrades - 1), syminfo.ticker)

Loại đối tượng sử dụng từ khóa var

pine
//@version=5 indicator("Objects using `var` demo") //@type A custom type to hold index, price, and volume information. type BarInfo int index = bar_index float price = close float vol = volume //@variable A `BarInfo` instance whose fields persist through all iterations, starting from the first bar. var BarInfo firstBar = BarInfo.new() //@variable A `BarInfo` instance declared on every bar. BarInfo currentBar = BarInfo.new() // Plot the `index` fields of both instances to compare the difference. plot(firstBar.index, "firstBar") plot(currentBar.index, "currentBar")

Khi sử dụng tuyên bố từ khóa var để phân bổ một biến đối tượng với kiểu định nghĩa của người dùng, từ khóa sẽ được áp dụng tự động cho tất cả các trường đối tượng đó. Điều này có nghĩa là đối tượng được tuyên bố bằng từ khóa var sẽ giữ trạng thái của nó giữa mỗi lần lặp lại mà không cần khởi tạo lại giá trị trường của nó trong mỗi lần lặp lại.

  • Đối tượng firstBar được tuyên bố bằng từ khóa var, do đó, trường của nó (index, price, vol) sẽ giữ giá trị của nó trong mỗi lần lặp, bắt đầu từ mục đầu tiên cho đến khi mục cuối cùng kết thúc.
  • Đối tượng currentBar không sử dụng tuyên bố từ khóa var, do đó, trường của nó sẽ được khởi tạo lại trên mỗi mục và có một đối tượng mới trong mỗi lần lặp.

Bạn có thể so sánh sự khác biệt giữa hai đối tượng bằng cách vẽ các trường index của chúng. firstBar.index sẽ giữ giá trị được đặt trước trong mỗi lần lặp, trong khi currentBar.index sẽ khởi tạo lại giá trị bar_index của mục hiện tại trong mỗi lần lặp.

Loại đối tượng sử dụng từ khóa varip

pine
//@version=5 indicator("Objects using `varip` fields demo") //@type A custom type that counts the bars and ticks in the script's execution. type Counter int bars = 0 varip int ticks = 0 //@variable A `Counter` object whose reference persists throughout all bars. var Counter counter = Counter.new() // Add 1 to the `bars` and `ticks` fields. The `ticks` field is not subject to rollback on unconfirmed bars. counter.bars += 1 counter.ticks += 1 // Plot both fields for comparison. plot(counter.bars, "Bar counter", color.blue, 3) plot(counter.ticks, "Tick counter", color.purple, 3)

Trong Pine, việc sử dụng từ khóa varip cho phép các trường đối tượng tồn tại suốt quá trình thực thi kịch bản mà không bị xoay vòng trong các cột chưa xác nhận.
Trong các tuyên bố kiểu Counter, trường bars không sử dụng từ khóa varip, vì vậy nó sẽ quay trở lại trong mỗi cột chưa xác nhận. Trong khi trường ticks sử dụng từ khóa varip, vì vậy nó sẽ không quay trở lại trong cột chưa xác nhận.
Đối tượng counter được tuyên bố bằng từ khóa var, vì vậy nó sẽ tồn tại trong suốt quá trình thực thi kịch bản.
Trong mỗi lần lặp lại, các trường bars và ticks sẽ được tăng thêm 1 ≠ . Các trường bars sẽ quay trở lại trong mỗi cột chưa xác nhận, trong khi các trường ticks sẽ không quay trở lại.
Cuối cùng, bằng cách vẽ các trường counter.bars và counter.ticks, bạn có thể so sánh sự khác biệt giữa chúng. Giá trị của counter.bars sẽ quay trở lại trong mỗi cột chưa xác nhận, trong khi giá trị của counter.ticks sẽ tiếp tục tăng lên cho đến khi kịch bản được thực hiện.

Thay đổi giá trị của trường

pine
type order float price float amount string symbol if strategy.position_size == 0 and open > close strategy.entry("long", strategy.long, 1) order1 = order.new(strategy.opentrades.entry_price(strategy.opentrades - 1), strategy.opentrades.size(strategy.opentrades - 1), syminfo.ticker) if strategy.position_size != 0 runtime.log(order1) order1.price := 999 order1.amount := 100 runtime.log(order1) runtime.error("stop")

Có thể sử dụng:=Hoạt động tái định giá thay đổi giá trị của trường đối tượng.

Tập hợp đối tượng

Ví dụ tuyên bố một mảng không có, mà sẽ lưu các đối tượng của kiểu order được định nghĩa bởi người dùng:

pine
type order float price float amount string symbol arrOrder = array.new<order>() order1 = order.new(99, 1, "BTC_USDT") order2 = order.new(100, 2, "ETH_USDT") array.push(arrOrder, order1) array.push(arrOrder, order2) runtime.log(arrOrder) runtime.error("stop")

hoặc

pine
type order float price float amount string symbol var array<order> arrOrder = na arrOrder := array.new<order>() order1 = order.new(99, 1, "BTC_USDT") order2 = order.new(100, 2, "ETH_USDT") array.push(arrOrder, order1) array.push(arrOrder, order2) runtime.log(arrOrder) runtime.error("stop")

Đối tượng sao chép

Trong Pine, đối tượng được phân bổ bằng tham chiếu. Khi đối tượng hiện có được phân bổ cho một biến mới, cả hai đều hướng đến cùng một đối tượng.

pine
//@version=5 indicator("") type pivotPoint int x float y pivot1 = pivotPoint.new() pivot1.x := 1000 pivot2 = pivot1 pivot2.x := 2000 // Both plot the value 2000. plot(pivot1.x) plot(pivot2.x)

Trong ví dụ dưới đây, chúng ta tạo một đối tượng pivot1 và đặt trường x của nó là 1000。 Sau đó, chúng ta tuyên bố một pivot2 chứa các biến tham chiếu đối với đối tượng pivot1 này, vì vậy cả hai đều hướng đến cùng một ví dụ。 Do đó, thay đổi pivot2.x cũng sẽ thay đổi pivot1.x, vì cả hai đều tham chiếu đến x cùng một đối tượng。

Để tạo một bản sao độc lập với đối tượng ban đầu, trong trường hợp này chúng ta có thể sử dụng phương thức copy () trong trường hợp này. Trong ví dụ này, chúng ta tuyên bố biến pivot2 trích dẫn các trường hợp sao chép của đối tượng pivot1. Bây giờ, thay đổi pivot2.x sẽ không thay đổi pivot1.x, vì nó chỉ vào x một trường đối tượng riêng biệt:

pine
//@version=5 indicator("") type pivotPoint int x float y pivot1 = pivotPoint.new() pivot1.x := 1000 pivot2 = pivotPoint.copy(pivot1) pivot2.x := 2000 // Plots 1000 and 2000. plot(pivot1.x) plot(pivot2.x)

Cần lưu ý rằng phương thức copy của TradingView là shallow copy. Nếu đối tượng có các loại trường đặc biệt (ví dụ như array), các trường trong bản sao shallow của đối tượng sẽ chỉ đến cùng instance với đối tượng đó.
FMZ có thể thực hiện bản sao sâu một cách trực tiếp mà không cần xử lý thêm, ví dụ như:

Sao chép sâu

pine
//@version=5 indicator("test deepCopy") type orderInfo float price float amount type labelInfo orderInfo order string labelMsg labelInfo1 = labelInfo.new(orderInfo.new(100, 0.1), "test labelInfo1") labelInfo2 = labelInfo.copy(labelInfo1) labelInfo1.labelMsg := "labelInfo1->2" // 修改 labelInfo1 的基础类型字段,看是否影响 labelInfo2 labelInfo1.order.price := 999 // 修改 labelInfo1 的复合类型字段,看是否影响 labelInfo2 runtime.log(labelInfo1) runtime.log(labelInfo2) runtime.error("stop")

Kết quả thử nghiệm, labelInfo.copy ((labelInfo1) được thực hiện là bản sao sâu, thay đổi bất kỳ trường nào của labelInfo1 sẽ không ảnh hưởng đến labelInfo2 <unk>.

Methods

Phương pháp của ngôn ngữ Pine là các hàm chuyên dụng liên quan đến các loại được xây dựng hoặc xác định bởi người dùng trong một ví dụ cụ thể. Về phần lớn, chúng giống như các hàm thông thường nhưng cung cấp ngữ pháp ngắn hơn và dễ dàng hơn. Người dùng có thể truy cập các phương thức trên biến bằng cách sử dụng dấu chấm trực tiếp, giống như truy cập vào các trường của đối tượng Pine.

Phương thức tích hợp

Ví dụ, một đoạn mã như sau:

pine
//@version=5 indicator("Custom Sample BB", overlay = true) float sourceInput = input.source(close, "Source") int samplesInput = input.int(20, "Samples") int n = input.int(10, "Bars") float multiplier = input.float(2.0, "StdDev") var array<float> sourceArray = array.new<float>(samplesInput) var float sampleMean = na var float sampleDev = na // Identify if `n` bars have passed. if bar_index % n == 0 // Update the queue. array.push(sourceArray, sourceInput) array.shift(sourceArray) // Update the mean and standard deviaiton values. sampleMean := array.avg(sourceArray) sampleDev := array.stdev(sourceArray) * multiplier // Calculate bands. float highBand = sampleMean + sampleDev float lowBand = sampleMean - sampleDev plot(sampleMean, "Basis", color.orange) plot(highBand, "Upper", color.lime) plot(lowBand, "Lower", color.red)

Có thể viết bằng:

pine
//@version=5 indicator("Custom Sample BB", overlay = true) float sourceInput = input.source(close, "Source") int samplesInput = input.int(20, "Samples") int n = input.int(10, "Bars") float multiplier = input.float(2.0, "StdDev") var array<float> sourceArray = array.new<float>(samplesInput) var float sampleMean = na var float sampleDev = na // Identify if `n` bars have passed. if bar_index % n == 0 // Update the queue. sourceArray.push(sourceInput) sourceArray.shift() // Update the mean and standard deviaiton values. sampleMean := sourceArray.avg() sampleDev := sourceArray.stdev() * multiplier // Calculate band values. float highBand = sampleMean + sampleDev float lowBand = sampleMean - sampleDev plot(sampleMean, "Basis", color.orange) plot(highBand, "Upper", color.lime) plot(lowBand, "Lower", color.red)

Bạn có thể thấy rằng PINE đã ủng hộMethodsSau đó là code.array.avg(sourceArray)Nếu bạn có thể sử dụng phương pháp, bạn có thể viết:sourceArray.avg()
Lưu ý: FMZ tạm thời không được hỗ trợarray.avgĐây là một lời kêu gọi.

Phương pháp được định nghĩa bởi người dùng

Pine cho phép người dùng xác định các phương thức tùy chỉnh được sử dụng với bất kỳ loại vật thể nào được xây dựng hoặc được xác định bởi người dùng. Các phương thức xác định về cơ bản giống như hàm xác định, nhưng có hai sự khác biệt quan trọng:

1, từ khóa method phải được bao gồm trước tên hàm.
2 , tham số của phương thức, trong đó loại tham số đầu tiên phải được tuyên bố rõ ràng, vì nó nói về loại đối tượng mà phương pháp sẽ liên kết với nó.

Ví dụ, hãy đóng gói mã tính toán chỉ số Brinh như một phương pháp tùy chỉnh của người dùng trong mã sau:

pine
//@version=5 indicator("Custom Sample BB", overlay = true) float sourceInput = input.source(close, "Source") int samplesInput = input.int(20, "Samples") int n = input.int(10, "Bars") float multiplier = input.float(2.0, "StdDev") var array<float> sourceArray = array.new<float>(samplesInput) var float sampleMean = na var float sampleDev = na // Identify if `n` bars have passed. if bar_index % n == 0 // Update the queue. sourceArray.push(sourceInput) sourceArray.shift() // Update the mean and standard deviaiton values. sampleMean := sourceArray.avg() sampleDev := sourceArray.stdev() * multiplier // Calculate band values. float highBand = sampleMean + sampleDev float lowBand = sampleMean - sampleDev plot(sampleMean, "Basis", color.orange) plot(highBand, "Upper", color.lime) plot(lowBand, "Lower", color.red)

Thay đổi thành:

pine
//@version=5 indicator("Custom Sample BB", overlay = true) float sourceInput = input.source(close, "Source") int samplesInput = input.int(20, "Samples") int n = input.int(10, "Bars") float multiplier = input.float(2.0, "StdDev") var array<float> sourceArray = array.new<float>(samplesInput) method maintainQueue(array<float> srcArray, float value, bool takeSample = true) => if takeSample srcArray.push(value) srcArray.shift() srcArray method calcBB(array<float> srcArray, float mult, bool calculate = true) => var float mean = na var float dev = na if calculate mean := srcArray.avg() dev := srcArray.stdev() * mult [mean, mean + dev, mean - dev] bool newSample = bar_index % n == 0 [sampleMean, highBand, lowBand] = sourceArray.maintainQueue(sourceInput, newSample).calcBB(multiplier, newSample) plot(sampleMean, "Basis", color.orange) plot(highBand, "Upper", color.lime) plot(lowBand, "Lower", color.red)

Bạn có thể thấy các user-custom method sử dụng keyword method declaration: maintainQueue, calcBB, trong danh sách các tham số đầu tiên làarray<float>Type ≠ cho biết method làarray<float>Các phương pháp thay đổi kiểu, vì vậy bạn có thể thấy việc gọi mã sau để tính toán chỉ số Brin.

pine
[sampleMean, highBand, lowBand] = sourceArray.maintainQueue(sourceInput, newSample).calcBB(multiplier, newSample)

Methods tải lại

Các phương thức được định nghĩa bởi người dùng có thể phủ và tải lên các phương thức được xây dựng sẵn có và được định nghĩa bởi người dùng với cùng một định danh. Tính năng này cho phép người dùng định nghĩa nhiều quy trình liên quan đến các ký tự tham số khác nhau dưới cùng một tên phương thức. Như một ví dụ đơn giản, giả sử chúng ta muốn định nghĩa một phương thức để xác định loại biến. Vì chúng ta phải rõ ràng chỉ định loại đối tượng liên quan đến phương thức được định nghĩa bởi người dùng, vì vậy chúng ta cần xác định tải lên cho mỗi loại mà chúng ta muốn nó xác định. Dưới đây, chúng tôi định nghĩa một phương thức GetType () mà trả về các biểu tượng chuỗi của loại biến và có năm loại tải lại cơ bản:

pine
//@version=5 indicator("Type Inspection") // @function Identifies an object's type. // @param this Object to inspect. // @returns (string) A string representation of the type. method getType(int this) => na(this) ? "int(na)" : "int" method getType(float this) => na(this) ? "float(na)" : "float" method getType(bool this) => na(this) ? "bool(na)" : "bool" method getType(color this) => na(this) ? "color(na)" : "color" method getType(string this) => na(this) ? "string(na)" : "string" a = 1 // a.getType(): float b = 1.0 // b.getType(): float c = true // c.getType(): bool d = color.white // d.getType(): string(na) e = "1" // e.getType(): string runtime.log("a.getType():", a.getType()) runtime.log("b.getType():", b.getType()) runtime.log("c.getType():", c.getType()) runtime.log("d.getType():", d.getType()) runtime.log("e.getType():", e.getType()) runtime.error("stop")

Xác định loại cơ bản của mỗi biếngetType()Load nào sẽ được sử dụng. Trong nền tảng FMZ, các loại giá trị số sẽ được đánh giá là dữ liệu kiểu nổi (float) bởi vì nền tảng kịch bản PINE được thực hiện bằng ngôn ngữ Javascript.

Chức năng tích hợp

Khi gọi hàm truyền tham số, bạn có thể chỉ định định giá trị cho tên tham số, bạn có thể truyền biến trực tiếp vào vị trí tham số tương ứng, cũng hỗ trợ sử dụng hỗn hợp. Ví dụ:

pine
plot(close, title="test plot") // 直接传参数 close ;指定参数 title ,赋值字符串"test plot"

Sau khi gán giá trị cho tên tham số, bạn không thể truyền biến trực tiếp như tham số nữa, và các tham số chuyển tiếp sau đó phải được viết dưới dạng gán giá trị cho tên tham số.

pine
// plot(close, title="test", color.red) // 虽然plot第三个参数是颜色值,但是这样写就会报错 plot(close, title="test", color=color.red) // 正确写法 plot(close, "test", color.red) // 正确写法

timeframe

timeframe.in_seconds

sẽ được chuyển chotimeframeChuyển đổi chu kỳ thời gian của tham số thành giây.

timeframe.in_seconds(timeframe)

Ví dụ

pine
// Get chart timeframe: i_tf = input.timeframe("1D") // Convert timeframe to the int value (number of seconds in 1 Day): tf = timeframe.in_seconds(i_tf) plot(tf)

Trả giá trị
timeframeMột số giây trong một dòng K của int biểu thị dạng ▽.

tham số

  • timeframe(simple string) chu kỳ thời gian。 tùy chọn。 mặc định là timeframe.period。

Ghi chú
Đối vớitimeframeHàm >= '1M' tính theo số giây của 30.4167 (365/12) ngày trong một tháng.

Xem thêm
input.timeframe timeframe.period

ticker

ticker.heikinashi

Tạo một mã nhận dạng yêu cầu giá trị đường K trung bình mịn.

ticker.heikinashi(symbol)

Ví dụ

pine
heikinashi_close = request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, close) heikinashi_aapl_60_close = request.security(ticker.heikinashi(syminfo.tickerid), "60", close) plot(heikinashi_close) plot(heikinashi_aapl_60_close)

Trả giá trị
Các chuỗi giá trị của mã cổ phiếu, có thể được cung cấp cho hàm request.security.

tham số

  • symbol(simple string) Định danh mã hàng hóa <unk>

Xem thêm
syminfo.tickerid syminfo.ticker request.security

request

request.data

Yêu cầu dữ liệu bên ngoài.

request.data(url, attribute)

Ví dụ

pine
/*backtest start: 2024-09-01 16:00:00 end: 2024-10-10 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] args: [["RunMode",1,358374],["ZPrecision",0,358374]] */ var chart_data = "https://www.datadata.com/api/v1/query/ebe46218-c5c6-4366-8c72-413694417976/data" spotPrice = request.data(chart_data, "$.spot_close_price") futuresPrice = request.data(chart_data, "$.future_close_price") diff = futuresPrice - spotPrice plot(diff, "永续-现货差价") plot(futuresPrice, "期货价格", overlay=true) plot(spotPrice, "现货价格", overlay=true) if diff > 80 and strategy.position_size >= 0 runtime.log("diff > 80") strategy.entry("Enter Short", strategy.short) if diff < 60 and strategy.position_size <= 0 runtime.log("diff < 60") strategy.entry("Enter Short", strategy.long)

Trả giá trị
tham sốattributeDòng dữ liệu được chỉ định

tham số

  • url(simple string) url nguồn dữ liệu được yêu cầu, định dạng dữ liệu trả lời của nguồn dữ liệu phải đáp ứng các yêu cầu ((có ít nhất thuộc tính time, data):{"data": [], "schema": ["time", "data"]}Các định dạng dữ liệu có thể tham khảo trong ví dụ:

    json
    { "data": [ [1720051200000, "{\"spot_close_price\" : 57050.01, \"future_close_price\" : 57045.9}"], [1720137600000, "{\"spot_close_price\" : 56628.79, \"future_close_price\" : 56604.9}"], // ... ], "schema": ["time", "data"] }
  • attribute(simple string) Chỉ định tên thuộc tính, trả về dữ liệu cần thiết. Ví dụ:"$.spot_close_price",sử dụng$.Là tiền đề, tên thuộc tính phù hợp với thuộc tính trong trường data trong dữ liệu được trả lời khi yêu cầu nguồn dữ liệu

Nếu báo cáo sai, cần kiểm trarequest.dataDòng thời gian yêu cầu có phù hợp với dải thời gian thiết lập phản hồi không, không truy vấn dữ liệu trên chuỗi thời gian phản hồi sẽ bị lỗi.

Data-data trong trường hợp này là câu truy vấn dữ liệu SQL:

sql
WITH latest_data AS ( SELECT klines.spot_1d.Time AS time, CONCAT('{\"spot_close_price\" : ', klines.spot_1d.Close, ', \"future_close_price\" : ', klines.future_1d.Close, '}') AS data FROM klines.spot_1d JOIN klines.future_1d ON klines.spot_1d.Time = klines.future_1d.Time WHERE klines.spot_1d.Symbol = 'btc_usdt' AND klines.future_1d.Symbol = 'btc_usdt.swap' AND klines.spot_1d.Exchange = 'Binance' AND klines.future_1d.Exchange = 'Binance' ORDER BY klines.spot_1d.Time DESC LIMIT 100 ) SELECT * FROM latest_data ORDER BY time ASC;

Có thể xem trên FMZKhám phá dữ liệuTrang truy vấn, tạo liên kết dữ liệu, ví dụ như trong ví dụhttps://www.datadata.com/api/v1/query/ebe46218-c5c6-4366-8c72-413694417976/data

request.security

Yêu cầu một loại khác / độ phân giải khác.

request.security(symbol, timeframe, expression, gaps, lookahead, ignore_invalid_symbol, currency)

Ví dụ

pine
s = request.security(syminfo.tickerid, "D", close) // 1 Day plot(s) expr = ta.sma(close, 10) s1 = request.security(syminfo.tickerid, "240", expr) // 240 Minutes plot(s1) // To avoid difference in calculation on history/realtime you can request not latest values and use merge strategy flags as follows: s2 = request.security(syminfo.tickerid, "D", close[1], barmerge.gaps_off, barmerge.lookahead_on) plot(s2) f() => [open, high] [o, h] = request.security(syminfo.tickerid, "D", f()) [l, c] = request.security(syminfo.tickerid, "D", [low, close]) plot((o + h + l + c) / 4)

Trả giá trị
Dòng yêu cầu

tham số

  • symbol(simple string) Mã hàng.
  • timeframe(simple string) Chu kỳ thời gian ≠ chuỗi trống sẽ được giải thích là chu kỳ thời gian hiện tại của biểu đồ ≠
  • expression(series int/float/bool/color) có thể được tính toán và trả về một biểu thức từ request.security. Nó có thể là một series hoặc một mảng chứa các phần tử có thể được chuyển đổi thành series.
  • gaps(barmerge_gaps) cho phép chính sách kết hợp dữ liệu được yêu cầu (cần dữ liệu tự động kết hợp với dữ liệu OHLC chuỗi chính). Các giá trị có thể: barmerge.gaps_on, barmerge.gaps_off. barmerge.gaps_on - kết hợp dữ liệu được yêu cầu với các khoảng cách có thể (na giá trị). barmerge.gaps_off - kết hợp dữ liệu được yêu cầu liên tục, tất cả các khoảng cách được lấp đầy với các giá trị hiện có gần nhất trước đó.
  • lookahead(barmerge_lookahead) cho các chính sách kết hợp dữ liệu được yêu cầu. Các giá trị có thể: barmerge.lookahead_on, barmerge.lookahead_off. Từ phiên bản 3, giá trị mặc định là barmerge.lookahead_off. Xin lưu ý rằng hành động giống như thời gian thực, chỉ khác nhau trong lịch sử.
  • ignore_invalid_symbol(const bool) Một tham số tùy chọn. Nếu không tìm thấy hàng được chỉ định, xác định hành vi của hàm: nếu false, kịch bản sẽ dừng và trả về lỗi khi chạy; nếu true, hàm sẽ trả về na và tiếp tục thực hiện.
  • currency(simple string) Chuyển đổi giá trị liên quan đến tiền tệ của hàng hóa (ví dụ: OHLC) thành tiền tệ. <unk>expression <unk>. <unk>Sự chuyển đổi được sử dụng dựa trên tỷ giá hối đoái hàng ngày trước của cặp FX_IDC <unk>. <unk>relative to the K-line being calculated) <unk> tùy chọn. <unk> mặc định là syminfo.currency <unk> giá trị có thể: một chuỗi ba chữ cái có mã tiền tệ theo định dạng ISO 4217 (ví dụ: <unk>USD <unk>) hoặc currency.* Một trong những hằng số trong tên không gian, ví dụ: currency.USD <unk>

Ghi chú
Mã PineScript sử dụng tính năng này có thể tính toán khác nhau cho dữ liệu lịch sử và dữ liệu thời gian thực.
Nếu bạn muốn chỉ định các tham số bổ sung cho hàng hóa được yêu cầu, chẳng hạn như thời gian giao dịch hoặc loại điều chỉnh, bạn có thể sử dụng hàm ticker.new ().
Không thể sử dụng biến 'ticker' để chuyển điểm chênh lệch cho hàm này. Bạn có thể sử dụng biến 'ticker.new' hoặc biểu diễn chuỗi mã cổ phiếu, ví dụ như AAPL+MSFT*TSLA”。
Hiện tại, một kịch bản có thể có tối đa 40 request.security.
Xin lưu ý rằng việc sử dụng biến số/chức năng này có thể dẫn đến việc vẽ lại chỉ số.
Các tham số độ phân giải được phép là:
1S, 5S, 15S, 30S - Khoảng cách giây (thời gian biểu đồ nên nhỏ hơn hoặc bằng thời gian yêu cầu)
Từ 1 đến 1440 phút
Từ 1D đến 365D
Từ 1W đến 52W vài tuần
Từ 1M đến 12M vài tháng

Xem thêm
syminfo.ticker syminfo.tickerid timeframe.period ta.correlation barmerge.lookahead_off barmerge.lookahead_on

str

str.contains

NếusourceDưới đây là một chuỗi chứastrstring con, trả về true, nếu không trả về false.

str.contains(source, str)

Ví dụ

pine
// If the current chart is a continuous futures chart, e.g “BTC1!”, then the function will return true, false otherwise. var isFutures = str.contains(syminfo.tickerid, "!") plot(isFutures ? 1 : 0)

Trả giá trị
Nếu trongsourceTìm trong chuỗi.strtrue, nếu không thì false.

tham số

  • source(series string) chuỗi nguồn
  • str(series string) Dãy chữ cái để tìm.

Xem thêm
str.pos str.match

str.endswith

NếusourceDãy ký tự làstrCác chuỗi con được chỉ định trong kết thúc sẽ trả về true, nếu không sẽ trả về false.

str.endswith(source, str)

Trả giá trị
NếusourceDãy ký tự làstrCác chuỗi con được chỉ định trong kết thúc bằng true hoặc false.

tham số

  • source(series string) chuỗi nguồn
  • str(series string) Dãy chữ cái để tìm.

Xem thêm
str.startswith

str.startswith

NếusourceDãy ký tự làstrNếu bắt đầu từ một chuỗi con được chỉ định trong, nó sẽ trả về true, nếu không sẽ trả về false.

str.startswith(source, str)

Trả giá trị
NếusourceDãy ký tự làstrCác chuỗi con được chỉ định trong bắt đầu là true, nếu không là false.

tham số

  • source(series string) chuỗi nguồn
  • str(series string) Dãy chữ cái để tìm.

Xem thêm
str.endswith

str.substring

Trả về một chuỗi mới, nó làsourceCác chuỗi con của một chuỗi.begin_posCác ký tự bắt đầu từ chỉ số được chỉ định và mở rộng đếnsource'end_pos - 1' của chuỗi.

str.substring(source, begin_pos)
str.substring(source, begin_pos, end_pos)

Ví dụ

pine
sym= "EXCHANGE_NAME:SYMBOL_NAME" pos = str.pos(sym, ":") // Get position of ":" character tkr= str.substring(sym, pos+1) // "SYMBOL_NAME" if barstate.islastconfirmedhistory runtime.log(tkr)

Trả giá trị
Các chuỗi con được trích xuất từ chuỗi nguồn.

tham số

  • source(series string) Từ đó trích xuất chuỗi con của chuỗi nguồn.
  • begin_pos(series int) vị trí bắt đầu của chuỗi con được lấy. Nó là độc quyền ((series int) bao gồm các ký tự ở vị trí đó).
  • end_pos(series int) vị trí kết thúc。 nó là độc quyền ((string được trích xuất không bao gồm các ký tự ở vị trí đó)。 tùy chọn。 mặc định làsourceChiều dài của chuỗi.

Ghi chú
String index bắt đầu từ 0begin_posbình đẳngend_pos, hàm trả về một chuỗi trống.

Xem thêm
str.contains str.pos str.match

str.tonumber

str.tonumber(string)

Trả giá trị
Loại floating point của chuỗi nếu nó chứa số hợp lệ, nếu không thì là na。

tham số

  • string(series string) biểu diễn chuỗi int hoặc float.

str.format

Chuyển đổi các chuỗi định dạng và giá trị thành các chuỗi định dạng. Các chuỗi định dạng có thể bao gồm văn bản văn bản và một dấu chấm trong các ô lớn {} cho mỗi giá trị định dạng. Mỗi dấu chấm bao gồm một chỉ số thay thế cho các tham số cần thiết của nó (bắt đầu từ 0), và một dấu chấm định dạng tùy chọn. Chỉ số chỉ định vị trí của tham số trong danh sách tham số str.format.

str.format(formatString, arg0, arg1, ...)

Ví dụ

pine
// The format specifier inside the curly braces accepts certain modifiers: // - Specify the number of decimals to display: s1 = str.format("{0,number,#.#}", 1.34) // returns: 1.3 runtime.log(s1) // - Round a float value to an integer: s2 = str.format("{0,number,integer}", 1.34) // returns: 1 runtime.log(s2) // - Display a number in currency: s3 = str.format("{0,number,currency}", 1.34) // returns: $1.34 runtime.log(s3) // - Display a number as a percentage: s4 = str.format("{0,number,percent}", 0.5) // returns: 50% runtime.log(s4) // EXAMPLES WITH SEVERAL ARGUMENTS // returns: Number 1 is not equal to 4 s5 = str.format("Number {0} is not {1} to {2}", 1, "equal", 4) runtime.log(s5) // returns: 1.34 != 1.3 s6 = str.format("{0} != {0, number, #.#}", 1.34) runtime.log(s6) // returns: 1 is equal to 1, but 2 is equal to 2 s7 = str.format("{0, number, integer} is equal to 1, but {1, number, integer} is equal to 2", 1.34, 1.52) runtime.log(s7) // returns: The cash turnover amounted to $1,340,000.00 s8 = str.format("The cash turnover amounted to {0, number, currency}", 1340000) runtime.log(s8) // returns: Expected return is 10% - 20% s9 = str.format("Expected return is {0, number, percent} - {1, number, percent}", 0.1, 0.2) runtime.log(s9)

Trả giá trị
Dãy ký tự được định dạng.

tham số

  • formatString(series string) Dạng chuỗi các ký tự
  • arg0, arg1, ... (series int/float/bool/string/na/int[]/float[]/bool[]/string[]) Giá trị cần định dạng.

Ghi chú
Tất cả các dấu ngoặc kép trong kiểu không được trích dẫn phải được cân bằng. Ví dụ, "ab {0} de" và "ab '}' de" là kiểu có hiệu lực, nhưng "ab {0'} 'de", "ab } de" và "'{''" không phải là kiểu có hiệu lực.

str.length

Trả về số nguyên tương ứng với số ký tự trong chuỗi đó.

str.length(string)

Trả giá trị
Số ký tự trong chuỗi nguồn.

tham số

  • string(series string) chuỗi nguồn

str.lower

Trả về một chuỗi mới trong đó tất cả các chữ cái được chuyển thành chữ cái nhỏ.

str.lower(source)

Trả giá trị
Tất cả các chữ cái được chuyển thành một chuỗi chữ cái mới.

tham số

  • source(series string) String cần chuyển đổi

Xem thêm
str.upper

str.upper

Trả về một chuỗi mới với tất cả các chữ cái được chuyển thành chữ cái lớn.

str.upper(source)

Trả giá trị
Tất cả các chữ cái được chuyển thành một chuỗi chữ cái mới với chữ cái lớn.

tham số

  • source(series string) String cần chuyển đổi

Xem thêm
str.lower

str.match

Nếu phù hợpregexBiểu thức chính thức, trả vềsourceString là con của String, nếu không sẽ trả về 'na'。

str.match(source, regex)

Ví dụ

pine
s = input.string("It's time to sell some EXCHANGE_NAME:SYMBOL_NAME!") // finding first substring that matches regular expression "[\w]+:[\w]+" var string tickerid = str.match(s, "[\\w]+:[\\w]+") if barstate.islastconfirmedhistory runtime.log(tickerid) // "EXCHANGE_NAME:SYMBOL_NAME"

Trả giá trị
sourceCác chuỗi con của chuỗi, nếu nó phù hợp với mộtregexBiểu thức chính thức, nếu không là 'na'.

tham số

  • source(series string) chuỗi nguồn
  • regex(series string) Biểu thức chính xác phù hợp với chuỗi này。

Ghi chú
Hàm trả vềsourceBiểu thức chính thức xuất hiện lần đầu tiên trong chuỗi chữ ▽
regexCác ký hiệu backslash \ <unk> trong chuỗi cần sử dụng các dấu gạch ngược bổ sung để chuyển nghĩa, chẳng hạn như <unk>\d<unk> đại diện cho biểu thức chính xác <unk>\d<unk>。

Xem thêm
str.contains str.substring

str.pos

Trở lạisourcexuất hiện lần đầu trong chuỗistrVị trí của chuỗi, nếu không trả về 'na'

str.pos(source, str)

Trả giá trị
strDãy ký tự trongsourceVị trí trong chuỗi.

tham số

  • source(series string) chuỗi nguồn
  • str(series string) Dãy chữ cái để tìm.

Ghi chú
Các chỉ mục chuỗi bắt đầu từ 0.

Xem thêm
str.contains str.match str.substring

str.replace

Trả về một chuỗi mới, trong đó N+1 lần xuất hiệntargetCác chuỗi và các chuỗi trước đâytargetChuyển thànhreplacementString, trong đó N làoccurrenceTrong <string>, hãy chỉ định <string> N là chỉ số khớp xuất hiện trong chuỗi nguồn </string> của chuỗi mục tiêu cần thay thế.

str.replace(source, target, replacement, occurrence)

Ví dụ

pine
var source = "EXCHANGE1:SYMBOL1 / EXCHANGE1:SYMBOL2" // Replace first occurrence of "EXCHANGE1" with "EXCHANGE2" replacement string var newSource = str.replace(source, "EXCHANGE1", "EXCHANGE2", 0) if barstate.islastconfirmedhistory // Display "EXCHANGE2:SYMBOL1 / EXCHANGE1:SYMBOL2" runtime.log(newSource)

Trả giá trị
Loại chuỗi đã xử lý

tham số

  • source(series string) chuỗi nguồn
  • target(series string) được thay thế bằng một chuỗi
  • replacement(series string) String được chèn thay vì String mục đích.
  • occurrence(series int) Dãy mục tiêu để thay thế là một chỉ mục phù hợp xuất hiện trong chuỗi nguồn. Chỉ mục phù hợp đầu tiên bắt đầu từ 0.

Xem thêm
str.replace_all str.match

str.replace_all

Dùng thay thế chuỗi để thay thế chuỗi mục tiêu xuất hiện mỗi lần trong chuỗi nguồn.

str.replace_all(source, target, replacement)

Trả giá trị
Loại chuỗi đã xử lý

tham số

  • source(series string) chuỗi nguồn
  • target(series string) được thay thế bằng một chuỗi
  • replacement(series string) Mỗi lần xuất hiện một chuỗi mục tiêu sẽ thay thế một chuỗi

str.split

Chia chuỗi thành một mảng chuỗi con và trả về ID mảng của nó.

str.split(string, separator)

Trả giá trị
ID của mảng chuỗi

tham số

  • string(series string) chuỗi nguồn
  • separator(series string) Một chuỗi phân chia mỗi chuỗi con.

str.tostring

str.tostring(value)
str.tostring(value, format)
str.tostring(value[])
str.tostring(value[], format)

Trả giá trị
valueCác tham số trong một chuỗi biểu thị dạng ▽.
NếuvalueCác tham số là một chuỗi và sẽ được trả về như ban đầu.
KhivalueKhi na, hàm trả về chuỗi NaN<unk>.

tham số

  • value (series int/float/bool/string/int[]/float[]/bool[]/string[]) Các phần tử được chuyển thành giá trị của chuỗi hoặc ID của mảng.
  • format (series string) Format string. Accepts these format.* constants: format.mintick, format.percent, format.volume. Optional. The default value is '#.##########'.

Ghi chú
Các định dạng có giá trị floating point cũng sẽ xoay quanh các giá trị này khi cần thiết, ví dụ str.tostring ((3.99, '#') sẽ trả về str4 <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk>
Để hiển thị số không, hãy sử dụng '0' thay vì '#'. Ví dụ: '#.000'.
Khi sử dụng format.mintick, giá trị này sẽ được xoay quanh đến số gần nhất có thể được chia bằng syminfo.mintick mà không có số dư. Các chuỗi được trả về có số 0 đi kèm.
Nếu tham số x là một chuỗi, nó sẽ trả về các giá trị chuỗi tương tự.
Các tham số kiểu Bool trả về true hoặc false.
Khi x là na, hàm trả về <unk>NaN<unk>。

color

color.new

Màu chức năng sẽ chỉ định độ minh bạch được áp dụng cho màu sắc đã cho.

color.new(color, transp)

Ví dụ

pine
plot(close, color=color.new(color.red, 50))

Trả giá trị
Màu sắc có độ minh bạch nhất định.

tham số

  • color (series color)
  • transp(series int/float) Các giá trị có thể dùng là từ 0 (bất minh) đến 100 (không thể nhìn thấy)

Ghi chú
Việc sử dụng một số lượng lớn các tham số (ví dụ, <unk>simple<unk>, <unk>input<unk> hoặc <unk>series<unk>) sẽ ảnh hưởng đến màu sắc hiển thị trong trang thẻ cài đặt/phong cách của phím kịch bản. Xin xem hướng dẫn sử dụng để biết thêm thông tin.

color.rgb

Sử dụng mô hình màu RGB để tạo màu mới với tính minh bạch.

color.rgb(red, green, blue, transp)

Ví dụ

pine
plot(close, color=color.rgb(255, 0, 0, 50))

Trả giá trị
Màu sắc có độ minh bạch nhất định.

tham số

  • red(series int/float) Màu đỏ. Các giá trị có thể là từ 0 đến 255
  • green(series int/float) Màu xanh. Các giá trị có thể là từ 0 đến 255
  • blue(series int/float) Màu xanh. Các giá trị có thể là từ 0 đến 255
  • transp(series int/float) tùy chọn. Màu sắc trong suốt. Các giá trị có thể từ 0 (không trong suốt) đến 100 (thông minh).

Ghi chú
Việc sử dụng một số lượng lớn các tham số (ví dụ, <unk>simple<unk>, <unk>input<unk> hoặc <unk>series<unk>) sẽ ảnh hưởng đến màu sắc hiển thị trong trang thẻ cài đặt/phong cách của phím kịch bản. Xin xem hướng dẫn sử dụng để biết thêm thông tin.

runtime

runtime.debug

Ghi thông tin biến trên bàn điều khiển.

FMZ PINE có một chức năng riêng.runtime.debug(value), chỉ có một tham số.

runtime.log

Xuất bản trong nhật ký.

FMZ PINE có một chức năng riêng.runtime.log(1, 2, 3, close, high, ...), có thể truyền nhiều tham số.

runtime.error

Khi được gọi, nó sẽ gây ra lỗi chạy và mang theomessageThông báo lỗi được chỉ định trong tham số.

runtime.error(message)

tham số
message (series string) thông báo sai

input

input

Input được thêm vào trang thẻ Input của cài đặt kịch bản, nó cho phép bạn cung cấp các tùy chọn cấu hình cho người dùng kịch bản. Chức năng này tự động phát hiện các loại tham số được sử dụng cho hàm defval và sử dụng plugin Input tương ứng.

input(defval, title, tooltip, inline, group)
input(defval, title, inline, group, tooltip)

Ví dụ

pine
i_switch = input(true, "On/Off") // 设置true,默认勾选 plot(i_switch ? open : na) i_len = input(7, "Length") i_src = input(close, "Source") // 下拉框,默认选择close plot(ta.sma(i_src, i_len)) i_col = input(color.red, "Plot Color") plot(close, color=i_col) i_text = input("Hello!", "Message") runtime.log(i_text)

Trả giá trị
Nhập giá trị của biến

tham số

  • defval(const int/float/bool/string/color or source-type built-ins) Xác định giá trị mặc định của biến đầu vào được đề xuất trong trang cài đặt thùng / thẻ thùng đầu vào của kịch bản, từ đó người dùng kịch bản có thể thay đổi nó. Chức năng tích hợp kiểu nguồn là một biến nổi tích hợp trong chuỗi của nguồn tính toán được chỉ định:closehlc3Thêm nữa.
  • title(const string) tiêu đề nhập. Nếu không được chỉ định, tên biến sẽ được sử dụng làm tiêu đề nhập. Nếu tiêu đề được chỉ định nhưng tiêu đề trống, tên sẽ là chuỗi trống.
  • tooltip(const string) Dãy ký tự này sẽ được hiển thị cho người dùng khi chuột treo trên biểu tượng gợi ý công cụ.
  • inline(const string) sử dụng cùng một tham số trong một dòng để kết hợp tất cả các cuộc gọi đầu vào. Không hiển thị chuỗi được sử dụng làm tham số. Nó chỉ được sử dụng để nhận dạng đầu vào thuộc cùng một dòng.
  • group(const string) Sử dụng cùng một chuỗi số tham số để tạo tiêu đề trên tất cả các đầu vào. Dòng này cũng được sử dụng làm văn bản của tiêu đề.

Ghi chú
Giá trị trả về của hàm input luôn được phân bổ cho biến. Xem ví dụ trên

Xem thêm
input.bool input.color input.int input.float input.string input.timeframe input.source

input.source

Thêm input vào trang thẻ đầu vào của cài đặt kịch bản, nó cho phép bạn cung cấp các tùy chọn cấu hình cho người dùng kịch bản. Tính năng này đã thêm một menu thả xuống cho phép người dùng chọn nguồn tính toán, chẳng hạn như close, hl2 v.v. Nếu kịch bản chỉ có một cuộc gọi input.source (), người dùng cũng có thể chọn một chỉ số khác trên biểu đồ làm nguồn đầu ra.

input.source(defval, title, tooltip, inline, group)

Ví dụ

pine
i_src = input.source(close, "Source") plot(i_src)

Trả giá trị
Nhập giá trị của biến

tham số

  • defval(series int/float) Xác định giá trị mặc định của biến đầu vào được đề xuất trong trang thẻ cài đặt thùng / thùng đầu vào của kịch bản, từ đó người dùng có thể thay đổi nó.
  • title(const string) tiêu đề nhập. Nếu không được chỉ định, tên biến sẽ được sử dụng làm tiêu đề nhập. Nếu tiêu đề được chỉ định nhưng tiêu đề trống, tên sẽ là chuỗi trống.
  • tooltip(const string) Dãy ký tự này sẽ được hiển thị cho người dùng khi chuột treo trên biểu tượng gợi ý công cụ.
  • inline(const string) sử dụng cùng một tham số trong một dòng để kết hợp tất cả các cuộc gọi đầu vào. Không hiển thị chuỗi được sử dụng làm tham số. Nó chỉ được sử dụng để nhận dạng đầu vào thuộc cùng một dòng.
  • group(const string) Sử dụng cùng một chuỗi số tham số để tạo tiêu đề trên tất cả các đầu vào. Dòng này cũng được sử dụng làm văn bản của tiêu đề.

Ghi chú
Kết quả của hàm input.source luôn luôn được phân bổ cho một biến, xem ví dụ trên.

Xem thêm
input.bool input.int input.float input.string input.timeframe input.color input

input.string

Input cho phép bạn cung cấp các tùy chọn cấu hình cho người dùng kịch bản. Chức năng này sẽ thêm các trường nhập chuỗi vào đầu vào của kịch bản.

input.string(defval, title, options, tooltip, inline, group, confirm)

Ví dụ

pine
i_text = input.string("Hello!", "Message") runtime.log(i_text)

Trả giá trị
Nhập giá trị của biến

tham số

  • defval(const string) Xác định giá trị mặc định của một biến đầu vào được đề xuất trong trang cài đặt hộp thoại / thẻ hộp thoại đầu vào của kịch bản, từ đó người dùng có thể thay đổi nó. Khi danh sách giá trị tương ứng vớioptionsKhi các tham số được sử dụng cùng nhau, giá trị này phải là một trong số chúng.
  • title(const string) tiêu đề nhập. Nếu không được chỉ định, tên biến sẽ được sử dụng làm tiêu đề nhập. Nếu tiêu đề được chỉ định nhưng tiêu đề trống, tên sẽ là chuỗi trống.
  • options (List of constants: [<type>...]) Danh sách các tùy chọn có thể chọn.
  • tooltip(const string) Dãy ký tự này sẽ được hiển thị cho người dùng khi chuột treo trên biểu tượng gợi ý công cụ.
  • inline(const string) sử dụng cùng một tham số trong một dòng để kết hợp tất cả các cuộc gọi đầu vào. Không hiển thị chuỗi được sử dụng làm tham số. Nó chỉ được sử dụng để nhận dạng đầu vào thuộc cùng một dòng.
  • group(const string) Sử dụng cùng một chuỗi số tham số để tạo tiêu đề trên tất cả các đầu vào. Dòng này cũng được sử dụng làm văn bản của tiêu đề.
  • confirm(const bool) Nếu true, thì trước khi thêm chỉ số vào biểu đồ, người dùng sẽ được yêu cầu xác nhận giá trị nhập.

Ghi chú
Kết quả của hàm input.string luôn luôn được phân bổ cho một biến, xem ví dụ trên.

Xem thêm
input.bool input.int input.float input.timeframe input.source input.color input

input.bool

Thêm input vào trang thẻ input của cài đặt kịch bản, nó cho phép bạn cung cấp tùy chọn cấu hình cho người dùng kịch bản. Chức năng này sẽ thêm dấu chọn vào đầu vào của kịch bản.

input.bool(defval, title, tooltip, inline, group, confirm)

Ví dụ

pine
i_switch = input.bool(true, "On/Off") plot(i_switch ? open : na)

Trả giá trị
Nhập giá trị của biến

tham số

  • defval(const bool) Xác định giá trị mặc định của biến đầu vào được đề xuất trong trang thẻ cài đặt hộp thoại / hộp thoại đầu vào của kịch bản, từ đó người dùng có thể thay đổi nó.
  • title(const string) tiêu đề nhập. Nếu không được chỉ định, tên biến sẽ được sử dụng làm tiêu đề nhập. Nếu tiêu đề được chỉ định nhưng tiêu đề trống, tên sẽ là chuỗi trống.
  • tooltip(const string) Dãy ký tự này sẽ được hiển thị cho người dùng khi chuột treo trên biểu tượng gợi ý công cụ.
  • inline(const string) sử dụng cùng một tham số trong một dòng để kết hợp tất cả các cuộc gọi đầu vào. Không hiển thị chuỗi được sử dụng làm tham số. Nó chỉ được sử dụng để nhận dạng đầu vào thuộc cùng một dòng.
  • group(const string) Sử dụng cùng một chuỗi số tham số để tạo tiêu đề trên tất cả các đầu vào. Dòng này cũng được sử dụng làm văn bản của tiêu đề.
  • confirm(const bool) Nếu true, thì trước khi thêm chỉ số vào biểu đồ, người dùng sẽ được yêu cầu xác nhận giá trị nhập.

Ghi chú
Kết quả của hàm input.bool luôn luôn được phân bổ cho một biến, xem ví dụ trên.

Xem thêm
input.int input.float input.string input.timeframe input.source input.color input

input.int

Thêm input vào trang thẻ input của cài đặt kịch bản, nó cho phép bạn cung cấp tùy chọn cấu hình cho người dùng kịch bản. Chức năng này sẽ thêm trường nhập số nguyên vào đầu vào của kịch bản.

input.int(defval, title, minval, maxval, step, tooltip, inline, group, confirm)
input.int(defval, title, options, tooltip, inline, group, confirm)

Ví dụ

pine
i_len1 = input.int(10, "Length 1", minval=5, maxval=21, step=1) plot(ta.sma(close, i_len1)) i_len2 = input.int(10, "Length 2", options=[5, 10, 21]) plot(ta.sma(close, i_len2))

Trả giá trị
Nhập giá trị của biến

tham số

  • defval(const int) Xác định giá trị mặc định của biến đầu vào được đề xuất trong trang thẻ cài đặt hộp / hộp đầu vào của kịch bản, từ đó người dùng kịch bản có thể thay đổi nó.optionsKhi các tham số được sử dụng cùng nhau, giá trị này phải là một trong số chúng.
  • title(const string) tiêu đề nhập. Nếu không được chỉ định, tên biến sẽ được sử dụng làm tiêu đề nhập. Nếu tiêu đề được chỉ định nhưng tiêu đề trống, tên sẽ là chuỗi trống.
  • minval(const int) Giá trị tối thiểu có thể của biến nhập ◦ tùy chọn ◦
  • maxval(const int) Giá trị tối đa có thể của biến nhập ◦ tùy chọn ◦
  • step(const int) Giá trị chiều dài bước để tăng/giảm đầu vào.
  • options (tuple of const int values: [val1, val2, ...]) Một danh sách các tùy chọn được chọn từ menu thả xuống, được tách bằng dấu chấm và bao quanh bằng dấu ngoặc kép:[val1, val2, ...] ≠ không được sử dụng khi dùng tham số nàyminvalmaxvalstepCác tham số.
  • tooltip(const string) Dãy ký tự này sẽ được hiển thị cho người dùng khi chuột treo trên biểu tượng gợi ý công cụ.
  • inline(const string) sử dụng cùng một tham số trong một dòng để kết hợp tất cả các cuộc gọi đầu vào. Không hiển thị chuỗi được sử dụng làm tham số. Nó chỉ được sử dụng để nhận dạng đầu vào thuộc cùng một dòng.
  • group(const string) Sử dụng cùng một chuỗi số tham số để tạo tiêu đề trên tất cả các đầu vào. Dòng này cũng được sử dụng làm văn bản của tiêu đề.
  • confirm(const bool) Nếu true, thì trước khi thêm chỉ số vào biểu đồ, người dùng sẽ được yêu cầu xác nhận giá trị nhập.

Ghi chú
Kết quả của hàm input.int luôn luôn được phân bổ cho một biến, xem ví dụ trên.

Xem thêm
input.bool input.float input.string input.timeframe input.source input.color input

input.float

Thêm input vào trang thẻ input của cài đặt kịch bản, nó cho phép bạn cung cấp tùy chọn cấu hình cho người dùng kịch bản. Chức năng này sẽ thêm một trường nhập điểm nổi vào đầu vào của kịch bản.

input.float(defval, title, minval, maxval, step, tooltip, inline, group, confirm)
input.float(defval, title, options, tooltip, inline, group, confirm)

Ví dụ

pine
i_angle1 = input.float(0.5, "Sin Angle", minval=-3.14, maxval=3.14, step=0.02) plot(math.sin(i_angle1) > 0 ? close : open, "sin", color=color.green) i_angle2 = input.float(0, "Cos Angle", options=[-3.14, -1.57, 0, 1.57, 3.14]) plot(math.cos(i_angle2) > 0 ? close : open, "cos", color=color.red)

Trả giá trị
Nhập giá trị của biến

tham số

  • defval(const int/float) Xác định giá trị mặc định cho các biến đầu vào được đề xuất trong trang cài đặt thùng / thẻ thùng đầu vào của kịch bản, từ đó người dùng kịch bản có thể thay đổi nó.optionsKhi các tham số được sử dụng cùng nhau, giá trị này phải là một trong số chúng.
  • title(const string) tiêu đề nhập. Nếu không được chỉ định, tên biến sẽ được sử dụng làm tiêu đề nhập. Nếu tiêu đề được chỉ định nhưng tiêu đề trống, tên sẽ là chuỗi trống.
  • minval(const int/float) Giá trị tối thiểu có thể cho biến nhập 。 tùy chọn 。
  • maxval(const int/float) Giá trị tối đa có thể của biến nhập 。 tùy chọn 。
  • step(const int/float) dùng để tăng/giảm bước dài của đầu vào.
  • options (tuple of const int/float values: [val1, val2, ...]) Một danh sách các tùy chọn được chọn từ menu thả xuống, được tách bằng dấu chấm và bao quanh bằng dấu ngoặc kép:[val1, val2, ...] ≠ không được sử dụng khi dùng tham số nàyminvalmaxvalstepCác tham số.
  • tooltip(const string) Dãy ký tự này sẽ được hiển thị cho người dùng khi chuột treo trên biểu tượng gợi ý công cụ.
  • inline(const string) sử dụng cùng một tham số trong một dòng để kết hợp tất cả các cuộc gọi đầu vào. Không hiển thị chuỗi được sử dụng làm tham số. Nó chỉ được sử dụng để nhận dạng đầu vào thuộc cùng một dòng.
  • group(const string) Sử dụng cùng một chuỗi số tham số để tạo tiêu đề trên tất cả các đầu vào. Dòng này cũng được sử dụng làm văn bản của tiêu đề.
  • confirm(const bool) Nếu true, thì trước khi thêm chỉ số vào biểu đồ, người dùng sẽ được yêu cầu xác nhận giá trị nhập.

Ghi chú
Kết quả của hàm input.float luôn luôn được phân bổ cho một biến, xem ví dụ trên.

Xem thêm
input.bool input.int input.string input.timeframe input.source input.color input

input.color

Thêm input vào trang thẻ đầu vào của cài đặt kịch bản, nó cho phép bạn cung cấp tùy chọn cấu hình cho người dùng kịch bản. Chức năng này đã thêm một bộ chọn màu, cho phép người dùng chọn màu sắc và độ minh bạch từ bảng màu hoặc giá trị mười sáu chữ số.

input.color(defval, title, tooltip, inline, group, confirm)

Ví dụ

pine
i_col = input.color(color.red, "Plot Color") plot(close, color=i_col)

Trả giá trị
Nhập giá trị của biến

tham số

  • defval(const color) Xác định giá trị mặc định của các biến đầu vào được đề xuất trong trang thẻ cài đặt / đầu vào của kịch bản, người dùng có thể thay đổi nó.
  • title(const string) tiêu đề nhập. Nếu không được chỉ định, tên biến sẽ được sử dụng làm tiêu đề nhập. Nếu tiêu đề được chỉ định nhưng tiêu đề trống, tên sẽ là chuỗi trống.
  • tooltip(const string) Dãy ký tự này sẽ được hiển thị cho người dùng khi chuột treo trên biểu tượng gợi ý công cụ.
  • inline(const string) sử dụng cùng một tham số trong một dòng để kết hợp tất cả các cuộc gọi đầu vào. Không hiển thị chuỗi được sử dụng làm tham số. Nó chỉ được sử dụng để nhận dạng đầu vào thuộc cùng một dòng.
  • group(const string) Sử dụng cùng một chuỗi số tham số để tạo tiêu đề trên tất cả các đầu vào. Dòng này cũng được sử dụng làm văn bản của tiêu đề.
  • confirm(const bool) Nếu true, thì trước khi thêm chỉ số vào biểu đồ, người dùng sẽ được yêu cầu xác nhận giá trị nhập.

Ghi chú
Kết quả của hàm input.color luôn luôn được phân bổ cho một biến, xem ví dụ trên.

Xem thêm
input.bool input.int input.float input.string input.timeframe input.source input

input.price

Thêm đầu vào giá vào trang thẻ cài đặt / đầu vào của tập lệnh của kịch bản.confirm = trueKích hoạt chế độ nhập tương tác, chọn giá bằng cách nhấp vào biểu đồ.

input.price(defval, title, tooltip, inline, group, confirm)

Ví dụ

pine
price1 = input.price(title="Date", defval=42) plot(price1) price2 = input.price(54, title="Date") plot(price2)

Trả giá trị
Nhập giá trị của biến

tham số

  • defval(const int/float) Xác định giá trị mặc định của biến đầu vào được đề xuất trong trang thẻ cài đặt thùng / thùng đầu vào của kịch bản, từ đó người dùng có thể thay đổi nó.
  • title(const string) tiêu đề nhập. Nếu không được chỉ định, tên biến sẽ được sử dụng làm tiêu đề nhập. Nếu tiêu đề được chỉ định nhưng tiêu đề trống, tên sẽ là chuỗi trống.
  • tooltip(const string) Dãy ký tự này sẽ được hiển thị cho người dùng khi chuột treo trên biểu tượng gợi ý công cụ.
  • inline(const string) sử dụng cùng một tham số trong một dòng để kết hợp tất cả các cuộc gọi đầu vào. Không hiển thị chuỗi được sử dụng làm tham số. Nó chỉ được sử dụng để nhận dạng đầu vào thuộc cùng một dòng.
  • group(const string) Sử dụng cùng một chuỗi số tham số để tạo tiêu đề trên tất cả các đầu vào. Dòng này cũng được sử dụng làm văn bản của tiêu đề.
  • confirm(const bool) Nếu true, kích hoạt chế độ nhập tương tác và hoàn thành lựa chọn bằng cách nhấp vào biểu đồ khi thêm chỉ số vào biểu đồ, hoặc bằng cách chọn chỉ số và sau đó di chuyển lựa chọn.

Ghi chú
Khi sử dụng phương thức tương tác, nếu hai hàm được gọi với nhauinlineCác tham số sử dụng cùng một tham số, bạn có thể kết hợp nhập thời gian với nhập giá.

Xem thêm
input.bool input.int input.float input.string input.resolution input.source input.color input

input.timeframe

Thêm input vào trang thẻ đầu vào của cài đặt kịch bản, nó cho phép bạn cung cấp tùy chọn cấu hình cho người dùng kịch bản. Chức năng này thêm một danh sách kéo xuống, cho phép người dùng chọn một khoảng thời gian cụ thể thông qua bộ chọn chu kỳ thời gian và trả về nó như một chuỗi. Bộ chọn bao gồm các khoảng thời gian tùy chỉnh mà người dùng có thể sử dụng trong biểu đồ.

input.timeframe(defval, title, options, tooltip, inline, group, confirm)

Ví dụ

pine
i_res = input.timeframe('D', "Resolution", options=['D', 'W', 'M']) s = request.security(syminfo.tickerid, i_res, close) plot(s)

Trả giá trị
Nhập giá trị của biến

tham số

  • defval(const string) Xác định giá trị mặc định của một biến đầu vào được đề xuất trong trang cài đặt hộp thoại / thẻ hộp thoại đầu vào của kịch bản, từ đó người dùng có thể thay đổi nó. Khi danh sách giá trị tương ứng vớioptionsKhi các tham số được sử dụng cùng nhau, giá trị này phải là một trong số chúng.
  • title(const string) tiêu đề nhập. Nếu không được chỉ định, tên biến sẽ được sử dụng làm tiêu đề nhập. Nếu tiêu đề được chỉ định nhưng tiêu đề trống, tên sẽ là chuỗi trống.
  • options (tuple of const string values: [val1, val2, ...]) Danh sách các tùy chọn có thể lựa chọn.
  • tooltip(const string) Dãy ký tự này sẽ được hiển thị cho người dùng khi chuột treo trên biểu tượng gợi ý công cụ.
  • inline(const string) sử dụng cùng một tham số trong một dòng để kết hợp tất cả các cuộc gọi đầu vào. Không hiển thị chuỗi được sử dụng làm tham số. Nó chỉ được sử dụng để nhận dạng đầu vào thuộc cùng một dòng.
  • group(const string) Sử dụng cùng một chuỗi số tham số để tạo tiêu đề trên tất cả các đầu vào. Dòng này cũng được sử dụng làm văn bản của tiêu đề.
  • confirm(const bool) Nếu true, thì trước khi thêm chỉ số vào biểu đồ, người dùng sẽ được yêu cầu xác nhận giá trị nhập.

Ghi chú
Kết quả của hàm input.timeframe luôn luôn được phân bổ cho một biến, xem ví dụ trên.

Xem thêm
input.bool input.int input.float input.string input.source input.color input

input.integer

Không có

input.resolution

Không có

ta

ta.alma

Arnaud Legoux Moving Average. Nó sử dụng phân bố Gaussian như là trọng lượng của moving average.

ta.alma(series, length, offset, sigma)
ta.alma(series, length, offset, sigma, floor)

Ví dụ

pine
plot(ta.alma(close, 9, 0.85, 6)) // same on pine, but much less efficient pine_alma(series, windowsize, offset, sigma) => m = offset * (windowsize - 1) //m = math.floor(offset * (windowsize - 1)) // Used as m when math.floor=true s = windowsize / sigma norm = 0.0 sum = 0.0 for i = 0 to windowsize - 1 weight = math.exp(-1 * math.pow(i - m, 2) / (2 * math.pow(s, 2))) norm := norm + weight sum := sum + series[windowsize - i - 1] * weight sum / norm plot(pine_alma(close, 9, 0.85, 6))

Trả giá trị
Arnaud Legoux trung bình di chuyển

tham số

  • series(series int/float) Các giá trị của series đang được thực hiện.
  • length(series int) K số dòng (dài).
  • offset(simple int/float) Kiểm soát sự cân bằng giữa độ mịn ((gần 1) và độ đáp ứng ((gần 0)).
  • sigma(simple int/float) Thay đổi độ mịn của ALMA.
  • floor(simple bool) tham số tùy chọn. Trước khi tính toán ALMA, hãy chỉ định liệu tính toán độ lệch có phải là giới hạn thấp không. Giá trị mặc định là false.

Xem thêm
ta.sma ta.ema ta.rma ta.wma ta.vwma ta.swma

ta.sma

Chức năng sma trả về giá trị trung bình di chuyển, tức là giá trị y cuối cùng của x, chia cho y。

ta.sma(source, length)

Ví dụ

pine
plot(ta.sma(close, 15)) // same on pine, but much less efficient pine_sma(x, y) => sum = 0.0 for i = 0 to y - 1 sum := sum + x[i] / y sum plot(pine_sma(close, 15))

Trả giá trị
lengthK-đường trả vềsourceĐường trung bình di chuyển đơn giản.

tham số

  • source(series int/float) Các giá trị của series đang được thực hiện.
  • length(series int) K số dòng (dài).

Xem thêm
ta.ema ta.rma ta.wma ta.vwma ta.swma ta.alma

ta.cog

Cogn () là một chỉ số dựa trên thống kê và tỷ lệ vàng Fibonacci.

ta.cog(source, length)

Ví dụ

pine
plot(ta.cog(close, 10)) // the same on pine pine_cog(source, length) => sum = math.sum(source, length) num = 0.0 for i = 0 to length - 1 price = source[i] num := num + price * (i + 1) -num / sum plot(pine_cog(close, 10))

Trả giá trị
Trọng tâm

tham số

  • source(series int/float) Các giá trị của series đang được thực hiện.
  • length(series int) K số dòng (dài).

Xem thêm
ta.stoch

ta.dev

Sự khác biệt giữa chuỗi đo và ta.sma

ta.dev(source, length)

Ví dụ

pine
plot(ta.dev(close, 10)) // the same on pine pine_dev(source, length) => mean = ta.sma(source, length) sum = 0.0 for i = 0 to length - 1 val = source[i] sum := sum + math.abs(val - mean) dev = sum/length plot(pine_dev(close, 10))

Trả giá trị
lengthK-đường trả vềsourcePhân biệt.

tham số

  • source(series int/float) Các giá trị của series đang được thực hiện.
  • length(series int) K số dòng (dài).

Xem thêm
ta.variance ta.stdev

ta.stdev

ta.stdev(source, length, biased)

Ví dụ

pine
plot(ta.stdev(close, 5)) //the same on pine isZero(val, eps) => math.abs(val) <= eps SUM(fst, snd) => EPS = 1e-10 res = fst + snd if isZero(res, EPS) res := 0 else if not isZero(res, 1e-4) res := res else 15 pine_stdev(src, length) => avg = ta.sma(src, length) sumOfSquareDeviations = 0.0 for i = 0 to length - 1 sum = SUM(src[i], -avg) sumOfSquareDeviations := sumOfSquareDeviations + sum * sum stdev = math.sqrt(sumOfSquareDeviations / length) plot(pine_stdev(close, 5))

Trả giá trị
Tiêu chuẩn kém

tham số

  • source(series int/float) Các giá trị của series đang được thực hiện.
  • length(series int) K số dòng (dài).
  • biased(series bool) xác định ước tính nào nên được sử dụng.

Ghi chú
NếubiasedNếu true, hàm sẽ sử dụng ước tính có thiên vị cho toàn bộ tổng thể để tính toán, và nếu false - ước tính không thiên vị cho mẫu.

Xem thêm
ta.dev ta.variance

ta.ema

Chức năng ema trả về đường trung bình di chuyển có trọng số. Trong ema, nhân trọng số giảm theo chỉ số. Nó được tính bằng công thức sau: EMA = alpha * source + (1 - alpha) * EMA[1], trong đó alpha = 2 / (length + 1) 。

ta.ema(source, length)

Ví dụ

pine
plot(ta.ema(close, 15)) //the same on pine pine_ema(src, length) => alpha = 2 / (length + 1) sum = 0.0 sum := na(sum[1]) ? src : alpha * src + (1 - alpha) * nz(sum[1]) plot(pine_ema(close,15))

Trả giá trị
sourceChỉ số di chuyển trung bình, alpha = 2 / (chiều dài + 1) ◦

tham số

  • source(series int/float) Các giá trị của series đang được thực hiện.
  • length(simple int) K số dòng (longitude).

Ghi chú
Xin lưu ý rằng việc sử dụng biến số/chức năng này có thể dẫn đến việc vẽ lại chỉ số.

Xem thêm
ta.sma ta.rma ta.wma ta.vwma ta.swma ta.alma

ta.wma

Phương thức wma trả vềlengthDòng K.sourceTrong wma, nhân trọng lượng giảm theo cấp số toán học.

ta.wma(source, length)

Ví dụ

pine
plot(ta.wma(close, 15)) // same on pine, but much less efficient pine_wma(x, y) => norm = 0.0 sum = 0.0 for i = 0 to y - 1 weight = (y - i) * y norm := norm + weight sum := sum + x[i] * weight sum / norm plot(pine_wma(close, 15))

Trả giá trị
lengthK-đường trả vềsourceĐường trung bình di chuyển có trọng lượng.

tham số

  • source(series int/float) Các giá trị của series đang được thực hiện.
  • length(series int) K số dòng (dài).

Xem thêm
ta.sma ta.ema ta.rma ta.vwma ta.swma ta.alma

ta.swma

Tỷ lệ trung bình di chuyển cân đối đối trọng với độ dài cố định là 4: trọng lượng:[1/6,2 / 6,2 / 6,1 / 6]。

ta.swma(source)

Ví dụ

pine
plot(ta.swma(close)) // same on pine, but less efficient pine_swma(x) => x[3] * 1 / 6 + x[2] * 2 / 6 + x[1] * 2 / 6 + x[0] * 1 / 6 plot(pine_swma(close))

Trả giá trị
Đường trung bình di chuyển cân đối đối.

tham số

  • source(series int/float) Dòng nguồn

Xem thêm
ta.sma ta.ema ta.rma ta.wma ta.vwma ta.alma

ta.hma

HMA của hàm hma trả về đường trung bình di chuyển của thân tàu HMA <unk>.

ta.hma(source, length)

Ví dụ

pine
src = input(defval=close, title="Source") length = input(defval=9, title="Length") hmaBuildIn = ta.hma(src, length) plot(hmaBuildIn, title="Hull MA", color=#674EA7)

Trả giá trị
Hull Moving Average của 'source' trong cột 'length'

tham số

  • source(series int/float) Các giá trị của series đang được thực hiện.
  • length(simple int) K số dòng

Xem thêm
ta.ema ta.rma ta.wma ta.vwma ta.sma

ta.rma

Đường trung bình di chuyển được sử dụng trong RSI. Nó là đường trung bình di chuyển có trọng số, giá trị trọng số alpha = 1 / chiều dài.

ta.rma(source, length)

Ví dụ

pine
plot(ta.rma(close, 15)) //the same on pine pine_rma(src, length) => alpha = 1/length sum = 0.0 sum := na(sum[1]) ? ta.sma(src, length) : alpha * src + (1 - alpha) * nz(sum[1]) plot(pine_rma(close, 15))

Trả giá trị
sourceChỉ số di chuyển trung bình, alpha = 1 /length

tham số

  • source(series int/float) Các giá trị của series đang được thực hiện.
  • length(simple int) K số dòng (longitude).

Xem thêm
ta.sma ta.ema ta.wma ta.vwma ta.swma ta.alma ta.rsi

ta.rsi

Chỉ số cường độ tương đối. Nó được sử dụng trong cuối cùng.lengthK trên đườngsourcecủa sự thay đổi lên và xuống củata.rma()Tính toán.

ta.rsi(source, length)

Ví dụ

pine
plot(ta.rsi(close, 7)) // same on pine, but less efficient pine_rsi(x, y) => u = math.max(x - x[1], 0) // upward ta.change d = math.max(x[1] - x, 0) // downward ta.change rs = ta.rma(u, y) / ta.rma(d, y) res = 100 - 100 / (1 + rs) res plot(pine_rsi(close, 7))

Trả giá trị
Chỉ số tương đối mạnh (RSI)

tham số

  • source(series int/float) Các giá trị của series đang được thực hiện.
  • length(simple int) K số dòng (longitude).

Xem thêm
ta.rma

ta.tsi

Chỉ số sức mạnh thực sự. Nó sử dụng các công cụ tài chính động cơ tiềm năng của trung bình di chuyển.

ta.tsi(source, short_length, long_length)

Trả giá trị
Chỉ số sức mạnh thực sự.[Giá trị trong -1,1]

tham số

  • source(series int/float) Dòng nguồn
  • short_length(simple int) Độ dài ngắn.
  • long_length(simple int) Độ dài của dòng dài。

ta.roc

Chức năng roc (thay đổi tỷ lệ) hiển thị.sourceGiá trị hiện tại củasourceVài ngày trước.lengthSự khác biệt giữa các giá trị
Tính toán bằng công thức sau: 100 * change(src, length) / src[length]。

ta.roc(source, length)

Trả giá trị
lengthK-đường trả vềsourceTỷ lệ thay đổi

tham số

  • source(series int/float) Các giá trị của series đang được thực hiện.
  • length(series int) K số dòng (dài).

ta.range

Trả về sự khác biệt giữa giá trị tối thiểu và giá trị tối đa trong chuỗi.

ta.range(source, length)

Trả giá trị
Sự khác biệt giữa giá trị tối thiểu và giá trị tối đa trong chuỗi.

tham số

  • source(series int/float) Các giá trị của series đang được thực hiện.
  • length(series int) K số dòng (dài).

ta.macd

MACD (Moving Average Asymmetric Average): Nó cho thấy sự thay đổi về sức mạnh, hướng, động lực và thời gian của xu hướng giá cổ phiếu.

ta.macd(source, fastlen, slowlen, siglen)

Ví dụ

pine
[macdLine, signalLine, histLine] = ta.macd(close, 12, 26, 9) plot(macdLine, color=color.blue) plot(signalLine, color=color.orange) plot(histLine, color=color.red, style=plot.style_histogram)

Nếu bạn chỉ cần một giá trị, hãy sử dụng dấu chấm như '_':

Ví dụ

pine
[_, signalLine, _] = ta.macd(close, 12, 26, 9) plot(signalLine, color=color.orange)

Trả giá trị
Ba mô-đun của chuỗi MACD: đường MACD, đường tín hiệu và đường đồ thị thẳng.

tham số

  • source(series int/float) Các giá trị của series đang được thực hiện.
  • fastlen(simple int) tham số dòng nhanh
  • slowlen(simple int) tham số chiều dài chậm <unk>
  • siglen(simple int) tham số chiều dài tín hiệu ▽

Xem thêm
ta.sma ta.ema

ta.mode

Phương thức trả về chuỗi. Nếu có nhiều giá trị có cùng tần số, trả về giá trị tối thiểu.

ta.mode(source, length)

Trả giá trị
Mô hình của chuỗi.

tham số

  • source(series int/float) Các giá trị của series đang được thực hiện.
  • length(series int) K số dòng (dài).

ta.median

Trả về số trung bình của chuỗi.

ta.median(source, length)

Trả giá trị
Số trung bình của chuỗi.

tham số

  • source(series int/float) Các giá trị của series đang được thực hiện.
  • length(series int) K số dòng (dài).

ta.linreg

Đường cong hồi quy tuyến tính. Một đường cong phù hợp nhất với giá được chỉ định trong khoảng thời gian được định nghĩa bởi người dùng. Nó được tính bằng cách sử dụng phép nhân đôi nhỏ nhất. Kết quả của hàm này được tính bằng công thức sau: linreg = intercept + slope * (length - 1 - offset), trong đó intercept và slope được sử dụngsourceGiá trị tính toán của phép nhân nhị phân nhỏ nhất của chuỗi.

ta.linreg(source, length, offset)

Trả giá trị
Đường cong hồi quy tuyến tính

tham số

  • source(series int/float) Dòng nguồn
  • length (series int)
  • offset(simple int) lệch

ta.bb

Brinband. Brinband là một công cụ phân tích kỹ thuật được xác định bởi một tập hợp các đường, các đường này cách xa giá chứng khoán với đường trung bình di chuyển đơn giản (SMA) hai độ lệch chuẩn (chính và tiêu cực), nhưng có thể được điều chỉnh theo sở thích của người dùng.

ta.bb(series, length, mult)

Ví dụ

pine
[middle, upper, lower] = ta.bb(close, 5, 4) plot(middle, color=color.yellow) plot(upper, color=color.yellow) plot(lower, color=color.yellow) // the same on pine f_bb(src, length, mult) => float basis = ta.sma(src, length) float dev = mult * ta.stdev(src, length) [basis, basis + dev, basis - dev] [pineMiddle, pineUpper, pineLower] = f_bb(close, 5, 4) plot(pineMiddle) plot(pineUpper) plot(pineLower)

Trả giá trị
Blinky.

tham số

  • series(series int/float) Các giá trị của series đang được thực hiện.
  • length(series int) K số dòng (dài).
  • mult(simple int/float) Nhân chênh lệch tiêu chuẩn。

Xem thêm
ta.sma ta.stdev ta.kc

ta.bbw

Chiều rộng của băng thông Brin: là khoảng cách từ đường lên và đường xuống đến đường trung tâm.

ta.bbw(series, length, mult)

Ví dụ

pine
plot(ta.bbw(close, 5, 4), color=color.yellow) // the same on pine f_bbw(src, length, mult) => float basis = ta.sma(src, length) float dev = mult * ta.stdev(src, length) ((basis + dev) - (basis - dev)) / basis plot(f_bbw(close, 5, 4))

Trả giá trị
Dải băng thông Brin.

tham số

  • series(series int/float) Các giá trị của series đang được thực hiện.
  • length(series int) K số dòng (dài).
  • mult(simple int/float) Nhân chênh lệch tiêu chuẩn。

Xem thêm
ta.bb ta.sma ta.stdev

ta.cci

Chỉ số CCI (Commodity Path Index) được tính bằng cách chia chênh lệch giữa giá điển hình của một hàng hóa và đường trung bình di chuyển đơn giản của nó bằng độ lệch tuyệt đối trung bình của giá điển hình. Chỉ số này được thu nhỏ theo chiều ngược 0,015 để cung cấp số liệu có thể đọc được hơn.

ta.cci(source, length)

Trả giá trị
Chỉ số kênh hàng hóa của source mà đường length K trả về.

tham số

  • source(series int/float) Các giá trị của series đang được thực hiện.
  • length(series int) K số dòng (dài).

ta.change

Sự khác biệt giữa giá trị hiện tại và giá trị trước đó, source - source[length]。

ta.change(source, length)
ta.change(source)

Trả giá trị
Kết quả của việc cắt giảm.

tham số

  • source(series int/float) Dòng nguồn
  • length(series int) Di chuyển từ dòng k hiện tại sang dòng k trước.

Xem thêm
ta.mom ta.cross

ta.mom

sourceGiá cả vàsourceGiá cảlengthĐộng lực trước dòng K. Đây chỉ là một sự khác biệt: source - source[length]。

ta.mom(source, length)

Trả giá trị
sourceGiá cả vàsourceGiá cảlengthĐộng lực trước dòng K.

tham số

  • source(series int/float) Các giá trị của series đang được thực hiện.
  • length(series int) Di chuyển từ dòng k hiện tại sang dòng k trước.

Xem thêm
ta.change

ta.cmo

Chỉ số biến động của xu hướng. Xét tổng số điểm tăng gần nhất với tổng số điểm giảm gần nhất, sau đó trừ đi cả hai, sau đó chia kết quả cho tổng số tất cả các biến động giá trong cùng một khoảng thời gian

ta.cmo(series, length)

Ví dụ

pine
plot(ta.cmo(close, 5), color=color.yellow) // the same on pine f_cmo(src, length) => float mom = ta.change(src) float sm1 = math.sum((mom >= 0) ? mom : 0.0, length) float sm2 = math.sum((mom >= 0) ? 0.0 : -mom, length) 100 * (sm1 - sm2) / (sm1 + sm2) plot(f_cmo(close, 5))

Trả giá trị
Chỉ số biến động động của Chandra

tham số

  • series(series int/float) Các giá trị của series đang được thực hiện.
  • length(series int) K số dòng (dài).

Xem thêm
ta.rsi ta.stoch math.sum

ta.percentile_linear_interpolation

Tính phần trăm được tính bằng cách sử dụng phương pháp xếp hạng tuyến tính giữa hai thứ hạng gần đây nhất.

ta.percentile_linear_interpolation(source, length, percentage)

Trả giá trị
lengthK-đường trả vềsourceSố phần trăm P đầu tiên của chuỗi.

tham số

  • source(series int/float) Các giá trị chuỗi đang được thực hiện ((nguồn) <unk>
  • length(series int) số lượng dòng K trong quá khứ (dài)
  • percentage(simple int/float) Tỷ lệ phần trăm, số trong phạm vi từ 0 đến 100

Ghi chú
Lưu ý rằng không phải tất cả các thành viên trong tập dữ liệu đầu vào đều được tính theo tỷ lệ phần trăm sử dụng phương pháp này.

Xem thêm
ta.percentile_nearest_rank

ta.percentile_nearest_rank

Tỷ lệ phần trăm được tính theo cách xếp hạng gần đây.

ta.percentile_nearest_rank(source, length, percentage)

Trả giá trị
lengthK-đường trả vềsourceSố phần trăm P đầu tiên của chuỗi.

tham số

  • source(series int/float) Các giá trị chuỗi đang được thực hiện ((nguồn) <unk>
  • length(series int) số lượng dòng K trong quá khứ (dài)
  • percentage(simple int/float) Tỷ lệ phần trăm, số trong phạm vi từ 0 đến 100

Ghi chú
Việc sử dụng cách sắp xếp gần đây với ít hơn 100 k đường dài cuối cùng có thể dẫn đến việc sử dụng cùng một số cho nhiều số phần trăm.
Tỷ lệ phần trăm được tính toán gần đây của bảng xếp hạng là một phần của tập dữ liệu đầu vào.
Điểm phần trăm 100 được định nghĩa là giá trị lớn nhất trong tập dữ liệu đầu vào.

Xem thêm
ta.percentile_linear_interpolation

ta.percentrank

Mức phần trăm là phần trăm của giá trị trước đó nhỏ hơn hoặc bằng giá trị hiện tại của một chuỗi.

ta.percentrank(source, length)

Trả giá trị
lengthK-đường trả vềsourceBảng xếp hạng phần trăm

tham số

  • source(series int/float) Các giá trị của series đang được thực hiện.
  • length(series int) K số dòng (dài).

ta.variance

Phân số là một chuỗi các giá trị mong đợi của độ lệch bình phương so với giá trị trung bình của nó (ta.sma), nó không chính thức đo khoảng cách của một nhóm số so với giá trị trung bình của nó.

ta.variance(source, length, biased)

Trả giá trị
lengthK-đường trả vềsourceSự khác biệt.

tham số

  • source(series int/float) Các giá trị của series đang được thực hiện.
  • length(series int) K số dòng (dài).
  • biased(series bool) xác định ước tính nào nên được sử dụng.

Ghi chú
NếubiasedNếu true, hàm sẽ sử dụng ước tính có thiên vị cho toàn bộ tổng thể để tính toán, và nếu false - ước tính không thiên vị cho mẫu.

Xem thêm
ta.dev ta.stdev

ta.tr

ta.tr(handle_na)

Trả giá trị
Phạm vi thực. Nó là math.max (high - low, math.abs (high - close)[1]), math.abs(low - close[1]))。

tham số

  • handle_na(simple bool) cách xử lý giá trị NaN. Nếu true, và giá đóng cửa ngày hôm trước là NaN, tr sẽ được tính là điểm cao-thấp của ngày đó. Nếu không thì (((tr nếu false) tr sẽ trả về NaN. Xin lưu ý rằng ta.atr sử dụng ta.true)

Ghi chú
ta.tr(false)ta.trTương tự.

Xem thêm
ta.atr

ta.mfi

Chỉ số dòng tiền. Chỉ số dòng tiền là một chỉ số kỹ thuật sử dụng giá và khối lượng giao dịch để xác định tình trạng quá mua hoặc quá bán trong tài sản.

ta.mfi(series, length)

Ví dụ

pine
plot(ta.mfi(hlc3, 14), color=color.yellow) // the same on pine pine_mfi(src, length) => float upper = math.sum(volume * (ta.change(src) <= 0.0 ? 0.0 : src), length) float lower = math.sum(volume * (ta.change(src) >= 0.0 ? 0.0 : src), length) mfi = 100.0 - (100.0 / (1.0 + upper / lower)) mfi plot(pine_mfi(hlc3, 14))

Trả giá trị
Chỉ số dòng tiền

tham số

  • series(series int/float) Các giá trị của series đang được thực hiện.
  • length(series int) K số dòng (dài).

Xem thêm
ta.rsi math.sum

ta.kc

Đường Kentner. Đường Kentner là một chỉ số kỹ thuật bao gồm trung bình di chuyển ở giữa và đường đi lên xuống đường ray.

ta.kc(series, length, mult)
ta.kc(series, length, mult, useTrueRange)

Ví dụ

pine
[middle, upper, lower] = ta.kc(close, 5, 4) plot(middle, color=color.yellow) plot(upper, color=color.yellow) plot(lower, color=color.yellow) // the same on pine f_kc(src, length, mult, useTrueRange) => float basis = ta.ema(src, length) float span = (useTrueRange) ? ta.tr : (high - low) float rangeEma = ta.ema(span, length) [basis, basis + rangeEma * mult, basis - rangeEma * mult] [pineMiddle, pineUpper, pineLower] = f_kc(close, 5, 4, true) plot(pineMiddle) plot(pineUpper) plot(pineLower)

Trả giá trị
Con đường Kentner

tham số

  • series(series int/float) Các giá trị của series đang được thực hiện.
  • length(simple int) K số dòng (longitude).
  • mult(simple int/float) Nhân chênh lệch tiêu chuẩn。
  • useTrueRange(simple bool) tham số tùy chọn. Chọn True hoặc True; mặc định là true. Nếu giá trị là false, thì sẽ sử dụng biểu thức ((high-low) để tính toán phạm vi.

Xem thêm
ta.ema ta.atr ta.bb

ta.kcw

Chiều rộng của đường Kentner. Chiều rộng của đường Kentner là khoảng cách giữa các đường trên và dưới chia cho giá trị của đường giữa.

ta.kcw(series, length, mult)
ta.kcw(series, length, mult, useTrueRange)

Ví dụ

pine
plot(ta.kcw(close, 5, 4), color=color.yellow) // the same on pine f_kcw(src, length, mult, useTrueRange) => float basis = ta.ema(src, length) float span = (useTrueRange) ? ta.tr : (high - low) float rangeEma = ta.ema(span, length) ((basis + rangeEma * mult) - (basis - rangeEma * mult)) / basis plot(f_kcw(close, 5, 4, true))

Trả giá trị
Chiều rộng của đường Kentner.

tham số

  • series(series int/float) Các giá trị của series đang được thực hiện.
  • length(simple int) K số dòng (longitude).
  • mult(simple int/float) Nhân chênh lệch tiêu chuẩn。
  • useTrueRange(simple bool) tham số tùy chọn. Chọn True hoặc True; mặc định là true. Nếu giá trị là false, thì sẽ sử dụng biểu thức ((high-low) để tính toán phạm vi.

Xem thêm
ta.kc ta.ema ta.atr ta.bb

ta.correlation

Các hệ số liên quan. Mô tả mức độ hai chuỗi có xu hướng lệch khỏi giá trị ta.sma của chúng.

ta.correlation(source1, source2, length)

Trả giá trị
Các hệ số liên quan

tham số

  • source1(series int/float) Dòng nguồn
  • source2(series int/float) Dòng mục tiêu
  • length(series int) chiều dài ((K số dòng)

Xem thêm
request.security

ta.cross

ta.cross(source1, source2)

Trả giá trị
Nếu hai chuỗi chéo nhau thì đúng, nếu không thì sai.

tham số

  • source1(series int/float) Dòng dữ liệu đầu tiên。
  • source2(series int/float) Dòng dữ liệu thứ hai。

Xem thêm
ta.change

ta.crossover

source1-series được định nghĩa là vượt quasource2-series, nếu trên dòng K hiện tại,source1lớn hơnsource2Và trên đường K trước đó,source2Giá trị của source1小于source2`Giá trị của

ta.crossover(source1, source2)

Trả giá trị
Nếusource1Đi qua.source2true hoặc false.

tham số

  • source1(series int/float) Dòng dữ liệu đầu tiên。
  • source2(series int/float) Dòng dữ liệu thứ hai。

ta.crossunder

source1-series được định nghĩa là trongsource2-series dưới chéo, nếu trên dòng K hiện tại,source1nhỏ hơnsource2Và trên đường K đầu tiên,source1lớn hơnsource2Giá trị của

ta.crossunder(source1, source2)

Trả giá trị
Nếusource1hiện hữusource2Xấp xỉ dưới là True, nếu không là False.

tham số

  • source1(series int/float) Dòng dữ liệu đầu tiên。
  • source2(series int/float) Dòng dữ liệu thứ hai。

ta.atr

Hàm ATR ((trung bình độ dao động thực tế) trả về RMA của phạm vi thực tế. Độ dao động thực tế là max ((high - low, abs ((high - close)[1]), abs(low - close[1]))。

ta.atr(length)

Ví dụ

pine
plot(ta.atr(14)) //the same on pine pine_atr(length) => trueRange = na(high[1])? high-low : math.max(math.max(high - low, math.abs(high - close[1])), math.abs(low - close[1])) //true range can be also calculated with ta.tr(true) ta.rma(trueRange, length) plot(pine_atr(14))

Trả giá trị
Mức trung bình biến động thực (ATR)

tham số
length (simple int) chiều dài

Xem thêm
ta.tr ta.rma

ta.sar

Chuyển đổi đường parabola ((đường parabola dừng lại và đảo ngược) là phương pháp được J. Welles Wilder, Jr. thiết kế để tìm ra sự đảo ngược tiềm năng về hướng giá của thị trường giao dịch.

ta.sar(start, inc, max)

Ví dụ

pine
plot(ta.sar(0.02, 0.02, 0.2), style=plot.style_cross, linewidth=3) // The same on Pine pine_sar(start, inc, max) => var float result = na var float maxMin = na var float acceleration = na var bool isBelow = na bool isFirstTrendBar = false if bar_index == 1 if close > close[1] isBelow := true maxMin := high result := low[1] else isBelow := false maxMin := low result := high[1] isFirstTrendBar := true acceleration := start result := result + acceleration * (maxMin - result) if isBelow if result > low isFirstTrendBar := true isBelow := false result := math.max(high, maxMin) maxMin := low acceleration := start else if result < high isFirstTrendBar := true isBelow := true result := math.min(low, maxMin) maxMin := high acceleration := start if not isFirstTrendBar if isBelow if high > maxMin maxMin := high acceleration := math.min(acceleration + inc, max) else if low < maxMin maxMin := low acceleration := math.min(acceleration + inc, max) if isBelow result := math.min(result, low[1]) if bar_index > 1 result := math.min(result, low[2]) else result := math.max(result, high[1]) if bar_index > 1 result := math.max(result, high[2]) result plot(pine_sar(0.02, 0.02, 0.2), style=plot.style_cross, linewidth=3)

Trả giá trị
Đường parabola chuyển sang chỉ số.

tham số

  • start(simple int/float) bắt đầu
  • inc(simple int/float) tăng
  • max(simple int/float) tối đa.

ta.barssince

Tính số K từ điều kiện trước là true.

ta.barssince(condition)

Ví dụ

pine
// get number of bars since last color.green bar plot(ta.barssince(close >= open))

Trả giá trị
Số dòng k nếu điều kiện là true.

Ghi chú
Nếu điều kiện này chưa bao giờ được đáp ứng trước khi dòng K hiện tại, hàm này sẽ trả về na ≠
Xin lưu ý rằng việc sử dụng biến số/chức năng này có thể dẫn đến việc vẽ lại chỉ số.

Xem thêm
ta.lowestbars ta.highestbars ta.valuewhen ta.highest ta.lowest

ta.cum

sourceTức là tổng của tất cả.sourceTổng của tất cả các phần tử của .

ta.cum(source)

Trả giá trị
Tổng kết loạt phim

tham số

  • source (series int/float)

Xem thêm
math.sum

ta.dmi

Dmi hàm trả về chỉ số động DMI。

ta.dmi(diLength, adxSmoothing)

Ví dụ

pine
len = input.int(17, minval=1, title="DI Length") lensig = input.int(14, title="ADX Smoothing", minval=1, maxval=50) [diplus, diminus, adx] = ta.dmi(len, lensig) plot(adx, color=color.red, title="ADX") plot(diplus, color=color.blue, title="+DI") plot(diminus, color=color.orange, title="-DI")

Trả giá trị
Ba phân nhóm của chuỗi DMI: chuyển động theo hướng dương ((+DI), chuyển động theo hướng âm ((-DI) và chỉ số chuyển động theo hướng trung bình ((ADX)) [2].

tham số

  • diLength (simple int) DI Period。
  • adxSmoothing(simple int) chu kỳ mịn ADX

Xem thêm
ta.rsi ta.tsi ta.mfi

ta.falling

Kiểm trasourceBộ phim vềlengthK-long có đang giảm không?

ta.falling(source, length)

Trả giá trị
Nếu hiện tạisourceVốn ít hơnlengthK-line trả về bất kỳ trước đósourceGiá trị là true, nếu không là false

tham số

  • source(series int/float) Các giá trị của series đang được thực hiện.
  • length(series int) K số dòng (dài).

Xem thêm
ta.rising

ta.rising

Kiểm trasourceBộ phim vềlengthK-linelong có đang tăng không?

ta.rising(source, length)

Trả giá trị
Nếu hiện tạisourceGiá trị lớn hơnlengthK-line trả về bất kỳ trước đósourceGiá trị là true, nếu không là false

tham số

  • source(series int/float) Các giá trị của series đang được thực hiện.
  • length(series int) K số dòng (dài).

Xem thêm
ta.falling

ta.pivothigh

Hàm này trả về giá của điểm cao trên trục. Nếu không có điểm cao trên trục, nó trả về <unk>NaN<unk>.

ta.pivothigh(source, leftbars, rightbars)
ta.pivothigh(leftbars, rightbars)

Ví dụ

pine
leftBars = input(2) rightBars=input(2) ph = ta.pivothigh(leftBars, rightBars) plot(ph, style=plot.style_cross, linewidth=3, color= color.red, offset=-rightBars)

Trả giá trị
Giá tại điểm này là 'NaN'.

tham số

  • source(series int/float) Tùy chọn tham số ◦ giá trị tính toán chuỗi dữ liệu ◦ giá trị mặc định 'High' ◦
  • leftbars(series int/float) Lực lượng bên trái
  • rightbars(series int/float) Độ dài bên phải

Ghi chú
Nếu tham số 'leftbars' hoặc 'rightbars' là chuỗi, bạn nên sử dụng hàm max_bars_back làm biến 'source'

ta.pivotlow

Chức năng này trả về giá của điểm thấp trên trục. Nếu không có điểm thấp trên trục, nó trả về <unk>NaN<unk>.

ta.pivotlow(source, leftbars, rightbars)
ta.pivotlow(leftbars, rightbars)

Ví dụ

pine
leftBars = input(2) rightBars=input(2) pl = ta.pivotlow(close, leftBars, rightBars) plot(pl, style=plot.style_cross, linewidth=3, color= color.blue, offset=-rightBars)

Trả giá trị
Giá tại điểm này là 'NaN'.

tham số

  • source(series int/float) Các tham số tùy chọn ◦ Giá trị tính toán chuỗi dữ liệu ◦ Theo mặc định ◦ Low ◦
  • leftbars(series int/float) Lực lượng bên trái
  • rightbars(series int/float) Độ dài bên phải

Ghi chú
Nếu tham số 'leftbars' hoặc 'rightbars' là chuỗi, bạn nên sử dụng hàm max_bars_back làm biến 'source'

ta.highest

Giá trị cao nhất của số được cho trong k đường đi qua.

ta.highest(source, length)
ta.highest(length)

Trả giá trị
Giá trị cao nhất trong chuỗi.

tham số

  • source(series int/float) Các giá trị của series đang được thực hiện.
  • length(series int) K số dòng (dài).

Ghi chú
Hai phiên bản của args:sourceĐây là một loạt các bài viết được viết bởi các nhà văn.lengthlà số dòng K trả về.
Một phiên bản arg:lengthlà số K mà nó trả về.sourceBộ truyện

Xem thêm
ta.lowest ta.lowestbars ta.highestbars ta.valuewhen ta.barssince

ta.highestbars

Phân tích tối đa của một số lượng nhất định trên đường k.

ta.highestbars(source, length)
ta.highestbars(length)

Trả giá trị
Di chuyển sang đường k cao nhất.

tham số

  • source(series int/float) Các giá trị của series đang được thực hiện.
  • length(series int) K số dòng (dài).

Ghi chú
Hai phiên bản của args:sourceĐây là một loạt các bài viết được viết bởi các nhà văn.lengthlà số dòng K trả về.
Một phiên bản arg:lengthlà số K mà nó trả về.sourceBộ truyện

Xem thêm
ta.lowest ta.highest ta.lowestbars ta.barssince ta.valuewhen

ta.stoch

Chỉ số ngẫu nhiên. Công thức tính toán: 100 * (close - lowest, length)) / (highest, high, length) - lowest, length))

ta.stoch(source, high, low, length)

Trả giá trị
Ngẫu nhiên

tham số

  • source(series int/float) Dòng nguồn
  • high(series int/float) Dòng cao
  • low(series int/float) Dòng thấp
  • length(series int) chiều dài ((K số dòng)

Xem thêm
ta.cog

ta.supertrend

Chỉ số siêu xu hướng. Chỉ số siêu xu hướng là một chỉ số theo xu hướng.

ta.supertrend(factor, atrPeriod)

Ví dụ

pine
//@version=5 indicator("Pine Script™ Supertrend") [supertrend, direction] = ta.supertrend(3, 10) plot(direction < 0 ? supertrend : na, "Up direction", color = color.green, style=plot.style_linebr) plot(direction > 0 ? supertrend : na, "Down direction", color = color.red, style=plot.style_linebr) // The same on Pine Script™ pine_supertrend(factor, atrPeriod) => src = hl2 atr = ta.atr(atrPeriod) upperBand = src + factor * atr lowerBand = src - factor * atr prevLowerBand = nz(lowerBand[1]) prevUpperBand = nz(upperBand[1]) lowerBand := lowerBand > prevLowerBand or close[1] < prevLowerBand ? lowerBand : prevLowerBand upperBand := upperBand < prevUpperBand or close[1] > prevUpperBand ? upperBand : prevUpperBand int direction = na float superTrend = na prevSuperTrend = superTrend[1] if na(atr[1]) direction := 1 else if prevSuperTrend == prevUpperBand direction := close > upperBand ? -1 : 1 else direction := close < lowerBand ? 1 : -1 superTrend := direction == -1 ? lowerBand : upperBand [superTrend, direction] [pineSupertrend, pineDirection] = pine_supertrend(3, 10) plot(pineDirection < 0 ? pineSupertrend : na, "Up direction", color = color.green, style=plot.style_linebr) plot(pineDirection > 0 ? pineSupertrend : na, "Down direction", color = color.red, style=plot.style_linebr)

Trả giá trị
Hai phân tử của chuỗi siêu xu hướng: đường siêu xu hướng và hướng của xu hướng. Các giá trị có thể là 1 (hướng xuống) và -1 (hướng lên).

tham số

  • factor(series int/float) ATR sẽ nhân với số nhân của
  • atrPeriod(simple int) Độ dài sóng thực trung bình

Xem thêm
ta.macd

ta.lowest

Giá trị tối thiểu của số lượng đã cho của dòng k qua.

ta.lowest(source, length)
ta.lowest(length)

Trả giá trị
Giá trị tối thiểu trong chuỗi.

tham số

  • source(series int/float) Các giá trị của series đang được thực hiện.
  • length(series int) K số dòng (dài).

Ghi chú
Hai phiên bản của args:sourceĐây là một loạt các bài viết được viết bởi các nhà văn.lengthlà số dòng K trả về.
Một phiên bản arg:lengthlà số đường K trả về. Thuật toán sử dụng low làmsourceBộ truyện

Xem thêm
ta.highest ta.lowestbars ta.highestbars ta.valuewhen ta.barssince

ta.lowestbars

Phân tích tối thiểu của một số lượng nhất định của các đường k qua.

ta.lowestbars(source, length)
ta.lowestbars(length)

Trả giá trị
Di chuyển đến đường k thấp nhất.

tham số

  • source(series int/float) Các giá trị của series đang được thực hiện.
  • length(series int) trả về số K.

Ghi chú
Hai phiên bản của args:sourceĐây là một loạt các bài viết được viết bởi các nhà văn.lengthlà số dòng K trả về.
Một phiên bản arg:lengthlà số đường K trả về. Thuật toán sử dụng low làmsourceBộ truyện

Xem thêm
ta.lowest ta.highest ta.highestbars ta.barssince ta.valuewhen

ta.valuewhen

Trả về giá trị chuỗi giá trị của giá trị giá trị của giá trị giá trị của giá trị giá trị giá trị của giá trị giá trị giá trị giá trị giá trị giá trị giá trị giá trị giá trị giá trị giá trị giá trị giá trị giá trị giá trị giá trị giá trị giá trị giá trị giá trị giá trị giá trị

ta.valuewhen(condition, source, occurrence)

Ví dụ

pine
slow = ta.sma(close, 7) fast = ta.sma(close, 14) // Get value of `close` on second most recent cross plot(ta.valuewhen(ta.cross(slow, fast), close, 1))

tham số

  • condition(series bool) Điều kiện tìm kiếm:
  • source(series int/float/bool/color) To return the value from the K line that satisfies the condition. (Series int/float/bool/color) To return the value from the K line that satisfies the condition. (Series int/float/bool/color) Để trả về giá trị từ K line mà đáp ứng điều kiện.
  • occurrenceSự xuất hiện của điều kiện (simple int) ≠ bắt đầu từ 0 và đi ngược thời gian, do đó <unk>0<unk> là điều kiện ≠ gần nhất xuất hiện, <unk>1<unk> là điều kiện ≠ gần nhất xuất hiện, và như vậy ≠ phải là số nguyên >= 0 ≠

Ghi chú
Chức năng này cần được thực hiện trên mỗi dòng K. Không nên sử dụng nó trong cấu trúc vòng lặp for hoặc while vì hành vi của nó có thể bất ngờ. Xin lưu ý rằng sử dụng tính năng này có thể dẫn đến việc vẽ lại chỉ số.

Xem thêm
ta.lowestbars ta.highestbars ta.barssince ta.highest ta.lowest

ta.vwap

Giá trung bình có trọng lượng giao dịch

ta.vwap(source)

Trả giá trị
Trung bình giao dịch

tham số

  • source(series int/float) Dòng nguồn

Xem thêm
ta.vwap

ta.vwma

Phương thức vwma trả vềlengthDòng K.sourceMức trung bình chuyển động của khối lượng giao dịch. Tương đương với: sma ((source * volume, length) / sma ((volume, length))

ta.vwma(source, length)

Ví dụ

pine
plot(ta.vwma(close, 15)) // same on pine, but less efficient pine_vwma(x, y) => ta.sma(x * volume, y) / ta.sma(volume, y) plot(pine_vwma(close, 15))

Trả giá trị
lengthK-đường trả vềsourceSố lượng giao dịch tăng trung bình di chuyển.

tham số

  • source(series int/float) Các giá trị của series đang được thực hiện.
  • length(series int) K số dòng (dài).

Xem thêm
ta.sma ta.ema ta.rma ta.wma ta.swma ta.alma

ta.wpr

Chỉ số Williams %R. Chỉ số dao động này cho thấy mối quan hệ giữa giá đóng cửa hiện tại và giá cao / thấp trong một khoảng thời gian trong quá khứ.

ta.wpr(length)

Ví dụ

pine
plot(ta.wpr(14), title="%R", color=color.new(#ff6d00, 0))

Trả giá trị
Williams %R。

tham số

  • length(series int) Số lượng dòng K。

Xem thêm
ta.mfi ta.cmo

plot

plot

Một loạt các dữ liệu được vẽ trên biểu đồ.

plot(series, title, color, linewidth, style, trackprice, histbase, offset, join, editable, show_last, display)

Ví dụ

pine
plot(high+low, title='Title', color=color.new(#00ffaa, 70), linewidth=2, style=plot.style_area, offset=15, trackprice=true) // You may fill the background between any two plots with a fill() function: p1 = plot(open) p2 = plot(close) fill(p1, p2, color=color.new(color.green, 90))

Trả giá trị
Đối tượng vẽ có thể được sử dụng cho fill.

tham số

  • series(series int/float) Dòng dữ liệu được vẽ.
  • title(const string) Hình vẽ tiêu đề.
  • color(series color) Màu được vẽ. Bạn có thể sử dụng các hằng số như 'color = red' hoặc 'color = #ff001a' và các biểu thức phức tạp như 'color = close >= open ? green: red'. Các tham số tùy chọn.
  • linewidth(input int) Width of drawing line ◦ mặc định là 1 ◦ không áp dụng cho mọi kiểu ◦
  • style(plot_style) kiểu plot ◦ giá trị có thể là: plot.style_line、plot.style_stepline、plot.style_stepline_diamond、plot.style_histogram、plot.style_cross、plot.style_area、plot.style_columns、plot.style_circles、plot.style_linebr、plot.style_areabr。 giá trị mặc định là plot.style_line。
  • trackprice(input bool) Nếu true, đường giá ngang sẽ hiển thị ở mức giá chỉ số cuối cùng.
  • histbase(input int/float) Khi vẽ theo kiểu plot.style_histogram, plot.style_columns hoặc plot.style_area, sử dụng giá trị của mức độ tham chiếu. △ Giá trị mặc định là 0.0 △
  • offset(series int) Di chuyển đồ họa sang trái hoặc sang phải trên một số lượng cụ thể của dòng k. Định nghĩa mặc định là 0.
  • join(input bool) Nếu true, điểm vẽ sẽ được kết nối với đường, chỉ áp dụng cho kiểu plot.style_cross và plot.style_circles.
  • editable(const bool) Nếu true, thì kiểu vẽ có thể được chỉnh sửa trong hộp thoại định dạng.
  • show_last(input int) Nếu được đặt, xác định số k dòng được vẽ trên biểu đồ ((trở lại quá khứ từ k dòng cuối cùng))
  • display(plot_display) Điều khiển hiển thị vị trí của bản vẽ. Các giá trị có thể là: display.none, display.all. Các giá trị mặc định là display.all.
  • overlay(const bool) tham số mở rộng của nền tảng FMZ, được sử dụng để thiết lập chức năng hiện tại trên bản đồ chính (đặt true) hoặc bản đồ phụ (đặt false) hiển thị trên bản đồ vẽ, mặc định là false. Không xác định tham số này theostrategyhoặcindicatorTRONGoverlayThiết lập tham sốstrategyhoặcindicatorKhông có thiết lậpoverlayCác tham số được xử lý theo các tham số mặc định.

Xem thêm
plotshape plotchar bgcolor

plotshape

Hình vẽ hình dạng hình ảnh trên biểu đồ.

plotshape(series, title, style, location, color, offset, text, textcolor, editable, size, show_last, display)

Ví dụ

pine
data = close >= open plotshape(data, style=shape.xcross)

tham số

  • series(series bool) Một chuỗi dữ liệu được vẽ thành hình dạng 。 series được coi là một chuỗi bool của tất cả các giá trị vị trí ngoại trừ location.absolute 。 tham số cần thiết 。
  • title(const string) Hình vẽ tiêu đề.
  • style(input string) Loại vẽ <unk> có thể có các giá trị: shape.xcross, shape.cross, shape.triangleup, shape.triangledown, shape.flag, shape.circle, shape.arrowup, shape.arrowdown, shape.labelup, shape.labeldown, shape.square, shape.diamond <unk> mặc định là shape.xcross <unk>
  • location(input string) Hình dạng vị trí trên biểu đồ. Các giá trị có thể có là: location.abovebar, location.belowbar, location.top, location.bottom, location.absolute.
  • color(series color) Hình dạng màu. Bạn có thể sử dụng các hằng số như 'color = red' hoặc 'color = #ff001a' và các biểu thức phức tạp như 'color = close >= open ? green: red'. Các tham số tùy chọn.
  • offset(series int) Di chuyển hình dạng sang trái hoặc sang phải trên một số lượng k dòng.
  • text(const string) văn bản được hiển thị theo hình dạng. Bạn có thể sử dụng nhiều dòng văn bản, cách nhau bằng chuỗi chuyển đổi '\n'. Ví dụ: 'line one\nline two'
  • textcolor(series color) Màu sắc của văn bản. Bạn có thể sử dụng các hằng số như 'textcolor=red' hoặc 'textcolor=#ff001a' và các biểu thức phức tạp như 'textcolor = close >= open ? green: red'. Các tham số tùy chọn.
  • editable(const bool) Nếu true, thì kiểu plotshape có thể được chỉnh sửa trong hộp thoại định dạng.
  • show_last(input int) Nếu được đặt, định nghĩa số hình dạng được vẽ trên biểu đồ ((trở lại quá khứ từ k cuối cùng) <unk>
  • size(const string) Kích thước của ký tự trên biểu đồ. Các giá trị có thể là: size.auto, size.tiny, size.small, size.normal, size.large, size.huge.
  • display(plot_display) Điều khiển hiển thị vị trí của bản vẽ. Các giá trị có thể là: display.none, display.all. Các giá trị mặc định là display.all.
  • overlay(const bool) tham số mở rộng của nền tảng FMZ, được sử dụng để thiết lập chức năng hiện tại trên bản đồ chính (đặt true) hoặc bản đồ phụ (đặt false) hiển thị trên bản đồ vẽ, mặc định là false. Không xác định tham số này theostrategyhoặcindicatorTRONGoverlayThiết lập tham sốstrategyhoặcindicatorKhông có thiết lậpoverlayCác tham số được xử lý theo các tham số mặc định.

Xem thêm
plot plotchar bgcolor

plotchar

Sử dụng bất kỳ ký tự Unicode nào trên biểu đồ để vẽ hình dạng hiển thị.

plotchar(series, title, char, location, color, offset, text, textcolor, editable, size, show_last, display)

Ví dụ

pine
data = close >= open plotchar(data, char='❄')

tham số

  • series(series bool) Một chuỗi dữ liệu được vẽ thành hình dạng 。 series được coi là một chuỗi bool của tất cả các giá trị vị trí ngoại trừ location.absolute 。 tham số cần thiết 。
  • title(const string) Hình vẽ tiêu đề.
  • char(input string) Các ký tự được sử dụng như hình dạng trực quan
  • location(input string) Hình dạng vị trí trên biểu đồ. Các giá trị có thể có là: location.abovebar, location.belowbar, location.top, location.bottom, location.absolute.
  • color(series color) Hình dạng màu. Bạn có thể sử dụng các hằng số như 'color = red' hoặc 'color = #ff001a' và các biểu thức phức tạp như 'color = close >= open ? green: red'. Các tham số tùy chọn.
  • offset(series int) Di chuyển hình dạng sang trái hoặc sang phải trên một số lượng k dòng.
  • text(const string) văn bản được hiển thị theo hình dạng. Bạn có thể sử dụng nhiều dòng văn bản, cách nhau bằng chuỗi chuyển đổi '\n'. Ví dụ: 'line one\nline two'
  • textcolor(series color) Màu sắc của văn bản. Bạn có thể sử dụng các hằng số như 'textcolor=red' hoặc 'textcolor=#ff001a' và các biểu thức phức tạp như 'textcolor = close >= open ? green: red'. Các tham số tùy chọn.
  • editable(const bool) Nếu true, thì kiểu plotchar có thể được chỉnh sửa trong hộp thoại định dạng.
  • show_last(input int) Nếu được thiết lập, xác định số biểu đồ được vẽ trên biểu đồ ((trở lại quá khứ từ k cuối cùng) <unk>
  • size(const string) Kích thước của ký tự trên biểu đồ. Các giá trị có thể là:size.auto,size.tiny,size.small,size.normal,size.large,size.huge. Giá trị mặc định là size.auto.
  • display(plot_display) Điều khiển hiển thị vị trí của bản vẽ. Các giá trị có thể là: display.none, display.all. Các giá trị mặc định là display.all.
  • overlay(const bool) tham số mở rộng của nền tảng FMZ, được sử dụng để thiết lập chức năng hiện tại trên bản đồ chính (đặt true) hoặc bản đồ phụ (đặt false) hiển thị trên bản đồ vẽ, mặc định là false. Không xác định tham số này theostrategyhoặcindicatorTRONGoverlayThiết lập tham sốstrategyhoặcindicatorKhông có thiết lậpoverlayCác tham số được xử lý theo các tham số mặc định.

Xem thêm
plot plotshape bgcolor

plotcandle

Hình vẽ <unk> trên biểu đồ.

plotcandle(open, high, low, close, title, color, wickcolor, editable, show_last, bordercolor, display)

Ví dụ

pine
indicator("plotcandle example", overlay=true) plotcandle(open, high, low, close, title='Title', color = open < close ? color.green : color.red, wickcolor=color.black)

tham số

  • open(series int/float) Dữ liệu mở chuỗi được sử dụng như là giá trị mở <unk>。 tham số cần thiết。
  • high(series int/float) Dữ liệu chuỗi cao được sử dụng như giá trị cao của giá trị <unk>.
  • low(series int/float) Dữ liệu chuỗi thấp được sử dụng làm giá trị thấp của nếp.
  • close(series int/float) Khóa chuỗi dữ liệu như giá trị của dòng k khép.
  • title(const string) tiêu đề của plotcandle.
  • color(series color) Màu sắc của phích <unk>. Bạn có thể sử dụng các hằng số như 'color = red' hoặc 'color = #ff001a' và các biểu thức phức tạp như 'color = close >= open ? green: red'. Các tham số tùy chọn.
  • wickcolor(series color) Màu sắc của đèn pha. Một tham số tùy chọn.
  • editable(const bool) Nếu true, thì kiểu plotcandle có thể được chỉnh sửa trong hộp thoại định dạng.
  • show_last(input int) Nếu được đặt, xác định số nếp vẽ trên biểu đồ ((trở lại quá khứ từ k cuối cùng))
  • bordercolor(series color) Màu viền của ô. Một tham số tùy chọn.
  • display(plot_display) Điều khiển hiển thị vị trí của bản vẽ. Các giá trị có thể là: display.none, display.all. Các giá trị mặc định là display.all.
  • overlay(const bool) tham số mở rộng của nền tảng FMZ, được sử dụng để thiết lập chức năng hiện tại trên bản đồ chính (đặt true) hoặc bản đồ phụ (đặt false) hiển thị trên bản đồ vẽ, mặc định là false. Không xác định tham số này theostrategyhoặcindicatorTRONGoverlayThiết lập tham sốstrategyhoặcindicatorKhông có thiết lậpoverlayCác tham số được xử lý theo các tham số mặc định.

Ghi chú
Nếu tất cả các NaN đều được khai thác, thì đường K không cần phải hiển thị.
Các giá trị tối đa của mở, mở, mở sẽ được đặt ở vị trí cao, và các giá trị tối thiểu của mở, mở, mở sẽ được đặt ở vị trí thấp.

Xem thêm
plotbar

plotarrow

Vạch mũi tên lên và xuống trên biểu đồ: mũi tên lên được vẽ trên mỗi chỉ số dương, còn mũi tên xuống được vẽ trên mỗi giá trị âm. Nếu chỉ số trả về na, mũi tên sẽ không được vẽ. Các mũi tên có độ cao khác nhau, giá trị tuyệt đối của chỉ số càng lớn, mũi tên vẽ càng dài.

plotarrow(series, title, colorup, colordown, offset, minheight, maxheight, editable, show_last, display)

Ví dụ

codiff = close - open plotarrow(codiff, colorup=color.new(color.teal,40), colordown=color.new(color.orange, 40), overlay=true)

tham số

  • series(series int/float) Để vẽ một dãy dữ liệu thành mũi tên.
  • title(const string) Hình vẽ tiêu đề.
  • colorup(series color) Màu sắc của mũi tên lên.
  • colordown(series color) Màu sắc của mũi tên xuống.
  • offset(series int) Di chuyển mũi tên sang trái hoặc sang phải trên một số dòng K.
  • minheight(input int) Chiều cao mũi tên nhỏ nhất có thể được tính bằng pixel. Giá trị mặc định là 5
  • maxheight(input int) Chiều cao mũi tên lớn nhất có thể bằng pixel.
  • editable(const bool) Nếu true, thì kiểu plotarrow có thể được chỉnh sửa trong hộp thoại định dạng.
  • show_last(input int) Nếu được đặt, xác định số mũi tên được vẽ trên biểu đồ ((trở lại quá khứ từ dòng k cuối cùng) <unk>
  • display(plot_display) Điều khiển hiển thị vị trí của bản vẽ. Các giá trị có thể là: display.none, display.all. Các giá trị mặc định là display.all.
  • overlay(const bool) tham số mở rộng của nền tảng FMZ, được sử dụng để thiết lập chức năng hiện tại trên bản đồ chính (đặt true) hoặc bản đồ phụ (đặt false) hiển thị trên bản đồ vẽ, mặc định là false. Không xác định tham số này theostrategyhoặcindicatorTRONGoverlayThiết lập tham sốstrategyhoặcindicatorKhông có thiết lậpoverlayCác tham số được xử lý theo các tham số mặc định.

Xem thêm
plot plotshape plotchar barcolor bgcolor

array

array.pop

Chức năng này xóa phần tử cuối cùng trong mảng và trả về giá trị của nó.

array.pop(id)

Ví dụ

pine
// array.pop example a = array.new_float(5,high) removedEl = array.pop(a) plot(array.size(a)) plot(removedEl)

Trả giá trị
Giá trị của phần tử bị xóa.

tham số

  • id(any array type) đối tượng mảng

Xem thêm
array.new_float array.set array.push array.remove array.insert array.shift

array.shift

Chức năng này xóa phần tử đầu tiên của mảng và trả về giá trị của nó.

array.shift(id)

Ví dụ

pine
// array.shift example a = array.new_float(5,high) removedEl = array.shift(a) plot(array.size(a)) plot(removedEl)

Trả giá trị
Giá trị của phần tử bị xóa.

tham số

  • id(any array type) đối tượng mảng

Xem thêm
array.unshift array.set array.push array.remove array.includes

array.unshift

Chức năng này sẽ chèn giá trị vào vị trí ban đầu của mảng.

array.unshift(id, value)

Ví dụ

pine
// array.unshift example a = array.new_float(5, 0) array.unshift(a, open) plot(array.get(a, 0))

tham số

  • id(any array type) đối tượng mảng
  • value (series <type of the array's elements>) Để thêm vào vị trí ban đầu của mảng.

Xem thêm
array.shift array.set array.insert array.remove array.indexof

array.size

Hàm này trả về số lượng các phần tử trong mảng.

array.size(id)

Ví dụ

pine
// array.size example a = array.new_float(0) for i = 0 to 9 array.push(a, close[i]) // note that changes in slice also modify original array slice = array.slice(a, 0, 5) array.push(slice, open) // size was changed in slice and in original array plot(array.size(a)) plot(array.size(slice))

Trả giá trị
Số nguyên tố trong mảng.

tham số

  • id(any array type) đối tượng mảng

Xem thêm
array.new_float array.sum array.slice array.sort

array.slice

Chức năng này tạo một phân mảnh từ một mảng hiện có. Nếu các đối tượng trong phân mảnh thay đổi, thay đổi sẽ được áp dụng cho mảng mới và mảng gốc.

array.slice(id, index_from, index_to)

Ví dụ

pine
// array.slice example a = array.new_float(0) for i = 0 to 9 array.push(a, close[i]) // take elements from 0 to 4 // *note that changes in slice also modify original array slice = array.slice(a, 0, 5) plot(array.sum(a) / 10) plot(array.sum(slice) / 5)

Trả giá trị
Một bản sao sơ bộ của mảng phân mảnh.

tham số

  • id(any array type) đối tượng mảng
  • index_from(series int) Chỉ mục bắt đầu từ 0 để bắt đầu trích xuất.
  • index_to(series int) Chỉ mục bắt đầu từ 0 trước khi hoàn thành trích xuất. Chức năng này trích xuất các phần tử trước chỉ mục này.

Xem thêm
array.new_float array.get array.sort

array.abs

Trả về một mảng chứa giá trị tuyệt đối của mỗi phần tử trong mảng gốc.

array.abs(id)

tham số

  • id (int[]/float[]) Đối tượng mảng.

Xem thêm
array.new_float array.insert array.slice array.reverse order.ascending order.descending

array.binary_search

Chức năng này trả về chỉ mục của giá trị, nếu không tìm thấy giá trị đó, trả về -1. Các mảng được tìm kiếm phải được sắp xếp theo thứ tự tăng dần.

array.binary_search(id, val)

Ví dụ

pine
// array.binary_search a = array.from(5, -2, 0, 9, 1) array.sort(a) // [-2, 0, 1, 5, 9] position = array.binary_search(a, 0) // 1 plot(position)

tham số

  • id (int[]/float[]) Đối tượng mảng.
  • val(series int/float) giá trị tìm kiếm trong mảng.

Ghi chú
Tìm kiếm nhị phân được áp dụng cho các mảng được sắp xếp trước theo thứ tự tăng dần. Nó bắt đầu so sánh các phần tử ở giữa mảng với giá trị mục tiêu. Nếu phần tử phù hợp với giá trị mục tiêu, nó sẽ trả về vị trí của nó trong mảng. Nếu giá trị của phần tử lớn hơn giá trị mục tiêu, tiếp tục tìm kiếm ở nửa dưới của mảng.

Xem thêm
array.new_float array.insert array.slice array.reverse order.ascending order.descending

array.binary_search_leftmost

Nếu tìm thấy giá trị, hàm sẽ trả về chỉ mục của giá trị đó. Nếu không tìm thấy giá trị, hàm sẽ trả về chỉ mục của phần tử nhỏ nhất tiếp theo, nếu nó nằm trong mảng, bên trái của vị trí của giá trị.

array.binary_search_leftmost(id, val)

Ví dụ

pine
// array.binary_search_leftmost a = array.from(5, -2, 0, 9, 1) array.sort(a) // [-2, 0, 1, 5, 9] position = array.binary_search_leftmost(a, 3) // 2 plot(position)

tham số

  • id (int[]/float[]) Đối tượng mảng.
  • val(series int/float) giá trị tìm kiếm trong mảng.

Ghi chú
Tìm kiếm nhị phân được áp dụng cho các mảng được sắp xếp trước theo thứ tự tăng dần. Nó bắt đầu so sánh các phần tử ở giữa mảng với giá trị mục tiêu. Nếu phần tử phù hợp với giá trị mục tiêu, nó sẽ trả về vị trí của nó trong mảng. Nếu giá trị của phần tử lớn hơn giá trị mục tiêu, tiếp tục tìm kiếm ở nửa dưới của mảng.

Xem thêm
array.new_float array.insert array.slice array.reverse order.ascending order.descending

array.binary_search_rightmost

Nếu tìm thấy giá trị đó, hàm sẽ trả về chỉ mục của giá trị đó. Khi không tìm thấy giá trị đó, hàm sẽ trả về chỉ mục của phần tử bên phải vị trí của giá trị đó trong mảng.

array.binary_search_rightmost(id, val)

Ví dụ

pine
// array.binary_search_rightmost a = array.from(5, -2, 0, 9, 1) array.sort(a) // [-2, 0, 1, 5, 9] position = array.binary_search_rightmost(a, 3) // 3 plot(position)

tham số

  • id (int[]/float[]) Đối tượng mảng.
  • val(series int/float) giá trị tìm kiếm trong mảng.

Ghi chú
Tìm kiếm nhị phân hoạt động theo thứ tự tăng dần đối với các mảng đã được sắp xếp. Đầu tiên, nó so sánh các phần tử ở giữa mảng với giá trị mục tiêu. Nếu phần tử phù hợp với giá trị mục tiêu, nó sẽ trả về vị trí của nó trong mảng. Nếu giá trị của phần tử lớn hơn giá trị mục tiêu, tiếp tục tìm kiếm ở nửa dưới của mảng.

Xem thêm
array.new_float array.insert array.slice array.reverse order.ascending order.descending

array.sort

Hàm này sắp xếp các phần tử trong mảng.

array.sort(id, order)

Ví dụ

pine
// array.sort example a = array.new_float(0,0) for i = 0 to 5 array.push(a, high[i]) array.sort(a, order.descending) if barstate.islast runtime.log(str.tostring(a))

tham số

  • id (int[]/float[]/string[]) Đối tượng mảng.
  • order(sort_order) Lệnh thứ tự: order.ascending (bằng mặc định) hoặc order.descending.

Xem thêm
array.new_float array.insert array.slice array.reverse order.ascending order.descending

array.sort_indices

Trả về một mảng chỉ mục, sẽ truy cập các phần tử của nó theo thứ tự của nó khi được sử dụng để chỉ mục mảng gốc. Nó không sửa đổi mảng gốc.

array.sort_indices(id, order)

Ví dụ

pine
// array.sort_indices a = array.from(5, -2, 0, 9, 1) sortedIndices = array.sort_indices(a) // [1, 2, 4, 0, 3] indexOfSmallestValue = array.get(sortedIndices, 0) // 1 smallestValue = array.get(a, indexOfSmallestValue) // -2 plot(smallestValue)

tham số

  • id (int[]/float[]/string[]) Đối tượng mảng.
  • order(sort_order) Sort order: order.ascending hoặc order.descending.

Xem thêm
array.new_float array.insert array.slice array.reverse order.ascending order.descending

array.clear

Chức năng này sẽ xóa tất cả các phần tử trong mảng.

array.clear(id)

Ví dụ

pine
// array.clear example a = array.new_float(5,high) array.clear(a) array.push(a, close) plot(array.get(a,0)) plot(array.size(a))

tham số

  • id(any array type) đối tượng mảng

Xem thêm
array.new_float array.insert array.push array.remove array.pop

array.concat

Chức năng này được sử dụng để kết hợp hai mảng. Nó đẩy tất cả các phần tử từ mảng thứ hai đến mảng đầu tiên và sau đó trả về mảng đầu tiên.

array.concat(id1, id2)

Ví dụ

pine
// array.concat example a = array.new_float(0,0) b = array.new_float(0,0) for i = 0 to 4 array.push(a, high[i]) array.push(b, low[i]) c = array.concat(a,b) plot(array.size(a)) plot(array.size(b)) plot(array.size(c))

Trả giá trị
Mảng thứ nhất có các phần tử kết hợp từ mảng thứ hai.

tham số

  • id1(any array type) Đối tượng mảng đầu tiên。
  • id2(any array type) Đối tượng mảng thứ hai

Xem thêm
array.new_float array.insert array.slice

array.copy

Chức năng này tạo một bản sao của mảng hiện có.

array.copy(id)

Ví dụ

pine
// array.copy example length = 5 a = array.new_float(length, close) b = array.copy(a) a := array.new_float(length, open) plot(array.sum(a) / length) plot(array.sum(b) / length)

Trả giá trị
Một bản sao của mảng.

tham số

  • id(any array type) đối tượng mảng

Xem thêm
array.new_float array.get array.slice array.sort

array.stdev

Chức năng này trả về chênh lệch chuẩn của các phần tử mảng.

array.stdev(id, biased)

Ví dụ

pine
// array.stdev example a = array.new_float(0) for i = 0 to 9 array.push(a, close[i]) plot(array.stdev(a))

Trả giá trị
Các nguyên tố của mảng có tiêu chuẩn khác nhau.

tham số

  • id (int[]/float[]) Đối tượng mảng.
  • biased(series bool) xác định ước tính nào nên được sử dụng.

Ghi chú
NếubiasedNếu true, hàm sẽ sử dụng ước tính có thiên vị cho toàn bộ tổng thể để tính toán, và nếu false - ước tính không thiên vị cho mẫu.

Xem thêm
array.new_float array.max array.min array.avg

array.standardize

Chức năng này trả về mảng các phần tử tiêu chuẩn hóa.

array.standardize(id)

Ví dụ

pine
// array.standardize example a = array.new_float(0) for i = 0 to 9 array.push(a, close[i]) b = array.standardize(a) plot(array.min(b)) plot(array.max(b))

Trả giá trị
Mảng của các yếu tố tiêu chuẩn hóa.

tham số

  • id (int[]/float[]) Đối tượng mảng.

Xem thêm
array.max array.min array.mode array.avg array.variance array.stdev

array.variance

Hàm này trả về sự chênh lệch của các phần tử trong mảng.

array.variance(id, biased)

Ví dụ

pine
// array.variance example a = array.new_float(0) for i = 0 to 9 array.push(a, close[i]) plot(array.variance(a))

Trả giá trị
Phân số của các phần tử trong mảng.

tham số

  • id (int[]/float[]) Đối tượng mảng.
  • biased(series bool) xác định ước tính nào nên được sử dụng.

Ghi chú
NếubiasedNếu true, hàm sẽ sử dụng ước tính có thiên vị cho toàn bộ tổng thể để tính toán, và nếu false - ước tính không thiên vị cho mẫu.

Xem thêm
array.new_float array.stdev array.min array.avg array.covariance

array.covariance

Chức năng này trả về sự chênh lệch đồng phương của hai mảng.

array.covariance(id1, id2, biased)

Ví dụ

pine
// array.covariance example a = array.new_float(0) b = array.new_float(0) for i = 0 to 9 array.push(a, close[i]) array.push(b, open[i]) plot(array.covariance(a, b))

Trả giá trị
Khác nhau đồng phương của hai mảng.

tham số

  • id1 (int[]/float[]) Đối tượng mảng.
  • id2 (int[]/float[]) Đối tượng mảng.
  • biased(series bool) xác định ước tính nào nên được sử dụng.

Ghi chú
NếubiasedNếu true, hàm sẽ sử dụng ước tính có thiên vị cho toàn bộ tổng thể để tính toán, và nếu false - ước tính không thiên vị cho mẫu.

Xem thêm
array.new_float array.max array.stdev array.avg array.variance

array.fill

Chức năng này đặt các phần tử của mảng thành các giá trị đơn lẻ. Nếu không chỉ định chỉ mục, đặt tất cả các phần tử. Nếu chỉ cung cấp chỉ mục bắt đầu (đặc định là 0), đặt các phần tử bắt đầu từ chỉ mục đó. Nếu sử dụng hai tham số chỉ mục cùng một lúc, đặt các phần tử được chỉ mục từ đầu đến nhưng không bao gồm chỉ mục kết thúc (đặc định là na).

array.fill(id, value, index_from, index_to)

Ví dụ

pine
// array.fill example a = array.new_float(10) array.fill(a, close) plot(array.sum(a))

tham số

  • id(any array type) đối tượng mảng
  • value (series <type of the array's elements>) dùng để lấp đầy mảng.
  • index_from(series int) Chỉ mục bắt đầu, mặc định là 0 <unk>
  • index_to(series int) kết thúc chỉ mục, mặc định là na。 phải lớn hơn chỉ mục của phần tử cuối cùng được thiết lập。

Xem thêm
array.new_float array.set array.slice

array.includes

Nếu tìm thấy giá trị này trong mảng, hàm sẽ trả về true, nếu không sẽ trả về false.

array.includes(id, value)

Ví dụ

pine
// array.includes example a = array.new_float(5,high) p = close if array.includes(a, high) p := open plot(p)

Trả giá trị
Nếu giá trị này được tìm thấy trong mảng, thì đúng, nếu không thì sai.

tham số

  • id(any array type) đối tượng mảng
  • value (series <type of the array's elements>Các giá trị tìm kiếm trong mảng.

Xem thêm
array.new_float array.indexof array.shift array.remove array.insert

array.insert

Chức năng này thay đổi nội dung của mảng bằng cách thêm các phần tử mới ở vị trí thích hợp.

array.insert(id, index, value)

Ví dụ

pine
// array.insert example a = array.new_float(5, close) array.insert(a, 0, open) plot(array.get(a, 5))

tham số

  • id(any array type) đối tượng mảng
  • index(series int) Chỉ mục của giá trị chèn.
  • value (series <type of the array's elements>Các giá trị được thêm vào mảng

Xem thêm
array.new_float array.set array.push array.remove array.pop array.unshift

array.join

Chức năng này tạo ra và trả về một chuỗi mới bằng cách kết nối tất cả các phần tử của mảng, được phân chia bởi một chuỗi phân cách được chỉ định.

array.join(id, separator)

Ví dụ

pine
// array.join example a = array.new_float(5, 5) runtime.log(array.join(a, ","))

tham số

  • id (int[]/float[]/string[]) Đối tượng mảng.
  • separator(series string) Dùng để phân chia các phần tử của mỗi mảng.

Xem thêm
array.new_float array.set array.insert array.remove array.pop array.unshift

array.lastindexof

Chức năng này trả về chỉ số lần xuất hiện cuối cùng của giá trị. Nếu không tìm thấy giá trị đó, trả về -1.

array.lastindexof(id, value)

Ví dụ

pine
// array.lastindexof example a = array.new_float(5,high) index = array.lastindexof(a, high) plot(index)

Trả giá trị
Chỉ mục các nguyên tố.

tham số

  • id(any array type) đối tượng mảng
  • value (series <type of the array's elements>Các giá trị tìm kiếm trong mảng.

Xem thêm
array.new_float array.set array.push array.remove array.insert

array.max

Chức năng này trả về giá trị lớn nhất, hoặc giá trị lớn nhất thứ n trong mảng.

array.max(id, nth)

Ví dụ

pine
// array.max a = array.from(5, -2, 0, 9, 1) secondHighest = array.max(a, 2) // 1 plot(secondHighest)

Trả giá trị
Giá trị lớn nhất trong mảng hoặc giá trị lớn nhất thứ n

tham số

  • id (int[]/float[]) Đối tượng mảng.
  • nth(series int) trả về giá trị lớn nhất thứ n, trong đó 0 là giá trị lớn nhất.

Xem thêm
array.new_float array.min array.sum

array.min

Chức năng này trả về giá trị tối thiểu, hoặc giá trị tối thiểu thứ n trong chuỗi được đưa ra.

array.min(id, nth)

Ví dụ

pine
// array.min a = array.from(5, -2, 0, 9, 1) secondLowest = array.min(a, 1) // 0 plot(secondLowest)

Trả giá trị
Giá trị nhỏ nhất trong mảng hoặc giá trị nhỏ nhất thứ n

tham số

  • id (int[]/float[]) Đối tượng mảng.
  • nth(series int) Nhận được giá trị tối thiểu thứ n, trong đó 0 là giá trị tối thiểu.

Xem thêm
array.new_float array.max array.sum

array.median

Hàm này trả về số trung bình của các phần tử trong mảng.

array.median(id)

Ví dụ

pine
// array.median example a = array.new_float(0) for i = 0 to 9 array.push(a, close[i]) plot(array.median(a))

Trả giá trị
Số trung bình của các phần tử trong mảng.

tham số

  • id (int[]/float[]) Đối tượng mảng.

Xem thêm
array.avg array.variance array.min

array.mode

Chức năng này trả về mô hình của các phần tử mảng. Nếu có nhiều giá trị có cùng tần số, trả về giá trị tối thiểu.

array.mode(id)

Ví dụ

pine
// array.mode example a = array.new_float(0) for i = 0 to 9 array.push(a, close[i]) plot(array.mode(a))

Trả giá trị
Mô hình của các phần tử trong mảng.

tham số

  • id (int[]/float[]) Đối tượng mảng.

Xem thêm
array.new_float array.avg array.variance array.min

array.percentile_linear_interpolation

Trả về phần trăm của giá trị mảng được chỉ định (% số) nhỏ hơn hoặc bằng giá trị của nó, sử dụng giá trị đệm tuyến tính.

array.percentile_linear_interpolation(id, percentage)

tham số

  • id (int[]/float[]) Đối tượng mảng.
  • percentage(series int/float) phải bằng hoặc nhỏ hơn phần trăm của giá trị trả về.

Ghi chú
Trong thống kê, tỷ lệ phần trăm là tỷ lệ phần trăm của các mục xếp hạng xuất hiện trên hoặc dưới một số điểm nhất định. Đo lường này cho thấy tỷ lệ phần trăm của phân bố tần số tiêu chuẩn ở cấp độ phần trăm thấp hơn so với bạn đo.

Xem thêm
array.new_float array.insert array.slice array.reverse order.ascending order.descending

array.percentile_nearest_rank

Sử dụng phương pháp xếp hạng gần nhất để trả về giá trị của mảng được chỉ định là phần trăm (% số) nhỏ hơn hoặc bằng giá trị của nó.

array.percentile_nearest_rank(id, percentage)

tham số

  • id (int[]/float[]) Đối tượng mảng.
  • percentage(series int/float) phải bằng hoặc nhỏ hơn phần trăm của giá trị trả về.

Ghi chú
Trong thống kê, tỷ lệ phần trăm là tỷ lệ phần trăm của các mục xếp hạng xuất hiện trên một số điểm hoặc dưới một số điểm. Đo lường này cho thấy tỷ lệ phần trăm của phân bố tần số tiêu chuẩn của thứ hạng phần trăm mà bạn đang đo.

Xem thêm
array.new_float array.insert array.slice array.reverse order.ascending order.descending

array.percentrank

Trả về thứ tự phần trăm của giá trị trung bình của mảng.

array.percentrank(id, index)

tham số

  • id (int[]/float[]) Đối tượng mảng.
  • index(series int) Tính giá trị theo thứ hạng phần trăm của nó.

Ghi chú
Trình xếp hạng phần trăm là phần trăm số phần tử trong mảng nhỏ hơn hoặc bằng với giá trị tham chiếu.

Xem thêm
array.new_float array.insert array.slice array.reverse order.ascending order.descending

array.range

Hàm này trả về sự khác biệt giữa giá trị tối thiểu và giá trị tối đa của mảng.

array.range(id)

Ví dụ

pine
// array.range example a = array.new_float(0) for i = 0 to 9 array.push(a, close[i]) plot(array.range(a))

Trả giá trị
Sự khác biệt giữa giá trị tối thiểu và giá trị tối đa trong mảng.

tham số

  • id (int[]/float[]) Đối tượng mảng.

Xem thêm
array.new_float array.min array.max array.sum

array.remove

Chức năng này thay đổi nội dung của mảng bằng cách xóa các phần tử có chỉ mục được chỉ định.

array.remove(id, index)

Ví dụ

pine
// array.remove example a = array.new_float(5,high) removedEl = array.remove(a, 0) plot(array.size(a)) plot(removedEl)

Trả giá trị
Giá trị của phần tử bị xóa.

tham số

  • id(any array type) đối tượng mảng
  • index(series int) Chỉ mục các phần tử cần xóa.

Xem thêm
array.new_float array.set array.push array.insert array.pop array.shift

array.reverse

Chức năng này đảo ngược mảng <unk>: phần tử mảng đầu tiên trở thành phần tử mảng cuối cùng và phần tử mảng cuối cùng trở thành phần tử mảng đầu tiên <unk>.

array.reverse(id)

Ví dụ

pine
// array.reverse example a = array.new_float(0) for i = 0 to 9 array.push(a, close[i]) plot(array.get(a, 0)) array.reverse(a) plot(array.get(a, 0))

tham số

  • id(any array type) đối tượng mảng

Xem thêm
array.new_float array.sort array.push array.set array.avg

array.from

Chức năng này sử dụng một số lượng các tham số thay đổi thuộc một trong các loại sau: int, float, bool, string, line, color, linefill, và trả về một mảng thuộc loại tương ứng.

array.from(arg0, arg1, ...)

Ví dụ

pine
// array.from_example arr = array.from("Hello", "World!") // arr (string[]) will contain 2 elements: {Hello}, {World!}. plot(close)

Trả giá trị
Giá trị của các phần tử trong mảng.

tham số

  • arg0, arg1, ...(series int/float/bool/color/string/line/linefill) Các tham số của mảng.

array.new

Chức năng này tạo ra một<type>Đối tượng mảng nguyên tố.

array.new(size, initial_value)

Ví dụ

pine
// array.new<string> example a = array.new<string>(1, "Hello, World!") runtime.log(array.get(a, 0))

Ví dụ

pine
// array.new<color> example a = array.new<color>() array.push(a, color.red) array.push(a, color.green) plot(close, color = array.get(a, close > open ? 1 : 0))

Ví dụ

pine
// array.new<float> example length = 5 var a = array.new<float>(length, close) if array.size(a) == length array.remove(a, 0) array.push(a, close) plot(array.sum(a) / length, "SMA")

Ví dụ

pine
// array.new<line> example // draw last 15 lines var a = array.new<line>() array.push(a, line.new(bar_index - 1, close[1], bar_index, close)) if array.size(a) > 15 ln = array.shift(a) line.delete(ln)

Trả giá trị
ID của đối tượng mảng có thể được sử dụng với các mảng khác.*Chức năng ()

tham số

  • sizeKích thước ban đầu của chuỗi (series int) ≠ 0 ≠ 0
  • initial_value(series <type>) là giá trị ban đầu của tất cả các phần tử chuỗi.

Ghi chú
Chỉ mục của mảng bắt đầu từ 0.
Nếu bạn muốn khởi tạo một mảng và chỉ định tất cả các phần tử của nó cùng một lúc, hãy sử dụng hàm array.from.

Xem thêm
array.from array.push array.get array.size array.remove array.shift array.sum

array.new_bool

Chức năng này tạo ra một đối tượng mảng mới bao gồm các phần tử loại bool.

array.new_bool(size, initial_value)

Ví dụ

pine
// array.new_bool example length = 5 a = array.new_bool(length, close > open) plot(array.get(a, 0) ? close : open)

Trả giá trị
ID của đối tượng mảng có thể được sử dụng với các mảng khác.*Chức năng ()

tham số

  • sizeKích thước ban đầu của chuỗi (series int) ≠ 0 ≠ 0
  • initial_value(series bool) Giá trị ban đầu của tất cả các phần tử chuỗi.

Ghi chú
Chỉ mục của mảng bắt đầu từ 0.

Xem thêm
array.new_float array.get array.slice array.sort

array.new_float

Chức năng này tạo ra một đối tượng mảng mới của các phần tử kiểu floating point.

array.new_float(size, initial_value)

Ví dụ

pine
// array.new_float example length = 5 a = array.new_float(length, close) plot(array.sum(a) / length)

Trả giá trị
ID của đối tượng mảng có thể được sử dụng với các mảng khác.*Chức năng ()

tham số

  • sizeKích thước ban đầu của chuỗi (series int) ≠ 0 ≠ 0
  • initial_value(series int/float) Giá trị ban đầu của tất cả các phần tử chuỗi.

Ghi chú
Chỉ mục của mảng bắt đầu từ 0.

Xem thêm
array.new_bool array.get array.slice array.sort

array.new_int

Hàm này tạo ra một đối tượng mảng mới gồm các phần tử loại int.

array.new_int(size, initial_value)

Ví dụ

pine
// array.new_int example length = 5 a = array.new_int(length, int(close)) plot(array.sum(a) / length)

Trả giá trị
ID của đối tượng mảng có thể được sử dụng với các mảng khác.*Chức năng ()

tham số

  • sizeKích thước ban đầu của chuỗi (series int) ≠ 0 ≠ 0
  • initial_value(series int) Giá trị ban đầu của tất cả các phần tử chuỗi.

Ghi chú
Chỉ mục của mảng bắt đầu từ 0.

Xem thêm
array.new_float array.get array.slice array.sort

array.new_string

Chức năng này tạo ra một đối tượng mảng mới của một phần tử kiểu chuỗi.

array.new_string(size, initial_value)

Ví dụ

pine
// array.new_string example length = 5 a = array.new_string(length, "text") runtime.log(array.get(a, 0))

Trả giá trị
ID của đối tượng mảng có thể được sử dụng với các mảng khác.*Chức năng ()

tham số

  • sizeKích thước ban đầu của chuỗi (series int) ≠ 0 ≠ 0
  • initial_value(series string) Giá trị ban đầu của tất cả các phần tử chuỗi.

Ghi chú
Chỉ mục của mảng bắt đầu từ 0.

Xem thêm
array.new_float array.get array.slice

array.get

Hàm này trả về giá trị của phần tử trong chỉ mục được chỉ định.

array.get(id, index)

Ví dụ

pine
// array.get example a = array.new_float(0) for i = 0 to 9 array.push(a, close[i] - open[i]) plot(array.get(a, 9))

Trả giá trị
Giá trị của các phần tử trong mảng.

tham số

  • id(any array type) đối tượng mảng
  • index(series int) Để trả về giá trị của một phần tử.

Xem thêm
array.new_float array.set array.slice array.sort

array.push

Chức năng này sẽ thêm một giá trị vào mảng.

array.push(id, value)

Ví dụ

pine
// array.push example a = array.new_float(5, 0) array.push(a, open) plot(array.get(a, 5))

tham số

  • id(any array type) đối tượng mảng
  • value (series <type of the array's elements>) được thêm vào phần tử cuối của mảng.

Xem thêm
array.new_float array.set array.insert array.remove array.pop array.unshift

array.set

Chức năng này đặt giá trị của phần tử thành chỉ mục được chỉ định.

array.set(id, index, value)

Ví dụ

pine
// array.set example a = array.new_float(10) for i = 0 to 9 array.set(a, i, close[i]) plot(array.sum(a) / 10)

tham số

  • id(any array type) đối tượng mảng
  • index(series int) Cần sửa chỉ mục của phần tử.
  • value (series <type of the array's elements>Các giá trị mới cần thiết.

Xem thêm
array.new_float array.get array.slice

array.sum

Hàm này trả về tổng số các phần tử của mảng.

array.sum(id)

Ví dụ

pine
// array.sum example a = array.new_float(0) for i = 0 to 9 array.push(a, close[i]) plot(array.sum(a))

Trả giá trị
Tổng các phần tử của mảng.

tham số

  • id (int[]/float[]) Đối tượng mảng.

Xem thêm
array.new_float array.max array.min

array.avg

Hàm này trả về giá trị trung bình của các phần tử trong mảng.

array.avg(id)

Ví dụ

pine
// array.avg example a = array.new_float(0) for i = 0 to 9 array.push(a, close[i]) plot(array.avg(a))

Trả giá trị
Giá trị trung bình của các phần tử trong mảng.

tham số

  • id (int[]/float[]) Đối tượng mảng.

Xem thêm
array.new_float array.max array.min array.stdev

array.indexof

Chức năng này trả về giá trị lần đầu tiên xuất hiện. Nếu không tìm thấy giá trị đó, trả về -1.

array.indexof(id, value)

Ví dụ

pine
// array.indexof example a = array.new_float(5,high) index = array.indexof(a, high) plot(index)

Trả giá trị
Chỉ mục các nguyên tố.

tham số

  • id(any array type) đối tượng mảng
  • value (series <type of the array's elements>Các giá trị tìm kiếm trong mảng.

Xem thêm
array.lastindexof array.get array.lastindexof array.remove array.insert

strategy

hiện hữustrategyTrong các hàm tích hợp liên quan, điểm dừng và điểm dừng được định nghĩa là số nhân của giá nhảy. Ví dụ:strategy.exitChức năngprofitlossCác tham số được dùng để chỉ điểm dừng, dừng, tham số.profitThiết lập là 10, nghĩa là giá nhảy một nhân 10 là chênh lệch giá dừng, giá nhảy một là biến tích hợpsyminfo.mintick

strategy

Chức năng này đặt nhiều thuộc tính chính sách:
Chú ý, trích dẫn chỉ hỗ trợtitleshorttitleoverlaypyramidingdefault_qty_typedefault_qty_valueCác tham số khác có thể được thiết lập thông qua các tham số giao diện của chính sách ngôn ngữ PINE.

strategy(title, shorttitle, overlay, format, precision, scale, pyramiding, calc_on_order_fills, calc_on_every_tick, max_bars_back, backtest_fill_limits_assumption, default_qty_type, default_qty_value, initial_capital, currency, slippage, commission_type, commission_value, process_orders_on_close, close_entries_rule, margin_long, margin_short, explicit_plot_zorder, max_lines_count, max_labels_count, max_boxes_count, risk_free_rate)

Ví dụ

pine
strategy("Strategy", overlay = true) // Enter long by market if current open is greater than previous high. strategy.entry("Long", strategy.long, 1, when = open > high[1]) // Generate a full exit bracket (profit 10 points, loss 5 points per contract) from the entry named "Long". strategy.exit("Exit", "Long", profit = 10, loss = 5)

tham số

  • title(const string) sẽ được nhìn thấy trong các plugin chỉ số / chiến lược.
  • shorttitle(const string) là tiêu đề ngắn của chỉ số mà bạn sẽ thấy trong ví dụ biểu đồ. Các tham số là tùy chọn.
  • overlay(const bool) Nếu true, thì chỉ số này sẽ được thêm vào lớp chồng chéo của chuỗi chính. Nếu false - nó sẽ được thêm vào cửa sổ biểu đồ riêng. False mặc định.
  • format(const string) Các loại giá trị có thể định dạng chỉ số trên trục giá là: format.inherit, format.price, format.volume ≠ mặc định format.inherit ≠
  • precision(const int) Số sau số điểm nổi của giá trị chỉ số trên trục giá. Phải là số nguyên không âm và không lớn hơn 16. Nếu bỏ qua, hãy sử dụng định dạng chuỗi cha. Nếu format là format.inherit và đặt tham số này, format sẽ thay đổi thành format.price.
  • scale(scale_type) Chỉ số nên đi kèm với tọa độ giá. Các giá trị có thể là: scale.right,scale.left,scale.none. Giá trị scale.none chỉ có thể được sử dụng kết hợp với cài đặt 'overlay=true'.
  • pyramiding(const int) Số lượng lớn nhất cho phép trong cùng một hướng. Nếu giá trị này là 0, chỉ có một lệnh nhập được mở trong cùng một hướng và bất kỳ lệnh nhập nào khác sẽ bị từ chối.
  • calc_on_order_fills(const bool) Tính thêm lệnh intrabar. Nếu tham số được đặt thành true hoặc false, thì chiến lược sẽ tính lại một lần nữa khi dòng K được lấp đầy sau khi đặt lệnh (không chỉ khi đóng dòng k).
  • calc_on_every_tick(const bool) Tính toán chính sách intrabar bổ sung. Nếu tham số là true, chính sách sẽ tính toán mỗi giây trong thời gian thực mà không đóng k line.
  • max_bars_back(const int) Số thấu tích tối đa có thể sử dụng trong chiến lược tham chiếu lịch sử. Nếu tham chiếu dữ liệu lịch sử của biến trong mã script thì '<' được sử dụng[Trong trường hợp đó, nếu bạn có một hàm mà bạn muốn thay đổi, thì tham số này sẽ được áp dụng cho mỗi biến tích hợp hoặc biến người dùng trong kịch bản. Kích thước vùng đệm thay đổi trong kịch bản Pine thường được phát hiện tự động. Tuy nhiên, trong một số trường hợp, điều này là không thể, đó là lý do tại sao tham số cho phép người dùng đặt giới hạn thấp hơn cho giá trị này.
  • backtest_fill_limits_assumption(const int) Giá giới hạn thực hiện giả định. Chỉ khi giá thị trường vượt quá mức giá giới hạn, giá giới hạn sẽ được giao dịch tại intrabar.
  • default_qty_type(const string) được xác định choqtyGiá trị của tham số được thể hiện trong hàm strategy.entry hoặc strategy.order. Các giá trị có thể là: strategy.fixed thể hiện hợp đồng / cổ phiếu / số giờ, strategy.cash thể hiện số tiền, hoặc strategy.percent_of_equity thể hiện phần trăm quyền lợi có sẵn.
  • default_qty_value(const int/float) Số lượng giao dịch mặc định của hàm strategy.entry hoặc strategy.order, khi tham số 'qty' của chúng không được định nghĩa, đơn vị của nó được xác định bởi tham số được sử dụng cùng với tham số 'default_qty_type'.
  • currency(const string) Tiền tệ tài khoản của chiến lược này。 có thể chọn。 giá trị mặc định là tiền tệ của hàng hóa trên biểu đồ。 giá trị có thể: currency.NONE, currency.USD, currency.EUR, currency.AUD, currency.GBP, currency.NZD, currency.CAD, currency.CHF, currency.HKD, currency.JPY, currency.NOK, currency.SEK, currency.SGD, currency.TRY, currency.ZAR, currency.BTC, currency.ETH, currency.MYR, currency.KRW。
  • slippage(const int) Điểm trượt sử dụng tick làm đơn vị đề nghị, sẽ được thêm / trừ đi từ giá giao dịch của đơn mua / bán hoặc lệnh dừng. Nếu mintick = 0.01 và điểm trượt = 5, tổng điểm trượt sẽ là 5 * 0.01 = 0.05
  • commission_type(const string) Loại hoa hồng cho mỗi đơn đặt hàng. Các giá trị được phép là: strategy.commission.percent, strategy.commission.cash_per_contract, strategy.commission.cash_per_order.
  • commission_value(const int/float) Giá trị hoa hồng của đơn hàng. Tùy thuộc vào loại được chọn (loại hoa hồng) bao gồm tỷ lệ phần trăm hoặc số tiền.
  • process_orders_on_close(const bool) khi được đặt thành <unk>true<unk>, sẽ tạo ra các nỗ lực khác để thực hiện lệnh sau khi chọn kết thúc biểu đồ và hoàn thành tính toán chiến lược. Nếu lệnh là lệnh giá thị trường, trình mô phỏng nhà môi giới sẽ thực hiện chúng trước khi mở cửa biểu đồ tiếp theo. Nếu lệnh là giá giới hạn, lệnh sẽ chỉ được thực hiện khi đáp ứng các điều kiện giá.
  • close_entries_rule(const string) xác định thứ tự đóng lệnh. Các giá trị được phép là: 'FIFO' hoặc 'ANY'. FIFO ((Đầu tiên vào, trước khi ra; First-In, First-Out) có nghĩa là khi nhiều giao dịch được mở, giao dịch đầu tiên phải được đóng.
  • max_lines_count(const int) Hiển thị số bản đồ đường gần nhất. Giá trị mặc định là 50, giá trị tối đa cho phép là 500.
  • max_labels_count(const int) Hiển thị số hình thẻ gần đây nhất. Giá trị mặc định là 50, giá trị tối đa được phép là 500.
  • max_boxes_count(const int) Số bản vẽ cuối cùng trong hộp được hiển thị. Giá trị mặc định là 50, giá trị tối đa được phép là 500.
  • margin_long(const int/float) Tiền bảo lãnh đa đầu là tỷ lệ phần trăm của giá mua chứng khoán mà vị trí đa đầu phải được chi trả bằng tiền mặt hoặc thế chấp. Phải không âm.
  • margin_short(const int/float) Tiền bảo lãnh đầu trống là tỷ lệ phần trăm của giá mua chứng khoán mà vị trí đầu trống phải được bảo vệ bằng tiền mặt hoặc thế chấp. Phải không âm.
  • explicit_plot_zorder(const bool) Chỉ định thứ tự vẽ, điền và hiển thị đường ngang của chỉ số. Nếu đúng, sẽ vẽ biểu đồ theo thứ tự chúng xuất hiện trong mã chỉ số, mỗi biểu đồ mới hơn sẽ được vẽ trên biểu đồ trước đó. Điều này chỉ áp dụng cho plot*() hàm, fill và hline.
  • initial_capital(const int/float) Số tiền ban đầu có thể được sử dụng cho giao dịch chiến lược, được biểu thị bằng đồng tiền được xác định trong bảng tiền tệ. ☐ tùy chọn ☐ giá trị mặc định là 1000000 ☐
  • risk_free_rate(const int/float) Tỷ lệ lợi nhuận không rủi ro là sự thay đổi phần trăm hàng năm của giá trị đầu tư với rủi ro tối thiểu hoặc bằng không, được sử dụng để tính tỷ lệ Sharpe và Sortino. Giá trị mặc định là 2

Ghi chú
Mỗi kịch bản chiến lược phải có một cuộc gọi chiến lược.
Mã PineScript sử dụng tham số calc_on_every_tick = true có thể tính toán khác nhau cho dữ liệu lịch sử và dữ liệu thời gian thực.
Khi sử dụng loại biểu đồ phi tiêu chuẩn làm cơ sở chiến lược, bạn cần biết kết quả sẽ khác nhau. Các lệnh sẽ được thực hiện với giá của biểu đồ đó (ví dụ: Heikin Ashi sẽ sử dụng giá của Heikin Ashi (trung bình) không phải là giá thị trường thực sự). Do đó, chúng tôi khuyên bạn nên sử dụng loại biểu đồ tiêu chuẩn trong chiến lược của bạn.

Xem thêm
indicator

strategy.entry

Đây là lệnh vào thị trường. Nếu lệnh có cùng ID đã được đặt, lệnh có thể được sửa đổi. Nếu không có lệnh có ID được chỉ định, lệnh mới sẽ được đưa ra. Để ngừng lệnh vào thị trường, bạn nên sử dụng lệnh strategy.cancel hoặc strategy.cancel_all.

strategy.entry(id, direction, qty, limit, stop, oca_name, oca_type, comment, when, alert_message)

Ví dụ

pine
strategy(title = "simple strategy entry example") strategy.entry("enter long", strategy.long, 1, when = open > high[1]) // enter long by market if current open great then previous high strategy.entry("enter short", strategy.short, 1, when = open < low[1]) // enter short by market if current open less then previous low

tham số

  • id(series string) Các tham số cần thiết.  Biểu định đơn hàng.  Bạn có thể hủy hoặc sửa đổi đơn hàng bằng cách tham khảo biểu tượng của nó.
  • direction(strategy_direction) Một tham số cần thiết. Định hướng giữ vị trí thị trường: 'strategy.long' là nhiều đầu, 'strategy.short' là đầu trống.
  • qty(series int/float) Các tham số tùy chọn. Số hợp đồng / số cổ phiếu / số giờ / số đơn vị giao dịch.
  • limit(series int/float) Tùy chọn tham số. Giá giới hạn của đơn đặt hàng. Nếu đã chỉ định, loại đơn đặt hàng là "limit" hoặc "stop-limit". Các loại đơn đặt hàng khác là "NaN".
  • stop(series int/float) Tùy chọn tham số. Giá dừng của đơn đặt hàng. Nếu đã được chỉ định, loại đơn đặt hàng là "stop" hoặc "stop-limit". Các loại đơn đặt hàng khác là "NaN".
  • oca_name(series string) tham số tùy chọn. Lệnh này thuộc tên nhóm OCA. Nếu lệnh không thuộc bất kỳ nhóm OCA nào, nên có một ký tự trống.Lưu ý: FMZ không hỗ trợ tham số này.
  • ~~oca_type~~Các giá trị được phép là: strategy.oca.none - đơn đặt hàng không nên thuộc bất kỳ nhóm OCA cụ thể nào; strategy.oca.cancel - đơn đặt hàng nên thuộc nhóm OCA, một khi đơn đặt hàng được giao, tất cả các đơn đặt hàng khác trong cùng nhóm sẽ bị hủy bỏ; strategy.oca.reduce - đơn đặt hàng nên thuộc nhóm OCA, nếu số lượng hợp đồng đặt hàng X đã được đặt, số lượng hợp đồng đặt hàng khác trong cùng nhóm OCA sẽ giảm X.Lưu ý: FMZ không hỗ trợ tham số này.
  • comment(series string) Các tham số tùy chọn. Các chi tiết khác của đơn hàng.
  • when(series bool) tùy chọn tham số  trạng thái của lệnh  nếu true, lệnh được đặt  nếu false, không có gì xảy ra  lệnh với cùng ID được đặt trước đó không bị hủy)  giá trị mặc định là true 
  • alert_message(series string) Một tham số có thể chọn khi sử dụng dấu {{strategy.order.alert_message}} trong hộp thoại tạo thư mục cảnh báo.

strategy.close

Đây là lệnh có lệnh thoát có ID được chỉ định. Nếu có nhiều lệnh vào có cùng ID, chúng sẽ thoát cùng một lúc. Nếu không có lệnh mở có ID được chỉ định khi kích hoạt lệnh, lệnh sẽ không có hiệu lực. Lệnh này sử dụng lệnh thị trường.

strategy.close(id, when, comment, qty, qty_percent, alert_message)

Ví dụ

pine
strategy("closeEntry Demo", overlay=false) strategy.entry("buy", strategy.long, when = open > close) strategy.close("buy", when = open < close, qty_percent = 50, comment = "close buy entry for 50%") plot(strategy.position_size)

tham số

  • id(series string) Các tham số cần thiết. Các định danh lệnh. Bạn có thể đóng lệnh bằng cách tham khảo các định danh của nó.
  • when(series bool) tùy chọn tham số. Điều kiện của lệnh.
  • qty(series int/float) Các tham số tùy chọn. Số lượng hợp đồng / số cổ phiếu / số giờ / đơn vị rút khỏi giao dịch.
  • qty_percent(series int/float) xác định phần trăm cổ phiếu không có cổ phiếu ((0-100) ◦ ưu tiên của nó thấp hơn ưu tiên của tham số 'qty' ◦ tùy chọn ◦ mặc định là 100 ◦
  • comment(series string) Các tham số tùy chọn. Các chi tiết khác của đơn hàng.
  • alert_message(series string) Một tham số có thể chọn khi sử dụng dấu {{strategy.order.alert_message}} trong hộp thoại tạo thư mục cảnh báo.

strategy.close_all

Quay khỏi vị trí thị trường hiện tại và giữ nguyên nó.

strategy.close_all(when, comment, alert_message)

Ví dụ

pine
strategy("closeAll Demo", overlay=false) strategy.entry("buy", strategy.long, when = open > close) strategy.close_all(when = open < close, comment = "close all entries") plot(strategy.position_size)

tham số

  • when(series bool) tùy chọn tham số. Điều kiện của lệnh.
  • comment(series string) Các tham số tùy chọn. Các chi tiết khác của đơn hàng.
  • alert_message(series string) Một tham số có thể chọn khi sử dụng dấu {{strategy.order.alert_message}} trong hộp thoại tạo thư mục cảnh báo.

strategy.exit

Đây là lệnh thoát khỏi vị trí thị trường nhập hoặc toàn thị trường. Nếu lệnh có cùng ID đã được đặt, lệnh có thể được sửa đổi. Nếu lệnh nhập chưa được giao dịch, nhưng có lệnh thoát, lệnh thoát sẽ được tạm thời cho đến khi lệnh thoát có thể được đặt sau khi lệnh nhập được giao dịch. Để ngưng lệnh thoát, bạn nên sử dụng lệnh strategy.cancel hoặc strategy.cancel_all. Nếu hàm strategy.exit được gọi một lần, chỉ cần thoát một lần.

strategy.exit(id, from_entry, qty, qty_percent, profit, limit, loss, stop, trail_price, trail_points, trail_offset, oca_name, comment, when, alert_message)

Ví dụ

pine
strategy(title = "simple strategy exit example") strategy.entry("long", strategy.long, 1, when = open > high[1]) // enter long by market if current open great then previous high strategy.exit("exit", "long", profit = 10, loss = 5) // generate full exit bracket (profit 10 points, loss 5 points per contract) from entry with name "long"

tham số

  • id(series string) Các tham số cần thiết.  Biểu định đơn hàng.  Bạn có thể hủy hoặc sửa đổi đơn hàng bằng cách tham khảo biểu tượng của nó.
  • from_entry(series string) Tùy chọn tham số. Chọn exit để chỉ định dấu hiệu lệnh nhập. Chọn exit từ tất cả các vị trí bằng cách sử dụng chuỗi trống.
  • qty(series int/float) Các tham số tùy chọn. Số lượng hợp đồng / số cổ phiếu / số giờ / đơn vị rút khỏi giao dịch.
  • qty_percent(series int/float) xác định phần trăm cổ phiếu không có cổ phiếu ((0-100) ◦ ưu tiên của nó thấp hơn ưu tiên của tham số 'qty' ◦ tùy chọn ◦ mặc định là 100 ◦
  • profit(series int/float) tùy chọn. Mục tiêu lợi nhuận ((được thể hiện bằng điểm) ☐ Nếu đã được chỉ định, khi đạt được lợi nhuận được chỉ định ((điểm), hãy thoát khỏi vị trí thị trường bằng lệnh giới hạn ☐ Giá mặc định là <unk>NaN<unk>。
  • limit(series int/float) tùy chọn tham số. Mục tiêu lợi nhuận (cần chỉ định giá) Nếu đã được chỉ định, hãy thoát khỏi vị trí thị trường với giá được chỉ định (hoặc tốt hơn) Ưu tiên của tham số 'limit' cao hơn ưu tiên của tham số 'profit' (nếu giá trị không phải là 'NaN', thì 'limit' thay thế 'profit') Ưu tiên mặc định là <unk>NaN<unk>
  • loss(series int/float) tùy chọn. Stop loss ((được biểu thị bằng điểm) <unk>. Nếu đã được chỉ định, khi đạt được mức thua lỗ được chỉ định ((điểm), hãy thoát khỏi vị trí thị trường bằng một đơn dừng lỗ <unk>.
  • stop(series int/float) tùy chọn tham số. Stop loss ((cần chỉ định giá). Nếu đã được chỉ định, sẽ thoát khỏi vị trí thị trường với giá được chỉ định (hoặc tệ hơn). Tiêu chuẩn 'stop loss' có ưu tiên cao hơn so với tham số 'loss' (nếu giá trị không phải là 'NaN', thì 'stop loss' thay vì 'loss').
  • trail_price(series int/float) tùy chọn tham số. Tracking stop loss activation level ((thực hiện giá được yêu cầu)) Nếu đã được chỉ định, Tracking stop loss will be placed when the specified price level is reached. Trong tham số trail_offset, tham số được chỉ định để xác định độ lệch của giá ban đầu của Tracking stop loss ((được tính bằng điểm): Điểm X dưới mức kích hoạt để thoát khỏi đa đầu; Điểm X trên mức kích hoạt để thoát khỏi không đầu.
  • trail_points(series int/float) tùy chọn tham số: ◦ theo dõi mức kích hoạt dừng lỗ (được thể hiện bằng điểm lợi nhuận) ◦ đặt lệnh dừng theo dõi khi đạt mức giá đã tính (được thể hiện bằng số điểm lợi nhuận) ◦ nếu đã được chỉ định, khi đạt mức giá đã tính (được thể hiện bằng số điểm lợi nhuận), đặt lệnh dừng theo dõi ◦ xác định độ lệch của giá ban đầu của lệnh dừng lỗ (được tính bằng điểm) trong tham số <unk>trail_offset ◦: X điểm thấp hơn mức kích hoạt để thoát khỏi nhiều đầu; X điểm cao hơn mức kích hoạt để thoát khỏi đầu trống ◦ mặc định là <unk>NaN<unk>
  • trail_offset(series int/float) tùy chọn tham số. Tracking stop loss activation level ((được biểu thị bằng điểm). Di chuyển số điểm được sử dụng để xác định giá ban đầu của lệnh tracking stop loss: X điểm thấp hơn 'trail_price' hoặc 'trail_points' để thoát khỏi nhiều đầu; X điểm cao hơn 'trail_price' hoặc 'trail_points' để thoát khỏi đầu trống.
  • oca_name(series string) tùy chọn tham số. Tên nhóm OCA (oca_type = strategy.oca.reduce) mục tiêu lợi nhuận, dừng lỗ / theo dõi dừng lỗ. Nếu không có tên, tên sẽ được tự động tạo.Lưu ý: FMZ không hỗ trợ tham số này.
  • comment(series string) Các tham số tùy chọn. Các chi tiết khác của đơn hàng.
  • when(series bool) tùy chọn tham số  trạng thái của lệnh  nếu true, lệnh được đặt  nếu false, không có gì xảy ra  lệnh với cùng ID được đặt trước đó không bị hủy)  giá trị mặc định là true 
  • alert_message(series string) Một tham số có thể chọn khi sử dụng dấu {{strategy.order.alert_message}} trong hộp thoại tạo thư mục cảnh báo.

strategy.cancel

Đây là một lệnh gọi tên để hủy/chấm dứt tất cả các danh sách được đặt trước, được tạo ra bởi các chức năng sau: strategy.order, strategy.entry and strategy.exit.

strategy.cancel(id, when)

Ví dụ

pine
strategy(title = "simple order cancellation example") conditionForBuy = open > high[1] strategy.entry("long", strategy.long, 1, limit = low, when = conditionForBuy) // enter long using limit order at low price of current bar if conditionForBuy is true strategy.cancel("long", when = not conditionForBuy) // cancel the entry order with name "long" if conditionForBuy is false

tham số

  • id(series string) Cần phải chọn tham số。 order ID。 định vị ID này để hủy bỏ một đơn đặt hàng。
  • when(series bool) tùy chọn tham số <unk> hủy một lệnh theo ID <unk> nếu true, lệnh sẽ bị hủy <unk> mặc định là true

strategy.cancel_all

Đây là lệnh hủy/chấm dứt tất cả các lệnh đặt trước, được tạo ra bởi các chức năng sau: strategy.order, strategy.entry và strategy.exit.

strategy.cancel_all(when)

Ví dụ

pine
strategy(title = "simple all orders cancellation example") conditionForBuy1 = open > high[1] strategy.entry("long entry 1", strategy.long, 1, limit = low, when = conditionForBuy1) // enter long by limit if conditionForBuy1 is true conditionForBuy2 = conditionForBuy1 and open[1] > high[2] strategy.entry("long entry 2", strategy.long, 1, limit = ta.lowest(low, 2), when = conditionForBuy2) // enter long by limit if conditionForBuy2 is true conditionForStopTrading = open < ta.lowest(low, 2) strategy.cancel_all(conditionForStopTrading) // cancel both limit orders if the conditon conditionForStopTrading is true

tham số

  • when(series bool) tùy chọn ≠ hủy tất cả các điều kiện của lệnh ≠ tất cả các lệnh hoạt động sẽ bị hủy nếu điều kiện là đúng ≠ mặc định là true ≠ true ≠

strategy.order

Đây là lệnh đặt hàng tiếp theo. Nếu lệnh có cùng ID đã được đặt, lệnh có thể được sửa đổi. Nếu không có lệnh có ID được chỉ định, lệnh mới sẽ được đưa ra. Để dừng lệnh, lệnh strategy.cancel hoặc strategy.cancel_all nên được sử dụng.

strategy.order(id, direction, qty, limit, stop, oca_name, oca_type, comment, when, alert_message)

Ví dụ

strategy(title = "simple strategy order example") strategy.order("buy", strategy.long, 1, when = open > high[1]) // buy by market if current open great then previous high strategy.order("sell", strategy.short, 1, when = open < low[1]) // sell by market if current open less then previous low

tham số

  • id(series string) Các tham số cần thiết.  Biểu định đơn hàng.  Bạn có thể hủy hoặc sửa đổi đơn hàng bằng cách tham khảo biểu tượng của nó.
  • direction(strategy_direction) Một tham số cần thiết. Hướng đặt hàng: 'strategy.long' là mua, 'strategy.short' là bán.
  • qty(series int/float) Các tham số tùy chọn. Số hợp đồng / số cổ phiếu / số giờ / số đơn vị giao dịch.
  • limit(series int/float) Tùy chọn tham số. Giá giới hạn của đơn đặt hàng. Nếu đã chỉ định, loại đơn đặt hàng là "limit" hoặc "stop-limit". Các loại đơn đặt hàng khác là "NaN".
  • stop(series int/float) Tùy chọn tham số. Giá dừng của đơn đặt hàng. Nếu đã được chỉ định, loại đơn đặt hàng là "stop" hoặc "stop-limit". Các loại đơn đặt hàng khác là "NaN".
  • oca_name(series string) tham số tùy chọn. Lệnh này thuộc tên nhóm OCA. Nếu lệnh không thuộc bất kỳ nhóm OCA nào, nên có một ký tự trống.Lưu ý: FMZ không hỗ trợ tham số này.
  • ~~oca_type~~Các giá trị được phép là: strategy.oca.none - đơn đặt hàng không nên thuộc bất kỳ nhóm OCA cụ thể nào; strategy.oca.cancel - đơn đặt hàng nên thuộc nhóm OCA, một khi đơn đặt hàng được giao, tất cả các đơn đặt hàng khác trong cùng nhóm sẽ bị hủy bỏ; strategy.oca.reduce - đơn đặt hàng nên thuộc nhóm OCA, nếu số lượng hợp đồng đặt hàng X đã được đặt, số lượng hợp đồng đặt hàng khác trong cùng nhóm OCA sẽ giảm X.Lưu ý: FMZ không hỗ trợ tham số này.
  • comment(series string) Các tham số tùy chọn. Các chi tiết khác của đơn hàng.
  • when(series bool) tùy chọn tham số  trạng thái của lệnh  nếu true, lệnh được đặt  nếu false, không có gì xảy ra  lệnh với cùng ID được đặt trước đó không bị hủy)  giá trị mặc định là true 
  • alert_message(series string) Một tham số có thể chọn khi sử dụng dấu {{strategy.order.alert_message}} trong hộp thoại tạo thư mục cảnh báo.

strategy.opentrades.entry_bar_index

Trả về bar_index của giao dịch chưa thanh toán.

strategy.opentrades.entry_bar_index(trade_num)

Chờ 10 đường K và thanh toán.

Ví dụ

pine
strategy("`strategy.opentrades.entry_bar_index` Example") barsSinceLastEntry() => strategy.opentrades > 0 ? bar_index - strategy.opentrades.entry_bar_index(strategy.opentrades - 1) : na // Enter a long position if there are no open positions. if strategy.opentrades == 0 strategy.entry("Long", strategy.long) // Close the long position after 10 bars. if barsSinceLastEntry() >= 10 strategy.close("Long")

tham số

  • trade_num(series int) Số giao dịch của giao dịch chưa thanh toán. Số giao dịch đầu tiên là 0

Xem thêm
strategy.closedtrades.entry_bar_index strategy.closedtrades.exit_bar_index

strategy.opentrades.entry_id

ID của người nhập vào giao dịch chưa thanh toán.

strategy.opentrades.entry_id(trade_num)

Ví dụ

pine
strategy("`strategy.opentrades.entry_id` Example", overlay = true) // We enter a long position when 14 period sma crosses over 28 period sma. // We enter a short position when 14 period sma crosses under 28 period sma. longCondition = ta.crossover(ta.sma(close, 14), ta.sma(close, 28)) shortCondition = ta.crossunder(ta.sma(close, 14), ta.sma(close, 28)) // Strategy calls to enter a long or short position when the corresponding condition is met. if longCondition strategy.entry("Long entry at bar #" + str.tostring(bar_index), strategy.long) if shortCondition strategy.entry("Short entry at bar #" + str.tostring(bar_index), strategy.short) // Display ID of the latest open position. if barstate.islastconfirmedhistory runtime.log("Last opened position is " + strategy.opentrades.entry_id(strategy.opentrades - 1))

Trả giá trị
ID của người nhập vào giao dịch chưa thanh toán.

tham số

  • trade_num(series int) Số giao dịch của giao dịch chưa thanh toán. Số giao dịch đầu tiên là 0

Ghi chú
Nếu trade_num không nằm trong phạm vi, hàm này sẽ trả về na:0 đến strategy.opentrades-1。

Xem thêm
strategy.opentrades.entry_bar_index strategy.opentrades.entry_time

strategy.opentrades.entry_price

Giá khởi đầu cho giao dịch chưa thanh toán.

strategy.opentrades.entry_price(trade_num)

Ví dụ

pine
strategy("strategy.closedtrades.entry_price Example 1") // Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars. if bar_index % 15 == 0 strategy.entry("Long", strategy.long) if bar_index % 20 == 0 strategy.close("Long") // Return the entry price for the latest closed trade. entryPrice = strategy.closedtrades.entry_price(strategy.closedtrades - 1) plot(entryPrice, "Long entry price")

Tính toán giá trung bình của vị thế chưa thanh toán

Ví dụ

pine
strategy("strategy.opentrades.entry_price Example 2", pyramiding = 2) // Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars. if bar_index % 15 == 0 strategy.entry("Long", strategy.long) if bar_index % 20 == 0 strategy.close("Long") // Calculate average open position price. avgOpenPositionPrice() => sumOpenPositionPrice = 0.0 for tradeNo = 0 to strategy.opentrades - 1 sumOpenPositionPrice += strategy.opentrades.entry_price(tradeNo) * strategy.opentrades.size(tradeNo) / strategy.position_size result = nz(sumOpenPositionPrice / strategy.opentrades) plot(avgOpenPositionPrice())

tham số

  • trade_num(series int) Số giao dịch của giao dịch chưa thanh toán. Số giao dịch đầu tiên là 0

Xem thêm
strategy.closedtrades.exit_price

strategy.opentrades.entry_time

Quay trở lại thời gian UNIX của giao dịch chưa thanh toán.

strategy.opentrades.entry_time(trade_num)

Ví dụ

pine
strategy("strategy.opentrades.entry_time Example") // Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars. if bar_index % 15 == 0 strategy.entry("Long", strategy.long) if bar_index % 20 == 0 strategy.close("Long") // Calculates duration in milliseconds since the last position was opened. timeSinceLastEntry()=> strategy.opentrades > 0 ? (time - strategy.opentrades.entry_time(strategy.opentrades - 1)) : na plot(timeSinceLastEntry() / 1000 * 60 * 60 * 24, "Days since last entry")

tham số

  • trade_num(series int) Số giao dịch của giao dịch chưa thanh toán. Số giao dịch đầu tiên là 0

Xem thêm
strategy.closedtrades.entry_time strategy.closedtrades.exit_time

strategy.opentrades.profit

Losses return to uneven position trades. Losses are represented as negative values. Losses are represented as negative values. Losses are represented as negative values.

strategy.opentrades.profit(trade_num)

Quay lại lợi nhuận từ giao dịch mở cửa cuối cùng

Ví dụ

pine
strategy("`strategy.opentrades.profit` Example 1", commission_type = strategy.commission.percent, commission_value = 0.1) // Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars. if bar_index % 15 == 0 strategy.entry("Long", strategy.long) if bar_index % 20 == 0 strategy.close("Long") plot(strategy.opentrades.profit(strategy.opentrades - 1), "Profit of the latest open trade")

Tính lợi nhuận trên tất cả các giao dịch chưa thanh toán

Ví dụ

pine
strategy("`strategy.opentrades.profit` Example 2", pyramiding = 5) // Strategy calls to enter 5 long positions every 2 bars. if bar_index % 2 == 0 strategy.entry("Long", strategy.long, qty = 5) // Calculate open profit or loss for the open positions. tradeOpenPL() => sumProfit = 0.0 for tradeNo = 0 to strategy.opentrades - 1 sumProfit += strategy.opentrades.profit(tradeNo) result = sumProfit plot(tradeOpenPL(), "Profit of all open trades")

tham số

  • trade_num(series int) Số giao dịch của giao dịch chưa thanh toán. Số giao dịch đầu tiên là 0

Xem thêm
strategy.closedtrades.profit strategy.openprofit strategy.netprofit strategy.grossprofit

strategy.opentrades.size

Trả về hướng giao dịch và số lượng hợp đồng trong giao dịch chưa thanh toán. Nếu giá trị này> 0, vị trí thị trường là nhiều đầu. Nếu giá trị này < 0, vị trí thị trường là trống.

strategy.opentrades.size(trade_num)

Ví dụ

pine
strategy("`strategy.opentrades.size` Example 1") // We calculate the max amt of shares we can buy. amtShares = math.floor(strategy.equity / close) // Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars if bar_index % 15 == 0 strategy.entry("Long", strategy.long, qty = amtShares) if bar_index % 20 == 0 strategy.close("Long") // Plot the number of contracts in the latest open trade. plot(strategy.opentrades.size(strategy.opentrades - 1), "Amount of contracts in latest open trade")

Tính phần trăm lợi nhuận trung bình của giao dịch chưa thanh toán

Ví dụ

pine
strategy("`strategy.opentrades.size` Example 2") // Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars. if bar_index % 15 == 0 strategy.entry("Long", strategy.long) if bar_index % 20 == 0 strategy.close("Long") // Calculate profit for all open trades. profitPct = 0.0 for tradeNo = 0 to strategy.opentrades - 1 entryP = strategy.opentrades.entry_price(tradeNo) exitP = close profitPct += (exitP - entryP) / entryP * strategy.opentrades.size(tradeNo) * 100 // Calculate average profit percent for all open trades. avgProfitPct = nz(profitPct / strategy.opentrades)

tham số

  • trade_num(series int) Số giao dịch của giao dịch chưa thanh toán. Số giao dịch đầu tiên là 0

Xem thêm
strategy.closedtrades.size strategy.position_size strategy.opentrades strategy.closedtrades

strategy.closedtrades.entry_bar_index

Trả về bar_index của lệnh mở bán đã được thanh toán.

strategy.closedtrades.entry_bar_index(trade_num)

Ví dụ

pine
strategy("strategy.closedtrades.entry_bar_index Example") // Enter long trades on three rising bars; exit on two falling bars. if ta.rising(close, 3) strategy.entry("Long", strategy.long) if ta.falling(close, 2) strategy.close("Long") // Function that calculates the average amount of bars in a trade. avgBarsPerTrade() => sumBarsPerTrade = 0 for tradeNo = 0 to strategy.closedtrades - 1 // Loop through all closed trades, starting with the oldest. sumBarsPerTrade += strategy.closedtrades.exit_bar_index(tradeNo) - strategy.closedtrades.entry_bar_index(tradeNo) + 1 result = nz(sumBarsPerTrade / strategy.closedtrades) plot(avgBarsPerTrade())

tham số

  • trade_num(series int) Số giao dịch của giao dịch đã được thanh toán. Số giao dịch đầu tiên là 0

Xem thêm
strategy.closedtrades.exit_bar_index strategy.opentrades.entry_bar_index

strategy.closedtrades.exit_price

Quay trở lại giá khởi đầu của giao dịch đã được thanh toán.

strategy.closedtrades.exit_price(trade_num)

Ví dụ

pine
strategy("strategy.closedtrades.exit_price Example 1") // We are creating a long trade every 5 bars if bar_index % 5 == 0 strategy.entry("Long", strategy.long) strategy.close("Long") // Return the exit price from the latest closed trade. exitPrice = strategy.closedtrades.exit_price(strategy.closedtrades - 1) plot(exitPrice, "Long exit price")

Tính phần trăm lợi nhuận trung bình của tất cả các giao dịch đã thanh toán

Ví dụ

pine
strategy("strategy.closedtrades.exit_price Example 2") // Strategy calls to create single short and long trades. if bar_index == last_bar_index - 15 strategy.entry("Long Entry", strategy.long) else if bar_index == last_bar_index - 10 strategy.close("Long Entry") strategy.entry("Short", strategy.short) else if bar_index == last_bar_index - 5 strategy.close("Short") // Calculate profit for both closed trades. profitPct = 0.0 for tradeNo = 0 to strategy.closedtrades - 1 entryP = strategy.closedtrades.entry_price(tradeNo) exitP = strategy.closedtrades.exit_price(tradeNo) profitPct += (exitP - entryP) / entryP * strategy.closedtrades.size(tradeNo) * 100 // Calculate average profit percent for both closed trades. avgProfitPct = nz(profitPct / strategy.closedtrades) plot(avgProfitPct)

tham số

  • trade_num(series int) Số giao dịch của giao dịch đã được thanh toán. Số giao dịch đầu tiên là 0

Xem thêm
strategy.closedtrades.entry_price

strategy.closedtrades.exit_bar_index

Trả về bar_index <unk>

strategy.closedtrades.exit_bar_index(trade_num)

Ví dụ

pine
strategy("strategy.closedtrades.exit_bar_index Example 1") // Strategy calls to place a single short trade. We enter the trade at the first bar and exit the trade at 10 bars before the last chart bar. if bar_index == 0 strategy.entry("Short", strategy.short) if bar_index == last_bar_index - 10 strategy.close("Short") // Calculate the amount of bars since the last closed trade. barsSinceClosed = strategy.closedtrades > 0 ? bar_index - strategy.closedtrades.exit_bar_index(strategy.closedtrades - 1) : na plot(barsSinceClosed, "Bars since last closed trade")

Tính trung bình số K của mỗi giao dịch.

Ví dụ

pine
strategy("strategy.closedtrades.exit_bar_index Example 2") // Enter long trades on three rising bars; exit on two falling bars. if ta.rising(close, 3) strategy.entry("Long", strategy.long) if ta.falling(close, 2) strategy.close("Long") // Function that calculates the average amount of bars per trade. avgBarsPerTrade() => sumBarsPerTrade = 0 for tradeNo = 0 to strategy.closedtrades - 1 // Loop through all closed trades, starting with the oldest. sumBarsPerTrade += strategy.closedtrades.exit_bar_index(tradeNo) - strategy.closedtrades.entry_bar_index(tradeNo) + 1 result = nz(sumBarsPerTrade / strategy.closedtrades) plot(avgBarsPerTrade())

tham số

  • trade_num(series int) Số giao dịch của giao dịch đã được thanh toán. Số giao dịch đầu tiên là 0

Xem thêm
bar_index

strategy.closedtrades.entry_id

ID của người nhập vào giao dịch đã thanh toán.

strategy.closedtrades.entry_id(trade_num)

Ví dụ

pine
strategy("strategy.closedtrades.entry_id Example", overlay = true) var isOpen = false var openIndex = -1 // Enter a short position and close at the previous to last bar. if not barstate.ishistory and not isOpen strategy.entry("Short at bar #" + str.tostring(bar_index), strategy.short) isOpen := true openIndex := bar_index if openIndex != -1 and bar_index > openIndex + 100 strategy.close_all() // Display ID of the last entry position. if barstate.islastconfirmedhistory runtime.log("Last Entry ID is: " + strategy.closedtrades.entry_id(strategy.closedtrades - 1))

Trả giá trị
ID của người nhập vào giao dịch đã thanh toán.

tham số

  • trade_num(series int) Số giao dịch của giao dịch đã được thanh toán. Số giao dịch đầu tiên là 0

Ghi chú
Nếu trade_num không nằm trong phạm vi, hàm này sẽ trả về na:0 đến strategy.closedtrades-1。

Xem thêm
strategy.closedtrades.entry_bar_index strategy.closedtrades.entry_time

strategy.closedtrades.entry_price

Giá khởi đầu của các giao dịch đã được thanh toán.

strategy.closedtrades.entry_price(trade_num)

Ví dụ

pine
strategy("strategy.closedtrades.entry_price Example 1") // Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars. if bar_index % 15 == 0 strategy.entry("Long", strategy.long) if bar_index % 20 == 0 strategy.close("Long") // Return the entry price for the latest entry. entryPrice = strategy.closedtrades.entry_price(strategy.closedtrades - 1) plot(entryPrice, "Long entry price")

Tính phần trăm lợi nhuận trung bình của tất cả các giao dịch đã thanh toán

Ví dụ

pine
strategy("strategy.closedtrades.entry_price Example 2") // Strategy calls to create single short and long trades if bar_index == last_bar_index - 15 strategy.entry("Long Entry", strategy.long) else if bar_index == last_bar_index - 10 strategy.close("Long Entry") strategy.entry("Short", strategy.short) else if bar_index == last_bar_index - 5 strategy.close("Short") // Calculate profit for both closed trades. profitPct = 0.0 for tradeNo = 0 to strategy.closedtrades - 1 entryP = strategy.closedtrades.entry_price(tradeNo) exitP = strategy.closedtrades.exit_price(tradeNo) profitPct += (exitP - entryP) / entryP * strategy.closedtrades.size(tradeNo) * 100 // Calculate average profit percent for both closed trades. avgProfitPct = nz(profitPct / strategy.closedtrades) plot(avgProfitPct)

tham số

  • trade_num(series int) Số giao dịch của giao dịch đã được thanh toán. Số giao dịch đầu tiên là 0

Xem thêm
strategy.closedtrades.exit_price strategy.closedtrades.size strategy.closedtrades

strategy.closedtrades.entry_time

Quay trở lại thời gian UNIX của giao dịch mở cửa.

strategy.closedtrades.entry_time(trade_num)

Ví dụ

pine
strategy("strategy.closedtrades.entry_time Example", overlay = true) // Enter long trades on three rising bars; exit on two falling bars. if ta.rising(close, 3) strategy.entry("Long", strategy.long) if ta.falling(close, 2) strategy.close("Long") // Calculate the average trade duration avgTradeDuration() => sumTradeDuration = 0 for i = 0 to strategy.closedtrades - 1 sumTradeDuration += strategy.closedtrades.exit_time(i) - strategy.closedtrades.entry_time(i) result = nz(sumTradeDuration / strategy.closedtrades) // Display average duration converted to seconds and formatted using 2 decimal points if barstate.islastconfirmedhistory runtime.log(str.tostring(avgTradeDuration() / 1000, "#.##") + " seconds")

tham số

  • trade_num(series int) Số giao dịch của giao dịch đã được thanh toán. Số giao dịch đầu tiên là 0

Xem thêm
strategy.opentrades.entry_time strategy.closedtrades.exit_time time

strategy.closedtrades.profit

Lợi nhuận từ các giao dịch đã được thanh toán. Thiệt hại được thể hiện bằng giá trị âm.

strategy.closedtrades.profit(trade_num)

Ví dụ

pine
strategy("`strategy.closedtrades.profit` Example") // Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars. if bar_index % 15 == 0 strategy.entry("Long", strategy.long) if bar_index % 20 == 0 strategy.close("Long") // Calculate average gross profit by adding the difference between gross profit and commission. avgGrossProfit() => sumGrossProfit = 0.0 for tradeNo = 0 to strategy.closedtrades - 1 sumGrossProfit += strategy.closedtrades.profit(tradeNo) - strategy.closedtrades.commission(tradeNo) result = nz(sumGrossProfit / strategy.closedtrades) plot(avgGrossProfit(), "Average gross profit")

tham số

  • trade_num(series int) Số giao dịch của giao dịch đã được thanh toán. Số giao dịch đầu tiên là 0

Xem thêm
strategy.opentrades.profit strategy.closedtrades.commission

strategy.closedtrades.size

Trả về hướng giao dịch và số lượng hợp đồng trong giao dịch đã được giải quyết. Nếu giá trị này> 0, vị trí thị trường là nhiều đầu. Nếu giá trị này < 0, vị trí thị trường là trống.

strategy.closedtrades.size(trade_num)

Ví dụ

pine
strategy("`strategy.closedtrades.size` Example 1") // We calculate the max amt of shares we can buy. amtShares = math.floor(strategy.equity / close) // Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars if bar_index % 15 == 0 strategy.entry("Long", strategy.long, qty = amtShares) if bar_index % 20 == 0 strategy.close("Long") // Plot the number of contracts traded in the last closed trade. plot(strategy.closedtrades.size(strategy.closedtrades - 1), "Number of contracts traded")

Tính phần trăm lợi nhuận trung bình của các giao dịch bằng phẳng

Ví dụ

pine
strategy("`strategy.closedtrades.size` Example 2") // Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars. if bar_index % 15 == 0 strategy.entry("Long", strategy.long) if bar_index % 20 == 0 strategy.close("Long") // Calculate profit for both closed trades. profitPct = 0.0 for tradeNo = 0 to strategy.closedtrades - 1 entryP = strategy.closedtrades.entry_price(tradeNo) exitP = strategy.closedtrades.exit_price(tradeNo) profitPct += (exitP - entryP) / entryP * strategy.closedtrades.size(tradeNo) * 100 // Calculate average profit percent for both closed trades. avgProfitPct = nz(profitPct / strategy.closedtrades) plot(avgProfitPct)

tham số

  • trade_num(series int) Số giao dịch của giao dịch đã được thanh toán. Số giao dịch đầu tiên là 0

Xem thêm
strategy.opentrades.size strategy.position_size strategy.closedtrades strategy.opentrades

strategy.closedtrades.exit_time

Quay trở lại thời gian UNIX của giao dịch đã được giải quyết.

strategy.closedtrades.exit_time(trade_num)

Ví dụ

pine
strategy("strategy.closedtrades.exit_time Example 1") // Enter long trades on three rising bars; exit on two falling bars. if ta.rising(close, 3) strategy.entry("Long", strategy.long) if ta.falling(close, 2) strategy.close("Long") // Calculate the average trade duration. avgTradeDuration() => sumTradeDuration = 0 for i = 0 to strategy.closedtrades - 1 sumTradeDuration += strategy.closedtrades.exit_time(i) - strategy.closedtrades.entry_time(i) result = nz(sumTradeDuration / strategy.closedtrades) // Display average duration converted to seconds and formatted using 2 decimal points. if barstate.islastconfirmedhistory label.new(bar_index, high, str.tostring(avgTradeDuration() / 1000, "#.##") + " seconds")

X giây sau khi mở lại giao dịch.

Ví dụ

strategy("strategy.closedtrades.exit_time Example 2") // Strategy calls to emulate a single long trade at the first bar. if bar_index == 0 strategy.entry("Long", strategy.long) reopenPositionAfter(timeSec) => if strategy.closedtrades > 0 if time - strategy.closedtrades.exit_time(strategy.closedtrades - 1) >= timeSec * 1000 strategy.entry("Long", strategy.long) // Reopen last closed position after 120 sec. reopenPositionAfter(120) if ta.change(strategy.opentrades) strategy.exit("Long", stop = low * 0.9, profit = high * 2.5)

tham số

  • trade_num(series int) Số giao dịch của giao dịch đã được thanh toán. Số giao dịch đầu tiên là 0

Xem thêm
strategy.closedtrades.entry_time

strategy.risk.allow_entry_in

Chức năng này có thể được sử dụng để chỉ định vị trí mà hàm strategy.entry cho phép mở lệnh trên thị trường.

strategy.risk.allow_entry_in(value)

Ví dụ

pine
strategy("strategy.risk.allow_entry_in") strategy.risk.allow_entry_in(strategy.direction.long) strategy.entry("Long", strategy.long, when = open > close) // Instead of opening a short position with 10 contracts, this command will close long entries. strategy.entry("Short", strategy.short, when = open < close, qty = 10)

tham số

strategy.risk.max_position_size

Mục đích của quy tắc này là xác định giá trị tối đa của vị trí thị trường. Quy tắc này ảnh hưởng đến các chức năng sau:strategy.entry。 Số lượng thùng vào thùng có thể được giảm xuống còn contract/share/hand/unit (nếu cần thiết), do đó tổng giá trị vị trí không vượt quá giá trị được chỉ định trong 'strategy.risk.max_position_size'。 Nếu số lượng tối thiểu vẫn vi phạm quy tắc thì không đặt lệnh。

strategy.risk.max_position_size(contracts)

Ví dụ

pine
strategy("risk.max_position_size Demo", default_qty_value = 100) strategy.risk.max_position_size(10) strategy.entry("buy", strategy.long, when = open > close) plot(strategy.position_size) // max plot value will be 10

tham số

  • contracts(simple int/float) Các tham số cần thiết. Số lượng hợp đồng/cổ phiếu/người/đơn vị tối đa của vị trí.

math

math.abs

Nếu...number >= 0,numberGiá trị tuyệt đối củanumberNếu không -number

math.abs(number)

Trả giá trị
numberGiá trị tuyệt đối của ≠

math.acos

Chức năng acos trả về một số với hàm phản ứng ((được thể hiện bằng đường cong), ví dụ cos ((acos ((y)) = y trong phạm vi y.[-1, 1]。

math.acos(angle)

Trả giá trị
Giá trị phản chốt. Nếu y vượt quá phạm vi[-1,1], góc quay trở lại là[Trong phạm vi 0, Pi] hoặc na.

math.random

Trả về các giá trị giả ngẫu nhiên. Chức năng này sẽ tạo ra một chuỗi giá trị khác nhau cho mỗi kịch bản được thực hiện. Sử dụng các giá trị tương tự cho các tham số hạt được chọn sẽ tạo ra một chuỗi có thể lặp lại.

math.random(min, max, seed)

Trả giá trị
Một giá trị ngẫu nhiên.

tham số

  • min(series int/float) Giới hạn dưới của phạm vi các giá trị ngẫu nhiên. Không bao gồm trong phạm vi.
  • max(series int/float) Giới hạn trên của phạm vi giá trị ngẫu nhiên. Không bao gồm trong phạm vi.
  • seed(input int) tham số tùy chọn. Khi sử dụng cùng một hạt giống, nó cho phép gọi liên tục hàm này để tạo ra một tập hợp các giá trị có thể lặp lại.

math.asin

Hàm asin trả về con số phản chấn ((được thể hiện bằng đường cong), chấn ((asin ((y)) = y trong phạm vi y[-1, 1]。

math.asin(angle)

Trả giá trị
Giá trị phản chấn. Nếu y vượt quá phạm vi[-1,1], góc quay trở lại là[-Pi / 2, Pi / 2] hoặc trong phạm vi na.

math.atan

Hàm atan trả về một đoạn ngược của số ((được biểu thị bằng đường cong), tan ((atan ((y)) = y trong bất kỳ y nào.

math.atan(angle)

Trả giá trị
Giá trị cắt ngược; góc quay trở về[- Pi / 2, Pi / 2] trong phạm vi.

math.ceil

Phương thức lấy toàn bộ trở lại số nguyên nhỏ nhất (còn gần âm vô hạn) lớn hơn hoặc bằng tham số.

math.ceil(number)

Trả giá trị
Số nguyên nhỏ nhất bằng hoặc nhỏ hơn một số

Xem thêm
math.floor math.round

math.cos

Cos trở về góc của các nốt tam giác.

math.cos(angle)

Trả giá trị
Dòng tứ giác của góc.

tham số

  • angle(series int/float) góc, theo đường cong

math.exp

numberChức năng exp của e là numberPhía thứ hai, trong đó e là số Euler.

math.exp(number)

Trả giá trị
Một đại diện cho giá trị của e, nó là numberTôn giáo

Xem thêm
math.pow

math.floor

math.floor(number)

Trả giá trị
nhỏ hơn hoặc bằng số nguyên lớn nhất của một số.

Xem thêm
math.ceil math.round

math.log

Bất cứ thứ gì.numberĐối số tự nhiên của > 0 là y duy nhất, làm cho e^y = number

math.log(number)

Trả giá trị
numberCác đối số tự nhiên của .

Xem thêm
math.log10

math.log10

numberCác đối số thường được sử dụng (hoặc dựa trên 10) là các số mà bạn phải nâng 10 để có đượcnumber。10^y = number

math.log10(number)

Trả giá trị
numberCác đối số căn bản của 10

Xem thêm
math.log

math.pow

Hàm toán học

math.pow(base, exponent)

Ví dụ

pine
// math.pow plot(math.pow(close, 2))

Trả giá trị
baseTăng lênexponentNếubaselà một chuỗi, nó được tính theo nguyên tố.

tham số

  • base(series int/float) chỉ định cơ sở dùng.
  • exponent(series int/float) chỉ định chỉ số.

Xem thêm
math.sqrt math.exp

math.sign

Chữ ký của ký hiệu ký hiệu ký hiệu ký hiệu là 0 nếu ký hiệu ký hiệu lớn hơn 0, là 1.0 nếu ký hiệu ký hiệu nhỏ hơn 0.

math.sign(number)

Trả giá trị
Biểu tượng tham số

math.sin

Hàm chính tố trả về chính tố của một góc.

math.sin(angle)

Trả giá trị
Tín tông của các góc

tham số

  • angle(series int/float) góc, theo đường cong

math.sqrt

Bất cứ điều gìnumberNguyên tố của >=0 là nguyên tố duy nhất trong y >=0 khiến cho y^2 = number

math.sqrt(number)

Trả giá trị
numberNguyên nhân vuông

Xem thêm
math.pow

math.tan

Tỷ giác chính của góc tan.

math.tan(angle)

Trả giá trị
Các góc của tam giác đều thẳng.

tham số

  • angle(series int/float) góc, theo đường cong

math.round

Quay lại.numberNếu sử dụng các giá trị của các số nguyên gần nhất, thì các số nguyên được trục trặc.precisionĐối số, trả về một giá trị floating-point của một số chữ số nhỏ.

math.round(number)
math.round(number, precision)

Trả giá trị
numberCác giá trị của các số được xoay thành các số nguyên gần nhất, hoặc tùy theo độ chính xác của các số.

tham số

  • number(series int/float) Tiếp tục vòng tròn các giá trị.
  • precision(series int) Các tham số tùy chọn.numberCác số nhỏ sẽ được hình thành thành năm. Khi không cung cấp tham số, hình thành thành năm đến số nguyên gần nhất.

Ghi chú
Lưu ý rằng với giá trị 'na', hàm trả về 'na' <unk>.

Xem thêm
math.ceil math.floor

math.max

Trả về một trong nhiều giá trị lớn nhất.

math.max(number0, number1, ...)

Ví dụ

pine
// math.max plot(math.max(close, open)) plot(math.max(close, math.max(open, 42)))

Trả giá trị
Các giá trị lớn nhất trong số các giá trị đã cho.

Xem thêm
math.min

math.min

Trả về một trong những giá trị nhỏ nhất.

math.min(number0, number1, ...)

Ví dụ

pine
// math.min plot(math.min(close, open)) plot(math.min(close, math.min(open, 42)))

Trả giá trị
Giá trị nhỏ nhất trong số nhiều giá trị đã cho.

Xem thêm
math.max

math.avg

Tính trung bình của tất cả các chuỗi ((các phần tử tương ứng) <unk>

math.avg(number0, number1, ...)

Trả giá trị
Trung bình

Xem thêm
math.sum ta.cum ta.sma

math.round_to_mintick

Trả về giá trị của mintick được trỏ vào hàng hóa, tức là có thể chia bằng giá trị gần nhất của syminfo.mintick, không còn số dư, và trỏ lên.

math.round_to_mintick(number)

Trả giá trị
numberBốn vòng năm vào để chính xác đến tick.

tham số

  • number(series int/float) Tiếp tục vòng tròn các giá trị.

Xem thêm
math.ceil math.floor

math.sum

hàm sum trả về tổng hợp trượt của giá trị y cuối cùng của x.

math.sum(source, length)

Trả giá trị
lengthK-đường trả vềsourceTổng cộng

tham số

  • source(series int/float) Các giá trị của series đang được thực hiện.
  • length(series int) K số dòng (dài).

Xem thêm
ta.cum for

math.todegrees

Từ góc bằng đơn vị đường cong, quay trở lại góc tương đương gần bằng đơn vị độ.

math.todegrees(radians)

Trả giá trị
Giá trị góc được đo bằng đơn vị.

tham số

  • radians(series int/float) góc bằng đơn vị đường cong.

math.toradians

Từ góc theo đơn vị độ, trở về góc gần như tương đương với đơn vị đường cong.

math.toradians(degrees)

Trả giá trị
Giá trị góc trên đơn vị đường cong.

tham số

  • degrees(series int/float) đo góc trong đơn vị.

others

fixnan

Thay thế giá trị NaN với giá trị không NaN trước đó cho chuỗi được đưa ra.

fixnan(source)

Trả giá trị
Một loạt không có khoảng trống.

tham số

  • source (series int/float/bool/color)

Xem thêm
na nz

nz

Thay thế giá trị NaN bằng số 0 (hoặc số được chỉ định) trong chuỗi.

nz(source, replacement)
nz(source)

Ví dụ

pine
// nz plot(nz(ta.sma(close, 100)))

Trả giá trị
sourceGiá trị, nếu nó không phải lànaNếusourcenaNếu bạn dùng 1, nó sẽ trả về 0.replacementCác tham số.

tham số

  • source(series int/float/bool/color) Các giá trị series cần thực hiện.
  • replacement(series int/float/bool/color) sẽ thay thế giá trị của tất cả các giá trị thôna trong chuỗi thô nguồn.

Xem thêm
na fixnan

na

Nếu là NaN, thì giá trị thử nghiệm là <unk>.

na(x)

Trả giá trị
Nếu x không phải là một số hợp lệ, thì true ((x là NaN), nếu không thì false。

Xem thêm
fixnan nz

int

Chuyển đổi na hoặc cắt giá trị float thành int。

int(x)

Trả giá trị
Chuyển đổi thành giá trị tham số sau int.

Xem thêm
float bool color string

float

Cài đặt na thành floating.

float(x)

Trả giá trị
Chuyển đổi thành float

Xem thêm
int bool color string

alert

Các cảnh báo được tạo dựa trên các sự kiện của chức năng cảnh báo được tạo ra trước đó như là một chỉ số hoặc chiến lược thông qua hộp thoại tạo ra cảnh báo của hộp thoại.

alert(message, freq)

Ví dụ

pine
// alert() example ma = ta.sma(close, 14) xUp = ta.crossover(close, ma) if xUp // Trigger the alert the first time a cross occurs during the real-time bar. alert("Price (" + str.tostring(close) + ") crossed over MA (" + str.tostring(ma) + ").", alert.freq_once_per_bar) plot(ma) plotchar(xUp, "xUp", "▲", location.top, size = size.tiny)

tham số

  • message(series string) Thông điệp được gửi khi cảnh báo được kích hoạt.
  • freq(input string) Trigger frequency. Các giá trị có thể là: alert.freq_all ((tất cả các hàm được gọi để kích hoạt cảnh báo), alert.freq_once_per_bar ((các hàm đầu tiên trong K-đường được gọi để kích hoạt cảnh báo), alert.freq_once_per_bar_close ((các hàm được gọi chỉ xảy ra trong quá trình lặp kịch bản cuối cùng của K-đường trong thời gian thực, và khi tắt sẽ kích hoạt cảnh báo)) giá trị mặc định là alert.freq_once_per_bar.

Ghi chú
Trung tâm trợ giúp sẽ hướng dẫn cách tạo ra cảnh báo này.
Ngược lại với alertcondition, alert không được gọi là bản vẽ bổ sung.
Chức năng được gọi ở phạm vi toàn cầu và địa phương.
Các hàm được gọi không hiển thị bất cứ điều gì trên biểu đồ.
<unk>freq <unk> chỉ ảnh hưởng đến tần số kích hoạt khi sử dụng hàm này.

Xem thêm
alertcondition

alertcondition

Tạo điều kiện cảnh báo có thể được sử dụng trong hộp thoại Tạo cảnh báo. Xin lưu ý rằng alertcondition không tạo cảnh báo, nó chỉ cung cấp cho bạn nhiều tùy chọn hơn trong hộp thoại Tạo cảnh báo. Ngoài ra, hiệu ứng alertcondition không thể nhìn thấy trên biểu đồ.

alertcondition(condition, title, message)

Ví dụ

pine
// alertcondition alertcondition(close >= open, title='Alert on Green Bar', message='Green Bar!')

tham số

  • condition(series bool) là giá trị bool series của cảnh báo. Giá trị true cho thấy cảnh báo được kích hoạt, false - không có cảnh báo.
  • title(const string) Tiêu đề của điều kiện cảnh báo. Các tham số tùy chọn.
  • message(const string) Hiển thị tin nhắn khi cảnh báo được kích hoạt.

Ghi chú
Lưu ý rằng trong Pine v4, các cuộc gọi điều kiện cảnh báo sẽ tạo ra một biểu đồ bổ sung. Tất cả các cuộc gọi này sẽ được tính đến khi chúng tôi tính toán số chuỗi đầu ra của mỗi kịch bản.

Xem thêm
alert

indicator

Để phù hợp.Trading ViewCó thể sử dụng một số từ khóa khác để tạo ra một chiến lược.

Xem thêm
strategy

time

hàm time trả về thời gian UNIX của dòng K hiện tại trong phạm vi thời gian và thời gian giao dịch được chỉ định, trả về NaN nếu thời điểm không nằm trong thời gian giao dịch. Lưu ý: Không hỗ trợ FMZsessionCác tham số.

time(timeframe, session, timezone)

time(timeframe, session)

time(timeframe)

Ví dụ

pine
timeinrange(res, sess) => not na(time(res, sess, "America/New_York")) ? 1 : 0 plot(timeinrange("1", "1300-1400"), color=color.red) // This plots 1.0 at every start of 10 minute bar on a 1 minute chart: newbar(res) => ta.change(time(res)) == 0 ? 0 : 1 plot(newbar("10"))

Khi thiết lập một cuộc hội thoại, bạn có thể chỉ định không chỉ giờ và phút mà còn cả ngày trong tuần.
Nếu không có ngày được chỉ định, hãy coi thời gian giao dịch được thiết lập từ Chủ nhật (1) đến Thứ Bảy (7), tức là 1100-2000<unk> tương tự như 1100-1200:1234567<unk>.
Bạn có thể thay đổi nó bằng cách chỉ định ngày. Ví dụ, đối với hàng hóa giao dịch 7 ngày một tuần và 24 giờ giao dịch, kịch bản sau sẽ không được tô màu cho thứ Bảy và Chủ nhật:

Ví dụ

pine
// Time t1 = time(timeframe.period, "0000-0000:23456") bgcolor(t1 ? color.new(color.blue, 90) : na)

Một.sessionCác tham số có thể chứa nhiều thời gian giao dịch khác nhau, được phân cách bằng dấu phẩy. Ví dụ, kịch bản sau sẽ nổi bật biểu đồ K từ 10:00 đến 11:00 và từ 14:00 đến 15:00 (chỉ trong ngày làm việc):

Ví dụ

pine
// Time t1 = time(timeframe.period, "1000-1100,1400-1500:23456") bgcolor(t1 ? color.new(color.blue, 90) : na)

Trả giá trị
Thời gian Unix.

tham số

  • timeframe(simple string) Chu kỳ thời gian ≠ chuỗi trống được giải thích là chu kỳ thời gian hiện tại của biểu đồ ≠
  • session(simple string) Tiêu chuẩn thời gian giao dịch. Các tham số tùy chọn, thời gian giao dịch hàng hóa được sử dụng theo mặc định. Các chuỗi trống được giải thích là thời gian giao dịch của hàng hóa.
  • timezone (simple string) sessionPhạm vi thời gian của tham số。 chỉ có thể được sử dụng khi bạn chỉ định phạm vi phiên của phím。 tùy chọn。 mặc định là syminfo.timezone。 có thể được chỉ định bằng biểu thức GMT ((ví dụ phạm vi GMT-5) hoặc tên cơ sở dữ liệu khu vực thời gian IANA ((ví dụ phạm vi America/New_York)).

Ghi chú
Thời gian UNIX là số phần nghìn giây đã trôi qua kể từ ngày 1 tháng 1 năm 1970 UTC 00:00:00.

year

year(time)
year(time, timezone)

Trả giá trị
Năm cung cấp thời gian UNIX ((khu thời gian chuyển đổi) <unk>

tham số

  • time(series int) thời gian Unix bằng phần nghìn giây.
  • timezone(series string) Tùy chọn tham số ◦ timezone ◦

Ghi chú
Thời gian UNIX là số phần nghìn giây kể từ ngày 1 tháng 1 năm 1970 UTC 00:00:00. Theo mặc định, múi giờ là syminfo.timezone. Bạn có thể sử dụng timestamp để kiểm tra các giá trị có thể.
Lưu ý rằng hàm này trả về năm dựa trên thời gian mở của đường K. Đối với thời gian giao dịch qua đêm ((ví dụ: thời gian giao dịch EURUSD vào thứ Hai bắt đầu từ 17:00 UTC-4 vào Chủ nhật), giá trị này có thể thấp hơn năm của ngày giao dịch.

Xem thêm
year time month dayofmonth dayofweek hour minute second

month

month(time)
month(time, timezone)

Trả giá trị
Các tháng cung cấp thời gian UNIX ((địa điểm thời gian chuyển đổi))

tham số

  • time(series int) thời gian Unix bằng phần nghìn giây.
  • timezone(series string) Tùy chọn tham số ◦ timezone ◦

Ghi chú
Thời gian UNIX là số phần nghìn giây kể từ ngày 1 tháng 1 năm 1970 UTC 00:00:00. Theo mặc định, múi giờ là syminfo.timezone. Bạn có thể sử dụng timestamp để kiểm tra các giá trị có thể.
Lưu ý rằng hàm này trả về tháng dựa trên thời gian mở của đường K. Đối với thời gian giao dịch qua đêm (ví dụ, thời gian giao dịch EURUSD vào thứ Hai bắt đầu từ 17:00 UTC-4 vào Chủ nhật), giá trị này có thể thấp hơn tháng của ngày giao dịch.

Xem thêm
month time year dayofmonth dayofweek hour minute second

hour

hour(time)
hour(time, timezone)

Trả giá trị
Đặt giờ của UNIX (đồng thời là vùng thời gian chuyển đổi) [2].

tham số

  • time(series int) thời gian Unix bằng phần nghìn giây.
  • timezone(series string) Tùy chọn tham số ◦ timezone ◦

Ghi chú
Thời gian UNIX là số phần nghìn giây kể từ ngày 1 tháng 1 năm 1970 UTC 00:00:00. Theo mặc định, múi giờ là syminfo.timezone. Bạn có thể sử dụng timestamp để kiểm tra các giá trị có thể.

Xem thêm
hour time year month dayofmonth dayofweek minute second

minute

minute(time)
minute(time, timezone)

Trả giá trị
Các phút cung cấp thời gian UNIX ((địa điểm thời gian chuyển đổi))

tham số

  • time(series int) thời gian Unix bằng phần nghìn giây.
  • timezone(series string) Tùy chọn tham số ◦ timezone ◦

Ghi chú
Thời gian UNIX là số phần nghìn giây kể từ ngày 1 tháng 1 năm 1970 UTC 00:00:00. Theo mặc định, múi giờ là syminfo.timezone. Bạn có thể sử dụng timestamp để kiểm tra các giá trị có thể.

Xem thêm
minute time year month dayofmonth dayofweek hour second

second

second(time)
second(time, timezone)

Trả giá trị
Cung cấp số giây của thời gian UNIX ((khu vực thời gian chuyển đổi))

tham số

  • time(series int) thời gian Unix bằng phần nghìn giây.
  • timezone(series string) Tùy chọn tham số ◦ timezone ◦

Ghi chú
Thời gian UNIX là số phần nghìn giây kể từ ngày 1 tháng 1 năm 1970 UTC 00:00:00. Theo mặc định, múi giờ là syminfo.timezone. Bạn có thể sử dụng timestamp để kiểm tra các giá trị có thể.

Xem thêm
second time year month dayofmonth dayofweek hour minute

weekofyear

weekofyear(time)
weekofyear(time, timezone)

Trả giá trị
Cung cấp chu kỳ thời gian của UNIX ((truyền thời gian chuyển đổi))

tham số

  • time(series int) thời gian Unix bằng phần nghìn giây.
  • timezone(series string) Tùy chọn tham số ◦ timezone ◦

Ghi chú
Thời gian UNIX là số phần nghìn giây kể từ ngày 1 tháng 1 năm 1970 UTC 00:00:00. Theo mặc định, múi giờ là syminfo.timezone. Bạn có thể sử dụng timestamp để kiểm tra các giá trị có thể.
Lưu ý rằng hàm này trả về tuần dựa trên thời gian mở của đường K. Đối với thời gian giao dịch qua đêm ((ví dụ EURUSD, thời gian giao dịch thứ Hai của nó bắt đầu từ 17:00 ngày Chủ nhật), giá trị này có thể thấp hơn 1 tuần của ngày giao dịch.

Xem thêm
weekofyear time year month dayofmonth dayofweek hour minute second

dayofweek

dayofweek(time)
dayofweek(time, timezone)

Trả giá trị
Giao diện ngày/tuần của thời gian UNIX ((địa điểm thời gian chuyển đổi))

tham số

  • time(series int) thời gian Unix bằng phần nghìn giây.
  • timezone(series string) Tùy chọn tham số ◦ timezone ◦

Ghi chú
Lưu ý rằng hàm này trả về ngày dựa trên thời gian mở của đường K. Đối với thời gian giao dịch qua đêm (ví dụ: thời gian giao dịch EURUSD vào thứ Hai bắt đầu từ 17:00 ngày Chủ nhật), giá trị này có thể thấp hơn ngày giao dịch.
Thời gian UNIX là số phần nghìn giây kể từ ngày 1 tháng 1 năm 1970 UTC 00:00:00. Theo mặc định, múi giờ là syminfo.timezone. Bạn có thể sử dụng timestamp để kiểm tra các giá trị có thể.

Xem thêm
time dayofmonth

dayofmonth

dayofmonth(time)
dayofmonth(time, timezone)

Trả giá trị
Ngày tháng cung cấp thời gian UNIX ((khu vực thời gian chuyển đổi))

tham số

  • time(series int) thời gian Unix bằng phần nghìn giây.
  • timezone(series string) Tùy chọn tham số ◦ timezone ◦

Ghi chú
Thời gian UNIX là số phần nghìn giây kể từ ngày 1 tháng 1 năm 1970 UTC 00:00:00. Theo mặc định, múi giờ là syminfo.timezone. Bạn có thể sử dụng timestamp để kiểm tra các giá trị có thể.
Lưu ý rằng hàm này trả về ngày dựa trên thời gian mở của đường K. Đối với thời gian giao dịch qua đêm ((ví dụ: EURUSD bắt đầu giao dịch vào thứ Hai từ 17:00 UTC-4 vào Chủ nhật), giá trị này có thể thấp hơn 1 trên ngày giao dịch.

Xem thêm
time dayofweek

timestamp

Chức năng Time-Table trả về ngày và thời gian đã chỉ định của thời gian UNIX.

timestamp(dateString)
timestamp(year, month, day, hour, minute, second)
timestamp(timezone, year, month, day, hour, minute, second)

Ví dụ

pine
// timestamp plot(timestamp(2016, 01, 19, 09, 30), linewidth=3, color=color.green) plot(timestamp(syminfo.timezone, 2016, 01, 19, 09, 30), color=color.blue) plot(timestamp(2016, 01, 19, 09, 30), color=color.yellow) plot(timestamp("GMT+6", 2016, 01, 19, 09, 30)) plot(timestamp(2019, 06, 19, 09, 30, 15), color=color.lime) plot(timestamp("GMT+3", 2019, 06, 19, 09, 30, 15), color=color.fuchsia) plot(timestamp("Feb 01 2020 22:10:05")) plot(timestamp("2011-10-10T14:48:00")) plot(timestamp("04 Dec 1995 00:12:00 GMT+5"))

Trả giá trị
Thời gian Unix.

tham số

  • timezone(series string) Vùng thời gian。 tùy chọn。 mặc định là syminfo.timezone。 có thể được chỉ định bằng biểu thức GMT ((ví dụ: <unk>GMT-5<unk>) hoặc tên cơ sở dữ liệu vùng thời gian IANA ((ví dụ: <unk>America/New_York<unk>)).
  • year(series int) năm.
  • month(series int) tháng.
  • day(series int) ngày
  • hour(series int) (các tham số tùy chọn) giờ.
  • minute(series int) (các tham số tùy chọn) phút.
  • second(series int) (các tham số tùy chọn) Second。 mặc định là 0。
  • dateString(const string) Một chuỗi có chứa ngày và thời gian và múi giờ tùy chọn. Định dạng của nó phải phù hợp với tiêu chuẩn IETF RFC 2822 hoặc ISO 8601 ((<unk>DD MMM YYYY hh:mm:ss±hhmm<unk> hoặc<unk>YYYYY-MM-DDThh:mm:ss±hh:mm<unk>, do đó là<unk>20 Feb 2020<unk> hoặc<unk>2020-02-20<unk>)). Nếu không cung cấp thời gian, hãy sử dụng<unk>00:00<unk>. Nếu không cung cấp bất kỳ múi giờ nào, hãy sử dụngGMT+0。 Lưu ý rằng điều này khác với cách thức hoạt động thông thường của hàm, sau đó sẽ trả về thời gian của múi giờ của sàn giao dịch.

Ghi chú
Thời gian UNIX là số phần nghìn giây đã trôi qua kể từ ngày 1 tháng 1 năm 1970 UTC 00:00:00.

Xem thêm
time timenow syminfo.timezone

fill

Sử dụng màu sắc cung cấp để lấp đầy nền giữa hai bản vẽ hoặc hline.

fill(hline1, hline2, color, title, editable, fillgaps, display)
fill(plot1, plot2, color, title, editable, show_last, fillgaps, display)

Ví dụ

pine
h1 = hline(20) h2 = hline(10) fill(h1, h2, color=color.new(color.blue, 90)) p1 = plot(open) p2 = plot(close) fill(p1, p2, color=color.new(color.green, 90))

tham số

  • hline1(hline) Đối tượng đầu tiên của hline.
  • hline2(hline) đối tượng hline thứ hai ▽ tham số cần thiết ▽
  • plot1(plot) Đối tượng vẽ đầu tiên. Các tham số cần thiết.
  • plot2(plot) Đối tượng vẽ thứ hai. Các tham số cần thiết.
  • color(series color) Màu được vẽ. Bạn có thể sử dụng các hằng số như 'color = red' hoặc 'color = #ff001a' và các biểu thức phức tạp như 'color = close >= open ? green: red'. Các tham số tùy chọn.
  • title(const string) đã tạo tiêu đề để điền vào đối tượng.
  • editable(const bool) Nếu true, thì kiểu điền có thể được chỉnh sửa trong hộp thoại định dạng.
  • show_last(input int) Nếu được đặt, xác định số k dòng để điền vào biểu đồ ((trở lại quá khứ từ k dòng cuối cùng))
  • fillgaps(const bool) Kiểm soát việc điền liên tục vào khoảng trống, tức là khi một trong các cuộc gọi plot ()) trả về giá trị na. Nếu được đặt là true, thì lần điền cuối cùng sẽ tiếp tục điền vào khoảng trống.
  • display(plot_display) Kiểm soát vị trí hiển thị được điền. Các giá trị có thể là: display.none, display.all.

Xem thêm
plot barcolor bgcolor hline

hline

Hình dạng đường ngang ở mức giá cố định.

hline(price, title, color, linestyle, linewidth, editable, display)

Ví dụ

pine
// input.hline hline(3.14, title='Pi', color=color.blue, linestyle=hline.style_dotted, linewidth=2) // You may fill the background between any two hlines with a fill() function: h1 = hline(20) h2 = hline(10) fill(h1, h2, color=color.new(color.green, 90))

Trả giá trị
Hline đối tượng có thể được sử dụng để fill.

tham số

  • priceGiá trị mà đối tượng (input int/float) sẽ hiển thị.
  • title(const string) tiêu đề của đối tượng
  • color(input color) Màu sắc của dòng <unk>. Phải là hằng số ((không biểu thức) <unk>. Các tham số tùy chọn <unk>
  • linestyle(hline_style) Phong cách của dòng <unk>. Các giá trị có thể là: solid, dotted, dotted. Các tham số tùy chọn.
  • linewidth(input int) Chiều rộng của dòng <unk>. mặc định là 1 <unk>.
  • editable(const bool) Nếu true, thì kiểu hline có thể được chỉnh sửa trong hộp thoại định dạng.
  • display(plot_display) Vị trí hiển thị của dòng điều khiển. Các giá trị có thể là: display.none, display.all.
  • overlay(const bool) tham số mở rộng của nền tảng FMZ, được sử dụng để thiết lập chức năng hiện tại trên bản đồ chính (đặt true) hoặc bản đồ phụ (đặt false) hiển thị trên bản đồ vẽ, mặc định là false. Không xác định tham số này theostrategyhoặcindicatorTRONGoverlayThiết lập tham sốstrategyhoặcindicatorKhông có thiết lậpoverlayCác tham số được xử lý theo các tham số mặc định.

bgcolor

Hình nền của dòng K với màu đã chỉ định.

bgcolor(color, offset, editable, show_last, title, display, overlay)

Ví dụ

pine
// bgcolor example bgcolor(close < open ? color.new(color.red,70) : color.new(color.green, 70))

tham số

  • color(series color) Đặt màu nền. Bạn có thể sử dụng các hằng số như <unk> red <unk> hoặc <unk> #ff001a <unk> và các biểu thức phức tạp như 'close >= open ? green: red'. Các tham số cần thiết.
  • offset(series int) Di chuyển dãy màu sang trái hoặc sang phải trên một số lượng k dòng.
  • editable(const bool) Nếu true, thì kiểu bgcolor có thể được chỉnh sửa trong hộp thoại định dạng.
  • show_last(input int) Nếu được đặt, xác định số k dòng để điền vào biểu đồ ((trở lại quá khứ từ k dòng cuối cùng))
  • title(const string) tiêu đề của bgcolor. Các tham số tùy chọn.
  • display(plot_display) Kiểm soát vị trí hiển thị của bgcolor. Các giá trị có thể là: display.none, display.all.
  • overlay(const bool) tham số mở rộng của nền tảng FMZ, được sử dụng để thiết lập chức năng hiện tại trên bản đồ chính (đặt true) hoặc bản đồ phụ (đặt false) hiển thị trên bản đồ vẽ, mặc định là false. Không xác định tham số này theostrategyhoặcindicatorTRONGoverlayThiết lập tham sốstrategyhoặcindicatorKhông có thiết lậpoverlayCác tham số được xử lý theo các tham số mặc định.

Xem thêm
plot

barcolor

Cài đặt màu K

barcolor(color, offset, editable, show_last, title, display)

Ví dụ

pine
barcolor(close < open ? color.black : color.white)

tham số

  • color(series color) Màu dòng K。 Bạn có thể sử dụng các hằng số như <unk>red<unk> hoặc <unk>#ff001a<unk>, và các biểu thức phức tạp như 'close >= open ? green: red‛。 Các tham số cần thiết。
  • offset(series int) Di chuyển dãy màu sang trái hoặc sang phải trên một số lượng k dòng.
  • editable(const bool) Nếu là true, kiểu barcolor có thể được chỉnh sửa trong hộp thoại định dạng.
  • show_last(input int) Nếu được đặt, xác định số k dòng để điền vào biểu đồ ((trở lại quá khứ từ k dòng cuối cùng))
  • title(const string) Barcolor header。 tùy chọn tham số。
  • display(plot_display) Kiểm soát vị trí hiển thị màu K. Các giá trị có thể là: display.none, display.all.

Xem thêm
bgcolor plot fill

error

Tương thích với phiên bản PINE v4error, chức năng vàruntime.errorĐồng ý.

Biến số tích hợp

order

order.ascending

Xác định thứ tự sắp xếp của mảng từ nhỏ nhất đến lớn nhất.

kiểu
sort_order

Xem thêm
array.new_float array.sort

order.descending

Xác định thứ tự của mảng từ lớn nhất đến nhỏ nhất

kiểu
sort_order

Xem thêm
array.new_float array.sort

timeframe

timeframe.isdaily

Trả về true nếu độ phân giải hiện tại là độ phân giải hằng ngày, nếu không trả về false.

kiểu
simple bool

Xem thêm
timeframe.isdwm timeframe.isintraday timeframe.isminutes timeframe.isseconds timeframe.isweekly timeframe.ismonthly

timeframe.isdwm

Trả về true nếu độ phân giải hiện tại là độ phân giải hàng ngày hoặc hàng tuần hoặc hàng tháng, nếu không trả về false.

kiểu
simple bool

Xem thêm
timeframe.isintraday timeframe.isminutes timeframe.isseconds timeframe.isdaily timeframe.isweekly timeframe.ismonthly

timeframe.isintraday

Trả về true nếu chu kỳ hiện tại là chu kỳ trong ngày (trong phút hoặc giây) hoặc false.

kiểu
simple bool

Xem thêm
timeframe.isminutes timeframe.isseconds timeframe.isdwm timeframe.isdaily timeframe.isweekly timeframe.ismonthly

timeframe.isminutes

Trả về true nếu hiện tại là chu kỳ phút, trả về false nếu không.

kiểu
simple bool

Xem thêm
timeframe.isdwm timeframe.isintraday timeframe.isseconds timeframe.isdaily timeframe.isweekly timeframe.ismonthly

timeframe.ismonthly

Trả về true nếu độ phân giải hiện tại là độ phân giải hàng tháng, nếu không trả về false.

kiểu
simple bool

Xem thêm
timeframe.isdwm timeframe.isintraday timeframe.isminutes timeframe.isseconds timeframe.isdaily timeframe.isweekly

timeframe.isseconds

Trả về true nếu hiện tại là giây, trả về false nếu không.

kiểu
simple bool

Xem thêm
timeframe.isdwm timeframe.isintraday timeframe.isminutes timeframe.isdaily timeframe.isweekly timeframe.ismonthly

timeframe.isweekly

Trả về true nếu độ phân giải hiện tại là độ phân giải hàng tuần, nếu không trả về false.

kiểu
simple bool

Xem thêm
timeframe.isdwm timeframe.isintraday timeframe.isminutes timeframe.isseconds timeframe.isdaily timeframe.ismonthly

timeframe.multiplier

Tỷ lệ thời gian, ví dụ '60' - 60, 'D' - 1, '5D' - 5, '12M' - 12 <unk>

kiểu
simple int

Xem thêm
syminfo.ticker syminfo.tickerid timeframe.period

timeframe.period

Chu kỳ thời gian. Ví dụ: '60' - 60 phút, 'D' - ngày, 'W' - tuần, 'M' - tháng, '5D' - 5 ngày, '12M' - 1 năm, '3M' - 1 quý.

kiểu
simple string

Xem thêm
syminfo.ticker syminfo.tickerid timeframe.multiplier

display

display.none

Một hằng số đặt tên, chỉ định vị trí hiển thị của bản vẽ. Không hiển thị ở bất cứ đâu.

kiểu
plot_display

Xem thêm
plot plotshape plotchar

display.all

Một hằng số đặt tên, chỉ định vị trí hiển thị của bản vẽ. Hiển thị bất kỳ vị trí nào.

kiểu
plot_display

Xem thêm
plot plotshape plotchar plotarrow plotbar plotcandle

shape

shape.xcross

Phong cách hình dạng của chức năng plotshape.

kiểu
const string

Xem thêm
plotshape

shape.cross

Phong cách hình dạng của chức năng plotshape.

kiểu
const string

Xem thêm
plotshape

shape.triangleup

Phong cách hình dạng của chức năng plotshape.

kiểu
const string

Xem thêm
plotshape

shape.triangledown

Phong cách hình dạng của chức năng plotshape.

kiểu
const string

Xem thêm
plotshape

shape.flag

Phong cách hình dạng của chức năng plotshape.

kiểu
const string

Xem thêm
plotshape

shape.circle

Phong cách hình dạng của chức năng plotshape.

kiểu
const string

Xem thêm
plotshape

shape.arrowup

Phong cách hình dạng của chức năng plotshape.

kiểu
const string

Xem thêm
plotshape

shape.arrowdown

Phong cách hình dạng của chức năng plotshape.

kiểu
const string

Xem thêm
plotshape

shape.labelup

Phong cách hình dạng của chức năng plotshape.

kiểu
const string

Xem thêm
plotshape

shape.labeldown

Phong cách hình dạng của chức năng plotshape.

kiểu
const string

Xem thêm
plotshape

shape.square

Phong cách hình dạng của chức năng plotshape.

kiểu
const string

Xem thêm
plotshape

shape.diamond

Phong cách hình dạng của chức năng plotshape.

kiểu
const string

Xem thêm
plotshape

color

color.aqua

là hằng số đặt tên của màu #00BCD4

kiểu
const color

color.black

là hằng số đặt tên của màu #363A45

kiểu
const color

color.blue

là hằng số đặt tên của màu #2962ff.

kiểu
const color

color.fuchsia

là hằng số đặt tên của #E040FB.

kiểu
const color

color.gray

là hằng số đặt tên của màu #787B86.

kiểu
const color

color.green

là hằng số đặt tên của # 4CAF50

kiểu
const color

color.lime

là hằng số đặt tên của màu #00E676.

kiểu
const color

color.maroon

Hằng số đặt tên màu #880E4F.

kiểu
const color

color.navy

là hằng số đặt tên của màu # 311 B 92.

kiểu
const color

color.olive

là hằng số đặt tên của màu #808000 <unk>

kiểu
const color

color.orange

là hằng số đặt tên của #FF9800

kiểu
const color

color.purple

là hằng số đặt tên của màu # 9C27B0

kiểu
const color

color.red

là hằng số đặt tên của màu #FF5252.

kiểu
const color

color.silver

Hằng số đặt tên cho #B2B5BE.

kiểu
const color

color.teal

color.teal

là hằng số đặt tên của màu #00897B.

kiểu
const color

color.white

là hằng số đặt tên của màu #FFFFFF.

kiểu
const color

color.yellow

là hằng số đặt tên của #FFEB3B.

kiểu
const color

plot

plot.style_line

Hằng số đặt tên kiểu 'Line', được sử dụng trong hàm plotstyleCác tham số của tham số.

kiểu
plot_style

Xem thêm
plot plot.style_linebr plot.style_stepline plot.style_stepline_diamond plot.style_histogram plot.style_cross plot.style_area plot.style_areabr plot.style_columns plot.style_circles

plot.style_linebr

Hằng số đặt tên kiểu 'Line With Breaks', được sử dụng trong hàm plotstyleCác tham số của tham số. Tương tự như plot.style_line, ngoại trừ khoảng trống trong dữ liệu không được điền.

kiểu
plot_style

Xem thêm
plot plot.style_line plot.style_stepline plot.style_stepline_diamond plot.style_histogram plot.style_cross plot.style_area plot.style_areabr plot.style_columns plot.style_circles

plot.style_histogram

Hằng số đặt tên theo kiểu 'Histogram', được sử dụng trong hàm plotstyleCác tham số của tham số.

kiểu
plot_style

Xem thêm
plot plot.style_line plot.style_linebr plot.style_stepline plot.style_stepline_diamond plot.style_cross plot.style_area plot.style_areabr plot.style_columns plot.style_circles

plot.style_columns

Hằng số đặt tên kiểu 'Columns', được sử dụng trong hàm plotstyleCác tham số của tham số.

kiểu
plot_style

Xem thêm
plot plot.style_line plot.style_linebr plot.style_stepline plot.style_stepline_diamond plot.style_histogram plot.style_cross plot.style_area plot.style_areabr plot.style_circles

plot.style_circles

'Circles' kiểu định danh hằng số, được sử dụng trong hàm plotstyleCác tham số của tham số.

kiểu
plot_style

Xem thêm
plot plot.style_line plot.style_linebr plot.style_stepline plot.style_stepline_diamond plot.style_histogram plot.style_cross plot.style_area plot.style_areabr plot.style_columns

plot.style_area

Hằng số đặt tên kiểu 'Area', được sử dụng trong hàm plotstyleCác tham số của tham số.

kiểu
plot_style

Xem thêm
plot plot.style_line plot.style_linebr plot.style_stepline plot.style_stepline_diamond plot.style_histogram plot.style_areabr plot.style_cross plot.style_columns plot.style_circles

plot.style_areabr

Hằng số đặt tên theo kiểu 'Area With Breaks', được sử dụng trong hàm plotstyleCác tham số của tham số. Tương tự như plot.style_area, ngoại trừ các khoảng trống trong dữ liệu không được lấp đầy.

kiểu
plot_style

Xem thêm
plot plot.style_line plot.style_linebr plot.style_stepline plot.style_stepline_diamond plot.style_histogram plot.style_cross plot.style_area plot.style_columns plot.style_circles

plot.style_cross

Hằng số đặt tên kiểu 'Cross', được sử dụng trong hàm plotstyleCác tham số của tham số.

kiểu
plot_style

Xem thêm
plot plot.style_line plot.style_linebr plot.style_stepline plot.style_stepline_diamond plot.style_histogram plot.style_area plot.style_areabr plot.style_columns plot.style_circles

plot.style_stepline

Hằng số đặt tên kiểu 'Step Line', được sử dụng trong hàm plotstyleCác tham số của tham số.

kiểu
plot_style

Xem thêm
plot plot.style_stepline_diamond plot.style_linebr plot.style_histogram plot.style_cross plot.style_area plot.style_areabr plot.style_columns plot.style_circles

plot.style_stepline_diamond

Hằng số đặt tên theo kiểu 'Step Line With Diamonds', được sử dụng trong hàm plotstyleCác tham số của tham số. Tương tự như plot.style_stepline, thay đổi dữ liệu cũng được đánh dấu bằng hình vuông.

kiểu
plot_style

Xem thêm
plot plot.style_line plot.style_linebr plot.style_histogram plot.style_cross plot.style_area plot.style_areabr plot.style_columns plot.style_circles

location

location.abovebar

location.abovebar

Plotshape, giá trị vị trí của hàm plotchar. Hình dạng được vẽ trên dòng k của chuỗi chính.

kiểu
const string

Xem thêm
plotshape plotchar location.belowbar location.top location.bottom location.absolute

location.belowbar

Plotshape, giá trị vị trí của hàm plotchar. Hình dạng được vẽ dưới dòng của chuỗi chính k.

kiểu
const string

Xem thêm
plotshape plotchar location.abovebar location.top location.bottom location.absolute

location.top

Plotshape, giá trị vị trí của hàm plotchar. Hình dạng được vẽ gần ranh giới trên cùng của biểu đồ.

kiểu
const string

Xem thêm
plotshape plotchar location.abovebar location.belowbar location.bottom location.absolute

location.bottom

Plotshape, giá trị vị trí của hàm plotchar. Hình dạng được vẽ gần đường viền của biểu đồ bên dưới.

kiểu
const string

Xem thêm
plotshape plotchar location.abovebar location.belowbar location.top location.absolute

location.absolute

Plotshape, giá trị vị trí của chức năng plotchar. Hình dạng được vẽ trên biểu đồ, sử dụng giá trị chỉ số làm tọa độ giá.

kiểu
const string

Xem thêm
plotshape plotchar location.abovebar location.belowbar location.top location.bottom

size

size.auto

size.auto

Plotshape, kích thước của chức năng plotchar. Kích thước của hình dạng tự động phù hợp với kích thước của dòng k.

kiểu
const string

Xem thêm
plotshape plotchar size.tiny size.small size.normal size.large size.huge

size.tiny

Plotshape, kích thước của hàm plotchar.

kiểu
const string

Xem thêm
plotshape plotchar size.auto size.small size.normal size.large size.huge

size.small

Plotshape, kích thước nhỏ của hàm plotchar.

kiểu
const string

Xem thêm
plotshape plotchar size.auto size.tiny size.normal size.large size.huge

size.normal

Plotshape, kích thước của hàm plotchar.

kiểu
const string

Xem thêm
plotshape plotchar size.auto size.tiny size.small size.large size.huge

size.large

Plotshape, kích thước của hàm plotchar.

kiểu
const string

Xem thêm
plotshape plotchar size.auto size.tiny size.small size.normal size.huge

size.huge

Plotshape, kích thước của hàm plotchar.

kiểu
const string

Xem thêm
plotshape plotchar size.auto size.tiny size.small size.normal size.large

alert

alert.freq_once_per_bar

Hằng số đặt tên được sử dụng cùng với tham số 'freq' của hàm alert().
Gọi hàm đầu tiên trong dòng K sẽ kích hoạt cảnh báo.

kiểu
const string

Xem thêm
alert

alert.freq_all

Hằng số đặt tên được sử dụng cùng với tham số 'freq' của hàm alert().
Tất cả các hàm được gọi sẽ kích hoạt báo động.

kiểu
const string

Xem thêm
alert

alert.freq_once_per_bar_close

Hằng số đặt tên được sử dụng cùng với tham số 'freq' của hàm alert().
Việc gọi hàm này chỉ xảy ra trong lần lặp kịch bản cuối cùng của dòng K trong thời gian thực, và khi tắt nó sẽ kích hoạt báo động.

kiểu
const string

Xem thêm
alert

format

format.inherit

là một hằng số đặt tên.

kiểu
const string

Xem thêm
format.price format.volume

format.price

là một hằng số đặt tên.

kiểu
const string

Ghi chú
Nếu format là format.price, hãy đặt giá trị chính xác mặc định. Bạn có thể sử dụng tham số chính xác của hàm chỉ số để thay đổi giá trị chính xác.

Xem thêm
format.inherit format.volume

format.volume

là một hằng số đặt tên.

kiểu
const string

Xem thêm
format.inherit format.price

syminfo

syminfo.ticker

Mã hàng hóa không có tiền đề giao dịch, ví dụ 'MSFT'

kiểu
simple string

Xem thêm
syminfo.tickerid timeframe.period timeframe.multiplier

syminfo.tickerid

Mã hàng hóa với tiền đề của sàn giao dịch, ví dụ: <unk>BATS: <unk>MSFT<unk>, <unk>NASDAQ: <unk>MSFT<unk>.

kiểu
simple string

Xem thêm
syminfo.ticker timeframe.period timeframe.multiplier

syminfo.basecurrency

Tiền tệ cơ sở của hàng hóa. Đối với mã hàng hóa, hãy đặt BTCUSD, trả về BTC.

kiểu
simple string

Xem thêm
syminfo.currency syminfo.ticker

syminfo.currency

Tiền tệ của hàng hiện tại. Mã tiền tệ trả lại: <unk> USD<unk>, <unk> EUR<unk>, v.v.

kiểu
simple string

Xem thêm
syminfo.basecurrency syminfo.ticker

syminfo.type

Loại mã hàng hóa hiện tại. Các giá trị có thể là stock, futures, index, forex, crypto, fund, dr.

kiểu
simple string

Xem thêm
syminfo.ticker

syminfo.mintick

Giá trị đo tối thiểu của giống hiện tại. Các tham số mẫu trong thư viện lớp giao dịch ngôn ngữ Pine trên FMZ, trên giao diện ổ đĩa / phản hồiĐộ chính xác của giá tiền tệBạn có thể kiểm soát giá trị này.Độ chính xác của giá tiền tệThiết lập 2 là giá giao dịch chính xác đến số ký số thứ hai, tại thời điểm đó giá thay đổi nhỏ nhất là 0.01 ◦syminfo.mintick giá trị là 0.01 ◦

kiểu
simple float

Xem thêm
syminfo.pointvalue

syminfo.pointvalue

Giá điểm của hàng hóa hiện tại

kiểu
simple float

Xem thêm
syminfo.mintick

syminfo.timezone

Các vùng thời gian trao đổi của chuỗi chính của biểu đồ. Các giá trị có thể được xem là timestamp.

kiểu
simple string

Xem thêm
timestamp

barstate

barstate.islastconfirmedhistory

Trả về true nếu thị trường đóng cửa khi kịch bản được thực hiện trên dòng K cuối cùng trong bộ dữ liệu hoặc kịch bản đang được thực hiện trên dòng K trước dòng K thực, trả về true nếu thị trường mở cửa. Nếu không trả về false.

kiểu
series bool

Ghi chú
Mã PineScript sử dụng biến này có thể tính toán khác nhau cho dữ liệu lịch sử và dữ liệu thời gian thực.
Xin lưu ý rằng việc sử dụng biến số/chức năng này có thể dẫn đến việc vẽ lại chỉ số.

Xem thêm
barstate.isfirst barstate.islast barstate.ishistory barstate.isrealtime barstate.isnew

barstate.isnew

Trả về true nếu kịch bản hiện đang tính trên dòng mới k, nếu không trả về false.

kiểu
series bool

Ghi chú
Mã PineScript sử dụng biến này có thể tính toán khác nhau cho dữ liệu lịch sử và dữ liệu thời gian thực.
Xin lưu ý rằng việc sử dụng biến số/chức năng này có thể dẫn đến việc vẽ lại chỉ số.

Xem thêm
barstate.isfirst barstate.islast barstate.ishistory barstate.isrealtime barstate.isconfirmed barstate.islastconfirmedhistory

barstate.isfirst

Trả về true nếu dòng k hiện tại là dòng k đầu tiên trong nhóm dòng k, nếu không trả về false.

kiểu
series bool

Ghi chú
Mã PineScript sử dụng biến này có thể tính toán khác nhau cho dữ liệu lịch sử và dữ liệu thời gian thực.
Xin lưu ý rằng việc sử dụng biến số/chức năng này có thể dẫn đến việc vẽ lại chỉ số.

Xem thêm
barstate.islast barstate.ishistory barstate.isrealtime barstate.isnew barstate.isconfirmed barstate.islastconfirmedhistory

barstate.islast

Trả về true nếu dòng k hiện tại là dòng k cuối cùng trong nhóm dòng k, nếu không trả về false.

kiểu
series bool

Ghi chú
Mã PineScript sử dụng biến này có thể tính toán khác nhau cho dữ liệu lịch sử và dữ liệu thời gian thực.
Xin lưu ý rằng việc sử dụng biến số/chức năng này có thể dẫn đến việc vẽ lại chỉ số.

Xem thêm
barstate.isfirst barstate.ishistory barstate.isrealtime barstate.isnew barstate.isconfirmed barstate.islastconfirmedhistory

barstate.ishistory

Trả về true nếu dòng k hiện tại là dòng k lịch sử, trả về false nếu không.

kiểu
series bool

Ghi chú
Mã PineScript sử dụng biến này có thể tính toán khác nhau cho dữ liệu lịch sử và dữ liệu thời gian thực.
Xin lưu ý rằng việc sử dụng biến số/chức năng này có thể dẫn đến việc vẽ lại chỉ số.

Xem thêm
barstate.isfirst barstate.islast barstate.isrealtime barstate.isnew barstate.isconfirmed barstate.islastconfirmedhistory

barstate.isconfirmed

Nếu kịch bản đang tính cập nhật cuối cùng của dòng K hiện tại, trả về true. Scripts tiếp theo sẽ tính trên dữ liệu của dòng K mới.

kiểu
series bool

Ghi chú
Mã PineScript sử dụng biến này có thể tính toán khác nhau cho dữ liệu lịch sử và dữ liệu thời gian thực.
Không nên sử dụng barstate.isconfirmed trong biểu thức request.security.
Xin lưu ý rằng việc sử dụng biến số/chức năng này có thể dẫn đến việc vẽ lại chỉ số.

Xem thêm
barstate.isfirst barstate.islast barstate.ishistory barstate.isrealtime barstate.isnew barstate.islastconfirmedhistory

barstate.isrealtime

Trả về true nếu dòng k hiện tại là dòng k thời gian thực, nếu không trả về false.

kiểu
series bool

Ghi chú
Mã PineScript sử dụng biến này có thể tính toán khác nhau cho dữ liệu lịch sử và dữ liệu thời gian thực.
Xin lưu ý rằng việc sử dụng biến số/chức năng này có thể dẫn đến việc vẽ lại chỉ số.

Xem thêm
barstate.isfirst barstate.islast barstate.ishistory barstate.isnew barstate.isconfirmed barstate.islastconfirmedhistory

barstate.time

Không có

ta

ta.accdist

Chỉ số tích lũy/phân phối

kiểu
series float

ta.iii

Chỉ số cường độ trong đĩa.

kiểu
series float

Ví dụ

pine
// Intraday Intensity Index plot(ta.iii, color=color.yellow) // the same on pine f_iii() => (2 * close - high - low) / ((high - low) * volume) plot(f_iii())

ta.nvi

Chỉ số trọng lượng âm.

kiểu
series float

Ví dụ

pine
// Negative Volume Index plot(ta.nvi, color=color.yellow) // the same on pine f_nvi() => float ta_nvi = 1.0 float prevNvi = (nz(ta_nvi[1], 0.0) == 0.0) ? 1.0: ta_nvi[1] if nz(close, 0.0) == 0.0 or nz(close[1], 0.0) == 0.0 ta_nvi := prevNvi else ta_nvi := (volume < nz(volume[1], 0.0)) ? prevNvi + ((close - close[1]) / close[1]) * prevNvi : prevNvi result = ta_nvi plot(f_nvi())

ta.pvi

Chỉ số cân bằng.

kiểu
series float

Ví dụ

pine
// Positive Volume Index plot(ta.pvi, color=color.yellow) // the same on pine f_pvi() => float ta_pvi = 1.0 float prevPvi = (nz(ta_pvi[1], 0.0) == 0.0) ? 1.0: ta_pvi[1] if nz(close, 0.0) == 0.0 or nz(close[1], 0.0) == 0.0 ta_pvi := prevPvi else ta_pvi := (volume > nz(volume[1], 0.0)) ? prevPvi + ((close - close[1]) / close[1]) * prevPvi : prevPvi result = ta_pvi plot(f_pvi())

ta.obv

Chỉ số dòng năng lượng.

kiểu
series float

Ví dụ

pine
// On Balance Volume plot(ta.obv, color=color.yellow) // the same on pine f_obv() => ta.cum(math.sign(ta.change(close)) * volume) plot(f_obv())

ta.pvt

Chỉ số xu hướng giá cả.

kiểu
series float

Ví dụ

pine
// Price-Volume Trend plot(ta.pvt, color=color.yellow) // the same on pine f_pvt() => ta.cum((ta.change(close) / close[1]) * volume) plot(f_pvt())

ta.wad

William Doré, Đường đo lực không khí.

kiểu
series float

Ví dụ

pine
// Williams Accumulation/Distribution plot(ta.wad, color=color.yellow) // the same on pine f_wad() => trueHigh = math.max(high, close[1]) trueLow = math.min(low, close[1]) mom = ta.change(close) gain = (mom > 0) ? close - trueLow : (mom < 0) ? close - trueHigh : 0 ta.cum(gain) plot(f_wad())

ta.wvad

Sự phân tán biến thể William.

kiểu
series float

Ví dụ

pine
// Williams Variable Accumulation/Distribution plot(ta.wvad, color=color.yellow) // the same on pine f_wvad() => (close - open) / (high - low) * volume plot(f_wvad())

math

math.e

Là hằng số được đặt tên của số <unk>. Nó bằng 2.7182818284590452.

kiểu
const float

Xem thêm
math.phi math.pi math.rphi

math.phi

là hằng số danh tính của phân số vàng ≠ 1.6180339887498948 ≠ 1.6180339887498948

kiểu
const float

Xem thêm
math.e math.pi math.rphi

math.pi

Là hằng số tên của hằng số Archimedes. Nó bằng 3.1415926535897932.

kiểu
const float

Xem thêm
math.e math.phi math.rphi

math.rphi

là hằng số danh nghĩa của tỷ lệ phân chia vàng. Nó bằng 0,6180339887498948.

kiểu
const float

Xem thêm
math.e math.pi math.phi

strategy

strategy.equity

Lợi ích hiện tại ((strategy.initial_capital + strategy.netprofit + strategy.openprofit))

kiểu
series float

Xem thêm
strategy.netprofit strategy.openprofit strategy.position_size

strategy.position_size

Định hướng và quy mô của vị trí thị trường hiện tại. Nếu giá trị> 0, vị trí thị trường dài hơn. Nếu giá trị < 0, vị trí thị trường ngắn hơn.

kiểu
series float

Xem thêm
strategy.position_avg_price

strategy.position_avg_price

Giá nhập cảnh trung bình định vị thị trường hiện tại.

minh họa
Giá trung bình trong FMZ PINE Script là giá bao gồm phí xử lý. Ví dụ: giá đặt hàng là 8000, bán hướng, số lượng 1 tay (một tờ), giá trung bình sau khi giao dịch không phải là 8000, thấp hơn 8000 (chi phí bao gồm phí xử lý).

kiểu
series float

Xem thêm
strategy.position_size

strategy.long

Nhiều hướng.

kiểu
strategy_direction

Xem thêm
strategy.entry strategy.exit

strategy.short

Hướng không đầu.

kiểu
strategy_direction

Xem thêm
strategy.entry strategy.exit

strategy.closedtrades

Số lượng giao dịch được đóng trong toàn bộ khoảng thời gian giao dịch.

kiểu
series int

Xem thêm
strategy.position_size strategy.opentrades

strategy.opentrades

Số lượng giao dịch chưa đóng hoặc tiếp tục giữ. Nếu không, hiển thị 0

kiểu
series int

Xem thêm
strategy.position_size

strategy.netprofit

Tổng giá trị tiền tệ của tất cả các giao dịch đã hoàn thành.

kiểu
series float

Xem thêm
strategy.openprofit strategy.position_size strategy.grossprofit

strategy.grossprofit

Tổng giá trị tiền tệ của tất cả các giao dịch đã hoàn thành.

kiểu
series float

Xem thêm
strategy.netprofit

strategy.openprofit

Lợi nhuận chưa thực hiện của vị trí chưa đóng hiện tại.

kiểu
series float

Xem thêm
strategy.netprofit strategy.position_size

strategy.direction.long

Những chiến lược có thể làm nhiều hơn

kiểu
const string

Xem thêm
strategy.risk.allow_entry_in

strategy.direction.short

Chiến lược chỉ có thể thực hiện được

kiểu
const string

Xem thêm
strategy.risk.allow_entry_in

strategy.direction.all

Một chiến lược cho phép làm nhiều và làm ít.

kiểu
const string

Xem thêm
strategy.risk.allow_entry_in

dayofweek

dayofweek

Tuần của thời gian k-line hiện tại của vùng thời gian chuyển đổi.

kiểu
series int

Ghi chú
Lưu ý rằng biến này trả về ngày dựa trên thời gian mở của đường K. Đối với thời gian giao dịch qua đêm (ví dụ: EURUSD, thời gian giao dịch thứ Hai của nó bắt đầu từ 17:00 ngày Chủ nhật), giá trị này có thể thấp hơn so với ngày giao dịch.
Bạn có thể sử dụng các biến dayofweek.sunday, dayofweek.monday, dayofweek.tuesday, dayofweek.wednesday, dayofweek.thursday, dayofweek.friday và dayofweek.saturday để so sánh.

Xem thêm
time dayofmonth

dayofweek.sunday

là hàm trả về giá trị của hàm dayofweek và là hằng số đặt tên cho giá trị của biến dayofweek.

kiểu
const int

Xem thêm
dayofweek.monday dayofweek.tuesday dayofweek.wednesday dayofweek.thursday dayofweek.friday dayofweek.saturday

dayofweek.monday

là hàm trả về giá trị của hàm dayofweek và là hằng số đặt tên cho giá trị của biến dayofweek.

kiểu
const int

Xem thêm
dayofweek.sunday dayofweek.tuesday dayofweek.wednesday dayofweek.thursday dayofweek.friday dayofweek.saturday

dayofweek.tuesday

là hàm trả về giá trị của hàm dayofweek và là hằng số đặt tên cho giá trị của biến dayofweek.

kiểu
const int

Xem thêm
dayofweek.sunday dayofweek.monday dayofweek.wednesday dayofweek.thursday dayofweek.friday dayofweek.saturday

dayofweek.wednesday

là hàm trả về giá trị của hàm dayofweek và là hằng số đặt tên cho giá trị của biến dayofweek.

kiểu
const int

Xem thêm
dayofweek.sunday dayofweek.monday dayofweek.tuesday dayofweek.thursday dayofweek.friday dayofweek.saturday

dayofweek.thursday

là hàm trả về giá trị của hàm dayofweek và là hằng số đặt tên cho giá trị của biến dayofweek.

kiểu
const int

Xem thêm
dayofweek.sunday dayofweek.monday dayofweek.tuesday dayofweek.wednesday dayofweek.friday dayofweek.saturday

dayofweek.friday

là hàm trả về giá trị của hàm dayofweek và là hằng số đặt tên cho giá trị của biến dayofweek.

kiểu
const int

Xem thêm
dayofweek.sunday dayofweek.monday dayofweek.tuesday dayofweek.wednesday dayofweek.thursday dayofweek.saturday

dayofweek.saturday

là hàm trả về giá trị của hàm dayofweek và là hằng số đặt tên cho giá trị của biến dayofweek.

kiểu
const int

Xem thêm
dayofweek.sunday dayofweek.monday dayofweek.tuesday dayofweek.wednesday dayofweek.thursday dayofweek.friday

hline

hline.style_dashed

là hằng số đặt tên của hàm Hline theo kiểu gạch chấm.

kiểu
hline_style

Xem thêm
hline.style_solid hline.style_dotted

hline.style_dotted

hline.style_dotted

Là hằng số đặt tên của kiểu trục trặc điểm của hàm Hline.

kiểu
hline_style

Xem thêm
hline.style_solid hline.style_dashed

hline.style_solid

là hằng số đặt tên của hàm Hline theo kiểu đường trung tâm thực.

kiểu
hline_style

Xem thêm
hline.style_dotted hline.style_dashed

barmerge

barmerge.gaps_on

Đưa ra chiến lược kết hợp dữ liệu được yêu cầu. Kết hợp dữ liệu với khoảng cách có thể (na).

kiểu
barmerge_gaps

Xem thêm
request.security barmerge.gaps_off

barmerge.gaps_off

Chiến lược cho dữ liệu được yêu cầu kết hợp. Dữ liệu được kết hợp liên tục, tất cả các khoảng trống được lấp đầy bằng các giá trị hiện tại gần nhất trước đó.

kiểu
barmerge_gaps

Xem thêm
request.security barmerge.gaps_on

barmerge.lookahead_on

Chiến lược để yêu cầu vị trí dữ liệu được sáp nhập. Các biểu đồ vạch được yêu cầu được sáp nhập với biểu đồ vạch hiện tại theo thời gian mở k line. Chiến lược sáp nhập này có thể gây ra tác động xấu đến tính toán lịch sử thu thập dữ liệu từ các mảng tương lai. Điều này không được chấp nhận trong chiến lược kiểm tra ngược, nhưng có thể được sử dụng trong chỉ số.

kiểu
barmerge_lookahead

Xem thêm
request.security barmerge.lookahead_off

barmerge.lookahead_off

Chính sách yêu cầu vị trí dữ liệu được kết hợp. Biểu đồ được yêu cầu sẽ được kết hợp với biểu đồ hiện tại theo thời gian kết thúc k. Chính sách kết hợp này ngăn chặn ảnh hưởng của lịch sử tính toán thu thập dữ liệu từ tương lai.

kiểu
barmerge_lookahead

Xem thêm
request.security barmerge.lookahead_on

others

hl2

là [giá cao nhất + giá thấp nhất]/2

kiểu
series float

Xem thêm
open high low close volume time hlc3 hlcc4 ohlc4

hlc3

là [giá cao nhất + giá thấp nhất + giá đóng cửa]/3 phím tắt

kiểu
series float

Xem thêm
open high low close volume time hl2 hlcc4 ohlc4

hlcc4

là [high+low+closed+closed]/4

kiểu
series float

Xem thêm
open high low close volume time hl2 hlc3 ohlc4

ohlc4

là [giá mở + giá cao nhất + giá thấp nhất + giá đóng cửa]/4 phím tắt

kiểu
series float

Xem thêm
open high low close volume time hl2 hlc3 hlcc4

na

Double.NaN giá trị (không số) <unk>

kiểu
simple na

Ví dụ

pine
// na plot(bar_index < 10 ? na : close) // CORRECT plot(close == na ? close[1] : close) // INCORRECT! plot(na(close) ? close[1] : close) // CORRECT

Ghi chú
Nếu bạn muốn kiểm tra xem một số giá trị là NaN hay không, hãy sử dụng hàm n n n n n .

Xem thêm
na

bar_index

Chỉ số thanh giá hiện tại. Các chỉ số bắt đầu từ 0 và chỉ số đầu tiên là 0

kiểu
series int

Ví dụ

pine
// bar_index plot(bar_index) plot(bar_index > 5000 ? close : 0)

Ghi chú
Lưu ý rằng bar_index đã thay thế n biến trong phiên bản 4.
Lưu ý rằng chỉ số K được tính là 0 <unk> kể từ K lịch sử đầu tiên.
Xin lưu ý rằng việc sử dụng biến số/chức năng này có thể dẫn đến việc vẽ lại chỉ số.

Xem thêm
barstate.isfirst barstate.islast barstate.isrealtime

last_bar_index

Chỉ số K của dòng K cuối cùng của biểu đồ. Chỉ số K bắt đầu bằng 0 của dòng K đầu tiên.

kiểu
series int

Ví dụ

strategy("Mark Last X Bars For Backtesting", overlay = true, calc_on_every_tick = true) lastBarsFilterInput = input.int(100, "Bars Count:") // Here, we store the 'last_bar_index' value that is known from the beginning of the script's calculation. // The 'last_bar_index' will change when new real-time bars appear, so we declare 'lastbar' with the 'var' keyword. var lastbar = last_bar_index // Check if the current bar_index is 'lastBarsFilterInput' removed from the last bar on the chart, or the chart is traded in real-time. allowedToTrade = (lastbar - bar_index <= lastBarsFilterInput) or barstate.isrealtime bgcolor(allowedToTrade ? color.new(color.green, 80) : na)

Trả giá trị
Chỉ số K lịch sử cuối cùng của giao dịch đóng cửa, hoặc chỉ số K thời gian thực của giao dịch mở.

Ghi chú
Lưu ý rằng việc sử dụng biến này có thể dẫn đến việc vẽ lại chỉ số.

Xem thêm
bar_index last_bar_time barstate.ishistory barstate.isrealtime

time

Thời gian k-line hiện tại của định dạng UNIX. Đây là số milliseconds kể từ 00:00:00 UTC ngày 1 tháng 1 năm 1970.

timenow

Thời gian hiện tại của định dạng UNIX. Đây là số phần nghìn giây kể từ ngày 1 tháng 1 năm 1970 00:00:00 UTC.

kiểu
series int

Ghi chú
Xin lưu ý rằng việc sử dụng biến số/chức năng này có thể dẫn đến việc vẽ lại chỉ số.

Xem thêm
timestamp time dayofmonth dayofweek

kiểu
series int

Ghi chú
Lưu ý rằng biến này sẽ trả về cột thời gian dựa trên thời gian mở của đường K. Do đó, đối với thời gian giao dịch qua đêm (ví dụ: EURUSD, thời gian thứ hai của nó bắt đầu từ 17:00 ngày Chủ nhật), biến này có thể trả về thời gian trước ngày giao dịch được chỉ định. Ví dụ: trên EURUSD, cột dayofmonth (thời gian) có thể thấp hơn ngày giao dịch của ngày 1 vì đường K của ngày hiện tại thực sự được mở vào ngày hôm trước.

Xem thêm
time dayofmonth dayofweek

year

Kích thước của năm hiện tại của vùng thời gian chuyển đổi:

kiểu
series int

Ghi chú
Lưu ý rằng biến này trả về năm dựa trên thời gian mở của đường K. Đối với thời gian giao dịch qua đêm (ví dụ EURUSD, thời gian giao dịch thứ Hai của nó bắt đầu từ 17:00 ngày Chủ nhật), giá trị này có thể thấp hơn năm của ngày giao dịch.

Xem thêm
year time month weekofyear dayofmonth dayofweek hour minute second

month

Dòng mặt trăng hiện tại k của múi giờ của sàn giao dịch.

kiểu
series int

Ghi chú
Lưu ý rằng biến này trả về tháng dựa trên thời gian mở của đường K. Đối với thời gian giao dịch qua đêm ((ví dụ EURUSD, thời gian giao dịch thứ Hai của nó bắt đầu từ 17:00 ngày Chủ nhật), giá trị này có thể thấp hơn 1 trên tháng của ngày giao dịch.

Xem thêm
month time year weekofyear dayofmonth dayofweek hour minute second

hour

Đường k giờ hiện tại của múi giờ của sàn giao dịch.

kiểu
series int

Xem thêm
hour time year month weekofyear dayofmonth dayofweek minute second

minute

Dòng k của phút hiện tại trong múi giờ của sàn giao dịch

kiểu
series int

Xem thêm
minute time year month weekofyear dayofmonth dayofweek hour second

second

Dòng giây hiện tại k của múi giờ của sàn.

kiểu
series int

Xem thêm
second time year month weekofyear dayofmonth dayofweek hour minute

open

Giá mở cửa hiện tại.

kiểu
series float

Ghi chú
Có thể sử dụng toán tử dấu ngoặc vuông[] để truy cập vào các giá trị trước đó, ví dụ như △ open[1],open[2]。

Xem thêm
high low close volume time hl2 hlc3 hlcc4 ohlc4

high

Giá cao nhất hiện tại.

kiểu
series float

Ghi chú
Có thể sử dụng toán tử dấu ngoặc vuông[] để truy cập vào các giá trị trước đó, ví dụ như <unk> high[1],high[2]。

Xem thêm
open low close volume time hl2 hlc3 hlcc4 ohlc4

low

Giá thấp nhất hiện tại.

kiểu
series float

Ghi chú
Có thể sử dụng toán tử dấu ngoặc vuông[] để truy cập các giá trị trước đó, ví dụ như <unk> low[1],low[2]。

Xem thêm
open high close volume time hl2 hlc3 hlcc4 ohlc4

close

Giá đóng cửa K hiện tại, hoặc giá giao dịch cuối cùng của K thực chưa hoàn thành

kiểu
series float

Ghi chú
Có thể sử dụng toán tử dấu ngoặc vuông[] để truy cập các giá trị trước đó, ví dụ như <unk> close[1],close[2]。

Xem thêm
open high low volume time hl2 hlc3 hlcc4 ohlc4

volume

Số lượng giao thông hiện tại trên tuyến K.

kiểu
series float

Ghi chú
Có thể sử dụng toán tử dấu ngoặc vuông[] để truy cập vào các giá trị trước đó, ví dụ như ◦ volume[1],volume[2]。

Xem thêm
open high low close time hl2 hlc3 hlcc4 ohlc4

weekofyear

Số tuần trong khoảng thời gian k-line hiện tại của múi giờ chuyển đổi.

kiểu
series int

Ghi chú
Lưu ý rằng biến này quay trở lại tuần dựa trên thời gian mở của đường K. Đối với thời gian giao dịch qua đêm (ví dụ: EURUSD, thời gian giao dịch thứ Hai của nó bắt đầu từ 17:00 ngày Chủ nhật), giá trị này có thể thấp hơn tuần của ngày giao dịch.

Xem thêm
weekofyear time year month dayofmonth dayofweek hour minute second

dayofmonth

Ngày của thời gian hiện tại của k-đường của múi giờ.

kiểu
series int

Ghi chú
Lưu ý rằng biến này trả về ngày dựa trên thời gian mở của đường K. Đối với thời gian giao dịch qua đêm (ví dụ: EURUSD, thời gian giao dịch thứ Hai của nó bắt đầu từ 17:00 ngày Chủ nhật), giá trị này có thể thấp hơn so với ngày giao dịch.

Xem thêm
time dayofweek

Related Recommendations
Comment
All comments (24)

    你好,我想用同一账户资金然后开多个实盘交易多品种,有持仓的时候其他实盘无法开仓,这个可以解决吗

    4 months ago

    您好,PINE语言只是单品种、单账户策略,您这个需求只能用Javascript/python/c++ 编写策略。

    4 months ago

    好吧,写了Java scripts和python的效果却不一样。。。。

    4 months ago

    PINE只能单品种、单账户。可以多用几个账户隔离运行。

    4 months ago

    好的,只能这样了谢谢

    4 months ago

    不客气。

    4 months ago

    想要币安u合约多个交易对同时运行怎么搞

    3 years ago

    PINE语言只能做单品种策略,多品种策略最好还是用python , javascript , c++编写设计。

    3 years ago

    请教下,pine能多交易对吗? 也是和JS一样遍历交易对吗??谢谢。

    4 years ago

    您好,暂时PINE语言策略只能做单品种。

    4 years ago

    以后会考虑多品种吗?收盘价每个品种遍历就行

    4 years ago

    这个多品种的架构问题不好解决,因为每个交易所接口不一样,对接口频率限定也不一样,会产生很多问题。

    4 years ago

    感觉最好能和JS混编,JS可以更好的适应各种交易方式。

    4 years ago

    好的,感谢云总提出建议,这边报下这个需求。

    4 years ago

    好的,谢谢梦大。

    4 years ago

    謝謝提供詳細的文檔

    4 years ago

    不客气,感谢您的支持。文档还会继续完善。

    4 years ago

    大佬!这 pine script 怎么在平台上使用 okex 的模拟盘?

    4 years ago

    用不了okx模拟盘。。。。。[捂脸]

    4 years ago

    嗯,是的,OKX比较特殊,他们的模拟环境和实盘环境是一样的地址,只是在其它地方做了区别。所以没办法用切换基地址,去切换到模拟盘。

    4 years ago

    PINE模版类库,参数上可以设置切换交易所基地址。文档开头的:PINE语言交易类库模版参数。

    4 years ago

    这等于是 tradingview平台的策略直接copy到发明者平台就可以使用了吧!

    4 years ago

    是的。

    4 years ago
  • 1
iPhone Download
Forums
PINE Language
© 2015 - ∞ INVENTOR PTE LTD (SG)