Sumber daya yang dimuat... Pemuatan...

FMZ PINE Script dokumentasi

Penulis:Penemu Kuantitas - Mimpi Kecil, Dibuat: 2022-05-06 14:27:06, Diperbarui: 2024-10-12 15:27:04

Kembali nilaiJumlah median dari elemen array.

Parameter

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

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

array.mode

Fungsi ini mengembalikan pola elemen array. Jika ada beberapa nilai dengan frekuensi yang sama, maka nilai minimal 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))

Kembali nilaiPola elemen array.

Parameter

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

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

array.percentile_linear_interpolation

Mengembalikan persentase yang ditentukan dari nilai array kurang dari atau sama dengan nilainya, menggunakan input linear.

array.percentile_linear_interpolation(id, percentage) 

Parameter

  • id(int[]/float[]) Array objek.
  • percentage(series int/float) harus sama atau lebih kecil dari persentase nilai yang dikembalikan.

PenjelasanDalam statistik, persentase adalah persentase dari item peringkat yang muncul pada suatu skor atau di bawah skor tertentu. Pengukuran ini menunjukkan persentase persentase dalam distribusi frekuensi standar yang berada di bawah peringkat persentase yang Anda ukur. Input linear memperkirakan 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 metode ranking terbaru untuk mengembalikan nilai aritmatika dari persentase yang ditentukan (persentase) kurang dari atau sama dengan nilai tersebut.

array.percentile_nearest_rank(id, percentage) 

Parameter

  • id(int[]/float[]) Array objek.
  • percentage(series int/float) harus sama atau lebih kecil dari persentase nilai yang dikembalikan.

PenjelasanDalam statistik, persentase adalah persentase dari item peringkat yang muncul pada suatu skor atau di bawah skor tertentu. Pengukuran ini menunjukkan persentase pecahan dalam distribusi frekuensi standar yang lebih rendah dari peringkat persentase yang Anda ukur.

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

array.percentrank

Mengembalikan peringkat persentase dari nilai tengah array.

array.percentrank(id, index) 

Parameter

  • id(int[]/float[]) Array objek.
  • index(series int) menghitung nilai peringkat persentase mereka.

PenjelasanPeringkat persentase adalah persentase dari berapa banyak elemen dalam suatu array yang kurang dari atau sama dengan nilai referensi.

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

array.range

Fungsi ini mengembalikan selisih antara nilai minimum dan nilai maksimum dari 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))

Kembali nilaiPerbedaan antara nilai minimum dan nilai maksimum dalam suatu himpunan.

Parameter

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

Sampai jumpa lagi array.new_float array.min array.max array.sum

array.remove

Fungsi ini mengubah isi array dengan menghapus elemen yang memiliki indeks yang ditentukan.

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)

Kembali nilaiNilai elemen yang dihapus.

Parameter

  • id(any array type) objek array.
  • index(series int) indeks elemen yang ingin dihapus.

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

array.reverse

Fungsi ini membalik 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 dari salah satu tipe berikut: int, float, boolean, string, line, color, linefill, dan mengembalikan array dengan tipe 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)

Kembali nilaiNilai dari elemen array.

Parameter

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

array.new

Fungsi ini akan membuat<type>Objek Array Elemen.

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)

Kembali nilaiFungsi ID dari objek array yang dapat digunakan bersama dengan array lainnya.

Parameter

  • size(series int) ukuran awal dari urutan. Opsional. Default adalah 0.
  • initial_value(series ) Nilai awal dari semua elemen deret. Opsional.

PenjelasanIndeks array dimulai dari 0. Jika Anda ingin menginisialisasi suatu array dan menetapkan semua elemen pada saat 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 membuat objek array baru yang terdiri dari elemen tipe boolean.

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)

Kembali nilaiFungsi ID dari objek array yang dapat digunakan bersama dengan array lainnya.

Parameter

  • size(series int) ukuran awal dari urutan. Opsional. Default adalah 0.
  • initial_value(series bool) Nilai awal dari semua elemen deret. Opsional. Default adalah na.

PenjelasanIndeks array dimulai dari 0.

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

array.new_float

Fungsi ini membuat objek array elemen floating point 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)

Kembali nilaiFungsi ID dari objek array yang dapat digunakan bersama dengan array lainnya.

Parameter

  • size(series int) ukuran awal dari urutan. Opsional. Default adalah 0.
  • initial_value(series int/float) Nilai awal dari semua elemen deret. Opsional.

PenjelasanIndeks array dimulai dari 0.

Sampai jumpa lagi array.new_bool array.get array.slice array.sort

array.new_int

Fungsi ini membuat objek array baru yang terdiri dari elemen dengan tipe 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)

Kembali nilaiFungsi ID dari objek array yang dapat digunakan bersama dengan array lainnya.

Parameter

  • size(series int) ukuran awal dari urutan. Opsional. Default adalah 0.
  • initial_value(series int) Nilai awal dari semua elemen deret↑ opsional↑ default adalah na

PenjelasanIndeks array dimulai dari 0.

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

array.new_string

Fungsi ini membuat objek array baru dengan elemen tipe string.

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

Kembali nilaiFungsi ID dari objek array yang dapat digunakan bersama dengan array lainnya.

Parameter

  • size(series int) ukuran awal dari urutan. Opsional. Default adalah 0.
  • initial_value(series string) Nilai awal dari semua elemen deret↑ opsional↑ default adalah na

PenjelasanIndeks array dimulai dari 0.

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

array.get

Fungsi ini mengembalikan nilai dari 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))

Kembali nilaiNilai dari elemen array.

Parameter

  • id(any array type) objek array.
  • index(series int) indeks dari elemen yang akan dikembalikan nilainya.

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

array.push

Fungsi ini menambahkan nilai ke 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 ke nilai elemen di 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 ditentukan.

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

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

Kembali nilaiJumlah elemen array.

Parameter

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

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

Kembali nilaiNilai rata-rata elemen array.

Parameter

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

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 tidak dapat menemukan nilai, maka kembali -1.

array.indexof(id, value)

Contoh

// array.indexof example
a = array.new_float(5,high)
index = array.indexof(a, high)
plot(index)

Kembali nilaiIndeks elemen.

Parameter

  • id(any array type) objek array.
  • value (series <type of the array's elements>) adalah nilai yang harus dicari dalam suatu array.

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

strategi

distrategyDalam fungsi built-in yang terkait, stop loss point number, stop loss point number, atau stop loss point number didefinisikan sebagai kelipatan harga jump; misalnyastrategy.exitFungsiprofitlossParameter dengan titik menunjukkan stop loss, stop loss, parameterprofitSetel menjadi 10, yaitu harga lompat kali 10 sebagai harga stop loss, harga lompat adalah variabel built-insyminfo.mintick

strategi

Fungsi ini mengatur beberapa atribut kebijakan. Perhatikan, hanya mendukungtitleshorttitleoverlaypyramidingdefault_qty_typedefault_qty_valueParameter, parameter lainnya dapat diatur melalui parameter antarmuka dari kebijakan 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 menampilkan judul indikator yang terlihat di plugin indikator/kebijakan. Parameter diperlukan.
  • shorttitle(const string) akan menampilkan short header indikator yang terlihat pada contoh grafik. Parameter adalah opsional.
  • overlay(const bool) Jika true, pointer ini akan ditambahkan ke lapisan overlay dari seri utama. Jika false - itu akan ditambahkan ke jendela grafik yang terpisah.
  • format(const string) Jenis nilai indikator yang dapat diformat pada sumbu harga adalah: format.inherit、format.price、format.volume、format.inherit secara default。
  • precision(const int) digit setelah nilai floating point pada nilai indikator pada sumbu harga. Haruslah bilangan bulat non-negatif dan tidak lebih besar dari 16. Jika dihilangkan, gunakan format dari seri induk. Jika format adalah format.inherit dan parameter ini ditetapkan, format menjadi format.price.
  • scale(scale_type) Indikator harus mengikuti koordinat harga. Mungkin: scale.right, scale.left, scale.none. Nilai scale.none hanya dapat digunakan dalam kombinasi dengan pengaturan overlay = true.
  • pyramiding(const int) Jumlah maksimum yang diizinkan dalam satu arah. Jika nilai ini adalah 0, maka hanya satu pesanan masuk yang dapat dibuka dalam satu arah, dan setiap pesanan masuk lainnya akan ditolak.
  • calc_on_order_fills(const bool) perhitungan perintah intrabar tambahan. Jika parameter ditetapkan sebagai true, maka kebijakan akan dihitung kembali (tidak hanya pada saat menutup baris k) begitu baris K di dalam baris K dipenuhi setelah perintah.
  • calc_on_every_tick(const bool) Perhitungan kebijakan intrabar tambahan. Jika parameter adalah true, kebijakan akan menghitung setiap titik dalam waktu nyata, tanpa menutup string k. Parameter ini tidak mempengaruhi perhitungan kebijakan data historis.
  • max_bars_back(const int) adalah ukuran maksimum yang dapat digunakan untuk kebijakan referensi sejarah. Jika dalam kode skrip Anda mengutip data sejarah variabel (dengan menggunakan operator 'const[]'), parameter ini akan diterapkan pada setiap variabel bawaan atau variabel pengguna dalam skrip Anda. Ukuran buffer variabel dalam skrip pine biasanya terdeteksi secara otomatis. Namun, dalam beberapa kasus ini tidak mungkin, itulah sebabnya parameter memungkinkan pengguna untuk mengatur batas bawah nilai ini secara manual.
  • backtest_fill_limits_assumption(const int) Asumsi eksekusi quotation; hanya jika harga pasar melebihi jumlah tik yang ditentukan pada level quotation, quotation akan ditransfer di intrabar.
  • default_qty_type(const string) ditentukan untuk digunakanqtyNilai dari parameter tersebut adalah konten yang dinyatakan dalam fungsi strategi.entry atau strategi.order. Values yang mungkin adalah: strategi.fixed untuk kontrak/saham/jumlah tangan, strategi.cash untuk jumlah mata uang, atau strategi.percent_of_equity untuk persentase hak yang tersedia.
  • default_qty_value(const int/float) jumlah transaksi default dari fungsi strategy.entry atau strategy.order, yang apabila parameter qty tidak didefinisikan, satuannya ditentukan oleh parameter yang digunakan bersama dengan parameter default_qty_type.
  • currency(const string) Mata uang akun dari kebijakan ini──opsional──default adalah mata uang dari komoditas pada grafik──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 penawaran, akan ditambahkan/dikurangi dari harga transaksi pada pesanan jual beli atau pesanan stop loss. Jika mintick = 0.01 dan titik geser = 5, maka total titik geser akan 5 * 0.01 = 0.05.
  • commission_type(const string) Jenis komisi untuk setiap order. Nilai yang diizinkan adalah: strategi.commission.percent (persentase jumlah uang tunai yang dipesan), strategi.commission.cash_per_contract (menampilkan jumlah dengan mata uang rekening per kontrak), strategi.commission.cash_per_order (menampilkan jumlah dengan mata uang rekening per pesanan).
  • commission_value(const int/float) Nilai komisi pesanan; tergantung pada jenis yang dipilih (jenis komisi termasuk persentase atau jumlah);
  • process_orders_on_close(const bool) saat disetel ke konstan true, akan menghasilkan upaya lain untuk melakukan perintah setelah grafik ditutup dan perhitungan strategi selesai. Jika pesanan adalah pesanan harga pasar, simulator broker akan mengeksekusi mereka sebelum grafik berikutnya dibuka. Jika pesanan adalah batas harga, pesanan hanya akan dieksekusi ketika kondisi harga terpenuhi. Jika Anda ingin menutup posisi pada grafik saat ini, pilihan ini berguna.
  • close_entries_rule(const string) Menentukan urutan penutupan order. Nilai yang diizinkan adalah: FIFO atau ANY. FIFO (first-in, first-out) berarti bahwa perdagangan pertama harus ditutup terlebih dahulu ketika beberapa perdagangan terbuka. Aturan ini berlaku untuk saham, futures, dan FX (NFA Conformance Rule 2-43b).
  • max_lines_count(const int) Menampilkan jumlah gambar garis terbaru. Nilai default adalah 50, dan nilai maksimum yang diizinkan adalah 500.
  • max_labels_count(const int) Tampilkan jumlah gambar tag terbaru. Nilai default adalah 50, dan nilai maksimum yang diizinkan adalah 500.
  • max_boxes_count(const int) jumlah gambar kotak terakhir yang ditampilkan. Nilai default adalah 50, nilai maksimum yang diizinkan adalah 500.
  • margin_long(const int/float) Multiplatum adalah persentase dari harga pembelian sekuritas yang harus ditutupi dengan uang tunai atau gadai.
  • margin_short(const int/float) Kapasitas jaminan kosong adalah persentase dari harga pembelian sekuritas di mana posisi kosong harus ditutupi dengan uang tunai atau jaminan.
  • explicit_plot_zorder(const bool) Menentukan urutan gambar, pengisian, dan rendering garis horizontal indikator. Jika benar, grafik akan digambar sesuai dengan urutan mereka muncul dalam kode indikator, 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 awalnya dapat digunakan untuk trading strategi dalam jumlah uang yang diartikan sebagai mata uang yang didefinisikan dalam kotak mata uang. Opsional.
  • risk_free_rate(const int/float) Pengembalian bebas risiko adalah perubahan persentase tahunan dari nilai investasi dengan risiko minimal atau nol, yang digunakan untuk menghitung rasio Sharpe dan Sortino.

PenjelasanSetiap skrip strategi harus memiliki panggilan strategi. Kode PineScript yang menggunakan parameter calc_on_every_tick = true dapat melakukan perhitungan yang berbeda pada catatan sejarah dan data real-time. Ketika menggunakan grafik tipe non-standar sebagai dasar strategi, Anda perlu tahu bahwa hasilnya akan berbeda. Pesanan akan dieksekusi pada harga tabel tersebut (misalnya, untuk Heikin Ashi akan menggunakan harga Heikin Ashi (rata-rata) bukan harga pasar yang sebenarnya). Oleh karena itu, kami sangat menyarankan Anda menggunakan tipe grafik tipe standar dalam strategi Anda.

Sampai jumpa lagi indicator

strategy.entry

Ini adalah perintah masuk pasar. Jika pesanan dengan ID yang sama sudah ditempelkan, Anda dapat memodifikasi pesanan. Jika tidak ada pesanan dengan ID yang ditentukan, pesanan baru akan dikeluarkan. Untuk menghentikan perintah masuk, Anda harus menggunakan perintah strategi.cancel atau strategi.cancel_all. Fungsi strategi.entry, yang dipengaruhi oleh fungsi strategi.order, dapat membalikkan posisi pasar dengan benar.

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. Tanda pesanan. Anda dapat membatalkan atau mengubah pesanan dengan merujuk pada tanda pesanan.
  • direction(strategy_direction) Sebuah parameter yang diperlukan. Arah kepemilikan pasar: strategi.long untuk multihead, strategi.short untuk blankhead.
  • qty(series int/float) Optional parameter↑ kontrak/jumlah saham/jumlah tangan/jumlah unit yang ditransfer↑ default adalah NaN
  • limit(series int/float) Optional parameter. Harga batas order. Jika sudah ditentukan, jenis order adalah "limit" atau "stop-limit". Jenis order lainnya adalah "NaN".
  • stop(series int/float) Optional parameter. Stop loss price of order. Jika sudah ditentukan, jenis order adalah "stop" atau "stop-limit". Jenis order lainnya adalah "NaN".
  • oca_name(series string) Optional parameter. Perintah ini termasuk dalam nama kelompok OCA. Jika pesanan tidak termasuk dalam kelompok OCA, maka harus ada karakter kosong.Catatan: FMZ tidak mendukung parameter ini.
  • oca_type(input string) parameter yang dapat dipilih. Jenis kelompok pesanan OCA. Nilai yang diizinkan adalah: strategi.oca.none - pesanan tidak harus menjadi bagian dari kelompok OCA tertentu; strategi.oca.cancel - pesanan harus menjadi bagian dari kelompok OCA, dan semua pesanan lain dalam kelompok yang sama akan dibatalkan setelah pesanan selesai; strategi.oca.reduce - pesanan harus menjadi bagian dari kelompok OCA, jika X jumlah kontrak pesanan telah ditempatkan, maka jumlah kontrak lainnya dalam kelompok OCA yang sama akan berkurang X.Catatan: FMZ tidak mendukung parameter ini.
  • comment(series string) Optional parameter.
  • when(series bool) Optional parameter. Status order. Jika "true", order ditempatkan. Jika "false", tidak ada yang terjadi.
  • alert_message(series string) Sebuah parameter opsional ketika Anda menggunakan karakter {{strategy.order.alert_message}} dalam kolom string pesan yang dibuat untuk dialog alarm.

strategy.close

Ini adalah perintah untuk keluar dari pesanan dengan ID yang ditentukan. Jika ada beberapa pesanan masuk dengan ID yang sama, mereka semua akan keluar pada saat yang sama. Perintah tidak akan berlaku jika tidak ada pesanan terbuka dengan ID yang ditentukan saat perintah dipicu. Perintah ini menggunakan pesanan pasar. Setiap entri ditutup oleh pesanan pasar terpisah.

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. Tanda pesanan. Tanda pesanan dapat ditutup dengan mengutip tanda pesanan.
  • when(series bool) Optional parameter. Kondisi perintah.
  • qty(series int/float) Optional parameter↑ jumlah kontrak/jumlah saham/jumlah tangan/unit yang keluar dari transaksi↑ default adalah NaN
  • qty_percent(series int/float) mendefinisikan persentase dari neraca ((0-100)). Prioritasnya lebih rendah dari prioritas parameter qty. Opsional.
  • comment(series string) Optional parameter.
  • alert_message(series string) Sebuah parameter opsional ketika Anda menggunakan karakter {{strategy.order.alert_message}} dalam kolom string pesan yang dibuat untuk dialog alarm.

Strategi. tutup semua

Jika Anda ingin keluar dari posisi pasar saat ini, maka Anda harus membuat posisi pasar Anda 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) Optional parameter. Kondisi perintah.
  • comment(series string) Optional parameter.
  • alert_message(series string) Sebuah parameter opsional ketika Anda menggunakan karakter {{strategy.order.alert_message}} dalam kolom string pesan yang dibuat untuk dialog alarm.

strategy.exit

Ini adalah perintah keluar yang menentukan posisi masuk atau seluruh pasar. Jika pesanan dengan ID yang sama sudah ditempelkan, Anda dapat memodifikasi pesanan. Jika pesanan masuk tidak ditangani, tetapi pesanan keluar muncul, pesanan keluar akan ditunda sampai orang yang ditangani setelah pesanan masuk ditangani. Untuk menghentikan pesanan keluar, Anda harus menggunakan perintah strategi.cancel atau strategi.cancel_all. Jika fungsi strategi.exit dipanggil sekali, Anda akan keluar hanya sekali. Jika Anda ingin keluar beberapa kali, Anda dapat menggunakan strategi.cancel atau strategi.cancel_all.应该多次调用命令strategy.exitJika Anda menggunakan stop-loss dan stop-track, jenis ordernya adalah stop-loss, hanya satu yang akan ditempatkan (akan ditransfer terlebih dahulu). Jika semua parameter berikut: stop-profit, stop-limit, stop-loss, stop-trail, stop-trail_points, stop-trail_offset, dan stop-trail_offset, maka order akan gagal.

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. Tanda pesanan. Anda dapat membatalkan atau mengubah pesanan dengan merujuk pada tanda pesanan.
  • from_entry(series string) Optional parameter↑ untuk menentukan pengenal perintah masuk keluar↑ untuk keluar dari semua posisi, string kosong harus digunakan↑ default adalah string kosong↑
  • qty(series int/float) Optional parameter↑ jumlah kontrak/jumlah saham/jumlah tangan/unit yang keluar dari transaksi↑ default adalah NaN
  • qty_percent(series int/float) mendefinisikan persentase dari neraca ((0-100)). Prioritasnya lebih rendah dari prioritas parameter qty. Opsional.
  • profit(series int/float) Optional parameter. Tujuan keuntungan (dilambangkan dengan titik). Jika telah ditentukan, keluar dari posisi pasar dengan perintah harga terbatas ketika keuntungan yang ditentukan (dilambangkan dengan titik) tercapai.
  • limit(series int/float) Optional parameter. Tujuan keuntungan. Jika ditentukan, keluar dari posisi pasar dengan harga yang ditentukan. Jika ditentukan, keluar dari posisi pasar dengan harga yang ditentukan.
  • loss(series int/float) Optional parameter↑ Stop loss (dilambangkan dengan titik)↑ Jika telah ditentukan, keluar dari posisi pasar dengan stop loss saat mencapai jumlah kerugian yang ditentukan (dilambangkan dengan titik).
  • stop(series int/float) Optional parameter. Stop loss (menentukan harga). Jika sudah ditentukan, keluar dari posisi pasar pada harga yang ditentukan (atau lebih buruk). Prioritas stop loss adalah lebih tinggi dari parameter stop loss.
  • trail_price(series int/float) Optional parameter. Track stop loss activation level (membutuhkan spesifikasi harga). Jika ditentukan, stop loss tracking akan ditempatkan pada saat mencapai level harga yang ditentukan. 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
  • trail_points(series int/float) Optional parameter↑ level aktivasi stop loss (diindikasikan dengan titik profit)↑ Jika ditentukan, stop loss yang akan ditindaklanjuti akan ditempatkan saat mencapai level harga yang telah dihitung (diindikasikan dengan jumlah profit). Di 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
  • trail_offset(series int/float) Optional parameter. Tracking stop-loss activation level (dilambangkan dengan titik). Kebalikan dengan titik digunakan untuk menentukan harga awal dari tracking stop-loss order: X titik lebih rendah dari trail_price or 'trail_points' untuk exit multi-head; X titik lebih tinggi dari trail_price or 'trail_points' untuk exit blank.
  • oca_name(series string) Optional parameter. Nama kelompok OCA (oca_type = strategy.oca.reduce) target keuntungan, stop loss/track stop loss. Jika tidak ditentukan nama, nama akan secara otomatis dihasilkan.Catatan: FMZ tidak mendukung parameter ini.
  • comment(series string) Optional parameter.
  • when(series bool) Optional parameter. Status order. Jika "true", order ditempatkan. Jika "false", tidak ada yang terjadi.
  • alert_message(series string) Sebuah parameter opsional ketika Anda menggunakan karakter {{strategy.order.alert_message}} dalam kolom string pesan yang dibuat untuk dialog alarm.

strategy.cancel

Ini adalah referensi nama untuk membatalkan / menghentikan semua perintah daftar 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 yang harus dipilih↑ tanda pesanan↑ lokasi tanda untuk membatalkan pesanan↑
  • when(series bool) Optional parameter. ⇒ Menghapus sebuah order berdasarkan ID. ⇒ Jika "true", maka order tersebut akan dihapus. ⇒ Default adalah "true".

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) Optional parameter↑ Undo kondisi untuk semua order↑ Jika kondisi benar, semua order aktif akan dibatalkan↑ Default adalah true

strategy.order

Ini adalah perintah untuk melakukan order berikutnya. Jika order dengan ID yang sama sudah ditempelkan, Anda dapat mengubah order. Jika tidak ada order dengan ID yang ditentukan, Anda akan mengirim order baru. Untuk menghentikan order, Anda harus menggunakan perintah strategi.cancel atau strategi.cancel_all. Jika kedua parameter pembatasan dan penghentian kerugian adalah NaN, maka jenis pesanan adalah pesanan pasar.

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. Tanda pesanan. Anda dapat membatalkan atau mengubah pesanan dengan merujuk pada tanda pesanan.
  • direction(strategy_direction) Sebuah parameter yang diperlukan. Arah pesanan: strategi.long untuk membeli, strategi.short untuk menjual.
  • qty(series int/float) Optional parameter↑ kontrak/jumlah saham/jumlah tangan/jumlah unit yang ditransfer↑ default adalah NaN
  • limit(series int/float) Optional parameter. Harga batas order. Jika sudah ditentukan, jenis order adalah "limit" atau "stop-limit". Jenis order lainnya adalah "NaN".
  • stop(series int/float) Optional parameter. Stop loss price of order. Jika sudah ditentukan, jenis order adalah "stop" atau "stop-limit". Jenis order lainnya adalah "NaN".
  • oca_name(series string) Optional parameter. Perintah ini termasuk dalam nama kelompok OCA. Jika pesanan tidak termasuk dalam kelompok OCA, maka harus ada karakter kosong.Catatan: FMZ tidak mendukung parameter ini.
  • oca_type(input string) parameter yang dapat dipilih. Jenis kelompok pesanan OCA. Nilai yang diizinkan adalah: strategi.oca.none - pesanan tidak harus menjadi bagian dari kelompok OCA tertentu; strategi.oca.cancel - pesanan harus menjadi bagian dari kelompok OCA, dan semua pesanan lain dalam kelompok yang sama akan dibatalkan setelah pesanan selesai; strategi.oca.reduce - pesanan harus menjadi bagian dari kelompok OCA, jika X jumlah kontrak pesanan telah ditempatkan, maka jumlah kontrak lainnya dalam kelompok OCA yang sama akan berkurang X.Catatan: FMZ tidak mendukung parameter ini.
  • comment(series string) Optional parameter.
  • when(series bool) Optional parameter. Status order. Jika "true", order ditempatkan. Jika "false", tidak ada yang terjadi.
  • alert_message(series string) Sebuah parameter opsional ketika Anda menggunakan karakter {{strategy.order.alert_message}} dalam kolom string pesan yang dibuat untuk dialog alarm.

strategi.opentrades.entry_bar_index

Mengembalikan bar_index yang tidak masuk dalam transaksi.

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) Nomor transaksi yang tidak terikat. Nomor transaksi pertama adalah 0.

Sampai jumpa lagi strategy.closedtrades.entry_bar_index strategy.closedtrades.exit_bar_index

strategi.opentrades.entry_id

Mengembalikan ID yang masuk untuk transaksi yang tidak terikat.

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

Kembali nilaiMengembalikan ID yang masuk untuk transaksi yang tidak terikat.

Parameter

  • trade_num(series int) Nomor transaksi yang tidak terikat. Nomor transaksi pertama adalah 0.

PenjelasanJika trade_num tidak berada dalam kisaran, fungsi ini mengembalikan na:0 ke strategy.opentrades−1.

Sampai jumpa lagi strategy.opentrades.entry_bar_index strategy.opentrades.entry_time

strategi.opentrades.entry_price

Kembali ke harga masuk untuk transaksi yang tidak terikat.

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

Menghitung harga rata-rata yang tidak terikat

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) Nomor transaksi yang tidak terikat. Nomor transaksi pertama adalah 0.

Sampai jumpa lagi strategy.closedtrades.exit_price

strategi.opentrades.entry_time

Kembali ke waktu UNIX untuk masuk ke perdagangan yang tidak terikat.

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) Nomor transaksi yang tidak terikat. Nomor transaksi pertama adalah 0.

Sampai jumpa lagi strategy.closedtrades.entry_time strategy.closedtrades.exit_time

strategy.opentrades.profit

Mengembalikan laba rugi dari transaksi yang tidak terikat.

strategy.opentrades.profit(trade_num)

Mengembalikan keuntungan dari perdagangan 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")

Menghitung keuntungan dari semua transaksi yang tidak terikat

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) Nomor transaksi yang tidak terikat. Nomor transaksi pertama adalah 0.

Sampai jumpa lagi strategy.closedtrades.profit strategy.openprofit strategy.netprofit strategy.grossprofit

strategy.opentrades.size

Mengembalikan arah perdagangan dan jumlah kontrak dalam perdagangan yang tidak terikat. Jika nilai ini > 0, maka posisi pasar adalah multi-head. Jika nilai ini < 0, maka posisi pasar adalah blank head.

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

Menghitung persentase keuntungan rata-rata dari transaksi yang tidak terikat

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) Nomor transaksi yang tidak terikat. Nomor transaksi pertama adalah 0.

Sampai jumpa lagi strategy.closedtrades.size strategy.position_size strategy.opentrades strategy.closedtrades

Strategi.Trading tertutup.Entry_bar_index

Mengembalikan bar_index yang telah masuk ke 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) Nomor transaksi yang telah ditransfer. Nomor transaksi pertama adalah nol.

Sampai jumpa lagi strategy.closedtrades.exit_bar_index strategy.opentrades.entry_bar_index

Strategi.perdagangan tertutup.harga keluar

Untuk mengembalikan harga keluar dari transaksi yang sudah diratakan.

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

Menghitung persentase keuntungan rata-rata dari semua transaksi yang telah diratakan

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) Nomor transaksi yang telah ditransfer. Nomor transaksi pertama adalah nol.

Sampai jumpa lagi strategy.closedtrades.entry_price

Strategi.perdagangan tertutup. exit_bar_index

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

Menghitung rata-rata K baris per 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) Nomor transaksi yang telah ditransfer. Nomor transaksi pertama adalah nol.

Sampai jumpa lagi bar_index

strategi.perdagangan tertutup. entri_id

Kembali ke id yang masuk untuk transaksi yang sudah ditarik.

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

Kembali nilaiKembali ke id yang masuk untuk transaksi yang sudah ditarik.

Parameter

  • trade_num(series int) Nomor transaksi yang telah ditransfer. Nomor transaksi pertama adalah nol.

PenjelasanJika trade_num tidak berada dalam kisaran, fungsi ini mengembalikan na:0 ke strategy.closedtrades−1.

Sampai jumpa lagi strategy.closedtrades.entry_bar_index strategy.closedtrades.entry_time

strategi.perdagangan tertutup.harga masuk

Kembali ke harga masuk dari transaksi yang sudah diratakan.

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

Menghitung persentase keuntungan rata-rata dari semua transaksi yang telah diratakan

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) Nomor transaksi yang telah ditransfer. Nomor transaksi pertama adalah nol.

Sampai jumpa lagi strategy.closedtrades.exit_price strategy.closedtrades.size strategy.closedtrades

Strategi.Trading tertutup.waktu masuk

Kembali ke waktu UNIX yang telah ditandatangani perdagangan.

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) Nomor transaksi yang telah ditransfer. Nomor transaksi pertama adalah nol.

Sampai jumpa lagi strategy.opentrades.entry_time strategy.closedtrades.exit_time time

strategy.closedtrades.profit

Mengembalikan laba rugi dari transaksi yang sudah 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) Nomor transaksi yang telah ditransfer. Nomor transaksi pertama adalah nol.

Sampai jumpa lagi strategy.opentrades.profit strategy.closedtrades.commission

strategy.closedtrades.size

Mengembalikan arah perdagangan dan jumlah kontrak dalam perdagangan yang sudah diikat. Jika nilai ini > 0, maka posisi pasar adalah multi-head. Jika nilai ini < 0, maka posisi pasar adalah blank head.

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

Menghitung persentase keuntungan rata-rata dari transaksi clearing

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 banyak

WuhuanBagaimana cara menjalankan beberapa transaksi pada saat yang sama untuk kontrak bitcoin?

Awan ringanApakah pine dapat melakukan banyak transaksi seperti JS? Terima kasih.

Lisa20231Terima kasih atas informasinya.

seniWow! Bagaimana bisa script pine ini menggunakan simulasi okex di platform ini?

seniIni berarti bahwa strategi tradingview dapat disalin langsung ke platform penemu dan digunakan!

Penemu Kuantitas - Mimpi KecilBahasa PINE hanya dapat melakukan strategi varietas tunggal, strategi multi-varietas adalah yang terbaik atau menulis desain dengan python, javascript, c++.

Penemu Kuantitas - Mimpi KecilOh, ya, OKX agak istimewa, mereka memiliki alamat yang sama di lingkungan analog dan lingkungan nyata, hanya berbeda di tempat lain. Jadi tidak ada cara untuk beralih ke analog dengan mengubah alamat basis.

Awan ringanTidak bisa menggunakan okx analog...

Penemu Kuantitas - Mimpi KecilMasalah arsitektur yang beragam ini tidak dapat diselesaikan dengan baik, karena setiap pertukaran memiliki antarmuka yang berbeda dan batas frekuensi antarmuka yang tidak sama, yang akan menimbulkan banyak masalah.

Penemu Kuantitas - Mimpi KecilBaiklah, terima kasih atas saranmu, dan laporkan permintaan ini di sini.

Awan ringanPerasaan lebih baik untuk mengintegrasikan dengan JS, JS dapat lebih baik beradaptasi dengan berbagai cara transaksi.

Pemangsa TrendingApakah Anda akan mempertimbangkan lebih banyak varietas di masa depan?

Penemu Kuantitas - Mimpi KecilTidak sopan.

Awan ringanBaiklah, terima kasih banyak.

Penemu Kuantitas - Mimpi KecilHalo, sementara, strategi bahasa PINE hanya bisa menggunakan satu varietas.

Penemu Kuantitas - Mimpi KecilTidak sopan, terima kasih atas dukungannya. Dokumen akan terus disempurnakan.

Penemu Kuantitas - Mimpi KecilSaya tidak tahu.

Penemu Kuantitas - Mimpi KecilPINE template library, dimana parameter dapat diatur untuk mengubah alamat basis pertukaran.