FMZ PINE Script Dokumentasi

Dibuat di: 2022-05-06 14:27:06, diperbarui pada: 2025-01-23 10:19:06
comments   18
hits   13760

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。

Methods

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 mendukungMethodsSetelah itu, kodearray.avg(sourceArray)Jika kita menggunakan metode, kita bisa menuliskan:sourceArray.avg()。 Perhatian: FMZ tidak didukung untuk sementaraarray.avgIni 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:

  1. Kata kunci method harus disertakan sebelum nama fungsi.
  2. Parameter metode, di mana jenis parameter pertama harus dinyatakan secara eksplisit, karena menyatakan jenis objek yang akan dikaitkan dengan metode tersebut.

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.

Fungsi bawaan

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)             // 正确写法

timeframe

timeframe.in_seconds

akan dikirim ketimeframePeriode 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 timeframeInt 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 (36512) hari dalam satu bulan.

Lihat juga input.timeframe timeframe.period

ticker

ticker.heikinashi

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

request

request.data

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 parameterattributeSeri 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 data

Jika ada kesalahan, periksa.request.dataApakah 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

request.security

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

str

str.contains

JikasourceString berisistrSubstring, 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 disourceMenemukan dalam stringstr, maka benar, jika tidak maka salah.

parameter

  • source(series string) string sumber
  • str(series string) Substring yang akan dicari.

Lihat juga str.pos str.match

str.endswith

JikasourceString denganstrSubstring yang ditentukan di akhir akan dikembalikan true, jika tidak akan dikembalikan false.

str.endswith(source, str)

Mengembalikan nilai JikasourceString denganstrSubstring yang ditentukan di dalam berakhir dengan true atau false.

parameter

  • source(series string) string sumber
  • str(series string) Substring yang akan dicari.

Lihat juga str.startswith

str.startswith

JikasourceString denganstrSubstring yang ditentukan di awal akan mengembalikan true, jika tidak akan mengembalikan false.

str.startswith(source, str)

Mengembalikan nilai JikasourceString denganstrSubstring yang ditentukan di dalam dimulai dengan true, jika tidak dengan false.

parameter

  • source(series string) string sumber
  • str(series string) Substring yang akan dicari.

Lihat juga str.endswith

str.substring

Mengembalikan string baru, yaitusourceSubstring dari string ≠ Substring dari stringbegin_posKarakter 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 issourcePanjang string.

Catatan Indeks string dimulai dari 0. Jikabegin_possetaraend_pos, fungsi mengembalikan string kosong.

Lihat juga str.contains str.pos str.match

str.tonumber

str.tonumber(string)

Mengembalikan nilai floating-point string jika berisi bilangan valid, atau na。

parameter

  • string(series string) bentuk representasi string dari int atau float

str.format

Konversi 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.

str.length

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 sumber

str.lower

Mengembalikan 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

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

str.match

Jika cocokregexEkspresi Reguler, akan dikembalikansourceString 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 sourceString anak baru string, jika itu cocok denganregexEkspresi formalnya adalah ‘na’.

parameter

  • source(series string) string sumber
  • regex(series string) Ekspresi reguler yang cocok dengan string ini.

Catatan Fungsi PengembaliansourceEkspresi reguler yang muncul pertama kali dalam string. regexSimbol backslash dalam string memerlukan penggunaan backslash tambahan untuk menterjemahkan, seperti\d mewakili ekspresi reguler \d。

Lihat juga str.contains str.substring

str.pos

KembalisourcePertama kali muncul dalam stringstrJika tidak, kembali ‘na’

str.pos(source, str)

Mengembalikan nilai strString disourcePosisi dalam string.

parameter

  • source(series string) string sumber
  • str(series string) Substring yang akan dicari.

Catatan Indeks string dimulai dari 0.

Lihat juga str.contains str.match str.substring

str.replace

Mengembalikan string baru yang muncul N+1 kalitargetString dan yang sebelumnyatargetString diganti denganreplacementstring, di mana N berada dioccurrenceTentukan .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 sumber
  • target(series string) diganti dengan string
  • replacement(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

str.replace_all

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 sumber
  • target(series string) diganti dengan string
  • replacement(series string) Setiap kali muncul string target akan menggantikan string

str.split

Pembagian string menjadi sub-array string dan mengembalikan ID arraynya.

str.split(string, separator)

Mengembalikan nilai ID dari string array.

parameter

  • string(series string) string sumber
  • separator(series string) String yang memisahkan setiap string anak.

str.tostring

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

Mengembalikan nilai valueString argumen menunjukkan bentuk。 JikavalueJika parameter adalah string, maka akan dikembalikan seperti aslinya. KetikavalueUntuk 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。

color

color.new

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.

color.rgb

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 255
  • green(series int/float) warna hijau. Nilai yang mungkin adalah dari 0 sampai 255
  • blue(series int/float) Bulu. Nilai yang mungkin adalah dari 0 sampai 255
  • transp(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.

runtime

runtime.debug

Mencetak informasi variabel di panel kontrol.

FMZ PINE memiliki fungsi khusus untuk bahasa.runtime.debug(value), hanya ada satu argumen.

runtime.log

Keluar dari jurnal.

FMZ PINE memiliki fungsi khusus untuk bahasa.runtime.log(1, 2, 3, close, high, ...), dapat mengirimkan beberapa parameter.

runtime.error

Pada saat panggilan, akan menyebabkan kesalahan saat berjalan, dan membawamessagePesan kesalahan yang ditentukan dalam parameter.

runtime.error(message)

parameter message (series string) pesan kesalahan

input

input

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:closehlc3Dan 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

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

input.string

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.optionsJika 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: [&lt;type&gt;…]) 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.bool

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

input.int

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.optionsJika 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 1
  • options (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 iniminvalmaxvalDanstepParameter
  • 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.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

input.float

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.optionsJika 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 1
  • options (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 iniminvalmaxvalDanstepParameter
  • 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.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.color

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

input.price

Tambahkan input harga ke halaman tag pengaturan/input dari script.confirm = trueAktifkan 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 keinlineParameter 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.timeframe

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.optionsJika 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

input.integer

Tidak ada

input.resolution

Tidak ada

ta

ta.alma

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