FMZ PINE Script Doc

Penulis:Mimpi kecil, Dibuat: 2022-04-28 16:05:05, Diperbarui: 2024-02-27 16:56:23

adalah barmerge.gaps_off.

  • lookahead(barmerge_lookahead) Merge strategi untuk posisi data yang diminta. Nilai yang mungkin: barmerge.lookahead_on, barmerge.lookahead_off. Nilai default adalah barmerge.lookahead_off mulai dari versi 3. Perhatikan bahwa perilaku adalah sama pada real-time, dan hanya berbeda pada riwayat.
  • ignore_invalid_symbol(const bool) Argumen opsional. Menentukan perilaku fungsi jika simbol yang ditentukan tidak ditemukan: jika false, skrip akan berhenti dan mengembalikan kesalahan runtime; jika true, fungsi akan mengembalikan na dan eksekusi akan dilanjutkan. Nilai default adalah false.
  • currency(string sederhana) Mata uang ke dalam simbol nilai terkait mata uang (misalnya OHLC) yang akan dikonversi.expressionnilai yang digunakan adalah berdasarkan nilai yang dikonversi. Nilai konversi yang digunakan adalah berdasarkan nilai harian pasangan FX_IDC hari sebelumnya (berkaitan dengan bar di mana perhitungan dilakukan). Opsional. Standar adalah syminfo.currency. Nilai yang mungkin: string tiga huruf dengan kode mata uang dalam format ISO 4217 (misalnya USD) atau salah satu konstanta dalam ruang nama mata uang.*, misalnya currency.USD.

PengamatanKode PineScript yang menggunakan fungsi ini bisa menghitung secara berbeda pada data riwayat dan real-time. Jika Anda ingin menentukan argumen tambahan untuk simbol yang diminta, misalnya sesi atau jenis penyesuaian, Anda dapat menggunakanticker.new() fungsi. Tidak mungkin untuk melewati penyebaran ke fungsi ini menggunakan ticker variabel. Anda dapat menggunakan ticker.new variabel atau representasi string ticker, misalnya AAPL+MSFT*TSLA. Saat ini, hingga 40 panggilan request.security dapat hadir dalam sebuah skrip. Harap dicatat bahwa menggunakan variabel/fungsi ini dapat menyebabkan pencelupan ulang indikator. Nilai yang diizinkan untuk argumen resolusi adalah: 1S, 5S, 15S, 30S - untuk interval detik (resolusi grafik harus kurang dari atau sama dengan resolusi yang diminta) dari 1 sampai 1440 untuk menit dari 1D sampai 365D untuk hari dari 1W sampai 52W selama berminggu-minggu dari 1M sampai 12M selama berbulan-bulanLihat juga syminfo.ticker syminfo.tickerid timeframe.period ta.correlation barmerge.lookahead_off barmerge.lookahead_on

str

str.contains

Mengembalikan true jikasourcestring berisistrSubstring, palsu sebaliknya.

str.contains(source, str)

Contoh

// If the current chart is a continuous futures chart, e.g "BTC1!", then the function will return true, false otherwise.
var isFutures = str.contains(syminfo.tickerid, "!")
plot(isFutures ? 1 : 0)

PengembalianBenar jikastrditemukan disourcestring, palsu sebaliknya.

Argumen

  • source(Seri string) string sumber.
  • str(Seri string) Substring untuk mencari.

Lihat juga str.pos str.match

str.endswith

Mengembalikan true jikasourcestring berakhir dengan substring yang ditentukan dalamstr, palsu sebaliknya.

str.endswith(source, str)

PengembalianBenar jikasourcestring berakhir dengan substring yang ditentukan dalamstr, palsu sebaliknya.

Argumen

  • source(Seri string) string sumber.
  • str(Seri string) Substring untuk mencari.

Lihat juga str.startswith

str.startswith

Mengembalikan true jikasourcestring dimulai dengan substring yang ditentukan dalamstr, palsu sebaliknya.

str.startswith(source, str)

PengembalianBenar jikasourcestring dimulai dengan substring yang ditentukan dalamstr, palsu sebaliknya.

Argumen

  • source(Seri string) string sumber.
  • str(Seri string) Substring untuk mencari.

Lihat juga str.endswith

str.substring

Mengembalikan string baru yang merupakan substring darisourceSubstring dimulai dengan karakter pada indeks yang ditentukan olehbegin_posdan meluas ke end_pos - 1 darisource string.

str.substring(source, begin_pos)
str.substring(source, begin_pos, end_pos)

Contoh

sym= "EXCHANGE_NAME:SYMBOL_NAME"
pos = str.pos(sym, ":")        // Get position of ":" character
tkr= str.substring(sym, pos+1) // "SYMBOL_NAME"
if barstate.islastconfirmedhistory
    runtime.log(tkr)

PengembalianSubstring yang diekstrak dari string sumber.

Argumen

  • source(seri string) sumber string dari mana untuk mengekstrak substring.
  • begin_pos(series int) Posisi awal dari substring yang diekstraksi.
  • end_pos(series int) Posisi akhir. Ini eksklusif (string yang diekstraksi TIDAK termasuk karakter posisi itu). Opsional.source string.

PengamatanIndeks string dimulai dari 0. Jikabegin_possama denganend_pos, fungsi mengembalikan string kosong.

Lihat juga str.contains str.pos str.match

str.tonumber

str.tonumber(string)

PengembalianVersi float dari string jika berisi nomor yang valid, atau sebaliknya.

Argumen

  • string(seri string) Representasi string dari int atau float.

str.format

Mengkonversi string format dan value ((s) ke dalam string yang diformat. String format dapat berisi teks literal dan satu placeholder dalam kurung iket {} untuk setiap nilai yang akan diformat. Setiap placeholder terdiri dari indeks dari argumen yang diperlukan (mulai dari 0) yang akan menggantinya, dan spesifikasi format opsional. Indeks mewakili posisi argumen itu dalam daftar argumen str.format.

str.format(formatString, arg0, arg1, ...)

Contoh

// The format specifier inside the curly braces accepts certain modifiers:
// - Specify the number of decimals to display:
s1 = str.format("{0,number,#.#}", 1.34) // returns: 1.3
runtime.log(s1)

// - Round a float value to an integer:
s2 = str.format("{0,number,integer}", 1.34) // returns: 1
runtime.log(s2)

// - Display a number in currency:
s3 = str.format("{0,number,currency}", 1.34) // returns: $1.34
runtime.log(s3)

// - Display a number as a percentage:
s4 = str.format("{0,number,percent}", 0.5) // returns: 50%
runtime.log(s4)

// EXAMPLES WITH SEVERAL ARGUMENTS
// returns: Number 1 is not equal to 4
s5 = str.format("Number {0} is not {1} to {2}", 1, "equal", 4)
runtime.log(s5)

// returns: 1.34 != 1.3
s6 = str.format("{0} != {0, number, #.#}", 1.34)
runtime.log(s6)

// returns: 1 is equal to 1, but 2 is equal to 2
s7 = str.format("{0, number, integer} is equal to 1, but {1, number, integer} is equal to 2", 1.34, 1.52)
runtime.log(s7)

// returns: The cash turnover amounted to $1,340,000.00
s8 = str.format("The cash turnover amounted to {0, number, currency}", 1340000)
runtime.log(s8)

// returns: Expected return is 10% - 20%
s9 = str.format("Expected return is {0, number, percent} - {1, number, percent}", 0.1, 0.2)
runtime.log(s9)

PengembalianString yang diformat.

Argumen

  • formatString(Seri string) Format string.
  • arg0, arg1, ...(seri int/float/bool/string/na/int[]/float[]/bool[]/string[]) Nilai untuk diformat.

PengamatanSetiap kurung keriting dalam pola yang tidak dikutip harus seimbang. Misalnya, ab {0} de dan ab } de adalah pola yang valid, tetapi ab {0} de, ab } de dan { tidak.

str.length

Mengembalikan bilangan bulat yang sesuai dengan jumlah karakter dalam string itu.

str.length(string)

PengembalianJumlah karakter dalam string sumber.

Argumen

  • string(Seri string) string sumber.

str.lower

Mengembalikan string baru dengan semua huruf dikonversi ke huruf kecil.

str.lower(source)

PengembalianSebuah string baru dengan semua huruf dikonversi ke huruf kecil.

Argumen

  • source(Seri string) String untuk dikonversi.

Lihat juga str.upper

str.upper

Mengembalikan string baru dengan semua huruf dikonversi ke huruf besar.

str.upper(source)

PengembalianSebuah string baru dengan semua huruf dikonversi ke huruf besar.

Argumen

  • source(Seri string) String untuk dikonversi.

Lihat juga str.lower

str.match

Mengembalikan substring baru darisourcestring jika itu cocok aregexekspresi reguler, na sebaliknya.

str.match(source, regex) 

Contoh

s = input.string("It's time to sell some EXCHANGE_NAME:SYMBOL_NAME!")

// finding first substring that matches regular expression "[\w]+:[\w]+"
var string tickerid = str.match(s, "[\\w]+:[\\w]+")

if barstate.islastconfirmedhistory
    runtime.log(tickerid) // "EXCHANGE_NAME:SYMBOL_NAME"

PengembalianSubstring baru darisourcestring jika itu cocok aregexekspresi reguler, na sebaliknya.

Argumen

  • source(Seri string) string sumber.
  • regex(serangkaian string) Ekspresi reguler yang string ini akan dicocokkan.

PengamatanFungsi mengembalikan kejadian pertama dari ekspresi reguler dalamsourcetali. Simbol backslash diregexstring perlu dihindari dengan backslash tambahan, misalnya \d berarti ekspresi reguler \d.

Lihat juga str.contains str.substring

str.pos

Mengembalikan posisi dari kejadian pertama daristrstring disourcestring, na sebaliknya.

str.pos(source, str)

PengembalianPosisi daristrstring disource string.

Argumen

  • source(Seri string) string sumber.
  • str(Seri string) Substring untuk mencari.

PengamatanIndeks string dimulai dari 0.

Lihat juga str.contains str.match str.substring

str.replace

Mengembalikan string baru dengan kejadian N + 1 daritargetstring dan kejadian sebelumnya daritargetstring diganti denganreplacementstring, di mana N ditentukan dalamoccurrence. N adalah indeks pencocokan string target yang akan diganti dalam string sumber.

str.replace(source, target, replacement, occurrence)

Contoh

var source = "EXCHANGE1:SYMBOL1 / EXCHANGE1:SYMBOL2"

// Replace first occurrence of "EXCHANGE1" with "EXCHANGE2" replacement string
var newSource = str.replace(source, "EXCHANGE1",  "EXCHANGE2", 0)

if barstate.islastconfirmedhistory
    // Display "EXCHANGE1:SYMBOL1 / EXCHANGE1:SYMBOL2"
    runtime.log(newSource)

PengembalianBenang yang diproses.

Argumen

  • source(Seri string) string sumber.
  • target(Seri string) String untuk diganti.
  • replacement(Seri string) string untuk dimasukkan sebagai gantinya string target.
  • occurrence(series int) Indeks pencocokan dari terjadinya string target yang akan diganti dalam string sumber Indexing dimulai dari 0 untuk pencocokan pertama. Opsional. Nilai default adalah 0.

Lihat juga str.replace_all str.match

str.replace_all

Mengganti setiap kejadian string target dalam string sumber dengan string pengganti.

str.replace_all(source, target, replacement)

PengembalianBenang yang diproses.

Argumen

  • source(Seri string) string sumber.
  • target(Seri string) String untuk diganti.
  • replacement(seri string) string yang akan diganti untuk setiap kejadian string target.

str.split

Membagi string ke dalam array substring dan mengembalikan ID arraynya.

str.split(string, separator)

PengembalianID dari array string.

Argumen

  • string(Seri string) string sumber.
  • separatorString yang memisahkan setiap substring.

str.tostring

str.tostring(value)
str.tostring(value, format)
str.tostring(value[])
str.tostring(value[], format)

PengembalianPerwakilan string darivaluePerdebatan. Jikavalueargumen adalah string, itu dikembalikan seperti itu. Ketikavalueadalah na, fungsi mengembalikan string NaN.

Argumen

  • value(seri int/float/bool/string/int[]/float[]/bool[]/string[]) Nilai atau ID array yang elemennya dikonversi menjadi string.
  • format(seri string) Format string. Menerima format ini.* konstanta: format.mintick, format.persen, format.volume. Opsional. Nilai default adalah #.##########

PengamatanPemformatan nilai float juga akan melingkarkan nilai-nilai tersebut bila diperlukan, misalnya str.tostring ((3.99, #) akan mengembalikan 4. Untuk menampilkan nol terakhir, gunakan 0 bukan #. Misalnya, #.000. Ketika menggunakan format.mintick, nilai akan dibulatkan ke angka terdekat yang dapat dibagi dengan syminfo.mintick tanpa sisanya. Jika argumen x adalah string, nilai string yang sama akan dikembalikan. Argumen tipe Bool mengembalikan true atau false. Ketika x adalah na, fungsi mengembalikan NaN.

warna

color.new

Warna fungsi menerapkan transparansi yang ditentukan pada warna yang diberikan.

color.new(color, transp)

Contoh

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

PengembalianWarna dengan transparansi tertentu.

Argumen

  • color(warna seri)
  • transp(seri int/float) Nilai yang mungkin adalah dari 0 (tidak transparan) hingga 100 (tidak terlihat).

PengamatanMenggunakan argumen yang bukan konstanta (misalnya, simple, input atau series) akan berdampak pada warna yang ditampilkan di tab Settings/Style skrip. Lihat Manual Pengguna untuk informasi lebih lanjut.

color.rgb

Membuat warna baru dengan transparansi menggunakan model warna RGB.

color.rgb(red, green, blue, transp)

Contoh

plot(close, color=color.rgb(255, 0, 0, 50))

PengembalianWarna dengan transparansi tertentu.

Argumen

  • red(seri int/float) Komponen warna merah.
  • green(seri int/float) Komponen warna hijau.
  • blue(seri int/float) Komponen warna biru.
  • transp(seri int/float) Opsional. Transparansi warna. Nilai yang mungkin adalah dari 0 (merah) hingga 100 (tidak terlihat). Nilai default adalah 0.

PengamatanMenggunakan argumen yang bukan konstanta (misalnya, simple, input atau series) akan berdampak pada warna yang ditampilkan di tab Settings/Style skrip. Lihat Manual Pengguna untuk informasi lebih lanjut.

waktu berjalan

runtime.debug

Cetak informasi variabel ke konsol.

Fungsi khusus bahasa FMZ PINE,runtime.debug(value), dengan hanya argumen.

runtime.log

Isi output di log.

Fungsi khusus bahasa FMZ PINE,runtime.log(1, 2, 3, close, high, ...), Anda dapat melewati beberapa argumen.

runtime.error

Ketika dipanggil, menyebabkan kesalahan runtime dengan pesan kesalahan yang ditentukan dalammessage argument.

runtime.error(message)

Argumenpesan (serangkaian string) pesan kesalahan.

input

input

Menambahkan input ke tab Input dari Pengaturan skrip Anda, yang memungkinkan Anda untuk menyediakan opsi konfigurasi untuk pengguna skrip. Fungsi ini secara otomatis mendeteksi jenis argument yang digunakan untuk defval dan menggunakan widget input yang sesuai.

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

Contoh

i_switch = input(true, "On/Off")     // Set true, the default is checked.
plot(i_switch ? open : na)

i_len = input(7, "Length")
i_src = input(close, "Source")       // Drop-down box, select close by default.
plot(ta.sma(i_src, i_len))

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

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

PengembalianNilai variabel input.

Argumen

  • defval(const int/float/bool/string/color or source-type built-in) Menentukan nilai default dari variabel input yang diusulkan dalam tab Settings/Inputs script, dari mana pengguna script dapat mengubahnya.close, hlc3, dll.
  • title(const string) Judul input. Jika tidak ditentukan, nama variabel digunakan sebagai judul inputs. Jika judul ditentukan, tetapi kosong, namanya akan menjadi string kosong.
  • tooltip(const string) string yang akan ditampilkan kepada pengguna saat menggeser ikon tooltip.
  • inline(const string) Menggabungkan semua panggilan input menggunakan argumen yang sama dalam satu baris. string yang digunakan sebagai argumen tidak ditampilkan.
  • group(const string) Membuat header di atas semua input menggunakan string argumen grup yang sama.

PengamatanHasil dari fungsi input selalu harus ditugaskan ke variabel, lihat contoh di atas.

Lihat juga input.bool input.color input.int input.float input.string input.timeframe input.source

input.source

Menambahkan input ke tab Input dari Pengaturan skrip Anda, yang memungkinkan Anda untuk menyediakan opsi konfigurasi untuk pengguna skrip. Fungsi ini menambahkan dropdown yang memungkinkan pengguna untuk memilih sumber untuk perhitungan, misalnya close, hl2, dll. Jika skrip hanya mencakup satu input.source() panggilan, pengguna juga dapat memilih output dari indikator lain pada grafik mereka sebagai sumber.

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

Contoh

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

PengembalianNilai variabel input.

Argumen

  • defval(series int/float) Menentukan nilai default dari variabel input yang diusulkan dalam tab Settings/Inputs skrip, dari mana pengguna dapat mengubahnya.
  • title(const string) Judul input. Jika tidak ditentukan, nama variabel digunakan sebagai judul inputs. Jika judul ditentukan, tetapi kosong, namanya akan menjadi string kosong.
  • tooltip(const string) string yang akan ditampilkan kepada pengguna saat menggeser ikon tooltip.
  • inline(const string) Menggabungkan semua panggilan input menggunakan argumen yang sama dalam satu baris. string yang digunakan sebagai argumen tidak ditampilkan.
  • group(const string) Membuat header di atas semua input menggunakan string argumen grup yang sama.

PengamatanHasil dari fungsi input.source selalu harus ditugaskan ke variabel, lihat contoh di atas.

Lihat juga input.bool input.int input.float input.string input.timeframe input.color input

input.string

Menambahkan input ke tab Input dari Pengaturan skrip Anda, yang memungkinkan Anda untuk menyediakan opsi konfigurasi untuk pengguna skrip. Fungsi ini menambahkan bidang untuk input string ke input skrip.

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

Contoh

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

PengembalianNilai variabel input.

Argumen

  • defval(const string) Menentukan nilai default dari variabel input yang diusulkan dalam tab Settings/Inputs script, dari mana pengguna dapat mengubahnya.optionsArgumen, nilai harus salah satunya.
  • title(const string) Judul input. Jika tidak ditentukan, nama variabel digunakan sebagai judul inputs. Jika judul ditentukan, tetapi kosong, namanya akan menjadi string kosong.
  • options(Daftar konstanta: [...]) Daftar pilihan untuk dipilih.
  • tooltip(const string) string yang akan ditampilkan kepada pengguna saat menggeser ikon tooltip.
  • inline(const string) Menggabungkan semua panggilan input menggunakan argumen yang sama dalam satu baris. string yang digunakan sebagai argumen tidak ditampilkan.
  • group(const string) Membuat header di atas semua input menggunakan string argumen grup yang sama.
  • confirm(const bool) Jika true, maka pengguna akan diminta untuk mengkonfirmasi nilai input sebelum indikator ditambahkan ke grafik. Nilai default adalah false.

PengamatanHasil dari fungsi input.string selalu harus ditugaskan ke variabel, lihat contoh di atas.

Lihat juga input.bool input.int input.float input.timeframe input.source input.color input

input.bool

Menambahkan input ke tab Input dari Pengaturan skrip Anda, yang memungkinkan Anda untuk menyediakan opsi konfigurasi untuk pengguna skrip. Fungsi ini menambahkan tanda centang ke input skrip.

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

Contoh

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

PengembalianNilai variabel input.

Argumen

  • defval(const bool) Menentukan nilai default dari variabel input yang diusulkan di tab Settings/Inputs skrip, dari mana pengguna dapat mengubahnya.
  • title(const string) Judul input. Jika tidak ditentukan, nama variabel digunakan sebagai judul inputs. Jika judul ditentukan, tetapi kosong, namanya akan menjadi string kosong.
  • tooltip(const string) string yang akan ditampilkan kepada pengguna saat menggeser ikon tooltip.
  • inline(const string) Menggabungkan semua panggilan input menggunakan argumen yang sama dalam satu baris. string yang digunakan sebagai argumen tidak ditampilkan.
  • group(const string) Membuat header di atas semua input menggunakan string argumen grup yang sama.
  • confirm(const bool) Jika true, maka pengguna akan diminta untuk mengkonfirmasi nilai input sebelum indikator ditambahkan ke grafik. Nilai default adalah false.

PengamatanHasil dari fungsi input.bool selalu harus ditugaskan ke variabel, lihat contoh di atas.

Lihat juga input.int input.float input.string input.timeframe input.source input.color input

input.int

Menambahkan input ke tab Input dari Pengaturan skrip Anda, yang memungkinkan Anda untuk menyediakan opsi konfigurasi untuk pengguna skrip. Fungsi ini menambahkan bidang untuk input bilangan bulat ke input skrip.

input.int(defval, title, minval, maxval, step, tooltip, inline, group, confirm) 
input.int(defval, title, options, tooltip, inline, group, confirm)

Contoh

i_len1 = input.int(10, "Length 1", minval=5, maxval=21, step=1)
plot(ta.sma(close, i_len1))

i_len2 = input.int(10, "Length 2", options=[5, 10, 21])
plot(ta.sma(close, i_len2))

PengembalianNilai variabel input.

Argumen

  • defval(const int) Menentukan nilai default dari variabel input yang diusulkan di tab Settings/Inputs script, dari mana pengguna script dapat mengubahnya.optionsArgumen, nilai harus salah satunya.
  • title(const string) Judul input. Jika tidak ditentukan, nama variabel digunakan sebagai judul inputs. Jika judul ditentukan, tetapi kosong, namanya akan menjadi string kosong.
  • minval(const int) Nilai minimal dari variabel input.
  • maxval(const int) Nilai maksimum variabel input. Opsional.
  • step(const int) Nilai langkah yang digunakan untuk meningkatkan / mengurangi input. Opsional. default adalah 1.
  • options(tuple of const int values: [val1, val2,...]) Daftar opsi untuk dipilih dari menu dropdown, dipisahkan oleh koma dan disertakan dalam tanda kurung persegi: [val1, val2,...].minval, maxvaldanstepargument tidak dapat digunakan.
  • tooltip(const string) string yang akan ditampilkan kepada pengguna saat menggeser ikon tooltip.
  • inline(const string) Menggabungkan semua panggilan input menggunakan argumen yang sama dalam satu baris. string yang digunakan sebagai argumen tidak ditampilkan.
  • group(const string) Membuat header di atas semua input menggunakan string argumen grup yang sama.
  • confirm(const bool) Jika true, maka pengguna akan diminta untuk mengkonfirmasi nilai input sebelum indikator ditambahkan ke grafik. Nilai default adalah false.

PengamatanHasil dariinput.intfungsi harus selalu ditugaskan untuk variabel, lihat contoh di atas.

Lihat juga input.bool input.float input.string input.timeframe input.source input.color input

input.float

Menambahkan input ke tab Input dari Pengaturan skrip Anda, yang memungkinkan Anda untuk menyediakan opsi konfigurasi untuk pengguna skrip. Fungsi ini menambahkan bidang untuk input float ke input skrip.

input.float(defval, title, minval, maxval, step, tooltip, inline, group, confirm)
input.float(defval, title, options, tooltip, inline, group, confirm)

Contoh

i_angle1 = input.float(0.5, "Sin Angle", minval=-3.14, maxval=3.14, step=0.02)
plot(math.sin(i_angle1) > 0 ? close : open, "sin", color=color.green)

i_angle2 = input.float(0, "Cos Angle", options=[-3.14, -1.57, 0, 1.57, 3.14])
plot(math.cos(i_angle2) > 0 ? close : open, "cos", color=color.red)

PengembalianNilai variabel input.

Argumen

  • defval(const int/float) Menentukan nilai default dari variabel input yang diusulkan dalam tab Settings/Inputs skrip, dari mana pengguna skrip dapat mengubahnya.optionsArgumen, nilai harus salah satunya.
  • title(const string) Judul input. Jika tidak ditentukan, nama variabel digunakan sebagai judul inputs. Jika judul ditentukan, tetapi kosong, namanya akan menjadi string kosong.
  • minval(const int/float) Nilai minimum variabel input. Opsional.
  • maxval(const int/float) Nilai maksimum variabel input. Opsional.
  • step(const int/float) Nilai langkah yang digunakan untuk meningkatkan/mengurangi input. Opsional. default adalah 1.
  • options(tuple of const int/float values: [val1, val2,...]) Daftar opsi untuk dipilih dari menu dropdown, dipisahkan oleh koma dan disertakan dalam tanda kurung persegi: [val1, val2,...].minval, maxvaldanstepargument tidak dapat digunakan.
  • tooltip(const string) string yang akan ditampilkan kepada pengguna saat menggeser ikon tooltip.
  • inline(const string) Menggabungkan semua panggilan input menggunakan argumen yang sama dalam satu baris. string yang digunakan sebagai argumen tidak ditampilkan.
  • group(const string) Membuat header di atas semua input menggunakan string argumen grup yang sama.
  • confirm(const bool) Jika true, maka pengguna akan diminta untuk mengkonfirmasi nilai input sebelum indikator ditambahkan ke grafik. Nilai default adalah false.

PengamatanHasil dari fungsi input.float harus selalu ditugaskan ke variabel, lihat contoh di atas.

Lihat juga input.bool input.int input.string input.timeframe input.source input.color input

input.color

Menambahkan input ke tab Input dari Pengaturan skrip Anda, yang memungkinkan Anda untuk menyediakan opsi konfigurasi untuk pengguna skrip. Fungsi ini menambahkan pemilih warna yang memungkinkan pengguna untuk memilih warna dan transparansi, baik dari palet atau nilai hex.

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

Contoh

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

PengembalianNilai variabel input.

Argumen

  • defval(const color) Menentukan nilai default dari variabel input yang diusulkan di tab Settings/Inputs skrip, dari mana pengguna dapat mengubahnya.
  • title(const string) Judul input. Jika tidak ditentukan, nama variabel digunakan sebagai judul inputs. Jika judul ditentukan, tetapi kosong, namanya akan menjadi string kosong.
  • tooltip(const string) string yang akan ditampilkan kepada pengguna saat menggeser ikon tooltip.
  • inline(const string) Menggabungkan semua panggilan input menggunakan argumen yang sama dalam satu baris. string yang digunakan sebagai argumen tidak ditampilkan.
  • group(const string) Membuat header di atas semua input menggunakan string argumen grup yang sama.
  • confirm(const bool) Jika true, maka pengguna akan diminta untuk mengkonfirmasi nilai input sebelum indikator ditambahkan ke grafik. Nilai default adalah false.

PengamatanHasil dari fungsi input.color selalu harus ditugaskan ke variabel, lihat contoh di atas.

Lihat juga input.bool input.int input.float input.string input.timeframe input.source input

input.price

Menambahkan input harga ke tab Settings/Inputs dari script.confirm = truemengaktifkan mode input interaktif di mana harga dipilih dengan mengklik grafik.

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

Contoh

price1 = input.price(title="Date", defval=42)
plot(price1)

price2 = input.price(54, title="Date")
plot(price2)

PengembalianNilai variabel input.

Argumen

  • defval(const int/float) Menentukan nilai default dari variabel input yang diusulkan dalam tab Settings/Inputs skrip, dari mana pengguna dapat mengubahnya.
  • title(const string) Judul input. Jika tidak ditentukan, nama variabel digunakan sebagai judul inputs. Jika judul ditentukan, tetapi kosong, namanya akan menjadi string kosong.
  • tooltip(const string) string yang akan ditampilkan kepada pengguna saat menggeser ikon tooltip.
  • inline(const string) Menggabungkan semua panggilan input menggunakan argumen yang sama dalam satu baris. string yang digunakan sebagai argumen tidak ditampilkan.
  • group(const string) Membuat header di atas semua input menggunakan string argumen grup yang sama.
  • confirm(const bool) Jika benar, mode input interaktif diaktifkan dan seleksi dilakukan dengan mengklik grafik ketika indikator ditambahkan ke grafik, atau dengan memilih indikator dan memindahkan seleksi setelah itu. Opsional.

PengamatanKetika menggunakan mode interaktif, input waktu dapat dikombinasikan dengan input harga jika kedua panggilan fungsi menggunakan argumen yang sama untukinline argument.

Lihat juga input.bool input.int input.float input.string input.resolution input.source input.color input

input.timeframe

Menambahkan input ke tab Input dari Pengaturan skrip Anda, yang memungkinkan Anda untuk memberikan opsi konfigurasi kepada pengguna skrip. Fungsi ini menambahkan dropdown yang memungkinkan pengguna untuk memilih timeframe tertentu melalui timeframe selector dan mengembalikannya sebagai string. Selector termasuk timeframe kustom yang mungkin telah ditambahkan pengguna menggunakan grafik Timeframe dropdown.

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

Contoh

i_res = input.timeframe('D', "Resolution", options=['D', 'W', 'M'])
s = request.security("syminfo.tickerid", i_res, close)
plot(s)

PengembalianNilai variabel input.

Argumen

  • defval(const string) Menentukan nilai default dari variabel input yang diusulkan dalam tab Settings/Inputs script, dari mana pengguna dapat mengubahnya.optionsArgumen, nilai harus salah satunya.
  • title(const string) Judul input. Jika tidak ditentukan, nama variabel digunakan sebagai judul inputs. Jika judul ditentukan, tetapi kosong, namanya akan menjadi string kosong.
  • options(tuple dari nilai string const: [val1, val2,...]) Daftar opsi untuk dipilih.
  • tooltip(const string) string yang akan ditampilkan kepada pengguna saat menggeser ikon tooltip.
  • inline(const string) Menggabungkan semua panggilan input menggunakan argumen yang sama dalam satu baris. string yang digunakan sebagai argumen tidak ditampilkan.
  • group(const string) Membuat header di atas semua input menggunakan string argumen grup yang sama.
  • confirm(const bool) Jika true, maka pengguna akan diminta untuk mengkonfirmasi nilai input sebelum indikator ditambahkan ke grafik. Nilai default adalah false.

PengamatanHasil dari fungsi input.timeframe selalu harus ditugaskan ke variabel, lihat contoh di atas.

Lihat juga input.bool input.int input.float input.string input.source input.color input

input.integer

Tidak tersedia.

input.resolution

Tidak tersedia.

Tn

ta.alma

Arnaud Legoux Moving Average. menggunakan distribusi Gaussian sebagai bobot untuk moving average.

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

Contoh

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

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

PengembalianArnaud Legoux Moving Rata-rata.

Argumen

  • series(serangkaian int/float) Serangkaian nilai untuk diproses.
  • length(seri int) Jumlah batang (panjang).
  • offset(simple int/float) Mengontrol tradeoff antara kelancaran (dekat dengan 1) dan responsif (dekat dengan 0).
  • sigma(simple int/float) Mengubah kelancaran ALMA. Sigma yang lebih besar ALMA yang lebih halus.
  • floor(simple bool) Sebuah argumen opsional. Menentukan apakah perhitungan offset diturunkan sebelum ALMA dihitung. Nilai default adalah false.

Lihat juga ta.sma ta.ema ta.rma ta.wma ta.vwma ta.swma

ta.sma

Fungsi sma mengembalikan rata-rata bergerak, yaitu jumlah nilai y terakhir dari x, dibagi dengan y.

ta.sma(source, length) 

Contoh

plot(ta.sma(close, 15))

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

PengembalianRata-rata bergerak sederhana darisourceuntuklengthBar kembali.

Argumen

  • source(serangkaian int/float) Serangkaian nilai untuk diproses.
  • length(seri int) Jumlah batang (panjang).

Lihat juga ta.ema ta.rma ta.wma ta.vwma ta.swma ta.alma

ta.cog

Pedal (pusat gravitasi) adalah indikator yang didasarkan pada statistik dan rasio emas Fibonacci.

ta.cog(source, length) 

Contoh

plot(ta.cog(close, 10))

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

plot(pine_cog(close, 10))

PengembalianPusat Gravitasi.

Argumen

  • source(serangkaian int/float) Serangkaian nilai untuk diproses.
  • length(seri int) Jumlah batang (panjang).

Lihat juga ta.stoch

ta.dev

Ukuran perbedaan antara seri dan ta.sma

ta.dev(source, length) 

Contoh

plot(ta.dev(close, 10))

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

PengembalianPenyimpangan darisourceuntuklengthBar kembali.

Argumen

  • source(serangkaian int/float) Serangkaian nilai untuk diproses.
  • length(seri int) Jumlah batang (panjang).

Lihat juga ta.variance ta.stdev

ta.stdev

ta.stdev(source, length, biased) 

Contoh

plot(ta.stdev(close, 5))

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

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

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

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

PengembalianPenyimpangan standar.

Argumen

  • source(serangkaian int/float) Serangkaian nilai untuk diproses.
  • length(seri int) Jumlah batang (panjang).
  • biased(seri bool) Menentukan perkiraan mana yang harus digunakan. Opsional. default adalah benar.

PengamatanJikabiasedadalah benar, fungsi akan menghitung menggunakan estimasi bias dari seluruh populasi, jika salah - estimasi bias dari sampel.

Lihat juga ta.dev ta.variance

ta.ema

Fungsi ema mengembalikan rata-rata bergerak yang diberi bobot eksponensial. Dalam faktor bobot ema menurun secara eksponensial. Fungsi ini dihitung dengan menggunakan rumus: EMA = alpha * sumber + (1 - alpha) * EMA[1], di mana alpha = 2 / (panjang + 1).

ta.ema(source, length) 

Contoh

plot(ta.ema(close, 15))

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

PengembalianRata-rata bergerak eksponensial darisourcedengan alfa = 2 / (panjang + 1).

Argumen

  • source(serangkaian int/float) Serangkaian nilai untuk diproses.
  • length(Int sederhana) Jumlah batang (panjang).

PengamatanHarap dicatat bahwa menggunakan variabel/fungsi ini dapat menyebabkan pencelupan ulang indikator.

Lihat juga ta.sma ta.rma ta.wma ta.vwma ta.swma ta.alma

ta.wma

Fungsi wma mengembalikan rata-rata bergerak tertimbang darisourceuntuklengthDalam WMA faktor bobot menurun dalam progresi aritmatika.

ta.wma(source, length) 

Contoh

plot(ta.wma(close, 15))

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

PengembalianRata-rata bergerak tertimbang darisourceuntuklengthBar kembali.

Argumen

  • source(serangkaian int/float) Serangkaian nilai untuk diproses.
  • length(seri int) Jumlah batang (panjang).

Lihat juga ta.sma ta.ema ta.rma ta.vwma ta.swma ta.alma

ta.swma

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

ta.swma(source)

Contoh

plot(ta.swma(close))

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

PengembalianRata-rata bergerak yang ditimbang secara simetris.

Argumen

  • source(seri int/float) Seri sumber.

Lihat juga ta.sma ta.ema ta.rma ta.wma ta.vwma ta.alma

ta.hma

Fungsi hma mengembalikan Hull Moving Average.

ta.hma(source, length)

Contoh

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

PengembalianHull moving average of source untuk length bar back.

Argumen

  • source(serangkaian int/float) Serangkaian nilai untuk diproses.
  • length(Int sederhana) Jumlah bar.

Lihat juga ta.ema ta.rma ta.wma ta.vwma ta.sma

ta.rma

Rata-rata bergerak yang digunakan dalam RSI. Ini adalah rata-rata bergerak yang diberi bobot eksponensial dengan alfa = 1 / panjang.

ta.rma(source, length)

Contoh

plot(ta.rma(close, 15))

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

PengembalianRata-rata bergerak eksponensial darisourcedengan alfa = 1 /length.

Argumen

  • source(serangkaian int/float) Serangkaian nilai untuk diproses.
  • length(Int sederhana) Jumlah batang (panjang).

Lihat juga ta.sma ta.ema ta.wma ta.vwma ta.swma ta.alma ta.rsi

ta.rsi

Indeks kekuatan relatif.ta.rma()dari perubahan ke atas dan ke bawah darisourcedi tahun lalulength bars.

ta.rsi(source, length)

Contoh

plot(ta.rsi(close, 7))

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

plot(pine_rsi(close, 7))

PengembalianIndeks kekuatan relatif.

Argumen

  • source(serangkaian int/float) Serangkaian nilai untuk diproses.
  • length(Int sederhana) Jumlah batang (panjang).

Lihat juga ta.rma

ta.tsi

Indeks kekuatan sejati. Ini menggunakan rata-rata bergerak dari momentum yang mendasari instrumen keuangan.

ta.tsi(source, short_length, long_length)

PengembalianIndeks kekuatan sejati. nilai dalam kisaran [-1, 1].

Argumen

  • source(seri int/float) Seri sumber.
  • short_length(Int sederhana) panjang pendek.
  • long_length(Int sederhana) panjang panjang.

ta.roc

Fungsi roc (tingkat perubahan) menunjukkan perbedaan antara nilai saat ini darisourcedan nilai darisourceItu adalahlengthBeberapa hari yang lalu. Hal ini dihitung dengan rumus: 100 * perubahan ((src, panjang) / src[panjang].

ta.roc(source, length)

PengembalianTingkat perubahansourceuntuklengthBar kembali.

Argumen

  • source(serangkaian int/float) Serangkaian nilai untuk diproses.
  • length(seri int) Jumlah batang (panjang).

ta.range

Mengembalikan perbedaan antara nilai min dan max dalam seri.

ta.range(source, length)

PengembalianPerbedaan antara nilai min dan max dalam seri.

Argumen

  • source(serangkaian int/float) Serangkaian nilai untuk diproses.
  • length(seri int) Jumlah batang (panjang).

ta.macd

MACD (moving average convergence/divergence). Hal ini dimaksudkan untuk mengungkapkan perubahan dalam kekuatan, arah, momentum, dan durasi tren dalam harga saham.

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

Contoh

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

Jika Anda hanya membutuhkan satu nilai, gunakan placeholder _ seperti ini:Contoh

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

PengembalianTupel dari tiga seri MACD: garis MACD, garis sinyal dan garis histogram.

Argumen

  • source(serangkaian int/float) Serangkaian nilai untuk diproses.
  • fastlenArgumen panjang cepat.
  • slowlen(Int sederhana) Argumen panjang lambat.
  • siglen(Int sederhana) Argumen panjang sinyal.

Lihat juga ta.sma ta.ema

ta.mode

Jika ada beberapa nilai dengan frekuensi yang sama, mengembalikan nilai terkecil.

ta.mode(source, length)

PengembalianMode dari seri.

Argumen

  • source(serangkaian int/float) Serangkaian nilai untuk diproses.
  • length(seri int) Jumlah batang (panjang).

ta.median

Mengembalikan median dari seri.

ta.median(source, length) 

PengembalianMedian dari seri.

Argumen

  • source(serangkaian int/float) Serangkaian nilai untuk diproses.
  • length(seri int) Jumlah batang (panjang).

ta.linreg

Kurva regresi linier. Garis yang paling sesuai dengan harga yang ditentukan selama periode waktu yang ditentukan oleh pengguna. Hal ini dihitung menggunakan metode paling kecil kuadrat. Hasil fungsi ini dihitung menggunakan rumus: linreg = intercept + slope * (panjang - 1 - offset), di mana intercept dan slope adalah nilai yang dihitung dengan metode paling kecil kuadrat padasource series.

ta.linreg(source, length, offset) 

PengembalianKurva regresi linier.

Argumen

  • source(seri int/float) Seri sumber.
  • length(seri int)
  • offset(Int sederhana) Offset.

ta.bb

Bollinger Bands. Bollinger Band adalah alat analisis teknis yang didefinisikan oleh seperangkat garis yang digambarkan dua standar deviasi (positif dan negatif) dari rata-rata bergerak sederhana (SMA) dari harga sekuritas, tetapi dapat disesuaikan dengan preferensi pengguna.

ta.bb(series, length, mult) 

Contoh

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

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

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

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

PengembalianBollinger Bands.

Argumen

  • series(serangkaian int/float) Serangkaian nilai untuk diproses.
  • length(seri int) Jumlah batang (panjang).
  • mult(simple int/float) Faktor standar deviasi.

Lihat juga ta.sma ta.stdev ta.kc

ta.bbw

Lebar Bollinger Band adalah perbedaan antara Bollinger Band atas dan bawah dibagi dengan band tengah.

ta.bbw(series, length, mult) 

Contoh

plot(ta.bbw(close, 5, 4), color=color.yellow)

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

plot(f_bbw(close, 5, 4))

PengembalianLebar Bollinger Bands.

Argumen

  • series(serangkaian int/float) Serangkaian nilai untuk diproses.
  • length(seri int) Jumlah batang (panjang).
  • mult(simple int/float) Faktor standar deviasi.

Lihat juga ta.bb ta.sma ta.stdev

ta.cci

CCI (komoditas saluran indeks) dihitung sebagai perbedaan antara harga khas komoditas dan rata-rata bergerak sederhana, dibagi dengan rata-rata deviasi absolut dari harga khas.

ta.cci(source, length) 

PengembalianIndeks saluran komoditas sumber untuk panjang batang kembali.

Argumen

  • source(serangkaian int/float) Serangkaian nilai untuk diproses.
  • length(seri int) Jumlah batang (panjang).

ta.change

Perbedaan antara nilai saat ini dan nilai sebelumnya, sumber - sumber [panjang].

ta.change(source, length) 
ta.change(source) 

PengembalianHasil pengurangan.

Argumen

  • source(seri int/float) Seri sumber.
  • length(seri int) Offset dari bar saat ini ke bar sebelumnya. opsional, jika tidak diberikan, panjang = 1 digunakan.

Lihat juga ta.mom ta.cross

ta.mom

Momentum darisourceharga dansourcehargalengthIni hanya perbedaan: sumber - sumber [panjang].

ta.mom(source, length) 

PengembalianMomentum darisourceharga dansourcehargalengthbeberapa tahun yang lalu.

Argumen

  • source(serangkaian int/float) Serangkaian nilai untuk diproses.
  • length(seri int) Offset dari bar saat ini ke bar sebelumnya.

Lihat juga ta.change

ta.cmo

Menghitung perbedaan antara jumlah keuntungan baru-baru ini dan jumlah kerugian baru-baru ini dan kemudian membagi hasilnya dengan jumlah semua pergerakan harga selama periode yang sama.

ta.cmo(series, length) 

Contoh

plot(ta.cmo(close, 5), color=color.yellow)

// the same on pine
f_cmo(src, length) =>
    float mom = ta.change(src)
    float sm1 = math.sum((mom >= 0) ? mom : 0.0, length)
    float sm2 = math.sum((mom >= 0) ? 0.0 : -mom, length)
    100 * (sm1 - sm2) / (sm1 + sm2)

plot(f_cmo(close, 5))

PengembalianOsilator Momentum Chande.

Argumen

  • series(serangkaian int/float) Serangkaian nilai untuk diproses.
  • length(seri int) Jumlah batang (panjang).

Lihat juga ta.rsi ta.stoch math.sum

ta.percentile_linear_interpolation

Menghitung persentil menggunakan metode interpolasi linier antara dua baris terdekat.

ta.percentile_linear_interpolation(source, length, percentage) 

PengembalianPercentil ke-p darisourceseri untuklengthBar kembali.

Argumen

  • source(serangkaian int/float) Serangkaian nilai untuk diproses (sumber).
  • length(seri int) Jumlah batang belakang (panjang).
  • percentage(simple int/float) Persentase, angka dari kisaran 0-100

PengamatanPerhatikan bahwa persentil yang dihitung menggunakan metode ini TIDAK akan selalu menjadi anggota dari set data input.

Lihat juga ta.percentile_nearest_rank

ta.percentile_nearest_rank

Menghitung persentase menggunakan metode peringkat terdekat.

ta.percentile_nearest_rank(source, length, percentage) 

PengembalianPercentil ke-p darisourceseri untuklengthBar kembali.

Argumen

  • source(serangkaian int/float) Serangkaian nilai untuk diproses (sumber).
  • length(seri int) Jumlah batang bac

Lebih banyak

PengemisMengapa Strategi Square Duplikat Strategi Pine Tidak Bisa Terwujud

Mimpi kecilBaiklah, mari kita periksa.

PengemisOptimized Trend Tracker dari Zhang Jianhui

Mimpi kecilHalo, apakah Anda ingin tahu strategi apa yang sebenarnya?