ceArray =array.new< float> ((samplesInput)
phương thức maintainQueue(array
phương thức calcBB(array
bool newSample = bar_index % n == 0
[sampleMean, highBand, lowBand] = sourceArray.maintainQueue ((sourceInput, newSample).calcBB ((chủ nhân, newSample)
biểu đồ ((sampleMean,
可以看到使用关键字method声明的用户自定义方法:maintainQueue、calcBB的参数列表中第一个参数都是```array<float>```类型。表示该method是```array<float>```类型变量的方法,所以可以看到调用以下代码来计算布林指标。
```pine
[sampleMean, highBand, lowBand] = sourceArray.maintainQueue(sourceInput, newSample).calcBB(multiplier, newSample)
Methods tải lại
Phương pháp được xác định bởi người dùng có thể phủ và tải lại các phương pháp sẵn có và các phương pháp được xác định bởi người dùng có cùng một nhận dạng. Tính năng này cho phép người dùng xác định nhiều trường hợp liên quan đến chữ ký tham số khác nhau dưới cùng một tên phương pháp. Ví dụ đơn giản, giả sử chúng ta muốn xác định một phương pháp để xác định loại biến. Vì chúng ta phải xác định rõ ràng loại đối tượng liên quan đến phương pháp được xác định bởi người dùng, chúng ta cần xác định tải lại cho mỗi loại mà chúng ta muốn nó xác định.
//@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")
Định dạng 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ẽ được đánh giá là dữ liệu float vì nền kịch bản PINE được thực hiện bằng ngôn ngữ Javascript.
Khi gọi chức năng, bạn có thể chỉ định tên của tham số, bạn có thể truyền biến trực tiếp ở vị trí tham số tương ứng, cũng hỗ trợ sử dụng hỗn hợp. Ví dụ:
plot(close, title="test plot") // 直接传参数 close ;指定参数 title ,赋值字符串"test plot"
Sau khi chỉ định tên tham số, không thể truyền biến trực tiếp như một tham số, và các tham số sau đó phải được viết dưới dạng tên tham số.
// plot(close, title="test", color.red) // 虽然plot第三个参数是颜色值,但是这样写就会报错
plot(close, title="test", color=color.red) // 正确写法
plot(close, "test", color.red) // 正确写法
sẽ được chuyển đếntimeframe
Thời gian chu kỳ của tham số được chuyển đổi thành giây.
timeframe.in_seconds(timeframe)
Ví dụ
// 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ả về giá trị
timeframe
Số giây trong một đường K của int được thể hiện dưới dạng.
Các tham số
timeframe
(simple string) chu kỳ thời gian↑ tùy chọn↑ mặc định là timeframe.period↑Nhận xétĐối vớitimeframe
>=
Hẹn gặp lại
input.timeframe
timeframe.period
Tạo một mã nhận dạng yêu cầu trượt giá trị đường K trung bình.
ticker.heikinashi(symbol)
Ví dụ
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ả về giá trị 股票代码的字符串值,可以提供给request.security函数。
Các tham số
symbol
(simple string) Nhãn nhận dạng mã hóa hàng hóa.Hẹn gặp lại
syminfo.tickerid
syminfo.ticker
request.security
Đơn giản là bạn cần phải có một số thông tin.
request.data(url, attribute)
Ví dụ
/*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ả về giá trịCác tham sốattribute
Dòng dữ liệu được chỉ định.
Các tham số
url
(simple string) URL của nguồn dữ liệu được yêu cầu, định dạng dữ liệu của nguồn dữ liệu được trả lời cần phải đáp ứng các yêu cầu (ít nhất là chứa thuộc tính time、data):{"data": [], "schema": ["time", "data"]}
◎ Có thể tham khảo các định dạng dữ liệu trong ví dụ:
{
"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) Đặt tên thuộc tính, trả về dữ liệu cần thiết; ví dụ:"$.spot_close_price"
Sử dụng$.
Như một 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 nguồn dữ liệu được yêu cầu
Nếu có lỗi, cần kiểm trarequest.data
Nếu không truy vấn dữ liệu trong chuỗi thời gian truy vấn, dữ liệu sẽ trả lại lỗi.
Trong trường hợp này, data-data truy vấn dữ liệu trong câu lệnh 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 FMZ.Khám phá dữ liệuTìm kiếm trang, tạo liên kết dữ liệu, ví dụ:https://www.datadata.com/api/v1/query/ebe46218-c5c6-4366-8c72-413694417976/data
。
Bạn cần một loại khác / độ phân giải.
request.security(symbol, timeframe, expression, gaps, lookahead, ignore_invalid_symbol, currency)
Ví dụ
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ả về giá trịyêu cầu series
Các tham số
symbol
(simple string) Mã hàng hóa.timeframe
(simple string) chu kỳ thời gian. Dây 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 gọi từ request.security và trả về một biểu thức. Nó có thể là một chuỗi hoặc một tập hợp các phần tử có thể được chuyển đổi thành một chuỗi.gaps
(barmerge_gaps) chính sách kết hợp dữ liệu được yêu cầu ((yêu cầu dữ liệu tự động kết hợp với dữ liệu OHLC trong bộ dữ liệu chính)). Giá trị có thể: barmerge.gaps_on, barmerge.gaps_off。 barmerge.gaps_on - dữ liệu được yêu cầu được kết hợp với khoảng cách có thể ((na giá trị) ). barmerge.gaps_off - dữ liệu được yêu cầu được kết hợp liên tục không ngừng, tất cả các khoảng trống được lấp đầy trước giá trị hiện có gần đây nhất。 giá trị mặc định là barmerge.gaps_off。lookahead
(barmerge_lookahead) cho chính sách hợp nhất 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.ignore_invalid_symbol
(const bool) Một tham số tùy chọn. Nếu không tìm thấy hàng hóa được chỉ định, xác định hành vi của hàm: nếu là false, kịch bản sẽ dừng lại và trả lại lỗi khi chạy; nếu là true, hàm sẽ trả lại na và tiếp tục thực hiện. Giá trị mặc định là false.currency
(simple string) Chuyển đổi giá trị liên quan đến tiền tệ của hàng hóa (ví dụ OHLC) sang tiền tệ; sau đó tính toán giá trị sau khi chuyển đổi theo hàm số biểu thức; tỷ lệ chuyển đổi được sử dụng dựa trên tỷ lệ hối đoái hàng ngày của ngày trước đối với cặp FX_IDC (với so sánh với đường K được tính toán); tùy chọn. Giá trị mặc định là syminfo.currency. Giá trị có thể: một chuỗi ba chữ cái hoặc currency với mã tiền tệ định dạng ISO 4217 (ví dụ: Nhận xétMã PineScript sử dụng chức năng này để thực hiện các tính toán khác nhau đối với các bản ghi 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ể thay đổi tùy chọn của bạn.您可以使用ticker.new() hàm.
Không thể sử dụng biến ticker tick để truyền điểm sai cho hàm này. Bạn có thể sử dụng tickticker.newHình thức biểu diễn chuỗi của biến số hoặc 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 cuộc gọi request.security.
Xin lưu ý rằng việc sử dụng biến/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 cho phép:
1S, 5S, 15S, 30S - Khoảng giây (chu kỳ biểu đồ nên nhỏ hơn hoặc bằng chu kỳ được yêu cầu)
Từ 1 đến 1440 phút
Từ 1D đến 365D
Từ 1W đến 52W trong vài tuần.
Từ 1M đến 12M trong vài tháng.
Hẹn gặp lại
syminfo.ticker
syminfo.tickerid
timeframe.period
ta.correlation
barmerge.lookahead_off
barmerge.lookahead_on
Nếusource
Dòng chứastr
Dòng chữ cái, trả về true, nếu không trả về false.
str.contains(source, str)
Ví dụ
// 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ả về giá trịNếusource
Tìm trong chuỗistr
, thì là true, nếu không thì là false.
Các tham số
source
(series string) Dòng mã nguồnstr
(series string) Dữ liệu tìm kiếm.Hẹn gặp lại
str.pos
str.match
Nếusource
Dòng chữ cái được tạo bằngstr
Kết thúc của chuỗi con được chỉ định trong trả về true, nếu không trả về false.
str.endswith(source, str)
Trả về giá trịNếusource
Dòng chữ cái được tạo bằngstr
Kết thúc của chuỗi con được chỉ định trong là true, nếu không là false.
Các tham số
source
(series string) Dòng mã nguồnstr
(series string) Dữ liệu tìm kiếm.Hẹn gặp lại
str.startswith
Nếusource
Dòng chữ cái được tạo bằngstr
Đầu của một chuỗi con được chỉ định trong, trả về true, nếu không trả về false.
str.startswith(source, str)
Trả về giá trịNếusource
Dòng chữ cái được tạo bằngstr
Đầu của một chuỗi con được chỉ định trong là true, nếu không là false.
Các tham số
source
(series string) Dòng mã nguồnstr
(series string) Dữ liệu tìm kiếm.Hẹn gặp lại
str.endswith
Trở lại một chuỗi mới, nó làsource
Dòng chữ cái của một chuỗi. Dòng chữ cái của một chuỗi.begin_pos
Chữ trong chỉ mục được chỉ định bắt đầu và mở rộng đếnsource
str.substring(source, begin_pos)
str.substring(source, begin_pos, end_pos)
Ví dụ
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ả về giá trịDòng chữ cái được lấy từ chuỗi nguồn.
Các tham số
source
(series string) lấy từ đó chuỗi nguồn của chuỗi con.begin_pos
(series int) là vị trí bắt đầu của chuỗi con được trích xuất. Nó là độc quyền (trong chuỗi con được trích xuất bao gồm các ký tự của vị trí đó).end_pos
(series int) kết thúc vị trí. Nó là độc quyền. Các chuỗi được trích xuất không bao gồm các ký tự của vị trí. Tùy chọn.source
Chiều dài của chuỗi.Nhận xétChỉ mục chuỗi bắt đầu từ 0; nếubegin_pos
làend_pos
, hàm trả về một chuỗi trống.
Hẹn gặp lại
str.contains
str.pos
str.match
str.tonumber(string)
Trả về giá trịNếu chứa một số hợp lệ, đó là kiểu dấu tròn của chuỗi, nếu không thì là na.
Các tham số
string
(series string) dạng biểu diễn chuỗi int hoặc float.Chuyển đổi các chuỗi và giá trị định dạng thành các chuỗi định dạng. Các chuỗi định dạng có thể chứa văn bản văn bản và một ký tự trong các dấu ngoặc lớn {} cho mỗi giá trị định dạng. Mỗi ký tự bao gồm chỉ số thay thế các tham số cần thiết của nó (bắt đầu từ 0), và một ký tự định dạng tùy chọn. Chỉ mục cho biết vị trí của tham số trong danh sách các tham số str.format.
str.format(formatString, arg0, arg1, ...)
Ví dụ
// 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ả về giá trịDữ liệu được định dạng.
Các tham số
formatString
(series string) Dạng chuỗi.arg0, arg1, ...
(series int/float/bool/string/na/int[]/float[]/bool[]/string[]) là giá trị cần định dạng.Nhận xétTất cả các dấu ngoặc trong kiểu không được trích dẫn phải được cân bằng. Ví dụ,
Trả về số nguyên tương ứng với số ký tự trong chuỗi.
str.length(string)
Trả về giá trịSố ký tự trong chuỗi nguồn.
Các tham số
string
(series string) Dòng mã nguồnTrả về một chuỗi mới mà tất cả các chữ cái được chuyển đổi thành chữ cái nhỏ.
str.lower(source)
Trả về giá trịTất cả các chữ cái đã được chuyển thành các chuỗi mới bằng chữ viết nhỏ.
Các tham số
source
(series string) Dòng chữ được chuyển đổi.Hẹn gặp lại
str.upper
Trả về một chuỗi mới mà tất cả các chữ cái được chuyển đổi thành chữ cái lớn.
str.upper(source)
Trả về giá trịTất cả các chữ cái đã được chuyển thành các chuỗi mới chữ cái lớn.
Các tham số
source
(series string) Dòng chữ được chuyển đổi.Hẹn gặp lại
str.lower
Nếu phù hợpregex
Một biểu thức chính xác sẽ trả vềsource
Dòng mới của một chuỗi, nếu không nó sẽ trả về
str.match(source, regex)
Ví dụ
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ả về giá trị
source
Và chúng ta có thể tạo ra một chuỗi mới nếu nó phù hợp với mộtregex
Một biểu thức chính xác, nếu không là
Các tham số
source
(series string) Dòng mã nguồnregex
(series string) biểu thức chính thức phù hợp với chuỗi này.Nhận xétPhương thức trả vềsource
Một biểu thức chính thức xuất hiện lần đầu tiên trong một chuỗi.regex
Biểu tượng ngược dấu ngoặc \
Hẹn gặp lại
str.contains
str.substring
Trở lạisource
Lần đầu tiên xuất hiện trong chuỗistr
Địa điểm của chuỗi, nếu không sẽ trả về
str.pos(source, str)
Trả về giá trị
str
Dòng chữ cáisource
Vị trí trong chuỗi.
Các tham số
source
(series string) Dòng mã nguồnstr
(series string) Dữ liệu tìm kiếm.Nhận xétChỉ mục chuỗi bắt đầu từ 0.
Hẹn gặp lại
str.contains
str.match
str.substring
Trở lại một chuỗi mới, trong đó n + 1 lần xuất hiệntarget
Dòng chữ cái và những gì đã xuất hiện trước đótarget
Đổi chuỗi thànhreplacement
Dòng chữ cái, trong đó N làoccurrence
Trong đó, N là chỉ mục phù hợp với string đích được thay thế trong string nguồn.
str.replace(source, target, replacement, occurrence)
Ví dụ
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ả về giá trịDữ liệu đã được xử lý
Các tham số
source
(series string) Dòng mã nguồntarget
(series string) được thay thếreplacement
(series string) Dòng chữ mà bạn muốn chèn thay vì mục tiêu.occurrence
(series int) mục tiêu string để thay thế là mục tiêu string xuất hiện trong nguồn string.Hẹn gặp lại
str.replace_all
str.match
Sử dụng thay thế chuỗi để thay thế mỗi lần xuất hiện trong chuỗi nguồn.
str.replace_all(source, target, replacement)
Trả về giá trịDữ liệu đã được xử lý
Các tham số
source
(series string) Dòng mã nguồntarget
(series string) được thay thếreplacement
(series string) Mỗi lần xuất hiện, các chuỗi mục tiêu sẽ thay thếPhân chia các chuỗi thành các chuỗi chuỗi con và trả về ID của chúng.
str.split(string, separator)
Trả về giá trịID của mảng string.
Các tham số
string
(series string) Dòng mã nguồnseparator
(series string) Một chuỗi phân biệt từng chuỗi con.str.tostring(value)
str.tostring(value, format)
str.tostring(value[])
str.tostring(value[], format)
Trả về giá trị
value
Dạng biểu thị của chuỗi tham số.
Nếuvalue
Các tham số là một chuỗi và được trả về như cũ.
Khivalue
Trong trường hợp na, hàm trả về string NaN.
Các tham số
value
(series int/float/bool/string/int[]/float[]/bool[]/string[]) mà các phần tử của nó được chuyển đổi thành giá trị của chuỗi hoặc ID mảng.format
(serial string) Format string. Chấp nhận các định dạng.* hằng số: format.mintick, format.percent, format.volume. Tùy chọn. Giá trị mặc định là Nhận xétCác định dạng của các giá trị điểm trôi cũng sẽ đặt bốn năm vào các giá trị này khi cần thiết, ví dụ: str.tostring ((3.99,
Màu sắc chức năng sẽ chỉ định độ minh bạch được áp dụng cho một màu nào đó.
color.new(color, transp)
Ví dụ
plot(close, color=color.new(color.red, 50))
Trả về giá trịNhững màu sắc có độ minh bạch nhất định.
Các tham số
color
(màu loạt)transp
(series int/float) Các giá trị có sẵn từ 0 (không rõ ràng) đến 100 (không rõ ràng)Nhận xétSử dụng rất nhiều tham số (ví dụ, hàm đơn giản, hàm đầu vào hoặc hàm loạt) sẽ ảnh hưởng đến màu sắc hiển thị trên trang thẻ của cài đặt khóa kịch bản / style.
Sử dụng mô hình màu RGB để tạo ra các màu sắc mới với độ minh bạch.
color.rgb(red, green, blue, transp)
Ví dụ
plot(close, color=color.rgb(255, 0, 0, 50))
Trả về giá trịNhững màu sắc có độ minh bạch nhất định.
Các tham số
red
(series int/float) Đặt màu đỏ. Các giá trị có thể là từ 0 đến 255.green
(series int/float) màu xanh lá cây. Các giá trị có thể là từ 0 đến 255.blue
(series int/float) Tâm 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 minh bạch. Các giá trị có thể từ 0 (không minh bạch) đến 100 (hình minh bạch). Giá trị mặc định là 0.Nhận xétSử dụng rất nhiều tham số (ví dụ, hàm đơn giản, hàm đầu vào hoặc hàm loạt) sẽ ảnh hưởng đến màu sắc hiển thị trên trang thẻ của cài đặt khóa kịch bản / style.
Nhập thông tin thay đổi trên bảng điều khiển.
FMZ PINE là một ngôn ngữ có chức năng đặc biệt.runtime.debug(value)
, chỉ có một tham số.
Nhận được nội dung trong nhật ký.
FMZ PINE là một ngôn ngữ có chức năng đặc biệt.runtime.log(1, 2, 3, close, high, ...)
, có thể truyền nhiều tham số.
Khi được gọi, nó sẽ gây ra lỗi khi chạy và có thể gây ra sự cố.message
Thông báo sai được chỉ định trong tham số.
runtime.error(message)
Các tham sốmessage (series string) thông báo sai.
Thêm đầu vào vào trang nhãn đầ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. Chức năng này tự động phát hiện loại tham số được sử dụng cho hàm undefval và sử dụng plugin đầu vào tương ứng.
input(defval, title, tooltip, inline, group)
input(defval, title, inline, group, tooltip)
Ví dụ
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ả về giá trịNhập giá trị biến
Các tham số
defval
(const int/float/bool/string/color or source-type built-ins) Định giá trị mặc định của một biến nhập được đề xuất trong trang cài đặt / nhập float của kịch bản và người dùng kịch bản có thể thay đổi nó.close
、hlc3
Và rồi.title
(const string) tiêu đề nhập. Nếu không được chỉ định, tên biến được sử dụng làm tiêu đề nhập. Nếu đã chỉ định tiêu đề nhưng tiêu đề trống, tên sẽ là một chuỗi trống.tooltip
(const string) Chữ 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) Kết hợp tất cả các cuộc gọi đầu vào sử dụng cùng một tham số trong một dòng. Không hiển thị chuỗi được sử dụng làm tham số. Nó chỉ được sử dụng để xác định đầu vào thuộc cùng một dòng.group
(const string) Tạo tiêu đề trên tất cả các đầu vào bằng cách sử dụng cùng một chuỗi ký tự số tập hợp.Nhận xétGiá trị trả về của hàm input phải luôn được gán cho các biến; xem ví dụ trên
Hẹn gặp lại
input.bool
input.color
input.int
input.float
input.string
input.timeframe
input.source
Thêm đầu vào vào trang nhãn đầ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. 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, vv. Nếu kịch bản chỉ chứa một cuộc gọi input.source (), người dùng cũng có thể chọn đầu ra của một chỉ số khác trên biểu đồ làm nguồn.
input.source(defval, title, tooltip, inline, group)
Ví dụ
i_src = input.source(close, "Source")
plot(i_src)
Trả về giá trịNhập giá trị biến
Các tham số
defval
(series int/float) xác định các cài đặt hàng loạt của kịch bản / Đặt giá trị mặc định cho các biến đầu vào được đề xuất trong trang thẻ hàng loạt, người dùng có thể thay đổi từ đó.title
(const string) tiêu đề nhập. Nếu không được chỉ định, tên biến được sử dụng làm tiêu đề nhập. Nếu đã chỉ định tiêu đề nhưng tiêu đề trống, tên sẽ là một chuỗi trống.tooltip
(const string) Chữ 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) Kết hợp tất cả các cuộc gọi đầu vào sử dụng cùng một tham số trong một dòng. Không hiển thị chuỗi được sử dụng làm tham số. Nó chỉ được sử dụng để xác định đầu vào thuộc cùng một dòng.group
(const string) Tạo tiêu đề trên tất cả các đầu vào bằng cách sử dụng cùng một chuỗi ký tự số tập hợp.Nhận xét input.source函数的结果总是应该分配给一个变量,见上面的例子。
Hẹn gặp lại
input.bool
input.int
input.float
input.string
input.timeframe
input.color
input
Thêm đầu vào vào menu tùy chọn đầ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 trường đầu vào chuỗi vào đầu vào của kịch bản.
input.string(defval, title, options, tooltip, inline, group, confirm)
Ví dụ
i_text = input.string("Hello!", "Message")
runtime.log(i_text)
Trả về giá trịNhập giá trị biến
Các tham số
defval
(const string) xác định các cài đặt con số của kịch bản / nhập giá trị mặc định của một biến đầu vào được đề xuất trong trang thẻ con số, người dùng có thể thay đổi nó.options
Khi các tham số được sử dụng cùng nhau, giá trị này phải là một trong số đó.title
(const string) tiêu đề nhập. Nếu không được chỉ định, tên biến được sử dụng làm tiêu đề nhập. Nếu đã chỉ định tiêu đề nhưng tiêu đề trống, tên sẽ là một chuỗi trống.options
(List of constants: [tooltip
(const string) Chữ 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) Kết hợp tất cả các cuộc gọi đầu vào sử dụng cùng một tham số trong một dòng. Không hiển thị chuỗi được sử dụng làm tham số. Nó chỉ được sử dụng để xác định đầu vào thuộc cùng một dòng.group
(const string) Tạo tiêu đề trên tất cả các đầu vào bằng cách sử dụng cùng một chuỗi ký tự số tập hợp.confirm
(const bool) Nếu đúng, người dùng sẽ được yêu cầu xác nhận giá trị đầu vào trước khi thêm chỉ số vào biểu đồ. Giá trị mặc định là false.Nhận xét input.string函数的结果总是应该分配给一个变量,见上面的例子。
Hẹn gặp lại
input.bool
input.int
input.float
input.timeframe
input.source
input.color
input
Thêm đầu vào 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.
input.bool(defval, title, tooltip, inline, group, confirm)
Ví dụ
i_switch = input.bool(true, "On/Off")
plot(i_switch ? open : na)
Trả về giá trịNhập giá trị biến
Các tham số
defval
(const bool) xác định các cài đặt con số của kịch bản / nhập các giá trị mặc định cho các biến đầu vào được đề xuất trong trang thẻ con số mà 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 được sử dụng làm tiêu đề nhập. Nếu đã chỉ định tiêu đề nhưng tiêu đề trống, tên sẽ là một chuỗi trống.tooltip
(const string) Chữ 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) Kết hợp tất cả các cuộc gọi đầu vào sử dụng cùng một tham số trong một dòng. Không hiển thị chuỗi được sử dụng làm tham số. Nó chỉ được sử dụng để xác định đầu vào thuộc cùng một dòng.group
(const string) Tạo tiêu đề trên tất cả các đầu vào bằng cách sử dụng cùng một chuỗi ký tự số tập hợp.confirm
(const bool) Nếu đúng, người dùng sẽ được yêu cầu xác nhận giá trị đầu vào trước khi thêm chỉ số vào biểu đồ. Giá trị mặc định là false.Nhận xét input.bool函数的结果总是应该分配给一个变量,见上面的例子。
Hẹn gặp lại
input.int
input.float
input.string
input.timeframe
input.source
input.color
input
Thêm đầu vào 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. Chức năng này thêm các trường đầu vào bằng số nguyên trong đầ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ụ
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ả về giá trịNhập giá trị biến
Các tham số
defval
(const int) xác định các cài đặt con số của kịch bản / nhập giá trị mặc định của biến đầu vào được đề xuất trong trang thẻ con số, người dùng kịch bản có thể thay đổi nó.options
Khi các tham số được sử dụng cùng nhau, giá trị này phải là một trong số đó.title
(const string) tiêu đề nhập. Nếu không được chỉ định, tên biến được sử dụng làm tiêu đề nhập. Nếu đã chỉ định tiêu đề nhưng tiêu đề trống, tên sẽ là một chuỗi trống.minval
(const int) là giá trị tối thiểu có thể của một biến nhập.maxval
(const int) Giá trị tối đa có thể của biến nhập.step
(const int) được sử dụng để tăng/giảm bước dài của đầu vào. Tùy chọn.options
(tuple of const int values: [val1, val2,...]) Dưới đây là 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à được gộp lại bằng dấu ngoặc kép: [val1, val2,...];; không thể sử dụng khi sử dụng tham số này.minval
、maxval
vàstep
Các tham số.tooltip
(const string) Chữ 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) Kết hợp tất cả các cuộc gọi đầu vào sử dụng cùng một tham số trong một dòng. Không hiển thị chuỗi được sử dụng làm tham số. Nó chỉ được sử dụng để xác định đầu vào thuộc cùng một dòng.group
(const string) Tạo tiêu đề trên tất cả các đầu vào bằng cách sử dụng cùng một chuỗi ký tự số tập hợp.confirm
(const bool) Nếu đúng, người dùng sẽ được yêu cầu xác nhận giá trị đầu vào trước khi thêm chỉ số vào biểu đồ. Giá trị mặc định là false.Nhận xét input.int函数的结果总是应该分配给一个变量,见上面的例子。
Hẹn gặp lại
input.bool
input.float
input.string
input.timeframe
input.source
input.color
input
Thêm đầu vào 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.
input.float(defval, title, minval, maxval, step, tooltip, inline, group, confirm)
input.float(defval, title, options, tooltip, inline, group, confirm)
Ví dụ
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ả về giá trịNhập giá trị biến
Các 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 cài đặt/nhập float của kịch bản và người dùng kịch bản có thể thay đổi nó.options
Khi các tham số được sử dụng cùng nhau, giá trị này phải là một trong số đó.title
(const string) tiêu đề nhập. Nếu không được chỉ định, tên biến được sử dụng làm tiêu đề nhập. Nếu đã chỉ định tiêu đề nhưng tiêu đề trống, tên sẽ là một chuỗi trống.minval
(const int/float) Giá trị tối thiểu có thể của biến nhập.maxval
(const int/float) Giá trị tối đa có thể của biến nhập.step
(const int/float) được sử dụng để tăng/giảm bước nhập. Tùy chọn.options
(tuple of const int/float values: [val1, val2,...]) 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à gộp lại bằng dấu ngoặc kép: [val1, val2,...];; không thể sử dụng khi sử dụng tham số nàyminval
、maxval
vàstep
Các tham số.tooltip
(const string) Chữ 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) Kết hợp tất cả các cuộc gọi đầu vào sử dụng cùng một tham số trong một dòng. Không hiển thị chuỗi được sử dụng làm tham số. Nó chỉ được sử dụng để xác định đầu vào thuộc cùng một dòng.group
(const string) Tạo tiêu đề trên tất cả các đầu vào bằng cách sử dụng cùng một chuỗi ký tự số tập hợp.confirm
(const bool) Nếu đúng, người dùng sẽ được yêu cầu xác nhận giá trị đầu vào trước khi thêm chỉ số vào biểu đồ. Giá trị mặc định là false.Nhận xét input.float函数的结果总是应该分配给一个变量,见上面的例子。
Hẹn gặp lại
input.bool
input.int
input.string
input.timeframe
input.source
input.color
input
Thêm đầu vào 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. 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ị 16 chữ số.
input.color(defval, title, tooltip, inline, group, confirm)
Ví dụ
i_col = input.color(color.red, "Plot Color")
plot(close, color=i_col)
Trả về giá trịNhập giá trị biến
Các tham số
defval
(const color) xác định các cài đặt con số của kịch bản / Đưa vào giá trị mặc định của các biến đầu vào được đề xuất trong trang thẻ con số, người dùng có thể thay đổi từ đó.title
(const string) tiêu đề nhập. Nếu không được chỉ định, tên biến được sử dụng làm tiêu đề nhập. Nếu đã chỉ định tiêu đề nhưng tiêu đề trống, tên sẽ là một chuỗi trống.tooltip
(const string) Chữ 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) Kết hợp tất cả các cuộc gọi đầu vào sử dụng cùng một tham số trong một dòng. Không hiển thị chuỗi được sử dụng làm tham số. Nó chỉ được sử dụng để xác định đầu vào thuộc cùng một dòng.group
(const string) Tạo tiêu đề trên tất cả các đầu vào bằng cách sử dụng cùng một chuỗi ký tự số tập hợp.confirm
(const bool) Nếu đúng, người dùng sẽ được yêu cầu xác nhận giá trị đầu vào trước khi thêm chỉ số vào biểu đồ. Giá trị mặc định là false.Nhận xét input.color函数的结果总是应该分配给一个变量,见上面的例子。
Hẹn gặp lại
input.bool
input.int
input.float
input.string
input.timeframe
input.source
input
Sử dụng cài đặt / nhập thẻ giá để thêm nhập giá vào các tập lệnh.confirm = true
Tác động chế độ đầu vào 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ụ
price1 = input.price(title="Date", defval=42)
plot(price1)
price2 = input.price(54, title="Date")
plot(price2)
Trả về giá trịNhập giá trị biến
Các tham số
defval
(const int/float) xác định các cài đặt phím của kịch bản / Đặt giá trị mặc định cho các biến đầu vào được đề xuất trong trang thẻ phím, 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 được sử dụng làm tiêu đề nhập. Nếu đã chỉ định tiêu đề nhưng tiêu đề trống, tên sẽ là một chuỗi trống.tooltip
(const string) Chữ 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) Kết hợp tất cả các cuộc gọi đầu vào sử dụng cùng một tham số trong một dòng. Không hiển thị chuỗi được sử dụng làm tham số. Nó chỉ được sử dụng để xác định đầu vào thuộc cùng một dòng.group
(const string) Tạo tiêu đề trên tất cả các đầu vào bằng cách sử dụng cùng một chuỗi ký tự số tập hợp.confirm
(const bool) Nếu đúng, bật chế độ đầu vào 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 hoàn thành lựa chọn bằng cách chọn chỉ số và sau đó di chuyển chọn.Nhận xétKhi sử dụng chế độ tương tác, nếu hai hàm được gọi đối với nhauinline
Các tham số sử dụng cùng một tham số, bạn có thể sử dụng các đầu vào thời gian kết hợp với đầu vào giá.
Hẹn gặp lại
input.bool
input.int
input.float
input.string
input.resolution
input.source
input.color
input
Thêm đầu vào 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. 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 chu kỳ thời gian cụ thể thông qua trình chọn chu kỳ thời gian và trả lại nó như một chuỗi. Các trình chọn bao gồm các chu kỳ thời gian tùy chỉnh mà người dùng có thể thêm vào menu kéo xuống theo chu kỳ thời gian mà người dùng có thể sử dụng biểu đồ.
input.timeframe(defval, title, options, tooltip, inline, group, confirm)
Ví dụ
i_res = input.timeframe('D', "Resolution", options=['D', 'W', 'M'])
s = request.security(syminfo.tickerid, i_res, close)
plot(s)
Trả về giá trịNhập giá trị biến
Các tham số
defval
(const string) xác định các cài đặt con số của kịch bản / nhập giá trị mặc định của một biến đầu vào được đề xuất trong trang thẻ con số, người dùng có thể thay đổi nó.options
Khi các tham số được sử dụng cùng nhau, giá trị này phải là một trong số đó.title
(const string) tiêu đề nhập. Nếu không được chỉ định, tên biến được sử dụng làm tiêu đề nhập. Nếu đã chỉ định tiêu đề nhưng tiêu đề trống, tên sẽ là một chuỗi trống.options
(tuple of const string values: [val1, val2,...]) Danh sách các tùy chọn có thể chọn.tooltip
(const string) Chữ 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) Kết hợp tất cả các cuộc gọi đầu vào sử dụng cùng một tham số trong một dòng. Không hiển thị chuỗi được sử dụng làm tham số. Nó chỉ được sử dụng để xác định đầu vào thuộc cùng một dòng.group
(const string) Tạo tiêu đề trên tất cả các đầu vào bằng cách sử dụng cùng một chuỗi ký tự số tập hợp.confirm
(const bool) Nếu đúng, người dùng sẽ được yêu cầu xác nhận giá trị đầu vào trước khi thêm chỉ số vào biểu đồ. Giá trị mặc định là false.Nhận xét input.timeframe函数的结果总是应该分配给一个变量,见上面的例子。
Hẹn gặp lại
input.bool
input.int
input.float
input.string
input.source
input.color
input
Không
Không
Arnaud Legoux đường trung bình di chuyển. Nó sử dụng phân bố Gauss như một trọng lượng cho các giá trị trung bình di chuyển.
ta.alma(series, length, offset, sigma)
ta.alma(series, length, offset, sigma, floor)
Ví dụ
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ả về giá trịArnaud Legoux đường trung bình di chuyển
Các tham số
series
(series int/float) Các giá trị trong chuỗi đang được thực hiện.length
(series int) Số lượng K đường (độ dài).offset
(simple int/float) điều khiển sự cân bằng giữa độ mượt (gần 1) và độ đáp ứng (gần 0).sigma
(simple int/float) thay đổi độ mượt của ALMA. Sigma càng lớn, ALMA càng mượt.floor
(simple bool) Các tham số có thể chọn được. Trước khi tính toán ALMA, chỉ định xem tính toán độ lệch là giới hạn thấp hay không. Giá trị mặc định là false.Hẹn gặp lại
ta.sma
ta.ema
ta.rma
ta.wma
ta.vwma
ta.swma
Chức năng sma trả về giá trị trung bình di chuyển, nghĩa là giá trị y cuối cùng của x, chia cho y.
ta.sma(source, length)
Ví dụ
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ả về giá trị
length
K đường trở lạisource
Đường trung bình di chuyển đơn giản.
Các tham số
source
(series int/float) Các giá trị trong chuỗi đang được thực hiện.length
(series int) Số lượng K đường (độ dài).Hẹn gặp lại
ta.ema
ta.rma
ta.wma
ta.vwma
ta.swma
ta.alma
cog (cốt lõi) là một chỉ số dựa trên thống kê và tỷ lệ vàng Fibonacci.
ta.cog(source, length)
Ví dụ
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ả về giá trịTrọng tâm
Các tham số
source
(series int/float) Các giá trị trong chuỗi đang được thực hiện.length
(series int) Số lượng K đường (độ dài).Hẹn gặp lại
ta.stoch
衡量系列与其ta.sma之间的差异
ta.dev(source, length)
Ví dụ
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ả về giá trị
length
K đường trở lạisource
Những người khác cũng có thể làm điều đó.
Các tham số
source
(series int/float) Các giá trị trong chuỗi đang được thực hiện.length
(series int) Số lượng K đường (độ dài).Hẹn gặp lại
ta.variance
ta.stdev
ta.stdev(source, length, biased)
Ví dụ
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ả về giá trịTiêu chuẩn kém
Các tham số
source
(series int/float) Các giá trị trong chuỗi đang được thực hiện.length
(series int) Số lượng K đường (độ dài).biased
(series bool) xác định ước tính nào nên được sử dụng↑ tùy chọn↑ giá trị mặc định là true↑Nhận xétNếubiased
Nếu true, hàm sẽ tính toán bằng cách sử dụng ước tính thiên vị của tổng thể, nếu false - ước tính không thiên vị của mẫu.
Hẹn gặp lại
ta.dev
ta.variance
Chức năng ema trả về đường trung bình di chuyển cân bằng chỉ số. Trong ema, yếu tố cân bằng tăng theo chỉ số giảm. 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ụ
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ả về giá trị
source
Chỉ số của đường trung bình di chuyển, alpha = 2 / (chiều dài + 1) ‖.
Các tham số
source
(series int/float) Các giá trị trong chuỗi đang được thực hiện.length
(simple int) Số lượng K đường (độ dài).Nhận xétXin lưu ý rằng việc sử dụng biến/chức năng này có thể dẫn đến việc vẽ lại các chỉ số.
Hẹn gặp lại
ta.sma
ta.rma
ta.wma
ta.vwma
ta.swma
ta.alma
Chức năng wma trả vềlength
Đường Ksource
Trong wma, các yếu tố cân nhắc được giảm theo số bậc toán học.
ta.wma(source, length)
Ví dụ
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ả về giá trị
length
K đường trở lạisource
Đường trung bình di chuyển cân nặng.
Các tham số
source
(series int/float) Các giá trị trong chuỗi đang được thực hiện.length
(series int) Số lượng K đường (độ dài).Hẹn gặp lại
ta.sma
ta.ema
ta.rma
ta.vwma
ta.swma
ta.alma
Đường trung chuyển cân bằng đối xứng có chiều dài cố định: cân nặng: [1/6,2 / 6,2 / 6,1 / 6].
ta.swma(source)
Ví dụ
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ả về giá trịĐường trung chuyển cân đối.
Các tham số
source
(series int/float) Dòng nguồn.Hẹn gặp lại
ta.sma
ta.ema
ta.rma
ta.wma
ta.vwma
ta.alma
Chức năng hma trả về đường trung bình di chuyển của thân tàu HMA.
ta.hma(source, length)
Ví dụ
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ả về giá trịTrả về Hull Moving Average của Hull
Các tham số
source
(series int/float) Các giá trị trong chuỗi đang được thực hiện.length
(simple int) Số lượng K dâyHẹn gặp lại
ta.ema
ta.rma
ta.wma
ta.vwma
ta.sma
Đường trung chuyển được sử dụng trong RSI. Nó là đường trung chuyển index cộng với trọng số alpha cộng với trọng số = 1 / chiều dài.
ta.rma(source, length)
Ví dụ
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ả về giá trị
source
Chỉ số trung bình di chuyển, alpha = 1 /length
。
Các tham số
source
(series int/float) Các giá trị trong chuỗi đang được thực hiện.length
(simple int) Số lượng K đường (độ dài).Hẹn gặp lại
ta.sma
ta.ema
ta.wma
ta.vwma
ta.swma
ta.alma
ta.rsi
Chỉ số tương đối mạnh. Nó được sử dụng trong cuối cùnglength
K-Linesource
Sự thay đổi lên và xuốngta.rma()
Những người khác cũng có thể làm điều đó.
ta.rsi(source, length)
Ví dụ
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ả về giá trịChỉ số RSI tương đối mạnh và yếu
Các tham số
source
(series int/float) Các giá trị trong chuỗi đang được thực hiện.length
(simple int) Số lượng K đường (độ dài).Hẹn gặp lại
ta.rma
Chỉ số mạnh và yếu thực sự. Nó sử dụng đường trung bình di chuyển của động lượng tiềm năng của các công cụ tài chính.
ta.tsi(source, short_length, long_length)
Trả về giá trịChỉ số mạnh và yếu thực sự. Giá trị trong phạm vi [-1,1].
Các tham số
source
(series int/float) Dòng nguồn.short_length
(simple int) dài ngắn.long_length
(simple int) chiều dài của đường dây dài.Chức năng roc (độ thay đổi)source
giá trị hiện tại vàsource
Một vài ngày trướclength
Sự 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ả về giá trị
length
K đường trở lạisource
Tỷ lệ thay đổi của các nước khác nhau.
Các tham số
source
(series int/float) Các giá trị trong chuỗi đang được thực hiện.length
(series int) Số lượng K đường (độ dài).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ả về giá trịSự khác biệt giữa giá trị nhỏ nhất và giá trị lớn nhất trong chuỗi.
Các tham số
source
(series int/float) Các giá trị trong chuỗi đang được thực hiện.length
(series int) Số lượng K đường (độ dài).MACD (đường trung bình chênh lệch trôi chảy) ;; Nó nên tiết lộ 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ụ
[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 ký hiệu thay thế như thế này:
Ví dụ
[_, signalLine, _] = ta.macd(close, 12, 26, 9)
plot(signalLine, color=color.orange)
Trả về giá trịBa bộ phận của dòng MACD: đường MACD, đường tín hiệu và đường đồ họa thẳng.
Các tham số
source
(series int/float) Các giá trị trong chuỗi đang được thực hiện.fastlen
(simple int) Các tham số đường nhanhslowlen
(simple int) Điểm số chiều dài chậm.siglen
(simple int) Các tham số về chiều dài tín hiệu.Hẹn gặp lại
ta.sma
ta.ema
Trả về mô hình của chuỗi. Trả về giá trị tối thiểu nếu có nhiều giá trị có cùng tần số.
ta.mode(source, length)
Trả về giá trịMô hình của chuỗi.
Các tham số
source
(series int/float) Các giá trị trong chuỗi đang được thực hiện.length
(series int) Số lượng K đường (độ dài).Trả về số trung của chuỗi.
ta.median(source, length)
Trả về giá trịSố trung của chuỗi.
Các tham số
source
(series int/float) Các giá trị trong chuỗi đang được thực hiện.length
(series int) Số lượng K đường (độ dài).Đường cong quay ngược tuyến tính. Một đường cong phù hợp nhất với giá chỉ định trong khoảng thời gian được xác định bởi người dùng. Nó được tính bằng cách sử dụng các phép nhân tối thiểu hai. 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ụng.source
Giá trị của phép tính hai lần nhỏ nhất của chuỗi.
ta.linreg(source, length, offset)
Trả về giá trịĐường cong quay trở lại tuyến tính
Các tham số
source
(series int/float) Dòng nguồn.length
(series int)offset
(simple int) di chuyểnĐường viền. Đường viền là một công cụ phân tích kỹ thuật, được định nghĩa bởi một tập các đường được phân cách với đường trung bình di chuyển đơn giản (SMA) của giá chứng khoán với hai độ lệch tiêu chuẩn (tích cực 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ụ
[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ả về giá trịBạch Ốc.
Các tham số
series
(series int/float)ồ ôiLàm thế nào để có nhiều giao dịch đồng thời với một hợp đồng Bitcoin?
Những đám mây nhẹXin vui lòng cho tôi biết, pine có thể giao dịch nhiều lần không? Và cũng có thể giao dịch xuyên suốt như JS không?
Lisa20231Xin cảm ơn vì đã cung cấp các tài liệu chi tiết.
nghệ thuậtWow! Làm thế nào để Pine Script sử dụng OKEX trên nền tảng này?
nghệ thuậtĐiều này đồng nghĩa với việc các chiến lược của nền tảng tradingview được sao chép trực tiếp vào nền tảng của nhà phát minh để sử dụng!
Những nhà phát minh định lượng - những giấc mơ nhỏNgôn ngữ PINE chỉ có thể thực hiện các chính sách một giống, nhiều giống là tốt nhất hoặc viết thiết kế bằng python, javascript, c ++.
Những nhà phát minh định lượng - những giấc mơ nhỏỒ, vâng, OKX là khá đặc biệt, môi trường tương tự của họ và môi trường thực của họ là cùng một địa chỉ, chỉ có một sự khác biệt ở nơi khác. Vì vậy, không có cách nào để chuyển đổi địa chỉ cơ sở để chuyển sang ổ đĩa tương tự.
Những đám mây nhẹKhông thể sử dụng okx analog dial............
Những nhà phát minh định lượng - những giấc mơ nhỏVấn đề kiến trúc đa dạng này không được giải quyết tốt, vì mỗi giao dịch giao diện khác nhau và không giới hạn tần số giao diện khác nhau, sẽ gây ra nhiều vấn đề.
Những nhà phát minh định lượng - những giấc mơ nhỏĐược rồi, cảm ơn các bạn đã đưa ra đề xuất, hãy báo cáo yêu cầu này nhé.
Những đám mây nhẹCảm thấy tốt hơn khi được kết hợp với JS, JS có thể thích nghi tốt hơn với nhiều cách giao dịch.
Người săn xu hướngBạn có nghĩ đến nhiều giống trong tương lai không?
Những nhà phát minh định lượng - những giấc mơ nhỏKhông lịch sự.
Những đám mây nhẹTốt, cảm ơn bạn rất nhiều.
Những nhà phát minh định lượng - những giấc mơ nhỏXin chào, tạm thời, chính sách ngôn ngữ PINE chỉ có thể làm một giống.
Những nhà phát minh định lượng - những giấc mơ nhỏXin cảm ơn vì sự ủng hộ của bạn.
Những nhà phát minh định lượng - những giấc mơ nhỏCó, có.
Những nhà phát minh định lượng - những giấc mơ nhỏPINE Template Library, các tham số có thể được thiết lập để chuyển đổi địa chỉ cơ sở của sàn giao dịch.