FMZ PINE Script dokumentasi

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

Nilai pulanganBilangan tengah unsur-unsur array.

Parameter - id(int[]/float[]) objek barisan.

Sampai jumpa lagi


### array.mode

该函数返回阵列元素的模式。如果有多个具有相同频率的值,则返回最小值。

array.mode (id)


**例子**
```pine
// array.mode example
a = array.new_float(0)
for i = 0 to 9
    array.push(a, close[i])
plot(array.mode(a))

Nilai pulanganBentuk elemen array.

Parameter - id(int[]/float[]) objek barisan.

Sampai jumpa lagi


### array.percentile_linear_interpolation

返回数组值的指定百分比(百分位数)小于或等于它的值,使用线性插值。

array.percentile_linear_interpolation ((id, peratus)


**参数**
- ```id``` (int[]/float[]) 阵列对象。
- ```percentage``` (series int/float) 必须等于或小于返回值的值的百分比。

**备注**
在统计数据中,百分位是出现在某个分数或低于某个分数的排名项目的百分比。此测量显示低于您测量的百分等级的标准频率分布中的分数百分比。线性插值估计两个排名之间的值。

**另见**
```array.new_float``` ```array.insert``` ```array.slice``` ```array.reverse``` ```order.ascending``` ```order.descending```

### array.percentile_nearest_rank

使用最近秩方法返回指定百分比的数组值(百分位数)小于或等于它的值。

array.percentile_nearest_rank ((id, peratus)


**参数**
- ```id``` (int[]/float[]) 阵列对象。
- ```percentage``` (series int/float) 必须等于或小于返回值的值的百分比。

**备注**
在统计数据中,百分位是出现在某个分数或低于某个分数的排名项目的百分比。 此测量显示低于您正在测量的百分排名的标准频率分布中的分数百分比。

**另见**
```array.new_float``` ```array.insert``` ```array.slice``` ```array.reverse``` ```order.ascending``` ```order.descending```

### array.percentrank

返回阵列中值的百分位排名。

array.percentrank ((id, indeks)


**参数**
- ```id``` (int[]/float[]) 阵列对象。
- ```index``` (series int) 计算其百分排名的值。

**备注**
百分位排名是数组中有多少元素小于或等于参考值的百分比。

**另见**
```array.new_float``` ```array.insert``` ```array.slice``` ```array.reverse``` ```order.ascending``` ```order.descending```

### array.range

该函数返回给定数组的最小值和最大值之间的差。

array.range ((id)


**例子**
```pine
// array.range example
a = array.new_float(0)
for i = 0 to 9
    array.push(a, close[i])
plot(array.range(a))

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

Parameter - id(int[]/float[]) objek barisan.

Sampai jumpa lagi


### array.remove

该函数通过删除具有指定索引的元素来更改阵列的内容。

```array.remove(id, index)```

**例子**
```pine
// array.remove example
a = array.new_float(5,high)
removedEl = array.remove(a, 0)
plot(array.size(a))
plot(removedEl)

Nilai pulanganNilai elemen yang telah dipadamkan.

Parameter - id(any array type) objek array. - Tidak.index(series int) indeks elemen yang ingin dipadamkan.

Sampai jumpa lagi


### array.reverse

此函数反转阵列。第一个阵列元素变成最后一个,最后一个阵列元素变成第一个。

array.reverse ((id)


**例子**
```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.

Sampai jumpa lagi


### array.from

该函数采用以下类型之一的可变数量的参数:int、float、bool、string、line、color、linefill,并返回相应类型的阵列。

array.from ((arg0, arg1,...)


**例子**
```pine
// array.from_example
arr = array.from("Hello", "World!") // arr (string[]) will contain 2 elements: {Hello}, {World!}.
plot(close)

Nilai pulanganNilai elemen array.

Parameter - arg0, arg1, ...(series int/float/bool/color/string/line/linefill) Parameter Array.

array.new

Fungsi ini mencipta satu fungsi baru.<type>Objek unsur aritmatika.

array.new(size, initial_value)

Contoh

// array.new<string> example
a = array.new<string>(1, "Hello, World!")
runtime.log(array.get(a, 0))

Contoh

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

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

// 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 pulanganFungsi ID untuk objek array yang boleh digunakan bersama-sama dengan array lain.

Parameter - sizeSaiz awal siri (series int) === Opsional === Nilai lalai ialah 0 === - Tidak.initial_value(series <type>) Nilai awal bagi semua elemen siri. Opsional. Nilai lalai adalah na.

Nota:Indeks array bermula dari 0. Jika anda ingin menginisialisasikan suatu array dan menetapkan semua elemen pada masa yang sama, gunakan fungsi array.from.

Sampai jumpa lagi


### array.new_bool

此函数创建一个由bool类型的元素组成的新阵列对象。

array.new_bool ((size, initial_value)


**例子**
```pine
// array.new_bool example
length = 5
a = array.new_bool(length, close > open)
plot(array.get(a, 0) ? close : open)

Nilai pulanganFungsi ID untuk objek array yang boleh digunakan bersama-sama dengan array lain.

Parameter - sizeSaiz awal siri (series int) === Opsional === Nilai lalai ialah 0 === - Tidak.initial_value(series bool) Nilai awal bagi semua elemen siri. Opsional. Nilai lalai ialah na.

Nota:Indeks array bermula dari 0.

Sampai jumpa lagi


### array.new_float

此函数创建一个新的浮点型元素阵列对象。

array.new_float ((size, initial_value)


**例子**
```pine
// array.new_float example
length = 5
a = array.new_float(length, close)
plot(array.sum(a) / length)

Nilai pulanganFungsi ID untuk objek array yang boleh digunakan bersama-sama dengan array lain.

Parameter - sizeSaiz awal siri (series int) === Opsional === Nilai lalai ialah 0 === - Tidak.initial_value(series int/float) Nilai awal bagi semua elemen siri. Opsional. Nilai lalai ialah na.

Nota:Indeks array bermula dari 0.

Sampai jumpa lagi


### array.new_int

该函数创建一个由int类型的元素组成的新阵列对象。

array.new_int ((size, initial_value)


**例子**
```pine
// array.new_int example
length = 5
a = array.new_int(length, int(close))
plot(array.sum(a) / length)

Nilai pulanganFungsi ID untuk objek array yang boleh digunakan bersama-sama dengan array lain.

Parameter - sizeSaiz awal siri (series int) === Opsional === Nilai lalai ialah 0 === - Tidak.initial_value(series int) Nilai awal bagi semua elemen siri. Opsional. Nilai lalai adalah na.

Nota:Indeks array bermula dari 0.

Sampai jumpa lagi


### array.new_string

该函数创建一个字符串类型元素的新阵列对象。

array.new_string ((size, initial_value)


**例子**
```pine
// array.new_string example
length = 5
a = array.new_string(length, "text")
runtime.log(array.get(a, 0))

Nilai pulanganFungsi ID untuk objek array yang boleh digunakan bersama-sama dengan array lain.

Parameter - sizeSaiz awal siri (series int) === Opsional === Nilai lalai ialah 0 === - Tidak.initial_value(series string) Nilai awal bagi semua elemen siri. Opsional. Nilai lalai adalah na.

Nota:Indeks array bermula dari 0.

Sampai jumpa lagi


### array.get

该函数返回指定索引处元素的值。

```array.get(id, index)```

**例子**
```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 pulanganNilai elemen array.

Parameter - id(any array type) objek array. - Tidak.index(series int) indeks elemen untuk mengembalikan nilainya.

Sampai jumpa lagi


### array.push

该函数将一个值附加到阵列。

array.push ((id, nilai)


**例子**
```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 array. - Tidak.value (series <type of the array's elements>) ditambahkan kepada nilai elemen pada akhir array.

Sampai jumpa lagi


### array.set

该函数将元素的值设置为指定的索引。

array.set ((id, indeks, nilai)


**例子**
```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 array. - Tidak.index(series int) untuk mengubah indeks elemen. - Tidak.value (series <type of the array's elements>) Nilai baru yang akan ditetapkan.

Sampai jumpa lagi


### array.sum

该函数返回阵列元素的总和。

array.sum ((id)


**例子**
```pine
// array.sum example
a = array.new_float(0)
for i = 0 to 9
  array.push(a, close[i])
plot(array.sum(a))

Nilai pulanganJumlah unsur-unsur array.

Parameter - id(int[]/float[]) objek barisan.

Sampai jumpa lagi


### array.avg

该函数返回阵列元素的均值。

array.avg(id)


**例子**
```pine
// array.avg example
a = array.new_float(0)
for i = 0 to 9
  array.push(a, close[i])
plot(array.avg(a))

Nilai pulanganNilai rata unsur-unsur array.

Parameter - id(int[]/float[]) objek barisan.

Sampai jumpa lagi


### array.indexof

此函数返回值首次出现的索引。如果找不到该值,则返回 -1。

array.indexof ((id, nilai)


**例子**
```pine
// array.indexof example
a = array.new_float(5,high)
index = array.indexof(a, high)
plot(index)

Nilai pulanganIndeks unsur.

Parameter - id(any array type) objek array. - Tidak.value (series <type of the array's elements>) Nilai yang ingin dicari dalam array.

Sampai jumpa lagi


## strategy

在```strategy```相关的内置函数中,止损点数、止盈点数定义为价格一跳的倍数。例如```strategy.exit```函数的```profit```、```loss```参数以点表示止损、止盈,参数```profit```设置为10,即价格一跳乘以10作为止盈价差,价格一跳即内置变量```syminfo.mintick```。

### strategy

该函数设置了多个策略属性。
注意,传参仅支持```title```,```shorttitle```,```overlay```,```pyramiding```,```default_qty_type```,```default_qty_value```参数,其它参数可以通过PINE语言策略的界面参数设置。

strategi ((judul, shorttitle, overlay, format, ketepatan, skala, piramid, calc_on_order_fills, calc_on_every_tick, max_bars_back, backtest_fill_limits_assumption, default_qty_type, default_qty_value, initial_capital, mata wang, slippage, commission_type, commission_value, process_orders_on_close, close_entries_rule, margin_long, margin_short, explicit_plot_zorder, maxlines_count, max_labels_count, max_boxes_count, risk_free_rate)


**例子**
```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 menunjukkan tajuk penunjuk yang dilihat dalam plugin penunjuk / dasar. Parameter diperlukan. - Tidak.shorttitle(const string) akan menunjukkan tajuk pendek penunjuk yang dilihat dalam contoh carta. Parameter adalah pilihan. - Tidak.overlay(const bool) Jika benar, penunjuk akan ditambahkan sebagai lapisan tumpang tindih dalam siri utama. Jika salah - ia akan ditambahkan ke dalam tetingkap grafik yang berasingan. - Tidak.format(const string) Jenis mungkin nilai penunjuk yang diformatkan pada hala harga ialah: format.inherit、format.price、format.volume、default format.inherit。 - Tidak.precision(const int) digit selepas bilangan titik terapung nilai penunjuk pada paksi harga. Ia mestilah bilangan bulat bukan negatif dan tidak lebih besar daripada 16. Jika diabaikan, format siri induk digunakan. Jika format format.inherit dan parameter ini ditetapkan, format menjadi format.price. - Tidak.scale(scale_type) Indikator harus mengikuti koordinat harga. Nilai yang mungkin ialah: scale.right, scale.left, scale.none. Nilai scale.none hanya boleh digunakan dengan tetapan overlay = true. - Tidak.pyramiding(const int) Jumlah maksimum yang dibenarkan dalam satu arah. Jika nilai ini adalah 0, hanya satu pesanan masuk boleh dibuka dalam satu arah, dan sebarang pesanan masuk lain akan ditolak. Nilai lalai adalah 0. - Tidak.calc_on_order_fills(const bool) Pengiraan pesanan intrabar tambahan. Jika parameter ditetapkan sebagai true, maka polisi akan dikira semula (bukan hanya ketika menutup k baris) sebaik sahaja baris K di dalam baris K dipenuhi selepas perintah. Nilai lalai adalah false. - Tidak.calc_on_every_tick(const bool) Pengiraan dasar intrabar tambahan. Jika parameter adalah true, dasar akan mengira setiap titik secara langsung tanpa menutup baris k. Parameter ini tidak mempengaruhi pengiraan dasar data sejarah. Nilai lalai adalah false. - Tidak.max_bars_back(const int) adalah bilangan maksimum bar yang boleh digunakan untuk dasar rujukan sejarah. Jika data sejarah pembolehubah dirujuk dalam kod skrip ((dengan menggunakan operator bar[]), parameter ini akan digunakan untuk setiap pembolehubah terbina dalam atau pembolehubah pengguna dalam skrip. Saiz kawasan buffer yang berubah dalam skrip pin biasanya dikesan secara automatik. Walau bagaimanapun, dalam beberapa kes ini tidak mungkin, itulah sebabnya parameter ini membenarkan pengguna untuk menetapkan nilai ini secara manual. - Tidak.backtest_fill_limits_assumption(const int) Pendapatan terhad dieksekusi. Pendapatan terhad hanya akan ditukar di intrabar apabila harga pasaran melebihi jumlah tik yang ditetapkan pada paras terhad. - Tidak.default_qty_type(const string) ditentukan untuk digunakanqtyNilai parameter yang dinyatakan dalam fungsi strategi.entry atau strategi.order. Nilai yang mungkin ialah: strategi.fixed menunjukkan kontrak/sekian/jumlah tangan, strategi.cash menunjukkan jumlah mata wang, atau strategi.percent_of_equity menunjukkan peratusan faedah yang tersedia. - Tidak.default_qty_value(const int/float) bilangan transaksi lalai untuk fungsi strategy.entry atau strategi.order, apabila parameter qty tidak ditakrifkan, unitnya ditentukan oleh parameter yang digunakan bersama parameter default_qty_type. - Tidak.currency(const string) Mata wang akaun untuk dasar ini。boleh dipilih。nilai lalai adalah mata wang komoditi pada 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。 - Tidak.slippage(const int) dengan tick sebagai unit tawaran, akan menambah/mengurangkan daripada harga urus niaga pesanan harga jual beli atau pesanan stop loss. Jika mintick = 0.01 dan titik glide = 5, maka jumlah titik glide akan menjadi 5 * 0.01 = 0.05. - Tidak.commission_type(const string) Jenis komisen bagi setiap pesanan. Nilai yang dibenarkan ialah: strategi.commission.percent (peratusan jumlah wang tunai pesanan), strategi.commission.cash_per_contract (menunjukkan jumlah dalam mata wang akaun untuk setiap kontrak), strategi.commission.cash_per_order (menunjukkan jumlah mengikut mata wang akaun untuk setiap pesanan). - Tidak.commission_value(const int/float) Nilai komisen pesanan; bergantung kepada jenis yang dipilih (jenis komisen termasuk peratusan atau jumlah); - Tidak.process_orders_on_close(const bool) apabila diseting sebagai set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set set - Tidak.close_entries_rule(const string) Menentukan urutan penutupan pesanan. Nilai yang dibenarkan ialah: FIFO atau ANY. FIFO (first-in, first-out) bermaksud bahawa apabila banyak perdagangan dibuka, yang pertama mesti ditutup. Aturan ini berlaku untuk saham, niaga hadapan, dan pertukaran asing AS (NFA Peraturan Pematuhan 2-43b). - Tidak.max_lines_count(const int) memaparkan bilangan grafik garis terkini. Nilai lalai adalah 50, dan nilai maksimum yang dibenarkan adalah 500. - Tidak.max_labels_count(const int) menunjukkan jumlah gambar tag terkini. Nilai lalai adalah 50, dan nilai maksimum yang dibenarkan adalah 500. - Tidak.max_boxes_count(const int) jumlah gambar kotak terakhir yang dipaparkan. Nilai lalai adalah 50, dan nilai maksimum yang dibenarkan adalah 500. - Tidak.margin_long(const int/float) Peratusan harga pembelian sekuriti yang mesti dilindungi dengan wang tunai atau gadai janji untuk pelbagai kedudukan. - Tidak.margin_short(const int/float) Bajet kosong adalah peratusan harga pembelian sekuriti yang mesti dilindungi oleh wang tunai atau gadai janji. Ia mestilah bukan negatif. Ia adalah pilihan. Ia adalah 100 secara lalai. - Tidak.explicit_plot_zorder(const bool) Menentukan susunan gambar, pengisian dan persembahan garis mendatar untuk penunjuk. Jika benar, grafik akan digambar mengikut urutan mereka muncul dalam kod penunjuk, dengan setiap grafik yang lebih baru digambar di atas grafik sebelumnya. Ini hanya berlaku untuk fungsi plot * ((), fill dan hline. - Tidak.initial_capital(const int/float) Pada mulanya boleh digunakan untuk perdagangan strategi jumlah wang yang dinyatakan sebagai mata wang yang ditakrifkan dalam keranjang mata wang. Opsional. Nilai lalai adalah 1000000. - Tidak.risk_free_rate(const int/float) Kadar pulangan bebas risiko adalah perubahan peratusan tahunan dalam nilai pelaburan yang mempunyai risiko minimum atau sifar, digunakan untuk mengira nisbah Sharpe dan Sortino. Nilai lalai ialah 2.

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 menggunakan carta jenis bukan standard sebagai asas strategi, anda perlu tahu bahawa hasilnya akan berbeza. Perintah akan dilaksanakan pada harga pada jadual tersebut (e.g. for Heikin Ashi akan menggunakan harga Heikin Ashi (rata-rata) bukan harga pasaran sebenar). Oleh itu, kami sangat mengesyorkan anda menggunakan jenis carta standard dalam strategi anda.

Sampai jumpa lagi


### strategy.entry

这是进入市场的命令。 如果具有相同ID的订单已经挂起,则可修改订单。 如果没有指定ID的订单,则会发出新的订单。 要停用进场指令,应使用命令strategy.cancel或strategy.cancel_all。 与函数strategy.order相比,strategy.entry功能受金字塔影响,可以正确反转市场位置。 如果“Limit”和“stop”参数均为“NaN”,则订单类型为市场订单。

strategi.entry ((id, arah, qty, had, berhenti, oca_name, oca_type, komen, apabila, amaran_message)


**例子**
```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. Pengiktirafan pesanan. Anda boleh membatalkan atau mengubah pesanan dengan merujuk kepada pengiktirafannya. - Tidak.direction(strategy_direction) Satu parameter yang diperlukan. Arah pegangan pasaran: strategi panjang untuk multihead, strategi pendek untuk kosong. - Tidak.qty(series int/float) Pilihan parameter↑ kontrak/bilangan saham/bilangan tangan/bilangan unit yang diperdagangkan↑ nilai lalai adalah NaN↑ - Tidak.limit(series int/float) Pilihan parameter. Harga terhad pesanan. Jika telah ditentukan, jenis pesanan adalah orderlimit atau orderstop-limit. Jenis pesanan lain adalah orderNaN. - Tidak.stop(series int/float) Pilihan parameter. Harga hentian pesanan. Jika ditetapkan, jenis pesanan adalah hentian hentian atau hentian hentian hentian. Jenis pesanan lain adalah hentian NaN. - Tidak.oca_name(series string) Pilihan parameter. Perintah ini adalah milik nama kumpulan OCA. Jika pesanan tidak tergolong dalam mana-mana kumpulan OCA, ia harus mempunyai karakter kosong.Nota: FMZ tidak menyokong parameter ini. - oca_type(input string) Pilihan parameter. Jenis kumpulan pesanan OCA. Nilai yang dibenarkan ialah: strategi.oca.none - pesanan tidak boleh berada di dalam kumpulan OCA tertentu; strategi.oca.cancel - pesanan harus berada di dalam kumpulan OCA, dan semua pesanan lain dalam kumpulan yang sama akan dibatalkan sebaik sahaja pesanan itu ditukar; strategi.oca.reduce - pesanan harus berada di dalam kumpulan OCA, jika jumlah kontrak pesanan X telah diletakkan, maka jumlah kontrak lain dalam kumpulan OCA yang sama akan dikurangkan X.Nota: FMZ tidak menyokong parameter ini. - comment(series string) Pilihan parameter. - Tidak.when(series bool) Pilihan parameter. Status pesanan. Jika set set set true, pesanan diletakkan. Jika set false, tiada apa yang berlaku. - Tidak.alert_message(series string) Satu parameter yang boleh dipilih apabila anda menggunakan {{strategy.order.alert_message}} sebagai penempatan di dalam kotak dialog pembikinan amaran.

strategy.close

Ini adalah perintah untuk keluar dengan ID yang ditentukan. Jika terdapat beberapa pesanan masuk dengan ID yang sama, mereka akan keluar pada masa yang sama. Jika tiada ID yang ditentukan pada perintah yang dicetuskan, perintah itu tidak akan dilaksanakan. Perintah ini menggunakan pesanan pasaran. Setiap kemasukan ditutup oleh pesanan pasaran yang berasingan.

strategy.close(id, when, comment, qty, qty_percent, alert_message) 

Contoh

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↑ Perintah boleh ditutup dengan merujuk kepada pengiktirafannya↑ - Tidak.when(series bool) Pilihan parameter. Syarat perintah. - Tidak.qty(series int/float) Pilihan parameter↑ Jumlah kontrak/bilangan saham/bilangan tangan/unit yang keluar dari perdagangan↑ Nilai lalai adalah NaN↑ - Tidak.qty_percent(series int/float) Menentukan peratusan kedudukan {0-100) ⋅ Ia mempunyai keutamaan yang lebih rendah daripada keutamaan parameter qty ⋅ Opsional ⋅ Nilai lalai adalah 100 ⋅ - Tidak.comment(series string) Pilihan parameter. - Tidak.alert_message(series string) Satu parameter yang boleh dipilih apabila anda menggunakan {{strategy.order.alert_message}} sebagai penempatan di dalam kotak dialog pembikinan amaran.

strategi.close_all

Di samping itu, mereka juga telah membuat keputusan untuk menarik diri dari kedudukan pasaran semasa, menjadikan ia rata.

strategy.close_all(when, comment, alert_message) 

Contoh

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. - Tidak.comment(series string) Pilihan parameter. - Tidak.alert_message(series string) Satu parameter yang boleh dipilih apabila anda menggunakan {{strategy.order.alert_message}} sebagai penempatan di dalam kotak dialog pembikinan amaran.

strategy.exit

Ini adalah perintah keluar yang menentukan kedudukan masuk atau keseluruhan pasaran. Jika pesanan dengan ID yang sama telah diunggah, pesanan boleh diubah. Jika pesanan masuk tidak ditangani, tetapi pesanan keluar muncul, pesanan keluar itu akan dihentikan sehingga orang yang ditangani selepas pesanan masuk dapat meletakkan pesanan keluar. Untuk menghentikan pesanan keluar, perintah strategi.cancel atau strategi.cancel_all harus digunakan. Jika fungsi strategi.exit dipanggil sekali, hanya satu kali sahaja akan keluar. Jika fungsi strategi.exit dipanggil beberapa kali, perintah strategi.exit harus dipanggil beberapa kali. Jika anda menggunakan strategi stop-loss dan track-stop, jenis pesanan adalah stop-loss, hanya satu daripada pesanan yang diletakkan yang akan ditangani terlebih dahulu. Jika semua parameter berikut digunakan.

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

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. Pengiktirafan pesanan. Anda boleh membatalkan atau mengubah pesanan dengan merujuk kepada pengiktirafannya. - Tidak.from_entry(series string) Parameter boleh dipilih. Untuk menentukan pengenal arahan masuk keluar. Untuk keluar dari semua kedudukan, baris kosong harus digunakan. Nilai lalai adalah baris kosong. - Tidak.qty(series int/float) Pilihan parameter↑ Jumlah kontrak/bilangan saham/bilangan tangan/unit yang keluar dari perdagangan↑ Nilai lalai adalah NaN↑ - Tidak.qty_percent(series int/float) Menentukan peratusan kedudukan {0-100) ⋅ Ia mempunyai keutamaan yang lebih rendah daripada keutamaan parameter qty ⋅ Opsional ⋅ Nilai lalai adalah 100 ⋅ - Tidak.profit(series int/float) Pilihan parameter↑ sasaran keuntungan (dilambangkan dengan titik). Jika ditentukan, keluar dari kedudukan pasaran dengan pesanan harga terhad apabila jumlah keuntungan yang ditetapkan (dilambangkan dengan titik) dicapai. Nilai lalai adalah NaN NaN. - Tidak.limit(series int/float) Pilihan parameter. Objektif keuntungan (perlukan harga yang ditentukan). Jika ditetapkan, keluar dari kedudukan pasaran pada harga yang ditentukan (atau lebih baik). Keutamaan parameter rentang batas lebih tinggi daripada keutamaan parameter rentang keuntungan (jika nilai bukan rentang NaN, rentang batas menggantikan rentang keuntungan). - Tidak.loss(series int/float) Pilihan parameter↑ Stop Loss (dilambangkan dengan titik)↑ Jika telah ditentukan, keluar dari kedudukan pasaran dengan satu stop loss apabila jumlah kerugian yang ditentukan (dilambangkan dengan titik) dicapai. Nilai lalai adalah NaN NaN. - Tidak.stop(series int/float) Pilihan parameter↑ Stop Loss (perlukan harga yang ditentukan); Jika ditetapkan, keluar dari kedudukan pasaran pada harga yang ditentukan (atau lebih buruk); Keutamaan parameter stop loss adalah lebih tinggi daripada parameter stop loss adalah lebih tinggi daripada parameter stop loss adalah lebih tinggi daripada parameter stop loss adalah lebih tinggi daripada parameter stop loss adalah lebih tinggi daripada parameter stop loss adalah lebih rendah daripada parameter stop loss adalah lebih rendah daripada parameter stop loss adalah lebih rendah daripada parameter stop loss adalah lebih rendah daripada parameter stop loss adalah lebih rendah daripada parameter stop loss adalah lebih rendah daripada parameter stop loss adalah lebih rendah daripada parameter stop loss adalah lebih rendah daripada parameter stop loss adalah lebih rendah daripada parameter stop loss adalah lebih rendah daripada parameter stop loss adalah lebih rendah daripada parameter stop loss adalah lebih rendah daripada parameter stop loss adalah lebih rendah daripada parameter stop loss adalah lebih rendah daripada parameter stop loss adalah lebih rendah daripada parameter stop loss adalah lebih rendah daripada parameter stop loss adalah lebih rendah daripada parameter stop loss adalah lebih rendah daripada parameter stop loss adalah lebih rendah daripada parameter stop loss adalah lebih rendah daripada parameter stop loss adalah lebih rendah daripada parameter stop loss adalah lebih - Tidak.trail_price(series int/float) Optional parameter↑ tracking stop-loss activation level (perlukan harga yang ditentukan); jika ditentukan, apabila tahap harga yang ditentukan dicapai, stop-loss tracking akan diletakkan; dalam parameter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter filter - Tidak.trail_points(series int/float) Pilihan parameter: ∞ Tingkat pengaktifan stop-loss (dipetik dengan titik keuntungan) ∞ Jika ditentukan, apabila tahap harga yang telah dikira (dipetik dengan titik keuntungan) dicapai, order stop-loss akan diletakkan. ∞ Dalam parameter ∞trail_offset order, parameter penyesuaian digunakan untuk menentukan harga awal order stop-loss (dipetik dengan titik): X titik di bawah tahap pengaktifan untuk keluar dari pelbagai titik; X titik di atas tahap pengaktifan untuk keluar dari tempat kosong. ∞NaN adalah nilai lalai. - Tidak.trail_offset(series int/float) Pilihan parameter.Lengkap pengaktifan stop loss (dilambangkan dengan titik).Penghujung titik digunakan untuk menentukan harga awal pesanan stop loss: X titik lebih rendah daripada stoptrail_price atau stoptrail_points untuk keluar dari pelbagai titik; X titik lebih tinggi daripada stoptrail_price atau stoptrail_points untuk keluar dari tempat kosong. - Tidak.oca_name(series string) Pilihan parameter. Nama kumpulan OCA (oca_type = strategy.oca.reduce). Matlamat keuntungan, stop/track stop. Jika tiada nama yang ditentukan, nama itu akan dihasilkan secara automatik.Nota: FMZ tidak menyokong parameter ini. - comment(series string) Pilihan parameter. - Tidak.when(series bool) Pilihan parameter. Status pesanan. Jika set set set true, pesanan diletakkan. Jika set false, tiada apa yang berlaku. - Tidak.alert_message(series string) Satu parameter yang boleh dipilih apabila anda menggunakan {{strategy.order.alert_message}} sebagai penempatan di dalam kotak dialog pembikinan amaran.

strategy.cancel

Ini adalah arahan rujukan nama untuk membatalkan / menghentikan semua senarai prasyarat, yang dihasilkan oleh fungsi berikut: strategi.order, strategi.entry dan strategi.exit.

strategy.cancel(id, when) 

Contoh

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 mesti dipilih↑ tanda pesanan↑ letak tanda ini untuk membatalkan pesanan↑ - Tidak.when(series bool) Pilihan pilihan. Mengesampingkan pesanan berdasarkan ID. Jika ketukan adalah benar, pesanan itu akan dibatalkan. Nilai lalai adalah ketukan benar.

strategi.cancel_all

这是取消/停用所有预挂单命令,由以下功能生成:strategy.order,strategy.entry和strategy.exit。

strategy.cancel_all(when) 

Contoh

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) Pilihan parameter↑ Batalkan semua syarat perintah↑ Jika syarat benar, semua perintah aktif akan dibatalkan↑ Nilai lalai adalah true

strategy.order

Ini adalah arahan untuk pesanan seterusnya. Jika pesanan dengan ID yang sama telah dipasang, pesanan boleh diubah. Jika tiada pesanan dengan ID yang ditentukan, pesanan baru akan dikeluarkan. Untuk menghentikan pesanan, perintah strategi.cancel atau strategi.cancel_all harus digunakan. Jika kedua-dua parameter pembatasan dan penangguhan pemadaman adalah NaN, jenis pesanan adalah pesanan pasaran.

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. Pengiktirafan pesanan. Anda boleh membatalkan atau mengubah pesanan dengan merujuk kepada pengiktirafannya. - Tidak.direction(strategy_direction) Satu parameter yang diperlukan. Arahan pesanan: arah strategi.lang untuk membeli, arah strategi.pendek untuk menjual. - Tidak.qty(series int/float) Pilihan parameter↑ kontrak/bilangan saham/bilangan tangan/bilangan unit yang diperdagangkan↑ nilai lalai adalah NaN↑ - Tidak.limit(series int/float) Pilihan parameter. Harga terhad pesanan. Jika telah ditentukan, jenis pesanan adalah orderlimit atau orderstop-limit. Jenis pesanan lain adalah orderNaN. - Tidak.stop(series int/float) Pilihan parameter. Harga hentian pesanan. Jika ditetapkan, jenis pesanan adalah hentian hentian atau hentian hentian hentian. Jenis pesanan lain adalah hentian NaN. - Tidak.oca_name(series string) Pilihan parameter. Perintah ini adalah milik nama kumpulan OCA. Jika pesanan tidak tergolong dalam mana-mana kumpulan OCA, ia harus mempunyai karakter kosong.Nota: FMZ tidak menyokong parameter ini. - oca_type(input string) Pilihan parameter. Jenis kumpulan pesanan OCA. Nilai yang dibenarkan ialah: strategi.oca.none - pesanan tidak boleh berada di dalam kumpulan OCA tertentu; strategi.oca.cancel - pesanan harus berada di dalam kumpulan OCA, dan semua pesanan lain dalam kumpulan yang sama akan dibatalkan sebaik sahaja pesanan itu ditukar; strategi.oca.reduce - pesanan harus berada di dalam kumpulan OCA, jika jumlah kontrak pesanan X telah diletakkan, maka jumlah kontrak lain dalam kumpulan OCA yang sama akan dikurangkan X.Nota: FMZ tidak menyokong parameter ini. - comment(series string) Pilihan parameter. - Tidak.when(series bool) Pilihan parameter. Status pesanan. Jika set set set true, pesanan diletakkan. Jika set false, tiada apa yang berlaku. - Tidak.alert_message(series string) Satu parameter yang boleh dipilih apabila anda menggunakan {{strategy.order.alert_message}} sebagai penempatan di dalam kotak dialog pembikinan amaran.

strategi.opentrades.entry_bar_index

Mengembalikan bar_index yang tidak memasuki dagangan.

strategy.opentrades.entry_bar_index(trade_num)

Tunggu 10 garis K dan perbaiki

Contoh

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 ditandatangani. Nombor urus niaga pertama adalah 0.

Sampai jumpa lagi


### strategy.opentrades.entry_id

返回未平仓交易的入场的ID。

strategi.opentrades.entry_id (nombor perdagangan)


**例子**
```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 pulanganMengembalikan ID masuk untuk transaksi yang tidak ditandatangani.

Parameter - trade_num(series int) Nombor urus niaga yang tidak ditandatangani. Nombor urus niaga pertama adalah 0.

Nota:Jika trade_num tidak berada dalam julat, fungsi ini akan mengembalikan na:0 kepada strategy.opentrades−1.

Sampai jumpa lagi


### strategy.opentrades.entry_price

返回未平仓交易的入场价格。

strategi.opentrades.entry_price ((trade_num)


**例子**
```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")

Mengira purata harga yang tidak berdamai

Contoh

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 ditandatangani. Nombor urus niaga pertama adalah 0.

Sampai jumpa lagi


### strategy.opentrades.entry_time

返回未平仓交易入场的UNIX时间。

strategi.opentrades.entry_time (nombor perdagangan)


**例子**
```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 ditandatangani. Nombor urus niaga pertama adalah 0.

Sampai jumpa lagi


### strategy.opentrades.profit

返回未平仓交易的盈亏。损失表示为负值。

strategi.opentrades.profit ((trade_num)


返回最后开仓交易的利润

**例子**
```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 daripada semua dagangan yang tidak diikat

Contoh

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 ditandatangani. Nombor urus niaga pertama adalah 0.

Sampai jumpa lagi


### strategy.opentrades.size

返回未平仓交易中的交易方向和合约数量。如果该值>0,则市场仓位为多头。如果该值<0,则市场仓位为空头。

strategi.opentrades.size ((trade_num)


**例子**
```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")

Mengira peratusan keuntungan purata transaksi yang tidak diikat

Contoh

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 ditandatangani. Nombor urus niaga pertama adalah 0.

Sampai jumpa lagi


### strategy.closedtrades.entry_bar_index

返回已平仓交易入场的bar_index。

strategi. closetrades.entry_bar_index ((trade_num)


**例子**
```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 urus niaga yang telah ditagih. Nombor urus niaga pertama adalah 0.

Sampai jumpa lagi


### strategy.closedtrades.exit_price

返回已平仓交易的出场价格。

strategi.closedtrades.exit_price ((trade_num)


**例子**
```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")

Mengira peratusan keuntungan purata bagi semua dagangan yang telah dipadam

Contoh

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 urus niaga yang telah ditagih. Nombor urus niaga pertama adalah 0.

Sampai jumpa lagi


### strategy.closedtrades.exit_bar_index

返回已平仓交易退出的bar_index。

strategi.closedtrades.exit_bar_index ((trade_num)


**例子**
```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")

Mengira purata K baris setiap transaksi.

Contoh

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 urus niaga yang telah ditagih. Nombor urus niaga pertama adalah 0.

Sampai jumpa lagi


### strategy.closedtrades.entry_id

返回已平仓交易的入场的id。

strategi. closetrades.entry_id (trade_num)


**例子**
```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 pulanganMengembalikan id masuk yang telah ditagih.

Parameter - trade_num(series int) Nombor urus niaga yang telah ditagih. Nombor urus niaga pertama adalah 0.

Nota:Jika trade_num tidak berada dalam julat, fungsi ini akan mengembalikan na:0 kepada strategy.closedtrades−1.

Sampai jumpa lagi


### strategy.closedtrades.entry_price

返回已平仓交易的入场价格。

strategi.perdagangan tertutup.harga kemasukan (nombor perdagangan)


**例子**
```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")

Mengira peratusan keuntungan purata bagi semua dagangan yang telah dipadam

Contoh

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 urus niaga yang telah ditagih. Nombor urus niaga pertama adalah 0.

Sampai jumpa lagi


### strategy.closedtrades.entry_time

返回已平仓交易入场的UNIX时间。

strategi.perdagangan tertutup.waktu kemasukan (nombor perdagangan)


**例子**
```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 urus niaga yang telah ditagih. Nombor urus niaga pertama adalah 0.

Sampai jumpa lagi


### strategy.closedtrades.profit

返回已平仓交易的盈亏。损失表示为负值。

strategi.perdagangan tertutup. keuntungan ((trade_num)


**例子**
```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 urus niaga yang telah ditagih. Nombor urus niaga pertama adalah 0.

Sampai jumpa lagi


### strategy.closedtrades.size

返回已平仓交易中的交易方向和合约数量。如果该值>0,则市场仓位为多头。 如果该值<0,则市场仓位为空头。

strategi.closedtrades.size ((trade_num)


**例子**
```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 peratusan keuntungan purata perdagangan pegangan

Contohpine strategy("Strategi.perdagangan tertutup.ukuran ≠ Contoh 2)

// Strategi menyeru untuk memasuki perdagangan panjang setiap 15 bar dan keluar perdagangan panjang setiap 20 bar. if bar_index % 15 == 0 strategi.entry ((Long, strategi.long) jika bar_index % 20 == 0 strategi.tutup ((Long)

// Mengira keuntungan untuk kedua-dua perdagangan ditutup. keuntunganPct = 0.0 untuk perdaganganNo = 0 kepada strategi.perdagangan tertutup - 1 entryP = strategi.closedtrade


Lebih lanjut

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

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

Lisa20231Terima kasih untuk maklumat lanjut.

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

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

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

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

Awan ringanTidak boleh menggunakan okx analog.

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

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

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

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

Pencipta Kuantiti - Impian KecilTidak sopan.

Awan ringanBaiklah, terima kasih banyak.

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

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

Pencipta Kuantiti - Impian KecilYa, saya faham.

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