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”)
atau
```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")
Objek yang disalin
Pada Pine, objek dialokasikan melalui referensi. Ketika objek yang ada dialokasikan ke variabel baru, keduanya menunjuk ke objek yang sama.
//@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)
Dalam contoh di bawah ini, kita membuat sebuah objek pivot1 dan mengatur bidang x-nya menjadi 1000. Kemudian, kita menyatakan bahwa sebuah pivot2 berisi variabel yang merujuk pada objek pivot1 tersebut, sehingga keduanya merujuk pada instansi yang sama. Oleh karena itu, mengubah pivot2.x juga akan mengubah pivot1.x, karena keduanya merujuk pada bidang x-nya dari objek yang sama.
Untuk membuat salinan yang independen dari objek asli, dalam hal ini kita dapat menggunakan built-in copy () metode. Dalam contoh ini, kita menyatakan pivot2 mengacu pada variabel dari contoh replikasi dari objek pivot1. Sekarang, mengubah pivot2.x tidak akan mengubah pivot1.x, karena itu mengacu pada bidang x sebagai objek yang terpisah:
//@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)
Perlu dicatat bahwa metode copy TradingView adalah shallow copy. Jika sebuah objek memiliki jenis bidang khusus (array, dll), maka bidang-bidang dalam shallow copy objek tersebut akan mengarah ke instansi yang sama dengan objek tersebut. Platform FMZ langsung melakukan deep copy tanpa perlu melakukan prosesor tambahan, seperti contoh berikut:
Menyalin
//@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")
Hasil tes, labelInfo.copy ((labelInfo1) dieksekusi sebagai salinan dalam, mengubah labelInfo1 bidang apapun tidak akan mempengaruhi labelInfo2。
Metode dalam bahasa Pine adalah fungsi khusus yang terkait dengan jenis yang dibangun atau didefinisikan pengguna dari contoh tertentu. Dalam banyak hal, mereka adalah fungsi yang sama dengan fungsi biasa, tetapi menawarkan lebih pendek, lebih mudah tata bahasa. Pengguna dapat langsung menggunakan tanda titik untuk mengakses metode pada variabel, seperti mengakses bidang objek Pine.
Metode bawaan
Contoh dari kode skrip seperti ini:
//@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)
Atau dengan kata lain:
//@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)
Anda dapat melihat bahwa PINE mendukungMethods
Setelah itu, kodearray.avg(sourceArray)
Jika kita menggunakan metode, kita bisa menuliskan:sourceArray.avg()
。
Perhatian: FMZ tidak didukung untuk sementaraarray.avg
Ini adalah panggilan.
Metode yang didefinisikan pengguna
Pine memungkinkan pengguna untuk mendefinisikan metode kustom yang digunakan bersama dengan objek dari jenis built-in atau user-defined. Metode definisi pada dasarnya sama dengan fungsi definisi, tetapi dengan dua perbedaan utama:
Misalnya, dalam kode berikut, kode untuk menghitung metrik Brin dibungkus dengan metode yang disesuaikan pengguna:
//@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)
diubah menjadi:
//@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)
Anda dapat melihat metode kustomisasi pengguna yang menggunakan pernyataan metode kata kunci: maintainQueue, yang pertama dari daftar parameter calcBB adalaharray<float>
type ≠ menyatakan bahwa method adalaharray<float>
Metode untuk variabel tipe, sehingga dapat dilihat dengan memanggil kode berikut untuk menghitung indikator Brin.
[sampleMean, highBand, lowBand] = sourceArray.maintainQueue(sourceInput, newSample).calcBB(multiplier, newSample)
Mengisi ulang Methods
Metode yang didefinisikan pengguna dapat mengalip dan memuat metode yang sudah ada yang memiliki identifier yang sama dengan metode yang didefinisikan pengguna. Fitur ini memungkinkan pengguna untuk mendefinisikan beberapa prosedur yang berhubungan dengan tanda tangan parameter yang berbeda di bawah nama metode yang sama. Sebagai contoh sederhana, misalkan kita ingin mendefinisikan sebuah metode untuk mengidentifikasi jenis variabel.
//@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")
Tentukan tipe dasar dari setiap variabelgetType()
Apa jenis muat ulang yang akan digunakan. Di platform FMZ, karena dasar skrip PINE diimplementasikan sebagai bahasa Javascript, maka jenis nilai akan dinilai sebagai data float.
Parameter yang ditransmisikan pada saat fungsi dipanggil, dapat diberikan nilai pada nama parameter, dapat langsung ditransmisikan ke variabel pada posisi parameter yang sesuai, dan juga mendukung penggunaan campuran. Misalnya:
plot(close, title="test plot") // 直接传参数 close ;指定参数 title ,赋值字符串"test plot"
Setelah memberikan nilai nama parameter, maka tidak bisa lagi langsung mentransfer variabel sebagai parameter, kemudian parameter yang ditransfer harus ditulis dalam bentuk penugasan nama parameter.
// plot(close, title="test", color.red) // 虽然plot第三个参数是颜色值,但是这样写就会报错
plot(close, title="test", color=color.red) // 正确写法
plot(close, "test", color.red) // 正确写法
akan dikirim ketimeframe
Periode waktu parameter dikonversi menjadi detik.
timeframe.in_seconds(timeframe)
Contoh
// 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)
Mengembalikan nilai
timeframe
Int adalah bentuk dari bilangan detik dalam satu baris K.
parameter
timeframe
(simple string) Periode. opsional. Default adalah timeframe.period.Catatan
Untuktimeframe
>= Fungsi ‘1M’ berdasarkan 30.4167 (365⁄12) hari dalam satu bulan.
Lihat juga
input.timeframe
timeframe.period
Membuat sebuah kode identifier untuk smoothing mean K linearity.
ticker.heikinashi(symbol)
Contoh
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)
Mengembalikan nilai String nilai dari kode saham, dapat diberikan ke fungsi request.security。
parameter
symbol
(simple string) Pengidentifikasi kode barang.Lihat juga
syminfo.tickerid
syminfo.ticker
request.security
Data eksternal diminta.
request.data(url, attribute)
Contoh
/*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)
Mengembalikan nilai
parameterattribute
Seri data yang ditentukan.
parameter
url
(simple string) Url sumber data yang diminta, format data yang ditanggapi sumber data harus sesuai dengan persyaratan ((setidaknya termasuk atribut time, data):{"data": [], "schema": ["time", "data"]}
❚ Format data yang dapat digunakan adalah: {
"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) Menentukan nama atribut dan mengembalikan data yang dibutuhkan. Misalnya:"$.spot_close_price"
,menggunakan$.
Sebagai prefix, nama properti konsisten dengan properti di bidang data dalam data yang ditanggapi pada saat permintaan sumber dataJika ada kesalahan, periksa.request.data
Apakah rentang waktu yang diminta sesuai dengan rentang waktu yang telah ditetapkan. Jika data tidak ditemukan pada rentang waktu yang telah ditentukan, maka akan terjadi kesalahan.
Data-data data query SQL statement dalam contoh ini:
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;
Ada yang bisa dilihat di FMZ.Eksplorasi DataPermintaan halaman, membuat tautan data, yang digunakan dalam contohhttps://www.datadata.com/api/v1/query/ebe46218-c5c6-4366-8c72-413694417976/data
。
Meminta varietas/resolusi lain.
request.security(symbol, timeframe, expression, gaps, lookahead, ignore_invalid_symbol, currency)
Contoh
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)
Mengembalikan nilai Seri Permintaan
parameter
symbol
(simple string) Kode produk.timeframe
(simple string) Periode waktu。 String kosong akan diinterpretasikan sebagai periode waktu saat ini dari grafik。expression
(series int/float/bool/color) dapat dihitung dari panggilan request.security dan mengembalikan sebuah ekspresi. Ia bisa berupa sebuah seri atau sebuah subset yang berisi elemen yang dapat diubah menjadi seri.gaps
(barmerge_gaps) Memberikan strategi penggabungan data yang diminta (yang meminta data untuk digabungkan secara otomatis dengan rangkaian data OHLC utama). Nilai yang mungkin: barmerge.gaps_on, barmerge.gaps_off. barmerge.gaps_on - data yang diminta digabungkan dengan kemungkinan kesenjangan (na value). barmerge.gaps_off - data yang diminta digabungkan secara terus menerus, semua kesenjangan diisi dengan nilai yang ada sebelumnya.lookahead
(barmerge_lookahead) memberikan kebijakan penggabungan data yang diminta. Nilai yang mungkin: barmerge.lookahead_on, barmerge.lookahead_off. Mulai dari versi 3, default adalah barmerge.lookahead_off. Perhatikan bahwa perilaku sama dengan real time, hanya berbeda dalam sejarah.ignore_invalid_symbol
(const bool) Sebuah parameter opsional. Jika barang yang ditentukan tidak ditemukan, maka tindakan fungsi ditentukan: jika false, skrip akan berhenti dan mengembalikan kesalahan saat dijalankan; jika true, fungsi akan mengembalikan na dan melanjutkan eksekusi. Nilai default adalah false.currency
(simple string) Mengkonversi nilai terkait mata uang barang (seperti OHLC) ke mata uang. Kemudian menghitung nilai setelah konversi. expression . Tingkat konversi yang digunakan didasarkan pada nilai tukar harian FX_IDC hari sebelumnya. relatif dengan garis K yang dihitung.Catatan
Kode PineScript yang menggunakan fitur ini dapat melakukan perhitungan yang berbeda untuk catatan sejarah dan data real-time.
Jika Anda ingin menetapkan parameter tambahan untuk barang yang diminta, seperti periode transaksi atau jenis penyesuaian, Anda dapat menggunakan fungsi ticker.new ().
Tidak dapat menggunakan variabel ‘ticker’ untuk memberikan perbedaan titik ke fungsi ini. Anda dapat menggunakan variabel ‘ticker.new’ atau representasi string dari kode saham, seperti AAPL+MSFT*TSLA”。
Saat ini, satu skrip dapat memiliki hingga 40 panggilan request.security.
Harap dicatat bahwa penggunaan variabel/fungsi ini dapat menyebabkan penggambaran ulang indikator.
Resolusi yang diizinkan adalah:
1S, 5S, 15S, 30S - selang detik (periode grafik harus kurang dari atau sama dengan periode yang diminta)
Dari 1 sampai 1440 menit
Dari 1D ke 365D
Dari 1W ke 52W beberapa minggu
Dari 1M sampai 12M beberapa bulan
Lihat juga
syminfo.ticker
syminfo.tickerid
timeframe.period
ta.correlation
barmerge.lookahead_off
barmerge.lookahead_on
Jikasource
String berisistr
Substring, maka dikembalikan true, jika tidak dikembalikan false
str.contains(source, str)
Contoh
// 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)
Mengembalikan nilai
Jika disource
Menemukan dalam stringstr
, maka benar, jika tidak maka salah.
parameter
source
(series string) string sumberstr
(series string) Substring yang akan dicari.Lihat juga
str.pos
str.match
Jikasource
String denganstr
Substring yang ditentukan di akhir akan dikembalikan true, jika tidak akan dikembalikan false.
str.endswith(source, str)
Mengembalikan nilai
Jikasource
String denganstr
Substring yang ditentukan di dalam berakhir dengan true atau false.
parameter
source
(series string) string sumberstr
(series string) Substring yang akan dicari.Lihat juga
str.startswith
Jikasource
String denganstr
Substring yang ditentukan di awal akan mengembalikan true, jika tidak akan mengembalikan false.
str.startswith(source, str)
Mengembalikan nilai
Jikasource
String denganstr
Substring yang ditentukan di dalam dimulai dengan true, jika tidak dengan false.
parameter
source
(series string) string sumberstr
(series string) Substring yang akan dicari.Lihat juga
str.endswith
Mengembalikan string baru, yaitusource
Substring dari string ≠ Substring dari stringbegin_pos
Karakter dimulai pada indeks yang ditentukan, dan diperluas kesource
‘end_pos - 1’ dari string.
str.substring(source, begin_pos)
str.substring(source, begin_pos, end_pos)
Contoh
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)
Mengembalikan nilai Substring yang diambil dari string sumber.
parameter
source
(series string) String sumber dari substring tersebut.begin_pos
(series int) posisi awal dari substring yang diekstrak.end_pos
(series int) Ending position。 it is exclusive ((string yang diekstrak tidak termasuk karakter di posisi tersebut)。 optional。 default issource
Panjang string.Catatan
Indeks string dimulai dari 0. Jikabegin_pos
setaraend_pos
, fungsi mengembalikan string kosong.
Lihat juga
str.contains
str.pos
str.match
str.tonumber(string)
Mengembalikan nilai floating-point string jika berisi bilangan valid, atau na。
parameter
string
(series string) bentuk representasi string dari int atau floatKonversi string format dan nilai ke string format. String format dapat berisi teks dan tanda hubung dalam tanda kurung besar {} untuk setiap nilai yang akan diformat. Setiap tanda hubung mencakup indeks yang akan menggantikan parameter yang diperlukan untuknya (bermula dari 0), dan tanda tanda hubung yang dapat dipilih. Indeks menunjukkan posisi parameter tersebut dalam daftar parameter str.format.
str.format(formatString, arg0, arg1, ...)
Contoh
// 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)
Mengembalikan nilai Senar format.
parameter
formatString
(series string) format string。arg0, arg1, ...
(series int/float/bool/string/na/int[]/float[]/bool[]/string[]) Nilai yang harus diformat.Catatan Semua tanda kurung dalam gaya yang tidak dikutip harus seimbang. Misalnya, “ab {0} de” dan “ab ‘}’ de” adalah gaya yang valid, tetapi “ab {0’}’ de”, “ab } de” dan “‘{”” bukan gaya yang valid.
Mengembalikan bilangan bulat yang sesuai dengan jumlah karakter dalam string tersebut.
str.length(string)
Mengembalikan nilai Jumlah karakter dalam string sumber.
parameter
string
(series string) string sumberMengembalikan sebuah string baru di mana semua huruf diubah menjadi huruf kecil.
str.lower(source)
Mengembalikan nilai Semua huruf diubah menjadi string baru huruf kecil.
parameter
source
(series string) string yang akan dikonversi.Lihat juga
str.upper
Mengembalikan string baru di mana semua huruf diubah menjadi huruf besar.
str.upper(source)
Mengembalikan nilai Semua huruf diubah menjadi string baru dengan huruf kapital.
parameter
source
(series string) string yang akan dikonversi.Lihat juga
str.lower
Jika cocokregex
Ekspresi Reguler, akan dikembalikansource
String anak dari string, jika tidak, kembali ‘na’
str.match(source, regex)
Contoh
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"
Mengembalikan nilai
source
String anak baru string, jika itu cocok denganregex
Ekspresi formalnya adalah ‘na’.
parameter
source
(series string) string sumberregex
(series string) Ekspresi reguler yang cocok dengan string ini.Catatan
Fungsi Pengembaliansource
Ekspresi reguler yang muncul pertama kali dalam string.
regex
Simbol backslash dalam string memerlukan penggunaan backslash tambahan untuk menterjemahkan, seperti\d mewakili ekspresi reguler \d。
Lihat juga
str.contains
str.substring
Kembalisource
Pertama kali muncul dalam stringstr
Jika tidak, kembali ‘na’
str.pos(source, str)
Mengembalikan nilai
str
String disource
Posisi dalam string.
parameter
source
(series string) string sumberstr
(series string) Substring yang akan dicari.Catatan Indeks string dimulai dari 0.
Lihat juga
str.contains
str.match
str.substring
Mengembalikan string baru yang muncul N+1 kalitarget
String dan yang sebelumnyatarget
String diganti denganreplacement
string, di mana N berada dioccurrence
Tentukan .N sebagai indeks pencocokan yang muncul dalam string sumber sebagai string target yang akan diganti.
str.replace(source, target, replacement, occurrence)
Contoh
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)
Mengembalikan nilai String yang telah diproses
parameter
source
(series string) string sumbertarget
(series string) diganti dengan stringreplacement
(series string) String yang akan disisipkan dan bukan string target.occurrence
(series int) String target yang akan diganti adalah indeks yang cocok yang muncul di string sumber. Indeks yang cocok pertama dimulai dari 0.Lihat juga
str.replace_all
str.match
Dengan menggantikan string, menggantikan string target yang muncul setiap kali dalam string sumber.
str.replace_all(source, target, replacement)
Mengembalikan nilai String yang telah diproses
parameter
source
(series string) string sumbertarget
(series string) diganti dengan stringreplacement
(series string) Setiap kali muncul string target akan menggantikan stringPembagian string menjadi sub-array string dan mengembalikan ID arraynya.
str.split(string, separator)
Mengembalikan nilai ID dari string array.
parameter
string
(series string) string sumberseparator
(series string) String yang memisahkan setiap string anak.str.tostring(value)
str.tostring(value, format)
str.tostring(value[])
str.tostring(value[], format)
Mengembalikan nilai
value
String argumen menunjukkan bentuk。
Jikavalue
Jika parameter adalah string, maka akan dikembalikan seperti aslinya.
Ketikavalue
Untuk na, fungsi mengembalikan string NaN.
parameter
value
(series int/float/bool/string/int[]/float[]/bool[]/string[]) yang unsurnya dikonversi menjadi nilai string atau array ID。format
(series string) Format string. Accepts these format.* constants: format.mintick, format.percent, format.volume. Optional. The default value is ‘#.##########’.Catatan Format dengan nilai float juga akan mengoreksi nilai-nilai ini jika diperlukan, misalnya str.tostring ((3.99, ‘#’) akan mengembalikan 4。 Untuk menunjukkan angka nol, gunakan ‘0’ dan bukan ‘#’. Misalnya, ‘#.000’[2]. Ketika menggunakan format.mintick, nilai tersebut akan disingkirkan ke angka terdekat yang dapat dibagi tanpa sisa dengan syminfo.mintick. Jika argumen x adalah string, maka akan dikembalikan nilai string yang sama. Bool tipe argumen yang dikembalikan true atau false Ketika x adalah na, fungsi mengembalikan NaN。
Fungsi warna akan menentukan transparansi yang akan diterapkan pada warna yang diberikan.
color.new(color, transp)
Contoh
plot(close, color=color.new(color.red, 50))
Mengembalikan nilai Warna dengan transparansi tertentu.
parameter
color
(series color)transp
(series int/float) Nilai yang tersedia adalah dari 0 (tidak transparan) hingga 100 (tidak terlihat)Catatan Menggunakan parameter yang sangat banyak (misalnya, simple, input, atau series) akan mempengaruhi warna yang ditampilkan di halaman tag setelan / gaya skrip. Silakan lihat manual pengguna untuk informasi lebih lanjut.
Menggunakan model warna RGB untuk membuat warna baru dengan transparansi.
color.rgb(red, green, blue, transp)
Contoh
plot(close, color=color.rgb(255, 0, 0, 50))
Mengembalikan nilai Warna dengan transparansi tertentu.
parameter
red
(series int/float) warna merah. Nilai yang mungkin adalah dari 0 sampai 255green
(series int/float) warna hijau. Nilai yang mungkin adalah dari 0 sampai 255blue
(series int/float) Bulu. Nilai yang mungkin adalah dari 0 sampai 255transp
(series int/float) opsional. Warna transparan. Nilai yang mungkin dari 0 (tidak transparan) hingga 100 (transparan). Nilai default adalah 0 (transparan).Catatan Menggunakan parameter yang sangat banyak (misalnya, simple, input, atau series) akan mempengaruhi warna yang ditampilkan di halaman tag setelan / gaya skrip. Silakan lihat manual pengguna untuk informasi lebih lanjut.
Mencetak informasi variabel di panel kontrol.
FMZ PINE memiliki fungsi khusus untuk bahasa.runtime.debug(value)
, hanya ada satu argumen.
Keluar dari jurnal.
FMZ PINE memiliki fungsi khusus untuk bahasa.runtime.log(1, 2, 3, close, high, ...)
, dapat mengirimkan beberapa parameter.
Pada saat panggilan, akan menyebabkan kesalahan saat berjalan, dan membawamessage
Pesan kesalahan yang ditentukan dalam parameter.
runtime.error(message)
parameter message (series string) pesan kesalahan
Input ditambahkan ke halaman label input dari setelan skrip, yang memungkinkan Anda memberikan opsi konfigurasi kepada pengguna skrip. Fungsi ini secara otomatis mendeteksi jenis parameter yang digunakan untuk defval dan menggunakan plugin input yang sesuai.
input(defval, title, tooltip, inline, group)
input(defval, title, inline, group, tooltip)
Contoh
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)
Mengembalikan nilai Masukkan nilai variabel
parameter
defval
(const int/float/bool/string/color or source-type built-ins) Menentukan nilai default dari variabel input yang disarankan di halaman label pengaturan tabung / tabung masukan skrip, yang dapat diubah oleh pengguna skrip. Fungsi built-in tipe sumber adalah variabel floating point dalam rangkaian yang menentukan sumber penghitungan:close
、hlc3
Dan sebagainya.title
(const string) judul yang dimasukkan. Jika tidak ditentukan, nama variabel digunakan sebagai judul yang dimasukkan. Jika judul ditentukan, tetapi judulnya kosong, maka namanya akan menjadi string kosong.tooltip
(const string) Senar ini akan ditampilkan kepada pengguna saat mouse menempel di ikon tooltip.inline
(const string) Menggabungkan semua panggilan input yang menggunakan argumen yang sama dalam satu baris. Tidak menampilkan string yang digunakan sebagai argumen. Ini hanya digunakan untuk mengidentifikasi input yang termasuk dalam baris yang sama.group
(const string) Menggunakan senar nomor parameter yang sama untuk membuat header di atas semua input. Senar ini juga digunakan sebagai teks header.Catatan Nilai yang dikembalikan dari fungsi input harus selalu diberikan kepada variabel. Lihat contoh di atas
Lihat juga
input.bool
input.color
input.int
input.float
input.string
input.timeframe
input.source
Menambahkan input ke halaman label input dari pengaturan skrip, yang memungkinkan Anda memberikan opsi konfigurasi kepada pengguna skrip. Fitur ini menambahkan menu unduh yang memungkinkan pengguna memilih sumber perhitungan, seperti close, hl2, dll. Jika skrip hanya berisi satu panggilan input.source (), pengguna juga dapat memilih sumber output dari indikator lain di grafik.
input.source(defval, title, tooltip, inline, group)
Contoh
i_src = input.source(close, "Source")
plot(i_src)
Mengembalikan nilai Masukkan nilai variabel
parameter
defval
(series int/float) Menentukan nilai default dari variabel input yang disarankan dalam halaman label pengaturan / input filter skrip, yang dapat diubah oleh pengguna.title
(const string) judul yang dimasukkan. Jika tidak ditentukan, nama variabel digunakan sebagai judul yang dimasukkan. Jika judul ditentukan, tetapi judulnya kosong, maka namanya akan menjadi string kosong.tooltip
(const string) Senar ini akan ditampilkan kepada pengguna saat mouse menempel di ikon tooltip.inline
(const string) Menggabungkan semua panggilan input yang menggunakan argumen yang sama dalam satu baris. Tidak menampilkan string yang digunakan sebagai argumen. Ini hanya digunakan untuk mengidentifikasi input yang termasuk dalam baris yang sama.group
(const string) Menggunakan senar nomor parameter yang sama untuk membuat header di atas semua input. Senar ini juga digunakan sebagai teks header.Catatan Hasil dari fungsi input.source harus selalu dialokasikan ke satu variabel, lihat contoh di atas.
Lihat juga
input.bool
input.int
input.float
input.string
input.timeframe
input.color
input
Tambahkan input ke kartu pilihan input dari pengaturan skrip, yang memungkinkan Anda memberikan opsi konfigurasi kepada pengguna skrip. Fungsi ini menambahkan bidang input string ke input skrip.
input.string(defval, title, options, tooltip, inline, group, confirm)
Contoh
i_text = input.string("Hello!", "Message")
runtime.log(i_text)
Mengembalikan nilai Masukkan nilai variabel
parameter
defval
(const string) Menentukan nilai default dari variabel input yang disarankan di halaman pengaturan tab / tab input dari skrip, yang dapat diubah oleh pengguna.options
Jika parameter digunakan bersama, maka nilai tersebut harus menjadi salah satu dari keduanya.title
(const string) judul yang dimasukkan. Jika tidak ditentukan, nama variabel digunakan sebagai judul yang dimasukkan. Jika judul ditentukan, tetapi judulnya kosong, maka namanya akan menjadi string kosong.options
(List of constants: [<type>…]) Daftar pilihan yang tersedia.tooltip
(const string) Senar ini akan ditampilkan kepada pengguna saat mouse menempel di ikon tooltip.inline
(const string) Menggabungkan semua panggilan input yang menggunakan argumen yang sama dalam satu baris. Tidak menampilkan string yang digunakan sebagai argumen. Ini hanya digunakan untuk mengidentifikasi input yang termasuk dalam baris yang sama.group
(const string) Menggunakan senar nomor parameter yang sama untuk membuat header di atas semua input. Senar ini juga digunakan sebagai teks header.confirm
(const bool) Jika true, maka pengguna akan diminta untuk mengkonfirmasi nilai input sebelum menambahkan indikator ke grafik. Default adalah false.Catatan Hasil dari fungsi input.string harus selalu dialokasikan ke satu variabel, lihat contoh di atas.
Lihat juga
input.bool
input.int
input.float
input.timeframe
input.source
input.color
input
Input ditambahkan ke halaman label input dari pengaturan skrip, yang memungkinkan Anda memberikan pilihan konfigurasi kepada pengguna skrip. Fungsi ini menambahkan tanda pilih untuk input dari skrip.
input.bool(defval, title, tooltip, inline, group, confirm)
Contoh
i_switch = input.bool(true, "On/Off")
plot(i_switch ? open : na)
Mengembalikan nilai Masukkan nilai variabel
parameter
defval
(const bool) Menentukan nilai default dari variabel input yang disarankan di halaman tag pengaturan kotak / kotak input dari skrip, yang dapat diubah oleh pengguna.title
(const string) judul yang dimasukkan. Jika tidak ditentukan, nama variabel digunakan sebagai judul yang dimasukkan. Jika judul ditentukan, tetapi judulnya kosong, maka namanya akan menjadi string kosong.tooltip
(const string) Senar ini akan ditampilkan kepada pengguna saat mouse menempel di ikon tooltip.inline
(const string) Menggabungkan semua panggilan input yang menggunakan argumen yang sama dalam satu baris. Tidak menampilkan string yang digunakan sebagai argumen. Ini hanya digunakan untuk mengidentifikasi input yang termasuk dalam baris yang sama.group
(const string) Menggunakan senar nomor parameter yang sama untuk membuat header di atas semua input. Senar ini juga digunakan sebagai teks header.confirm
(const bool) Jika true, maka pengguna akan diminta untuk mengkonfirmasi nilai input sebelum menambahkan indikator ke grafik. Default adalah false.Catatan Hasil dari fungsi input.bool harus selalu dialokasikan ke satu variabel, lihat contoh di atas.
Lihat juga
input.int
input.float
input.string
input.timeframe
input.source
input.color
input
Menambahkan input ke halaman label input dari pengaturan skrip, yang memungkinkan Anda memberikan pilihan konfigurasi kepada pengguna skrip. Fungsi ini menambahkan bidang input integer ke input dari skrip.
input.int(defval, title, minval, maxval, step, tooltip, inline, group, confirm)
input.int(defval, title, options, tooltip, inline, group, confirm)
Contoh
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))
Mengembalikan nilai Masukkan nilai variabel
parameter
defval
(const int) Menentukan nilai default dari variabel input yang disarankan di halaman tag pengaturan kotak / kotak input skrip, yang dapat diubah oleh pengguna skrip.options
Jika parameter digunakan bersama, maka nilai tersebut harus menjadi salah satu dari keduanya.title
(const string) judul yang dimasukkan. Jika tidak ditentukan, nama variabel digunakan sebagai judul yang dimasukkan. Jika judul ditentukan, tetapi judulnya kosong, maka namanya akan menjadi string kosong.minval
(const int) Minimal kemungkinan nilai dari variabel masukan。 opsional。maxval
(const int) Nilai maksimum yang mungkin dari variabel masukan.step
(const int) Nilai panjang langkah untuk menambah/mengurangi input. Opsional. Default adalah 1options
(tuple of const int values: [val1, val2, …]) Daftar pilihan yang dipilih dari menu drop-down, dipisahkan dengan tanda koma dan dibungkus dengan tanda kurung:[val1, val2, …] ≠ tidak dapat digunakan saat menggunakan parameter iniminval
、maxval
Danstep
Parametertooltip
(const string) Senar ini akan ditampilkan kepada pengguna saat mouse menempel di ikon tooltip.inline
(const string) Menggabungkan semua panggilan input yang menggunakan argumen yang sama dalam satu baris. Tidak menampilkan string yang digunakan sebagai argumen. Ini hanya digunakan untuk mengidentifikasi input yang termasuk dalam baris yang sama.group
(const string) Menggunakan senar nomor parameter yang sama untuk membuat header di atas semua input. Senar ini juga digunakan sebagai teks header.confirm
(const bool) Jika true, maka pengguna akan diminta untuk mengkonfirmasi nilai input sebelum menambahkan indikator ke grafik. Default adalah false.Catatan Hasil dari fungsi input.int harus selalu dialokasikan ke satu variabel, lihat contoh di atas.
Lihat juga
input.bool
input.float
input.string
input.timeframe
input.source
input.color
input
Menambahkan input ke halaman label input dari pengaturan skrip, yang memungkinkan Anda memberikan opsi konfigurasi kepada pengguna skrip. Fungsi ini menambahkan bidang input floating point ke input dari skrip.
input.float(defval, title, minval, maxval, step, tooltip, inline, group, confirm)
input.float(defval, title, options, tooltip, inline, group, confirm)
Contoh
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)
Mengembalikan nilai Masukkan nilai variabel
parameter
defval
(const int/float) Menentukan nilai default dari variabel input yang disarankan di halaman tag pengaturan tabung / tabung input skrip, yang dapat diubah oleh pengguna skrip.options
Jika parameter digunakan bersama, maka nilai tersebut harus menjadi salah satu dari keduanya.title
(const string) judul yang dimasukkan. Jika tidak ditentukan, nama variabel digunakan sebagai judul yang dimasukkan. Jika judul ditentukan, tetapi judulnya kosong, maka namanya akan menjadi string kosong.minval
(const int/float) Minimal kemungkinan nilai dari input variabel。 opsional。maxval
(const int/float) Nilai maksimum dari variabel masukan。 opsional。step
(const int/float) untuk menambah/mengurangi input. Opsional. Default adalah 1options
(tuple of const int/float values: [val1, val2, …]) Daftar pilihan yang dipilih dari menu drop-down, dipisahkan dengan tanda koma dan dibungkus dengan tanda kurung:[val1, val2, …] ≠ tidak dapat digunakan saat menggunakan parameter iniminval
、maxval
Danstep
Parametertooltip
(const string) Senar ini akan ditampilkan kepada pengguna saat mouse menempel di ikon tooltip.inline
(const string) Menggabungkan semua panggilan input yang menggunakan argumen yang sama dalam satu baris. Tidak menampilkan string yang digunakan sebagai argumen. Ini hanya digunakan untuk mengidentifikasi input yang termasuk dalam baris yang sama.group
(const string) Menggunakan senar nomor parameter yang sama untuk membuat header di atas semua input. Senar ini juga digunakan sebagai teks header.confirm
(const bool) Jika true, maka pengguna akan diminta untuk mengkonfirmasi nilai input sebelum menambahkan indikator ke grafik. Default adalah false.Catatan Hasil dari fungsi input.float harus selalu dialokasikan ke satu variabel, lihat contoh di atas.
Lihat juga
input.bool
input.int
input.string
input.timeframe
input.source
input.color
input
Input ditambahkan ke halaman label input dari pengaturan skrip, yang memungkinkan Anda untuk memberikan pilihan konfigurasi kepada pengguna skrip. Fungsi ini menambahkan pemilih warna, yang memungkinkan pengguna untuk memilih warna dan transparansi dari panel warna atau enam belas digit.
input.color(defval, title, tooltip, inline, group, confirm)
Contoh
i_col = input.color(color.red, "Plot Color")
plot(close, color=i_col)
Mengembalikan nilai Masukkan nilai variabel
parameter
defval
(const color) Menentukan nilai default dari variabel input yang disarankan dalam halaman label pengaturan kotak / kotak input skrip, yang dapat diubah oleh pengguna.title
(const string) judul yang dimasukkan. Jika tidak ditentukan, nama variabel digunakan sebagai judul yang dimasukkan. Jika judul ditentukan, tetapi judulnya kosong, maka namanya akan menjadi string kosong.tooltip
(const string) Senar ini akan ditampilkan kepada pengguna saat mouse menempel di ikon tooltip.inline
(const string) Menggabungkan semua panggilan input yang menggunakan argumen yang sama dalam satu baris. Tidak menampilkan string yang digunakan sebagai argumen. Ini hanya digunakan untuk mengidentifikasi input yang termasuk dalam baris yang sama.group
(const string) Menggunakan senar nomor parameter yang sama untuk membuat header di atas semua input. Senar ini juga digunakan sebagai teks header.confirm
(const bool) Jika true, maka pengguna akan diminta untuk mengkonfirmasi nilai input sebelum menambahkan indikator ke grafik. Default adalah false.Catatan Hasil dari fungsi input.color harus selalu dialokasikan ke satu variabel, lihat contoh di atas.
Lihat juga
input.bool
input.int
input.float
input.string
input.timeframe
input.source
input
Tambahkan input harga ke halaman tag pengaturan/input dari script.confirm = true
Aktifkan mode input interaktif dan pilih harga dengan mengklik grafik.
input.price(defval, title, tooltip, inline, group, confirm)
Contoh
price1 = input.price(title="Date", defval=42)
plot(price1)
price2 = input.price(54, title="Date")
plot(price2)
Mengembalikan nilai Masukkan nilai variabel
parameter
defval
(const int/float) Menentukan nilai default dari variabel input yang disarankan di halaman label pengaturan kotak / kotak input skrip, yang dapat diubah oleh pengguna.title
(const string) judul yang dimasukkan. Jika tidak ditentukan, nama variabel digunakan sebagai judul yang dimasukkan. Jika judul ditentukan, tetapi judulnya kosong, maka namanya akan menjadi string kosong.tooltip
(const string) Senar ini akan ditampilkan kepada pengguna saat mouse menempel di ikon tooltip.inline
(const string) Menggabungkan semua panggilan input yang menggunakan argumen yang sama dalam satu baris. Tidak menampilkan string yang digunakan sebagai argumen. Ini hanya digunakan untuk mengidentifikasi input yang termasuk dalam baris yang sama.group
(const string) Menggunakan senar nomor parameter yang sama untuk membuat header di atas semua input. Senar ini juga digunakan sebagai teks header.confirm
(const bool) Jika true, maka aktifkan mode input interaktif dan selesaikan pilihan dengan mengklik grafik saat menambahkan indikator ke grafik, atau dengan memilih indikator dan kemudian memindahkan pilihan. Opsional.Catatan
Dalam mode interaktif, jika dua fungsi dipanggil keinline
Parameter menggunakan parameter yang sama, Anda dapat menggunakan input waktu dengan input harga.
Lihat juga
input.bool
input.int
input.float
input.string
input.resolution
input.source
input.color
input
Input ditambahkan ke halaman label input dari pengaturan skrip, yang memungkinkan Anda memberikan opsi konfigurasi kepada pengguna skrip. Fungsi ini menambahkan daftar drop-down yang memungkinkan pengguna memilih periode waktu tertentu melalui selector periode waktu dan mengembalikannya sebagai string.
input.timeframe(defval, title, options, tooltip, inline, group, confirm)
Contoh
i_res = input.timeframe('D', "Resolution", options=['D', 'W', 'M'])
s = request.security(syminfo.tickerid, i_res, close)
plot(s)
Mengembalikan nilai Masukkan nilai variabel
parameter
defval
(const string) Menentukan nilai default dari variabel input yang disarankan di halaman pengaturan tab / tab input dari skrip, yang dapat diubah oleh pengguna.options
Jika parameter digunakan bersama, maka nilai tersebut harus menjadi salah satu dari keduanya.title
(const string) judul yang dimasukkan. Jika tidak ditentukan, nama variabel digunakan sebagai judul yang dimasukkan. Jika judul ditentukan, tetapi judulnya kosong, maka namanya akan menjadi string kosong.options
(tuple of const string values: [val1, val2, …]) Daftar pilihan yang tersedia.tooltip
(const string) Senar ini akan ditampilkan kepada pengguna saat mouse menempel di ikon tooltip.inline
(const string) Menggabungkan semua panggilan input yang menggunakan argumen yang sama dalam satu baris. Tidak menampilkan string yang digunakan sebagai argumen. Ini hanya digunakan untuk mengidentifikasi input yang termasuk dalam baris yang sama.group
(const string) Menggunakan senar nomor parameter yang sama untuk membuat header di atas semua input. Senar ini juga digunakan sebagai teks header.confirm
(const bool) Jika true, maka pengguna akan diminta untuk mengkonfirmasi nilai input sebelum menambahkan indikator ke grafik. Default adalah false.Catatan Hasil dari fungsi input.timeframe harus selalu dialokasikan ke satu variabel, lihat contoh di atas.
Lihat juga
input.bool
input.int
input.float
input.string
input.source
input.color
input
Tidak ada
Tidak ada
Arnaud Legoux Moving Average. Ini menggunakan distribusi Gaussian sebagai bobot rata-rata bergerak.
ta.alma(series, length, offset, sigma)
ta.alma(series, length, offset, sigma, floor)
Contoh
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))
Mengembalikan nilai Arnaud Legoux rata-rata bergerak
parameter
series
(series int/float) Nilai seri yang akan dijalan