FMZ PINE Script

Dicipta dalam: 2022-05-06 14:27:06, dikemas kini pada: 2025-01-23 10:19:06
comments   18
hits   13761

untime.error(“stop”)


Boleh digunakan`:=`Operator penyerahan semula mengubah nilai medan objek.

**Kumpulan objek**

Contoh mengisytiharkan array kosong yang akan menyimpan objek jenis order yang ditakrifkan pengguna:

```pine
type order
    float price
    float amount
    string symbol

arrOrder = array.new<order>()

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

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

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

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

Objek yang disalin

Dalam Pine, objek diagihkan melalui rujukan. Apabila objek sedia ada diagihkan 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 di bawah ini, kita membuat objek pivot1 dan menetapkan medan x-nya kepada 1000. Kemudian, kita menyatakan bahawa pivot2 mengandungi pembolehubah yang merujuk kepada objek pivot1 dan oleh itu kedua-duanya merujuk kepada contoh yang sama. Oleh itu, mengubah pivot2.x juga akan mengubah pivot1.x kerana kedua-duanya merujuk kepada medan x-nya yang sama.

Untuk mencipta salinan yang berasingan daripada objek asal, dalam kes ini kita boleh menggunakan kaedah copy () yang terbina dalam. Dalam contoh ini, kita menyatakan pivot2 merujuk kepada pembolehubah bagi contoh salinan objek pivot1. Sekarang, mengubah pivot2.x tidak akan mengubah pivot1.x, kerana ia merujuk kepada bidang x sebagai 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 diingat bahawa kaedah salinan TradingView adalah salinan shallow. Jika objek mempunyai bidang jenis khas (array, dll.), Bidang dalam salinan shallow objek akan merujuk kepada contoh yang sama dengan objek tersebut. Platform FMZ melakukan penyalinan mendalam secara langsung tanpa perlu melakukan pemprosesan tambahan, seperti contoh berikut:

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"    // 修改 labelInfo1 的基础类型字段,看是否影响 labelInfo2
labelInfo1.order.price := 999             // 修改 labelInfo1 的复合类型字段,看是否影响 labelInfo2

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

Hasil ujian, labelInfo.copy ((labelInfo1) dijalankan sebagai salinan mendalam, mengubah labelInfo1 mana-mana bidang tidak akan menjejaskan labelInfo2。

Methods

Kaedah dalam bahasa Pine adalah fungsi khusus yang berkaitan dengan jenis yang terbina dalam atau ditakrifkan oleh pengguna untuk contoh tertentu. Dalam kebanyakan hal, mereka adalah sama dengan fungsi biasa, tetapi menawarkan sintaksis yang lebih pendek dan lebih mudah. Pengguna boleh menggunakan kaedah secara langsung menggunakan tanda titik pada pembolehubah, seperti mengakses bidang objek Pine.

Kaedah terbina dalam

Sebagai contoh, ini adalah sebahagian daripada kod skrip:

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

Ia boleh ditulis 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)

Ini menunjukkan bahawa PINE menyokongMethodsSelepas itu, kodarray.avg(sourceArray)Ia boleh ditulis dalam bentuk kaedah (methods):sourceArray.avg()。 Nota: FMZ tidak disokong buat masa iniarray.avgPerkataan yang sama juga digunakan oleh beberapa orang di Malaysia.

Kaedah yang ditakrifkan pengguna

Pine membolehkan pengguna menentukan kaedah tersuai yang digunakan bersama dengan objek apa-apa jenis terbina dalam atau yang ditentukan oleh pengguna. Kaedah penentuan adalah pada dasarnya sama dengan fungsi penentuan, tetapi dengan dua perbezaan utama:

1 , kata kunci method mestilah dimasukkan sebelum nama fungsi . 2. Parameter method, di mana jenis parameter pertama mesti dinyatakan secara eksplisit, kerana ia menyatakan jenis objek yang akan dikaitkan dengan kaedah tersebut.

Sebagai contoh, dalam kod berikut, anda boleh membungkus kod untuk mengira indeks Brin sebagai kaedah yang disesuaikan 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)

Ia 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 boleh lihat bahawa kaedah pengguna yang menggunakan pernyataan method kata kunci:maintainQueue,calcBB yang pertama dalam senarai parameter adalaharray<float>Type ≠ menyatakan bahawa method adalaharray<float>Kaedah untuk jenis pembolehubah, jadi anda boleh melihat memanggil kod berikut untuk mengira penunjuk Brin.

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

Methods dimuat semula

Kaedah yang ditakrifkan pengguna boleh mengalip dan memuat naik kaedah terbina dalam yang sedia ada dan kaedah yang ditakrifkan pengguna yang mempunyai pengenal yang sama. Fungsi ini membolehkan pengguna menentukan beberapa prosedur yang berkaitan dengan tandatangan parameter yang berbeza di bawah nama kaedah yang sama. Sebagai contoh mudah, anggaplah kita ingin menentukan kaedah untuk mengenal pasti jenis pembolehubah. Oleh kerana kita harus secara eksplisit menentukan jenis objek yang berkaitan dengan kaedah yang ditakrifkan pengguna, kita perlu menentukan pembolehubah untuk setiap jenis yang kita ingin mengenal pasti.

//@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 jenis asas bagi setiap pembolehubahgetType()Apa jenis muat naik yang akan digunakan. Di platform FMZ, kerana skrip PINE diimplementasikan sebagai bahasa Javascript, jenis nilai akan dinilai sebagai data jenis titik terapung.

Fungsi terbina dalam

Apabila fungsi dipanggil, parameter dihantar, nama parameter boleh ditetapkan, pemboleh ubah boleh dihantar secara langsung ke lokasi parameter yang sesuai, dan juga menyokong penggunaan campuran. Sebagai contoh:

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

Selepas menamakan parameter, anda tidak boleh terus menghantar pembolehubah sebagai parameter, dan parameter seterusnya mesti ditulis dalam bentuk penempatan 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

Ia akan dihantar kepadatimeframeTempoh masa parameter ditukar kepada 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)

Nilai yang dikembalikan timeframeBilangan saat dalam satu baris K dalam bentuk int menyatakan ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠

parameter

  • timeframe(simple string) Tempoh tempoh。 boleh dipilih。 default adalah timeframe.period。

Nota Bagitimeframe>= Fungsi ‘1M’ berdasarkan 30.4167 (36512) hari dalam satu bulan.

Lihat juga input.timeframe timeframe.period

ticker

ticker.heikinashi

Mencipta kod pengenal permintaan rata-rata K linear yang halus.

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)

Nilai yang dikembalikan Nombor senar untuk kod saham boleh diberikan kepada fungsi request.security。

parameter

  • symbol(simple string) pengenal kod barangan。

Lihat juga syminfo.tickerid syminfo.ticker request.security

request

request.data

Meminta 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, "永续-现货差价")
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)

Nilai yang dikembalikan parameterattributeKumpulan data yang ditetapkan.

parameter

  • url(simple string) Url sumber data yang diminta, format data yang dijawab oleh sumber data perlu memenuhi keperluan ((sekurang-kurangnya termasuk sifat time, data):{"data": [], "schema": ["time", "data"]}◦ Format data boleh dirujuk 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 sifat dan mengembalikan data yang dikehendaki. Contohnya:"$.spot_close_price", gunakan$.Sebagai awalan, nama sifat dan sifat dalam medan data dalam data yang dijawab semasa permintaan sumber data

Jika salah, anda perlu menyemakrequest.dataJulat masa yang diminta adalah sama dengan julat masa yang ditetapkan untuk pengesanan, dan data yang tidak dapat dikesan pada urutan masa pengesanan akan dikesan.

Data-data data query SQL 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;

Ia boleh didapati di FMZ.Penerokaan DataPermintaan halaman, mencipta pautan data, yang digunakan dalam contohhttps://www.datadata.com/api/v1/query/ebe46218-c5c6-4366-8c72-413694417976/data

request.security

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

Nilai yang dikembalikan Siri permintaan

parameter

  • symbol(simple string) Kod barangan.
  • timeframe(simple string) Tempoh tempoh ≠ senar kosong akan ditafsirkan sebagai tempoh masa semasa grafik ≠
  • expression(series int/float/bool/color) boleh dikira dan dikembalikan sebagai ungkapan dari permintaan.security. Ia boleh menjadi satu siri atau satu subset yang mengandungi elemen yang boleh ditukar kepada siri.
  • gaps(barmerge_gaps) memberi strategi penggabungan data yang diminta (yang memerlukan data untuk digabungkan secara automatik dengan siri utama data OHLC). Nilai yang mungkin: barmerge.gaps_on, barmerge.gaps_off. barmerge.gaps_on - data yang diminta digabungkan dengan kemungkinan jurang (na nilai) barmerge.gaps_off - data yang diminta digabungkan secara berterusan, semua jurang dipenuhi dengan nilai yang ada sebelum ini.
  • lookahead(barmerge_lookahead) memberi strategi penggabungan data yang diminta. Nilai yang mungkin: barmerge.lookahead_on, barmerge.lookahead_off. Bermula dari versi 3, nilai lalai adalah barmerge.lookahead_off. Perhatikan bahawa tingkah laku adalah sama dengan masa nyata, hanya berbeza dalam sejarah.
  • ignore_invalid_symbol(const bool) Satu parameter pilihan. Jika barang yang ditentukan tidak dijumpai, tindakan fungsi ditentukan: jika false, skrip akan berhenti dan kembali error semasa dijalankan; jika true, fungsi akan kembali na dan terus dijalankan.
  • currency(simple string) menukarkan nilai berkaitan mata wang komoditi (seperti OHLC) ke dalam mata wang. Kemudian, nilai selepas penukaran dikira berdasarkan expression . Kadar penukaran digunakan berdasarkan kadar pertukaran harian FX_IDC pada hari sebelumnya. berbanding dengan garis K yang dikira.

Nota Kod PineScript yang menggunakan ciri ini boleh membuat pengiraan yang berbeza untuk rekod sejarah dan data masa nyata. Jika anda ingin menetapkan parameter tambahan untuk barangan yang diminta, seperti tempoh dagangan atau jenis penyesuaian, anda boleh menggunakan ticker.new() fungsi. Tidak boleh menggunakan pembolehubah ‘ticker’ untuk memindahkan perbezaan titik ke fungsi ini. Anda boleh menggunakan pembolehubah ‘ticker.new’ atau kod saham dalam bentuk ungkapan senar, seperti AAPL+MSFT*TSLA”。 Pada masa ini, satu skrip boleh mempunyai sehingga 40 panggilan request.security. Sila ambil perhatian bahawa penggunaan pembolehubah / fungsi ini mungkin menyebabkan penunjuk dipetik semula. Resolusi parameter yang dibenarkan adalah: 1S, 5S, 15S, 30S - selang detik ((jadual mestilah kurang daripada atau sama dengan tempoh yang diminta) Dari 1 hingga 1440 minit Dari 1D hingga 365D Dari 1W hingga 52W dalam beberapa minggu Dari 1M kepada 12M beberapa bulan

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

str

str.contains

JikasourceSenar mengandungistrSubstring, akan mengembalikan true, jika tidak akan mengembalikan 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)

Nilai yang dikembalikan Jika dalamsourceMencari dalam senarstrJika tidak, maka ia adalah palsu.

parameter

  • source(series string) Senar sumber
  • str(series string) Rangkai kata yang ingin dicari.

Lihat juga str.pos str.match

str.endswith

JikasourceSenar denganstrJika anda menetapkan substring pada akhir, anda akan mengembalikan true, jika tidak, anda akan mengembalikan false.

str.endswith(source, str)

Nilai yang dikembalikan JikasourceSenar denganstrSubstring yang ditentukan di dalam berakhir dengan true, jika tidak false.

parameter

  • source(series string) Senar sumber
  • str(series string) Rangkai kata yang ingin dicari.

Lihat juga str.startswith

str.startswith

JikasourceSenar denganstrJika substring yang ditentukan bermula, ia akan mengembalikan true, jika tidak, ia akan mengembalikan false.

str.startswith(source, str)

Nilai yang dikembalikan JikasourceSenar denganstrSubstring yang ditentukan di dalam bermula dengan true, jika tidak false.

parameter

  • source(series string) Senar sumber
  • str(series string) Rangkai kata yang ingin dicari.

Lihat juga str.endswith

str.substring

Kembali string baru, ia adalahsourceSubstring string. Substring ialahbegin_posKarakter yang bermula pada indeks yang ditetapkan dan berkembang kesource‘end_pos - 1’ daripada rentetan senar.

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)

Nilai yang dikembalikan String anak yang diambil daripada string sumber.

parameter

  • source(series string) String sumber yang diekstrak dari anak-anaknya.
  • begin_pos(series int) kedudukan permulaan substring yang diambil. Ia adalah eksklusif ((substring yang diambil termasuk watak di tempat itu)
  • end_pos(series int) Kedudukan pengakhiran。 ia adalah eksklusif ((string yang diambil tidak termasuk watak dalam kedudukan tersebut)。 boleh dipilih。 default ialahsourcePanjang senar.

Nota Indeks senar bermula dengan 0. Jikabegin_possama rataend_pos, fungsi mengembalikan sebuah string kosong.

Lihat juga str.contains str.pos str.match

str.tonumber

str.tonumber(string)

Nilai yang dikembalikan Jika ia mengandungi nombor sah, maka ia adalah floating-point string, jika tidak, maka ia adalah na。

parameter

  • string(series string) bentuk ungkapan string int atau float.

str.format

Menukarkan senar format dan nilai kepada senar format. Senar format boleh mengandungi teks teks dan satu tanda tempat dalam kurung besar {} untuk setiap nilai yang ingin diformat. Setiap tanda tempat termasuk indeks yang akan menggantikan parameter yang diperlukan untuknya (bermula dari 0), dan satu tanda format yang boleh dipilih. Indeks menunjukkan kedudukan parameter dalam senarai 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)

Nilai yang dikembalikan Senar diformat.

parameter

  • formatString(series string) Format senar senar。
  • arg0, arg1, ... (series int/float/bool/string/na/int[]/float[]/bool[]/string[Nilai yang perlu diformat.

Nota Semua tanda kurung dalam gaya yang tidak dikutip mestilah seimbang. Sebagai contoh, “ab {0} de” dan “ab ‘}’ de ” adalah gaya yang sah, tetapi “ab {0’} ‘de”, “ab } de” dan “’{”” bukan gaya yang sah.

str.length

Mengembalikan bilangan bulat yang sepadan dengan bilangan aksara dalam senar tersebut.

str.length(string)

Nilai yang dikembalikan Bilangan aksara dalam senar sumber.

parameter

  • string(series string) Senar sumber

str.lower

Mengembalikan senar baru di mana semua huruf ditukar menjadi huruf kecil.

str.lower(source)

Nilai yang dikembalikan Semua huruf ditukar menjadi senar baru huruf kecil.

parameter

  • source(series string) Senar yang akan ditukar.

Lihat juga str.upper

str.upper

Mengembalikan senar baru di mana semua huruf telah ditukar menjadi huruf besar.

str.upper(source)

Nilai yang dikembalikan Semua huruf telah ditukar menjadi siri baru huruf besar.

parameter

  • source(series string) Senar yang akan ditukar.

Lihat juga str.lower

str.match

Jika ia sepadanregexEkspresi biasa, kembalisourceString anak baru string, atau 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"

Nilai yang dikembalikan sourceString anak baru string, jika ia sepadan denganregexEkspresi biasa, jika tidak ‘na’。

parameter

  • source(series string) Senar sumber
  • regex(series string) Ekspresi biasa yang sepadan dengan senar ini。

Nota Pengembalian FungsisourceUngkapan biasa yang muncul pertama kali dalam senar tersebut ialah: regexSimbol backslash dalam string memerlukan pengalihan menggunakan backslash tambahan, seperti\d mewakili ungkapan ralat \d。

Lihat juga str.contains str.substring

str.pos

KembalisourcePertama kali muncul dalam senarstrJika tidak, ia akan mengembalikan ‘na’

str.pos(source, str)

Nilai yang dikembalikan strString dalamsourceKedudukan dalam senar.

parameter

  • source(series string) Senar sumber
  • str(series string) Rangkai kata yang ingin dicari.

Nota Indeks senar bermula dari 0.

Lihat juga str.contains str.match str.substring

str.replace

Mengembalikan senar baru dengan N+1 kali pertamatargetSenar dan yang sebelum initargetString diganti denganreplacementString, di mana N dalamoccurrenceTentukan ≠ N sebagai indeks sepadan yang muncul dalam senar sumber sebagai senar sasaran 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)

Nilai yang dikembalikan String yang telah diuruskan

parameter

  • source(series string) Senar sumber
  • target(series string) digantikan dengan string
  • replacement(series string) String yang akan disisipkan dan bukannya string sasaran.
  • occurrence(series int) Senarai sasaran yang akan digantikan adalah indeks yang sepadan yang muncul dalam senar sumber. Indeks yang sepadan pertama bermula dengan 0.

Lihat juga str.replace_all str.match

str.replace_all

Dengan menggantikan senar, menggantikan senar sasaran yang muncul setiap kali dalam senar sumber.

str.replace_all(source, target, replacement)

Nilai yang dikembalikan String yang telah diuruskan

parameter

  • source(series string) Senar sumber
  • target(series string) digantikan dengan string
  • replacement(series string) String yang akan digantikan setiap kali ia muncul

str.split

Bahagikan string ke dalam sub-array string dan kembalikan ID array mereka.

str.split(string, separator)

Nilai yang dikembalikan ID senar senar

parameter

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

str.tostring

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

Nilai yang dikembalikan valueSenarai senar parameter menunjukkan bentuk。 JikavalueParameter adalah string, dan ia akan dikembalikan seperti semula. ApabilavalueApabila na, fungsi mengembalikan string NaN.

parameter

  • value (series int/float/bool/string/int[]/float[]/bool[]/string[]) Elemen yang ditukarkan kepada nilai atau ID array senar.
  • format (series string) Format string. Accepts these format.* constants: format.mintick, format.percent, format.volume. Optional. The default value is ‘#.##########’.

Nota Format dengan nilai floating point juga akan mengelilingi nilai-nilai ini jika perlu, contohnya str.tostring ((3.99, ‘#’) akan mengembalikan 4。 Untuk menunjukkan sifar yang diikuti, gunakan ‘0’ dan bukannya ‘#’. Sebagai contoh, ‘#.000’. Apabila menggunakan format.mintick, nilai itu akan diselingi dengan nombor yang paling dekat yang tidak boleh dibahagi dengan siminfo.mintick tanpa tambahan. ❚ String yang dikembalikan diikuti dengan sifar. Jika argumen x adalah senar, ia akan mengembalikan nilai senar yang sama. Bool jenis argumen kembali true atau false. Apabila x adalah na, fungsi kembali NaN.

color

color.new

Warna fungsi akan menetapkan ketelusan untuk warna yang diberikan.

color.new(color, transp)

Contoh

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

Nilai yang dikembalikan Warna dengan ketelusan tertentu.

parameter

  • color (series color)
  • transp(series int/float) Nilai yang boleh digunakan adalah dari 0 (tidak telus) hingga 100 (tidak kelihatan)

Nota Menggunakan parameter yang sangat banyak (contohnya, simple, input atau series) akan memberi kesan kepada warna yang ditunjukkan dalam tetapan tetingkap skrip / halaman label tetingkap gaya. Sila rujuk manual pengguna untuk maklumat lanjut.

color.rgb

Menggunakan model warna RGB untuk mencipta warna baru dengan ketelusan.

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

Contoh

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

Nilai yang dikembalikan Warna dengan ketelusan tertentu.

parameter

  • red(series int/float) Warna merah. Nilai yang mungkin ialah dari 0 hingga 255
  • green(series int/float) warna hijau. Nilai yang mungkin adalah dari 0 hingga 255
  • blue(series int/float) warna biru. Nilai yang mungkin ialah dari 0 hingga 255
  • transp(series int/float) boleh dipilih. Warna telus. Nilai yang mungkin dari 0 (tidak telus) hingga 100 (telus). Nilai lalai adalah 0 (telus).

Nota Menggunakan parameter yang sangat banyak (contohnya, simple, input atau series) akan memberi kesan kepada warna yang ditunjukkan dalam tetapan tetingkap skrip / halaman label tetingkap gaya. Sila rujuk manual pengguna untuk maklumat lanjut.

runtime

runtime.debug

Mencetak maklumat pembolehubah di papan kawalan.

FMZ PINE mempunyai fungsi khusus untuk bahasa ini.runtime.debug(value), hanya satu parameter.

runtime.log

Output di dalam jurnal.

FMZ PINE mempunyai fungsi khusus untuk bahasa ini.runtime.log(1, 2, 3, close, high, ...), boleh menghantar beberapa parameter.

runtime.error

Apabila dipanggil, ia akan menyebabkan ralat semasa operasi dan membawamessageMesej ralat yang dinyatakan dalam parameter.

runtime.error(message)

parameter message (series string) mesej ralat

input

input

Input ditambahkan ke halaman label input pada tetapan skrip, yang membolehkan anda memberikan pilihan konfigurasi kepada pengguna skrip. Fungsi ini secara automatik mengesan jenis parameter yang digunakan pada tetapan 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)

Nilai yang dikembalikan Masukkan nilai

parameter

  • defval(const int/float/bool/string/color or source-type built-ins) Menentukan nilai lalai bagi input yang dicadangkan dalam tetapan tetingkap skrip / halaman label tetingkap input, yang boleh diubah oleh pengguna skrip. Fungsi terbina dalam jenis sumber adalah siri terbina dalam yang menentukan sumber pengiraan:closehlc3Dan sebagainya.
  • title(const string) tajuk input. Jika tidak ditentukan, nama pembolehubah digunakan sebagai tajuk input. Jika tajuk ditetapkan, tetapi judulnya kosong, namanya akan menjadi rentetan kosong.
  • tooltip(const string) Senar ini akan dipaparkan kepada pengguna apabila tetikus digantung di atas ikon isyarat alat.
  • inline(const string) Menggabungkan semua panggilan input yang menggunakan argumen yang sama dalam satu baris. Tidak memaparkan senar yang digunakan sebagai argumen. Ia hanya digunakan untuk mengenali input yang tergolong dalam baris yang sama.
  • group(const string) Mencipta tajuk di atas semua input dengan menggunakan senar nombor parameter yang sama. Senar ini juga digunakan sebagai teks tajuk.

Nota Nilai yang dikembalikan oleh fungsi input harus sentiasa 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 halaman label input pada tetapan skrip, yang membolehkan anda memberikan pilihan konfigurasi kepada pengguna skrip. Fungsi ini menambah menu turun ke bawah yang membolehkan pengguna memilih sumber pengiraan, seperti close, hl2, dan lain-lain. Jika skrip hanya mengandungi satu panggilan input.source (), pengguna juga boleh memilih sumber output lain dari indikator lain pada carta.

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

Contoh

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

Nilai yang dikembalikan Masukkan nilai

parameter

  • defval(series int/float) Menentukan nilai lalai bagi input yang disyorkan dalam tetapan tetingkap / halaman label tetingkap input skrip, yang boleh diubah oleh pengguna.
  • title(const string) tajuk input. Jika tidak ditentukan, nama pembolehubah digunakan sebagai tajuk input. Jika tajuk ditetapkan, tetapi judulnya kosong, namanya akan menjadi rentetan kosong.
  • tooltip(const string) Senar ini akan dipaparkan kepada pengguna apabila tetikus digantung di atas ikon isyarat alat.
  • inline(const string) Menggabungkan semua panggilan input yang menggunakan argumen yang sama dalam satu baris. Tidak memaparkan senar yang digunakan sebagai argumen. Ia hanya digunakan untuk mengenali input yang tergolong dalam baris yang sama.
  • group(const string) Mencipta tajuk di atas semua input dengan menggunakan senar nombor parameter yang sama. Senar ini juga digunakan sebagai teks tajuk.

Nota Hasil fungsi input.source harus selalu diberikan kepada satu pembolehubah, lihat contoh di atas.

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

input.string

Menambahkan input ke papan pilihan input skrip, yang membolehkan anda memberikan pilihan konfigurasi kepada pengguna skrip. Fungsi ini menambahkan bidang input senar ke input skrip.

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

Contoh

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

Nilai yang dikembalikan Masukkan nilai

parameter

  • defval(const string) Menentukan nilai lalai bagi input yang dicadangkan dalam tetapan tetingkap / halaman label tetingkap input skrip, yang boleh diubah oleh pengguna. Apabila senarai nilai denganoptionsApabila parameter digunakan bersama, nilai ini mestilah salah satu daripada mereka.
  • title(const string) tajuk input. Jika tidak ditentukan, nama pembolehubah digunakan sebagai tajuk input. Jika tajuk ditetapkan, tetapi judulnya kosong, namanya akan menjadi rentetan kosong.
  • options (List of constants: [&lt;type&gt;…]) senarai pilihan yang boleh dipilih.
  • tooltip(const string) Senar ini akan dipaparkan kepada pengguna apabila tetikus digantung di atas ikon isyarat alat.
  • inline(const string) Menggabungkan semua panggilan input yang menggunakan argumen yang sama dalam satu baris. Tidak memaparkan senar yang digunakan sebagai argumen. Ia hanya digunakan untuk mengenali input yang tergolong dalam baris yang sama.
  • group(const string) Mencipta tajuk di atas semua input dengan menggunakan senar nombor parameter yang sama. Senar ini juga digunakan sebagai teks tajuk.
  • confirm(const bool) Jika true, pengguna akan diminta untuk mengesahkan nilai input sebelum penunjuk ditambahkan ke carta.

Nota Hasil fungsi input.string harus selalu diberikan kepada satu pembolehubah, lihat contoh di atas.

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

input.bool

Menambahkan input ke halaman label input skrip, yang membolehkan anda memberikan pilihan konfigurasi kepada pengguna skrip. Fungsi ini menambah penanda pilih ke input skrip.

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

Contoh

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

Nilai yang dikembalikan Masukkan nilai

parameter

  • defval(const bool) Menentukan nilai lalai bagi input yang dicadangkan dalam tetapan tetingkap / halaman label tetingkap input skrip, yang boleh diubah oleh pengguna.
  • title(const string) tajuk input. Jika tidak ditentukan, nama pembolehubah digunakan sebagai tajuk input. Jika tajuk ditetapkan, tetapi judulnya kosong, namanya akan menjadi rentetan kosong.
  • tooltip(const string) Senar ini akan dipaparkan kepada pengguna apabila tetikus digantung di atas ikon isyarat alat.
  • inline(const string) Menggabungkan semua panggilan input yang menggunakan argumen yang sama dalam satu baris. Tidak memaparkan senar yang digunakan sebagai argumen. Ia hanya digunakan untuk mengenali input yang tergolong dalam baris yang sama.
  • group(const string) Mencipta tajuk di atas semua input dengan menggunakan senar nombor parameter yang sama. Senar ini juga digunakan sebagai teks tajuk.
  • confirm(const bool) Jika true, pengguna akan diminta untuk mengesahkan nilai input sebelum penunjuk ditambahkan ke carta.

Nota Hasil fungsi input.bool harus sentiasa diberikan kepada satu pembolehubah, 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 pada tetapan skrip, yang membolehkan anda memberikan pilihan konfigurasi kepada pengguna skrip. Fungsi ini menambah medan input nombor 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))

Nilai yang dikembalikan Masukkan nilai

parameter

  • defval(const int) Menentukan nilai lalai bagi input yang dicadangkan dalam tetapan tetingkap / halaman label tetingkap input skrip, yang boleh diubah oleh pengguna skrip. Apabila senarai nilai denganoptionsApabila parameter digunakan bersama, nilai ini mestilah salah satu daripada mereka.
  • title(const string) tajuk input. Jika tidak ditentukan, nama pembolehubah digunakan sebagai tajuk input. Jika tajuk ditetapkan, tetapi judulnya kosong, namanya akan menjadi rentetan kosong.
  • minval(const int) Minimum mungkin nilai input yang berubah-ubah.
  • maxval(const int) Nilai maksimum yang mungkin untuk input.
  • step(const int) untuk menambah/mengurangkan input.
  • options (tuple of const int values: [val1, val2, …]) Senarai pilihan yang dipilih dari menu turun ke bawah, dipisahkan dengan tanda koma dan dibungkus dengan tanda kurung:[Val1, val2, …] ≠ tidak boleh digunakan apabila menggunakan parameter iniminvalmaxvaldanstepParameter
  • tooltip(const string) Senar ini akan dipaparkan kepada pengguna apabila tetikus digantung di atas ikon isyarat alat.
  • inline(const string) Menggabungkan semua panggilan input yang menggunakan argumen yang sama dalam satu baris. Tidak memaparkan senar yang digunakan sebagai argumen. Ia hanya digunakan untuk mengenali input yang tergolong dalam baris yang sama.
  • group(const string) Mencipta tajuk di atas semua input dengan menggunakan senar nombor parameter yang sama. Senar ini juga digunakan sebagai teks tajuk.
  • confirm(const bool) Jika true, pengguna akan diminta untuk mengesahkan nilai input sebelum penunjuk ditambahkan ke carta.

Nota Hasil fungsi input.int harus sentiasa diberikan kepada satu pembolehubah, 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 pada tetapan skrip, yang membolehkan anda memberikan pilihan konfigurasi kepada pengguna skrip. Fungsi ini menambah medan input titik terapung ke input 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)

Nilai yang dikembalikan Masukkan nilai

parameter

  • defval(const int/float) Menentukan nilai lalai bagi input yang disyorkan dalam tetapan tetingkap / halaman label tetingkap input skrip, yang boleh diubah oleh pengguna skrip. Apabila senarai nilai denganoptionsApabila parameter digunakan bersama, nilai ini mestilah salah satu daripada mereka.
  • title(const string) tajuk input. Jika tidak ditentukan, nama pembolehubah digunakan sebagai tajuk input. Jika tajuk ditetapkan, tetapi judulnya kosong, namanya akan menjadi rentetan kosong.
  • minval(const int/float) Nilai minimum yang mungkin bagi input variabel。 boleh dipilih。
  • maxval(const int/float) Nilai maksimum yang mungkin bagi input variabel。 boleh dipilih。
  • step(const int/float) digunakan untuk menambah/mengurangkan input.
  • options (tuple of const int/float values: [val1, val2, …]) Senarai pilihan yang dipilih dari menu turun ke bawah, dipisahkan dengan tanda koma dan dibungkus dengan tanda kurung:[Val1, val2, …] ≠ tidak boleh digunakan apabila menggunakan parameter iniminvalmaxvaldanstepParameter
  • tooltip(const string) Senar ini akan dipaparkan kepada pengguna apabila tetikus digantung di atas ikon isyarat alat.
  • inline(const string) Menggabungkan semua panggilan input yang menggunakan argumen yang sama dalam satu baris. Tidak memaparkan senar yang digunakan sebagai argumen. Ia hanya digunakan untuk mengenali input yang tergolong dalam baris yang sama.
  • group(const string) Mencipta tajuk di atas semua input dengan menggunakan senar nombor parameter yang sama. Senar ini juga digunakan sebagai teks tajuk.
  • confirm(const bool) Jika true, pengguna akan diminta untuk mengesahkan nilai input sebelum penunjuk ditambahkan ke carta.

Nota Hasil fungsi input.float harus selalu diberikan kepada satu pembolehubah, lihat contoh di atas.

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

input.color

Menambahkan input ke halaman label input pada tetapan skrip, yang membolehkan anda memberikan pilihan konfigurasi kepada pengguna skrip. Fungsi ini menambah penentu warna yang membolehkan pengguna memilih warna dan ketelusan 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)

Nilai yang dikembalikan Masukkan nilai

parameter

  • defval(const color) Menentukan nilai lalai bagi input yang dicadangkan dalam tetapan tetapan / halaman label tetapan input skrip, yang boleh diubah oleh pengguna.
  • title(const string) tajuk input. Jika tidak ditentukan, nama pembolehubah digunakan sebagai tajuk input. Jika tajuk ditetapkan, tetapi judulnya kosong, namanya akan menjadi rentetan kosong.
  • tooltip(const string) Senar ini akan dipaparkan kepada pengguna apabila tetikus digantung di atas ikon isyarat alat.
  • inline(const string) Menggabungkan semua panggilan input yang menggunakan argumen yang sama dalam satu baris. Tidak memaparkan senar yang digunakan sebagai argumen. Ia hanya digunakan untuk mengenali input yang tergolong dalam baris yang sama.
  • group(const string) Mencipta tajuk di atas semua input dengan menggunakan senar nombor parameter yang sama. Senar ini juga digunakan sebagai teks tajuk.
  • confirm(const bool) Jika true, pengguna akan diminta untuk mengesahkan nilai input sebelum penunjuk ditambahkan ke carta.

Nota Hasil fungsi input.color harus selalu diberikan kepada satu pembolehubah, lihat contoh di atas.

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

input.price

Tambah input harga ke tetapan tetingkap / tetingkap tetingkap tetingkap skrip.confirm = trueAktifkan mod input interaktif dan pilih harga dengan mengklik pada 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)

Nilai yang dikembalikan Masukkan nilai

parameter

  • defval(const int/float) Menentukan nilai lalai bagi input yang disyorkan dalam tetapan tetingkap / halaman label tetingkap input skrip, yang boleh diubah oleh pengguna.
  • title(const string) tajuk input. Jika tidak ditentukan, nama pembolehubah digunakan sebagai tajuk input. Jika tajuk ditetapkan, tetapi judulnya kosong, namanya akan menjadi rentetan kosong.
  • tooltip(const string) Senar ini akan dipaparkan kepada pengguna apabila tetikus digantung di atas ikon isyarat alat.
  • inline(const string) Menggabungkan semua panggilan input yang menggunakan argumen yang sama dalam satu baris. Tidak memaparkan senar yang digunakan sebagai argumen. Ia hanya digunakan untuk mengenali input yang tergolong dalam baris yang sama.
  • group(const string) Mencipta tajuk di atas semua input dengan menggunakan senar nombor parameter yang sama. Senar ini juga digunakan sebagai teks tajuk.
  • confirm(const bool) Jika true, maka diaktifkan mod input interaktif, dan selesai dengan mengklik grafik apabila penunjuk ditambah ke carta, atau selesai dengan memilih penunjuk dan kemudian bergerak pilihan.

Nota Apabila menggunakan mod interaksi, jika dua fungsi dipanggil keinlineParameter menggunakan parameter yang sama, anda boleh menggunakan input masa dengan input harga.

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

input.timeframe

Menambahkan input ke halaman label input pada tetapan skrip, yang membolehkan anda memberikan pilihan konfigurasi kepada pengguna skrip. Fungsi ini menambah senarai dropdown yang membolehkan pengguna memilih tempoh masa tertentu melalui pemilih tempoh masa dan mengembalikannya sebagai rentetan. Pemilih termasuk tempoh masa yang mungkin digunakan oleh pengguna untuk grafik dan tempoh masa yang disertakan oleh menu 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)

Nilai yang dikembalikan Masukkan nilai

parameter

  • defval(const string) Menentukan nilai lalai bagi input yang dicadangkan dalam tetapan tetingkap / halaman label tetingkap input skrip, yang boleh diubah oleh pengguna. Apabila senarai nilai denganoptionsApabila parameter digunakan bersama, nilai ini mestilah salah satu daripada mereka.
  • title(const string) tajuk input. Jika tidak ditentukan, nama pembolehubah digunakan sebagai tajuk input. Jika tajuk ditetapkan, tetapi judulnya kosong, namanya akan menjadi rentetan kosong.
  • options (tuple of const string values: [val1, val2, …]) Senarai pilihan yang boleh dipilih.
  • tooltip(const string) Senar ini akan dipaparkan kepada pengguna apabila tetikus digantung di atas ikon isyarat alat.
  • inline(const string) Menggabungkan semua panggilan input yang menggunakan argumen yang sama dalam satu baris. Tidak memaparkan senar yang digunakan sebagai argumen. Ia hanya digunakan untuk mengenali input yang tergolong dalam baris yang sama.
  • group(const string) Mencipta tajuk di atas semua input dengan menggunakan senar nombor parameter yang sama. Senar ini juga digunakan sebagai teks tajuk.
  • confirm(const bool) Jika true, pengguna akan diminta untuk mengesahkan nilai input sebelum penunjuk ditambahkan ke carta.

Nota Hasil fungsi input.timeframe harus selalu diberikan kepada satu pembolehubah, lihat contoh di atas.

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

input.integer

Tiada

input.resolution

Tiada

ta

ta.alma

Arnaud Legoux Moving Average. Ia menggunakan pengedaran Gaussian sebagai berat purata bergerak.