Sumber dimuat naik... memuat...

FMZ PINE Script dokumentasi

Penulis:Pencipta Kuantiti - Impian Kecil, Dicipta: 2022-05-06 14:27:06, Dikemas kini: 2024-10-12 15:27:04

ceArray =array.new(samplesInput) kaedah maintainQueue(array srcArray, nilai float, bool takeSample = true) => jika mengambilSampel srcArray.push (nilai) srcArray.shift() srcArray

kaedah calcBB(array srcArray, float mult, bool calculate = true) => var rata-rata terapung = na var float dev = na jika mengira mean:= srcArray.avg() dev:= srcArray.stdev() * mult [Rata, rata + dev, rata - dev]

bool newSample = bar_index % n == 0

[sampleMean, highBand, lowBand] = sumberArray.maintainQueue ((sourceInput, newSample).calcBB ((perkali, newSample)

plot ((sampleMean, Basis, warna.orange) plot ((highBand, Upper, warna.lime) plot ((lowBand, Lower,color.red)


可以看到使用关键字method声明的用户自定义方法:maintainQueue、calcBB的参数列表中第一个参数都是```array<float>```类型。表示该method是```array<float>```类型变量的方法,所以可以看到调用以下代码来计算布林指标。

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

Methods dimuat semula

Kaedah yang ditakrifkan oleh pengguna boleh mengelilingi dan memuat semula kaedah terbina dalam dan kaedah yang ditakrifkan oleh pengguna yang ada yang mempunyai pengenal yang sama. Fungsi ini membolehkan pengguna untuk menentukan beberapa contoh yang berkaitan dengan tandatangan parameter yang berbeza di bawah nama kaedah yang sama. Sebagai contoh sederhana, 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 oleh pengguna, maka kita perlu menentukan pembolehubah bagi setiap jenis yang kita mahu ia dikenali. Di bawah ini, kita menentukan kaedah getType (() yang mengembalikan bentuk perwakilan baris jenis pembolehubah dan mempunyai lima jenis pembolehubah 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 ditentukangetType()Jenis pemungutan semula yang akan digunakan. Pada platform FMZ, semua jenis nilai akan dihakimi sebagai data float kerana skrip bawah PINE dilaksanakan sebagai bahasa Javascript.

Fungsi terbina dalam

Menghantar parameter apabila memanggil fungsi, anda boleh menetapkan penyerahan nama parameter, anda boleh menghantar pembolehubah secara langsung di lokasi parameter yang sesuai, dan juga menyokong penggunaan bercampur; contohnya:

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

Selepas penyampaian nama parameter ditentukan, pemindahan pemboleh ubah tidak boleh lagi dihantar secara langsung sebagai parameter, dan pemindahan seterusnya mesti ditulis dalam bentuk penyampaian nama parameter.

// plot(close, title="test", color.red)    // 虽然plot第三个参数是颜色值,但是这样写就会报错
plot(close, title="test", color=color.red) // 正确写法
plot(close, "test", color.red)             // 正确写法

jangka masa

jangka masa.dalam_detik

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

Nilai pulangan timeframeInt bagi bilangan saat dalam satu baris K adalah sebagai berikut:

Parameter

  • timeframe(simple string) Jangka masa↑ opsional↑ nilai lalai adalah timeframe.period↑

Nota:Untuktimeframe>=1M Fungsi yang dihitung berdasarkan bilangan saat pada hari 30.4167 (365/12) dalam sebulan.

Sampai jumpa lagi input.timeframe timeframe.period

Tikal

ticker.heikinashi

Membuat pengenal kod meminta rata-rata nilai baris K yang lancar.

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 pulangan 股票代码的字符串值,可以提供给request.security函数。

Parameter

  • symbol(simple string) Pengiktirafan kod barang.

Sampai jumpa lagi 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, "永续-现货差价")
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 pulanganParameterattributeRangkaian data yang ditetapkan.

Parameter

  • url(simple string) URL sumber data yang diminta, format data sumber data yang dijawab mesti memenuhi syarat ((minimum mengandungi sifat time、data):{"data": [], "schema": ["time", "data"]}◎ 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 sifat untuk mengembalikan data yang diperlukan; contohnya:"$.spot_close_price", kegunaan$.Sebagai awalan, nama sifat konsisten dengan sifat dalam medan data dalam data yang dijawab apabila sumber data diminta

Periksa jika ada kesilapan.request.dataApakah jangka masa permintaan bersesuaian dengan jangka masa tetapan ulangan, data yang tidak dapat ditanyakan pada urutan masa ulangan akan memberikan kesalahan.

Data-data Data query dalam contoh ini adalah SQL statement:

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;

Boleh didapati di platform FMZPenjelajahan dataMencari halaman, membuat pautan data, contoh yang digunakanhttps://www.datadata.com/api/v1/query/ebe46218-c5c6-4366-8c72-413694417976/data

request.security

Permintaan untuk jenis / resolusi yang berbeza.

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 pulanganPermintaan siri

Parameter

  • symbol(simple string) Kod barang.
  • timeframe(simple string) Jangka masa. String kosong akan ditafsirkan sebagai tempoh masa semasa grafik.
  • expression(series int/float/bool/color) boleh dipanggil dari request.security dan mengembalikan satu ungkapan. Ia boleh menjadi satu siri atau satu kumpulan yang mengandungi unsur yang boleh ditukar kepada siri.
  • gaps(barmerge_gaps) Kebijakan penggabungan data yang diminta ((memerlukan data untuk digabungkan secara automatik dengan data OHLC siri utama) ). Nilai yang mungkin: barmerge.gaps_on, barmerge.gaps_off。 barmerge.gaps_on - data yang diminta digabungkan dengan jurang yang mungkin (na nilai) ─ barmerge.gaps_off - data yang diminta digabungkan secara berturut-turut tanpa henti, semua jurang diisi dengan nilai terkini yang ada sebelumnya。 Nilai lalai adalah barmerge.gaps_off。
  • lookahead(barmerge_lookahead) memberi dasar penggabungan data yang diminta. Nilai yang mungkin: barmerge.lookahead_on, barmerge.lookahead_off. Bermula dengan versi 3, nilai lalai adalah barmerge.lookahead_off.
  • ignore_invalid_symbol(const bool) Satu parameter pilihan. Jika barang yang ditentukan tidak dijumpai, tindakan fungsi ditentukan: jika false, skrip akan berhenti dan kembali kepada kesalahan semasa dijalankan; jika true, fungsi akan kembali ke na dan terus dijalankan. Nilai lalai adalah false.
  • currency(simple string) Mengubah mata wang yang berkaitan dengan mata wang barang tersebut (misalnya OHLC) kepada mata wang yang dikira; kemudian mengira nilai selepas penukaran berdasarkan mata wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang wang

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 barang yang diminta, seperti tempoh urus niaga atau jenis penyesuaian, anda boleh mengeditnya.您可以使用ticker.newFungsi ini adalah sebagai berikut: Tidak dapat menggunakan pembolehubah ticker tick untuk menyampaikan perbezaan titik kepada fungsi ini. Anda boleh menggunakan tick.ticker.newBentuk penyampaian baris bagi pembolehubah atau kod saham, seperti AAPL+MSFT*TSLA;Pada masa ini, satu skrip boleh mempunyai maksimum 40 panggilan request.security. Sila ambil perhatian bahawa penggunaan pembolehubah / fungsi ini mungkin menyebabkan penunjuk digariskan semula. Parameter resolusi dibenarkan untuk: 1S, 5S, 15S, 30S - selang detik (siklus grafik harus kurang daripada atau sama dengan tempoh yang diminta) Dari 1 hingga 1440 minit Dari 1D ke 365D hari. Dari 1W kepada 52W dalam beberapa minggu. Dari 1M hingga 12M dalam beberapa bulan.

Sampai jumpa lagi syminfo.ticker syminfo.tickerid timeframe.period ta.correlation barmerge.lookahead_off barmerge.lookahead_on

str

str.contains

JikasourceString mengandungistrString anak, akan kembali ke benar, jika tidak akan kembali ke salah.

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 pulanganJikasourceDijumpai dalam tali.str, adalah benar, jika tidak, adalah salah.

Parameter

  • source(series string) String sumber
  • str(series string) Substring untuk dicari.

Sampai jumpa lagi str.pos str.match

str.endswith

JikasourceString denganstrAkhir baris yang ditentukan pada fail akan dikembalikan true, jika tidak akan dikembalikan false.

str.endswith(source, str)

Nilai pulanganJikasourceString denganstrAkhir baris kecil yang ditetapkan di dalam adalah benar, jika tidak, adalah salah.

Parameter

  • source(series string) String sumber
  • str(series string) Substring untuk dicari.

Sampai jumpa lagi str.startswith

str.startswith

JikasourceString denganstrPada permulaan strings yang ditetapkan pada fail, kembali ke benar atau false.

str.startswith(source, str)

Nilai pulanganJikasourceString denganstrPermulaan baris kecil yang ditetapkan di dalam adalah benar, jika tidak, adalah salah.

Parameter

  • source(series string) String sumber
  • str(series string) Substring untuk dicari.

Sampai jumpa lagi str.endswith

str.substring

dan kembalikan strings yang baru.sourceString mempunyai substring.begin_posBermula dengan karakter di dalam indeks yang ditentukan dan dilanjutkan kesourceend_pos - 1.

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 pulanganString yang diambil daripada sumber strings.

Parameter

  • source(series string) Mengekstrak string sumber daripada baris baris bawahnya.
  • begin_pos(series int) adalah kedudukan permulaan daripada baris baris yang diambil. Ia adalah eksklusif (serial baris yang diambil termasuk karakter dari baris tersebut).
  • end_pos(series int) berakhir di kedudukan. Ia adalah eksklusif (string yang diekstrak tidak termasuk watak di kedudukan) opsional.sourcePanjang senar.

Nota:Indeks senar bermula dari 0.begin_possama denganend_posFungsi ini akan mengembalikan satu baris kosong.

Sampai jumpa lagi str.contains str.pos str.match

str.tonumber

str.tonumber(string)

Nilai pulanganJika mengandungi nombor yang sah, ia adalah jenis titik terapung untuk baris, jika tidak, ia adalah na.

Parameter

  • string(series string) int atau float sebagai bentuk penyampaian baris.

str.format

Mengubah strings dan nilai format kepada strings format. String format boleh mengandungi satu penempatan dalam kurung besar {} dalam teks teks dan setiap nilai yang ingin diformat. Setiap penempatan termasuk indeks yang akan menggantikan parameter yang diperlukan (bermula dari 0), dan penunjuk format pilihan. Indeks menunjukkan tempat 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 pulanganString yang diformat.

Parameter

  • formatString(series string) Senar format.
  • arg0, arg1, ...(series int/float/bool/string/na/int[]/float[]/bool[]/string[]) adalah nilai yang perlu diformat.

Nota:Semua tanda kurung dalam gaya yang tidak dipetik mesti diimbangi. 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 tali tersebut.

str.length(string)

Nilai pulanganBilangan aksara dalam rentetan sumber.

Parameter

  • string(series string) String sumber

str.lower

Mengembalikan satu baris baru di mana semua huruf ditukar kepada huruf kecil.

str.lower(source)

Nilai pulanganSemua huruf telah ditukar kepada baris baru yang ditulis dengan huruf kecil.

Parameter

  • source(series string) String yang akan ditukar.

Sampai jumpa lagi str.upper

str.upper

Mengembalikan satu baris baru di mana semua huruf telah ditukar menjadi huruf besar.

str.upper(source)

Nilai pulanganSemua huruf telah ditukar kepada baris baru yang ditulis besar.

Parameter

  • source(series string) String yang akan ditukar.

Sampai jumpa lagi str.lower

str.match

Jika ia sepadan.regexPerkataan biasa akan kembali.sourceString yang baru, jika tidak akan dikembalikan kepada 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 pulangan sourceString yang baru, jika ia sepadan dengan saturegexPerkataan yang betul, jika tidak, adalah na.

Parameter

  • source(series string) String sumber
  • regex(series string) ungkapan biasa yang sepadan dengan string ini.

Nota:Fungsi kembalisourceEkspresi biasa yang pertama kali muncul dalam tali.regexSimbol counter-slash \ dalam tali memerlukan pengalihan dengan menggunakan tambahan counter-slash, seperti \d untuk ungkapan biasa \d.

Sampai jumpa lagi str.contains str.substring

str.pos

KembalisourcePertama kali muncul dalam senar.strJika tidak, kembalikan na.

str.pos(source, str)

Nilai pulangan strString disourceLokasi dalam rentetan.

Parameter

  • source(series string) String sumber
  • str(series string) Substring untuk dicari.

Nota:Indeks senar bermula dari 0.

Sampai jumpa lagi str.contains str.match str.substring

str.replace

Mengembalikan tali baru yang N + 1 kali muncultargetString dan sebelum initargetGaris digantikan denganreplacementString, di mana N berada dioccurrenceMengisytiharkan.N sebagai indeks pencocokan yang muncul dalam string sumber untuk string sasaran yang akan digantikan.

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 pulanganSudah diproses.

Parameter

  • source(series string) String sumber
  • target(series string) digantikan dengan string
  • replacement(series string) String yang akan dimasukkan dan bukan string sasaran.
  • occurrence(series int) Indeks yang sesuai dengan string sasaran yang akan digantikan pada string sumber. Indeks pertama yang sesuai bermula dari 0. Pilihan.

Sampai jumpa lagi str.replace_all str.match

str.replace_all

Menggunakan penggantian baris, menggantikan baris sasaran setiap kali muncul dalam baris sumber.

str.replace_all(source, target, replacement)

Nilai pulanganSudah diproses.

Parameter

  • source(series string) String sumber
  • target(series string) digantikan dengan string
  • replacement(series string) Setiap kali string sasaran muncul, ia akan menggantikan string yang lain

str.split

Memisahkan strings menjadi array substrings dan mengembalikan ID array mereka.

str.split(string, separator)

Nilai pulanganID barisan baris.

Parameter

  • string(series string) String 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 pulangan valueString parameter menunjukkan bentuknya. JikavalueParameter adalah tali dan akan dikembalikan seperti semula. ApabilavalueUntuk na, fungsi ini mengembalikan string NaN.

Parameter

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

Nota:Format nilai float juga akan menempatkan nilai-nilai ini jika perlu, contohnya str.tostring ((3.99, #) akan mengembalikan 4. Untuk memaparkan angka sifar, gunakan 0 dan bukannya #. Contohnya, #.000. Apabila menggunakan format.mintick, nilai ini akan diletakkan dalam empat digit lima hingga nombor terdekat yang boleh dipisahkan dengan syminfo.mintick tanpa bilangan baki. String yang dikembalikan adalah berturut-turut dengan sifar. Jika parameter x adalah string, nilai yang sama akan dikembalikan. Parameter jenis Bool akan mengembalikan true atau false. Apabila x adalah na, fungsi ini akan mengembalikan NaN.

warna

color.new

Warna fungsi akan menentukan ketelusan yang digunakan untuk warna yang diberikan.

color.new(color, transp)

Contoh

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

Nilai pulanganWarna-warna yang mempunyai ketelusan tertentu.

Parameter

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

Nota:Menggunakan sebilangan besar parameter (contohnya, parameter sederhana, input, atau siri) akan mempengaruhi warna yang dipaparkan pada tetapan tab skrip / halaman tag tab gaya. Sila lihat 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 pulanganWarna-warna yang mempunyai ketelusan tertentu.

Parameter

  • red(series int/float) warna merah. Nilai yang mungkin adalah 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 adalah 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♦

Nota:Menggunakan sebilangan besar parameter (contohnya, parameter sederhana, input, atau siri) akan mempengaruhi warna yang dipaparkan pada tetapan tab skrip / halaman tag tab gaya. Sila lihat manual pengguna untuk maklumat lanjut.

masa pelaksanaan

runtime.debug

Mencetak maklumat pembolehubah di papan kawalan.

Bahasa FMZ PINE mempunyai fungsi khas,runtime.debug(value), hanya mempunyai satu parameter.

runtime.log

Mengeksport kandungan di log.

Bahasa FMZ PINE mempunyai fungsi khas,runtime.log(1, 2, 3, close, high, ...), boleh menghantar pelbagai parameter.

runtime.error

Apabila dipanggil, ia boleh menyebabkan kesilapan semasa berjalan dan membawamessageMesej ralat yang dinyatakan dalam parameter.

runtime.error(message)

ParameterMessage (series string) mesej ralat.

input

input

Menambah input ke halaman tag input pada tetapan skrip, yang membolehkan anda memberikan pilihan konfigurasi kepada pengguna skrip. Fungsi ini secara automatik mengesan jenis parameter yang digunakan untuk penyesuaian defval dan menggunakan pemalam 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 pulanganNilai pembolehubah input

Parameter

  • defval(const int/float/bool/string/color or source-type built-ins) Menentukan nilai lalai bagi pembolehubah input yang dicadangkan dalam tetapan gelung skrip / halaman label gelung input, yang boleh diubah oleh pengguna skrip.closehlc3Seperti itu.
  • title(const string) tajuk input. Jika tidak ditentukan, nama pembolehubah digunakan sebagai tajuk input. Jika tajuk ditentukan tetapi tajuknya kosong, nama akan menjadi rentetan kosong.
  • tooltip(const string) String ini akan dipaparkan kepada pengguna apabila tetikus anda berada di atas ikon alat rujukan.
  • inline(const string) Menggabungkan semua panggilan input menggunakan parameter yang sama dalam satu baris. Tidak menunjukkan baris yang digunakan sebagai parameter. Ia hanya digunakan untuk mengenal pasti input yang berada di baris yang sama.
  • group(const string) Mencipta tajuk di atas semua input menggunakan senar parameter kumpulan yang sama. Senar ini juga digunakan sebagai teks tajuk tag.

Nota:Nilai pulangan fungsi input harus selalu diberikan kepada pembolehubah; lihat contoh di atas.

Sampai jumpa lagi input.bool input.color input.int input.float input.string input.timeframe input.source

input.source

Menambah input ke halaman tag input dengan tetapan skrip, yang membolehkan anda memberikan pilihan konfigurasi kepada pengguna skrip. Fungsi ini menambah menu drop-down yang membolehkan pengguna memilih sumber pengiraan, seperti close, hl2, dan lain-lain. Jika skrip hanya mengandungi satu panggilan input.source (), pengguna juga boleh memilih output penunjuk lain pada carta sebagai sumber.

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

Contoh

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

Nilai pulanganNilai pembolehubah input

Parameter

  • defval(series int/float) Menentukan nilai lalai bagi pembolehubah input yang disyorkan dalam tetapan setelan / input float skrip pada halaman label, yang boleh diubah oleh pengguna.
  • title(const string) tajuk input. Jika tidak ditentukan, nama pembolehubah digunakan sebagai tajuk input. Jika tajuk ditentukan tetapi tajuknya kosong, nama akan menjadi rentetan kosong.
  • tooltip(const string) String ini akan dipaparkan kepada pengguna apabila tetikus anda berada di atas ikon alat rujukan.
  • inline(const string) Menggabungkan semua panggilan input menggunakan parameter yang sama dalam satu baris. Tidak menunjukkan baris yang digunakan sebagai parameter. Ia hanya digunakan untuk mengenal pasti input yang berada di baris yang sama.
  • group(const string) Mencipta tajuk di atas semua input menggunakan senar parameter kumpulan yang sama. Senar ini juga digunakan sebagai teks tajuk tag.

Nota: input.source函数的结果总是应该分配给一个变量,见上面的例子。

Sampai jumpa lagi input.bool input.int input.float input.string input.timeframe input.color input

input.string

Menambah input ke tab pilihan input pada tetapan skrip, yang membolehkan anda memberikan pilihan konfigurasi kepada pengguna skrip. Fungsi ini menambah medan input baris ke dalam input skrip.

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

Contoh

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

Nilai pulanganNilai pembolehubah input

Parameter

  • defval(const string) Menentukan tetapan senar skrip / input senar pada halaman tag input yang dicadangkan, yang boleh diubah oleh pengguna.optionsApabila parameter digunakan bersama, nilai ini mesti menjadi salah satu daripadanya.
  • title(const string) tajuk input. Jika tidak ditentukan, nama pembolehubah digunakan sebagai tajuk input. Jika tajuk ditentukan tetapi tajuknya kosong, nama akan menjadi rentetan kosong.
  • options(List of constants: [...]) Senarai pilihan untuk dipilih.
  • tooltip(const string) String ini akan dipaparkan kepada pengguna apabila tetikus anda berada di atas ikon alat rujukan.
  • inline(const string) Menggabungkan semua panggilan input menggunakan parameter yang sama dalam satu baris. Tidak menunjukkan baris yang digunakan sebagai parameter. Ia hanya digunakan untuk mengenal pasti input yang berada di baris yang sama.
  • group(const string) Mencipta tajuk di atas semua input menggunakan senar parameter kumpulan yang sama. Senar ini juga digunakan sebagai teks tajuk tag.
  • confirm(const bool) Jika benar, pengguna akan diminta untuk mengesahkan nilai input sebelum penunjuk ditambahkan ke carta. Nilai lalai adalah false.

Nota: input.string函数的结果总是应该分配给一个变量,见上面的例子。

Sampai jumpa lagi input.bool input.int input.float input.timeframe input.source input.color input

input.bool

Menambah input ke halaman tag input pada tetapan skrip, yang membolehkan anda memberikan pilihan konfigurasi kepada pengguna skrip. Fungsi ini menambah tag pilihan untuk input skrip.

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

Contoh

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

Nilai pulanganNilai pembolehubah input

Parameter

  • defval(const bool) Menentukan tetapan setup setup skrip / input input variable yang disyorkan pada halaman tag setup, yang boleh diubah oleh pengguna.
  • title(const string) tajuk input. Jika tidak ditentukan, nama pembolehubah digunakan sebagai tajuk input. Jika tajuk ditentukan tetapi tajuknya kosong, nama akan menjadi rentetan kosong.
  • tooltip(const string) String ini akan dipaparkan kepada pengguna apabila tetikus anda berada di atas ikon alat rujukan.
  • inline(const string) Menggabungkan semua panggilan input menggunakan parameter yang sama dalam satu baris. Tidak menunjukkan baris yang digunakan sebagai parameter. Ia hanya digunakan untuk mengenal pasti input yang berada di baris yang sama.
  • group(const string) Mencipta tajuk di atas semua input menggunakan senar parameter kumpulan yang sama. Senar ini juga digunakan sebagai teks tajuk tag.
  • confirm(const bool) Jika benar, pengguna akan diminta untuk mengesahkan nilai input sebelum penunjuk ditambahkan ke carta. Nilai lalai adalah false.

Nota: input.bool函数的结果总是应该分配给一个变量,见上面的例子。

Sampai jumpa lagi input.int input.float input.string input.timeframe input.source input.color input

input.int

Menambah input ke halaman tag input dengan tetapan skrip, yang membolehkan anda memberikan pilihan konfigurasi kepada pengguna skrip. Fungsi ini menambah medan input bilangan bulat ke dalam 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 pulanganNilai pembolehubah input

Parameter

  • defval(const int) Menentukan tetapan tetapan tetapan skrip / input nilai lalai bagi pemboleh ubah input yang dicadangkan dalam halaman tag tetapan, yang boleh diubah oleh pengguna skrip.optionsApabila parameter digunakan bersama, nilai ini mesti menjadi salah satu daripadanya.
  • title(const string) tajuk input. Jika tidak ditentukan, nama pembolehubah digunakan sebagai tajuk input. Jika tajuk ditentukan tetapi tajuknya kosong, nama akan menjadi rentetan kosong.
  • minval(const int) Nilai minimum yang mungkin bagi pembolehubah input. Opsional.
  • maxval(const int) Nilai maksimum yang mungkin bagi pembolehubah input. Opsional.
  • step(const int) Digunakan untuk menambah/mengurangkan panjang langkah input. Opsional. Nilai lalai ialah 1
  • options(tuple of const int values: [val1, val2,...]) Senarai pilihan yang dipilih dari menu drop-down, dipisahkan dengan koma dan digabungkan dengan kurung: [val1, val2,...];; tidak boleh digunakan apabila menggunakan parameter iniminvalmaxvaldanstepParameter.
  • tooltip(const string) String ini akan dipaparkan kepada pengguna apabila tetikus anda berada di atas ikon alat rujukan.
  • inline(const string) Menggabungkan semua panggilan input menggunakan parameter yang sama dalam satu baris. Tidak menunjukkan baris yang digunakan sebagai parameter. Ia hanya digunakan untuk mengenal pasti input yang berada di baris yang sama.
  • group(const string) Mencipta tajuk di atas semua input menggunakan senar parameter kumpulan yang sama. Senar ini juga digunakan sebagai teks tajuk tag.
  • confirm(const bool) Jika benar, pengguna akan diminta untuk mengesahkan nilai input sebelum penunjuk ditambahkan ke carta. Nilai lalai adalah false.

Nota: input.int函数的结果总是应该分配给一个变量,见上面的例子。

Sampai jumpa lagi input.bool input.float input.string input.timeframe input.source input.color input

input.float

Menambah input ke halaman tag input dengan tetapan skrip, yang membolehkan anda memberikan pilihan konfigurasi kepada pengguna skrip. Fungsi ini menambah medan input float ke dalam 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 pulanganNilai pembolehubah input

Parameter

  • defval(const int/float) Menentukan nilai lalai bagi pemboleh ubah input yang disyorkan dalam tetapan templat skrip / halaman label templat input, yang boleh diubah oleh pengguna skrip. Apabila senarai nilai disesuaikan denganoptionsApabila parameter digunakan bersama, nilai ini mesti menjadi salah satu daripadanya.
  • title(const string) tajuk input. Jika tidak ditentukan, nama pembolehubah digunakan sebagai tajuk input. Jika tajuk ditentukan tetapi tajuknya kosong, nama akan menjadi rentetan kosong.
  • minval(const int/float) Nilai minimum yang mungkin bagi pembolehubah input. Opsional.
  • maxval(const int/float) Nilai maksimum yang mungkin bagi pembolehubah input. Opsional.
  • step(const int/float) digunakan untuk menambah/mengurangkan nilai langkah input. Opsional. Nilai lalai ialah 1..
  • options(tuple of const int/float values: [val1, val2,...]) Senarai pilihan yang dipilih dari menu drop-down, dipisahkan dengan koma dan digabungkan dengan kurung kuasa: [val1, val2,...];; tidak boleh digunakan apabila menggunakan parameter iniminvalmaxvaldanstepParameter.
  • tooltip(const string) String ini akan dipaparkan kepada pengguna apabila tetikus anda berada di atas ikon alat rujukan.
  • inline(const string) Menggabungkan semua panggilan input menggunakan parameter yang sama dalam satu baris. Tidak menunjukkan baris yang digunakan sebagai parameter. Ia hanya digunakan untuk mengenal pasti input yang berada di baris yang sama.
  • group(const string) Mencipta tajuk di atas semua input menggunakan senar parameter kumpulan yang sama. Senar ini juga digunakan sebagai teks tajuk tag.
  • confirm(const bool) Jika benar, pengguna akan diminta untuk mengesahkan nilai input sebelum penunjuk ditambahkan ke carta. Nilai lalai adalah false.

Nota: input.float函数的结果总是应该分配给一个变量,见上面的例子。

Sampai jumpa lagi input.bool input.int input.string input.timeframe input.source input.color input

input.color

Menambah input ke halaman tag input pada tetapan skrip, yang membolehkan anda memberikan pilihan konfigurasi kepada pengguna skrip. Fungsi ini menambah pilihan warna yang membolehkan pengguna memilih warna dan ketelusan dari papan warna atau nilai setelan 16 digit.

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

Contoh

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

Nilai pulanganNilai pembolehubah input

Parameter

  • defval(const color) Menentukan tetapan tetapan tetapan skrip / input input variable yang disyorkan pada halaman tag tetapan, yang boleh diubah oleh pengguna.
  • title(const string) tajuk input. Jika tidak ditentukan, nama pembolehubah digunakan sebagai tajuk input. Jika tajuk ditentukan tetapi tajuknya kosong, nama akan menjadi rentetan kosong.
  • tooltip(const string) String ini akan dipaparkan kepada pengguna apabila tetikus anda berada di atas ikon alat rujukan.
  • inline(const string) Menggabungkan semua panggilan input menggunakan parameter yang sama dalam satu baris. Tidak menunjukkan baris yang digunakan sebagai parameter. Ia hanya digunakan untuk mengenal pasti input yang berada di baris yang sama.
  • group(const string) Mencipta tajuk di atas semua input menggunakan senar parameter kumpulan yang sama. Senar ini juga digunakan sebagai teks tajuk tag.
  • confirm(const bool) Jika benar, pengguna akan diminta untuk mengesahkan nilai input sebelum penunjuk ditambahkan ke carta. Nilai lalai adalah false.

Nota: input.color函数的结果总是应该分配给一个变量,见上面的例子。

Sampai jumpa lagi input.bool input.int input.float input.string input.timeframe input.source input

input.price

Menambah entri harga ke skrip tetapan acuan / menggunakan halaman tag acuan.confirm = trueMengaktifkan mod input interaktif, pilih harga 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)

Nilai pulanganNilai pembolehubah input

Parameter

  • defval(const int/float) Menentukan nilai lalai bagi pembolehubah input yang disyorkan dalam tetapan tetapan / label tetapan skrip, yang boleh diubah oleh pengguna.
  • title(const string) tajuk input. Jika tidak ditentukan, nama pembolehubah digunakan sebagai tajuk input. Jika tajuk ditentukan tetapi tajuknya kosong, nama akan menjadi rentetan kosong.
  • tooltip(const string) String ini akan dipaparkan kepada pengguna apabila tetikus anda berada di atas ikon alat rujukan.
  • inline(const string) Menggabungkan semua panggilan input menggunakan parameter yang sama dalam satu baris. Tidak menunjukkan baris yang digunakan sebagai parameter. Ia hanya digunakan untuk mengenal pasti input yang berada di baris yang sama.
  • group(const string) Mencipta tajuk di atas semua input menggunakan senar parameter kumpulan yang sama. Senar ini juga digunakan sebagai teks tajuk tag.
  • confirm(const bool) Jika benar, aktifkan mod input interaktif dan selesaikan pilihan dengan mengklik grafik semasa penambahan penunjuk ke carta, atau selesaikan pilihan dengan memilih penunjuk dan kemudian bergerak pilihan. Opsional. Nilai lalai false.

Nota:Apabila menggunakan mod interaksi, jika dua fungsi dipanggil untukinlineJika parameter menggunakan parameter yang sama, input masa boleh digunakan bersama-sama dengan input harga.

Sampai jumpa lagi input.bool input.int input.float input.string input.resolution input.source input.color input

input.timeframe

Menambah input ke halaman tag input pada tetapan skrip, yang membolehkan anda memberikan pilihan konfigurasi kepada pengguna skrip. Fungsi ini menambah senarai turun yang membolehkan pengguna memilih tempoh masa tertentu melalui pemilih tempoh masa dan mengembalikannya sebagai senar. Pemilih termasuk tempoh masa khusus yang ditambahkan menu turun yang mungkin digunakan pengguna untuk grafik.

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 pulanganNilai pembolehubah input

Parameter

  • defval(const string) Menentukan tetapan senar skrip / input senar pada halaman tag input yang dicadangkan, yang boleh diubah oleh pengguna.optionsApabila parameter digunakan bersama, nilai ini mesti menjadi salah satu daripadanya.
  • title(const string) tajuk input. Jika tidak ditentukan, nama pembolehubah digunakan sebagai tajuk input. Jika tajuk ditentukan tetapi tajuknya kosong, nama akan menjadi rentetan kosong.
  • options(tuple of const string values: [val1, val2,...]) Senarai pilihan yang boleh dipilih.
  • tooltip(const string) String ini akan dipaparkan kepada pengguna apabila tetikus anda berada di atas ikon alat rujukan.
  • inline(const string) Menggabungkan semua panggilan input menggunakan parameter yang sama dalam satu baris. Tidak menunjukkan baris yang digunakan sebagai parameter. Ia hanya digunakan untuk mengenal pasti input yang berada di baris yang sama.
  • group(const string) Mencipta tajuk di atas semua input menggunakan senar parameter kumpulan yang sama. Senar ini juga digunakan sebagai teks tajuk tag.
  • confirm(const bool) Jika benar, pengguna akan diminta untuk mengesahkan nilai input sebelum penunjuk ditambahkan ke carta. Nilai lalai adalah false.

Nota: input.timeframe函数的结果总是应该分配给一个变量,见上面的例子。

Sampai jumpa lagi input.bool input.int input.float input.string input.source input.color input

input.integer

Tiada

input.resolution

Tiada

t

ta.alma

Arnaud Legoux purata bergerak. Ia menggunakan pembahagian Gauss sebagai berat purata bergerak.

ta.alma(series, length, offset, sigma) 
ta.alma(series, length, offset, sigma, floor) 

Contoh

plot(ta.alma(close, 9, 0.85, 6))

// same on pine, but much less efficient
pine_alma(series, windowsize, offset, sigma) =>
    m = offset * (windowsize - 1)
    //m = math.floor(offset * (windowsize - 1)) // Used as m when math.floor=true
    s = windowsize / sigma
    norm = 0.0
    sum = 0.0
    for i = 0 to windowsize - 1
        weight = math.exp(-1 * math.pow(i - m, 2) / (2 * math.pow(s, 2)))
        norm := norm + weight
        sum := sum + series[windowsize - i - 1] * weight
    sum / norm
plot(pine_alma(close, 9, 0.85, 6))

Nilai pulanganArnaud Legoux purata bergerak

Parameter

  • series(series int/float) Nilai siri yang akan dijalankan.
  • length(series int) Bilangan baris K (panjang).
  • offset(simple int/float) Mengendalikan trade-off antara kelancaran (<= 1) dan responsif (<= 0).
  • sigma(simple int/float) mengubah kelancaran ALMA.
  • floor(simple bool) Pilihan parameter. Sebelum mengira ALMA, tentukan sama ada pengiraan deviasi adalah terendah. Nilai lalai adalah false.

Sampai jumpa lagi ta.sma ta.ema ta.rma ta.wma ta.vwma ta.swma

ta.sma

Fungsi sma mengembalikan purata bergerak, iaitu nilai y terakhir untuk x, yang dibahagikan dengan y.

ta.sma(source, length) 

Contoh

plot(ta.sma(close, 15))

// same on pine, but much less efficient
pine_sma(x, y) =>
    sum = 0.0
    for i = 0 to y - 1
        sum := sum + x[i] / y
    sum
plot(pine_sma(close, 15))

Nilai pulangan lengthK-garis kembalisourcePerkiraan ini adalah sebagai berikut:

Parameter

  • source(series int/float) Nilai siri yang akan dijalankan.
  • length(series int) Bilangan baris K (panjang).

Sampai jumpa lagi ta.ema ta.rma ta.wma ta.vwma ta.swma ta.alma

ta.cog

cog (graviti) adalah satu penunjuk berdasarkan statistik dan nisbah emas Fibonacci.

ta.cog(source, length) 

Contoh

plot(ta.cog(close, 10))

// the same on pine
pine_cog(source, length) =>
    sum = math.sum(source, length)
    num = 0.0
    for i = 0 to length - 1
        price = source[i]
        num := num + price * (i + 1)
    -num / sum

plot(pine_cog(close, 10))

Nilai pulanganFokus

Parameter

  • source(series int/float) Nilai siri yang akan dijalankan.
  • length(series int) Bilangan baris K (panjang).

Sampai jumpa lagi ta.stoch

ta.dev

衡量系列与其ta.sma之间的差异

ta.dev(source, length) 

Contoh

plot(ta.dev(close, 10))

// the same on pine
pine_dev(source, length) =>
    mean = ta.sma(source, length)
    sum = 0.0
    for i = 0 to length - 1
        val = source[i]
        sum := sum + math.abs(val - mean)
    dev = sum/length
plot(pine_dev(close, 10))

Nilai pulangan lengthK-garis kembalisourcePerbezaan.

Parameter

  • source(series int/float) Nilai siri yang akan dijalankan.
  • length(series int) Bilangan baris K (panjang).

Sampai jumpa lagi ta.variance ta.stdev

ta.stdev

ta.stdev(source, length, biased) 

Contoh

plot(ta.stdev(close, 5))

//the same on pine
isZero(val, eps) => math.abs(val) <= eps

SUM(fst, snd) =>
    EPS = 1e-10
    res = fst + snd
    if isZero(res, EPS)
        res := 0
    else
        if not isZero(res, 1e-4)
            res := res
        else
            15

pine_stdev(src, length) =>
    avg = ta.sma(src, length)
    sumOfSquareDeviations = 0.0
    for i = 0 to length - 1
        sum = SUM(src[i], -avg)
        sumOfSquareDeviations := sumOfSquareDeviations + sum * sum

    stdev = math.sqrt(sumOfSquareDeviations / length)
plot(pine_stdev(close, 5))

Nilai pulanganStandar yang kurang

Parameter

  • source(series int/float) Nilai siri yang akan dijalankan.
  • length(series int) Bilangan baris K (panjang).
  • biased(series bool) menentukan kiraan mana yang harus digunakan. Opsional. Nilai lalai adalah benar.

Nota:JikabiasedJika benar, fungsi akan menggunakan anggaran bias terhadap keseluruhan, jika salah - anggaran tidak bias terhadap sampel.

Sampai jumpa lagi ta.dev ta.variance

ta.ema

Fungsi ema mengembalikan garis purata bergerak ditambah indeks. Dalam ema, faktor tambah berat menunjukkan penurunan indeks. Ia dikira menggunakan formula berikut: EMA = alpha * sumber + (1 - alpha) * EMA,[1] di mana alpha = 2 / (panjang + 1) ≠ 0.

ta.ema(source, length) 

Contoh

plot(ta.ema(close, 15))

//the same on pine
pine_ema(src, length) =>
    alpha = 2 / (length + 1)
    sum = 0.0
    sum := na(sum[1]) ? src : alpha * src + (1 - alpha) * nz(sum[1])
plot(pine_ema(close,15))

Nilai pulangan sourceIndeks purata bergerak, alfa = 2 / (panjang + 1) ≠

Parameter

  • source(series int/float) Nilai siri yang akan dijalankan.
  • length(simple int) Bilangan garis K (panjang).

Nota:Sila ambil perhatian bahawa penggunaan pembolehubah / fungsi ini mungkin menyebabkan penunjuk digariskan semula.

Sampai jumpa lagi ta.sma ta.rma ta.wma ta.vwma ta.swma ta.alma

ta.wma

Fungsi wma dikembalikanlengthGaris KsourceDalam wma, faktor berat dikurangkan dengan bilangan pangkat aritmatika.

ta.wma(source, length) 

Contoh

plot(ta.wma(close, 15))

// same on pine, but much less efficient
pine_wma(x, y) =>
    norm = 0.0
    sum = 0.0
    for i = 0 to y - 1
        weight = (y - i) * y
        norm := norm + weight
        sum := sum + x[i] * weight
    sum / norm
plot(pine_wma(close, 15))

Nilai pulangan lengthK-garis kembalisourceRata-rata bergerak tertimbang.

Parameter

  • source(series int/float) Nilai siri yang akan dijalankan.
  • length(series int) Bilangan baris K (panjang).

Sampai jumpa lagi ta.sma ta.ema ta.rma ta.vwma ta.swma ta.alma

ta.swma

Rata-rata bergerak bertimbang simetri dengan panjang tetap: 4. Berat: [1/6,2 / 6,2 / 6,1 / 6].

ta.swma(source)

Contoh

plot(ta.swma(close))

// same on pine, but less efficient
pine_swma(x) =>
    x[3] * 1 / 6 + x[2] * 2 / 6 + x[1] * 2 / 6 + x[0] * 1 / 6
plot(pine_swma(close))

Nilai pulanganPergerakan purata simetris ditambah berat.

Parameter

  • source(series int/float) Siri sumber.

Sampai jumpa lagi ta.sma ta.ema ta.rma ta.wma ta.vwma ta.alma

ta.hma

Fungsi hma mengembalikan HMA.

ta.hma(source, length)

Contoh

src = input(defval=close, title="Source")
length = input(defval=9, title="Length")
hmaBuildIn = ta.hma(src, length)
plot(hmaBuildIn, title="Hull MA", color=#674EA7)

Nilai pulanganKembali ke Hull Moving Average.

Parameter

  • source(series int/float) Nilai siri yang akan dijalankan.
  • length(simple int) Bilangan baris K

Sampai jumpa lagi ta.ema ta.rma ta.wma ta.vwma ta.sma

ta.rma

Garis purata bergerak yang digunakan dalam RSI. Ia adalah garis purata bergerak bertimbang indeks, dengan nilai alfa ditambah berat = 1 / panjang.

ta.rma(source, length)

Contoh

plot(ta.rma(close, 15))

//the same on pine
pine_rma(src, length) =>
  alpha = 1/length
  sum = 0.0
  sum := na(sum[1]) ? ta.sma(src, length) : alpha * src + (1 - alpha) * nz(sum[1])
plot(pine_rma(close, 15))

Nilai pulangan sourceIni adalah garis bergerak indeks, alfa = 1/length

Parameter

  • source(series int/float) Nilai siri yang akan dijalankan.
  • length(simple int) Bilangan garis K (panjang).

Sampai jumpa lagi ta.sma ta.ema ta.wma ta.vwma ta.swma ta.alma ta.rsi

ta.rsi

Indeks intensiti relatif. Ia digunakan pada akhirlengthK LinesourcePerubahan atas dan bawahta.rma()Percuma.

ta.rsi(source, length)

Contoh

plot(ta.rsi(close, 7))

// same on pine, but less efficient
pine_rsi(x, y) => 
    u = math.max(x - x[1], 0) // upward ta.change
    d = math.max(x[1] - x, 0) // downward ta.change
    rs = ta.rma(u, y) / ta.rma(d, y)
    res = 100 - 100 / (1 + rs)
    res

plot(pine_rsi(close, 7))

Nilai pulanganIndikator RSI yang agak kuat dan lemah

Parameter

  • source(series int/float) Nilai siri yang akan dijalankan.
  • length(simple int) Bilangan garis K (panjang).

Sampai jumpa lagi ta.rma

ta.tsi

Indeks kekuatan dan kelemahan sebenar. Ia menggunakan purata bergerak potensi pergerakan instrumen kewangan.

ta.tsi(source, short_length, long_length)

Nilai pulanganIndeks kekuatan dan kelemahan sebenar. Nilai dalam julat [-1,1].

Parameter

  • source(series int/float) Siri sumber.
  • short_length(simple int) panjang pendek.
  • long_length(simple int) Panjang baris panjang.

ta.roc

Fungsi roc ((perubahan kadar) menunjukkansourcenilai semasa dansourceBeberapa hari yang lalulengthPerbezaan antara nilai-nilai. Ia dikira dengan formula berikut: 100 * change (src, length) / src (length) ⋅

ta.roc(source, length)

Nilai pulangan lengthK-garis kembalisourcePerbezaan dalam jumlah pengguna.

Parameter

  • source(series int/float) Nilai siri yang akan dijalankan.
  • length(series int) Bilangan baris K (panjang).

ta.range

Mengembalikan perbezaan antara nilai minimum dan maksimum dalam siri.

ta.range(source, length)

Nilai pulanganPerbezaan antara nilai minimum dan nilai maksimum dalam siri tersebut.

Parameter

  • source(series int/float) Nilai siri yang akan dijalankan.
  • length(series int) Bilangan baris K (panjang).

ta.macd

MACD (Smooth Asymmetric Average). Ia sepatutnya mendedahkan perubahan kekuatan, arah, momentum dan tempoh trend harga saham.

ta.macd(source, fastlen, slowlen, siglen) 

Contoh

[macdLine, signalLine, histLine] = ta.macd(close, 12, 26, 9)
plot(macdLine, color=color.blue)
plot(signalLine, color=color.orange)
plot(histLine, color=color.red, style=plot.style_histogram)

Jika anda hanya memerlukan satu nilai, gunakan simbol_penempatan seperti ini:

Contoh

[_, signalLine, _] = ta.macd(close, 12, 26, 9)
plot(signalLine, color=color.orange)

Nilai pulanganTiga komponen siri MACD: talian MACD, talian isyarat dan talian grafik lurus.

Parameter

  • source(series int/float) Nilai siri yang akan dijalankan.
  • fastlen(simple int) Parameter garisan ringkas
  • slowlen(simple int) Parameter panjang perlahan.
  • siglen(simple int) Parameter panjang isyarat.

Sampai jumpa lagi ta.sma ta.ema

ta.mode

Mengembalikan corak siri. Jika terdapat beberapa nilai dengan frekuensi yang sama, nilai minimum dikembalikan.

ta.mode(source, length)

Nilai pulanganModel siri.

Parameter

  • source(series int/float) Nilai siri yang akan dijalankan.
  • length(series int) Bilangan baris K (panjang).

ta.median

Mengembalikan nombor tengah siri.

ta.median(source, length) 

Nilai pulanganBilangan tengah dalam satu siri.

Parameter

  • source(series int/float) Nilai siri yang akan dijalankan.
  • length(series int) Bilangan baris K (panjang).

ta.linreg

Garis regresi linear. Garis yang paling sesuai dengan harga yang ditetapkan dalam tempoh masa yang ditakrifkan oleh pengguna. Ia dikira menggunakan penggandaan dua minimum. Hasil fungsi ini dikira menggunakan formula berikut: linreg = intercept + slope * (length - 1 - offset), di mana intercept dan slope digunakan.sourceNilai untuk pengiraan dua kali ganda terendah dalam siri tersebut.

ta.linreg(source, length, offset) 

Nilai pulanganGaris regresi linear

Parameter

  • source(series int/float) Siri sumber.
  • length(seri int)
  • offset(simple int) penyesuaian

ta.bb

Blink band. Blink band adalah alat analisis teknikal yang ditakrifkan oleh satu set garis yang berhampiran dengan purata bergerak mudah (SMA) harga sekuriti dengan dua kesesuaian standard (positif dan negatif), tetapi boleh disesuaikan mengikut pilihan pengguna.

ta.bb(series, length, mult) 

Contoh

[middle, upper, lower] = ta.bb(close, 5, 4)
plot(middle, color=color.yellow)
plot(upper, color=color.yellow)
plot(lower, color=color.yellow)

// the same on pine
f_bb(src, length, mult) =>
    float basis = ta.sma(src, length)
    float dev = mult * ta.stdev(src, length)
    [basis, basis + dev, basis - dev]

[pineMiddle, pineUpper, pineLower] = f_bb(close, 5, 4)

plot(pineMiddle)
plot(pineUpper)
plot(pineLower)

Nilai pulanganRintangan berwarna-warni.

Parameter

  • series(series int/float) Siri yang akan dijalankan

Lebih lanjut

wuhuoyanBagaimana untuk menjalankan pelbagai transaksi pada masa yang sama untuk kontrak Bitcoin?

Awan ringanBolehkah anda beritahu saya, adakah pine boleh berdagang lebih banyak? Adakah ia boleh berdagang lebih banyak seperti JS? Terima kasih.

Lisa20231Terima kasih untuk maklumat lanjut.

seniWow! bagaimana skrip pine ini menggunakan okx simulator pada platform?

seniIni sama dengan strategi platform tradingview yang boleh disalin terus ke platform pencipta untuk digunakan!

Pencipta Kuantiti - Impian KecilBahasa PINE hanya boleh melakukan dasar varietasi tunggal, strategi pelbagai varietasi adalah yang terbaik atau menulis reka bentuk dengan python, javascript, c ++.

Pencipta Kuantiti - Impian KecilOh, ya, OKX agak istimewa, mereka mempunyai alamat yang sama di persekitaran analog dan persekitaran cakera sebenar, hanya membuat perbezaan di tempat lain.

Awan ringanTidak boleh menggunakan okx analog.

Pencipta Kuantiti - Impian KecilMasalah seni bina yang pelbagai ini tidak dapat diselesaikan dengan baik, kerana setiap pertukaran mempunyai antara muka yang berbeza, dan batasan frekuensi antara muka juga tidak sama, yang akan menimbulkan banyak masalah.

Pencipta Kuantiti - Impian KecilBaiklah, terima kasih kerana mencadangkan, dan laporkan permintaan ini di sini.

Awan ringanPerasaan yang lebih baik untuk disatukan dengan JS, JS boleh menyesuaikan diri dengan pelbagai cara berdagang.

Pemangsa trendAdakah anda akan mempertimbangkan lebih banyak varieti pada masa akan datang?

Pencipta Kuantiti - Impian KecilTidak sopan.

Awan ringanBaiklah, terima kasih banyak.

Pencipta Kuantiti - Impian KecilHalo, sementara, strategi bahasa PINE hanya boleh menggunakan satu jenis sahaja.

Pencipta Kuantiti - Impian KecilTidak sopan, terima kasih atas sokongan anda. Dokumen akan terus diperbaiki.

Pencipta Kuantiti - Impian KecilYa, saya faham.

Pencipta Kuantiti - Impian KecilPINE template library, parameter yang boleh ditetapkan untuk menukar alamat pangkalan pertukaran.