Sumber dimuat naik... memuat...

FMZ PINE Script Doc

Penulis:Pencipta Kuantiti - Impian Kecil, Dicipta: 2022-04-28 16:05:05, Dikemas kini: 2024-10-12 17:25:27

Mengubah nilai medan

type order
    float price
    float amount
    string symbol

if strategy.position_size == 0 and open > close
    strategy.entry("long", strategy.long, 1)
    
order1 = order.new(strategy.opentrades.entry_price(strategy.opentrades - 1), strategy.opentrades.size(strategy.opentrades - 1), syminfo.ticker)

if strategy.position_size != 0
    runtime.log(order1)
    order1.price := 999
    order1.amount := 100
    runtime.log(order1)
    runtime.error("stop")

Nilai medan objek boleh diubah menggunakan:=pengendali penugasan semula.

Koleksi objek

Contoh mendeklarasikan array kosong yang akan memegang objek jenis pesanan yang ditakrifkan pengguna:

type order
    float price
    float amount
    string symbol

arrOrder = array.new<order>()

order1 = order.new(99, 1, "BTC_USDT")
order2 = order.new(100, 2, "ETH_USDT")

array.push(arrOrder, order1)
array.push(arrOrder, order2)

runtime.log(arrOrder)
runtime.error("stop")

atau

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")

Menyalin objek

Dalam Pine, objek diberikan oleh rujukan. Apabila objek yang sedia ada diberikan kepada pembolehubah baru, kedua-duanya merujuk kepada 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 berikut, kita mencipta objek pivot1 dan menetapkan medan xnya kepada 1000. Kemudian kita mengisytiharkan pembolehubah pivot2 yang mengandungi rujukan kepada objek pivot1, jadi kedua-duanya menunjuk kepada contoh yang sama. Oleh itu, mengubah pivot2.x juga mengubah pivot1.x, kerana kedua-duanya merujuk kepada medan x objek yang sama.

Untuk membuat salinan yang bebas dari objek asal, dalam kes ini kita boleh menggunakan kaedah salinan terbina dalam ((). Dalam contoh ini, kita mengisytiharkan pembolehubah pivot2 untuk merujuk kepada contoh objek pivot1 yang disalin. Sekarang, mengubah pivot2.x tidak akan mengubah pivot1.x, kerana ia merujuk kepada medan x objek yang berasingan:

//@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 diperhatikan bahawa kaedah salin TradingView adalah salin cetek. Jika objek mempunyai jenis medan khas (array, dan lain-lain), medan ini dalam salin cetek objek akan menunjuk ke contoh yang sama dengan objek. Platform FMZ secara langsung melaksanakan penyalinan mendalam, dan tidak memerlukan pemprosesan tambahan.

Salinan mendalam

//@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"    // Modify the base type field of labelInfo1 to see if it affects labelInfo2
labelInfo1.order.price := 999             // Modify the composite type field of labelInfo1 to see if it affects labelInfo2

runtime.log(labelInfo1)
runtime.log(labelInfo2)
runtime.error("stop")

Hasil ujian menunjukkan bahawa labelInfo.copy ((labelInfo1) adalah salinan mendalam apabila dijalankan dan mengubah suai mana-mana medan labelInfo1 tidak akan menjejaskan labelInfo2.

Kaedah

Metode dalam bahasa Pine adalah fungsi khusus yang dikaitkan dengan contoh tertentu jenis terbina dalam atau yang ditakrifkan oleh pengguna. Dalam kebanyakan hal, mereka pada dasarnya sama dengan fungsi biasa, tetapi menyediakan sintaks yang lebih pendek dan lebih mudah. Pengguna boleh mengakses kaedah secara langsung pada pembolehubah menggunakan notasi titik, sama seperti mengakses medan objek Pine. Pine termasuk kaedah terbina dalam untuk semua jenis khas, termasuk array, matriks, peta, garis, baris isi, dan banyak lagi.

Kaedah terbina dalam

Sebagai contoh, kod 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)

Boleh ditulis semula dengan setara sebagai:

//@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 boleh melihat bahawa selepas PINE menyokongMethods, kodarray.avg(sourceArray)boleh ditulis dalam bentuk kaedah:sourceArray.avg(). Perhatikan bahawa FMZ tidak menyokong panggilan sepertiarray.avg currently.

Kaedah yang ditakrifkan pengguna

Pine membolehkan pengguna menentukan kaedah tersuai yang berfungsi dengan objek dari mana-mana jenis terbina dalam atau pengguna yang ditakrifkan.

  1. Kata kunci kaedah mesti dimasukkan sebelum nama fungsi.
  2. Jenis parameter pertama kaedah mesti dinyatakan secara eksplisit kerana ia mewakili jenis objek yang akan dikaitkan dengan kaedah.

Sebagai contoh, dalam kod berikut, kod untuk mengira penunjuk Bollinger disusun sebagai kaedah yang ditakrifkan oleh 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)

Dipinda 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 boleh melihat bahawa parameter pertama dalam senarai parameter kaedah yang ditakrifkan pengguna yang dinyatakan dengan kaedah kata kunci: maintainQueue dan calcBB adalah jenisarray<float>, yang bermaksud bahawa kaedah adalah kaedah pembolehubah jenisarray<float>, jadi anda boleh melihat bahawa kod berikut dipanggil untuk mengira penunjuk Bollinger.

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

Kaedah beban berlebihan

Metode yang ditakrifkan pengguna boleh menimpa dan membebani kaedah terbina dalam dan kaedah yang ditakrifkan pengguna yang ada dengan pengenal yang sama. Ciri ini membolehkan pengguna untuk menentukan beberapa rutin yang berkaitan dengan tandatangan argumen yang berbeza di bawah nama kaedah yang sama. Sebagai contoh yang mudah, katakan kita ingin menentukan kaedah untuk mengenal pasti jenis pembolehubah. Oleh kerana kita mesti menentukan secara eksplisit jenis objek yang berkaitan dengan kaedah yang ditakrifkan pengguna, kita perlu menentukan beban berlebihan untuk setiap jenis yang kita mahu mengenali. Seterusnya kita menentukan kaedah getType (() yang mengembalikan perwakilan rentetan jenis pembolehubahs dan mempunyai beban berlebihan untuk lima jenis asas:

//@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")

Jenis asas setiap pembolehubah menentukan beban berlebihangetType()Pada platform FMZ, kerana pelaksanaan asas skrip PINE adalah Javascript, jenis angka akan dinilai sebagai data koma terapung (float).

Fungsi terbina dalam

Apabila memanggil fungsi, anda boleh lulus argumen. Anda boleh menetapkan nama argumen untuk menetapkan nilai. Anda boleh terus lulus pembolehubah dalam kedudukan argumen yang sepadan. Penggunaan campuran juga disokong. Sebagai contoh:

plot(close, title="test plot")     // Pass the argument close directly; specify the argument title and assign the string "test plot"

Selepas menentukan penugasan nama argumen, anda tidak lagi boleh terus lulus pembolehubah sebagai argumen, dan argumen berikutnya mesti ditulis dalam bentuk penugasan nama argumen.

// plot(close, title="test", color.red)    // Although the third argument of plot is the color value, but this will report an error
plot(close, title="test", color=color.red) // Correct writing
plot(close, "test", color.red)             // Correct writing

jangka masa

jangka masa.dalam_detik

Mengubah tempoh masa yang berlalu kepadatimeframehujah ke dalam saat.

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)

KembaliSebuah perwakilan int bilangan saat dalam satu bartimeframe.

Argumen

  • timeframe(string mudah) Tempoh. pilihan. lalai adalah timeframe.period.

CatatanUntuktimeframe>= 1M fungsi mengira bilangan saat berdasarkan 30.4167 (365/12) hari dalam sebulan.

Lihat juga input.timeframe timeframe.period

Tikal

ticker.heikinashi

Membuat pengenal ticker untuk meminta nilai perwakilan int purata yang diluruskan.

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)

KembaliNilai rentetan kod stok yang boleh dibekalkan kepada fungsi request.security.

Argumen

  • symbol(string mudah) pengenal kod produk.

Lihat juga syminfo.tickerid syminfo.ticker request.security

permintaan

request.data

Minta data luaran.

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, "perpetual-spot difference")
plot(futuresPrice, "futures prices", overlay=true)
plot(spotPrice, "spot prices", 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)

Nilai pulanganArgumen atribut menentukan siri data.

Argumen

  • url(string mudah) URL sumber data yang diminta dan format data jawapan sumber data mesti memenuhi keperluan (termasuk sekurang-kurangnya masa dan sifat data):{"data": [], "schema": ["time", "data"]}. Anda boleh merujuk kepada format data dalam contoh:

    {
        "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 diperlukan."$.spot_close_price", gunakan$.sebagai awalan, dan nama atribut adalah konsisten dengan atribut dalam medan data dalam data dalam tindak balas apabila meminta sumber data

Jika satu ralat diminta, anda perlu menyemak sama ada julat masa yang diminta olehrequest.dataadalah konsisten dengan julat masa yang ditetapkan untuk backtest. Jika tiada data yang boleh ditanyakan dalam siri masa backtest, satu ralat akan dilaporkan.

Perintah SQL pertanyaan data-data data dalam contoh ini adalah:

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;

Anda boleh menyoal dan mencipta pautan data padaPenjelajahan Datahalaman platform FMZ, yang merupakanhttps://www.datadata.com/api/v1/query/ebe46218-c5c6-4366-8c72-413694417976/datadigunakan dalam contoh.

request.security

Minta pelbagai / 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)

KembaliSiri yang diminta

Argumen

  • symbol(Syaring mudah) Simbol.
  • timeframe(string mudah) Tempoh. String kosong ditafsirkan sebagai resolusi carta semasa.
  • expression(seri int/float/bool/color) Ungkapan boleh dikira dan dikembalikan dari panggilan request.security. Ia boleh menjadi siri atau tuple yang mengandungi elemen yang boleh diletakkan ke siri.
  • gaps(barmerge_gaps) Strategi penggabungan untuk data yang diminta (data yang diminta secara automatik digabungkan dengan data OHLC siri utama). Nilai yang mungkin: barmerge.gaps_on, barmerge.gaps_off. barmerge.gaps_on - data yang diminta digabungkan dengan kemungkinan jurang (tidak ada nilai). barmerge.gaps_off - data yang diminta digabungkan secara berterusan tanpa jurang, semua jurang diisi dengan nilai sedia ada terdekat sebelumnya. Nilai lalai adalah barmerge.gaps_off.
  • lookahead(barmerge_lookahead) Strategi penggabungan untuk kedudukan data yang diminta. Nilai yang mungkin: barmerge.lookahead_on, barmerge.lookahead_off. Nilai lalai adalah barmerge.lookahead_off bermula dari versi 3. Perhatikan bahawa tingkah laku adalah sama pada masa nyata, dan hanya berbeza pada sejarah.
  • ignore_invalid_symbol(const bool) Argumen pilihan. Menentukan tingkah laku fungsi jika simbol yang ditentukan tidak ditemui: jika salah, skrip akan berhenti dan mengembalikan ralat masa berjalan; jika benar, fungsi akan mengembalikan na dan pelaksanaan akan diteruskan. Nilai lalai adalah salah.
  • currency(string mudah) Mata wang ke mana nilai simbol yang berkaitan dengan mata wang (contohnya OHLC) akan ditukar.expressionnilai yang digunakan adalah berdasarkan pasangan FX_IDC kadar harian hari sebelumnya (berhubung dengan bar di mana pengiraan dilakukan). Pilihan. lalai adalah syminfo.currency. Nilai yang mungkin: rentetan tiga huruf dengan kod mata wang dalam format ISO 4217 (contohnya USD) atau salah satu pelarasan dalam mata wang.* ruang nama, contohnya currency.USD.

CatatanKod PineScript yang menggunakan fungsi ini boleh mengira secara berbeza pada data sejarah dan masa nyata. Jika anda ingin menentukan argumen tambahan untuk simbol yang diminta, contohnya sesi atau jenis penyesuaian, anda boleh menggunakanticker.new() fungsi. Ia tidak mungkin untuk lulus penyebaran kepada fungsi ini menggunakan ticker pembolehubah. anda boleh menggunakan ticker.new pembolehubah atau perwakilan rentetan ticker, contohnya AAPL+MSFT*TSLA. Pada masa ini, sehingga 40 permintaan. panggilan keselamatan boleh hadir dalam skrip. Sila ambil perhatian bahawa menggunakan pembolehubah/fungsi ini boleh menyebabkan pencatatan semula penunjuk.

Nilai yang dibenarkan untuk argumen resolusi adalah: 1S, 5S, 15S, 30S - untuk selang saat (resolusi carta harus kurang daripada atau sama dengan resolusi yang diminta) dari 1 hingga 1440 untuk minit dari 1D hingga 365D untuk hari dari 1W hingga 52W selama beberapa minggu dari 1M hingga 12M untuk bulan

Lihat juga syminfo.ticker syminfo.tickerid timeframe.period ta.correlation barmerge.lookahead_off barmerge.lookahead_on

str

str.contains

Mengembalikan benar jikasourcerentetan mengandungistrSubstring, palsu sebaliknya.

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)

KembaliBenar jikastrtelah ditemui disourceString, palsu sebaliknya.

Argumen

  • source(Seri tali) Tali sumber.
  • str(serangkaian rentetan) Substring untuk mencari.

Lihat juga str.pos str.match

str.endswith

Mengembalikan benar jikasourcestring berakhir dengan substring yang dinyatakan dalamstr, salah sebaliknya.

str.endswith(source, str)

KembaliBenar jikasourcestring berakhir dengan substring yang dinyatakan dalamstr, salah sebaliknya.

Argumen

  • source(Seri tali) Tali sumber.
  • str(serangkaian rentetan) Substring untuk mencari.

Lihat juga str.startswith

str.startswith

Mengembalikan benar jikasourcestring bermula dengan substring yang dinyatakan dalamstr, salah sebaliknya.

str.startswith(source, str)

KembaliBenar jikasourcestring bermula dengan substring yang dinyatakan dalamstr, salah sebaliknya.

Argumen

  • source(Seri tali) Tali sumber.
  • str(serangkaian rentetan) Substring untuk mencari.

Lihat juga str.endswith

str.substring

Mengembalikan rentetan baru yang merupakan substring darisourceSubstring bermula dengan watak di indeks yang ditentukan olehbegin_posdan meluas ke end_pos - 1source 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)

KembaliSubstring yang diekstrak dari string sumber.

Argumen

  • source(serangkaian rentetan) sumber rentetan dari mana untuk mengekstrak substring.
  • begin_pos(seri int) Posisi permulaan substring yang diekstrak. Ia termasuk (substring yang diekstrak termasuk watak di kedudukan itu).
  • end_pos(seri int) Posisi akhir. Ia eksklusif (string yang diekstrak TIDAK termasuk watak kedudukan itu). Pilihan. lalai adalah panjangsource string.

CatatanPenindeksan rentetan bermula dari 0. Jikabegin_posadalah sama denganend_pos, fungsi mengembalikan rentetan kosong.

Lihat juga str.contains str.pos str.match

str.tonumber

str.tonumber(string)

KembaliVersi terapung daripada rentetan jika ia mengandungi nombor yang sah, na sebaliknya.

Argumen

  • string(string siri) perwakilan rentetan int atau terapung.

str.format

Mengubah string pemformatan dan nilai (s) ke dalam string yang diformat. String pemformatan boleh mengandungi teks literal dan satu tempat penahan dalam kurung keriting {} untuk setiap nilai yang akan diformat. Setiap tempat penahan terdiri daripada indeks argumen yang diperlukan (bermula pada 0) yang akan menggantikannya, dan penentu format pilihan. Indeks mewakili kedudukan argumen itu dalam senarai argumen 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)

KembaliString yang diformat.

Argumen

  • formatString(Seri tali) Format tali.
  • arg0, arg1, ...(seri int/float/bool/string/na/int[]/float[]/bool[]/string[]) Nilai untuk format.

CatatanSebarang braces keriting dalam corak yang tidak dipetik mesti seimbang. Sebagai contoh, ab {0} de dan ab } de adalah corak yang sah, tetapi ab {0} de, ab } de dan { tidak.

str.length

Mengembalikan bilangan bulat yang sepadan dengan jumlah chars dalam rentetan itu.

str.length(string)

KembaliBilangan watak dalam rentetan sumber.

Argumen

  • string(Seri tali) Tali sumber.

str.lower

Mengembalikan rentetan baru dengan semua huruf ditukar kepada huruf kecil.

str.lower(source)

KembaliSatu rentetan baru dengan semua huruf ditukar kepada huruf kecil.

Argumen

  • sourceString untuk ditukar.

Lihat juga str.upper

str.upper

Mengembalikan rentetan baru dengan semua huruf ditukar kepada huruf besar.

str.upper(source)

KembaliSatu rentetan baru dengan semua huruf ditukar kepada huruf besar.

Argumen

  • sourceString untuk ditukar.

Lihat juga str.lower

str.match

Mengembalikan substring barusourcestring jika ia sepadan dengan aregexekspresi biasa, na sebaliknya.

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"

KembaliSubstring baru daripadasourcestring jika ia sepadan dengan aregexekspresi biasa, na sebaliknya.

Argumen

  • source(Seri tali) Tali sumber.
  • regex(string siri) Ungkapan biasa yang baris ini adalah untuk dipadankan.

CatatanFungsi mengembalikan kejadian pertama ungkapan biasa dalamsourcetali. Simbol backslash dalamregexstring perlu melarikan diri dengan backslash tambahan, contohnya \d bermaksud ungkapan biasa \d.

Lihat juga str.contains str.substring

str.pos

Mengembalikan kedudukan kejadian pertamastrtali dalamsourceString, na sebaliknya.

str.pos(source, str)

KembaliKedudukanstrtali dalamsource string.

Argumen

  • source(Seri tali) Tali sumber.
  • str(serangkaian rentetan) Substring untuk mencari.

CatatanPengindeksan rentetan bermula pada 0.

Lihat juga str.contains str.match str.substring

str.replace

Mengembalikan rentetan baru dengan kejadian N + 1thtargetstring dan kejadian sebelumnyatargetrentetan digantikan denganreplacementrentetan, di mana N ditentukan dalamoccurrence. N adalah indeks yang sepadan dengan rentetan sasaran yang akan digantikan dalam rentetan sumber.

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 "EXCHANGE1:SYMBOL1 / EXCHANGE1:SYMBOL2"
    runtime.log(newSource)

KembaliSelang yang diproses.

Argumen

  • source(Seri tali) Tali sumber.
  • target(Seri tali) tali untuk diganti.
  • replacement(serangkaian rentetan) rentetan untuk dimasukkan bukannya rentetan sasaran.
  • occurrence(seri int) Indeks pencocokan kejadian rentetan sasaran yang akan digantikan dalam rentetan sumber Indexing bermula pada 0 untuk pencocokan pertama. Pilihan. Nilai lalai adalah 0.

Lihat juga str.replace_all str.match

str.replace_all

Mengganti setiap kejadian rentetan sasaran dalam rentetan sumber dengan rentetan penggantian.

str.replace_all(source, target, replacement)

KembaliSelang yang diproses.

Argumen

  • source(Seri tali) Tali sumber.
  • target(Seri tali) tali untuk diganti.
  • replacement(string siri) String yang akan digantikan untuk setiap kejadian string sasaran.

str.split

Bahagikan rentetan ke dalam array substrings dan mengembalikan ID arraynya.

str.split(string, separator)

KembaliID dari pelbagai rentetan.

Argumen

  • string(Seri tali) Tali sumber.
  • separatorString yang memisahkan setiap substring.

str.tostring

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

KembaliPerwakilan rentetanvaluehujah. JikavalueArgumen adalah rentetan, ia dikembalikan seperti itu. Apabilavalueadalah na, fungsi mengembalikan rentetan NaN.

Argumen

  • value(seri int/float/bool/string/int[]/float[]/bool[]/string[]) Nilai atau ID array yang elemennya ditukar kepada rentetan.
  • format(serangkaian rentetan) Format rentetan. Menerima format ini.* konstanta: format.mintick, format.peratus, format.volume. Pilihan. Nilai lalai adalah #.#########

CatatanPemformatan nilai terapung juga akan membulatkan nilai-nilai tersebut apabila perlu, contohnya str.tostring ((3.99, #) akan mengembalikan 4. Untuk memaparkan sifar terakhir, gunakan 0 bukannya #. Sebagai contoh, #.000. Apabila menggunakan format.mintick, nilai akan dibulatkan kepada nombor terdekat yang boleh dibahagikan dengan syminfo.mintick tanpa baki. Jika argumen x adalah rentetan, nilai rentetan yang sama akan dikembalikan. Argumen jenis Bool mengembalikan true atau false. Apabila x adalah na, fungsi mengembalikan NaN.

warna

color.new

Warna fungsi menggunakan ketelusan yang ditentukan pada warna yang diberikan.

color.new(color, transp)

Contoh

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

KembaliWarna dengan ketelusan tertentu.

Argumen

  • color(warna siri)
  • transp(seri int/float) Nilai yang mungkin adalah dari 0 (tidak telus) hingga 100 (tidak kelihatan).

CatatanMenggunakan argumen yang bukan pelarasan (contohnya, simple, input atau series) akan memberi kesan kepada warna yang dipaparkan dalam tab Settings/Style skrip. Lihat Manual Pengguna untuk maklumat lanjut.

color.rgb

Mencipta warna baru dengan ketelusan menggunakan model warna RGB.

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

Contoh

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

KembaliWarna dengan ketelusan tertentu.

Argumen

  • red(seri int/float) Komponen warna merah. Nilai mungkin adalah dari 0 hingga 255.
  • green(seri int/float) Komponen warna hijau. Nilai mungkin adalah dari 0 hingga 255.
  • blue(seri int/float) Komponen warna biru. Nilai mungkin adalah dari 0 hingga 255.
  • transp(seri int/float) Pilihan. Ketelusan warna. Nilai yang mungkin adalah dari 0 (merah) hingga 100 (tidak kelihatan). Nilai lalai adalah 0.

CatatanMenggunakan argumen yang bukan pelarasan (contohnya, simple, input atau series) akan memberi kesan kepada warna yang dipaparkan dalam tab Settings/Style skrip. Lihat Manual Pengguna untuk maklumat lanjut.

masa pelaksanaan

runtime.debug

Mencetak maklumat pembolehubah ke konsol.

Fungsi khusus bahasa FMZ PINE,runtime.debug(value), dengan hanya hujah.

runtime.log

Kandungan output dalam log.

Fungsi khusus bahasa FMZ PINE,runtime.log(1, 2, 3, close, high, ...), anda boleh lulus pelbagai hujah.

runtime.error

Apabila dipanggil, menyebabkan ralat masa berjalan dengan mesej ralat yang dinyatakan dalammessage argument.

runtime.error(message)

Argumenmesej (serangkaian rentetan) mesej ralat.

input

input

Menambah input ke tab Input tetapan skrip anda, yang membolehkan anda menyediakan pilihan konfigurasi kepada pengguna skrip. Fungsi ini secara automatik mengesan jenis argumen yang digunakan untuk defval dan menggunakan widget input yang sepadan.

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

Contoh

i_switch = input(true, "On/Off")     // Set true, the default is checked.
plot(i_switch ? open : na)

i_len = input(7, "Length")
i_src = input(close, "Source")       // Drop-down box, select close by default.
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)

KembaliNilai pembolehubah input.

Argumen

  • defval(const int/float/bool/string/color or source-type built-in) Menentukan nilai lalai pembolehubah input yang dicadangkan dalam tab Settings/Inputs skrip, dari mana pengguna skrip boleh mengubahnya.close, hlc3, dan lain-lain
  • title(const string) Judul input. Jika tidak ditentukan, nama pembolehubah digunakan sebagai tajuk inputs. Jika tajuk ditentukan, tetapi kosong, nama akan menjadi rentetan kosong.
  • tooltip(const string) Senar yang akan ditunjukkan kepada pengguna apabila melayang di atas ikon alat.
  • inline(const string) Menggabungkan semua panggilan input menggunakan argumen yang sama dalam satu baris. String yang digunakan sebagai argumen tidak dipaparkan. Ia hanya digunakan untuk mengenal pasti input yang tergolong dalam baris yang sama.
  • group(const string) Membuat header di atas semua input menggunakan string argumen kumpulan yang sama.

CatatanHasil fungsi input sentiasa harus diberikan kepada pembolehubah, lihat contoh di atas.

Lihat juga input.bool input.color input.int input.float input.string input.timeframe input.source

input.source

Menambah input ke tab Input pada tetapan skrip anda, yang membolehkan anda menyediakan pilihan konfigurasi kepada pengguna skrip. Fungsi ini menambah dropdown yang membolehkan pengguna memilih sumber untuk pengiraan, contohnya close, hl2, dan lain-lain. Jika skrip hanya termasuk satu input.source() panggilan, pengguna juga boleh memilih output dari penunjuk lain pada carta mereka sebagai sumber.

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

Contoh

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

KembaliNilai pembolehubah input.

Argumen

  • defval(seri int/float) Menentukan nilai lalai pembolehubah input yang dicadangkan dalam tab Settings/Inputs skrip, dari mana pengguna boleh mengubahnya.
  • title(const string) Judul input. Jika tidak ditentukan, nama pembolehubah digunakan sebagai tajuk inputs. Jika tajuk ditentukan, tetapi kosong, nama akan menjadi rentetan kosong.
  • tooltip(const string) Senar yang akan ditunjukkan kepada pengguna apabila melayang di atas ikon alat.
  • inline(const string) Menggabungkan semua panggilan input menggunakan argumen yang sama dalam satu baris. String yang digunakan sebagai argumen tidak dipaparkan. Ia hanya digunakan untuk mengenal pasti input yang tergolong dalam baris yang sama.
  • group(const string) Membuat header di atas semua input menggunakan string argumen kumpulan yang sama.

CatatanHasil fungsi input.source sentiasa harus diberikan kepada pembolehubah, lihat contoh di atas.

Lihat juga input.bool input.int input.float input.string input.timeframe input.color input

input.string

Menambah input ke tab Input tetapan skrip anda, yang membolehkan anda menyediakan pilihan konfigurasi kepada pengguna skrip. Fungsi ini menambah medan untuk input rentetan ke input skrip.

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

Contoh

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

KembaliNilai pembolehubah input.

Argumen

  • defval(const string) Menentukan nilai lalai pembolehubah input yang dicadangkan dalam tab Settings/Inputs skrip, dari mana pengguna boleh mengubahnya.optionsArgumen, nilai mesti salah satu daripada mereka.
  • title(const string) Judul input. Jika tidak ditentukan, nama pembolehubah digunakan sebagai tajuk inputs. Jika tajuk ditentukan, tetapi kosong, nama akan menjadi rentetan kosong.
  • options(Senarai pelarasan: [...]) Senarai pilihan untuk dipilih.
  • tooltip(const string) Senar yang akan ditunjukkan kepada pengguna apabila melayang di atas ikon alat.
  • inline(const string) Menggabungkan semua panggilan input menggunakan argumen yang sama dalam satu baris. String yang digunakan sebagai argumen tidak dipaparkan. Ia hanya digunakan untuk mengenal pasti input yang tergolong dalam baris yang sama.
  • group(const string) Membuat header di atas semua input menggunakan string argumen kumpulan yang sama.
  • confirm(const bool) Jika benar, maka pengguna akan diminta untuk mengesahkan nilai input sebelum penunjuk ditambahkan ke carta. Nilai lalai adalah salah.

CatatanHasil fungsi input.string sentiasa harus diberikan kepada pembolehubah, lihat contoh di atas.

Lihat juga input.bool input.int input.float input.timeframe input.source input.color input

input.bool

Menambah input ke tab Input tetapan skrip anda, yang membolehkan anda menyediakan pilihan konfigurasi kepada pengguna skrip. Fungsi ini menambah tanda centang ke input skrip.

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

Contoh

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

KembaliNilai pembolehubah input.

Argumen

  • defval(const bool) Menentukan nilai lalai pembolehubah input yang dicadangkan dalam tab Settings/Inputs skrip, dari mana pengguna boleh mengubahnya.
  • title(const string) Judul input. Jika tidak ditentukan, nama pembolehubah digunakan sebagai tajuk inputs. Jika tajuk ditentukan, tetapi kosong, nama akan menjadi rentetan kosong.
  • tooltip(const string) Senar yang akan ditunjukkan kepada pengguna apabila melayang di atas ikon alat.
  • inline(const string) Menggabungkan semua panggilan input menggunakan argumen yang sama dalam satu baris. String yang digunakan sebagai argumen tidak dipaparkan. Ia hanya digunakan untuk mengenal pasti input yang tergolong dalam baris yang sama.
  • group(const string) Membuat header di atas semua input menggunakan string argumen kumpulan yang sama.
  • confirm(const bool) Jika benar, maka pengguna akan diminta untuk mengesahkan nilai input sebelum penunjuk ditambahkan ke carta. Nilai lalai adalah salah.

CatatanHasil fungsi input.bool sentiasa harus diberikan kepada pembolehubah, lihat contoh di atas.

Lihat juga input.int input.float input.string input.timeframe input.source input.color input

input.int

Menambah input ke tab Input tetapan skrip anda, yang membolehkan anda menyediakan pilihan konfigurasi kepada pengguna skrip. Fungsi ini menambah medan untuk input bilangan bulat ke input 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))

KembaliNilai pembolehubah input.

Argumen

  • defval(const int) Menentukan nilai lalai pembolehubah input yang dicadangkan dalam tab Settings/Inputs skrip, dari mana pengguna skrip boleh mengubahnya.optionsArgumen, nilai mesti salah satu daripada mereka.
  • title(const string) Judul input. Jika tidak ditentukan, nama pembolehubah digunakan sebagai tajuk inputs. Jika tajuk ditentukan, tetapi kosong, nama akan menjadi rentetan kosong.
  • minval(const int) Nilai minimum yang mungkin bagi pembolehubah input.
  • maxval(const int) Nilai maksimum yang mungkin bagi pembolehubah input.
  • step(const int) Nilai langkah yang digunakan untuk meningkatkan / mengurangkan input. Pilihan. lalai adalah 1.
  • options(tuple nilai int const: [val1, val2,...]) Senarai pilihan untuk dipilih dari menu dropdown, dipisahkan oleh koma dan disertakan dalam kurungan persegi: [val1, val2,...].minval, maxvaldanstepargument tidak boleh digunakan.
  • tooltip(const string) Senar yang akan ditunjukkan kepada pengguna apabila melayang di atas ikon alat.
  • inline(const string) Menggabungkan semua panggilan input menggunakan argumen yang sama dalam satu baris. String yang digunakan sebagai argumen tidak dipaparkan. Ia hanya digunakan untuk mengenal pasti input yang tergolong dalam baris yang sama.
  • group(const string) Membuat header di atas semua input menggunakan string argumen kumpulan yang sama.
  • confirm(const bool) Jika benar, maka pengguna akan diminta untuk mengesahkan nilai input sebelum penunjuk ditambahkan ke carta. Nilai lalai adalah salah.

CatatanHasil daripadainput.intfungsi sentiasa harus diberikan kepada pembolehubah, lihat contoh di atas.

Lihat juga input.bool input.float input.string input.timeframe input.source input.color input

input.float

Menambah input ke tab Input tetapan skrip anda, yang membolehkan anda menyediakan pilihan konfigurasi kepada pengguna 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)

KembaliNilai pembolehubah input.

Argumen

  • defval(const int/float) Menentukan nilai lalai pembolehubah input yang dicadangkan dalam tab Settings/Inputs skrip, dari mana pengguna skrip boleh mengubahnya.optionsArgumen, nilai mesti salah satu daripada mereka.
  • title(const string) Judul input. Jika tidak ditentukan, nama pembolehubah digunakan sebagai tajuk inputs. Jika tajuk ditentukan, tetapi kosong, nama akan menjadi rentetan kosong.
  • minval(const int/float) Nilai minimum yang mungkin bagi pembolehubah input.
  • maxval(const int/float) Nilai maksimum yang mungkin bagi pembolehubah input.
  • step(const int/float) Nilai langkah yang digunakan untuk meningkatkan/menurunkan input. Pilihan. lalai adalah 1.
  • options(tuple nilai const int/float: [val1, val2,...]) Senarai pilihan untuk dipilih dari menu dropdown, dipisahkan dengan koma dan disertakan dalam kurungan persegi: [val1, val2,...].minval, maxvaldanstepargument tidak boleh digunakan.
  • tooltip(const string) Senar yang akan ditunjukkan kepada pengguna apabila melayang di atas ikon alat.
  • inline(const string) Menggabungkan semua panggilan input menggunakan argumen yang sama dalam satu baris. String yang digunakan sebagai argumen tidak dipaparkan. Ia hanya digunakan untuk mengenal pasti input yang tergolong dalam baris yang sama.
  • group(const string) Membuat header di atas semua input menggunakan string argumen kumpulan yang sama.
  • confirm(const bool) Jika benar, maka pengguna akan diminta untuk mengesahkan nilai input sebelum penunjuk ditambahkan ke carta. Nilai lalai adalah salah.

CatatanHasil fungsi input.float harus selalu diberikan kepada pembolehubah, lihat contoh di atas.

Lihat juga input.bool input.int input.string input.timeframe input.source input.color input

input.color

Menambah input ke tab Input tetapan skrip anda, yang membolehkan anda menyediakan pilihan konfigurasi kepada pengguna skrip. fungsi ini menambah pilihan warna yang membolehkan pengguna memilih warna dan ketelusan, sama ada dari palet atau nilai hex.

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

Contoh

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

KembaliNilai pembolehubah input.

Argumen

  • defval(const color) Menentukan nilai lalai pembolehubah input yang dicadangkan dalam tab Settings/Inputs skrip, dari mana pengguna boleh mengubahnya.
  • title(const string) Judul input. Jika tidak ditentukan, nama pembolehubah digunakan sebagai tajuk inputs. Jika tajuk ditentukan, tetapi kosong, nama akan menjadi rentetan kosong.
  • tooltip(const string) Senar yang akan ditunjukkan kepada pengguna apabila melayang di atas ikon alat.
  • inline(const string) Menggabungkan semua panggilan input menggunakan argumen yang sama dalam satu baris. String yang digunakan sebagai argumen tidak dipaparkan. Ia hanya digunakan untuk mengenal pasti input yang tergolong dalam baris yang sama.
  • group(const string) Membuat header di atas semua input menggunakan string argumen kumpulan yang sama.
  • confirm(const bool) Jika benar, maka pengguna akan diminta untuk mengesahkan nilai input sebelum penunjuk ditambahkan ke carta. Nilai lalai adalah salah.

CatatanHasil fungsi input.color sentiasa harus diberikan kepada pembolehubah, lihat contoh di atas.

Lihat juga input.bool input.int input.float input.string input.timeframe input.source input

input.price

Menambah input harga ke tab Settings/Inputs skrip.confirm = truemengaktifkan mod input interaktif di mana harga dipilih dengan mengklik carta.

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)

KembaliNilai pembolehubah input.

Argumen

  • defval(const int/float) Menentukan nilai lalai pembolehubah input yang dicadangkan dalam tab Settings/Inputs skrip, dari mana pengguna boleh mengubahnya.
  • title(const string) Judul input. Jika tidak ditentukan, nama pembolehubah digunakan sebagai tajuk inputs. Jika tajuk ditentukan, tetapi kosong, nama akan menjadi rentetan kosong.
  • tooltip(const string) Senar yang akan ditunjukkan kepada pengguna apabila melayang di atas ikon alat.
  • inline(const string) Menggabungkan semua panggilan input menggunakan argumen yang sama dalam satu baris. String yang digunakan sebagai argumen tidak dipaparkan. Ia hanya digunakan untuk mengenal pasti input yang tergolong dalam baris yang sama.
  • group(const string) Membuat header di atas semua input menggunakan string argumen kumpulan yang sama.
  • confirm(const bool) Jika benar, mod input interaktif diaktifkan dan pemilihan dilakukan dengan mengklik carta apabila penunjuk ditambahkan ke carta, atau dengan memilih indikator dan memindahkan pemilihan selepas itu.

CatatanApabila menggunakan mod interaktif, input masa boleh digabungkan dengan input harga jika kedua-dua panggilan fungsi menggunakan argumen yang sama untukinline argument.

Lihat juga input.bool input.int input.float input.string input.resolution input.source input.color input

input.timeframe

Menambah input ke tab Masukan tetapan skrip anda, yang membolehkan anda menyediakan pilihan konfigurasi kepada pengguna skrip. Fungsi ini menambah dropdown yang membolehkan pengguna memilih jangka masa tertentu melalui pilihan jangka masa dan mengembalikannya sebagai rentetan. Pemilih merangkumi jangka masa tersuai yang mungkin telah ditambahkan oleh pengguna menggunakan grafik Timeframe dropdown.

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)

KembaliNilai pembolehubah input.

Argumen

  • defval(const string) Menentukan nilai lalai pembolehubah input yang dicadangkan dalam tab Settings/Inputs skrip, dari mana pengguna boleh mengubahnya.optionsArgumen, nilai mesti salah satu daripada mereka.
  • title(const string) Judul input. Jika tidak ditentukan, nama pembolehubah digunakan sebagai tajuk inputs. Jika tajuk ditentukan, tetapi kosong, nama akan menjadi rentetan kosong.
  • options(Tup

Lebih lanjut

PengemisMengapa strategi Square Duplicate tidak boleh menjadi strategi Pine?

Pencipta Kuantiti - Impian KecilBaiklah, mari kita lihat.

PengemisPengesan Trend yang Dioptimumkan

Pencipta Kuantiti - Impian KecilHalo, boleh saya tanya strategi apa sebenarnya?