Sumber dimuat naik... memuat...

FMZ PINE Script dokumentasi

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

Nilai pulanganBilangan tengah unsur-unsur array.

Parameter

  • id(int[]/float[]) objek barisan.

Sampai jumpa lagi array.avg array.variance array.min

array.mode

Fungsi ini mengembalikan corak elemen array. Jika terdapat beberapa nilai yang mempunyai frekuensi yang sama, nilai minimum akan dikembalikan.

array.mode(id)

Contoh

// 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.new_float array.avg array.variance array.min

array.percentile_linear_interpolation

Mengembalikan peratusan tertentu (peratusan) nilai array yang kurang daripada atau sama dengan nilainya, menggunakan nilai masuk linear.

array.percentile_linear_interpolation(id, percentage) 

Parameter

  • id(int[]/float[]) objek barisan.
  • percentage(series int/float) mesti sama atau kurang daripada peratusan nilai yang dikembalikan.

Nota:Dalam statistik, peratusan adalah peratusan item peringkat yang muncul pada satu kadar atau di bawah kadar tertentu. Pengukuran ini menunjukkan peratusan peratusan dalam pembahagian frekuensi standard yang berada di bawah kadar peratusan yang anda ukur. Input linear menganggarkan nilai antara dua peringkat.

Sampai jumpa lagi array.new_float array.insert array.slice array.reverse order.ascending order.descending

array.percentile_nearest_rank

Menggunakan kaedah ranking terdekat untuk mengembalikan nilai aritmatika (peratusan) bagi peratusan yang ditentukan yang kurang daripada atau sama dengan nilai tersebut.

array.percentile_nearest_rank(id, percentage) 

Parameter

  • id(int[]/float[]) objek barisan.
  • percentage(series int/float) mesti sama atau kurang daripada peratusan nilai yang dikembalikan.

Nota:Dalam statistik, peratusan adalah peratusan item peringkat yang muncul pada satu skor atau di bawah skor tertentu. Pengukuran ini menunjukkan peratusan peratusan dalam sebaran kekerapan standard peringkat peratusan yang anda ukur.

Sampai jumpa lagi array.new_float array.insert array.slice array.reverse order.ascending order.descending

array.percentrank

Kembali ke ranking peratusan nilai tengah array.

array.percentrank(id, index) 

Parameter

  • id(int[]/float[]) objek barisan.
  • index(series int) mengira nilai kedudukan peratusan mereka.

Nota:Peratusan kedudukan adalah peratusan bilangan elemen dalam array yang kurang daripada atau sama dengan nilai rujukan.

Sampai jumpa lagi array.new_float array.insert array.slice array.reverse order.ascending order.descending

array.range

Fungsi ini mengembalikan perbezaan antara nilai minimum dan nilai maksimum dalam array yang diberikan.

array.range(id) 

Contoh

// 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.new_float array.min array.max array.sum

array.remove

Fungsi ini mengubah kandungan array dengan menghapus elemen yang mempunyai indeks yang ditetapkan.

array.remove(id, index)

Contoh

// 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.
  • index(series int) indeks elemen yang ingin dipadamkan.

Sampai jumpa lagi array.new_float array.set array.push array.insert array.pop array.shift

array.reverse

Fungsi ini membalikkan array. Elemen array pertama menjadi yang terakhir, dan elemen array terakhir menjadi yang pertama.

array.reverse(id)

Contoh

// 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.new_float array.sort array.push array.set array.avg

array.from

Fungsi ini menggunakan parameter bilangan pembolehubah dari salah satu jenis berikut: int, float, boolean, string, line, color, linefill, dan mengembalikan array dengan jenis yang sesuai.

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

Contoh

// 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 === Default adalah 0 ===
  • initial_value(series ) 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.from array.push array.get array.size array.remove array.shift array.sum

array.new_bool

Fungsi ini mencipta objek barisan baru yang terdiri daripada unsur-unsur jenis bool.

array.new_bool(size, initial_value)

Contoh

// 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 === Default adalah 0 ===
  • 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.get array.slice array.sort

array.new_float

Fungsi ini mencipta objek barisan unsur float baru.

array.new_float(size, initial_value)

Contoh

// 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 === Default adalah 0 ===
  • 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_bool array.get array.slice array.sort

array.new_int

Fungsi ini mencipta objek barisan baru yang terdiri daripada elemen jenis int.

array.new_int(size, initial_value)

Contoh

// 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 === Default adalah 0 ===
  • 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_float array.get array.slice array.sort

array.new_string

Fungsi ini mencipta objek barisan baru yang mempunyai elemen jenis baris.

array.new_string(size, initial_value)

Contoh

// 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 === Default adalah 0 ===
  • 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.new_float array.get array.slice

array.get

Fungsi ini mengembalikan nilai bagi elemen indeks yang ditentukan.

array.get(id, index)

Contoh

// 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.
  • index(series int) indeks elemen untuk mengembalikan nilainya.

Sampai jumpa lagi array.new_float array.set array.slice array.sort

array.push

Fungsi ini menambahkan nilai kepada array.

array.push(id, value)

Contoh

// 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.
  • value (series <type of the array's elements>) ditambahkan kepada nilai elemen pada akhir array.

Sampai jumpa lagi 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

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

Sampai jumpa lagi array.new_float array.get array.slice

array.sum

Fungsi ini mengembalikan jumlah elemen array.

array.sum(id) 

Contoh

// 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.new_float array.max array.min

array.avg

Fungsi ini mengembalikan nilai rata-rata elemen array.

array.avg(id)

Contoh

// 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.new_float array.max array.min array.stdev

array.indexof

Fungsi ini mengembalikan indeks di mana nilai pertama kali muncul. Jika nilai itu tidak dapat dijumpai, ia akan mengembalikan -1.

array.indexof(id, value)

Contoh

// 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.
  • value (series <type of the array's elements>) Nilai yang ingin dicari dalam array.

Sampai jumpa lagi array.lastindexof array.get array.lastindexof array.remove array.insert

strategi

DalamstrategyDalam fungsi terbina dalam yang berkaitan, bilangan titik stop loss, bilangan titik stop loss ditakrifkan sebagai kelipatan harga lompatan; contohnyastrategy.exitFungsiprofitlossParameter dengan titik menunjukkan penghentian, penghentian, parameterprofitTetapkan kepada 10, iaitu harga lompatan kali 10 sebagai perbezaan harga stop loss, dan harga lompatan adalah pembolehubah terbina dalamsyminfo.mintick

strategi

Fungsi ini menetapkan pelbagai sifat dasar. Perhatikan, hanya sokongantitleshorttitleoverlaypyramidingdefault_qty_typedefault_qty_valueParameter, parameter lain boleh ditetapkan melalui parameter antara muka 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

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 memaparkan tajuk penunjuk yang dilihat dalam pemalam penunjuk / dasar. Parameter diperlukan.
  • shorttitle(const string) akan menunjukkan tajuk pendek penunjuk yang dilihat dalam contoh carta. Parameter adalah pilihan.
  • 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.
  • format(const string) Jenis mungkin nilai penunjuk yang diformat pada hala harga ialah: format.inherit、format.price、format.volume、format.inherit secara lalai。
  • precision(const int) digit selepas bilangan titik terapung nilai penunjuk pada paksi harga. Ia mestilah bilangan bulat bukan negatif dan tidak lebih daripada 16. Jika tidak, format siri induk digunakan. Jika format adalah format.inherit dan parameter ini ditetapkan, format menjadi format.price.
  • 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.
  • 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.
  • calc_on_order_fills(const bool) Pengiraan pesanan intrabar tambahan. Jika parameter ditetapkan sebagai true, maka strategi akan dikira semula (bukan hanya ketika menutup k baris) sebaik sahaja baris K di dalam baris K dipenuhi selepas perintah. Nilai lalai adalah false.
  • calc_on_every_tick(const bool) Pengiraan dasar intrabar tambahan. Jika parameter adalah true, dasar akan mengira setiap titik dalam masa nyata, tanpa menutup baris k. Parameter ini tidak mempengaruhi pengiraan dasar data sejarah. Nilai lalai adalah false.
  • 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 had yang lebih rendah secara manual.
  • 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.
  • default_qty_type(const string) ditentukan untuk digunakanqtyNilai parameter yang dinyatakan dalam fungsi strategi.entry atau strategi.order. Nilai yang mungkin ialah: strategi.fixed untuk kontrak/sekian/jumlah tangan, strategi.cash untuk jumlah mata wang, atau strategi.percent_of_equity untuk peratusan faedah yang tersedia.
  • 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.
  • currency(const string) Mata wang akaun untuk dasar ini. Opsional. 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.
  • slippage(const int) dengan tick sebagai unit tawaran, titik licin akan ditambahkan/dikurangkan daripada harga urus niaga bagi pesanan harga jual beli atau pesanan stop loss. Jika mintick = 0.01 dan titik licin = 5, maka jumlah titik licin akan menjadi 5 * 0.01 = 0.05.
  • 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).
  • commission_value(const int/float) Nilai komisen pesanan; bergantung kepada jenis yang dipilih (jenis komisen termasuk peratusan atau jumlah);
  • process_orders_on_close(const bool) apabila diset pada ketuk yang benar, akan menghasilkan percubaan lain untuk membuat pesanan pelaksanaan selepas grafik ditutup dan perhitungan strategi selesai. Jika pesanan adalah pesanan harga pasaran, simulator broker akan melaksanakannya sebelum pembukaan grafik seterusnya. Jika pesanan adalah harga terhad, pesanan hanya akan dilaksanakan apabila syarat harga dipenuhi. Jika anda ingin menutup kedudukan dalam grafik semasa, pilihan ini berguna.
  • close_entries_rule(const string) Menentukan urutan penutupan pesanan. Nilai yang dibenarkan ialah: FIFO atau ANY. FIFO bermaksud bahawa apabila banyak perdagangan dibuka, yang pertama harus ditutup terlebih dahulu. Aturan ini berlaku untuk saham, niaga hadapan dan pertukaran asing AS (NFA Peraturan Pematuhan 2-43b). ANY bermaksud bahawa perdagangan boleh ditutup dalam sebarang urutan; ini dibenarkan dalam perdagangan asing AS. FIFO adalah nilai lalai.
  • max_lines_count(const int) memaparkan bilangan grafik garis terkini. Nilai lalai ialah 50, dan nilai maksimum yang dibenarkan ialah 500.
  • max_labels_count(const int) menunjukkan jumlah gambar tag terkini. Nilai lalai adalah 50, dan nilai maksimum yang dibenarkan adalah 500.
  • max_boxes_count(const int) jumlah gambar kotak terakhir yang dipaparkan. Nilai lalai adalah 50, dan nilai maksimum yang dibenarkan adalah 500.
  • margin_long(const int/float) Peratusan harga pembelian sekuriti yang mesti dilindungi dengan wang tunai atau gadai janji untuk pelbagai kedudukan.
  • 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.
  • 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.
  • 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.
  • 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 indicator

strategy.entry

Ini adalah arahan masuk ke pasaran. Jika pesanan dengan ID yang sama telah dipasang, anda boleh mengubah pesanan. Jika tiada pesanan dengan ID yang ditentukan, pesanan baru akan dikeluarkan. Untuk menghentikan arahan masuk, anda harus menggunakan arahan strategi.cancel atau strategi.cancel_all. Jika kedua-dua parameter peluru Limit dan peluru stop adalah peluru NaN, jenis pesanan adalah pesanan pasaran.

strategy.entry(id, direction, qty, limit, stop, oca_name, oca_type, comment, when, alert_message) 

Contoh

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↑ Pesan boleh dibatalkan atau diubahsuai dengan merujuk kepada pengiktirafannya↑
  • direction(strategy_direction) Satu parameter yang diperlukan. Arah pegangan pasaran:'strategy.long cap' untuk multi-head,'strategy.short cap' untuk blank head.
  • qty(series int/float) Pilihan parameter↑ kontrak/bilangan saham/bilangan tangan/bilangan unit yang diperdagangkan↑ nilai lalai adalah NaN
  • limit(series int/float) Pilihan parameter.  Harga terhad bagi pesanan.  Jika ditetapkan, jenis pesanan adalah "limit" atau "stop-limit".  Jenis pesanan lain adalah "NaN".
  • stop(series int/float) parameter boleh dipilih. Harga hentian pesanan. Jika ditetapkan, jenis pesanan adalah "stop" atau "stop-limit". Jenis pesanan lain adalah "NaN".
  • 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.
  • when(series bool) Pilihan parameter. Status pesanan. Jika "true", pesanan diletakkan. Jika "false", tiada apa yang berlaku.
  • 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↑ Pengiktirafan pesanan boleh ditutup dengan merujuk kepada pengiktirafan tersebut↑
  • when(series bool) Pilihan parameter. Syarat perintah.
  • qty(series int/float) Pilihan parameter↑ jumlah kontrak/bilangan saham/bilangan tangan/unit yang keluar dari perdagangan↑ Nilai lalai adalah NaN
  • qty_percent(series int/float) Menentukan peratusan kedudukan ((0-100)). Ia mempunyai keutamaan yang lebih rendah daripada keutamaan parameter qty. Opsional. Nilai lalai ialah 100.
  • comment(series string) Pilihan parameter.
  • 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.
  • comment(series string) Pilihan parameter.
  • 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 dipasang, anda boleh mengubahnya. Jika pesanan masuk tidak ditangani, tetapi pesanan keluar muncul, pesanan keluar akan ditangguhkan sehingga orang yang mendahului pesanan masuk boleh meletakkan pesanan keluar. Untuk menghentikan pesanan keluar, anda harus menggunakan perintah strategi.cancel atau strategi.cancel_all. Jika fungsi strategi.exit dipanggil sekali, anda akan keluar sekali sahaja. Jika anda ingin keluar beberapa kali, anda boleh menggunakan strategi.cancel atau strategi.cancel_all.应该多次调用命令strategy.exitJika anda menggunakan stop-loss dan stop-track, jenis pesanan adalah stop-loss, dan hanya satu daripada mereka yang akan diletakkan (akan diletakkan terlebih dahulu). Jika semua parameter berikut: stop-profit, stop-limit, stop-loss, stop-trail, stop-trail_points, stop-trail_offset semuanya adalah NaN, pesanan akan gagal. Untuk menggunakan pesanan keluar pasaran, anda harus menggunakan strategi.close atau strategi.close_all.

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↑ Pesan boleh dibatalkan atau diubahsuai dengan merujuk kepada pengiktirafannya↑
  • 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.
  • qty(series int/float) Pilihan parameter↑ jumlah kontrak/bilangan saham/bilangan tangan/unit yang keluar dari perdagangan↑ Nilai lalai adalah NaN
  • qty_percent(series int/float) Menentukan peratusan kedudukan ((0-100)). Ia mempunyai keutamaan yang lebih rendah daripada keutamaan parameter qty. Opsional. Nilai lalai ialah 100.
  • 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 ditentukan (dilambangkan dengan titik) dicapai. Nilai lalai adalah NaN NaN.
  • limit(series int/float) Pilihan parameter. Objektif keuntungan (membutuhkan harga yang ditentukan). Jika ditetapkan, keluar dari kedudukan pasaran dengan harga yang ditentukan (atau lebih baik). Keutamaan parameter rentang batas lebih tinggi daripada keutamaan parameter rentang keuntungan (jika bukan rentang NaN, rentang batas menggantikan rentang keuntungan).
  • loss(series int/float) Pilihan parameter↑ Stop Loss (ditandakan dengan titik)↑ Jika telah ditentukan, keluar dari kedudukan pasaran dengan satu stop loss apabila jumlah kerugian yang ditetapkan (ditandakan dengan titik) dicapai.
  • 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
  • trail_price(series int/float) Optional parameter↑ tracking stop loss activation level (perlu menentukan harga); jika ditentukan, apabila tahap harga yang ditetapkan 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 filter filter filter
  • trail_points(series int/float) Pilihan parameter.Lengkap pengaktifan stop-loss (dilambangkan dengan titik keuntungan) jika ditentukan, apabila mencapai tahap harga yang telah dikira (dilambangkan dengan jumlah keuntungan) baris stop-loss akan diletakkan.Di dalam parameter baris stop-loss yang digunakan untuk menentukan harga awal baris stop-loss (dilambangkan dengan titik): titik X di bawah tahap pengaktifan untuk keluar banyak; titik X di atas tahap pengaktifan untuk keluar kosong.
  • trail_offset(series int/float) Pilihan parameter. Tingkat pengaktifan stop-loss (dilambangkan dengan titik) Penghujung titik digunakan untuk menentukan harga awal pesanan stop-loss yang dilambangkan dengan titik: X titik lebih rendah daripada trail_price or 'trail_points untuk keluar dari pelbagai titik; X titik lebih tinggi daripada trail_price or 'trail_points untuk keluar dari tempat kosong.
  • 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.
  • when(series bool) Pilihan parameter. Status pesanan. Jika "true", pesanan diletakkan. Jika "false", tiada apa yang berlaku.
  • 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 nama rujukan untuk membatalkan / menghentikan semua arahan senarai prasyarat, yang dihasilkan oleh fungsi berikut: strategi.order, strategi.entry andstrategy.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↑
  • when(series bool) Pilihan pilihan. Mengesampingkan pesanan berdasarkan ID. Jika "benar", pesanan itu akan dibatalkan. Nilai lalai adalah "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↑ Pesan boleh dibatalkan atau diubahsuai dengan merujuk kepada pengiktirafannya↑
  • direction(strategy_direction) Satu parameter yang diperlukan. Arahan pesanan:'strategy.long' untuk membeli,'strategy.short' untuk menjual.
  • qty(series int/float) Pilihan parameter↑ kontrak/bilangan saham/bilangan tangan/bilangan unit yang diperdagangkan↑ nilai lalai adalah NaN
  • limit(series int/float) Pilihan parameter.  Harga terhad bagi pesanan.  Jika ditetapkan, jenis pesanan adalah "limit" atau "stop-limit".  Jenis pesanan lain adalah "NaN".
  • stop(series int/float) parameter boleh dipilih. Harga hentian pesanan. Jika ditetapkan, jenis pesanan adalah "stop" atau "stop-limit". Jenis pesanan lain adalah "NaN".
  • 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.
  • when(series bool) Pilihan parameter. Status pesanan. Jika "true", pesanan diletakkan. Jika "false", tiada apa yang berlaku.
  • 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.closedtrades.entry_bar_index strategy.closedtrades.exit_bar_index

strategi.opentrades.entry_id

Mengembalikan ID masuk untuk transaksi yang tidak ditandatangani.

strategy.opentrades.entry_id(trade_num)

Contoh

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_bar_index strategy.opentrades.entry_time

strategi.perdagangan terbuka.harga kemasukan

Mengembalikan harga masuk untuk dagangan yang tidak ditagih.

strategy.opentrades.entry_price(trade_num)

Contoh

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.closedtrades.exit_price

strategi.opentrades.entry_time

Mengembalikan masa UNIX untuk memasuki dagangan yang tidak berpatutan.

strategy.opentrades.entry_time(trade_num)

Contoh

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.closedtrades.entry_time strategy.closedtrades.exit_time

strategy.opentrades.profit

Mengembalikan keuntungan dan kerugian daripada transaksi yang tidak diseimbangkan.

strategy.opentrades.profit(trade_num)

Mengembalikan keuntungan dari dagangan terakhir

Contoh

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.closedtrades.profit strategy.openprofit strategy.netprofit strategy.grossprofit

strategy.opentrades.size

Mengembalikan arah dagangan dan jumlah kontrak dalam dagangan yang tidak diikat. Jika nilai > 0, maka kedudukan pasaran adalah berbilang kepala. Jika nilai < 0, maka kedudukan pasaran adalah kosong.

strategy.opentrades.size(trade_num)

Contoh

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.size strategy.position_size strategy.opentrades strategy.closedtrades

strategi.perdagangan tertutup.entry_bar_index

Mengembalikan bar_index yang telah memasuki perdagangan.

strategy.closedtrades.entry_bar_index(trade_num)

Contoh

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_bar_index strategy.opentrades.entry_bar_index

Strategi.Trading tertutup.Exit_price

Mengembalikan harga keluar dari dagangan yang telah dipadamkan.

strategy.closedtrades.exit_price(trade_num)

Contoh

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.entry_price

strategi. closetrades.exit_bar_index

Mengembalikan bar_index yang telah keluar dari perdagangan neraca.

strategy.closedtrades.exit_bar_index(trade_num)

Contoh

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 bar_index

strategi.perdagangan tertutup.entry_id

Mengembalikan id masuk yang telah ditagih.

strategy.closedtrades.entry_id(trade_num)

Contoh

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_bar_index strategy.closedtrades.entry_time

strategi.perdagangan tertutup.harga kemasukan

Mengembalikan harga masuk untuk dagangan yang telah ditagih.

strategy.closedtrades.entry_price(trade_num)

Contoh

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.exit_price strategy.closedtrades.size strategy.closedtrades

strategi.perdagangan tertutup.waktu kemasukan

Kembali ke masa UNIX yang telah memasuki perdagangan yang telah ditandatangani.

strategy.closedtrades.entry_time(trade_num)

Contoh

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.opentrades.entry_time strategy.closedtrades.exit_time time

strategy.closedtrades.profit

Mengembalikan keuntungan dan kerugian daripada dagangan yang telah diratakan.

strategy.closedtrades.profit(trade_num)

Contoh

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.opentrades.profit strategy.closedtrades.commission

strategy.closedtrades.size

Mengembalikan arah dagangan dan jumlah kontrak dalam dagangan yang telah dipadamkan. Jika nilainya > 0, maka kedudukan pasaran adalah berbilang kepala. Jika nilainya < 0, maka kedudukan pasaran adalah kosong.

strategy.closedtrades.size(trade_num)

Contoh

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

Contoh

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