Kata kunci, tatabahasa, penerangan tetapan
Struktur kod
Struktur umum yang diikuti oleh kod dalam Pine:
<version>
<declaration_statement>
<code>
Nota
Simbol komen yang disokong oleh bahasa Pine di FMZ: komen satu baris//Nota berbilang baris/* */Sebagai contoh, bagaimana nota ditulis dalam contoh berikut:
pine
[macdLine, signalLine, histLine] = ta.macd(close, 12, 26, 9) // 计算MACD指标
/*
plot函数在图表上画出指标线
*/
plot(macdLine, color = color.blue, title='macdLine')
plot(signalLine, color = color.orange, title='signalLine')
plot(histLine, color = color.red, title='histLine')
Penerbitan
Arahan kompilator dalam bentuk berikut memberitahu kompilator versi Pine yang digunakan untuk skrip:
pine
//@version=5
Secara lalai, versi v5 boleh diabaikan dalam kod//@version=5。
Kenyataan
Pernyataan pengisytiharan menentukan jenis skrip, yang seterusnya menentukan apa yang dibenarkan di dalamnya, dan bagaimana ia digunakan dan dilaksanakan. Ia menetapkan sifat-sifat utama skrip, seperti namanya, di mana ia akan muncul apabila ia ditambah ke dalam carta, ketepatan dan format nilai yang ditunjukkannya, dan nilai-nilai untuk mengawal tindakan tertentu semasa ia berjalan, seperti jumlah objek peta maksimum yang akan ditunjukkan dalam carta. Untuk strategi, sifat-sifat termasuk parameter yang dikawal semula, seperti modal awal, komisen, titik meluncur, dan lain-lain.indicator()ataustrategy()Kenyataan rasmi:
Kod
Garis yang tidak memberi komen atau arahan kompilator dalam skrip adalah pernyataan, yang mewujudkan algoritma skrip. Pernyataan boleh menjadi salah satu daripada ini.
- Pengisytiharan pemboleh ubah
- Penjenamaan semula pemboleh ubah
- Pengisytiharan fungsi
- Panggilan fungsi terbina dalam, panggilan fungsi yang ditakrifkan pengguna
if,for,whileatauswitchStruktur lain
Perkataan boleh disusun dengan pelbagai cara
- Sesetengah ungkapan boleh dinyatakan dengan satu baris, seperti kebanyakan deklarasi pembolehubah, yang hanya mengandungi satu baris panggilan fungsi atau deklarasi fungsi baris tunggal. Yang lain, seperti struktur, selalu memerlukan lebih banyak baris, kerana mereka memerlukan satu blok tempatan.
- Perkataan dalam skop global skrip (iaitu, bahagian yang tidak tergolong dalam blok tempatan) tidak boleh dianggap sebagai
空格atau制表符(Kunci tab) bermula。 Karakter pertama mereka juga mestilah karakter pertama baris tersebut。 Baris yang bermula pada kedudukan pertama baris, menjadi sebahagian daripada skop global skrip mengikut definisi。 - Struktur atau pernyataan fungsi berbilang baris sentiasa memerlukan
local block。 Satu blok tempatan mesti dikurangkan ke dalam satu tanda pengenal atau empat ruang kosong ((jika tidak, ia akan diuraikan sebagai kod berturut-turut baris sebelumnya, iaitu dihakimi sebagai kesinambungan baris sebelumnya), dan setiap blok tempatan mentakrifkan ruang lingkup tempatan yang berbeza。 - Pelbagai ungkapan tunggal boleh disusun dalam satu baris dengan menggunakan tanda koma ((,) sebagai pemisah.
- Satu baris boleh mengandungi komen atau hanya komen.
- Baris juga boleh dibungkus ((terus dalam pelbagai baris) <unk>)
Sebagai contoh, termasuk tiga blok lokal, satu dalam deklarasi fungsi tersuai, dan dua menggunakan struktur if dalam deklarasi pembolehubah, seperti berikut:
pine
indicator("", "", true) // 声明语句(全局范围),可以省略不写
barIsUp() => // 函数声明(全局范围)
close > open // 本地块(本地范围)
plotColor = if barIsUp() // 变量声明 (全局范围)
color.green // 本地块 (本地范围)
else
color.red // 本地块 (本地范围)
runtime.log("color", color = plotColor) // 调用一个内置函数输出日志 (全局范围)
Kod ganti baris
Baris panjang boleh dibahagikan kepada beberapa baris, atau "dibungkus". Baris yang dibungkus mesti menyusut ke dalam apa-apa jumlah ruang, asalkan ia bukan kelipatan 4 (perbatasan ini digunakan untuk menyusut ke dalam blok tempatan).
pine
a = open + high + low + close
Ia boleh dibungkus sebagai (perhatikan bahawa jumlah ruang yang dikurangkan dalam setiap baris bukanlah kelipatan 4):
pine
a = open +
high +
low +
close
Panggilan plot ((() yang panjang boleh dibungkus dalam ▽.
pine
close1 = request.security(syminfo.tickerid, "D", close) // syminfo.tickerid 当前交易对的日线级别收盘价数据系列
close2 = request.security(syminfo.tickerid, "240", close) // syminfo.tickerid 当前交易对的240分钟级别收盘价数据系列
plot(ta.correlation(close, open, 100), // 一行长的plot()调用可以被包装
color = color.new(color.purple, 40),
style = plot.style_area,
trackprice = true)
Perkataan dalam deklarasi fungsi yang ditakrifkan oleh pengguna juga boleh dibungkus. Namun, kerana blok tempatan secara gramatikal mesti bermula dengan pengurangan (- 4 ruang kosong atau 1 tanda kerja), apabila membahagikannya ke baris seterusnya, bahagian lanjutan perkataannya mesti bermula dengan pengurangan lebih daripada satu (- tidak sama dengan kelipatan 4 ruang kosong). Contohnya:
pine
test(c, o) =>
ret = c > o ?
(c > o+5000 ?
1 :
0):
(c < o-5000 ?
-1 :
0)
a = test(close, open)
plot(a, title="a")
Jadual masa
Rangkaian masa bukanlah jenis atau format data, tetapi konsep struktur asas dalam bahasa PINE. Ia digunakan untuk menyimpan nilai yang berubah secara berturut-turut dalam masa, setiap nilai sesuai dengan satu titik masa. Struktur konsep ini sangat sesuai untuk digunakan untuk memproses dan merekodkan rangkaian data yang berubah dari masa ke masa.
Dengan pembolehubah terbina dalamopenSebagai contoh,openVariabel terbina dalam merekodkan harga pembukaan setiap BAR K, jikaopenIa adalah 5 minit K.openVariabel yang dirakamkan ialah setiap 5 minit K bar (kolom). Apabila program strategi anda dijalankan, kod anda merujukopenUntuk merujuk kepada nilai sebelumnya dalam urutan masa (nilai masa lalu), kita menggunakan[]Operator sejarah, apabila strategi dijalankan pada baris KBAR,open[1]Maksudnya ialah merujuk kepada harga pembukaan K bar sebelum K bar semasa.
WalaupunJadual masaIa mudah untuk memikirkan struktur data "array", walaupun bahasa PINE juga mempunyai jenis array. Tetapi mereka dan urutan masa adalah konsep yang sama sekali berbeza.
PINE direka bentuk sebagai siri masa, yang membolehkan anda dengan mudah mengira nilai terkumpul harga penutupan dalam kod strategi, dan tidak memerlukan struktur pusingan seperti for, hanya menggunakan fungsi terbina dalam bahasa PINEta.cum(close)Sebagai contoh lain, kita perlu mengira nilai purata perbezaan antara nilai tertinggi dan yang terendah bagi 14 baris K BAR terakhir (iaitu 14 baris K BAR yang paling dekat pada masa semasa ketika kod dijalankan) yang boleh ditulis sebagai:ta.sma(high - low, 14)
Hasil panggilan fungsi pada urutan masa juga akan meninggalkan jejak pada urutan masa, juga boleh digunakan[]Operator sejarah merujuk kepada nilai sebelum. Sebagai contoh, untuk menguji sama ada harga penutupan Kbar semasa melebihi nilai maksimum nilai tertinggi dalam BAR 10 Kbar terakhir (tidak termasuk Kbar semasa). Kita boleh menulisbreach = close > ta.highest(close, 10)[1]Ia juga boleh ditulis sebagai,breach = close > ta.highest(close[1], 10)Oleh itu.ta.highest(close, 10)[1]danta.highest(close[1], 10)Ia adalah sama.
Ia boleh disahkan dengan kod berikut:
pine
strategy("test pine", "test", true)
a = ta.highest(close, 10)[1]
b = ta.highest(close[1], 10)
plotchar(true, title="a", char=str.tostring(a), location=location.abovebar, color=color.red)
plotchar(true, title="b", char=str.tostring(b), location=location.belowbar, color=color.green)
Kod ujian di atas akan mengeluarkan nilai a dan b pada setiap BAR pada urutan masa yang sesuai, dan dapat dilihat bahawa nilai a dan b selalu sama, jadi kedua-dua cara menyatakan adalah setara.
Tarikh data rujukan
Trading View mempunyai had maksimum untuk rujukan data sejarah (maksimum 5000), seperti kod berikut:
pine
//@version=6
indicator("test")
ema = ta.ema(close, 10000) // 报错:Error on bar 0: The 'ema'->'sum' function references too many historical candles (10000), the limit is 5000.
plot(ema, "ema")
// pre10000 = ema[10000] // 报错:Invalid number of bars back specified in the history-referencing operator. It accepts a value between 0 and 5000.
// plot(pre10000, "pre10000")
"Tetapan urus niaga" dalam "Pine Language Transaction Classroom" menggunakan strategi bahasa PINE di FMZ, parameter: "Jumlah kitaran terpanjang pembolehubah" menetapkan jumlah maksimum data yang boleh dirujuk.
pine
indicator("test")
ema = ta.ema(close, 1000) // ema = ta.ema(close, 3000) 则报错:Invalid number 3000 of bars back specified in the history-referencing operator. It accepts a value between 0 and 2000.
plot(ema, "ema")
Parameter "variabel terpanjang tempoh" tidak boleh ditetapkan terlalu besar, dan dalam strategi yang sesuai, data boleh dirujuk.
Parameter modem perpustakaan kelas pertukaran bahasa Pine
Panduan untuk menetapkan parameter pada templat binaan "Pine Language Transaction Class Library" untuk PINE Policy.
Tetapan perdagangan
- Perlaksanaan
Model harga penutupan: model dijalankan apabila BAR semasa habis, dan perdagangan dijalankan apabila BAR akar bermula.
Model harga masa nyata: setiap kali harga berubah, model dijalankan, dan ada isyarat untuk melakukan perdagangan dengan segera. - Nombor tangan terbuka secara lalai: Jika arahan perdagangan tidak menentukan jumlah perdagangan, pelaksanaan perdagangan mengikut jumlah yang ditetapkan.
- Jumlah pesanan maksimum dalam satu transaksi: Berdasarkan cakupan sebenar, dalam kombinasi dengan tetapan parameter ini, tentukan jumlah pesanan maksimum untuk setiap pesanan, untuk mengelakkan kejutan cakupan.
- Peluang penurunan harga: berdasarkan
定价货币精度Parameter dan parameter ini menentukan harga slippage pada masa pesanan. Sebagai contoh, penetapan ketepatan mata wang harga adalah 2, iaitu tepat ke nombor kedua, tepat kepada 0.01. Maka setiap titik slippage mewakili 0.01 unit penetapan. Pada masa ini, penetapan nilai slippage adalah 5, dan harga slippage pada masa pesanan adalah 0.05 (harga slippage merujuk kepada bahagian harga yang terlampau pada masa pesanan untuk lebih baik dan menutup pesanan). - Bilangan kitaran terpanjang: bilangan BAR pada garisan K yang mempengaruhi grafik, dengan
javascriptPanggilan dalam strategiSetMaxBarLenFungsi yang sama.
Opsyen Niaga Hadapan
- Kod varieti: Kod kontrak, yang perlu ditetapkan apabila objek pertukaran adalah objek pertukaran bukan tunai.
- Minimum jumlah kontrak: jumlah minimum kontrak yang boleh diuruskan semasa anda membuat pesanan.
Pilihan Sebenar
- Kembali semula secara automatik: Kembali semula ke keadaan sebelum strategi terakhir berhenti.
- Bilangan percubaan semula pesanan: Pesanan yang tidak berjaya akan membatalkan pesanan, dan pesanan semula akan cuba untuk berdagang, parameter ini digunakan untuk mengehadkan jumlah percubaan semula maksimum.
- Interval tinjauan rangkaian ((ms): hanya sah untuk protokol REST, mengawal selang permintaan rangkaian, mengelakkan permintaan terlalu kerap, melebihi had bursa.
- Tempoh penyegerakan akaun (dalam detik): tempoh masa untuk penyegerakan data akaun.
- Masa sinkronisasi kedudukan selepas pembukaan kedudukan (((ms): hanya untuk beberapa pertukaran yang berulang pembukaan kedudukan yang disebabkan oleh kelewatan data, masa sinkronisasi yang lebih besar dapat mengurangkan masalah seperti itu.
- Ganda Leverage: Tetapkan Ganda Leverage.
Perdagangan tunai, tetapan lain
- Jumlah transaksi satu tangan: jumlah transaksi satu tangan secara lalai, hanya berlaku untuk barangan tunai.
- Jumlah minimum transaksi: jumlah minimum transaksi.
- Ketepatan harga mata wang: ketepatan harga, iaitu angka kecil harga.
- Ketepatan jenis dagangan: ketepatan pesanan seterusnya, iaitu digit kecil pesanan seterusnya.
- Bayaran: Untuk mengira beberapa data berdasarkan tetapan ini, 0.002 menunjukkan 2 per seribu.
- Jarak statistik kerugian: Hanya digunakan untuk menunjukkan statistik kerugian di cakera.
- Kegagalan cuba semula ((ms): selang cuba semula apabila permintaan rangkaian gagal.
- Penggunaan ejen: hanya sah untuk REST
- Hiding common network errors: Hiding common error logs in the log area.
- Alamat pangkalan suis: hanya sah untuk protokol REST.
- Pemberitahuan push: Pelancaran mesej ke peti mel dan sebagainya.
Buat pesanan
Pembukaan Kedai
pine
strategy(title = "open long example", pyramiding = 3) // pyramiding 允许的同方向下单的次数
strategy.entry("long1", strategy.long, 0.01) // 市价开多仓,指定分组标签为long1
strategy.entry("long2", strategy.long, 0.02, when = close > ta.ema(close, 10)) // 条件触发,执行下单,市价开多仓
strategy.entry("long3", strategy.long, 0.03, limit = 30000) // 指定(较低的)价格,计划下买单订单,等待成交开仓,限价开仓
Kedudukan rata
pine
strategy(title = "close long example", pyramiding = 2) // pyramiding 允许的同方向下单的次数
strategy.entry("long1", strategy.long, 0.1) // 市价开多仓,指定分组标签为long1
strategy.entry("long2", strategy.long, 0.1) // 市价开多仓,指定分组标签为long2
strategy.close("long1", when = strategy.position_size > 0.1, qty_percent = 50, comment = "close buy entry for 50%") // 平仓,指定平掉分组标签为long1的仓位的50%持仓
strategy.close("long2", when = strategy.position_size > 0.1, qty_percent = 80, comment = "close buy entry for 80%") // 平仓,指定平掉分组标签为long2的仓位的80%持仓
Mekanisme perdagangan
Mekanisme pegangan dalam bahasa PINE adalah sama seperti pegangan unidirectional. Sebagai contoh, apabila anda memegang kedudukan dalam arah yang berlainan, jika anda mempunyai pesanan untuk menjual operasi, pelan, dan sebagainya, maka anda akan melakukan pelaksanaan perintah yang bertentangan dengan arah pegangan.
Borang rancangan
Apabila menggunakan arahan pesanan, apabila tidak ditetapkan sebarang harga, harga pasaran secara lalai. Selain harga pasaran, anda juga boleh membuat pesanan melalui senarai rancangan, tetapi tidak akan segera melakukan pesanan.Rekod semulaMaklumat status masa ((iaitu tetingkap status semasa strategi berjalan) dilihat dalam tab "Pelan pesanan" di bahagian halaman. Sistem hanya akan benar-benar memesan apabila pasaran memenuhi syarat harga masa nyata yang mencetuskan satu-satu rancangan ini. Oleh itu, pesanan ini berada dalam keadaan yang agak kecil pada harga transaksi adalah keadaan biasa.strategy.entryKita boleh menetapkan fungsi yang kita mahu.limit、stopParameter
var isTrade = false
if not barstate.ishistory and not isTrade
isTrade := true
strategy.entry("test 1", strategy.long, 0.1, stop=close*1.3, comment="test 1 order") // stop
strategy.entry("test 2", strategy.long, 0.2, limit=close*0.7, comment="test 2 order") // limit
strategy.entry("test 3", strategy.short, 0.3, stop=close*0.6, limit=close*1.4, comment="test 3 order") // stop-limit
-
Pesanan had
Tetapkan harga terhad untuk pesanan, apabila pesanan adalah pembelian (iaitu
directionParameternya ialahstrategy.long), hanya apabila harga pasaran semasa lebih rendah daripada harga tersebut, pesanan akan dicetuskan.
Apabila pesanan adalah untuk dijual (iaitudirectionParameternya ialahstrategy.short), hanya apabila harga pasaran semasa lebih tinggi daripada harga tersebut, pesanan akan dicetuskan. -
Perintah berhenti
Tetapkan harga hentian pesanan, apabila pesanan untuk membeli, pesanan akan dicetuskan hanya jika harga pasaran semasa lebih tinggi daripada harga tersebut.
Apabila pesanan adalah untuk menjual, pesanan hanya akan dicetuskan apabila harga pasaran semasa lebih rendah daripada harga tersebut. -
pesanan berhenti-batas
Ia boleh diletakkan pada masa yang sama
limit、stopParameter, pesanan akan dicetuskan pada harga pertama yang memenuhi syarat.
Peratusan hak dan kepentingan
pine
//@version=5
strategy("Percent of Equity Order", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// 简单的均线交叉策略
longCondition = ta.crossover(ta.sma(close, 14), ta.sma(close, 28))
shortCondition = ta.crossunder(ta.sma(close, 14), ta.sma(close, 28))
// 如果均线交叉条件满足,则买入或卖出
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)
Tentukandefault_qty_type=strategy.percent_of_equitySelepas, tetapandefault_qty_valueSebagai peratusan ((0 ~ 100), 1 ialah 1%. Jumlah pesanan berdasarkan jumlah mata wang dalam akaun. Sebagai contoh: akaun semasa mempunyai 10000 USDT, menetapkan pesanan 1%, iaitu menggunakan pesanan pesanan 100 USDT (berdasarkan harga semasa semasa semasa dijual).
Pernyataan, kata kunci struktur logik
var
var adalah kata kunci untuk variable alokasi dan inisialisasi sekali pakai.
Secara amnya, sintaks penugasan pemboleh ubah yang tidak mengandungi kata kunci var menyebabkan nilai pemboleh ubah ditutup setiap kali data diperbaharui. Sebaliknya, apabila menggunakan kata kunci var untuk menugaskan pemboleh ubah, walaupun data diperbaharui, mereka masih boleh menyimpan keadaan yang sama dan hanya mengubahnya jika syarat dalam if-expressions dipenuhi.
var variable_name = expression
Terangkan:
variable_name- apa-apa nama pemboleh ubah pengguna yang dibenarkan dalam Pine Script ((boleh mengandungi huruf Latin, nombor dan garis bawah dalam huruf besar dan kecil))_), tetapi tidak boleh bermula dengan nombor) 。expression- Sebarang ungkapan aritmatika, seperti definisi pembolehubah biasa.
Contoh
pine
// Var keyword example
var a = close
var b = 0.0
var c = 0.0
var green_bars_count = 0
if close > open
var x = close
b := x
green_bars_count := green_bars_count + 1
if green_bars_count >= 10
var y = close
c := y
plot(a, title = "a")
plot(b, title = "b")
plot(c, title = "c")
Variabel 'a' mengekalkan harga penutupan pada baris pertama setiap baris dalam siri.
Peubah 'b' mengekalkan harga penutupan batang harga aluminium hijau pertama dalam siri.
Variable 'c' mengekalkan harga penutupan untuk ketupat hijau ketupat kesepuluh dalam siri.
Di FMZ, ia dibahagikan kepada model harga masa nyata, model harga penutupan, dan model harga penutupan.var、varipKami menggunakan kod berikut untuk menguji variabel yang diisytiharkan:
pine
strategy("test pine", "test 1", true)
// 测试 var varip
var i = 0
varip ii = 0
// 将策略逻辑每轮改变的i、ii打印在图上
plotchar(true, title="ii", char=str.tostring(ii), location=location.abovebar, color=color.red)
plotchar(true, title="i", char=str.tostring(i), location=location.belowbar, color=color.green)
// 每轮逻辑执行都给i、ii递增1
if true
i := i + 1
ii := ii + 1
-
Model harga masa nyata
Kode ujian di atas dibahagikan kepada dua peringkat semasa pelaksanaan: 1) K-baris sejarah; 2) K-baris sebenar; 3) K-baris model masa nyata; 4) K-baris sejarah.var、varipVariabel i, ii yang diisytiharkan akan melakukan operasi tambahan setiap kali kod dasar dijalankan (keranaif trueOleh itu, anda dapat melihat bahawa setiap nombor yang ditunjukkan pada bar K hasil pengesanan kembali adalah 1 tambahan. Apabila fasa K sejarah berakhir, fasa K sebenar bermula.var、varipVariabel yang diisytiharkan mula berubah. Oleh kerana ia adalah model harga masa nyata, setiap perubahan harga dalam K-bar akan menjalankan kod strategi sekali, dan setiap perubahan harga dalam K-bar akan menghasilkan perubahan yang berbeza.i := i + 1danii := ii + 1Semua dijalankan sekali. Perbezaan ialah ii diubah setiap kali. Walaupun i juga diubah setiap kali, tetapi pada pusingan seterusnya pelaksanaan logik strategi akan kembali ke nilai sebelumnya, sehingga nilai i yang ditetapkan tidak dikemas kini sehingga Kbar semasa habis ((iaitu, pada pusingan seterusnya pelaksanaan logik strategi tidak akan kembali ke nilai sebelumnya). Oleh itu, dapat dilihat bahawa pembolehubah i masih meningkat setiap BAR 1. Tetapi pembolehubah ii bertambah beberapa kali setiap BAR. -
Model Harga Penutupan
Oleh kerana model harga penutupan adalah satu logik strategi yang dijalankan apabila setiap BAR K line telah selesai. Oleh itu, dalam model harga penutupan, fasa K-line sejarah dan fasa K-line masa nyata,var、varipVariabel yang diisytiharkan menunjukkan peningkatan yang sama dalam contoh di atas, iaitu peningkatan 1 BAR bagi setiap baris K.
varip
varip ((var intrabar persist) adalah kata kunci yang digunakan untuk mengalokasikan dan menginisialisasi pembolehubah sekali gus. Ia serupa dengan kata kunci var, tetapi pembolehubah yang menggunakan varip menyatakan mengekalkan nilainya di antara kemas kini K-line dalam masa nyata.
varip variable_name = expression
Terangkan:
variable_name- Sebarang nama pemboleh ubah pengguna yang dibenarkan dalam skrip Pine boleh mengandungi huruf Latin, nombor dan garis bawah dalam huruf besar dan kecil_), tetapi tidak boleh bermula dengan nombor) 。expression- Sebarang ungkapan aritmatika, seperti apabila menentukan pembolehubah biasa. Pada baris K pertama, ungkapan hanya dikira sekali dan ia diperuntukkan kepada pembolehubah sekali.
Contoh
pine
// varip
varip int v = -1
v := v + 1
plot(v)
Dengan var, peta akan mengembalikan nilai bar_index. Dengan varp, tindakan yang sama berlaku pada garis K sejarah, tetapi pada garis K masa nyata, peta akan mengembalikan nilai yang meningkat satu untuk setiap tick.
Nota
Hanya boleh digunakan dengan jenis yang mudah, seperti float, int, bool, string, dan array jenis ini.
true
Menunjukkan nilai bagi jenis Boolean, atau apabila digunakan dalam ungkapanPerbandinganatauLogikNilai yang boleh dikira oleh operator.
Nota
Lihat jugaPerbandinganOperator danLogikKeterangan pengendali
Lihat juga
bool
false
Menunjukkan nilai pembolehubah jenis Boolean, dan hasil operasi perbandingan, operasi logik.
Nota
Lihat jugaPerbandinganOperator danLogikKeterangan pengendali
Lihat juga
bool
if
Perkataan if mentakrifkan blok perkataan yang mesti dilaksanakan apabila syarat ungkapan dipenuhi. Bahasa skrip Pine edisi ke-4 membolehkan anda menggunakan sintaks <unk>else if<unk>.
Kod umum berasal dari:
var_declarationX = if condition
var_decl_then0
var_decl_then1
...
var_decl_thenN
return_expression_then
else if [optional block]
var_decl_else0
var_decl_else1
...
var_decl_elseN
return_expression_else
else
var_decl_else0
var_decl_else1
...
var_decl_elseN
return_expression_else
Nota
var_declarationX- Variabel ini mengambil nilai if
condition- Jika syarat adalah true, gunakan blok pernyataanthenLogik dalamvar_decl_then0,var_decl_then1Jika syaratnya adalah false, gunakan blok kalimat.else ifatauelseLogik dalamvar_decl_else0,var_decl_else1Antara lain:
return_expression_then , return_expression_else- ungkapan terakhir dalam modul atau ungkapan dari blokelse akan mengembalikan nilai akhir ungkapan. Jika pengisytiharan pembolehubah berada di akhir, nilai akan menjadi nilai hasil.
Jenis nilai yang dikembalikan oleh pernyataan if bergantung kepadareturn_expression_thendanreturn_expression_elseJenis-jenis tersebut harus bersesuaian apabila dijalankan pada TradingView: apabila anda mempunyai nilai senar dalam blokelse, tidak mungkin untuk mengembalikan nilai integer dari blok then. Apabila dijalankan pada FMZ, contoh berikut tidak akan tersilap, apabila nilai y diambil "open", nilai pada plot adalah n/a.
Contoh
pine
// This code compiles
x = if close > open
close
else
open
// This code doesn’t compile by trading view
// y = if close > open
// close
// else
// "open"
plot(x)
Boleh dikurangkanelseDalam kes ini, jika syaratnya adalah false, maka variabel var_declarationX akan diberikan satu nilai tunjangan yang kosong (na, false atau <unk>):
Contoh
pine
// if
x = if close > open
close
// If current close > current open, then x = close.
// Otherwise the x = na.
plot(x)
Anda boleh menggunakan lebih daripada satu blok <unk>else if<unk> atau tidak sama sekali. <unk>then<unk>, <unk>else if<unk>, <unk>else<unk> blok dipindahkan empat ruang kosong:
Contoh
pine
// if
x = if open > close
5
else if high > low
close
else
open
plot(x)
boleh abaikanifNilai hasil pernyataan ((<unk>var_declarationX=<unk> boleh diabaikan) <unk>. Ia mungkin berguna jika anda memerlukan kesan sampingan dari ungkapan, seperti dalam perdagangan strategi:
Contoh
pine
if (ta.crossover(high, low))
strategy.entry("BBandLE", strategy.long, stop=low)
else
strategy.cancel(id="BBandLE")
If boleh digabungkan:
Contoh
pine
// if
float x = na
if close > open
if close > close[1]
x := close
else
x := close[1]
else
x := open
plot(x)
for
Struktur 'for' membolehkan pelaksanaan berganda:
[var_declaration =] for counter = from_num to to_num [by step_num]
statements | continue | break
return_expression
var_declaration- Satu deklarasi pembolehubah yang boleh dipilih, yang akan ditugaskan sebagai nilai return_expression untuk pusingan balik.
counter- Variabel yang menyimpan nilai penghitung pusingan, naik / turun 1 atau step_num nilai pada setiap iterasi pusingan.
from_num- Nilai permulaan pengira. Percuma menggunakan nilai terhad / ungkapan int / float.
to_num- Nilai akhir meter. Apabila meter lebih besar daripada to_num (atau lebih kecil daripada to_num dalam keadaan from_num > to_num), kitaran dipotong. Penggunaan nilai terendah / ungkapan int / float berturut-turut dibenarkan, tetapi mereka hanya dinilai pada iterasi pertama kitaran.
step_num- Penghitung kenaikan / penurunan. Ia adalah pilihan. Nilai lalai adalah + 1 atau -1, bergantung kepada yang terbesar dari dari_num atau to_num. Apabila menggunakan nilai, penghitung juga akan meningkat / menurun berdasarkan yang terbesar dari dari_num atau to_num, jadi tanda + / - dari step_num adalah pilihan.
statements | continue | break- Sebilangan besar perkataan, atau kata kunci 'terus' atau 'pecah', dikurangkan menjadi 4 ruang atau satu tab.
return_expression- Nilai pulangan gelung, jika ada, diberikan kepada pembolehubah dalam var_declaration. Jika gelung keluar kerana kata kunci <unk>continue<unk> atau <unk>break<unk>, nilai pulangan gelung adalah nilai pulangan pembolehubah terakhir yang diberikan sebelum gelung keluar.
continue- Kata kunci yang hanya boleh digunakan dalam pusingan balik. Ia menyebabkan iterasi pusingan balik berikutnya dilaksanakan.
break- Kata kunci untuk keluar daripada lingkaran.
Contoh
pine
// Here, we count the quantity of bars in a given 'lookback' length which closed above the current bar's close
qtyOfHigherCloses(lookback) =>
int result = 0
for i = 1 to lookback
if close[i] > close
result += 1
result
plot(qtyOfHigherCloses(14))
for...in
for...inStruktur membolehkan pelaksanaan berulang pelbagai pernyataan untuk setiap elemen dalam array. Ia boleh digunakan dengan mana-mana argumen:array_element, atau digunakan bersama dengan dua argumen:[index, array_element]Bentuk kedua tidak menjejaskan fungsi kitaran. Ia mengesan indeks iterasi semasa dalam pembolehubah pertama dalam subset.
[var_declaration =] for array_element in array_id
statements | continue | break
return_expression
[var_declaration =] for [index, array_element] in array_id
statements | continue | break
return_expression
var_declaration- satu pilihan pengisytiharan pembolehubah, yang akan diberikan kepada kitaranreturn_expressionNilai
index- Variabel pilihan yang mengesan indeks perkalian semasa. Indeks bermula dari 0. Variabel tidak berubah dalam badan pusingan. Apabila digunakan, ia mesti termasuk dalam satu yang juga termasuk.array_elementDalam subgroups:
array_element- mengandungi pembolehubah bagi setiap elemen susunan berturut-turut yang akan diuruskan dalam kitaran. Pembolehubah tersebut tidak berubah dalam kitaran.
array_id- Array ID untuk iterasi lingkaran.
statements | continue | break- Sebilangan besar perkataan, atau kata kunci 'terus' atau 'pecah', dikurangkan menjadi 4 ruang atau satu tab.
return_expression- Nilai pulangan pusingan diberikan kepadavar_declarationJika loop keluar kerana kata kunci 'continue' atau 'break', maka nilai yang dikembalikan untuk loop adalah variabel yang diberi nilai terakhir sebelum loop keluar.
continue- Kata kunci yang hanya boleh digunakan dalam pusingan balik. Ia menyebabkan iterasi pusingan balik berikutnya dilaksanakan.
break- Kata kunci untuk keluar daripada lingkaran.
Mengubah unsur atau saiz array dalam loop dibenarkan.
Di sini, kita menggunakanfor...inBentuk parameter tunggal untuk menentukan berapa banyak nilai OHLC bagi setiap baris K yang lebih besar daripada nilai SMA 'close':
Contoh
pine
// Here we determine on each bar how many of the bar's OHLC values are greater than the SMA of 'close' values
float[] ohlcValues = array.from(open, high, low, close)
qtyGreaterThan(value, array) =>
int result = 0
for currentElement in array
if currentElement > value
result += 1
result
plot(qtyGreaterThan(ta.sma(close, 20), ohlcValues))
Di sini, kita menggunakan dua bentuk parameter for...in untuk mengekspresikanisPosArray yang ditetapkan sebagai trueApabila mereka berada di dalam kita,valuesArrayNombor yang sesuai dalam array adalah masa yang betul:
Contoh
pine
// for...in
var valuesArray = array.from(4, -8, 11, 78, -16, 34, 7, 99, 0, 55)
var isPos = array.new_bool(10, false)
for [index, value] in valuesArray
if value > 0
array.set(isPos, index, true)
if barstate.islastconfirmedhistory
runtime.log(str.tostring(isPos))
Lihat juga
for while array.sum array.min array.max
while
whilePerkataan ini membenarkan pengulangan bersyarat bagi blok kod tempatan.
variable_declaration = while boolean_expression
...
continue
...
break
...
return_expression
Terangkan:
variable_declaration- Pengisytiharan pembolehubah pilihan.return expressionAnda boleh memberikan nilai inisialisasi kepada pembolehubah ini.
boolean_expression- Jika benar, laksanakanwhileBlok tempatan untuk pernyataan. Jika false, maka dalamwhileSelepas ayat, lanjutkan dengan skrip.
continue - continueKata kunci menyebabkan kitaran bercabang ke iterasi seterusnya.
break - breakKata kunci menyebabkan kitaran berakhir.while"Saya tidak tahu apa-apa", kata beliau.
return_expression- Disediakan.whileGaris pilihan yang dikembalikan oleh pernyataan.
Contoh
pine
// This is a simple example of calculating a factorial using a while loop.
int i_n = input.int(10, "Factorial Size", minval=0)
int counter = i_n
int factorial = 1
while counter > 0
factorial := factorial * counter
counter := counter - 1
plot(factorial)
Nota
PermulaanwhileBlok kod tempatan selepas baris mesti disusun dalam empat ruang atau satu tanda pengukur. Untuk menamatkan.whilePeredaran.whileEkspresi Boolean seterusnya mesti berubah menjadi false, atau ia mesti dijalankan.break。
switch
Operator switch memindahkan kawalan ke salah satu daripada beberapa pernyataan berdasarkan syarat dan nilai ungkapan.
[variable_declaration = ] switch expression
value1 => local_block
value2 => local_block
...
=> default_local_block
[variable_declaration = ] switch
boolean_expression1 => local_block
boolean_expression2 => local_block
...
=> default_local_block
Switch dengan ungkapan:
Contoh
pine
// Switch using an expression
string i_maType = input.string("EMA", "MA type", options = ["EMA", "SMA", "RMA", "WMA"])
float ma = switch i_maType
"EMA" => ta.ema(close, 10)
"SMA" => ta.sma(close, 10)
"RMA" => ta.rma(close, 10)
// Default used when the three first cases do not match.
=> ta.wma(close, 10)
plot(ma)
Switch tanpa ungkapan:
Contoh
pine
strategy("Switch without an expression", overlay = true)
bool longCondition = ta.crossover( ta.sma(close, 14), ta.sma(close, 28))
bool shortCondition = ta.crossunder(ta.sma(close, 14), ta.sma(close, 28))
switch
longCondition => strategy.entry("Long ID", strategy.long)
shortCondition => strategy.entry("Short ID", strategy.short)
Nilai yang dikembalikan
Nilai ungkapan terakhir dalam blok pernyataan tempatan yang dilaksanakan.
Nota
Hanya boleh dijalankanlocal_blockcontoh ataudefault_local_blockSatu.default_local_blockhanya dengan=>Tanda-tanda diperkenalkan bersama-sama, dan hanya dilaksanakan jika blok sebelumnya tidak dilaksanakan. JikaswitchHasil pernyataan yang diberikan kepada satu pembolehubah dan tidak ditentukandefault_local_blockJika tidak dilaksanakan,local_block, maka ia akan kembali kepadana<unk>switchApabila hasil daripada pernyataan diberikan kepada pembolehubah, semualocal_blockInstan mesti mengembalikan nilai yang sama.
series
series adalah kata kunci untuk menunjukkan jenis siri data.seriesKata kunci biasanya tidak diperlukan.
Pengendali
=
Digunakan untuk memberi nilai kepada pemboleh ubah, tetapi hanya apabila menyatakan pemboleh ubah ((untuk penggunaan pertama) <unk>).
:=
Operator penyerahan nilai, memberikan nilai kepada pembolehubah di sebelah kiri. Digunakan untuk penyerahan nilai kepada pembolehubah yang telah diisytiharkan sebelumnya.
!=
Tidak sama dengan. Ia boleh digunakan untuk sebarang jenis ungkapan.
expr1 != expr2
Nilai yang dikembalikan
Nilai Bur, atau satu siri nilai Bur.
%
Bilangan modular ((bilangan bulat tambahan) <unk>. Digunakan untuk ungkapan nilai berangka <unk>.
expr1 % expr2
Nilai yang dikembalikan
Bilangan bulat atau nilai titik terapung, atau satu siri nilai ≠
Nota
Dalam skrip Pine, penjual akan dipotong apabila jumlah keseluruhan yang tersisa dikira. Iaitu, mengelilingi ke nilai mutlak terkecil. Nilai yang diperoleh akan mempunyai simbol yang sama dengan dividen.
Contoh: -1 % 9 = -1 - 9 * truncate ((-1/9) = -1 - 9 * truncate ((-0.111) = -1 - 9 * 0 = -1。
%=
Tugas modular. Digunakan untuk ungkapan berangka.
expr1 %= expr2
Contoh
pine
// Equals to expr1 = expr1 % expr2.
a = 3
b = 3
a %= b
// Result: a = 0.
plot(a)
Nilai yang dikembalikan
Bilangan bulat atau nilai titik terapung, atau satu siri nilai ≠
*
Perkalian. Digunakan untuk ungkapan nombor.
expr1 * expr2
Nilai yang dikembalikan
Bilangan bulat atau nilai titik terapung, atau satu siri nilai ≠
*=
Perkalian ditetapkan. Digunakan untuk ungkapan nilai nombor.
expr1 *= expr2
Contoh
pine
// Equals to expr1 = expr1 * expr2.
a = 2
b = 3
a *= b
// Result: a = 6.
plot(a)
Nilai yang dikembalikan
Bilangan bulat atau nilai titik terapung, atau satu siri nilai ≠
+
Tambah atau satuan positif ≠ berlaku untuk ungkapan nilai atau rentetan ≠
expr1 + expr2
+ expr
Nilai yang dikembalikan
String binari+Kembalikan gabungan expr1 dan expr2
Nombor mengembalikan nilai nombor bulat atau floating point, atau satu siri nilai:
Binari '+' kembali kepada expr1 tambah expr2。
Yuan + <unk> mengembalikan expr ((tidak menambah apa-apa kepada simetri operator yuan) <unk>
Nota
Anda boleh menggunakan pengendali aritmatika dengan nombor dan juga rangkaian pembolehubah. Dalam kes rangkaian, pengendali digunakan untuk elemen.
+=
Penambahan ditetapkan. Digunakan untuk ungkapan atau rentetan nombor.
expr1 += expr2
Contoh
pine
// Equals to expr1 = expr1 + expr2.
a = 2
b = 3
a += b
// Result: a = 5.
plot(a)
Nilai yang dikembalikan
Untuk string, kembalikan sambungan expr1 dan expr2. Untuk nombor, kembalikan nilai integer atau floating point, atau satu siri nilai.
Nota
Anda boleh menggunakan pengendali aritmatika dengan nombor dan juga rangkaian pembolehubah. Dalam kes rangkaian, pengendali digunakan untuk elemen.
-
Pengurangan atau satuan negatif. Digunakan untuk ungkapan berangka.
expr1 - expr2
- expr
Nilai yang dikembalikan
Mengembalikan nombor bulat atau nilai titik terapung, atau satu siri nilai:
Binari '+' kembali kepada expr1 tolak daripada expr2。
satuan-Mengembalikan ungkapan negatif untuk express.
Nota
Anda boleh menggunakan pengendali aritmatika dengan nombor dan juga rangkaian pembolehubah. Dalam kes rangkaian, pengendali digunakan untuk elemen.
-=
Peruntukan pengurangan. Digunakan untuk ungkapan nilai.
expr1 -= expr2
Contoh
pine
// Equals to expr1 = expr1 - expr2.
a = 2
b = 3
a -= b
// Result: a = -1.
plot(a)
Nilai yang dikembalikan
Bilangan bulat atau nilai titik terapung, atau satu siri nilai ≠
/
Pengecualian: Digunakan untuk ungkapan berangka.
expr1 / expr2
Nilai yang dikembalikan
Bilangan bulat atau nilai titik terapung, atau satu siri nilai ≠
/=
Tugas penghapusan: Digunakan untuk ungkapan nilai.
expr1 /= expr2
Contoh
pine
// Equals to expr1 = expr1 / expr2.
a = 3
b = 3
a /= b
// Result: a = 1.
plot(a)
Nilai yang dikembalikan
Bilangan bulat atau nilai titik terapung, atau satu siri nilai ≠
<
Kurang daripada ≠ berlaku untuk ungkapan nilai ≠
expr1 < expr2
Nilai yang dikembalikan
Nilai Bur, atau satu siri nilai Bur.
<=
Kurang daripada atau sama dengan. Digunakan untuk ungkapan nilai.
expr1 <= expr2
Nilai yang dikembalikan
Nilai Bur, atau satu siri nilai Bur.
==
Sama dengan . . . berlaku untuk sebarang jenis ungkapan . . .
expr1 == expr2
Nilai yang dikembalikan
Nilai Bur, atau satu siri nilai Bur.
=>
Operator '=>' digunakan untuk menyatakan fungsi yang ditakrifkan pengguna danswitchDalam ayat.
Sintaks pengisytiharan fungsi adalah:
<identifier>([<parameter_name>[=<default_value>]], ...) =>
<local_block>
<function_result>
Satu.<local_block>0 atau lebih perkataan Pine.
<function_result>adalah satu pembolehubah, satu ungkapan atau satu subset.
Contoh
pine
// single-line function
f1(x, y) => x + y
// multi-line function
f2(x, y) =>
sum = x + y
sumChange = ta.change(sum, 10)
// Function automatically returns the last expression used in it
plot(f1(30, 8) + f2(1, 3))
Nota
Anda boleh mendapatkan maklumat lanjut mengenai fungsi yang ditakrifkan oleh pengguna di halaman fungsi pengisytiharan dan perpustakaan skrip dalam buku panduan pengguna.
>
Lebih besar daripada ≠ berlaku untuk ungkapan nilai ≠
expr1 > expr2
Nilai yang dikembalikan
Nilai Bur, atau satu siri nilai Bur.
>=
Lebih besar daripada atau sama dengan. Digunakan untuk ungkapan nilai.
expr1 >= expr2
Nilai yang dikembalikan
Nilai Bur, atau satu siri nilai Bur.
?:
Pengendali Syarat Trivial <unk>
expr1 ? expr2 : expr3
Contoh
pine
// Draw circles at the bars where open crosses close
s2 = ta.cross(open, close) ? math.avg(open,close) : na
plot(s2, style=plot.style_circles, linewidth=2, color=color.red)
// Combination of ?: operators for 'switch'-like logic
c = timeframe.isintraday ? color.red : timeframe.isdaily ? color.green : timeframe.isweekly ? color.blue : color.gray
plot(hl2, color=c)
Nilai yang dikembalikan
Jika expr1 dinilai sebagai true, maka expr2, jika tidak, maka expr3。 Nilai sifar ((0 dan NaN+, Infinity,-Infinity) dianggap sebagai false, dan nilai lain adalah true。
Nota
Jika anda tidak perlu, sila gunakan na sebagai cawangan daripada naelse.
Anda boleh menggunakan dua atau lebih?: operator untuk mewujudkan pernyataan yang serupa dengan kata laluan switch () (lihat contoh di atas).
Anda boleh menggunakan pengendali aritmatika dengan nombor dan juga rangkaian pembolehubah. Dalam kes rangkaian, pengendali digunakan untuk elemen.
Lihat juga
na
[]
Rangkaian subtitle <unk> menyediakan akses kepada nilai-nilai terdahulu dalam siri expr1 <unk> expr2 adalah bilangan k baris yang lalu, mestilah nilai-nilai <unk> float akan dibulatkan ke bawah <unk>
expr1[expr2]
Contoh
pine
// [] can be used to "save" variable value between bars
a = 0.0 // declare `a`
a := a[1] // immediately set current value to the same as previous. `na` in the beginning of history
if high == low // if some condition - change `a` value to another
a := low
plot(a)
Nilai yang dikembalikan
Satu siri nilai.
Lihat juga
math.floor
and
Logik AND ≠ berlaku untuk ungkapan Boolean ≠
expr1 and expr2
Nilai yang dikembalikan
Nilai Bur, atau satu siri nilai Bur.
or
Logik OR。 berlaku untuk ekspresi Boolean。
expr1 or expr2
Nilai yang dikembalikan
Nilai Bur, atau satu siri nilai Bur.
not
Logik berbalikbalik ((NOT) <unk>. Digunakan untuk ungkapan Boolean <unk>.
not expr1
Nilai yang dikembalikan
Nilai Bur, atau satu siri nilai Bur.
Kata kunci jenis data
bool
Kata kunci yang digunakan untuk menyatakan variabel atau parameter secara eksplisit.
Contoh
pine
// bool
bool b = true // Same as `b = true`
b := na
plot(b ? open : close)
Nota
Mengutip jenis secara jelas dalam deklarasi pembolehubah adalah pilihan, kecuali ia dimulakan dengan na. Untuk maklumat lanjut mengenai jenis Pin, lihat halaman manual pengguna sistem jenis.
Lihat juga
var varip int float color string true false
int
Kata kunci yang digunakan untuk menyatakan variabel atau parameter secara eksplisit dengan jenis int () atau integer ().
Contoh
pine
// int
int i = 14 // Same as `i = 14`
i := na
plot(i)
Nota
Mengutip jenis secara jelas dalam deklarasi pembolehubah adalah pilihan, kecuali ia dimulakan dengan na. Untuk maklumat lanjut mengenai jenis Pin, lihat halaman manual pengguna sistem jenis.
Lihat juga
var varip float bool color string
float
Kata kunci yang digunakan untuk menyatakan variabel atau parameter secara eksplisit.
Contoh
pine
// float
float f = 3.14 // Same as `f = 3.14`
f := na
plot(f)
Nota
Jenis yang dinyatakan dengan jelas dalam deklarasi pembolehubah adalah pilihan, kecuali ia diinisialisasi dengan na <unk>
Lihat juga
var varip int bool color string
string
Kata kunci "string" untuk menyatakan parameter atau pembolehubah secara eksplisit.
Contoh
pine
// string
string s = "Hello World!" // Same as `s = "Hello world!"`
// string s = na // same as ""
plot(na, title=s)
Nota
Mengutip jenis secara jelas dalam deklarasi pembolehubah adalah pilihan, kecuali ia dimulakan dengan na. Untuk maklumat lanjut mengenai jenis Pin, lihat halaman manual pengguna sistem jenis.
Lihat juga
var varip int float bool str.tostring str.format
color
Kata kunci jenis "color" yang digunakan untuk menyatakan variabel atau parameter secara eksplisit.
Contoh
pine
// color
color textColor = color.green
if barstate.islastconfirmedhistory
runtime.log("test", textcolor = textColor)
Nota
Huruf warna mempunyai format berikut: #RRGGBB atau #RRGGBBAA. Pasangan huruf mewakili nilai enam belas digit dari 00 ke FF (((0 ke 255 dalam nombor desimal), di mana pasangan RR, GG dan BB adalah nilai peratusan warna merah, hijau dan biru. AA adalah peratusan warna transparansi ((atau alfa), di mana 00 tidak dapat dilihat, FF tidak transparan. Apabila tidak menyediakan pasangan AA, FF digunakan.
Mengutip jenis secara jelas dalam deklarasi pembolehubah adalah pilihan, kecuali ia dimulakan dengan na. Untuk maklumat lanjut mengenai jenis Pin, lihat halaman manual pengguna sistem jenis.
Lihat juga
var varip int float string color.rgb color.new
array
Kata kunci untuk jenis matriks matriks matriks yang digunakan untuk menyatakan pembolehubah atau parameter secara eksplisit. Boleh digunakanarray.new<type>,array.fromFungsi mencipta objek array ((atau ID) }}.
Contoh
pine
// array
array<float> a = na
a := array.new<float>(1, close)
plot(array.get(a, 0))
Nota
Array object selalu berupa array array.
Lihat juga
var array.new array.from
Objects
Objek Objek bahasa PINE adalah contoh jenis yang ditentukan oleh pengguna ((UDT), yang boleh difahami sebagai kelas tanpa kaedah, yang membolehkan pengguna membuat jenis tersuai dalam strategi untuk mengatur nilai yang berbeza dalam satu entiti.
Tentukan jenis
Mari kita tentukan jenis order untuk menyimpan maklumat pesanan:
pine
type order
float price
float amount
string symbol
- guna
typeJenis pengisytiharan kata kunci - Nama jenis selepas kata kunci type.
- Baris pertama type mentakrifkan nama jenis, kemudian kurung ke dalam empat ruang untuk mentakrifkan bidang yang mengandungi jenis tersebut.
- Setiap medan perlu menyatakan jenis datanya, seperti int, float, string.
Cipta objek
Menggunakan jenis baik yang diisytiharkan, panggilannew()Objek penciptaan fungsi:
pine
order1 = order.new()
pine
order1 = order.new(100, 0.1, "BTC_USDT")
pine
order1 = order.new(amount = 0.1, symbol = "BTC_USDT", price = 100)
Anda juga boleh membuat objek kosong:
pine
order order1 = na
Berikut adalah contoh sebenar:
pine
type order
float price
float amount
string symbol
if strategy.position_size == 0 and open > close
strategy.entry("long", strategy.long, 1)
order1 = order.new(strategy.opentrades.entry_price(strategy.opentrades - 1), strategy.opentrades.size(strategy.opentrades - 1), syminfo.ticker)
// runtime.log(order1) // 输出 {"data":{"price":46002.8,"amount":1,"symbol":"swap"},"_meta":0,"_type":"order"}
Contoh ayat ini:
pine
order1 = order.new(strategy.opentrades.entry_price(strategy.opentrades - 1), strategy.opentrades.size(strategy.opentrades - 1), syminfo.ticker)
Ia juga boleh ditulis dalam bentuk berikut:
pine
order order1 = na
order1 := order.new(strategy.opentrades.entry_price(strategy.opentrades - 1), strategy.opentrades.size(strategy.opentrades - 1), syminfo.ticker)
Jenis objek untuk penggunaan kata kunci var
pine
//@version=5
indicator("Objects using `var` demo")
//@type A custom type to hold index, price, and volume information.
type BarInfo
int index = bar_index
float price = close
float vol = volume
//@variable A `BarInfo` instance whose fields persist through all iterations, starting from the first bar.
var BarInfo firstBar = BarInfo.new()
//@variable A `BarInfo` instance declared on every bar.
BarInfo currentBar = BarInfo.new()
// Plot the `index` fields of both instances to compare the difference.
plot(firstBar.index, "firstBar")
plot(currentBar.index, "currentBar")
Apabila menggunakan var pengisytiharan kata kunci yang diberikan kepada variabel objek yang jenisnya ditentukan oleh pengguna, kata kunci itu secara automatik digunakan untuk semua bidang objek tersebut. Ini bermakna bahawa objek yang diisytiharkan dengan var kata kunci akan mengekalkan statusnya di antara setiap iterasi tanpa perlu menginisialisasi semula nilai bidangnya pada setiap iterasi.
- Objek firstBar diisytiharkan menggunakan kata kunci var, jadi bidangnya (index, price, vol) akan mengekalkan nilainya dalam setiap iterasi, bermula dari item pertama hingga item terakhir berakhir.
- Objek currentBar tidak menggunakan pengisytiharan kata kunci var, oleh itu bidangnya akan diinisialisasi semula pada setiap entri dan akan mempunyai objek baru pada setiap iterasi.
Dengan memetakan medan indeks dua objek, anda boleh membandingkan perbezaan di antara mereka. firstBar.index akan mengekalkan nilai yang ditetapkan sebelumnya dalam setiap iterasi, sementara currentBar.index akan diinisialisasi semula sebagai bar_index nilai item semasa dalam setiap iterasi.
Jenis objek untuk penggunaan kata kunci varip
pine
//@version=5
indicator("Objects using `varip` fields demo")
//@type A custom type that counts the bars and ticks in the script's execution.
type Counter
int bars = 0
varip int ticks = 0
//@variable A `Counter` object whose reference persists throughout all bars.
var Counter counter = Counter.new()
// Add 1 to the `bars` and `ticks` fields. The `ticks` field is not subject to rollback on unconfirmed bars.
counter.bars += 1
counter.ticks += 1
// Plot both fields for comparison.
plot(counter.bars, "Bar counter", color.blue, 3)
plot(counter.ticks, "Tick counter", color.purple, 3)
Dalam Pine, menggunakan kata kunci varip dapat menunjukkan bidang objek yang berterusan sepanjang pelaksanaan skrip, dan tidak berputar di dalam lajur yang tidak diiktiraf.
Dalam jenis pengisytiharan Counter, medan bars tidak menggunakan kata kunci varip, dan oleh itu akan berputar di dalam setiap lajur yang tidak disahkan. medan ticks menggunakan kata kunci varip, dan oleh itu ia tidak akan berputar di dalam lajur yang tidak disahkan.
Objek counter diisytiharkan menggunakan kata kunci var, oleh itu ia akan kekal sepanjang pelaksanaan skrip.
Dalam setiap iterasi, medan bars dan medan ticks akan ditambah 1. Bidang bars akan berputar di dalam setiap lajur yang tidak disahkan, manakala medan ticks tidak.
Akhirnya, dengan memetakan medan counter.bars dan counter.ticks, anda boleh membandingkan perbezaan di antara mereka. Nilai counter.bars akan diputar balik dalam setiap lajur yang tidak disahkan, sementara nilai counter.ticks akan terus meningkat sehingga akhir skrip dijalankan.
Ubah nilai medan
pine
type order
float price
float amount
string symbol
if strategy.position_size == 0 and open > close
strategy.entry("long", strategy.long, 1)
order1 = order.new(strategy.opentrades.entry_price(strategy.opentrades - 1), strategy.opentrades.size(strategy.opentrades - 1), syminfo.ticker)
if strategy.position_size != 0
runtime.log(order1)
order1.price := 999
order1.amount := 100
runtime.log(order1)
runtime.error("stop")
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
pine
type order
float price
float amount
string symbol
var array<order> arrOrder = na
arrOrder := array.new<order>()
order1 = order.new(99, 1, "BTC_USDT")
order2 = order.new(100, 2, "ETH_USDT")
array.push(arrOrder, order1)
array.push(arrOrder, order2)
runtime.log(arrOrder)
runtime.error("stop")
Objek yang disalin
Dalam Pine, objek diagihkan melalui rujukan. Apabila objek sedia ada diagihkan kepada pembolehubah baru, kedua-duanya merujuk kepada objek yang sama.
pine
//@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:
pine
//@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
pine
//@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:
pine
//@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:
pine
//@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:
pine
//@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:
pine
//@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.
pine
[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.
pine
//@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:
pine
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.
pine
// 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
pine
// 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 (365/12) 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
pine
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
pine
/*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:json{ "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:
sql
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
pine
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 <unk>expression <unk>. Kadar penukaran digunakan berdasarkan kadar pertukaran harian FX_IDC pada hari sebelumnya. <unk> 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
pine
// 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 sumberstr(series string) Rangkai kata yang ingin dicari.
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 sumberstr(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 sumberstr(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
pine
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
pine
// 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
pine
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 sumberregex(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<unk> mewakili ungkapan ralat <unk>\d<unk>。
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 sumberstr(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
pine
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 sumbertarget(series string) digantikan dengan stringreplacement(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 sumbertarget(series string) digantikan dengan stringreplacement(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 sumberseparator(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<unk>.
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 <unk>4<unk>。
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 <unk>true<unk> atau <unk>false<unk>.
Apabila x adalah na, fungsi kembali NaN<unk>.
color
color.new
Warna fungsi akan menetapkan ketelusan untuk warna yang diberikan.
color.new(color, transp)
Contoh
pine
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, <unk>simple<unk>, <unk>input<unk> atau <unk>series<unk>) 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
pine
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 255green(series int/float) warna hijau. Nilai yang mungkin adalah dari 0 hingga 255blue(series int/float) warna biru. Nilai yang mungkin ialah dari 0 hingga 255transp(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, <unk>simple<unk>, <unk>input<unk> atau <unk>series<unk>) 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
pine
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:close、hlc3Dan 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
pine
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
pine
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: [<type>...]) 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
pine
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
pine
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 iniminval、maxvaldanstepParametertooltip(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
pine
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 iniminval、maxvaldanstepParametertooltip(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
pine
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
pine
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
pine
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.
ta.alma(series, length, offset, sigma)
ta.alma(series, length, offset, sigma, floor)
Contoh
pine
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 yang dikembalikan
Arnaud Legoux purata bergerak
parameter
series(series int/float) Nilai siri yang akan dijalankanlength(series int) Jumlah baris K (panjang).offset(simple int/float) Mengendalikan keseimbangan antara kelancaran ((lebih dekat 1) dan responsif ((lebih dekat 0)).sigma(simple int/float) Mengubah kelancaran ALMA.floor(simple bool) Parameter pilihan. Sebelum mengira ALMA, tentukan sama ada pengiraan bias adalah had bawah. Nilai lalai adalah false.
Lihat juga
ta.sma ta.ema ta.rma ta.wma ta.vwma ta.swma
ta.sma
Fungsi sma mengembalikan purata bergerak, iaitu nilai y terakhir bagi x, dibahagikan dengan y。
ta.sma(source, length)
Contoh
pine
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 yang dikembalikan
lengthK baris kembalisourcePurata bergerak sederhana.
parameter
source(series int/float) Nilai siri yang akan dijalankanlength(series int) Jumlah baris K (panjang).
Lihat juga
ta.ema ta.rma ta.wma ta.vwma ta.swma ta.alma
ta.cog
cog ((titik fokus) adalah penunjuk berdasarkan statistik dan nisbah emas Fibonacci.
ta.cog(source, length)
Contoh
pine
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 yang dikembalikan
Fokus
parameter
source(series int/float) Nilai siri yang akan dijalankanlength(series int) Jumlah baris K (panjang).
Lihat juga
ta.stoch
ta.dev
Perbezaan antara siri pengukuran dengan ta.sma
ta.dev(source, length)
Contoh
pine
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 yang dikembalikan
lengthK baris kembalisourceKecacatan.
parameter
source(series int/float) Nilai siri yang akan dijalankanlength(series int) Jumlah baris K (panjang).
Lihat juga
ta.variance ta.stdev
ta.stdev
ta.stdev(source, length, biased)
Contoh
pine
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 yang dikembalikan
Kelemahan standard
parameter
source(series int/float) Nilai siri yang akan dijalankanlength(series int) Jumlah baris K (panjang).biased(series bool) Menentukan anggaran yang harus digunakan.
Nota
JikabiasedJika benar, fungsi akan digunakan untuk menganggarkan bias keseluruhan keseluruhan, jika salah - untuk menganggarkan sampel tanpa bias.
Lihat juga
ta.dev ta.variance
ta.ema
Fungsi ema mengembalikan purata bergerak bertimbangan indeks. Dalam ema, faktor berat turun secara indeks. Ia dikira menggunakan formula berikut: EMA = alpha * source + (1 - alpha) * EMA[1], di mana alpha = 2 / (length + 1) ◦
ta.ema(source, length)
Contoh
pine
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 yang dikembalikan
sourceRata-rata bergerak indeks, alpha = 2 / (panjang + 1) ◦
parameter
source(series int/float) Nilai siri yang akan dijalankanlength(simple int) K bilangan baris (panjang).
Nota
Sila ambil perhatian bahawa penggunaan pembolehubah / fungsi ini mungkin menyebabkan penunjuk dipetik semula.
Lihat juga
ta.sma ta.rma ta.wma ta.vwma ta.swma ta.alma
ta.wma
Fungsi wma kembalilengthGaris KsourceDalam wma, faktor penambahan berkurangan dengan pangkat aritmatika.
ta.wma(source, length)
Contoh
pine
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 yang dikembalikan
lengthK baris kembalisourceRata-rata Bergerak Berberat.
parameter
source(series int/float) Nilai siri yang akan dijalankanlength(series int) Jumlah baris K (panjang).
Lihat juga
ta.sma ta.ema ta.rma ta.vwma ta.swma ta.alma
ta.swma
Rata-rata bergerak simetri-berat dengan panjang tetap: 4.[1/6,2 / 6,2 / 6,1 / 6]。
ta.swma(source)
Contoh
pine
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 yang dikembalikan
Rata-rata Bergerak Berberat Simetrik.
parameter
source(series int/float) siri sumber。
Lihat juga
ta.sma ta.ema ta.rma ta.wma ta.vwma ta.alma
ta.hma
Fungsi hma mengembalikan purata bergerak badan kapal HMA。
ta.hma(source, length)
Contoh
pine
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 yang dikembalikan
Hull Moving Average yang dikembalikan kepada 'source' dalam lajur 'length'
parameter
source(series int/float) Nilai siri yang akan dijalankanlength(simple int) Jumlah baris K
Lihat juga
ta.ema ta.rma ta.wma ta.vwma ta.sma
ta.rma
Rata-rata bergerak yang digunakan dalam RSI. Ia adalah rata-rata bergerak bertimbangan indeks, nilai bertimbangan alfa = 1 / panjang.
ta.rma(source, length)
Contoh
pine
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 yang dikembalikan
sourceJadi, kita akan lihat di sini, kita akan lihat di sini.length。
parameter
source(series int/float) Nilai siri yang akan dijalankanlength(simple int) K bilangan baris (panjang).
Lihat juga
ta.sma ta.ema ta.wma ta.vwma ta.swma ta.alma ta.rsi
ta.rsi
Indeks intensiti relatif.lengthK dalam taliansourceperubahan ke atas dan ke bawahta.rma()Perkiraan
ta.rsi(source, length)
Contoh
pine
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 yang dikembalikan
Indeks Relatif Lemah (RSI)
parameter
source(series int/float) Nilai siri yang akan dijalankanlength(simple int) K bilangan baris (panjang).
Lihat juga
ta.rma
ta.tsi
Indeks kekuatan dan kelemahan sebenar. Ia adalah purata bergerak yang menggunakan pergerakan potensi instrumen kewangan.
ta.tsi(source, short_length, long_length)
Nilai yang dikembalikan
Indeks Kekuatan dan Kelemahan Sebenar.[Nilai dalam -1,1]
parameter
source(series int/float) siri sumber。short_length(simple int) Panjang pendek。long_length(simple int) Panjang garisan panjang。
ta.roc
Fungsi roc (perubahan kadar) dipaparkansourcenilai semasa dengansourceBeberapa hari yang lalulengthPerbezaan antara nilai
Ia dikira dengan formula berikut: 100 * change ((src, length) / src[length]。
ta.roc(source, length)
Nilai yang dikembalikan
lengthK baris kembalisourceKadar perubahan:
parameter
source(series int/float) Nilai siri yang akan dijalankanlength(series int) Jumlah baris K (panjang).
ta.range
Mengembalikan perbezaan antara nilai minimum dan maksimum dalam susunan.
ta.range(source, length)
Nilai yang dikembalikan
Perbezaan antara nilai minimum dan maksimum dalam urutan.
parameter
source(series int/float) Nilai siri yang akan dijalankanlength(series int) Jumlah baris K (panjang).
ta.macd
MACD ialah purata diferensial bersuara halus. Ia sepatutnya mendedahkan perubahan kekuatan, arah, momentum dan tempoh trend harga saham.
ta.macd(source, fastlen, slowlen, siglen)
Contoh
pine
[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 tanda tempat seperti '_':
Contoh
pine
[_, signalLine, _] = ta.macd(close, 12, 26, 9)
plot(signalLine, color=color.orange)
Nilai yang dikembalikan
Tiga subset siri MACD: garis MACD, garis isyarat dan garis grafik lurus.
parameter
source(series int/float) Nilai siri yang akan dijalankanfastlen(simple int) parameter garis ringkasslowlen(simple int) Parameter panjang perlahan。siglen(simple int) Parameter panjang isyarat。
ta.mode
Kembali ke mod siri. Jika terdapat lebih daripada satu nilai yang mempunyai frekuensi yang sama, kembali ke nilai minimum.
ta.mode(source, length)
Nilai yang dikembalikan
Mod siri.
parameter
source(series int/float) Nilai siri yang akan dijalankanlength(series int) Jumlah baris K (panjang).
ta.median
Mengembalikan nombor tengah dalam urutan.
ta.median(source, length)
Nilai yang dikembalikan
Nombor tengah dalam urutan.
parameter
source(series int/float) Nilai siri yang akan dijalankanlength(series int) Jumlah baris K (panjang).
ta.linreg
Garis regresi linear. Garis yang paling sesuai dengan harga yang ditetapkan dalam tempoh masa yang ditentukan oleh pengguna. Ia dikira menggunakan perkalian minimum. Hasil fungsi ini dikira menggunakan formula berikut: linreg = intercept + slope * (length - 1 - offset), di mana intercept dan slope digunakansourceNilai yang dikira untuk penggandaan kedua terendah dalam siri tersebut.
ta.linreg(source, length, offset)
Nilai yang dikembalikan
Garis Regressi Garis
parameter
source(series int/float) siri sumber。length(series int)offset(simple int) perpindahan
ta.bb
Brinband ialah alat analisis teknikal yang ditakrifkan oleh sekumpulan garis yang berjarak dua standard deviasi (positif dan negatif) dari purata bergerak sederhana (SMA) harga sekuriti, tetapi boleh disesuaikan dengan pilihan pengguna.
ta.bb(series, length, mult)
Contoh
pine
[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 yang dikembalikan
Blinken.
parameter
series(series int/float) Nilai siri yang akan dijalankanlength(series int) Jumlah baris K (panjang).mult(simple int/float) faktor perbezaan piawai.
Lihat juga
ta.sma ta.stdev ta.kc
ta.bbw
Lebar jalur brim ialah jarak dari atas dan bawah landasan ke garisan tengah.
ta.bbw(series, length, mult)
Contoh
pine
plot(ta.bbw(close, 5, 4), color=color.yellow)
// the same on pine
f_bbw(src, length, mult) =>
float basis = ta.sma(src, length)
float dev = mult * ta.stdev(src, length)
((basis + dev) - (basis - dev)) / basis
plot(f_bbw(close, 5, 4))
Nilai yang dikembalikan
Bandwidth Brin.
parameter
series(series int/float) Nilai siri yang akan dijalankanlength(series int) Jumlah baris K (panjang).mult(simple int/float) faktor perbezaan piawai.
Lihat juga
ta.bb ta.sma ta.stdev
ta.cci
Indeks CCI (Commodity Path Index) dikira dengan cara perbezaan antara harga tipikal komoditi dengan purata bergerak mudahnya yang dibahagikan dengan rata-rata penyelewengan mutlak harga tipikal. Indeks ini diskalakan dengan kebalikan 0.015 untuk menyediakan lebih banyak angka yang boleh dibaca.
ta.cci(source, length)
Nilai yang dikembalikan
Indeks saluran komoditi sumber yang dikembalikan oleh garis length K.
parameter
source(series int/float) Nilai siri yang akan dijalankanlength(series int) Jumlah baris K (panjang).
ta.change
Perbezaan antara nilai semasa dengan nilai sebelumnya, source - source[length]。
ta.change(source, length)
ta.change(source)
Nilai yang dikembalikan
Hasil pengurangan
parameter
source(series int/float) siri sumber。length(series int) Berpindah dari k baris semasa ke k baris terdahulu.
ta.mom
sourceHarga dansourceHargalengthK line sebelum momentum. Ia hanya perbezaan:source - source[length]。
ta.mom(source, length)
Nilai yang dikembalikan
sourceHarga dansourceHargalengthK line sebelum momentum.
parameter
source(series int/float) Nilai siri yang akan dijalankanlength(series int) Pergeseran dari k baris semasa ke k baris terdahulu.
Lihat juga
ta.change
ta.cmo
Indeks pergerakan pergerakan harga. Hitung jumlah kenaikan harga terkini dengan jumlah penurunan harga terkini, kemudian tolak kedua-duanya, kemudian bahagi hasilnya dengan jumlah semua perubahan harga dalam tempoh yang sama
ta.cmo(series, length)
Contoh
pine
plot(ta.cmo(close, 5), color=color.yellow)
// the same on pine
f_cmo(src, length) =>
float mom = ta.change(src)
float sm1 = math.sum((mom >= 0) ? mom : 0.0, length)
float sm2 = math.sum((mom >= 0) ? 0.0 : -mom, length)
100 * (sm1 - sm2) / (sm1 + sm2)
plot(f_cmo(close, 5))
Nilai yang dikembalikan
Indeks Pergerakan Chand
parameter
series(series int/float) Nilai siri yang akan dijalankanlength(series int) Jumlah baris K (panjang).
Lihat juga
ta.rsi ta.stoch math.sum
ta.percentile_linear_interpolation
Menggunakan kaedah penempatan linear antara dua ranking terkini untuk mengira peratusan.
ta.percentile_linear_interpolation(source, length, percentage)
Nilai yang dikembalikan
lengthK baris kembalisourcePeratusan pertama dalam siri P.
parameter
source(series int/float) Nilai siri yang akan dilaksanakan ((sumber) ▽)length(series int) bilangan baris K yang lalu (panjang)percentage(simple int/float) Peratusan, nombor dalam julat 0 hingga 100
Nota
Sila ambil perhatian bahawa peratusan yang dikira menggunakan kaedah ini tidak termasuk dalam set data input.
Lihat juga
ta.percentile_nearest_rank
ta.percentile_nearest_rank
Peratusan berdasarkan ranking terkini.
ta.percentile_nearest_rank(source, length, percentage)
Nilai yang dikembalikan
lengthK baris kembalisourcePeratusan pertama dalam siri P.
parameter
source(series int/float) Nilai siri yang akan dilaksanakan ((sumber) ▽)length(series int) bilangan baris K yang lalu (panjang)percentage(simple int/float) Peratusan, nombor dalam julat 0 hingga 100
Nota
Menggunakan urutan terkini yang kurang daripada 100k baris terakhir boleh menyebabkan nombor yang sama digunakan untuk beberapa peratusan.
Peratusan yang dikira oleh ranking terkini adalah sebahagian daripada dataset input.
Titik peratusan ke-100 ditakrifkan sebagai nilai maksimum dalam set data input.
Lihat juga
ta.percentile_linear_interpolation
ta.percentrank
Peratusan ialah peratusan nilai terdahulu kurang daripada atau sama dengan nilai semasa dalam siri yang diberikan.
ta.percentrank(source, length)
Nilai yang dikembalikan
lengthK baris kembalisourcePeratusan peringkat:
parameter
source(series int/float) Nilai siri yang akan dijalankanlength(series int) Jumlah baris K (panjang).
ta.variance
Perbezaan adalah satu siri nilai yang diharapkan (ta.sma) dari penyimpangan kuasa dua dari nilai rata-rata, yang secara tidak rasmi mengukur jarak satu set angka dari nilai rata-rata.
ta.variance(source, length, biased)
Nilai yang dikembalikan
lengthK baris kembalisourcePerbezaan
parameter
source(series int/float) Nilai siri yang akan dijalankanlength(series int) Jumlah baris K (panjang).biased(series bool) Menentukan anggaran yang harus digunakan.
Nota
JikabiasedJika benar, fungsi akan digunakan untuk menganggarkan bias keseluruhan keseluruhan, jika salah - untuk menganggarkan sampel tanpa bias.
ta.tr
ta.tr(handle_na)
Nilai yang dikembalikan
Jangkauan sebenar. Ia adalah math.max (high - low, math.abs (high - close)[1]), math.abs(low - close[1]))。
parameter
handle_naBagaimana (simple bool) menangani nilai NaN. Jika true, dan harga penutupan hari sebelumnya adalah NaN, tr akan dikira sebagai titik tinggi-rendah hari itu. Jika tidak, tr akan mengembalikan NaN.
Nota
ta.tr(false)danta.trSama betul.
Lihat juga
ta.atr
ta.mfi
Penunjuk aliran wang. Penunjuk aliran wang adalah penunjuk teknikal yang menggunakan harga dan jumlah urus niaga untuk menentukan keadaan overbought atau oversold dalam aset.
ta.mfi(series, length)
Contoh
pine
plot(ta.mfi(hlc3, 14), color=color.yellow)
// the same on pine
pine_mfi(src, length) =>
float upper = math.sum(volume * (ta.change(src) <= 0.0 ? 0.0 : src), length)
float lower = math.sum(volume * (ta.change(src) >= 0.0 ? 0.0 : src), length)
mfi = 100.0 - (100.0 / (1.0 + upper / lower))
mfi
plot(pine_mfi(hlc3, 14))
Nilai yang dikembalikan
Indeks aliran wang
parameter
series(series int/float) Nilai siri yang akan dijalankanlength(series int) Jumlah baris K (panjang).
ta.kc
Saluran Kentner. Saluran Kentner adalah petunjuk teknikal yang mengandungi purata bergerak di tengah dan saluran ke atas dan ke bawah.
ta.kc(series, length, mult)
ta.kc(series, length, mult, useTrueRange)
Contoh
pine
[middle, upper, lower] = ta.kc(close, 5, 4)
plot(middle, color=color.yellow)
plot(upper, color=color.yellow)
plot(lower, color=color.yellow)
// the same on pine
f_kc(src, length, mult, useTrueRange) =>
float basis = ta.ema(src, length)
float span = (useTrueRange) ? ta.tr : (high - low)
float rangeEma = ta.ema(span, length)
[basis, basis + rangeEma * mult, basis - rangeEma * mult]
[pineMiddle, pineUpper, pineLower] = f_kc(close, 5, 4, true)
plot(pineMiddle)
plot(pineUpper)
plot(pineLower)
Nilai yang dikembalikan
Laluan Kentner
parameter
series(series int/float) Nilai siri yang akan dijalankanlength(simple int) K bilangan baris (panjang).mult(simple int/float) faktor perbezaan piawai.useTrueRange(simple bool) pilihan. Tentukan sama ada menggunakan julat sebenar; secara lalai true. Jika nilai false, anda akan menggunakan ungkapan ((high-low) untuk mengira julat.
Lihat juga
ta.ema ta.atr ta.bb
ta.kcw
Lebar saluran Kentner. Lebar saluran Kentner adalah perbezaan antara saluran atas dan bawah dibahagikan dengan nilai saluran tengah.
ta.kcw(series, length, mult)
ta.kcw(series, length, mult, useTrueRange)
Contoh
pine
plot(ta.kcw(close, 5, 4), color=color.yellow)
// the same on pine
f_kcw(src, length, mult, useTrueRange) =>
float basis = ta.ema(src, length)
float span = (useTrueRange) ? ta.tr : (high - low)
float rangeEma = ta.ema(span, length)
((basis + rangeEma * mult) - (basis - rangeEma * mult)) / basis
plot(f_kcw(close, 5, 4, true))
Nilai yang dikembalikan
Lebar laluan Kentner.
parameter
series(series int/float) Nilai siri yang akan dijalankanlength(simple int) K bilangan baris (panjang).mult(simple int/float) faktor perbezaan piawai.useTrueRange(simple bool) pilihan. Tentukan sama ada menggunakan julat sebenar; secara lalai true. Jika nilai false, anda akan menggunakan ungkapan ((high-low) untuk mengira julat.
Lihat juga
ta.kc ta.ema ta.atr ta.bb
ta.correlation
Pekali berkaitan. Menerangkan sejauh mana dua siri cenderung menyimpang dari nilai ta.sma.
ta.correlation(source1, source2, length)
Nilai yang dikembalikan
Pekali berkaitan.
parameter
source1(series int/float) siri sumber。source2(series int/float) Siri sasaran。length(series int) Panjang (jumlah baris K)
Lihat juga
request.security
ta.cross
ta.cross(source1, source2)
Nilai yang dikembalikan
Jika kedua-dua siri saling melintang, maka ia adalah benar, jika tidak, ia adalah palsu.
parameter
source1(series int/float) Kumpulan data pertama。source2(series int/float) Kumpulan data kedua。
Lihat juga
ta.change
ta.crossover
source1-series ditakrifkan sebagai melangkauisource2-series, jika anda berada di K sekarang,source1lebih besar daripadasource2Dan pada baris K yang pertama,source2nilai sumber1小于source2`Nilai
ta.crossover(source1, source2)
Nilai yang dikembalikan
Jikasource1Melaluisource2Jika tidak, maka ia adalah palsu.
parameter
source1(series int/float) Kumpulan data pertama。source2(series int/float) Kumpulan data kedua。
ta.crossunder
source1-series ditakrifkan sebagai dalamsource2-series bawah persilangan, jika pada garis K semasa,source1kurang daripadasource2Dan pada baris K yang pertama,source1lebih besar daripadasource2Nilai
ta.crossunder(source1, source2)
Nilai yang dikembalikan
Jikasource1wujudsource2Jika tidak, ia akan menjadi palsu.
parameter
source1(series int/float) Kumpulan data pertama。source2(series int/float) Kumpulan data kedua。
ta.atr
Fungsi ATR ((Median amplitudo riil sebenar) mengembalikan RMA dalam julat riil. amplitudo riil sebenar ialah max ((high - low, abs ((high - close)[1]), abs(low - close[1]))。
ta.atr(length)
Contoh
pine
plot(ta.atr(14))
//the same on pine
pine_atr(length) =>
trueRange = na(high[1])? high-low : math.max(math.max(high - low, math.abs(high - close[1])), math.abs(low - close[1]))
//true range can be also calculated with ta.tr(true)
ta.rma(trueRange, length)
plot(pine_atr(14))
Nilai yang dikembalikan
Nilai purata pergerakan sebenar (ATR)
parameter
length (simple int)
ta.sar
Garis paralon bertukar (bahasa Inggeris: parabolic line turning) adalah kaedah yang direka oleh J. Welles Wilder, Jr. untuk mencari potensi pembalikan arah harga di pasaran perdagangan.
ta.sar(start, inc, max)
Contoh
pine
plot(ta.sar(0.02, 0.02, 0.2), style=plot.style_cross, linewidth=3)
// The same on Pine
pine_sar(start, inc, max) =>
var float result = na
var float maxMin = na
var float acceleration = na
var bool isBelow = na
bool isFirstTrendBar = false
if bar_index == 1
if close > close[1]
isBelow := true
maxMin := high
result := low[1]
else
isBelow := false
maxMin := low
result := high[1]
isFirstTrendBar := true
acceleration := start
result := result + acceleration * (maxMin - result)
if isBelow
if result > low
isFirstTrendBar := true
isBelow := false
result := math.max(high, maxMin)
maxMin := low
acceleration := start
else
if result < high
isFirstTrendBar := true
isBelow := true
result := math.min(low, maxMin)
maxMin := high
acceleration := start
if not isFirstTrendBar
if isBelow
if high > maxMin
maxMin := high
acceleration := math.min(acceleration + inc, max)
else
if low < maxMin
maxMin := low
acceleration := math.min(acceleration + inc, max)
if isBelow
result := math.min(result, low[1])
if bar_index > 1
result := math.min(result, low[2])
else
result := math.max(result, high[1])
if bar_index > 1
result := math.max(result, high[2])
result
plot(pine_sar(0.02, 0.02, 0.2), style=plot.style_cross, linewidth=3)
Nilai yang dikembalikan
Garis paralisis ke arah penunjuk.
parameter
start(simple int/float) bermula。inc(simple int/float) menambahmax(simple int/float) Maksimum.
ta.barssince
Hitung bilangan baris K dari keadaan terakhir yang benar.
ta.barssince(condition)
Contoh
pine
// get number of bars since last color.green bar
plot(ta.barssince(close >= open))
Nilai yang dikembalikan
Bilangan baris k jika keadaan adalah true.
Nota
Fungsi ini akan mengembalikan na ≠ jika syarat ini tidak pernah dipenuhi sebelum baris K semasa.
Sila ambil perhatian bahawa penggunaan pembolehubah / fungsi ini mungkin menyebabkan penunjuk dipetik semula.
Lihat juga
ta.lowestbars ta.highestbars ta.valuewhen ta.highest ta.lowest
ta.cum
sourceIa adalah jumlah (jumlah) dari semua (keseluruhan).sourceJumlah semua unsur.
ta.cum(source)
Nilai yang dikembalikan
Keseluruhan siri.
parameter
source(series int/float)
Lihat juga
math.sum
ta.dmi
Fungsi dmi mengembalikan indeks dinamik DMI。
ta.dmi(diLength, adxSmoothing)
Contoh
pine
len = input.int(17, minval=1, title="DI Length")
lensig = input.int(14, title="ADX Smoothing", minval=1, maxval=50)
[diplus, diminus, adx] = ta.dmi(len, lensig)
plot(adx, color=color.red, title="ADX")
plot(diplus, color=color.blue, title="+DI")
plot(diminus, color=color.orange, title="-DI")
Nilai yang dikembalikan
Tiga subset siri DMI: pergerakan arah positif ((+DI), pergerakan arah negatif ((-DI) dan indeks pergerakan arah purata ((ADX)) [2].
parameter
diLength(simple int) DI Period。adxSmoothing(simple int) ADX kitaran halus
Lihat juga
ta.rsi ta.tsi ta.mfi
ta.falling
UjiansourceSiri untuklengthAdakah K-long sedang jatuh?
ta.falling(source, length)
Nilai yang dikembalikan
Jika semasasourceNilai kurang daripadalengthK baris kembali ke mana-mana sebelumnyasourceNilai, jika betul, jika tidak, salah.
parameter
source(series int/float) Nilai siri yang akan dijalankanlength(series int) Jumlah baris K (panjang).
Lihat juga
ta.rising
ta.rising
UjiansourceSiri untuklengthAdakah K-Line Long sedang meningkat?
ta.rising(source, length)
Nilai yang dikembalikan
Jika semasasourceLebih berharga daripadalengthK baris kembali ke mana-mana sebelumnyasourceNilai, jika betul, jika tidak, salah.
parameter
source(series int/float) Nilai siri yang akan dijalankanlength(series int) Jumlah baris K (panjang).
Lihat juga
ta.falling
ta.pivothigh
Fungsi ini akan mengembalikan harga pada titik puncak. Jika tiada titik puncak, ia akan mengembalikan NaN<unk>.
ta.pivothigh(source, leftbars, rightbars)
ta.pivothigh(leftbars, rightbars)
Contoh
pine
leftBars = input(2)
rightBars=input(2)
ph = ta.pivothigh(leftBars, rightBars)
plot(ph, style=plot.style_cross, linewidth=3, color= color.red, offset=-rightBars)
Nilai yang dikembalikan
Harga pada titik ini atau 'NaN'.
parameter
source(series int/float) Parameter boleh dipilih. Nilai pengiraan siri data. Nilai lalai 'High'leftbars(series int/float) Kuasa kiri。rightbars(series int/float) Panjang kanan。
Nota
Jika parameter 'leftbars' atau 'rightbars' adalah siri, anda harus menggunakan fungsi max_bars_back sebagai pembolehubah 'source' ≠
ta.pivotlow
Fungsi ini akan mengembalikan harga pada titik terendah pada sumbu pusat. Jika tidak ada titik terendah pada sumbu pusat, ia akan mengembalikan NaN<unk>.
ta.pivotlow(source, leftbars, rightbars)
ta.pivotlow(leftbars, rightbars)
Contoh
pine
leftBars = input(2)
rightBars=input(2)
pl = ta.pivotlow(close, leftBars, rightBars)
plot(pl, style=plot.style_cross, linewidth=3, color= color.blue, offset=-rightBars)
Nilai yang dikembalikan
Harga pada titik ini atau 'NaN'.
parameter
source(series int/float) Parameter boleh dipilih ◦ Nilai pengiraan siri data ◦ Default ◦ Low ◦leftbars(series int/float) Kuasa kiri。rightbars(series int/float) Panjang kanan。
Nota
Jika parameter 'leftbars' atau 'rightbars' adalah siri, anda harus menggunakan fungsi max_bars_back sebagai pembolehubah 'source' ≠
ta.highest
Nilai tertinggi bagi nombor yang diberikan untuk garis k.
ta.highest(source, length)
ta.highest(length)
Nilai yang dikembalikan
Nilai tertinggi dalam siri.
parameter
source(series int/float) Nilai siri yang akan dijalankanlength(series int) Jumlah baris K (panjang).
Nota
Dua versi args:sourceIa adalah satu siri.lengthialah bilangan baris K yang dikembalikan.
Satu versi arg:lengthadalah bilangan baris K yang dikembalikan. Algoritma menggunakan high sebagaisourceSiri.
Lihat juga
ta.lowest ta.lowestbars ta.highestbars ta.valuewhen ta.barssince
ta.highestbars
Kelebihan maksimum bagi bilangan yang diberikan k garis di atas.
ta.highestbars(source, length)
ta.highestbars(length)
Nilai yang dikembalikan
Berpindah ke garisan k tertinggi.
parameter
source(series int/float) Nilai siri yang akan dijalankanlength(series int) Jumlah baris K (panjang).
Nota
Dua versi args:sourceIa adalah satu siri.lengthialah bilangan baris K yang dikembalikan.
Satu versi arg:lengthadalah bilangan baris K yang dikembalikan. Algoritma menggunakan high sebagaisourceSiri.
Lihat juga
ta.lowest ta.highest ta.lowestbars ta.barssince ta.valuewhen
ta.stoch
Indikator rawak. Persamaan pengiraan: 100 * (close - lowest(low, length)) / (highest(high, length) - lowest(low, length))
ta.stoch(source, high, low, length)
Nilai yang dikembalikan
Secara rawak
parameter
source(series int/float) siri sumber。high(series int/float) Siri tinggilow(series int/float) Siri rendahlength(series int) Panjang (jumlah baris K)
Lihat juga
ta.cog
ta.supertrend
Indikator Super Trend. Indikator Super Trend adalah indikator yang mengikuti trend.
ta.supertrend(factor, atrPeriod)
Contoh
pine
//@version=5
indicator("Pine Script™ Supertrend")
[supertrend, direction] = ta.supertrend(3, 10)
plot(direction < 0 ? supertrend : na, "Up direction", color = color.green, style=plot.style_linebr)
plot(direction > 0 ? supertrend : na, "Down direction", color = color.red, style=plot.style_linebr)
// The same on Pine Script™
pine_supertrend(factor, atrPeriod) =>
src = hl2
atr = ta.atr(atrPeriod)
upperBand = src + factor * atr
lowerBand = src - factor * atr
prevLowerBand = nz(lowerBand[1])
prevUpperBand = nz(upperBand[1])
lowerBand := lowerBand > prevLowerBand or close[1] < prevLowerBand ? lowerBand : prevLowerBand
upperBand := upperBand < prevUpperBand or close[1] > prevUpperBand ? upperBand : prevUpperBand
int direction = na
float superTrend = na
prevSuperTrend = superTrend[1]
if na(atr[1])
direction := 1
else if prevSuperTrend == prevUpperBand
direction := close > upperBand ? -1 : 1
else
direction := close < lowerBand ? 1 : -1
superTrend := direction == -1 ? lowerBand : upperBand
[superTrend, direction]
[pineSupertrend, pineDirection] = pine_supertrend(3, 10)
plot(pineDirection < 0 ? pineSupertrend : na, "Up direction", color = color.green, style=plot.style_linebr)
plot(pineDirection > 0 ? pineSupertrend : na, "Down direction", color = color.red, style=plot.style_linebr)
Nilai yang dikembalikan
Dua subset siri supertrend: garis supertrend dan arah trend. Nilai yang mungkin ialah 1 (ke arah bawah) dan -1 (ke arah atas).
parameter
factor(series int/float) ATR akan dikalikan dengan perkalian.atrPeriod(simple int) purata panjang gelombang sebenar
Lihat juga
ta.macd
ta.lowest
Nilai minimum bagi bilangan yang diberikan k baris yang lalu.
ta.lowest(source, length)
ta.lowest(length)
Nilai yang dikembalikan
Nilai terendah dalam siri.
parameter
source(series int/float) Nilai siri yang akan dijalankanlength(series int) Jumlah baris K (panjang).
Nota
Dua versi args:sourceIa adalah satu siri.lengthialah bilangan baris K yang dikembalikan.
Satu versi arg:lengthadalah bilangan K yang dikembalikan. Algoritma menggunakan low sebagaisourceSiri.
Lihat juga
ta.highest ta.lowestbars ta.highestbars ta.valuewhen ta.barssince
ta.lowestbars
Pemisahan nilai minimum bagi bilangan yang diberikan untuk k baris.
ta.lowestbars(source, length)
ta.lowestbars(length)
Nilai yang dikembalikan
Pergeseran ke garis k terendah.
parameter
source(series int/float) Nilai siri yang akan dijalankanlength(series int) mengembalikan nombor baris K。
Nota
Dua versi args:sourceIa adalah satu siri.lengthialah bilangan baris K yang dikembalikan.
Satu versi arg:lengthadalah bilangan K yang dikembalikan. Algoritma menggunakan low sebagaisourceSiri.
Lihat juga
ta.lowest ta.highest ta.highestbars ta.barssince ta.valuewhen
ta.valuewhen
Mengembalikan nilai siri sumber sumber bagi baris K di mana keadaan sumber adalah benar.
ta.valuewhen(condition, source, occurrence)
Contoh
pine
slow = ta.sma(close, 7)
fast = ta.sma(close, 14)
// Get value of `close` on second most recent cross
plot(ta.valuewhen(ta.cross(slow, fast), close, 1))
parameter
condition(series bool) Syarat untuk dicari。source(series int/float/bool/color) Nilai yang akan dikembalikan dari baris K yang memenuhi syarat.occurrenceKeadaan (simple int) muncul. Nombor bermula dari 0 dan berulang mengikut masa, jadi 0 adalah keadaan yang paling baru muncul, 1 adalah keadaan kedua yang paling baru muncul, dan seterusnya.
Nota
Fungsi ini perlu dilaksanakan pada setiap baris K. Ia tidak disyorkan untuk digunakan dalam struktur pusingan for atau while kerana kelakuannya mungkin tidak dijangka. Sila ambil perhatian bahawa penggunaan fungsi ini mungkin menyebabkan penunjuk digambarkan semula.
Lihat juga
ta.lowestbars ta.highestbars ta.barssince ta.highest ta.lowest
ta.vwap
Harga purata bertimbangan kuantiti
ta.vwap(source)
Nilai yang dikembalikan
Purata purata purata
parameter
source(series int/float) siri sumber。
Lihat juga
ta.vwap
ta.vwma
vwma fungsi kembalilengthGaris KsourceRata-rata bergerak bertimbangan jumlah transaksi ≠ sama dengan: sma (sumber * jumlah, panjang) / sma (jumlah, panjang) ≠
ta.vwma(source, length)
Contoh
pine
plot(ta.vwma(close, 15))
// same on pine, but less efficient
pine_vwma(x, y) =>
ta.sma(x * volume, y) / ta.sma(volume, y)
plot(pine_vwma(close, 15))
Nilai yang dikembalikan
lengthK baris kembalisourcePeratusan Bergerak Berpadan dengan Jumlah Transaksi.
parameter
source(series int/float) Nilai siri yang akan dijalankanlength(series int) Jumlah baris K (panjang).
Lihat juga
ta.sma ta.ema ta.rma ta.wma ta.swma ta.alma
ta.wpr
Penunjuk Williams Williams %R。。 penunjuk bergolak yang menunjukkan hubungan antara harga penutupan semasa dengan harga tinggi/rendah yang berlaku pada masa lalu.
ta.wpr(length)
Contoh
pine
plot(ta.wpr(14), title="%R", color=color.new(#ff6d00, 0))
Nilai yang dikembalikan
Williams %R。
parameter
length(series int) Jumlah baris K。
plot
plot
Menggambar satu siri data di atas carta.
plot(series, title, color, linewidth, style, trackprice, histbase, offset, join, editable, show_last, display)
Contoh
pine
plot(high+low, title='Title', color=color.new(#00ffaa, 70), linewidth=2, style=plot.style_area, offset=15, trackprice=true)
// You may fill the background between any two plots with a fill() function:
p1 = plot(open)
p2 = plot(close)
fill(p1, p2, color=color.new(color.green, 90))
Nilai yang dikembalikan
Objek lukisan yang boleh digunakan untuk mengisi.
parameter
series(series int/float) Rangkaian data yang akan digambar. Parameter yang diperlukan.title(const string) Judul gambar。color(series color) Warna yang digambarkan. Anda boleh menggunakan konstanta seperti 'color = red' atau 'color = #ff001a' dan ungkapan kompleks seperti 'color = close >= open ? green: red'. Parameter pilihan.linewidth(input int) Lebar garisan digambar. Default ialah 1 . Tidak berlaku untuk setiap gaya .style(plot_style) jenis plot。 nilai yang mungkin ialah: plot.style_line、plot.style_stepline、plot.style_stepline_diamond、plot.style_histogram、plot.style_cross、plot.style_area、plot.style_columns、plot.style_circles、plot.style_linebr、plot.style_areabr。 nilai lalai ialah plot.style_line。trackprice(input bool) Jika true, barisan harga horisontal akan dipaparkan pada tahap nilai penunjuk terakhir.histbase(input int/float) Apabila plot.style_histogram, plot.style_columns atau plot.style_area digambarkan, nilai paras rujukan digunakan. ❚ Nilai lalai adalah 0.0。offset(series int) bergerak ke kiri atau ke kanan pada bilangan tertentu k baris.join(input bool) Jika benar, titik digambar akan disambungkan ke baris, hanya berlaku untuk gaya plot.style_cross dan plot.style_circles.editable(const bool) Jika true, gaya lukisan boleh diedit dalam kotak dialog format.show_last(input int) Jika ditetapkan, tentukan jumlah k baris yang digambar pada carta ((berbalik ke masa lalu dari baris k terakhir) <unk>display(plot_display) kawalan memaparkan lokasi gambar. Nilai yang mungkin ialah: display.none, display.all. Default adalah display.all.overlay(const bool) Parameter yang diperluaskan oleh platform FMZ, digunakan untuk menetapkan fungsi semasa yang dipaparkan pada gambar utama (set true) atau gambar kecil (set false) dengan nilai lalai false. Jika parameter ini tidak ditentukan, maka ia akan dipaparkan mengikutstrategyatauindicatorDalamoverlayPengaturan parameterstrategyatauindicatorTiada tetapanoverlayParameter, ia akan diuruskan mengikut parameter lalai.
Lihat juga
plotshape plotchar bgcolor
plotshape
Menggambar bentuk visual pada carta.
plotshape(series, title, style, location, color, offset, text, textcolor, editable, size, show_last, display)
Contoh
pine
data = close >= open
plotshape(data, style=shape.xcross)
parameter
series(series bool) Serangkaian data yang digambarkan sebagai bentuk. 。 Serangkaian dianggap sebagai serangkaian nilai bool untuk semua nilai kedudukan kecuali location.absolute. Parameter yang diperlukan.title(const string) Judul gambar。style(input string) Jenis lukisan。 Nilai yang mungkin ialah: shape.xcross, shape.cross, shape.triangleup, shape.triangledown, shape.flag, shape.circle, shape.arrowup, shape.arrowdown, shape.labelup, shape.labeldown, shape.square, shape.diamond。 Nilai lalai ialah shape.xcross。location(input string) Bentuk kedudukan pada carta. Nilai yang mungkin ialah: location.abovebar, location.belowbar, location.top, location.bottom, location.absolute. Default adalah location.abovebar.color(series color) bentuk warna. Anda boleh menggunakan konstanta seperti 'color = red' atau 'color = #ff001a' dan ungkapan kompleks seperti 'color = close >= open ? green: red'. Parameter pilihan.offset(series int) Bentuk bergerak ke kiri atau ke kanan pada bilangan tertentu k baris. Default adalah 0text(const string) teks dipaparkan dalam bentuk. Anda boleh menggunakan teks berbilang baris, dengan menggunakan '\n' urutan perpindahan di antara baris. contohnya: 'line one\nline two'textcolorWarna teks (series color). Anda boleh menggunakan konstanta seperti 'textcolor=red' atau 'textcolor=#ff001a', dan ungkapan kompleks seperti 'textcolor = close >= open ? green: red'. Parameter pilihan.editable(const bool) Jika true, gaya plotshape boleh diedit dalam kotak dialog format.show_last(input int) Jika ditetapkan, tentukan nombor bentuk yang digambarkan pada carta ((kembali ke masa lalu dari k baris terakhir) <unk>size(const string) Saiz aksara pada carta ◦ Nilai yang mungkin ialah: size.auto, size.tiny, size.small, size.normal, size.large, size.huge ◦ Nilai lalai ialah size.auto ◦display(plot_display) kawalan memaparkan lokasi gambar. Nilai yang mungkin ialah: display.none, display.all. Default adalah display.all.overlay(const bool) Parameter yang diperluaskan oleh platform FMZ, digunakan untuk menetapkan fungsi semasa yang dipaparkan pada gambar utama (set true) atau gambar kecil (set false) dengan nilai lalai false. Jika parameter ini tidak ditentukan, maka ia akan dipaparkan mengikutstrategyatauindicatorDalamoverlayPengaturan parameterstrategyatauindicatorTiada tetapanoverlayParameter, ia akan diuruskan mengikut parameter lalai.
Lihat juga
plot plotchar bgcolor
plotchar
Gambarkan bentuk visual menggunakan sebarang aksara Unicode yang diberikan pada carta.
plotchar(series, title, char, location, color, offset, text, textcolor, editable, size, show_last, display)
Contoh
pine
data = close >= open
plotchar(data, char='❄')
parameter
series(series bool) Serangkaian data yang digambarkan sebagai bentuk. 。 Serangkaian dianggap sebagai serangkaian nilai bool untuk semua nilai kedudukan kecuali location.absolute. Parameter yang diperlukan.title(const string) Judul gambar。char(input string) Karakter yang digunakan sebagai bentuk visuallocation(input string) Bentuk kedudukan pada carta. Nilai yang mungkin ialah: location.abovebar, location.belowbar, location.top, location.bottom, location.absolute. Default adalah location.abovebar.color(series color) bentuk warna. Anda boleh menggunakan konstanta seperti 'color = red' atau 'color = #ff001a' dan ungkapan kompleks seperti 'color = close >= open ? green: red'. Parameter pilihan.offset(series int) Bentuk bergerak ke kiri atau ke kanan pada bilangan tertentu k baris. Default adalah 0text(const string) teks dipaparkan dalam bentuk. Anda boleh menggunakan teks berbilang baris, dengan menggunakan '\n' urutan perpindahan di antara baris. contohnya: 'line one\nline two'textcolorWarna teks (series color). Anda boleh menggunakan konstanta seperti 'textcolor=red' atau 'textcolor=#ff001a', dan ungkapan kompleks seperti 'textcolor = close >= open ? green: red'. Parameter pilihan.editable(const bool) Jika true, gaya plotchar boleh diedit dalam kotak dialog format.show_last(input int) Jika ditetapkan, tentukan bilangan grafik yang digambar pada grafik ((kembali ke masa lalu dari baris k terakhir) <unk>size(const string) Saiz aksara pada carta ◦ Nilai mungkin: size.auto,size.tiny,size.small,size.normal,size.large,size.huge ◦ Nilai lalai ialah size.auto ◦display(plot_display) kawalan memaparkan lokasi gambar. Nilai yang mungkin ialah: display.none, display.all. Default adalah display.all.overlay(const bool) Parameter yang diperluaskan oleh platform FMZ, digunakan untuk menetapkan fungsi semasa yang dipaparkan pada gambar utama (set true) atau gambar kecil (set false) dengan nilai lalai false. Jika parameter ini tidak ditentukan, maka ia akan dipaparkan mengikutstrategyatauindicatorDalamoverlayPengaturan parameterstrategyatauindicatorTiada tetapanoverlayParameter, ia akan diuruskan mengikut parameter lalai.
Lihat juga
plot plotshape bgcolor
plotcandle
Gambarkan <unk> pada carta.
plotcandle(open, high, low, close, title, color, wickcolor, editable, show_last, bordercolor, display)
Contoh
pine
indicator("plotcandle example", overlay=true)
plotcandle(open, high, low, close, title='Title', color = open < close ? color.green : color.red, wickcolor=color.black)
parameter
open(series int/float) Rangkaian data terbuka digunakan sebagai nilai bukaan tali.high(series int/float) Bilangan siri tinggi digunakan sebagai nilai tinggi.low(series int/float) Data siri rendah digunakan sebagai nilai rendah untuk tabung. Parameter yang diperlukan.close(series int/float) Menutup data siri sebagai nilai untuk menutup baris k. Parameter diperlukan.title(const string) tajuk plotcandle。 parameter pilihan。color(series color) Warna siri. Anda boleh menggunakan konstanta seperti 'color = red' atau 'color = #ff001a' dan ungkapan kompleks seperti 'color = close >= open ? green: red'. Parameter pilihan.wickcolor(series color) Warna teras lampu. Satu parameter pilihan.editable(const bool) Jika true, gaya plotcandle boleh diedit dalam kotak dialog format.show_last(input int) Jika ditetapkan, tentukan bilangan kerucut yang digambar pada carta ((kembali ke masa lalu dari baris k terakhir) <unk>bordercolor(series color) Warna pinggir palam. Satu parameter pilihan.display(plot_display) kawalan memaparkan lokasi gambar. Nilai yang mungkin ialah: display.none, display.all. Default adalah display.all.overlay(const bool) Parameter yang diperluaskan oleh platform FMZ, digunakan untuk menetapkan fungsi semasa yang dipaparkan pada gambar utama (set true) atau gambar kecil (set false) dengan nilai lalai false. Jika parameter ini tidak ditentukan, maka ia akan dipaparkan mengikutstrategyatauindicatorDalamoverlayPengaturan parameterstrategyatauindicatorTiada tetapanoverlayParameter, ia akan diuruskan mengikut parameter lalai.
Nota
Jika semua NaN adalah NaN, maka garis K tidak perlu ditunjukkan.
Nilai maksimum untuk buka, tinggi, rendah, dan tutup akan ditetapkan sebagai tinggi atau rendah, dan nilai minimum akan ditetapkan sebagai rendah atau rendah.
Lihat juga
plotbar
plotarrow
Arrow ke atas dan ke bawah digambarkan pada carta: Arrow ke atas digambarkan pada setiap penunjuk nilai positif, dan arrow ke bawah digambarkan pada setiap nilai negatif. Arrow tidak digambarkan jika penunjuk kembali na. Arrow mempunyai ketinggian yang berbeza, semakin besar nilai mutlak penunjuk, semakin panjang arrow digambarkan.
plotarrow(series, title, colorup, colordown, offset, minheight, maxheight, editable, show_last, display)
Contoh
codiff = close - open
plotarrow(codiff, colorup=color.new(color.teal,40), colordown=color.new(color.orange, 40), overlay=true)
parameter
series(series int/float) Untuk memetakan siri data ke dalam anak panah. Parameter yang diperlukantitle(const string) Judul gambar。colorup(series color) warna anak panah ke atas.colordown(series color) warna anak panah ke bawah.offset(series int) Gerakkan anak panah ke kiri atau ke kanan pada bilangan tertentu K. Nilai lalai adalah 0minheight(input int) Ketinggian anak panah yang paling kecil dalam bentuk piksel. Default ialah 5maxheight(input int) Tinggi anak panah maksimum yang mungkin dalam satuan piksel. Default 100editable(const bool) Jika true, gaya plotarrow boleh diedit dalam kotak dialog format.show_last(input int) Jika ditetapkan, tentukan bilangan anak panah yang digambar pada carta ((kembali ke masa lalu dari baris k terakhir) <unk>display(plot_display) kawalan memaparkan lokasi gambar. Nilai yang mungkin ialah: display.none, display.all. Default adalah display.all.overlay(const bool) Parameter yang diperluaskan oleh platform FMZ, digunakan untuk menetapkan fungsi semasa yang dipaparkan pada gambar utama (set true) atau gambar kecil (set false) dengan nilai lalai false. Jika parameter ini tidak ditentukan, maka ia akan dipaparkan mengikutstrategyatauindicatorDalamoverlayPengaturan parameterstrategyatauindicatorTiada tetapanoverlayParameter, ia akan diuruskan mengikut parameter lalai.
Lihat juga
plot plotshape plotchar barcolor bgcolor
array
array.pop
Fungsi ini menghapus elemen terakhir dari array dan mengembalikan nilainya.
array.pop(id)
Contoh
pine
// array.pop example
a = array.new_float(5,high)
removedEl = array.pop(a)
plot(array.size(a))
plot(removedEl)
Nilai yang dikembalikan
Nilai elemen yang dihapuskan.
parameter
id(any array type) Objek array
Lihat juga
array.new_float array.set array.push array.remove array.insert array.shift
array.shift
Fungsi ini menghapus elemen pertama dalam array dan mengembalikan nilainya.
array.shift(id)
Contoh
pine
// array.shift example
a = array.new_float(5,high)
removedEl = array.shift(a)
plot(array.size(a))
plot(removedEl)
Nilai yang dikembalikan
Nilai elemen yang dihapuskan.
parameter
id(any array type) Objek array
Lihat juga
array.unshift array.set array.push array.remove array.includes
array.unshift
Fungsi ini akan memasukkan nilai ke dalam kedudukan awal array.
array.unshift(id, value)
Contoh
pine
// array.unshift example
a = array.new_float(5, 0)
array.unshift(a, open)
plot(array.get(a, 0))
parameter
id(any array type) Objek arrayvalue(series <type of the array's elements>) Untuk menambah nilai ke kedudukan awal array.
Lihat juga
array.shift array.set array.insert array.remove array.indexof
array.size
Fungsi ini mengembalikan bilangan elemen dalam array.
array.size(id)
Contoh
pine
// array.size example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i])
// note that changes in slice also modify original array
slice = array.slice(a, 0, 5)
array.push(slice, open)
// size was changed in slice and in original array
plot(array.size(a))
plot(array.size(slice))
Nilai yang dikembalikan
Bilangan unsur dalam array.
parameter
id(any array type) Objek array
Lihat juga
array.new_float array.sum array.slice array.sort
array.slice
Fungsi ini mencipta pecahan dari array sedia ada. Jika objek dalam pecahan berubah, perubahan itu akan digunakan pada array baru dan asal.
array.slice(id, index_from, index_to)
Contoh
pine
// array.slice example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i])
// take elements from 0 to 4
// *note that changes in slice also modify original array
slice = array.slice(a, 0, 5)
plot(array.sum(a) / 10)
plot(array.sum(slice) / 5)
Nilai yang dikembalikan
Salinan ringkas dari pengguguran array.
parameter
id(any array type) Objek arrayindex_from(series int) Indeks yang bermula dari sifar untuk mula diekstrak.index_to(series int) Indeks yang bermula dari sifar sebelum pengekstrakan selesai. Fungsi ini mengekstrak elemen sebelum indeks ini.
Lihat juga
array.new_float array.get array.sort
array.abs
Mengembalikan sebuah array yang mengandungi nilai mutlak bagi setiap elemen dalam array asal.
array.abs(id)
parameter
id(int[]/float[Objek Array.
Lihat juga
array.new_float array.insert array.slice array.reverse order.ascending order.descending
array.binary_search
Fungsi ini akan mengembalikan indeks nilai, dan jika nilai itu tidak ditemui, ia akan mengembalikan -1 ≠. Array yang akan dicari mestilah disusun mengikut urutan menaik.
array.binary_search(id, val)
Contoh
pine
// array.binary_search
a = array.from(5, -2, 0, 9, 1)
array.sort(a) // [-2, 0, 1, 5, 9]
position = array.binary_search(a, 0) // 1
plot(position)
parameter
id(int[]/float[Objek Array.val(series int/float) nilai yang dicari dalam array.
Nota
Pencarian binari digunakan untuk susunan yang disusun mengikut urutan menaik. Ia mula membandingkan elemen di tengah-tengah susunan dengan nilai sasaran. Jika unsur itu sepadan dengan nilai sasaran, ia akan mengembalikan kedudukannya dalam susunan. Jika nilai unsur lebih besar daripada nilai sasaran, teruskan carian di bahagian bawah susunan.
Lihat juga
array.new_float array.insert array.slice array.reverse order.ascending order.descending
array.binary_search_leftmost
Jika nilai ditemui, fungsi ini akan mengembalikan indeks nilai tersebut. Apabila nilai tidak ditemui, fungsi ini akan mengembalikan indeks elemen terkecil berikutnya, jika ia berada dalam array, di sebelah kiri tempat nilai berada.
array.binary_search_leftmost(id, val)
Contoh
pine
// array.binary_search_leftmost
a = array.from(5, -2, 0, 9, 1)
array.sort(a) // [-2, 0, 1, 5, 9]
position = array.binary_search_leftmost(a, 3) // 2
plot(position)
parameter
id(int[]/float[Objek Array.val(series int/float) nilai yang dicari dalam array.
Nota
Pencarian binari digunakan untuk susunan yang disusun mengikut urutan menaik. Ia mula membandingkan elemen di tengah-tengah susunan dengan nilai sasaran. Jika unsur itu sepadan dengan nilai sasaran, ia akan mengembalikan kedudukannya dalam susunan. Jika nilai unsur lebih besar daripada nilai sasaran, teruskan carian di bahagian bawah susunan.
Lihat juga
array.new_float array.insert array.slice array.reverse order.ascending order.descending
array.binary_search_rightmost
Jika nilai itu dijumpai, fungsi ini akan mengembalikan indeks nilai tersebut. Apabila nilai itu tidak dijumpai, fungsi ini akan mengembalikan indeks elemen di sebelah kanan tempat nilai itu berada dalam susunan.
array.binary_search_rightmost(id, val)
Contoh
pine
// array.binary_search_rightmost
a = array.from(5, -2, 0, 9, 1)
array.sort(a) // [-2, 0, 1, 5, 9]
position = array.binary_search_rightmost(a, 3) // 3
plot(position)
parameter
id(int[]/float[Objek Array.val(series int/float) nilai yang dicari dalam array.
Nota
Pencarian binari bertindak ke atas array yang telah disusun secara menaik. Ia mula membandingkan elemen di tengah-tengah array dengan nilai sasaran. Jika elemen itu sepadan dengan nilai sasaran, ia akan mengembalikan kedudukannya di dalam array. Jika nilai elemen lebih besar daripada nilai sasaran, carian terus dilakukan di bahagian bawah array.
Lihat juga
array.new_float array.insert array.slice array.reverse order.ascending order.descending
array.sort
Fungsi ini mengurutkan unsur-unsur dalam susunan tersebut.
array.sort(id, order)
Contoh
pine
// array.sort example
a = array.new_float(0,0)
for i = 0 to 5
array.push(a, high[i])
array.sort(a, order.descending)
if barstate.islast
runtime.log(str.tostring(a))
parameter
id(int[]/float[]/string[Objek Array.order(sort_order) Urutan susunan: order.ascending ((default) atau order.descending。
Lihat juga
array.new_float array.insert array.slice array.reverse order.ascending order.descending
array.sort_indices
Mengembalikan sebuah array indeks, yang apabila digunakan untuk mengindeks array asal, akan mengakses unsur-unsurnya mengikut urutan mereka. Ia tidak mengubah suai array asal.
array.sort_indices(id, order)
Contoh
pine
// array.sort_indices
a = array.from(5, -2, 0, 9, 1)
sortedIndices = array.sort_indices(a) // [1, 2, 4, 0, 3]
indexOfSmallestValue = array.get(sortedIndices, 0) // 1
smallestValue = array.get(a, indexOfSmallestValue) // -2
plot(smallestValue)
parameter
id(int[]/float[]/string[Objek Array.order(sort_order) Urutan susunan: order.ascending atau order.descending.
Lihat juga
array.new_float array.insert array.slice array.reverse order.ascending order.descending
array.clear
Fungsi ini menghapus semua elemen dari array.
array.clear(id)
Contoh
pine
// array.clear example
a = array.new_float(5,high)
array.clear(a)
array.push(a, close)
plot(array.get(a,0))
plot(array.size(a))
parameter
id(any array type) Objek array
Lihat juga
array.new_float array.insert array.push array.remove array.pop
array.concat
Fungsi ini digunakan untuk menggabungkan dua array. Ia mendorong semua elemen dari array kedua ke array pertama, dan kemudian kembali ke array pertama.
array.concat(id1, id2)
Contoh
pine
// array.concat example
a = array.new_float(0,0)
b = array.new_float(0,0)
for i = 0 to 4
array.push(a, high[i])
array.push(b, low[i])
c = array.concat(a,b)
plot(array.size(a))
plot(array.size(b))
plot(array.size(c))
Nilai yang dikembalikan
Array pertama mempunyai unsur gabungan dari array kedua.
parameter
id1(any array type) Objek array pertamaid2(any array type) Objek Array Kedua。
Lihat juga
array.new_float array.insert array.slice
array.copy
Fungsi ini mencipta salinan array sedia ada.
array.copy(id)
Contoh
pine
// array.copy example
length = 5
a = array.new_float(length, close)
b = array.copy(a)
a := array.new_float(length, open)
plot(array.sum(a) / length)
plot(array.sum(b) / length)
Nilai yang dikembalikan
Salinan Array.
parameter
id(any array type) Objek array
Lihat juga
array.new_float array.get array.slice array.sort
array.stdev
Fungsi ini mengembalikan perbezaan piawai bagi unsur-unsur array.
array.stdev(id, biased)
Contoh
pine
// array.stdev example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i])
plot(array.stdev(a))
Nilai yang dikembalikan
Elemen-elemen array standard berbeza.
parameter
id(int[]/float[Objek Array.biased(series bool) Menentukan anggaran yang harus digunakan.
Nota
JikabiasedJika benar, fungsi akan digunakan untuk menganggarkan bias keseluruhan keseluruhan, jika salah - untuk menganggarkan sampel tanpa bias.
Lihat juga
array.new_float array.max array.min array.avg
array.standardize
Fungsi ini mengembalikan array elemen standard.
array.standardize(id)
Contoh
pine
// array.standardize example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i])
b = array.standardize(a)
plot(array.min(b))
plot(array.max(b))
Nilai yang dikembalikan
Array elemen standardisasi.
parameter
id(int[]/float[Objek Array.
Lihat juga
array.max array.min array.mode array.avg array.variance array.stdev
array.variance
Fungsi ini mengembalikan perbezaan antara unsur-unsur dalam susunan tersebut.
array.variance(id, biased)
Contoh
pine
// array.variance example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i])
plot(array.variance(a))
Nilai yang dikembalikan
Perbezaan kuadrat unsur-unsur array
parameter
id(int[]/float[Objek Array.biased(series bool) Menentukan anggaran yang harus digunakan.
Nota
JikabiasedJika benar, fungsi akan digunakan untuk menganggarkan bias keseluruhan keseluruhan, jika salah - untuk menganggarkan sampel tanpa bias.
Lihat juga
array.new_float array.stdev array.min array.avg array.covariance
array.covariance
Fungsi ini mengembalikan perbezaan koordinat antara dua array.
array.covariance(id1, id2, biased)
Contoh
pine
// array.covariance example
a = array.new_float(0)
b = array.new_float(0)
for i = 0 to 9
array.push(a, close[i])
array.push(b, open[i])
plot(array.covariance(a, b))
Nilai yang dikembalikan
Perbezaan koordinat antara kedua-dua baris.
parameter
id1(int[]/float[Objek Array.id2(int[]/float[Objek Array.biased(series bool) Menentukan anggaran yang harus digunakan.
Nota
JikabiasedJika benar, fungsi akan digunakan untuk menganggarkan bias keseluruhan keseluruhan, jika salah - untuk menganggarkan sampel tanpa bias.
Lihat juga
array.new_float array.max array.stdev array.avg array.variance
array.fill
Fungsi ini menetapkan unsur-unsur dalam array sebagai nilai tunggal. Jika indeks tidak ditentukan, maka semua elemen ditetapkan. Jika hanya indeks permulaan disediakan (default 0), maka elemen yang bermula dari indeks tersebut ditetapkan. Jika kedua-dua parameter indeks digunakan pada masa yang sama, maka elemen yang diindeks dari awal tetapi tidak termasuk indeks akhir (default adalah na) ditetapkan.
array.fill(id, value, index_from, index_to)
Contoh
pine
// array.fill example
a = array.new_float(10)
array.fill(a, close)
plot(array.sum(a))
parameter
id(any array type) Objek arrayvalue(series <type of the array's elements>) digunakan untuk mengisi array.index_from(series int) Indeks permulaan, 0 ≠ 0index_to(series int) End index, default na。 mesti lebih besar daripada index elemen terakhir yang akan ditetapkan。
Lihat juga
array.new_float array.set array.slice
array.includes
Fungsi ini akan mengembalikan true jika nilai ini ditemui dalam array, dan false jika tidak.
array.includes(id, value)
Contoh
pine
// array.includes example
a = array.new_float(5,high)
p = close
if array.includes(a, high)
p := open
plot(p)
Nilai yang dikembalikan
Jika nilai ini dijumpai dalam array, maka ia adalah true, jika tidak, false.
parameter
id(any array type) Objek arrayvalue(series <type of the array's elements>) Nilai yang dicari dalam array.
Lihat juga
array.new_float array.indexof array.shift array.remove array.insert
array.insert
Fungsi ini mengubah kandungan array dengan menambah elemen baru di tempat yang sesuai.
array.insert(id, index, value)
Contoh
pine
// array.insert example
a = array.new_float(5, close)
array.insert(a, 0, open)
plot(array.get(a, 5))
parameter
id(any array type) Objek arrayindex(series int) Indeks nilai penyisipan.value(series <type of the array's elements>) Untuk menambah nilai ke dalam array.
Lihat juga
array.new_float array.set array.push array.remove array.pop array.unshift
array.join
Fungsi ini membina dan mengembalikan senar baru dengan menghubungkan semua elemen dalam array, yang dipisahkan oleh senar pemisah yang ditetapkan.
array.join(id, separator)
Contoh
pine
// array.join example
a = array.new_float(5, 5)
runtime.log(array.join(a, ","))
parameter
id(int[]/float[]/string[Objek Array.separator(series string) Senar yang digunakan untuk memisahkan setiap elemen array.
Lihat juga
array.new_float array.set array.insert array.remove array.pop array.unshift
array.lastindexof
Fungsi ini akan mengembalikan indeks yang terakhir kali nilai muncul. Jika nilai itu tidak ditemui, ia akan mengembalikan -1
array.lastindexof(id, value)
Contoh
pine
// array.lastindexof example
a = array.new_float(5,high)
index = array.lastindexof(a, high)
plot(index)
Nilai yang dikembalikan
Indeks unsur
parameter
id(any array type) Objek arrayvalue(series <type of the array's elements>) Nilai yang dicari dalam array.
Lihat juga
array.new_float array.set array.push array.remove array.insert
array.max
Fungsi ini mengembalikan nilai maksimum, atau nth maksimum dalam array yang diberikan.
array.max(id, nth)
Contoh
pine
// array.max
a = array.from(5, -2, 0, 9, 1)
secondHighest = array.max(a, 2) // 1
plot(secondHighest)
Nilai yang dikembalikan
Maksimum atau nth maksimum dalam array.
parameter
id(int[]/float[Objek Array.nth(series int) mengembalikan nth nilai maksimum, di mana 0 adalah nilai maksimum. Opsional. Default adalah nol.
Lihat juga
array.new_float array.min array.sum
array.min
Fungsi ini mengembalikan nilai minimum, atau nth minimum dalam urutan yang diberikan.
array.min(id, nth)
Contoh
pine
// array.min
a = array.from(5, -2, 0, 9, 1)
secondLowest = array.min(a, 1) // 0
plot(secondLowest)
Nilai yang dikembalikan
Minimum atau nth minimum dalam array.
parameter
id(int[]/float[Objek Array.nth(series int) Nilai minimum n yang akan dikembalikan, di mana 0 adalah nilai minimum.
Lihat juga
array.new_float array.max array.sum
array.median
Fungsi ini akan mengembalikan nilai median bagi unsur-unsur array.
array.median(id)
Contoh
pine
// array.median example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i])
plot(array.median(a))
Nilai yang dikembalikan
Nombor median bagi unsur-unsur dalam susunan tersebut.
parameter
id(int[]/float[Objek Array.
Lihat juga
array.avg array.variance array.min
array.mode
Fungsi ini mengembalikan pola unsur-unsur array. Jika terdapat lebih daripada satu nilai yang mempunyai frekuensi yang sama, ia akan mengembalikan nilai minimum.
array.mode(id)
Contoh
pine
// array.mode example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i])
plot(array.mode(a))
Nilai yang dikembalikan
Model elemen array.
parameter
id(int[]/float[Objek Array.
Lihat juga
array.new_float array.avg array.variance array.min
array.percentile_linear_interpolation
Mengembalikan peratusan yang ditetapkan nilai array (peratusan digit) kurang daripada atau sama dengan nilainya, menggunakan nilai litar linear.
array.percentile_linear_interpolation(id, percentage)
parameter
id(int[]/float[Objek Array.percentage(series int/float) mestilah sama atau kurang daripada peratusan nilai yang dikembalikan.
Nota
Dalam statistik, peratusan adalah peratusan ranking item yang muncul pada atau di bawah markah tertentu. Pengukuran ini menunjukkan peratusan peratusan dalam pengedaran frekuensi piawai yang lebih rendah daripada markah peratusan yang anda ukur.
Lihat juga
array.new_float array.insert array.slice array.reverse order.ascending order.descending
array.percentile_nearest_rank
Menggunakan kaedah kedudukan terkini, nilai array yang diberikan untuk peratusan (peratusan digit) adalah lebih kecil atau sama dengan nilainya.
array.percentile_nearest_rank(id, percentage)
parameter
id(int[]/float[Objek Array.percentage(series int/float) mestilah sama atau kurang daripada peratusan nilai yang dikembalikan.
Nota
Dalam statistik, peratusan adalah peratusan ranking item yang muncul pada atau di bawah satu peratusan. Pengukuran ini menunjukkan peratusan dalam pengedaran frekuensi piawai peringkat peratusan yang anda ukur.
Lihat juga
array.new_float array.insert array.slice array.reverse order.ascending order.descending
array.percentrank
Kembali ke Peratusan Array.
array.percentrank(id, index)
parameter
id(int[]/float[Objek Array.index(series int) Mengira peratusan pangkatnya.
Nota
Peratusan adalah peratusan bilangan elemen dalam susunan yang kurang daripada atau sama dengan nilai rujukan.
Lihat juga
array.new_float array.insert array.slice array.reverse order.ascending order.descending
array.range
Fungsi ini mengembalikan perbezaan antara nilai minimum dan maksimum dalam susunan yang diberikan.
array.range(id)
Contoh
pine
// array.range example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i])
plot(array.range(a))
Nilai yang dikembalikan
Perbezaan antara nilai minimum dan maksimum dalam sebuah array.
parameter
id(int[]/float[Objek Array.
Lihat juga
array.new_float array.min array.max array.sum
array.remove
Fungsi ini mengubah kandungan array dengan menghapuskan elemen yang mempunyai indeks yang ditetapkan.
array.remove(id, index)
Contoh
pine
// array.remove example
a = array.new_float(5,high)
removedEl = array.remove(a, 0)
plot(array.size(a))
plot(removedEl)
Nilai yang dikembalikan
Nilai elemen yang dihapuskan.
parameter
id(any array type) Objek arrayindex(series int) Indeks unsur yang akan dihapuskan.
Lihat juga
array.new_float array.set array.push array.insert array.pop array.shift
array.reverse
Fungsi ini membalikkan array. Elemen array pertama menjadi terakhir, dan elemen array terakhir menjadi pertama.
array.reverse(id)
Contoh
pine
// array.reverse example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i])
plot(array.get(a, 0))
array.reverse(a)
plot(array.get(a, 0))
parameter
id(any array type) Objek array
Lihat juga
array.new_float array.sort array.push array.set array.avg
array.from
Fungsi ini menggunakan parameter yang boleh berubah-ubah dari salah satu jenis berikut: int, float, bool, string, line, color, linefill, dan mengembalikan array dengan jenis yang sesuai.
array.from(arg0, arg1, ...)
Contoh
pine
// array.from_example
arr = array.from("Hello", "World!") // arr (string[]) will contain 2 elements: {Hello}, {World!}.
plot(close)
Nilai yang dikembalikan
Nilai unsur-unsur array.
parameter
arg0, arg1, ...(series int/float/bool/color/string/line/linefill) Array parameter。
array.new
Fungsi ini mencipta satu yang baru<type>Objek Array Elemen
array.new(size, initial_value)
Contoh
pine
// array.new<string> example
a = array.new<string>(1, "Hello, World!")
runtime.log(array.get(a, 0))
Contoh
pine
// array.new<color> example
a = array.new<color>()
array.push(a, color.red)
array.push(a, color.green)
plot(close, color = array.get(a, close > open ? 1 : 0))
Contoh
pine
// array.new<float> example
length = 5
var a = array.new<float>(length, close)
if array.size(a) == length
array.remove(a, 0)
array.push(a, close)
plot(array.sum(a) / length, "SMA")
Contoh
pine
// array.new<line> example
// draw last 15 lines
var a = array.new<line>()
array.push(a, line.new(bar_index - 1, close[1], bar_index, close))
if array.size(a) > 15
ln = array.shift(a)
line.delete(ln)
Nilai yang dikembalikan
ID objek array yang boleh digunakan bersama dengan array lain.*Fungsi ().
parameter
size(series int) Saiz permulaan siri.initial_value(series <type>) Nilai permulaan semua elemen susunan.
Nota
Indeks Array bermula dari 0.
Jika anda ingin menginisialisasi sebuah array dan menentukan semua unsurnya pada masa yang sama, gunakan fungsi array.from.
Lihat juga
array.from array.push array.get array.size array.remove array.shift array.sum
array.new_bool
Fungsi ini mencipta objek array baru yang terdiri daripada elemen jenis bool.
array.new_bool(size, initial_value)
Contoh
pine
// array.new_bool example
length = 5
a = array.new_bool(length, close > open)
plot(array.get(a, 0) ? close : open)
Nilai yang dikembalikan
ID objek array yang boleh digunakan bersama dengan array lain.*Fungsi ().
parameter
size(series int) Saiz permulaan siri.initial_value(series bool) Nilai awal semua elemen siri. ▽ pilihan. ▽ default adalah <unk>na<unk>。
Nota
Indeks Array bermula dari 0.
Lihat juga
array.new_float array.get array.slice array.sort
array.new_float
Fungsi ini mencipta sebuah objek array elemen floating point yang baru.
array.new_float(size, initial_value)
Contoh
pine
// array.new_float example
length = 5
a = array.new_float(length, close)
plot(array.sum(a) / length)
Nilai yang dikembalikan
ID objek array yang boleh digunakan bersama dengan array lain.*Fungsi ().
parameter
size(series int) Saiz permulaan siri.initial_value(series int/float) Nilai permulaan semua elemen siri。 pilihan。 nilai lalai ialah <unk>na<unk>。
Nota
Indeks Array bermula dari 0.
Lihat juga
array.new_bool array.get array.slice array.sort
array.new_int
Fungsi ini mencipta objek array baru yang terdiri daripada unsur-unsur jenis int.
array.new_int(size, initial_value)
Contoh
pine
// array.new_int example
length = 5
a = array.new_int(length, int(close))
plot(array.sum(a) / length)
Nilai yang dikembalikan
ID objek array yang boleh digunakan bersama dengan array lain.*Fungsi ().
parameter
size(series int) Saiz permulaan siri.initial_value(series int) Nilai awal semua elemen siri. ▽ pilihan ▽ default adalah <unk>na<unk> ▽
Nota
Indeks Array bermula dari 0.
Lihat juga
array.new_float array.get array.slice array.sort
array.new_string
Fungsi ini mencipta objek array baru untuk elemen jenis senar.
array.new_string(size, initial_value)
Contoh
pine
// array.new_string example
length = 5
a = array.new_string(length, "text")
runtime.log(array.get(a, 0))
Nilai yang dikembalikan
ID objek array yang boleh digunakan bersama dengan array lain.*Fungsi ().
parameter
size(series int) Saiz permulaan siri.initial_value(series string) Nilai permulaan semua elemen siri. ▽ pilihan. ▽ default adalah <unk>na<unk>。
Nota
Indeks Array bermula dari 0.
Lihat juga
array.new_float array.get array.slice
array.get
Fungsi ini akan mengembalikan nilai bagi elemen yang diindekskan.
array.get(id, index)
Contoh
pine
// array.get example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i] - open[i])
plot(array.get(a, 9))
Nilai yang dikembalikan
Nilai unsur-unsur array.
parameter
id(any array type) Objek arrayindex(series int) Untuk mengembalikan indeks elemen yang nilainya ialah ≠
Lihat juga
array.new_float array.set array.slice array.sort
array.push
Fungsi ini menambah nilai ke dalam array.
array.push(id, value)
Contoh
pine
// array.push example
a = array.new_float(5, 0)
array.push(a, open)
plot(array.get(a, 5))
parameter
id(any array type) Objek arrayvalue(series <type of the array's elements>) Tambahkan nilai elemen di hujung array.
Lihat juga
array.new_float array.set array.insert array.remove array.pop array.unshift
array.set
Fungsi ini menetapkan nilai elemen sebagai indeks yang ditetapkan.
array.set(id, index, value)
Contoh
pine
// array.set example
a = array.new_float(10)
for i = 0 to 9
array.set(a, i, close[i])
plot(array.sum(a) / 10)
parameter
id(any array type) Objek arrayindex(series int) Mengubah indeks elemen.value(series <type of the array's elements>) Nilai baru yang akan ditetapkan.
Lihat juga
array.new_float array.get array.slice
array.sum
Fungsi ini mengembalikan jumlah unsur-unsur array.
array.sum(id)
Contoh
pine
// array.sum example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i])
plot(array.sum(a))
Nilai yang dikembalikan
Jumlah unsur-unsur array.
parameter
id(int[]/float[Objek Array.
Lihat juga
array.new_float array.max array.min
array.avg
Fungsi ini mengembalikan nilai purata bagi unsur-unsur dalam susunan tersebut.
array.avg(id)
Contoh
pine
// array.avg example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i])
plot(array.avg(a))
Nilai yang dikembalikan
Nilai purata unsur-unsur array.
parameter
id(int[]/float[Objek Array.
Lihat juga
array.new_float array.max array.min array.stdev
array.indexof
Fungsi ini akan mengembalikan indeks pertama kali nilai muncul. Jika nilai tidak dijumpai, ia akan mengembalikan -1
array.indexof(id, value)
Contoh
pine
// array.indexof example
a = array.new_float(5,high)
index = array.indexof(a, high)
plot(index)
Nilai yang dikembalikan
Indeks unsur
parameter
id(any array type) Objek arrayvalue(series <type of the array's elements>) Nilai yang dicari dalam array.
Lihat juga
array.lastindexof array.get array.lastindexof array.remove array.insert
strategy
wujudstrategyDalam fungsi terbina dalam yang berkaitan, titik hentian dan titik berhenti ditakrifkan sebagai kali ganda kenaikan harga. Contohnya:strategy.exitFungsiprofit、lossParameter menunjukkan stop loss, parameterprofitTetapkan 10 iaitu harga melompat kalikan 10 sebagai perbezaan harga berhenti, harga melompat adalah pembolehubah terbina dalamsyminfo.mintick。
strategy
Fungsi ini menetapkan beberapa sifat dasar:
Perhatian, rujukan hanya menyokongtitle,shorttitle,overlay,pyramiding,default_qty_type,default_qty_valueParameter, parameter lain boleh ditetapkan melalui parameter antara muka dalam dasar bahasa PINE.
strategy(title, shorttitle, overlay, format, precision, scale, pyramiding, calc_on_order_fills, calc_on_every_tick, max_bars_back, backtest_fill_limits_assumption, default_qty_type, default_qty_value, initial_capital, currency, slippage, commission_type, commission_value, process_orders_on_close, close_entries_rule, margin_long, margin_short, explicit_plot_zorder, max_lines_count, max_labels_count, max_boxes_count, risk_free_rate)
Contoh
pine
strategy("Strategy", overlay = true)
// Enter long by market if current open is greater than previous high.
strategy.entry("Long", strategy.long, 1, when = open > high[1])
// Generate a full exit bracket (profit 10 points, loss 5 points per contract) from the entry named "Long".
strategy.exit("Exit", "Long", profit = 10, loss = 5)
parameter
title(const string) akan dilihat dalam penanda/plugin strategi tajuk penanda 。 Parameter diperlukan 。shorttitle(const string) tajuk pendek penunjuk yang akan anda lihat dalam contoh carta. Parameter boleh dipilih.overlay(const bool) Jika true, maka penunjuk akan ditambahkan sebagai lapisan overlay siri utama. Jika false - ia akan ditambahkan ke dalam tetingkap carta berasingan. Secara lalai false.(const string) Jenis yang mungkin untuk nilai penunjuk yang diformat pada paksi harga ialah: format.inherit, format.price, format.volume。 default format.inherit。format(const int) Digit selepas bilangan titik terapung nilai penunjuk pada sumbu harga. Ia mestilah bukan bilangan bulat negatif dan tidak lebih besar daripada 16. Jika diabaikan, format siri bapa digunakan. Jika format adalah format.inherit dan parameter ini ditetapkan, format akan berubah menjadi format.price.precision(scale_type) Penunjuk harus mengikuti koordinat harga. Nilai yang mungkin ialah:scale.right,scale.left,scale.none. Nilai scale.none hanya boleh hanya boleh digunakan bersama dengan tetapan 'overlay=true'scalepyramiding(const int) Bilangan maksimum yang dibenarkan dalam satu arah. Jika nilai ini adalah 0, hanya satu pesanan masuk yang boleh dibuka dalam arah yang sama, dan sebarang pesanan masuk yang lain akan ditolak.(const bool) Pengiraan pesanan intrabar tambahan. Jika parameter ditetapkan kepada true<unk>, maka strategi akan dikira semula apabila K baris diisi selepas pesanan (bukan hanya apabila k baris ditutup). Nilai lalai adalah false<unk>.calc_on_order_fills(const bool) Kaedah intrabar tambahan dikira. Jika parameter adalah true, maka ia akan dikira setiap minit secara langsung tanpa menutup k line. Kaedah dikira tanpa mempengaruhi data sejarah.calc_on_every_tick(const int) Bilangan maksimum frame yang boleh digunakan untuk strategi rujukan sejarah. Jika data sejarah pembolehubah telah dirujuk dalam kod skrip, maka '<' digunakan.[['operator'], maka parameter ini akan digunakan untuk setiap pembolehubah terbina dalam skrip atau pembolehubah pengguna. Saiz kawasan penyangga yang berubah-ubah dalam skrip Pine biasanya dikesan secara automatik. Walau bagaimanapun, dalam beberapa kes, ini tidak mungkin, dan itulah sebabnya parameter membolehkan pengguna menetapkan had bawah nilai ini secara manual.max_bars_back(const int) Borang harga terhad melaksanakan hipotesis 。 Hanya apabila harga pasaran melebihi jumlah tik yang ditetapkan untuk tahap satuan harga terhad, satuan harga terhad akan berdagang di intrabar 。backtest_fill_limits_assumptiondefault_qty_type(const string) ditetapkan untukqtyNilai parameter yang dinyatakan dalam fungsi strategi.entry atau strategi.order ialah: strategi.fixed menunjukkan kontrak/saham/jam, strategi.cash menunjukkan jumlah wang, atau strategi.percent_of_equity menunjukkan peratusan hak milik yang tersedia.default_qty_value(const int/float) bilangan transaksi lalai fungsi strategy.entry atau strategy.order, apabila parameter 'qty' mereka tidak ditakrifkan, unitnya ditentukan oleh parameter yang digunakan bersama dengan parameter 'default_qty_type'(const string) Mata wang akaun untuk strategi ini。 boleh dipilih。 nilai lalai adalah mata wang barangan dalam carta。 nilai yang mungkin: currency.NONE, currency.USD, currency.EUR, currency.AUD, currency.GBP, currency.NZD, currency.CAD, currency.CHF, currency.HKD, currency.JPY, currency.NOK, currency.SEK, currency.SGD, currency.TRY, currency.ZAR, currency.BTC, currency.ETH, currency.MYR, currency.KRW。currency(const int) Titik geser dengan tick sebagai unit tawaran, akan ditambah / dikurangkan dari harga transaksi untuk membeli / menjual atau menghentikan. Jika mintick = 0.01 dan titik geser = 5, maka titik geser keseluruhan akan menjadi 5 * 0.01 = 0.05。slippage(const string) Jenis komisen untuk setiap pesanan. Nilai yang dibenarkan ialah: strategy.commission.percent (peratusan jumlah tunai pesanan), strategy.commission.cash_per_contract (jumlah dalam mata wang akaun untuk setiap kontrak), strategy.commission.cash_per_order (jumlah dalam mata wang akaun untuk setiap pesanan).commission_type(const int/float) Nilai komisen pesanan. Bergantung kepada jenis yang dipilih (jenis komisen) termasuk peratusan atau jumlah.commission_value(const bool) Apabila ditetapkan sebagai pen pen pen pen true, akan menghasilkan percubaan lain untuk melaksanakan pesanan setelah pen pen pen pen pen pen pen dan menyelesaikan pengiraan strategi. Jika pesanan adalah pesanan harga pasaran, simulator broker akan melaksanakan mereka sebelum pen bukaan carta seterusnya. Jika pesanan adalah harga terhad, pesanan akan dilaksanakan hanya apabila syarat harga dipenuhi.process_orders_on_close(const string) Menentukan urutan penutupan pesanan. Nilai yang dibenarkan ialah: 'FIFO' atau 'ANY'. FIFO ((First-In, First-Out) bermaksud bahawa apabila lebih banyak perdagangan dibuka, perdagangan pertama harus ditutup.close_entries_rule(const int) Menunjukkan bilangan garisan garis terkini. Default adalah 50, maksimum dibenarkan 500.max_lines_count(const int) Menampilkan jumlah gambar tag terkini. Default ialah 50, maksimum yang dibenarkan ialah 500.max_labels_count(const int) Nombor gambar kotak terakhir yang dipaparkan. Default ialah 50, maksimum yang dibenarkan ialah 500.max_boxes_count(const int/float) Jaminan berganda adalah peratusan harga pembelian sekuriti di mana kedudukan berganda mesti dilindungi dengan wang tunai atau gadai janji. Ia mestilah bukan negatif. Ia boleh dipilih.margin_long(const int/float) Jaminan kosong adalah peratusan harga pembelian sekuriti di mana kedudukan kosong mesti dilindungi dengan wang tunai atau gadai janji. Ia mesti bukan negatif. Ia boleh dipilih.margin_short(const bool) Menentukan urutan penggambaran, pengisian, dan garis mendatar pada penunjuk. Jika benar, grafik akan digambarkan mengikut urutan mereka muncul dalam kod penunjuk, setiap grafik yang lebih baru digambarkan di atas grafik sebelumnya. Ini hanya berlaku untuk plot*() fungsi, fill dan hline.explicit_plot_zorder(const int/float) Jumlah dana yang pada mulanya boleh digunakan untuk perdagangan strategi, yang dinyatakan dalam mata wang yang ditakrifkan dalam kotak mata wang. ◦ Pilihan ◦ Nilai lalai adalah 1000000 ◦initial_capital(const int/float) Kadar pulangan tanpa risiko adalah perubahan peratusan tahunan nilai pelaburan yang mempunyai risiko minimum atau sifar untuk mengira nisbah Sharpe dan Sortino. Nilai lalai adalah 2risk_free_rate
Nota
Setiap skrip strategi mesti mempunyai panggilan strategi.
Kod PineScript yang menggunakan parameter calc_on_every_tick = true boleh membuat pengiraan yang berbeza untuk rekod sejarah dan data masa nyata.
Apabila anda menggunakan carta jenis bukan standard sebagai asas strategi, anda perlu tahu bahawa hasilnya akan berbeza. Pesanan akan dilaksanakan pada harga carta tersebut (misalnya, untuk Heikin Ashi, harga carta Heikin Ashi akan digunakan (rata-rata) bukan harga pasaran sebenar). Oleh itu, kami sangat mengesyorkan anda menggunakan carta jenis standard dalam strategi anda.
Lihat juga
indicator
strategy.entry
Ini adalah perintah untuk memasuki pasaran. Jika pesanan dengan ID yang sama telah dilampirkan, pesanan boleh diubah. Jika tidak ada pesanan dengan ID yang ditetapkan, pesanan baru akan dikeluarkan. Untuk menghentikan arahan masuk, perintah strategi.cancel atau strategi.cancel_all harus digunakan. Berbanding dengan fungsi strategi.order, fungsi strategi.entry dipengaruhi oleh piramid dan dapat membalikkan kedudukan pasaran dengan betul.
strategy.entry(id, direction, qty, limit, stop, oca_name, oca_type, comment, when, alert_message)
Contoh
pine
strategy(title = "simple strategy entry example")
strategy.entry("enter long", strategy.long, 1, when = open > high[1]) // enter long by market if current open great then previous high
strategy.entry("enter short", strategy.short, 1, when = open < low[1]) // enter short by market if current open less then previous low
parameter
id(series string) Parameter yang diperlukan。 pengenal pesanan。 Pesanan boleh dibatalkan atau diubah dengan merujuk kepada pengenalannya。direction(strategy_direction) Satu parameter yang diperlukan. Arah pegangan pasaran: 'strategy.long' untuk multihead, 'strategy.short' untuk kosong.qty(series int/float) Parameter yang boleh dipilih. Kontrak / bilangan saham / jam / jumlah unit yang diperdagangkan.limit(series int/float) Parameter boleh dipilih. Harga terhad pesanan. Jika ditentukan, jenis pesanan adalah "limit" atau "stop-limit". Jenis pesanan lain adalah "NaN".stop(series int/float) Parameter boleh dipilih. Stop-loss order. Jika telah ditentukan, jenis pesanan adalah "stop" atau "stop-limit". Jenis pesanan lain adalah "NaN".(series string) Parameter pilihan. Pesanan ini tergolong dalam nama kumpulan OCA. Jika pesanan itu tidak tergolong dalam kumpulan OCA, mesti ada watak kosong.Nota: FMZ tidak menyokong parameter ini.oca_name(input string) Parameter pilihan。 Jenis kumpulan pesanan OCA。 Nilai yang dibenarkan ialah: strategy.oca.none - pesanan tidak boleh tergolong dalam mana-mana kumpulan OCA tertentu; strategy.oca.cancel - pesanan harus tergolong dalam kumpulan OCA, sekali pesanan diserahkan, semua pesanan lain dalam kumpulan yang sama akan dibatalkan; strategy.oca.reduce - pesanan harus tergolong dalam kumpulan OCA, jika jumlah X kontrak pesanan telah diletakkan, maka jumlah kontrak pesanan lain dalam kumpulan OCA yang sama dikurangkan X。Nota: FMZ tidak menyokong parameter ini.oca_typecomment(series string) Parameter yang boleh dipilih.when(series bool) boleh dipilih. keadaan pesanan. jika "benar", pesanan ditempatkan. jika "salah", tidak ada yang berlaku. (pesanan dengan ID yang sama yang ditempatkan sebelumnya tidak dibatalkan).alert_message(series string) Satu parameter pilihan apabila anda menggunakan {{strategy.order.alert_message}} sebagai tanda tempat di dalam bidang mesej jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jemp
strategy.close
Ini adalah perintah untuk keluar dari pesanan dengan ID yang ditetapkan. Jika terdapat beberapa pesanan masuk dengan ID yang sama, mereka akan keluar pada masa yang sama. Jika tidak ada pesanan terbuka dengan ID yang ditetapkan semasa pemicu perintah, perintah itu tidak akan berlaku. Perintah ini menggunakan pesanan pasaran.
strategy.close(id, when, comment, qty, qty_percent, alert_message)
Contoh
pine
strategy("closeEntry Demo", overlay=false)
strategy.entry("buy", strategy.long, when = open > close)
strategy.close("buy", when = open < close, qty_percent = 50, comment = "close buy entry for 50%")
plot(strategy.position_size)
parameter
id(series string) Parameter yang diperlukan 。 Pengiktirafan pesanan 。 Anda boleh menutup pesanan dengan merujuk kepada pengenalannya 。when(series bool) pilihan parameter ≠ syarat perintah ≠qty(series int/float) Parameter yang boleh dipilih. Jumlah kontrak / saham / jam / unit untuk keluar dari urus niaga. Nilai lalai adalah 'NaN'.qty_percent(series int/float) mentakrifkan peratusan kedudukan kosong ((0-100) ◦ keutamaan yang lebih rendah daripada keutamaan parameter 'qty' ◦ pilihan ◦ default 100 ◦comment(series string) Parameter yang boleh dipilih.alert_message(series string) Satu parameter pilihan apabila anda menggunakan {{strategy.order.alert_message}} sebagai tanda tempat di dalam bidang mesej jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jemp
strategy.close_all
Keluar dari kedudukan pasaran semasa, untuk menjadikannya rata.
strategy.close_all(when, comment, alert_message)
Contoh
pine
strategy("closeAll Demo", overlay=false)
strategy.entry("buy", strategy.long, when = open > close)
strategy.close_all(when = open < close, comment = "close all entries")
plot(strategy.position_size)
parameter
when(series bool) pilihan parameter ≠ syarat perintah ≠comment(series string) Parameter yang boleh dipilih.alert_message(series string) Satu parameter pilihan apabila anda menggunakan {{strategy.order.alert_message}} sebagai tanda tempat di dalam bidang mesej jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jemp
strategy.exit
Ini adalah perintah untuk keluar dari kedudukan masuk atau keseluruhan pasaran. Jika anda menggunakan stop loss dan trace stop loss, jenis pesanan adalah stopstop, dan hanya satu yang akan diletakkan yang akan diserahkan terlebih dahulu. Jika semua parameter berikut 'profit', 'limit', 'loss', 'trail_points', 'trail_offset' adalah perintah untuk keluar dari pasaran, maka anda akan menggunakan perintah kegagalan, atau anda harus menggunakan perintah close_strategy.
strategy.exit(id, from_entry, qty, qty_percent, profit, limit, loss, stop, trail_price, trail_points, trail_offset, oca_name, comment, when, alert_message)
Contoh
pine
strategy(title = "simple strategy exit example")
strategy.entry("long", strategy.long, 1, when = open > high[1]) // enter long by market if current open great then previous high
strategy.exit("exit", "long", profit = 10, loss = 5) // generate full exit bracket (profit 10 points, loss 5 points per contract) from entry with name "long"
parameter
id(series string) Parameter yang diperlukan。 pengenal pesanan。 Pesanan boleh dibatalkan atau diubah dengan merujuk kepada pengenalannya。from_entry(series string) Parameter boleh dipilih. Keluar dengan menetapkan pengenal arahan masuk. Untuk keluar dari semua kedudukan, senar kosong harus digunakan.qty(series int/float) Parameter yang boleh dipilih. Jumlah kontrak / saham / jam / unit untuk keluar dari urus niaga. Nilai lalai adalah 'NaN'.qty_percent(series int/float) mentakrifkan peratusan kedudukan kosong ((0-100) ◦ keutamaan yang lebih rendah daripada keutamaan parameter 'qty' ◦ pilihan ◦ default 100 ◦profit(series int/float) boleh dipilih. Target keuntungan (dilambangkan dengan titik) Jika ditetapkan, keluar dari kedudukan pasaran dengan pesanan had apabila jumlah keuntungan yang ditetapkan (dilambangkan dengan titik) telah dicapai.limit(series int/float) pilihan parameter. Target keuntungan (untuk menentukan harga) Jika telah ditetapkan, keluar dari kedudukan pasaran dengan harga yang ditetapkan (atau lebih baik). Prioriti parameter 'limit' lebih tinggi daripada parameter 'profit' (jika nilai bukan 'NaN', maka 'limit' menggantikan 'profit').loss(series int/float) boleh dipilih. Stop loss (dilambangkan dengan titik) Jika ditentukan, keluar dari pasaran dengan stop loss apabila jumlah kerugian yang ditentukan (titik) telah dicapai.stop(series int/float) boleh dipilih. Stop loss ((harus menentukan harga). Jika ditentukan, keluar dari kedudukan pasaran dengan harga yang ditentukan (atau lebih buruk). Parameter 'stop loss' mempunyai keutamaan yang lebih tinggi daripada parameter 'loss' (jika nilai bukan 'NaN', maka 'stop loss' menggantikan 'loss').trail_price(series int/float) Parameter pilihan. Tracking stop loss activation level ((Pilih harga)). Jika ditentukan, Tracking stop loss will be placed when the specified price level is reached. Di dalam parameter trail_offset yang ditentukan untuk menentukan penyesuaian harga awal Tracking stop loss ((diukur dengan titik): X titik di bawah tahap pengaktifan untuk keluar dari multihead; X titik di atas tahap pengaktifan untuk keluar dari kosong.trail_points(series int/float) parameter pilihan ◦ Mengesan tahap pengaktifan stop loss ◦ Pendapatan dinyatakan dalam titik ◦ Jika ditetapkan, setelan stop loss akan diletakkan apabila tahap harga yang telah dikira ◦ Jumlah keuntungan ditentukan ◦ Perpindahan yang ditentukan dalam parameter setelan offset setelan untuk menentukan harga permulaan setelan stop loss ◦ Dihitung dalam titik: X titik di bawah tahap pengaktifan untuk keluar dari multihead; X titik di atas tahap pengaktifan untuk keluar dari kepala kosong ◦ Nilai lalai adalah NaN<unk>trail_offset(series int/float) parameter pilihan. Tracking stop loss activation level ((dilambangkan dengan titik). Dilambangkan dengan titik, bias digunakan untuk menentukan harga awal tracking stop loss: X titik lebih rendah daripada 'trail_price' atau 'trail_points' untuk keluar dari banyak kepala; X titik lebih tinggi daripada 'trail_price' atau 'trail_points' untuk keluar dari kepala kosong.(series string) Parameter pilihan. Nama kumpulan OCA (oca_type = strategy.oca.reduce) Objektif keuntungan, hentikan / mengesan hentikan. Jika nama tidak ditentukan, nama itu akan dihasilkan secara automatik.Nota: FMZ tidak menyokong parameter ini.oca_namecomment(series string) Parameter yang boleh dipilih.when(series bool) boleh dipilih. keadaan pesanan. jika "benar", pesanan ditempatkan. jika "salah", tidak ada yang berlaku. (pesanan dengan ID yang sama yang ditempatkan sebelumnya tidak dibatalkan).alert_message(series string) Satu parameter pilihan apabila anda menggunakan {{strategy.order.alert_message}} sebagai tanda tempat di dalam bidang mesej jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jemp
strategy.cancel
Ini adalah arahan untuk membatalkan / mematikan semua senarai pendahuluan dengan menggunakan nama rujukan, yang dihasilkan oleh fungsi berikut: strategy.order, strategy.entry dan strategy.exit.
strategy.cancel(id, when)
Contoh
pine
strategy(title = "simple order cancellation example")
conditionForBuy = open > high[1]
strategy.entry("long", strategy.long, 1, limit = low, when = conditionForBuy) // enter long using limit order at low price of current bar if conditionForBuy is true
strategy.cancel("long", when = not conditionForBuy) // cancel the entry order with name "long" if conditionForBuy is false
parameter
id(series string) Parameter yang mesti dipilih。 pengenalan pesanan。 penempatan pengenalan tersebut untuk membatalkan pesanan。when(series bool) pilihan. Mengilangkan pesanan berdasarkan ID. Jika "true", pesanan akan dibatalkan. Secara lalai "true".
strategy.cancel_all
Ini adalah untuk membatalkan/menghentikan semua arahan senarai pendahuluan yang dihasilkan oleh fungsi berikut: strategy.order, strategy.entry dan strategy.exit.
strategy.cancel_all(when)
Contoh
pine
strategy(title = "simple all orders cancellation example")
conditionForBuy1 = open > high[1]
strategy.entry("long entry 1", strategy.long, 1, limit = low, when = conditionForBuy1) // enter long by limit if conditionForBuy1 is true
conditionForBuy2 = conditionForBuy1 and open[1] > high[2]
strategy.entry("long entry 2", strategy.long, 1, limit = ta.lowest(low, 2), when = conditionForBuy2) // enter long by limit if conditionForBuy2 is true
conditionForStopTrading = open < ta.lowest(low, 2)
strategy.cancel_all(conditionForStopTrading) // cancel both limit orders if the conditon conditionForStopTrading is true
parameter
when(series bool) Parameter yang boleh dipilih <unk> membatalkan syarat semua pesanan <unk> Jika syaratnya benar, semua pesanan aktif akan dibatalkan <unk> Nilai lalai adalah <unk>true<unk> <unk>
strategy.order
Ini adalah perintah perintah berikut. Jika pesanan dengan ID yang sama telah dilampirkan, pesanan boleh diubah. Jika tidak ada pesanan dengan ID yang ditetapkan, pesanan baru akan dikeluarkan. Untuk menghentikan pesanan, perintah strategi.cancel atau strategi.cancel_all harus digunakan.
strategy.order(id, direction, qty, limit, stop, oca_name, oca_type, comment, when, alert_message)
Contoh
strategy(title = "simple strategy order example")
strategy.order("buy", strategy.long, 1, when = open > high[1]) // buy by market if current open great then previous high
strategy.order("sell", strategy.short, 1, when = open < low[1]) // sell by market if current open less then previous low
parameter
id(series string) Parameter yang diperlukan。 pengenal pesanan。 Pesanan boleh dibatalkan atau diubah dengan merujuk kepada pengenalannya。direction(strategy_direction) Satu parameter yang diperlukan. Arah pesanan: 'strategy.long' untuk membeli, 'strategy.short' untuk menjualqty(series int/float) Parameter yang boleh dipilih. Kontrak / bilangan saham / jam / jumlah unit yang diperdagangkan.limit(series int/float) Parameter boleh dipilih. Harga terhad pesanan. Jika ditentukan, jenis pesanan adalah "limit" atau "stop-limit". Jenis pesanan lain adalah "NaN".stop(series int/float) Parameter boleh dipilih. Stop-loss order. Jika telah ditentukan, jenis pesanan adalah "stop" atau "stop-limit". Jenis pesanan lain adalah "NaN".(series string) Parameter pilihan. Pesanan ini tergolong dalam nama kumpulan OCA. Jika pesanan itu tidak tergolong dalam kumpulan OCA, mesti ada watak kosong.Nota: FMZ tidak menyokong parameter ini.oca_name(input string) Parameter pilihan。 Jenis kumpulan pesanan OCA。 Nilai yang dibenarkan ialah: strategy.oca.none - pesanan tidak boleh tergolong dalam mana-mana kumpulan OCA tertentu; strategy.oca.cancel - pesanan harus tergolong dalam kumpulan OCA, sekali pesanan diserahkan, semua pesanan lain dalam kumpulan yang sama akan dibatalkan; strategy.oca.reduce - pesanan harus tergolong dalam kumpulan OCA, jika jumlah X kontrak pesanan telah diletakkan, maka jumlah kontrak pesanan lain dalam kumpulan OCA yang sama dikurangkan X。Nota: FMZ tidak menyokong parameter ini.oca_typecomment(series string) Parameter yang boleh dipilih.when(series bool) boleh dipilih. keadaan pesanan. jika "benar", pesanan ditempatkan. jika "salah", tidak ada yang berlaku. (pesanan dengan ID yang sama yang ditempatkan sebelumnya tidak dibatalkan).alert_message(series string) Satu parameter pilihan apabila anda menggunakan {{strategy.order.alert_message}} sebagai tanda tempat di dalam bidang mesej jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jempol jemp
strategy.opentrades.entry_bar_index
Kembali ke bar_index <unk>
strategy.opentrades.entry_bar_index(trade_num)
Tunggu 10 garis K dan tutup.
Contoh
pine
strategy("`strategy.opentrades.entry_bar_index` Example")
barsSinceLastEntry() =>
strategy.opentrades > 0 ? bar_index - strategy.opentrades.entry_bar_index(strategy.opentrades - 1) : na
// Enter a long position if there are no open positions.
if strategy.opentrades == 0
strategy.entry("Long", strategy.long)
// Close the long position after 10 bars.
if barsSinceLastEntry() >= 10
strategy.close("Long")
parameter
trade_num(series int) Nombor urus niaga yang tidak diimbangi. Nombor urus niaga pertama adalah sifar.
Lihat juga
strategy.closedtrades.entry_bar_index strategy.closedtrades.exit_bar_index
strategy.opentrades.entry_id
ID yang dikembalikan untuk masuk ke dalam perdagangan yang belum dihapuskan.
strategy.opentrades.entry_id(trade_num)
Contoh
pine
strategy("`strategy.opentrades.entry_id` Example", overlay = true)
// We enter a long position when 14 period sma crosses over 28 period sma.
// We enter a short position when 14 period sma crosses under 28 period sma.
longCondition = ta.crossover(ta.sma(close, 14), ta.sma(close, 28))
shortCondition = ta.crossunder(ta.sma(close, 14), ta.sma(close, 28))
// Strategy calls to enter a long or short position when the corresponding condition is met.
if longCondition
strategy.entry("Long entry at bar #" + str.tostring(bar_index), strategy.long)
if shortCondition
strategy.entry("Short entry at bar #" + str.tostring(bar_index), strategy.short)
// Display ID of the latest open position.
if barstate.islastconfirmedhistory
runtime.log("Last opened position is " + strategy.opentrades.entry_id(strategy.opentrades - 1))
Nilai yang dikembalikan
ID yang dikembalikan untuk masuk ke dalam perdagangan yang belum dihapuskan.
parameter
trade_num(series int) Nombor urus niaga yang tidak diimbangi. Nombor urus niaga pertama adalah sifar.
Nota
Jika trade_num tidak berada dalam julat, fungsi ini akan mengembalikan na:0 ke strategy.opentrades-1。
Lihat juga
strategy.opentrades.entry_bar_index strategy.opentrades.entry_time
strategy.opentrades.entry_price
Harga kemasukan untuk perdagangan yang belum selesai.
strategy.opentrades.entry_price(trade_num)
Contoh
pine
strategy("strategy.closedtrades.entry_price Example 1")
// Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars.
if bar_index % 15 == 0
strategy.entry("Long", strategy.long)
if bar_index % 20 == 0
strategy.close("Long")
// Return the entry price for the latest closed trade.
entryPrice = strategy.closedtrades.entry_price(strategy.closedtrades - 1)
plot(entryPrice, "Long entry price")
Pengiraan purata harga kedudukan belum rata
Contoh
pine
strategy("strategy.opentrades.entry_price Example 2", pyramiding = 2)
// Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars.
if bar_index % 15 == 0
strategy.entry("Long", strategy.long)
if bar_index % 20 == 0
strategy.close("Long")
// Calculate average open position price.
avgOpenPositionPrice() =>
sumOpenPositionPrice = 0.0
for tradeNo = 0 to strategy.opentrades - 1
sumOpenPositionPrice += strategy.opentrades.entry_price(tradeNo) * strategy.opentrades.size(tradeNo) / strategy.position_size
result = nz(sumOpenPositionPrice / strategy.opentrades)
plot(avgOpenPositionPrice())
parameter
trade_num(series int) Nombor urus niaga yang tidak diimbangi. Nombor urus niaga pertama adalah sifar.
Lihat juga
strategy.closedtrades.exit_price
strategy.opentrades.entry_time
Kembali ke masa UNIX untuk masuk ke dalam perdagangan yang belum diimbangi.
strategy.opentrades.entry_time(trade_num)
Contoh
pine
strategy("strategy.opentrades.entry_time Example")
// Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars.
if bar_index % 15 == 0
strategy.entry("Long", strategy.long)
if bar_index % 20 == 0
strategy.close("Long")
// Calculates duration in milliseconds since the last position was opened.
timeSinceLastEntry()=>
strategy.opentrades > 0 ? (time - strategy.opentrades.entry_time(strategy.opentrades - 1)) : na
plot(timeSinceLastEntry() / 1000 * 60 * 60 * 24, "Days since last entry")
parameter
trade_num(series int) Nombor urus niaga yang tidak diimbangi. Nombor urus niaga pertama adalah sifar.
Lihat juga
strategy.closedtrades.entry_time strategy.closedtrades.exit_time
strategy.opentrades.profit
Kerugian yang dikembalikan dari perdagangan yang belum dihapuskan. Kerugian dinyatakan sebagai nilai negatif.
strategy.opentrades.profit(trade_num)
Kembali ke keuntungan dari perdagangan terakhir
Contoh
pine
strategy("`strategy.opentrades.profit` Example 1", commission_type = strategy.commission.percent, commission_value = 0.1)
// Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars.
if bar_index % 15 == 0
strategy.entry("Long", strategy.long)
if bar_index % 20 == 0
strategy.close("Long")
plot(strategy.opentrades.profit(strategy.opentrades - 1), "Profit of the latest open trade")
Mengira keuntungan dari semua urus niaga yang belum dihapuskan
Contoh
pine
strategy("`strategy.opentrades.profit` Example 2", pyramiding = 5)
// Strategy calls to enter 5 long positions every 2 bars.
if bar_index % 2 == 0
strategy.entry("Long", strategy.long, qty = 5)
// Calculate open profit or loss for the open positions.
tradeOpenPL() =>
sumProfit = 0.0
for tradeNo = 0 to strategy.opentrades - 1
sumProfit += strategy.opentrades.profit(tradeNo)
result = sumProfit
plot(tradeOpenPL(), "Profit of all open trades")
parameter
trade_num(series int) Nombor urus niaga yang tidak diimbangi. Nombor urus niaga pertama adalah sifar.
Lihat juga
strategy.closedtrades.profit strategy.openprofit strategy.netprofit strategy.grossprofit
strategy.opentrades.size
Mengembalikan arah dagangan dan jumlah kontrak dalam perdagangan yang belum diatasi. Jika nilai> 0, kedudukan pasaran adalah berbilang. Jika nilai < 0, kedudukan pasaran adalah kosong.
strategy.opentrades.size(trade_num)
Contoh
pine
strategy("`strategy.opentrades.size` Example 1")
// We calculate the max amt of shares we can buy.
amtShares = math.floor(strategy.equity / close)
// Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars
if bar_index % 15 == 0
strategy.entry("Long", strategy.long, qty = amtShares)
if bar_index % 20 == 0
strategy.close("Long")
// Plot the number of contracts in the latest open trade.
plot(strategy.opentrades.size(strategy.opentrades - 1), "Amount of contracts in latest open trade")
Peratusan keuntungan purata bagi transaksi yang belum ditamatkan
Contoh
pine
strategy("`strategy.opentrades.size` Example 2")
// Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars.
if bar_index % 15 == 0
strategy.entry("Long", strategy.long)
if bar_index % 20 == 0
strategy.close("Long")
// Calculate profit for all open trades.
profitPct = 0.0
for tradeNo = 0 to strategy.opentrades - 1
entryP = strategy.opentrades.entry_price(tradeNo)
exitP = close
profitPct += (exitP - entryP) / entryP * strategy.opentrades.size(tradeNo) * 100
// Calculate average profit percent for all open trades.
avgProfitPct = nz(profitPct / strategy.opentrades)
parameter
trade_num(series int) Nombor urus niaga yang tidak diimbangi. Nombor urus niaga pertama adalah sifar.
Lihat juga
strategy.closedtrades.size strategy.position_size strategy.opentrades strategy.closedtrades
strategy.closedtrades.entry_bar_index
Kembali ke bar_index untuk kemasukan perdagangan yang telah ditamatkan.
strategy.closedtrades.entry_bar_index(trade_num)
Contoh
pine
strategy("strategy.closedtrades.entry_bar_index Example")
// Enter long trades on three rising bars; exit on two falling bars.
if ta.rising(close, 3)
strategy.entry("Long", strategy.long)
if ta.falling(close, 2)
strategy.close("Long")
// Function that calculates the average amount of bars in a trade.
avgBarsPerTrade() =>
sumBarsPerTrade = 0
for tradeNo = 0 to strategy.closedtrades - 1
// Loop through all closed trades, starting with the oldest.
sumBarsPerTrade += strategy.closedtrades.exit_bar_index(tradeNo) - strategy.closedtrades.entry_bar_index(tradeNo) + 1
result = nz(sumBarsPerTrade / strategy.closedtrades)
plot(avgBarsPerTrade())
parameter
trade_num(series int) Nombor transaksi yang telah ditukarkan. Nombor transaksi pertama adalah sifar.
Lihat juga
strategy.closedtrades.exit_bar_index strategy.opentrades.entry_bar_index
strategy.closedtrades.exit_price
Kembali kepada harga permulaan perdagangan yang telah ditamatkan.
strategy.closedtrades.exit_price(trade_num)
Contoh
pine
strategy("strategy.closedtrades.exit_price Example 1")
// We are creating a long trade every 5 bars
if bar_index % 5 == 0
strategy.entry("Long", strategy.long)
strategy.close("Long")
// Return the exit price from the latest closed trade.
exitPrice = strategy.closedtrades.exit_price(strategy.closedtrades - 1)
plot(exitPrice, "Long exit price")
Hitung peratusan keuntungan purata bagi semua urus niaga yang ditamatkan
Contoh
pine
strategy("strategy.closedtrades.exit_price Example 2")
// Strategy calls to create single short and long trades.
if bar_index == last_bar_index - 15
strategy.entry("Long Entry", strategy.long)
else if bar_index == last_bar_index - 10
strategy.close("Long Entry")
strategy.entry("Short", strategy.short)
else if bar_index == last_bar_index - 5
strategy.close("Short")
// Calculate profit for both closed trades.
profitPct = 0.0
for tradeNo = 0 to strategy.closedtrades - 1
entryP = strategy.closedtrades.entry_price(tradeNo)
exitP = strategy.closedtrades.exit_price(tradeNo)
profitPct += (exitP - entryP) / entryP * strategy.closedtrades.size(tradeNo) * 100
// Calculate average profit percent for both closed trades.
avgProfitPct = nz(profitPct / strategy.closedtrades)
plot(avgProfitPct)
parameter
trade_num(series int) Nombor transaksi yang telah ditukarkan. Nombor transaksi pertama adalah sifar.
Lihat juga
strategy.closedtrades.entry_price
strategy.closedtrades.exit_bar_index
Kembali ke bar_index yang telah ditamatkan.
strategy.closedtrades.exit_bar_index(trade_num)
Contoh
pine
strategy("strategy.closedtrades.exit_bar_index Example 1")
// Strategy calls to place a single short trade. We enter the trade at the first bar and exit the trade at 10 bars before the last chart bar.
if bar_index == 0
strategy.entry("Short", strategy.short)
if bar_index == last_bar_index - 10
strategy.close("Short")
// Calculate the amount of bars since the last closed trade.
barsSinceClosed = strategy.closedtrades > 0 ? bar_index - strategy.closedtrades.exit_bar_index(strategy.closedtrades - 1) : na
plot(barsSinceClosed, "Bars since last closed trade")
Hitung jumlah purata K untuk setiap transaksi.
Contoh
pine
strategy("strategy.closedtrades.exit_bar_index Example 2")
// Enter long trades on three rising bars; exit on two falling bars.
if ta.rising(close, 3)
strategy.entry("Long", strategy.long)
if ta.falling(close, 2)
strategy.close("Long")
// Function that calculates the average amount of bars per trade.
avgBarsPerTrade() =>
sumBarsPerTrade = 0
for tradeNo = 0 to strategy.closedtrades - 1
// Loop through all closed trades, starting with the oldest.
sumBarsPerTrade += strategy.closedtrades.exit_bar_index(tradeNo) - strategy.closedtrades.entry_bar_index(tradeNo) + 1
result = nz(sumBarsPerTrade / strategy.closedtrades)
plot(avgBarsPerTrade())
parameter
trade_num(series int) Nombor transaksi yang telah ditukarkan. Nombor transaksi pertama adalah sifar.
Lihat juga
bar_index
strategy.closedtrades.entry_id
Id yang dikembalikan untuk masuk ke dalam perdagangan yang telah ditamatkan.
strategy.closedtrades.entry_id(trade_num)
Contoh
pine
strategy("strategy.closedtrades.entry_id Example", overlay = true)
var isOpen = false
var openIndex = -1
// Enter a short position and close at the previous to last bar.
if not barstate.ishistory and not isOpen
strategy.entry("Short at bar #" + str.tostring(bar_index), strategy.short)
isOpen := true
openIndex := bar_index
if openIndex != -1 and bar_index > openIndex + 100
strategy.close_all()
// Display ID of the last entry position.
if barstate.islastconfirmedhistory
runtime.log("Last Entry ID is: " + strategy.closedtrades.entry_id(strategy.closedtrades - 1))
Nilai yang dikembalikan
Id yang dikembalikan untuk masuk ke dalam perdagangan yang telah ditamatkan.
parameter
trade_num(series int) Nombor transaksi yang telah ditukarkan. Nombor transaksi pertama adalah sifar.
Nota
Jika trade_num tidak berada dalam julat, fungsi ini akan mengembalikan na:0 kepada strategy.closedtrades-1。
Lihat juga
strategy.closedtrades.entry_bar_index strategy.closedtrades.entry_time
strategy.closedtrades.entry_price
Kembali ke harga kemasukan untuk transaksi yang telah dihapuskan.
strategy.closedtrades.entry_price(trade_num)
Contoh
pine
strategy("strategy.closedtrades.entry_price Example 1")
// Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars.
if bar_index % 15 == 0
strategy.entry("Long", strategy.long)
if bar_index % 20 == 0
strategy.close("Long")
// Return the entry price for the latest entry.
entryPrice = strategy.closedtrades.entry_price(strategy.closedtrades - 1)
plot(entryPrice, "Long entry price")
Hitung peratusan keuntungan purata bagi semua urus niaga yang ditamatkan
Contoh
pine
strategy("strategy.closedtrades.entry_price Example 2")
// Strategy calls to create single short and long trades
if bar_index == last_bar_index - 15
strategy.entry("Long Entry", strategy.long)
else if bar_index == last_bar_index - 10
strategy.close("Long Entry")
strategy.entry("Short", strategy.short)
else if bar_index == last_bar_index - 5
strategy.close("Short")
// Calculate profit for both closed trades.
profitPct = 0.0
for tradeNo = 0 to strategy.closedtrades - 1
entryP = strategy.closedtrades.entry_price(tradeNo)
exitP = strategy.closedtrades.exit_price(tradeNo)
profitPct += (exitP - entryP) / entryP * strategy.closedtrades.size(tradeNo) * 100
// Calculate average profit percent for both closed trades.
avgProfitPct = nz(profitPct / strategy.closedtrades)
plot(avgProfitPct)
parameter
trade_num(series int) Nombor transaksi yang telah ditukarkan. Nombor transaksi pertama adalah sifar.
Lihat juga
strategy.closedtrades.exit_price strategy.closedtrades.size strategy.closedtrades
strategy.closedtrades.entry_time
Kembali ke masa UNIX yang telah ditamatkan.
strategy.closedtrades.entry_time(trade_num)
Contoh
pine
strategy("strategy.closedtrades.entry_time Example", overlay = true)
// Enter long trades on three rising bars; exit on two falling bars.
if ta.rising(close, 3)
strategy.entry("Long", strategy.long)
if ta.falling(close, 2)
strategy.close("Long")
// Calculate the average trade duration
avgTradeDuration() =>
sumTradeDuration = 0
for i = 0 to strategy.closedtrades - 1
sumTradeDuration += strategy.closedtrades.exit_time(i) - strategy.closedtrades.entry_time(i)
result = nz(sumTradeDuration / strategy.closedtrades)
// Display average duration converted to seconds and formatted using 2 decimal points
if barstate.islastconfirmedhistory
runtime.log(str.tostring(avgTradeDuration() / 1000, "#.##") + " seconds")
parameter
trade_num(series int) Nombor transaksi yang telah ditukarkan. Nombor transaksi pertama adalah sifar.
Lihat juga
strategy.opentrades.entry_time strategy.closedtrades.exit_time time
strategy.closedtrades.profit
Kembali ke kerugian yang ditanggung oleh perdagangan yang telah dipadamkan. Kerugian dinyatakan sebagai nilai negatif.
strategy.closedtrades.profit(trade_num)
Contoh
pine
strategy("`strategy.closedtrades.profit` Example")
// Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars.
if bar_index % 15 == 0
strategy.entry("Long", strategy.long)
if bar_index % 20 == 0
strategy.close("Long")
// Calculate average gross profit by adding the difference between gross profit and commission.
avgGrossProfit() =>
sumGrossProfit = 0.0
for tradeNo = 0 to strategy.closedtrades - 1
sumGrossProfit += strategy.closedtrades.profit(tradeNo) - strategy.closedtrades.commission(tradeNo)
result = nz(sumGrossProfit / strategy.closedtrades)
plot(avgGrossProfit(), "Average gross profit")
parameter
trade_num(series int) Nombor transaksi yang telah ditukarkan. Nombor transaksi pertama adalah sifar.
Lihat juga
strategy.opentrades.profit strategy.closedtrades.commission
strategy.closedtrades.size
Mengembalikan arah dagangan dan jumlah kontrak dalam perdagangan yang telah dipadamkan. Jika nilai> 0, kedudukan pasaran adalah lebih banyak. Jika nilai < 0, kedudukan pasaran adalah kosong.
strategy.closedtrades.size(trade_num)
Contoh
pine
strategy("`strategy.closedtrades.size` Example 1")
// We calculate the max amt of shares we can buy.
amtShares = math.floor(strategy.equity / close)
// Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars
if bar_index % 15 == 0
strategy.entry("Long", strategy.long, qty = amtShares)
if bar_index % 20 == 0
strategy.close("Long")
// Plot the number of contracts traded in the last closed trade.
plot(strategy.closedtrades.size(strategy.closedtrades - 1), "Number of contracts traded")
Mengira purata peratusan keuntungan dalam perdagangan setaraf
Contoh
pine
strategy("`strategy.closedtrades.size` Example 2")
// Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars.
if bar_index % 15 == 0
strategy.entry("Long", strategy.long)
if bar_index % 20 == 0
strategy.close("Long")
// Calculate profit for both closed trades.
profitPct = 0.0
for tradeNo = 0 to strategy.closedtrades - 1
entryP = strategy.closedtrades.entry_price(tradeNo)
exitP = strategy.closedtrades.exit_price(tradeNo)
profitPct += (exitP - entryP) / entryP * strategy.closedtrades.size(tradeNo) * 100
// Calculate average profit percent for both closed trades.
avgProfitPct = nz(profitPct / strategy.closedtrades)
plot(avgProfitPct)
parameter
trade_num(series int) Nombor transaksi yang telah ditukarkan. Nombor transaksi pertama adalah sifar.
Lihat juga
strategy.opentrades.size strategy.position_size strategy.closedtrades strategy.opentrades
strategy.closedtrades.exit_time
Kembali ke masa UNIX untuk keluar dari perdagangan yang telah diimbangi.
strategy.closedtrades.exit_time(trade_num)
Contoh
pine
strategy("strategy.closedtrades.exit_time Example 1")
// Enter long trades on three rising bars; exit on two falling bars.
if ta.rising(close, 3)
strategy.entry("Long", strategy.long)
if ta.falling(close, 2)
strategy.close("Long")
// Calculate the average trade duration.
avgTradeDuration() =>
sumTradeDuration = 0
for i = 0 to strategy.closedtrades - 1
sumTradeDuration += strategy.closedtrades.exit_time(i) - strategy.closedtrades.entry_time(i)
result = nz(sumTradeDuration / strategy.closedtrades)
// Display average duration converted to seconds and formatted using 2 decimal points.
if barstate.islastconfirmedhistory
label.new(bar_index, high, str.tostring(avgTradeDuration() / 1000, "#.##") + " seconds")
X saat untuk membuka semula perdagangan yang telah ditutup
Contoh
strategy("strategy.closedtrades.exit_time Example 2")
// Strategy calls to emulate a single long trade at the first bar.
if bar_index == 0
strategy.entry("Long", strategy.long)
reopenPositionAfter(timeSec) =>
if strategy.closedtrades > 0
if time - strategy.closedtrades.exit_time(strategy.closedtrades - 1) >= timeSec * 1000
strategy.entry("Long", strategy.long)
// Reopen last closed position after 120 sec.
reopenPositionAfter(120)
if ta.change(strategy.opentrades)
strategy.exit("Long", stop = low * 0.9, profit = high * 2.5)
parameter
trade_num(series int) Nombor transaksi yang telah ditukarkan. Nombor transaksi pertama adalah sifar.
Lihat juga
strategy.closedtrades.entry_time
strategy.risk.allow_entry_in
Fungsi ini boleh digunakan untuk menentukan arah di mana fungsi strategi.entry dibenarkan untuk membuka kedudukan di pasaran.
strategy.risk.allow_entry_in(value)
Contoh
pine
strategy("strategy.risk.allow_entry_in")
strategy.risk.allow_entry_in(strategy.direction.long)
strategy.entry("Long", strategy.long, when = open > close)
// Instead of opening a short position with 10 contracts, this command will close long entries.
strategy.entry("Short", strategy.short, when = open < close, qty = 10)
parameter
value(simple string) arah yang dibenarkan. Nilai yang mungkin:strategy.direction.all、strategy.direction.long、strategy.direction.short
strategy.risk.max_position_size
Peraturan ini bertujuan untuk menentukan nilai maksimum kedudukan pasaran. Peraturan ini mempengaruhi fungsi berikut:strategy.entry。 Bilangan entri yang boleh dikurangkan (jika perlu) kepada jumlah kontrak/saham/tangan/unit, jadi jumlah kedudukan tidak melebihi nilai yang dinyatakan dalam 'strategy.risk.max_position_size'。 Jika jumlah minimum masih melanggar peraturan, pesanan tidak akan diletakkan。
strategy.risk.max_position_size(contracts)
Contoh
pine
strategy("risk.max_position_size Demo", default_qty_value = 100)
strategy.risk.max_position_size(10)
strategy.entry("buy", strategy.long, when = open > close)
plot(strategy.position_size) // max plot value will be 10
parameter
contracts(simple int/float) Parameter yang diperlukan. Jumlah maksimum kontrak / saham / tangan / unit di kedudukan.
math
math.abs
Jikanumber >= 0,numberNilai mutlak ialah numberJika tidak -number。
math.abs(number)
Nilai yang dikembalikan
numberNilai mutlak.
math.acos
Fungsi acos mengembalikan bilangan yang bertentangan dengan arans ((dilambangkan dengan lengkung), seperti cos ((acos ((y)) = y dalam julat y[-1, 1]。
math.acos(angle)
Nilai yang dikembalikan
Nilai resonansi. Jika y keluar dari julat[-1,1], sudut pulangan di[0, Pi] atau dalam na.
math.random
Mengembalikan nilai rawak palsu. Fungsi ini akan menghasilkan urutan nilai yang berbeza untuk setiap skrip yang dijalankan. Menggunakan nilai yang sama untuk parameter biji pilihan akan menghasilkan urutan yang boleh diulang.
math.random(min, max, seed)
Nilai yang dikembalikan
Satu nilai rawak.
parameter
min(series int/float) Had bawah bagi julat nilai rawak ≠ nilai yang tidak termasuk dalam julat ≠ nilai lalai 0 ≠max(series int/float) Had teratas bagi julat nilai rawak. Nilai ini tidak termasuk dalam julat. Nilai lalai ialah 1seed(input int) Pilihan. Apabila menggunakan benih yang sama, fungsi ini boleh dipanggil secara berturut-turut untuk menghasilkan satu set nilai yang boleh diulang.
math.asin
Fungsi asin mengembalikan sinonim nombor ((dilambangkan dengan lengkung), sinonim ((asin ((y)) = y dalam julat y[-1, 1]。
math.asin(angle)
Nilai yang dikembalikan
Nilai resonansi. Jika y keluar dari julat[-1,1], sudut pulangan di[-Pi / 2,Pi / 2] atau dalam na.
math.atan
Fungsi atan kembalikan bilangan yang dipotong secara logarithmik ((dilambangkan dalam bentuk lengkung), tan ((atan ((y)) = y dalam mana-mana y.
math.atan(angle)
Nilai yang dikembalikan
Nilai pemotongan terbalik; sudut pulangan di[-Pi / 2, Pi / 2] dalam jangkauan.
math.ceil
Mengambil fungsi integer ke atas mengembalikan bilangan bulat terkecil yang lebih besar daripada atau sama dengan argumen (yang paling hampir kepada negatif tak terhingga).
math.ceil(number)
Nilai yang dikembalikan
Lebih kecil daripada atau sama dengan bilangan bulat terkecil yang diberikan
Lihat juga
math.floor math.round
math.cos
Fungsi cos kembalikan sudut pada sinus segitiga.
math.cos(angle)
Nilai yang dikembalikan
Rangkaian segitiga di sudut.
parameter
angle(series int/float) sudut, dengan lengkungan
math.exp
numberJadi, fungsi exp ialah e.numberAliran, di mana e adalah bilangan Euler.
math.exp(number)
Nilai yang dikembalikan
Satu nilai untuk e, ia ialah <unk>numberYang Mulia.
Lihat juga
math.pow
math.floor
math.floor(number)
Nilai yang dikembalikan
Lebih kecil daripada atau sama dengan bilangan bulat terbesar dari nombor yang diberikan.
Lihat juga
math.ceil math.round
math.log
Mana-mana.numberArginim semula jadi > 0 adalah satu-satunya y yang menjadikan e^y = number。
math.log(number)
Nilai yang dikembalikan
numberArgonim semula jadi.
Lihat juga
math.log10
math.log10
numberArgumen yang biasa digunakan (atau berdasarkan 10) ialah nilai yang perlu dinaikkan 10 untuk mendapatkannumber。10^y = number。
math.log10(number)
Nilai yang dikembalikan
numberArginal dengan asas 10.
Lihat juga
math.log
math.pow
Fungsi matriks matematik
math.pow(base, exponent)
Contoh
pine
// math.pow
plot(math.pow(close, 2))
Nilai yang dikembalikan
basemeningkat kepadaexponentJikabaseIa adalah satu siri yang dikira mengikut unsur-unsur.
parameter
base(series int/float) Tentukan asas yang akan digunakan.exponent(series int/float) Tentukan indeks.
math.sign
Simbol (signum) bagi nombor atom adalah 0 jika nombor atom adalah 0, 1.0 jika nombor atom lebih besar daripada 0 dan -1,0 jika nombor atom lebih kecil daripada 0.
math.sign(number)
Nilai yang dikembalikan
Logo parameter
math.sin
Fungsi sinonim mengembalikan sinonim segitiga pada satu sudut.
math.sin(angle)
Nilai yang dikembalikan
Sinar segitiga sudut.
parameter
angle(series int/float) sudut, dengan lengkungan
math.sqrt
Mana-mananumberAkar kuasa dua >=0 adalah satu-satunya y >=0 yang menjadikan y^2 = number。
math.sqrt(number)
Nilai yang dikembalikan
numberAkar kuasa dua.
Lihat juga
math.pow
math.tan
Tan fungsi kembali sudut segitiga lurus.
math.tan(angle)
Nilai yang dikembalikan
Sudut segi tiga tepat.
parameter
angle(series int/float) sudut, dengan lengkungan
math.round
Kembali.numberJika anda menggunakan bilangan bulat, anda perlu mengelilingi bilangan bulat yang paling dekat dengan nombor bulat, dan kemudian anda perlu mengelilingi bilangan bulat ke atas.precisionParameter, akan mengembalikan nilai titik-titik terapung yang diletakkan ke dalam digit kecil.
math.round(number)
math.round(number, precision)
Nilai yang dikembalikan
numberNombor ini akan dikira ke bilangan bulat terdekat, atau mengikut ketepatan.
parameter
number(series int/float) Untuk mengelilingi nilai yang diletakkan di dalam.precision(series int) Pilihan.numberDigit kecil yang akan dikutip. Apabila tidak diberikan parameter, dikutip ke bilangan bulat terdekat.
Nota
Perhatikan bahawa untuk nilai 'na', fungsi akan mengembalikan 'na' <unk>.
Lihat juga
math.ceil math.floor
math.max
Mengembalikan yang terbesar daripada beberapa nilai.
math.max(number0, number1, ...)
Contoh
pine
// math.max
plot(math.max(close, open))
plot(math.max(close, math.max(open, 42)))
Nilai yang dikembalikan
Yang terbesar daripada beberapa nilai yang diberikan.
Lihat juga
math.min
math.min
Mengembalikan nilai yang paling kecil daripada beberapa nilai.
math.min(number0, number1, ...)
Contoh
pine
// math.min
plot(math.min(close, open))
plot(math.min(close, math.min(open, 42)))
Nilai yang dikembalikan
Minimum dalam pelbagai nilai yang diberikan.
Lihat juga
math.max
math.avg
Hitung nilai purata semua siri ((elemen yang sepadan) <unk>
math.avg(number0, number1, ...)
Nilai yang dikembalikan
Purata
Lihat juga
math.sum ta.cum ta.sma
math.round_to_mintick
Mengembalikan nilai mintick yang diselubungi ke dalam barangan, iaitu dapat dibahagikan dengan nilai yang paling dekat dengan syminfo.mintick, tanpa sisa, dan diselubungi ke atas.
math.round_to_mintick(number)
Nilai yang dikembalikan
number"Saya tidak tahu apa-apa tentangnya, saya tidak tahu apa-apa tentangnya.
parameter
number(series int/float) Untuk mengelilingi nilai yang diletakkan di dalam.
Lihat juga
math.ceil math.floor
math.sum
Fungsi sum mengembalikan gabungan geser nilai y terakhir untuk x.
math.sum(source, length)
Nilai yang dikembalikan
lengthK baris kembalisourceJumlah keseluruhan
parameter
source(series int/float) Nilai siri yang akan dijalankanlength(series int) Jumlah baris K (panjang).
math.todegrees
Dari sudut dalam satuan lengkung, kembali ke sudut yang hampir bersamaan dalam satuan darjah.
math.todegrees(radians)
Nilai yang dikembalikan
Nilai sudut yang diukur dalam unit.
parameter
radians(series int/float) sudut dalam satuan lengkung.
math.toradians
Dari sudut dalam satuan darjah, kembali ke sudut yang hampir sama dalam satuan lengkung.
math.toradians(degrees)
Nilai yang dikembalikan
Nilai sudut dalam satuan lengkung.
parameter
degrees(series int/float) sudut yang diukur dalam satuan.
others
fixnan
Untuk siri yang diberikan, nilai NaN digantikan dengan nilai bukan NaN sebelumnya.
fixnan(source)
Nilai yang dikembalikan
Siri tanpa pengurangan na.
parameter
source(series int/float/bool/color)
nz
Ganti nilai NaN dengan sifar (atau nombor yang ditetapkan) dalam siri tersebut.
nz(source, replacement)
nz(source)
Contoh
pine
// nz
plot(nz(ta.sma(close, 100)))
Nilai yang dikembalikan
sourceNilai, jika ia tidaknaJikasourcenilai adalahnaJika ia menggunakan 1, ia akan kembali kepada 0.replacementParameter
parameter
source(series int/float/bool/color) Nilai siri yang akan dilaksanakan。replacement(series int/float/bool/color) akan menggantikan nilai semua nilai tiub tina dalam siri tiub sumber.
na
Jika NaN, nilai ujian ialah <unk>.
na(x)
Nilai yang dikembalikan
Jika x bukan nombor sah, maka adalah benar (x adalah NaN), jika tidak, maka adalah salah (false).
int
Ubah na atau potong nilai float menjadi int。
int(x)
Nilai yang dikembalikan
Ubah nilai parameter selepas int.
Lihat juga
float bool color string
float
Tetapkan na sebagai floating.
float(x)
Nilai yang dikembalikan
Ubah nilai parameter ke float
Lihat juga
int bool color string
alert
Triggering alert events when called during real-time K line, and previously created alert based on alert function events as indicator or policy through the Create Alert Box dialog box.
alert(message, freq)
Contoh
pine
// alert() example
ma = ta.sma(close, 14)
xUp = ta.crossover(close, ma)
if xUp
// Trigger the alert the first time a cross occurs during the real-time bar.
alert("Price (" + str.tostring(close) + ") crossed over MA (" + str.tostring(ma) + ").", alert.freq_once_per_bar)
plot(ma)
plotchar(xUp, "xUp", "▲", location.top, size = size.tiny)
parameter
message(series string) Mesej yang dihantar apabila isyarat berlaku.freq(input string) Frekuensi pemicu. Nilai yang mungkin ialah: alert.freq_all (semua fungsi dipanggil untuk mencetuskan amaran), alert.freq_once_per_bar (fungsi pertama yang dipanggil dalam baris K untuk mencetuskan amaran), alert.freq_once_per_bar_close (fungsi dipanggil hanya semasa iterasi skrip terakhir dalam baris K dalam masa nyata, untuk mencetuskan amaran apabila ditutup). Nilai lalai ialah alert.freq_once_per_bar
Nota
Pusat Bantuan menerangkan cara membuat amaran seperti ini.
Berbeza dengan alertcondition, panggilan alert tidak dianggap sebagai lukisan tambahan.
Panggilan fungsi boleh berada dalam lingkungan global dan tempatan.
Panggilan fungsi tidak menunjukkan apa-apa pada carta.
Parameter <unk>freq<unk> hanya mempengaruhi frekuensi pemicu di mana fungsi ini dipanggil.
Lihat juga
alertcondition
alertcondition
Buat keadaan amaran boleh digunakan dalam kotak dialog Buat amaran. Sila ambil perhatian bahawa alertcondition tidak membuat amaran, ia hanya memberi anda lebih banyak pilihan dalam kotak dialog Buat amaran. Selain itu, kesan alertcondition tidak dapat dilihat dalam carta.
alertcondition(condition, title, message)
Contoh
pine
// alertcondition
alertcondition(close >= open, title='Alert on Green Bar', message='Green Bar!')
parameter
condition(series bool) Nilai bool siri yang digunakan untuk amaran. Nilai True mewakili pemicu amaran, false - tiada amaran. Parameter yang diperlukantitle(const string) tajuk keadaan amaran. Parameter pilihan.message(const string) Menunjukkan mesej apabila isyarat berlaku.
Nota
Sila ambil perhatian bahawa dalam Pine v4, panggilan syarat amaran akan menghasilkan satu carta tambahan. Semua panggilan ini akan dipertimbangkan apabila kita mengira jumlah siri output untuk setiap skrip.
Lihat juga
alert
indicator
Untuk keserasianTrading ViewKod strategi, tidak perlu dipanggil.
Lihat juga
strategy
time
fungsi time mengembalikan masa UNIX pada baris K semasa dalam julat masa dan masa transaksi yang ditetapkan, dan NaN jika titik masa tidak berada dalam masa transaksi. Nota: FMZ tidak disokongsessionParameter
time(timeframe, session, timezone)
time(timeframe, session)
time(timeframe)
Contoh
pine
timeinrange(res, sess) => not na(time(res, sess, "America/New_York")) ? 1 : 0
plot(timeinrange("1", "1300-1400"), color=color.red)
// This plots 1.0 at every start of 10 minute bar on a 1 minute chart:
newbar(res) => ta.change(time(res)) == 0 ? 0 : 1
plot(newbar("10"))
Apabila anda menetapkan sesi, anda boleh menentukan bukan sahaja jam dan minit, tetapi juga tarikh dalam minggu tertentu.
Jika tidak ada tarikh yang ditetapkan, pertimbangkan bahawa masa perdagangan ditetapkan dari hari Ahad (1) hingga Sabtu (7), iaitu RM1100-2000 sama dengan RM1100-1200:1234567.
Anda boleh mengubahnya dengan menetapkan tarikh. Sebagai contoh, untuk dagangan 7 hari seminggu dan 24 jam perdagangan, skrip berikut tidak akan berwarna untuk hari Sabtu dan Ahad:
Contoh
pine
// Time
t1 = time(timeframe.period, "0000-0000:23456")
bgcolor(t1 ? color.new(color.blue, 90) : na)
Satu.sessionParameter boleh mengandungi beberapa tempoh dagangan yang berbeza, dipisahkan dengan tanda koma. Sebagai contoh, skrip berikut akan menonjolkan carta K yang menunjukkan dari 10:00 hingga 11:00 dan dari 14:00 hingga 15:00 (hari bekerja sahaja):
Contoh
pine
// Time
t1 = time(timeframe.period, "1000-1100,1400-1500:23456")
bgcolor(t1 ? color.new(color.blue, 90) : na)
Nilai yang dikembalikan
Masa Unix.
parameter
timeframe(simple string) Tempoh tempoh ≠ senar kosong ditafsirkan sebagai tempoh masa semasa grafik ≠(simple string) Spesifikasi masa transaksi。 Parameter pilihan, secara lalai menggunakan masa transaksi komoditi。 Senar kosong ditafsirkan sebagai masa transaksi komoditi。 FMZ tidak disokong。sessiontimezone(simple string)sessionParameter zon waktu。 hanya boleh digunakan apabila anda menetapkan zon sesi <unk>。 pilihan。 default adalah syminfo.timezone。 anda boleh menggunakan ungkapan GMT ((contoh <unk>GMT-5<unk>) atau nama pangkalan data zon waktu IANA ((contoh <unk>America/New_York<unk>) <unk>) <unk>。
Nota
Waktu UNIX adalah bilangan milidetik yang telah berlalu sejak 1 Januari 1970 UTC 00:00:00.
year
year(time)
year(time, timezone)
Nilai yang dikembalikan
Tahun yang menyediakan masa UNIX ((zon masa pertukaran))
parameter
time(series int) Masa Unix dalam satuan milidetik.timezone(series string) Parameter pilihan ◦ zon waktu ◦
Nota
Waktu UNIX adalah bilangan milidetik sejak 1 Januari 1970 UTC 00:00:00. Secara lalai, zon masa adalah syminfo.timezone. Anda boleh menggunakan timestamp untuk memeriksa nilai yang mungkin.
Perhatikan bahawa fungsi ini mengembalikan tahun berdasarkan waktu pembukaan K. Untuk tempoh perdagangan malam ((contohnya, EURUSD pada hari Isnin bermula pada hari Ahad 17:00 UTC-4), nilai ini boleh lebih rendah daripada tahun pada hari perdagangan.
Lihat juga
year time month dayofmonth dayofweek hour minute second
month
month(time)
month(time, timezone)
Nilai yang dikembalikan
Bulan yang menyediakan masa UNIX ((zon masa pertukaran))
parameter
time(series int) Masa Unix dalam satuan milidetik.timezone(series string) Parameter pilihan ◦ zon waktu ◦
Nota
Waktu UNIX adalah bilangan milidetik sejak 1 Januari 1970 UTC 00:00:00. Secara lalai, zon masa adalah syminfo.timezone. Anda boleh menggunakan timestamp untuk memeriksa nilai yang mungkin.
Perhatikan bahawa fungsi ini mengembalikan bulan berdasarkan waktu pembukaan K. Untuk tempoh perdagangan malam ((contohnya, tempoh perdagangan EURUSD pada hari Isnin bermula pada hari Ahad 17:00 UTC-4), nilai ini boleh menjadi 1 lebih rendah daripada bulan pada hari perdagangan.
Lihat juga
month time year dayofmonth dayofweek hour minute second
hour
hour(time)
hour(time, timezone)
Nilai yang dikembalikan
Jam yang disediakan untuk masa UNIX ((zon masa pertukaran))
parameter
time(series int) Masa Unix dalam satuan milidetik.timezone(series string) Parameter pilihan ◦ zon waktu ◦
Nota
Waktu UNIX adalah bilangan milidetik sejak 1 Januari 1970 UTC 00:00:00. Secara lalai, zon masa adalah syminfo.timezone. Anda boleh menggunakan timestamp untuk memeriksa nilai yang mungkin.
Lihat juga
hour time year month dayofmonth dayofweek minute second
minute
minute(time)
minute(time, timezone)
Nilai yang dikembalikan
Minit yang disediakan untuk masa UNIX ((zon masa pertukaran) }}.
parameter
time(series int) Masa Unix dalam satuan milidetik.timezone(series string) Parameter pilihan ◦ zon waktu ◦
Nota
Waktu UNIX adalah bilangan milidetik sejak 1 Januari 1970 UTC 00:00:00. Secara lalai, zon masa adalah syminfo.timezone. Anda boleh menggunakan timestamp untuk memeriksa nilai yang mungkin.
Lihat juga
minute time year month dayofmonth dayofweek hour second
second
second(time)
second(time, timezone)
Nilai yang dikembalikan
Berikan masa UNIX dalam detik ((zon masa pertukaran) }}.
parameter
time(series int) Masa Unix dalam satuan milidetik.timezone(series string) Parameter pilihan ◦ zon waktu ◦
Nota
Waktu UNIX adalah bilangan milidetik sejak 1 Januari 1970 UTC 00:00:00. Secara lalai, zon masa adalah syminfo.timezone. Anda boleh menggunakan timestamp untuk memeriksa nilai yang mungkin.
Lihat juga
second time year month dayofmonth dayofweek hour minute
weekofyear
weekofyear(time)
weekofyear(time, timezone)
Nilai yang dikembalikan
Memberi tempoh masa UNIX ((zon masa pertukaran) }}.
parameter
time(series int) Masa Unix dalam satuan milidetik.timezone(series string) Parameter pilihan ◦ zon waktu ◦
Nota
Waktu UNIX adalah bilangan milidetik sejak 1 Januari 1970 UTC 00:00:00. Secara lalai, zon masa adalah syminfo.timezone. Anda boleh menggunakan timestamp untuk memeriksa nilai yang mungkin.
Perhatikan bahawa fungsi ini akan mengembalikan minggu berdasarkan waktu pembukaan garis K. Untuk tempoh perdagangan malam ((contohnya EURUSD, yang tempoh perdagangan pada hari Isnin bermula pada hari Ahad pukul 17:00), nilai ini boleh lebih rendah daripada minggu pada hari perdagangan.
Lihat juga
weekofyear time year month dayofmonth dayofweek hour minute second
dayofweek
dayofweek(time)
dayofweek(time, timezone)
Nilai yang dikembalikan
Menyediakan tarikh mingguan bagi masa UNIX ((zon waktu pertukaran) <unk>).
parameter
time(series int) Masa Unix dalam satuan milidetik.timezone(series string) Parameter pilihan ◦ zon waktu ◦
Nota
Perhatikan bahawa fungsi ini mengembalikan tarikh berdasarkan waktu pembukaan K. Untuk tempoh perdagangan malam (seperti EURUSD pada hari Isnin bermula pada hari Ahad pukul 17:00), nilai ini boleh lebih rendah daripada tarikh pada hari perdagangan.
Waktu UNIX adalah bilangan milidetik sejak 1 Januari 1970 UTC 00:00:00. Secara lalai, zon masa adalah syminfo.timezone. Anda boleh menggunakan timestamp untuk memeriksa nilai yang mungkin.
Lihat juga
time dayofmonth
dayofmonth
dayofmonth(time)
dayofmonth(time, timezone)
Nilai yang dikembalikan
Tanggal bulanan yang menyediakan masa UNIX ((zon masa pertukaran) <unk>).
parameter
time(series int) Masa Unix dalam satuan milidetik.timezone(series string) Parameter pilihan ◦ zon waktu ◦
Nota
Waktu UNIX adalah bilangan milidetik sejak 1 Januari 1970 UTC 00:00:00. Secara lalai, zon masa adalah syminfo.timezone. Anda boleh menggunakan timestamp untuk memeriksa nilai yang mungkin.
Perhatikan bahawa fungsi ini mengembalikan tarikh berdasarkan waktu pembukaan K. Untuk tempoh perdagangan malam ((contohnya EURUSD pada hari Isnin bermula pada hari Ahad 17:00 UTC-4), nilai ini boleh menjadi lebih rendah daripada tarikh pada hari perdagangan 1 <unk>.
timestamp
Fungsi penanda masa mengembalikan tarikh dan masa yang ditetapkan untuk masa UNIX.
timestamp(dateString)
timestamp(year, month, day, hour, minute, second)
timestamp(timezone, year, month, day, hour, minute, second)
Contoh
pine
// timestamp
plot(timestamp(2016, 01, 19, 09, 30), linewidth=3, color=color.green)
plot(timestamp(syminfo.timezone, 2016, 01, 19, 09, 30), color=color.blue)
plot(timestamp(2016, 01, 19, 09, 30), color=color.yellow)
plot(timestamp("GMT+6", 2016, 01, 19, 09, 30))
plot(timestamp(2019, 06, 19, 09, 30, 15), color=color.lime)
plot(timestamp("GMT+3", 2019, 06, 19, 09, 30, 15), color=color.fuchsia)
plot(timestamp("Feb 01 2020 22:10:05"))
plot(timestamp("2011-10-10T14:48:00"))
plot(timestamp("04 Dec 1995 00:12:00 GMT+5"))
Nilai yang dikembalikan
Masa Unix.
parameter
timezone(series string) Zon masa。 boleh dipilih。 nilai lalai adalah syminfo.timezone。 boleh digunakan dalam ungkapan GMT ((contohnya<unk>GMT-5<unk>) atau nama pangkalan data zon masa IANA ((contohnya<unk>America/New_York<unk>) ditentukan。year(series int) Tahun.month(series int) bulan.day(series int) Tarikhhour(series int) (parameter pilihan) jam. Default ialah 0minute(series int) (pilihan parameter) minit ≠ 0 ≠ 0second(series int) (pilihan parameter) Second。 default ialah 0。dateString(const string) Sebuah senar yang mengandungi tarikh dan pilihan masa dan zon waktu. Formatnya mestilah sesuai dengan standard IETF RFC 2822 atau ISO 8601 ((<unk>DD MMM YYYY hh:mm:ss±hhmm<unk> atau<unk>YYYY-MM-DDThh:mm:ss±hh:mm<unk>, jadi<unk>20 Feb 2020<unk> atau<unk>2020-02-20<unk>) . Jika masa tidak disediakan, gunakan<unk>00:00<unk>. Jika tidak ada zon waktu yang disediakan, gunakan GMT+0.
Nota
Waktu UNIX adalah bilangan milidetik yang telah berlalu sejak 1 Januari 1970 UTC 00:00:00.
Lihat juga
time timenow syminfo.timezone
fill
Menggunakan warna yang disediakan untuk mengisi latar belakang antara dua lukisan atau hline.
fill(hline1, hline2, color, title, editable, fillgaps, display)
fill(plot1, plot2, color, title, editable, show_last, fillgaps, display)
Contoh
pine
h1 = hline(20)
h2 = hline(10)
fill(h1, h2, color=color.new(color.blue, 90))
p1 = plot(open)
p2 = plot(close)
fill(p1, p2, color=color.new(color.green, 90))
parameter
hline1(hline) Objekhline pertama. Parameter yang diperlukan.hline2(hline) Objekhline kedua. Parameter diperlukan.plot1(plot) Objek pertama digambar. Parameter yang diperlukan.plot2(plot) Objek lukisan kedua. Parameter yang diperlukan.color(series color) Warna yang digambarkan. Anda boleh menggunakan konstanta seperti 'color = red' atau 'color = #ff001a' dan ungkapan kompleks seperti 'color = close >= open ? green: red'. Parameter pilihan.title(const string) telah mencipta tajuk untuk mengisi objek.editable(const bool) Jika true, gaya pengisian boleh diedit dalam kotak dialog format.show_last(input int) Jika ditetapkan, tentukan jumlah baris k yang mengisi carta ((berbalik ke belakang dari baris k terakhir) <unk>fillgaps(const bool) mengawal pengisian kekosongan secara berturut-turut, iaitu, apabila salah satu panggilan plot (()) mengembalikan nilai na. Apabila ditetapkan sebagai true, pengisian terakhir akan terus mengisi kekosongan.display(plot_display) Mengendalikan kedudukan paparan yang diisi. Nilai yang mungkin ialah: display.none, display.all. Default display.all.
Lihat juga
plot barcolor bgcolor hline
hline
Garis mendatar pada tahap harga tetap yang diberikan.
hline(price, title, color, linestyle, linewidth, editable, display)
Contoh
pine
// input.hline
hline(3.14, title='Pi', color=color.blue, linestyle=hline.style_dotted, linewidth=2)
// You may fill the background between any two hlines with a fill() function:
h1 = hline(20)
h2 = hline(10)
fill(h1, h2, color=color.new(color.green, 90))
Nilai yang dikembalikan
Objekhline yang boleh digunakan untuk mengisi.
parameter
price(input int/float) nilai yang akan ditunjukkan oleh objek.title(const string) tajuk objekcolor(input color) Warna garisan pengendalian. Ia mestilah kestabilan (tidak ekspresi) dan boleh dipilih.linestyle(hline_style) Gaya garisan pengendalian. Nilai yang mungkin ialah: solid, dotted, dotted. Parameter pilihan.linewidth(input int) Lebar garisan pengendalian ≠ 1editable(const bool) Jika true, gayahline boleh diedit dalam kotak dialog format.display(plot_display) Kedudukan paparan pada baris kawalan. Nilai yang mungkin ialah: display.none, display.all.overlay(const bool) Parameter yang diperluaskan oleh platform FMZ, digunakan untuk menetapkan fungsi semasa yang dipaparkan pada gambar utama (set true) atau gambar kecil (set false) dengan nilai lalai false. Jika parameter ini tidak ditentukan, maka ia akan dipaparkan mengikutstrategyatauindicatorDalamoverlayPengaturan parameterstrategyatauindicatorTiada tetapanoverlayParameter, ia akan diuruskan mengikut parameter lalai.
bgcolor
Tulis latar belakang K dengan warna yang anda pilih.
bgcolor(color, offset, editable, show_last, title, display, overlay)
Contoh
pine
// bgcolor example
bgcolor(close < open ? color.new(color.red,70) : color.new(color.green, 70))
parameter
color(series color) Mengisi warna latar belakang. Anda boleh menggunakan konstanta seperti <unk>red<unk> atau <unk>#ff001a<unk> dan ungkapan rumit seperti 'close >= open ? green: red'. Parameter yang diperlukan.offset(series int) Pergerakan siri warna ke kiri atau ke kanan pada bilangan tertentu k baris.editable(const bool) Jika true, gaya bgcolor boleh diedit dalam kotak dialog format.show_last(input int) Jika ditetapkan, tentukan jumlah baris k yang mengisi carta ((berbalik ke belakang dari baris k terakhir) <unk>title(const string) bgcolor tajuk.display(plot_display) mengawal lokasi paparan bgcolor. Nilai yang mungkin ialah: display.none, display.all. Secara lalai, display.all.overlay(const bool) Parameter yang diperluaskan oleh platform FMZ, digunakan untuk menetapkan fungsi semasa yang dipaparkan pada gambar utama (set true) atau gambar kecil (set false) dengan nilai lalai false. Jika parameter ini tidak ditentukan, maka ia akan dipaparkan mengikutstrategyatauindicatorDalamoverlayPengaturan parameterstrategyatauindicatorTiada tetapanoverlayParameter, ia akan diuruskan mengikut parameter lalai.
Lihat juga
plot
barcolor
Tetapkan warna garisan K
barcolor(color, offset, editable, show_last, title, display)
Contoh
pine
barcolor(close < open ? color.black : color.white)
parameter
color(series color) Warna baris K。 anda boleh menggunakan konstanta seperti <unk>red<unk> atau <unk>#ff001a<unk>, dan ungkapan kompleks seperti 'close >= open ? green: red‛。 parameter yang diperlukan。offset(series int) Pergerakan siri warna ke kiri atau ke kanan pada bilangan tertentu k baris.editable(const bool) Jika true, gaya barcolor boleh diedit dalam kotak dialog format.show_last(input int) Jika ditetapkan, tentukan jumlah baris k yang mengisi carta ((berbalik ke belakang dari baris k terakhir) <unk>title(const string) Judul Barcolor。 Parameter pilihan。display(plot_display) Mengendalikan lokasi paparan warna K. Nilai yang mungkin ialah: display.none, display.all. Secara lalai, display.all.
error
Versi yang serasi dengan PINE v4error, fungsi danruntime.errorPersetujuan.
Pembolehubah terbina dalam
order
order.ascending
Tentukan susunan susunan array dari terkecil ke terbesar.
taip
sort_order
Lihat juga
array.new_float array.sort
order.descending
Tentukan susunan susunan array dari terbesar ke terkecil.
taip
sort_order
Lihat juga
array.new_float array.sort
timeframe
timeframe.isdaily
Kembali true jika resolusi semasa adalah resolusi harian, atau false.
taip
simple bool
Lihat juga
timeframe.isdwm timeframe.isintraday timeframe.isminutes timeframe.isseconds timeframe.isweekly timeframe.ismonthly
timeframe.isdwm
Kembali true jika resolusi semasa adalah resolusi harian atau mingguan atau bulanan, atau false.
taip
simple bool
Lihat juga
timeframe.isintraday timeframe.isminutes timeframe.isseconds timeframe.isdaily timeframe.isweekly timeframe.ismonthly
timeframe.isintraday
Jika kitaran semasa adalah dalam hari (minit atau saat) kitaran, kembali true, jika tidak, kembali false.
taip
simple bool
Lihat juga
timeframe.isminutes timeframe.isseconds timeframe.isdwm timeframe.isdaily timeframe.isweekly timeframe.ismonthly
timeframe.isminutes
Jika kitaran semasa adalah kitaran minit, kembali true, jika tidak, kembali false.
taip
simple bool
Lihat juga
timeframe.isdwm timeframe.isintraday timeframe.isseconds timeframe.isdaily timeframe.isweekly timeframe.ismonthly
timeframe.ismonthly
Kembali true jika resolusi semasa adalah resolusi bulanan, atau false.
taip
simple bool
Lihat juga
timeframe.isdwm timeframe.isintraday timeframe.isminutes timeframe.isseconds timeframe.isdaily timeframe.isweekly
timeframe.isseconds
Jika kitaran semasa adalah saat, kembali true, jika tidak, kembali false.
taip
simple bool
Lihat juga
timeframe.isdwm timeframe.isintraday timeframe.isminutes timeframe.isdaily timeframe.isweekly timeframe.ismonthly
timeframe.isweekly
Kembali true jika resolusi semasa adalah resolusi mingguan, atau false.
taip
simple bool
Lihat juga
timeframe.isdwm timeframe.isintraday timeframe.isminutes timeframe.isseconds timeframe.isdaily timeframe.ismonthly
timeframe.multiplier
Perkalian kitaran masa, seperti '60' - 60, 'D' - 1, '5D' - 5, '12M' - 12。
taip
simple int
Lihat juga
syminfo.ticker syminfo.tickerid timeframe.period
timeframe.period
Tempoh masa. Contohnya, '60' - 60 minit, 'D' - hari, 'W' - minggu, 'M' - bulan, '5D' - 5 hari, '12M' - 1 tahun, '3M' - 1 suku tahun.
taip
simple string
Lihat juga
syminfo.ticker syminfo.tickerid timeframe.multiplier
display
display.none
Konstanta penamaan yang menentukan lokasi paparan gambar. Tidak dipaparkan di mana-mana. Boleh didapati dalam mesej templat amaran.
taip
plot_display
Lihat juga
plot plotshape plotchar
display.all
Satu konstanta penamaan yang menentukan kedudukan yang dipaparkan pada peta.
taip
plot_display
Lihat juga
plot plotshape plotchar plotarrow plotbar plotcandle
shape
shape.xcross
Gaya bentuk fungsi plotshape.
taip
const string
Lihat juga
plotshape
shape.cross
Gaya bentuk fungsi plotshape.
taip
const string
Lihat juga
plotshape
shape.triangleup
Gaya bentuk fungsi plotshape.
taip
const string
Lihat juga
plotshape
shape.triangledown
Gaya bentuk fungsi plotshape.
taip
const string
Lihat juga
plotshape
shape.flag
Gaya bentuk fungsi plotshape.
taip
const string
Lihat juga
plotshape
shape.circle
Gaya bentuk fungsi plotshape.
taip
const string
Lihat juga
plotshape
shape.arrowup
Gaya bentuk fungsi plotshape.
taip
const string
Lihat juga
plotshape
shape.arrowdown
Gaya bentuk fungsi plotshape.
taip
const string
Lihat juga
plotshape
shape.labelup
Gaya bentuk fungsi plotshape.
taip
const string
Lihat juga
plotshape
shape.labeldown
Gaya bentuk fungsi plotshape.
taip
const string
Lihat juga
plotshape
shape.square
Gaya bentuk fungsi plotshape.
taip
const string
Lihat juga
plotshape
shape.diamond
Gaya bentuk fungsi plotshape.
taip
const string
Lihat juga
plotshape
color
color.aqua
ialah #00BCD4 nama konstan warna.
taip
const color
color.black
adalah kestabilan penamaan warna #363A45 <unk>
taip
const color
color.blue
adalah kestabilan penamaan warna # 2962ff <unk> .
taip
const color
color.fuchsia
adalah #E040FB nama konstan warna.
taip
const color
color.gray
ialah kestabilan penamaan warna #787B86.
taip
const color
color.green
adalah kestabilan penamaan warna # 4CAF50
taip
const color
color.lime
adalah kestabilan penamaan warna #00E676
taip
const color
color.maroon
Konstanta penamaan warna #880E4F.
taip
const color
color.navy
ialah kestabilan penamaan warna # 311B92 <unk>
taip
const color
color.olive
ialah #808000 nama senantiasa warna.
taip
const color
color.orange
adalah #FF9800 nama konstan warna.
taip
const color
color.purple
adalah kestabilan penamaan warna # 9C27B0 <unk> .
taip
const color
color.red
adalah #FF5252 nama konstan warna.
taip
const color
color.silver
Konstanta penamaan warna #B2B5BE.
taip
const color
color.teal
color.teal
ialah kestabilan nama warna #00897B.
taip
const color
color.white
adalah #FFFFFF warna yang dinamakan.
taip
const color
color.yellow
adalah #FFEB3B nama konstan warna.
taip
const color
plot
plot.style_line
Kestabilan penamaan gaya 'Line', digunakan sebagai fungsi plotstyleParameter kepada parameter.
taip
plot_style
Lihat juga
plot plot.style_linebr plot.style_stepline plot.style_stepline_diamond plot.style_histogram plot.style_cross plot.style_area plot.style_areabr plot.style_columns plot.style_circles
plot.style_linebr
Tetap nama dalam gaya 'Line With Breaks', digunakan sebagai fungsi plotstyleParameter untuk argumen. Sama seperti plot.style_line, kecuali ruang kosong dalam data tidak diisi.
taip
plot_style
Lihat juga
plot plot.style_line plot.style_stepline plot.style_stepline_diamond plot.style_histogram plot.style_cross plot.style_area plot.style_areabr plot.style_columns plot.style_circles
plot.style_histogram
Tetap nama bergaya 'Histogram', digunakan sebagai fungsi plotstyleParameter kepada parameter.
taip
plot_style
Lihat juga
plot plot.style_line plot.style_linebr plot.style_stepline plot.style_stepline_diamond plot.style_cross plot.style_area plot.style_areabr plot.style_columns plot.style_circles
plot.style_columns
Nombor tetap gaya 'Columns' yang digunakan dalam fungsi plotstyleParameter kepada parameter.
taip
plot_style
Lihat juga
plot plot.style_line plot.style_linebr plot.style_stepline plot.style_stepline_diamond plot.style_histogram plot.style_cross plot.style_area plot.style_areabr plot.style_circles
plot.style_circles
Nombor tetap gaya 'Circles' yang digunakan dalam fungsi plotstyleParameter kepada parameter.
taip
plot_style
Lihat juga
plot plot.style_line plot.style_linebr plot.style_stepline plot.style_stepline_diamond plot.style_histogram plot.style_cross plot.style_area plot.style_areabr plot.style_columns
plot.style_area
Tetapan nama gaya 'Area', digunakan sebagai fungsi plotstyleParameter kepada parameter.
taip
plot_style
Lihat juga
plot plot.style_line plot.style_linebr plot.style_stepline plot.style_stepline_diamond plot.style_histogram plot.style_areabr plot.style_cross plot.style_columns plot.style_circles
plot.style_areabr
Tetap nama yang bergaya 'Area With Breaks' digunakan sebagai fungsi plotstyleParameter untuk parameter. Sama seperti plot.style_area, kecuali ruang kosong dalam data tidak diisi.
taip
plot_style
Lihat juga
plot plot.style_line plot.style_linebr plot.style_stepline plot.style_stepline_diamond plot.style_histogram plot.style_cross plot.style_area plot.style_columns plot.style_circles
plot.style_cross
Kekal penamaan gaya 'Cross', digunakan sebagai fungsi plotstyleParameter kepada parameter.
taip
plot_style
Lihat juga
plot plot.style_line plot.style_linebr plot.style_stepline plot.style_stepline_diamond plot.style_histogram plot.style_area plot.style_areabr plot.style_columns plot.style_circles
plot.style_stepline
Tetapan nama gaya 'Step Line', digunakan sebagai fungsi plotstyleParameter kepada parameter.
taip
plot_style
Lihat juga
plot plot.style_stepline_diamond plot.style_linebr plot.style_histogram plot.style_cross plot.style_area plot.style_areabr plot.style_columns plot.style_circles
plot.style_stepline_diamond
Nombor tetap gaya 'Step Line With Diamonds' yang digunakan dalam fungsi plotstyleParameter untuk parameter. Sama seperti plot.style_stepline, selain perubahan data, ia juga ditandakan dengan tanda putar.
taip
plot_style
Lihat juga
plot plot.style_line plot.style_linebr plot.style_histogram plot.style_cross plot.style_area plot.style_areabr plot.style_columns plot.style_circles
location
location.abovebar
location.abovebar
plotshape, nilai kedudukan fungsi plotchar. Bentuk digambar di atas baris siri utama k.
taip
const string
Lihat juga
plotshape plotchar location.belowbar location.top location.bottom location.absolute
location.belowbar
plotshape, nilai kedudukan fungsi plotchar。 Bentuk digambar di bawah siri utama k。
taip
const string
Lihat juga
plotshape plotchar location.abovebar location.top location.bottom location.absolute
location.top
plotshape, nilai kedudukan fungsi plotchar. Bentuk digambarkan di dekat sempadan grafik atas.
taip
const string
Lihat juga
plotshape plotchar location.abovebar location.belowbar location.bottom location.absolute
location.bottom
plotshape, nilai kedudukan fungsi plotchar. Bentuk digambarkan di dekat sempadan grafik bawah.
taip
const string
Lihat juga
plotshape plotchar location.abovebar location.belowbar location.top location.absolute
location.absolute
plotshape, nilai kedudukan fungsi plotchar. Bentuk digambarkan pada carta, menggunakan nilai penunjuk sebagai koordinat harga.
taip
const string
Lihat juga
plotshape plotchar location.abovebar location.belowbar location.top location.bottom
size
size.auto
size.auto
saiz plotShape, saiz fungsi plotChar. saiz bentuk secara automatik menyesuaikan dengan saiz garis k.
taip
const string
Lihat juga
plotshape plotchar size.tiny size.small size.normal size.large size.huge
size.tiny
plotshape, saiz fungsi plotchar.
taip
const string
Lihat juga
plotshape plotchar size.auto size.small size.normal size.large size.huge
size.small
plotshape, saiz fungsi plotchar.
taip
const string
Lihat juga
plotshape plotchar size.auto size.tiny size.normal size.large size.huge
size.normal
plotshape, nilai saiz fungsi plotchar.
taip
const string
Lihat juga
plotshape plotchar size.auto size.tiny size.small size.large size.huge
size.large
plotshape, saiz fungsi plotchar.
taip
const string
Lihat juga
plotshape plotchar size.auto size.tiny size.small size.normal size.huge
size.huge
plotshape, saiz fungsi plotchar.
taip
const string
Lihat juga
plotshape plotchar size.auto size.tiny size.small size.normal size.large
alert
alert.freq_once_per_bar
Kekal nama yang digunakan bersama-sama dengan parameter 'freq' untuk fungsi alert().
Panggilan fungsi pertama dalam baris K akan mencetuskan amaran.
taip
const string
Lihat juga
alert
alert.freq_all
Kekal nama yang digunakan bersama-sama dengan parameter 'freq' untuk fungsi alert().
Semua panggilan fungsi akan mencetuskan amaran.
taip
const string
Lihat juga
alert
alert.freq_once_per_bar_close
Kekal nama yang digunakan bersama-sama dengan parameter 'freq' untuk fungsi alert().
Panggilan fungsi ini hanya berlaku semasa iterasi skrip terakhir pada baris K dalam masa nyata, dan mencetuskan amaran apabila ditutup.
taip
const string
Lihat juga
alert
format
format.inherit
ialah suatu konstanta penamaan.
taip
const string
Lihat juga
format.price format.volume
format.price
ialah suatu konstanta penamaan.
taip
const string
Nota
Jika format adalah format.price, anda akan menetapkan nilai ketepatan lalai. Anda boleh menggunakan parameter ketepatan fungsi penunjuk untuk mengubah nilai ketepatan.
Lihat juga
format.inherit format.volume
format.volume
ialah suatu konstanta penamaan.
taip
const string
Lihat juga
format.inherit format.price
syminfo
syminfo.ticker
Kod komoditi tanpa awalan bursa, seperti 'MSFT'。
taip
simple string
Lihat juga
syminfo.tickerid timeframe.period timeframe.multiplier
syminfo.tickerid
Kod komoditi dengan awalan bursa, contohnya BATS: MSFT<unk>, NASDAQ: MSFT<unk>
taip
simple string
Lihat juga
syminfo.ticker timeframe.period timeframe.multiplier
syminfo.basecurrency
Mata wang asas untuk barangan. Untuk kod barangan, ketik BTCUSD, dan kembalikan BTC.
taip
simple string
Lihat juga
syminfo.currency syminfo.ticker
syminfo.currency
Kod mata wang pengembalian: <unk> USD<unk>, <unk> EUR<unk> dan lain-lain.
taip
simple string
Lihat juga
syminfo.basecurrency syminfo.ticker
syminfo.type
Jenis kod komoditi semasa. Nilai yang mungkin ialah stock, futures, index, forex, crypto, fund, dr.
taip
simple string
Lihat juga
syminfo.ticker
syminfo.mintick
Nilai pengukuran minimum untuk varieti semasa. Parameter templat dalam "Pine Language Transaction Class Repository" pada FMZ, pada antara muka cakera/retestPenetapan harga ketepatan mata wangNilai ini boleh dikawal.Penetapan harga ketepatan mata wangTetapkan 2 iaitu harga semasa perdagangan tepat kepada nombor kecil kedua, ketika ini unit perubahan harga terkecil adalah 0.01 ◦ siminfo.mintick nilai adalah 0.01 ◦
taip
simple float
Lihat juga
syminfo.pointvalue
syminfo.pointvalue
Nilai titik barang semasa
taip
simple float
Lihat juga
syminfo.mintick
syminfo.timezone
Julat masa pertukaran siri utama carta. Untuk nilai yang mungkin lihat timestamp.
taip
simple string
Lihat juga
timestamp
barstate
barstate.islastconfirmedhistory
Jika skrip dijalankan pada baris K terakhir dalam set data semasa pasaran ditutup, atau skrip sedang dijalankan pada baris K sebelum baris K dalam keadaan nyata, kembali true jika pasaran terbuka. Jika tidak, kembali false.
taip
series bool
Nota
Kod PineScript menggunakan pembolehubah ini boleh digunakan untuk membuat pengiraan yang berbeza untuk rekod sejarah dan data masa nyata.
Sila ambil perhatian bahawa penggunaan pembolehubah / fungsi ini mungkin menyebabkan penunjuk dipetik semula.
Lihat juga
barstate.isfirst barstate.islast barstate.ishistory barstate.isrealtime barstate.isnew
barstate.isnew
Jika skrip kini dikira pada baris k baru, kembali true, jika tidak, kembali false.
taip
series bool
Nota
Kod PineScript menggunakan pembolehubah ini boleh digunakan untuk membuat pengiraan yang berbeza untuk rekod sejarah dan data masa nyata.
Sila ambil perhatian bahawa penggunaan pembolehubah / fungsi ini mungkin menyebabkan penunjuk dipetik semula.
Lihat juga
barstate.isfirst barstate.islast barstate.ishistory barstate.isrealtime barstate.isconfirmed barstate.islastconfirmedhistory
barstate.isfirst
Jika k adalah baris pertama dalam kumpulan k, k akan dikembalikan true, jika tidak, k akan dikembalikan false.
taip
series bool
Nota
Kod PineScript menggunakan pembolehubah ini boleh digunakan untuk membuat pengiraan yang berbeza untuk rekod sejarah dan data masa nyata.
Sila ambil perhatian bahawa penggunaan pembolehubah / fungsi ini mungkin menyebabkan penunjuk dipetik semula.
Lihat juga
barstate.islast barstate.ishistory barstate.isrealtime barstate.isnew barstate.isconfirmed barstate.islastconfirmedhistory
barstate.islast
Kembali true jika k adalah baris terakhir dalam kumpulan k, atau false.
taip
series bool
Nota
Kod PineScript menggunakan pembolehubah ini boleh digunakan untuk membuat pengiraan yang berbeza untuk rekod sejarah dan data masa nyata.
Sila ambil perhatian bahawa penggunaan pembolehubah / fungsi ini mungkin menyebabkan penunjuk dipetik semula.
Lihat juga
barstate.isfirst barstate.ishistory barstate.isrealtime barstate.isnew barstate.isconfirmed barstate.islastconfirmedhistory
barstate.ishistory
Kembali true jika k semasa adalah k sejarah, atau false.
taip
series bool
Nota
Kod PineScript menggunakan pembolehubah ini boleh digunakan untuk membuat pengiraan yang berbeza untuk rekod sejarah dan data masa nyata.
Sila ambil perhatian bahawa penggunaan pembolehubah / fungsi ini mungkin menyebabkan penunjuk dipetik semula.
Lihat juga
barstate.isfirst barstate.islast barstate.isrealtime barstate.isnew barstate.isconfirmed barstate.islastconfirmedhistory
barstate.isconfirmed
Jika skrip sedang mengira kemas kini terakhir (keluar) pada baris k semasa, k akan dikira pada baris k baru.
taip
series bool
Nota
Kod PineScript menggunakan pembolehubah ini boleh digunakan untuk membuat pengiraan yang berbeza untuk rekod sejarah dan data masa nyata.
Tidak disyorkan untuk menggunakan barstate.isconfirmed dalam ungkapan request.security. Ia tidak dapat diramalkan dari permintaan request.security.
Sila ambil perhatian bahawa penggunaan pembolehubah / fungsi ini mungkin menyebabkan penunjuk dipetik semula.
Lihat juga
barstate.isfirst barstate.islast barstate.ishistory barstate.isrealtime barstate.isnew barstate.islastconfirmedhistory
barstate.isrealtime
Kembali true jika k line semasa adalah k line masa nyata, atau false.
taip
series bool
Nota
Kod PineScript menggunakan pembolehubah ini boleh digunakan untuk membuat pengiraan yang berbeza untuk rekod sejarah dan data masa nyata.
Sila ambil perhatian bahawa penggunaan pembolehubah / fungsi ini mungkin menyebabkan penunjuk dipetik semula.
Lihat juga
barstate.isfirst barstate.islast barstate.ishistory barstate.isnew barstate.isconfirmed barstate.islastconfirmedhistory
barstate.time
Tiada
ta
ta.accdist
Indeks Akumulasi / Sebaran
taip
series float
ta.iii
Indeks kekuatan dalam cakera.
taip
series float
Contoh
pine
// Intraday Intensity Index
plot(ta.iii, color=color.yellow)
// the same on pine
f_iii() =>
(2 * close - high - low) / ((high - low) * volume)
plot(f_iii())
ta.nvi
Penunjuk berat negatif.
taip
series float
Contoh
pine
// Negative Volume Index
plot(ta.nvi, color=color.yellow)
// the same on pine
f_nvi() =>
float ta_nvi = 1.0
float prevNvi = (nz(ta_nvi[1], 0.0) == 0.0) ? 1.0: ta_nvi[1]
if nz(close, 0.0) == 0.0 or nz(close[1], 0.0) == 0.0
ta_nvi := prevNvi
else
ta_nvi := (volume < nz(volume[1], 0.0)) ? prevNvi + ((close - close[1]) / close[1]) * prevNvi : prevNvi
result = ta_nvi
plot(f_nvi())
ta.pvi
Indeks kuantiti.
taip
series float
Contoh
pine
// Positive Volume Index
plot(ta.pvi, color=color.yellow)
// the same on pine
f_pvi() =>
float ta_pvi = 1.0
float prevPvi = (nz(ta_pvi[1], 0.0) == 0.0) ? 1.0: ta_pvi[1]
if nz(close, 0.0) == 0.0 or nz(close[1], 0.0) == 0.0
ta_pvi := prevPvi
else
ta_pvi := (volume > nz(volume[1], 0.0)) ? prevPvi + ((close - close[1]) / close[1]) * prevPvi : prevPvi
result = ta_pvi
plot(f_pvi())
ta.obv
Penunjuk arus tenaga.
taip
series float
Contoh
pine
// On Balance Volume
plot(ta.obv, color=color.yellow)
// the same on pine
f_obv() =>
ta.cum(math.sign(ta.change(close)) * volume)
plot(f_obv())
ta.pvt
Indeks trend harga.
taip
series float
Contoh
pine
// Price-Volume Trend
plot(ta.pvt, color=color.yellow)
// the same on pine
f_pvt() =>
ta.cum((ta.change(close) / close[1]) * volume)
plot(f_pvt())
ta.wad
William D. Gill berkata:
taip
series float
Contoh
pine
// Williams Accumulation/Distribution
plot(ta.wad, color=color.yellow)
// the same on pine
f_wad() =>
trueHigh = math.max(high, close[1])
trueLow = math.min(low, close[1])
mom = ta.change(close)
gain = (mom > 0) ? close - trueLow : (mom < 0) ? close - trueHigh : 0
ta.cum(gain)
plot(f_wad())
ta.wvad
William Variasi Penyebaran.
taip
series float
Contoh
pine
// Williams Variable Accumulation/Distribution
plot(ta.wvad, color=color.yellow)
// the same on pine
f_wvad() =>
(close - open) / (high - low) * volume
plot(f_wvad())
math
math.e
adalah kestabilan nama bagi bilangan Euler. Ia sama dengan 2.7182818284590452.
taip
const float
Lihat juga
math.phi math.pi math.rphi
math.phi
adalah senantiasa nama bagi pembahagian emas。 sama dengan 1.6180339887498948。
taip
const float
Lihat juga
math.e math.pi math.rphi
math.pi
ialah nama senantiasa Archimedes. Ia sama dengan 3.1415926535897932.
taip
const float
Lihat juga
math.e math.phi math.rphi
math.rphi
adalah kestabilan nama bagi kadar perpecahan emas. Ia sama dengan 0.6180339887498948.
taip
const float
Lihat juga
math.e math.pi math.phi
strategy
strategy.equity
Hak dan kepentingan semasa ((strategy.initial_capital + strategy.netprofit + strategy.openprofit))
taip
series float
Lihat juga
strategy.netprofit strategy.openprofit strategy.position_size
strategy.position_size
Arah dan saiz kedudukan pasaran semasa. Jika nilai> 0, kedudukan pasaran lebih panjang. Jika nilai < 0, kedudukan pasaran lebih pendek.
taip
series float
Lihat juga
strategy.position_avg_price
strategy.position_avg_price
Jika kedudukan pasaran merata, NaN-<unk> akan kembali.
menggambarkan
Harga purata dalam FMZ PINE Script adalah harga yang merangkumi yuran prosedur. Sebagai contoh: harga pesanan adalah 8000, menjual arah, jumlah 1 tangan ((satu, lembaran), harga purata selepas transaksi bukan 8000, kurang dari 8000 ((termasuk yuran prosedur dalam kos).
taip
series float
Lihat juga
strategy.position_size
strategy.long
Berbagai arah.
taip
strategy_direction
Lihat juga
strategy.entry strategy.exit
strategy.short
Arah kepala kosong.
taip
strategy_direction
Lihat juga
strategy.entry strategy.exit
strategy.closedtrades
Jumlah transaksi yang ditutup sepanjang selang transaksi.
taip
series int
Lihat juga
strategy.position_size strategy.opentrades
strategy.opentrades
Bilangan transaksi yang belum ditutup atau terus dipegang. Jika tidak, 0 akan ditunjukkan.
taip
series int
Lihat juga
strategy.position_size
strategy.netprofit
Jumlah nilai mata wang semua transaksi yang telah selesai.
taip
series float
Lihat juga
strategy.openprofit strategy.position_size strategy.grossprofit
strategy.grossprofit
Jumlah nilai dalam mata wang semua transaksi yang berjaya diselesaikan
taip
series float
Lihat juga
strategy.netprofit
strategy.openprofit
Kerugian yang belum direalisasikan dari kedudukan yang belum ditutup pada masa ini
taip
series float
Lihat juga
strategy.netprofit strategy.position_size
strategy.direction.long
Strategi yang boleh dilakukan lebih banyak
taip
const string
Lihat juga
strategy.risk.allow_entry_in
strategy.direction.short
Strategi yang hanya boleh dilakukan
taip
const string
Lihat juga
strategy.risk.allow_entry_in
strategy.direction.all
Strategi yang membolehkan anda melakukan lebih banyak dan lebih sedikit
taip
const string
Lihat juga
strategy.risk.allow_entry_in
dayofweek
dayofweek
Minggu pada masa k line semasa zon waktu pertukaran.
taip
series int
Nota
Sila ambil perhatian bahawa pembolehubah ini akan kembali pada hari berdasarkan waktu pembukaan K. Untuk tempoh perdagangan malam (contohnya EURUSD, yang tempoh perdagangan pada hari Isnin bermula pada hari Ahad pukul 17:00), nilai ini boleh menjadi lebih rendah daripada hari perdagangan.
Anda boleh menggunakan dayofweek.sunday, dayofweek.monday, dayofweek.tuesday, dayofweek.wednesday, dayofweek.thursday, dayofweek.friday dan dayofweek.saturday untuk perbandingan.
Lihat juga
time dayofmonth
dayofweek.sunday
adalah nilai yang dikembalikan oleh fungsi dayofweek dan nilai yang dinamakan oleh pembolehubah dayofweek.
taip
const int
Lihat juga
dayofweek.monday dayofweek.tuesday dayofweek.wednesday dayofweek.thursday dayofweek.friday dayofweek.saturday
dayofweek.monday
adalah nilai yang dikembalikan oleh fungsi dayofweek dan nilai yang dinamakan oleh pembolehubah dayofweek.
taip
const int
Lihat juga
dayofweek.sunday dayofweek.tuesday dayofweek.wednesday dayofweek.thursday dayofweek.friday dayofweek.saturday
dayofweek.tuesday
adalah nilai yang dikembalikan oleh fungsi dayofweek dan nilai yang dinamakan oleh pembolehubah dayofweek.
taip
const int
Lihat juga
dayofweek.sunday dayofweek.monday dayofweek.wednesday dayofweek.thursday dayofweek.friday dayofweek.saturday
dayofweek.wednesday
adalah nilai yang dikembalikan oleh fungsi dayofweek dan nilai yang dinamakan oleh pembolehubah dayofweek.
taip
const int
Lihat juga
dayofweek.sunday dayofweek.monday dayofweek.tuesday dayofweek.thursday dayofweek.friday dayofweek.saturday
dayofweek.thursday
adalah nilai yang dikembalikan oleh fungsi dayofweek dan nilai yang dinamakan oleh pembolehubah dayofweek.
taip
const int
Lihat juga
dayofweek.sunday dayofweek.monday dayofweek.tuesday dayofweek.wednesday dayofweek.friday dayofweek.saturday
dayofweek.friday
adalah nilai yang dikembalikan oleh fungsi dayofweek dan nilai yang dinamakan oleh pembolehubah dayofweek.
taip
const int
Lihat juga
dayofweek.sunday dayofweek.monday dayofweek.tuesday dayofweek.wednesday dayofweek.thursday dayofweek.saturday
dayofweek.saturday
adalah nilai yang dikembalikan oleh fungsi dayofweek dan nilai yang dinamakan oleh pembolehubah dayofweek.
taip
const int
Lihat juga
dayofweek.sunday dayofweek.monday dayofweek.tuesday dayofweek.wednesday dayofweek.thursday dayofweek.friday
hline
hline.style_dashed
ialah kestabilan penamaan gaya garisan titik fungsi Hline.
taip
hline_style
Lihat juga
hline.style_solid hline.style_dotted
hline.style_dotted
hline.style_dotted
ialah kestabilan penamaan gaya garis titik-ke-titik fungsi Hline.
taip
hline_style
Lihat juga
hline.style_solid hline.style_dashed
hline.style_solid
ialah kestabilan penamaan jenis garis pusat sebenar fungsi Hline.
taip
hline_style
Lihat juga
hline.style_dotted hline.style_dashed
barmerge
barmerge.gaps_on
Berikan strategi penggabungan data yang diminta. Menggabungkan data dengan perbezaan yang mungkin (nilai na).
taip
barmerge_gaps
Lihat juga
request.security barmerge.gaps_off
barmerge.gaps_off
Strategi data yang diminta untuk digabungkan. Data digabungkan secara berterusan, semua jurang diisi dengan nilai sedia ada yang paling baru sebelum ini.
taip
barmerge_gaps
Lihat juga
request.security barmerge.gaps_on
barmerge.lookahead_on
Strategi untuk merger meminta lokasi data. Barangan yang diminta akan digabungkan dengan barangan semasa mengikut masa bukaan k baris. Strategi penggabungan ini boleh menyebabkan kesan buruk pada sejarah pengiraan data yang diambil dari barangan masa depan. Ini tidak diterima dalam strategi pengujian mundur, tetapi boleh digunakan dalam penunjuk.
taip
barmerge_lookahead
Lihat juga
request.security barmerge.lookahead_off
barmerge.lookahead_off
Kaedah untuk meminta lokasi data yang digabungkan. Kaedah yang diminta untuk menggabungkan bar grafik dengan bar grafik semasa mengikut masa penutupan k line. Kaedah penggabungan ini menghalang kesan sejarah pengiraan data yang diperoleh dari bar masa depan.
taip
barmerge_lookahead
Lihat juga
request.security barmerge.lookahead_on
others
hl2
ialah (harga tertinggi + harga terendah) / 2
taip
series float
Lihat juga
open high low close volume time hlc3 hlcc4 ohlc4
hlc3
ialah (harga tertinggi + harga terendah + harga penutupan) / 3
taip
series float
Lihat juga
open high low close volume time hl2 hlcc4 ohlc4
hlcc4
ialah (High+Low+Cut+Cut) /4
taip
series float
Lihat juga
open high low close volume time hl2 hlc3 ohlc4
ohlc4
ialah (harga permulaan + harga tertinggi + harga terendah + harga penutupan) /4
taip
series float
Lihat juga
open high low close volume time hl2 hlc3 hlcc4
na
Double.NaN nilai (bukan nombor) <unk>
taip
simple na
Contoh
pine
// na
plot(bar_index < 10 ? na : close) // CORRECT
plot(close == na ? close[1] : close) // INCORRECT!
plot(na(close) ? close[1] : close) // CORRECT
Nota
Jika anda ingin memeriksa sama ada nilai tertentu adalah NaN, gunakan fungsi terbina dalam na.
Lihat juga
na
bar_index
Indeks bar harga semasa. Nombor bermula dari sifar, dengan indeks bar pertama 0 .
taip
series int
Contoh
pine
// bar_index
plot(bar_index)
plot(bar_index > 5000 ? close : 0)
Nota
Sila ambil perhatian bahawa bar_index telah menggantikan n pembolehubah dalam versi 4.
Sila ambil perhatian bahawa indeks K adalah 0 <unk> bermula dari garis K sejarah pertama.
Sila ambil perhatian bahawa penggunaan pembolehubah / fungsi ini mungkin menyebabkan penunjuk dipetik semula.
Lihat juga
barstate.isfirst barstate.islast barstate.isrealtime
last_bar_index
Indeks pada baris K terakhir carta. Indeks K bermula dengan baris K pertama sebagai sifar.
taip
series int
Contoh
strategy("Mark Last X Bars For Backtesting", overlay = true, calc_on_every_tick = true)
lastBarsFilterInput = input.int(100, "Bars Count:")
// Here, we store the 'last_bar_index' value that is known from the beginning of the script's calculation.
// The 'last_bar_index' will change when new real-time bars appear, so we declare 'lastbar' with the 'var' keyword.
var lastbar = last_bar_index
// Check if the current bar_index is 'lastBarsFilterInput' removed from the last bar on the chart, or the chart is traded in real-time.
allowedToTrade = (lastbar - bar_index <= lastBarsFilterInput) or barstate.isrealtime
bgcolor(allowedToTrade ? color.new(color.green, 80) : na)
Nilai yang dikembalikan
Indeks K sejarah akhir penutupan atau indeks K masa nyata pembukaan.
Nota
Sila ambil perhatian bahawa penggunaan pembolehubah ini boleh menyebabkan penukaran semula.
Lihat juga
bar_index last_bar_time barstate.ishistory barstate.isrealtime
time
Masa k line semasa dalam format UNIX. Ini adalah bilangan milidetik sejak 1 Januari 1970 jam 00:00:00 UTC.
timenow
Waktu semasa dalam format UNIX. Ini adalah bilangan milidetik sejak 1 Januari 1970 jam 00:00:00 UTC.
taip
series int
Nota
Sila ambil perhatian bahawa penggunaan pembolehubah / fungsi ini mungkin menyebabkan penunjuk dipetik semula.
Lihat juga
timestamp time dayofmonth dayofweek
taip
series int
Nota
Sila ambil perhatian bahawa pembolehubah ini akan mengembalikan mata wang waktu berdasarkan masa pembukaan K. Oleh itu, untuk masa perdagangan malam hari (contohnya EURUSD, yang tempohnya pada hari Isnin bermula dari 17:00 pada hari Ahad), pembolehubah ini boleh mengembalikan masa sebelum tarikh yang ditetapkan pada hari perdagangan. Sebagai contoh, pada EURUSD, mata wang dayofmonth (waktu) boleh menjadi lebih rendah daripada tarikh perdagangan pada hari perdagangan 1 kerana K pada tarikh semasa sebenarnya dibuka pada hari sebelumnya.
Lihat juga
time dayofmonth dayofweek
year
Garis k tahun semasa zon masa pertukaran.
taip
series int
Nota
Perhatikan bahawa pembolehubah ini mengembalikan tahun berdasarkan waktu pembukaan K. Untuk tempoh perdagangan malam (seperti EURUSD, yang sesi perdagangan pada hari Isnin bermula pada hari Ahad pada pukul 17:00), nilai ini boleh menjadi lebih rendah daripada tahun pada hari perdagangan.
Lihat juga
year time month weekofyear dayofmonth dayofweek hour minute second
month
Bulan semasa k pada zon masa bursa.
taip
series int
Nota
Sila ambil perhatian bahawa pembolehubah ini mengembalikan bulan berdasarkan waktu pembukaan K line. Untuk tempoh perdagangan malam ((contohnya EURUSD, yang tempoh perdagangan pada hari Isnin bermula pada hari Ahad pada pukul 17:00), nilai ini boleh menjadi 1 lebih rendah daripada bulan pada hari perdagangan.
Lihat juga
month time year weekofyear dayofmonth dayofweek hour minute second
hour
Jadual masa k semasa di zon masa bursa.
taip
series int
Lihat juga
hour time year month weekofyear dayofmonth dayofweek minute second
minute
Minit semasa di zon masa bursa k baris.
taip
series int
Lihat juga
minute time year month weekofyear dayofmonth dayofweek hour second
second
Garis saat k pada zon masa bursa.
taip
series int
Lihat juga
second time year month weekofyear dayofmonth dayofweek hour minute
open
Harga pembukaan semasa.
taip
series float
Nota
Operator tanda kurung kuasa boleh digunakan[] untuk mengakses nilai sebelum ini, contohnya: <unk> open[1],open[2]。
Lihat juga
high low close volume time hl2 hlc3 hlcc4 ohlc4
high
Harga tertinggi semasa.
taip
series float
Nota
Operator tanda kurung kuasa boleh digunakan[] untuk mengakses nilai sebelumnya, contohnya: ◦ high[1],high[2]。
Lihat juga
open low close volume time hl2 hlc3 hlcc4 ohlc4
low
Harga terendah semasa.
taip
series float
Nota
Operator tanda kurung kuasa boleh digunakan[] untuk mengakses nilai sebelumnya, contohnya <unk> low[1],low[2]。
Lihat juga
open high close volume time hl2 hlc3 hlcc4 ohlc4
close
Harga penutupan semasa K Line, atau harga transaksi terakhir untuk K Line yang belum selesai.
taip
series float
Nota
Operator tanda kurung kuasa boleh digunakan[] untuk mengakses nilai sebelum ini, contohnya: <unk> close[1],close[2]。
Lihat juga
open high low volume time hl2 hlc3 hlcc4 ohlc4
volume
Jumlah pengangkutan K Line semasa.
taip
series float
Nota
Operator tanda kurung kuasa boleh digunakan[] untuk mengakses nilai sebelumnya, contohnya: ◦ volume[1],volume[2]。
Lihat juga
open high low close time hl2 hlc3 hlcc4 ohlc4
weekofyear
Bilangan minggu dalam tempoh masa k line semasa zon waktu pertukaran.
taip
series int
Nota
Sila ambil perhatian bahawa pembolehubah ini kembali pada minggu berdasarkan waktu pembukaan K. Untuk tempoh perdagangan malam (contohnya EURUSD, yang tempoh perdagangan pada hari Isnin bermula pada hari Ahad pada pukul 17:00), nilai ini boleh menjadi lebih rendah daripada tempoh minggu pada hari perdagangan.
Lihat juga
weekofyear time year month dayofmonth dayofweek hour minute second
dayofmonth
Tarikh pada masa k line semasa zon waktu pertukaran.
taip
series int
Nota
Sila ambil perhatian bahawa pembolehubah ini akan kembali pada hari berdasarkan waktu pembukaan K. Untuk tempoh perdagangan malam (contohnya EURUSD, yang tempoh perdagangan pada hari Isnin bermula pada hari Ahad pukul 17:00), nilai ini boleh menjadi lebih rendah daripada hari perdagangan.
- 1





