Sumber daya yang dimuat... Pemuatan...

Struktur

Perdagangan

Struktur catatan transaksi pasar.

Rekam transaksi pasar ID, atau jika antarmuka pertukaran tidak memberikan ID maka gunakan timestamp untuk mengisinya. Id string Stempel waktu milidetik. Waktu nomor Harga transaksi. Harga nomor Jumlah transaksi. Jumlah nomor Jenis pesanan, merujuk pada {@var/ORDER_TYPE/ORDER_TYPE_BUY ORDER_TYPE_BUY}, {@var/ORDER_TYPE/ORDER_TYPE_SELL ORDER_TYPE_SELL}. Jenis nomor

Fungsi exchange.GetTrades() mengembalikan array Trade atau array kosong.

{@fun/Market/exchange.GetTrades pertukaran.GetTrades}

Tickle

Struktur pasar.

Data asli yang dikembalikan oleh antarmuka pertukaran, tidak ada atribut tersebut tersedia untuk backtesting. Informasi objek PeraturanSymbolkolom adalah kode varietas perdagangan yang didefinisikan oleh platform FMZ.

  • Untuk obyek pertukaran spot, formatSymbolNilai bidang (sebagai contoh) adalah:BTC_USDT, menunjukkan pasangan perdagangan spot BTC_USDT.
  • Untuk obyek bursa berjangka, formatSymbolnilai bidang (sebagai contoh) adalahBTC_USDT.swap, yang mewakili kontrak perpetual hak milik USDT untuk BTC.
  • Untuk obyek bursa berjangka, formatSymbolNilai bidang adalah (misalnya):BTC_USDT.BTC-240108-40000-C, yang merupakan kontrak opsi pembelian BTC dalam USDT dengan tanggal pelaksanaan 8 Januari 2024 dan harga pelaksanaan 40.000.

Simbol string Harga tertinggi, atau jika antarmuka pertukaran tidak memberikan harga tertinggi 24 jam, maka gunakan harga jual satu untuk mengisi. Tinggi nomor Harga terendah, atau jika antarmuka pertukaran tidak memberikan harga terendah 24 jam, maka gunakan harga beli satu untuk mengisi. Rendah nomor Saat ini menjual satu harga. Menjual nomor Saat ini s membeli satu harga. Beli nomor Harga transaksi terbaru. Terakhir nomor Harga terbuka periode, jika antarmuka pertukaran tidak menyediakan harga terbuka periode bergulir 24 jam, maka harga saat ini digunakan untuk mengisi. Buka nomor Jumlah transaksi baru-baru ini, pada prinsipnya, jumlah transaksi spot adalah dalam mata uang dasar, dan jumlah transaksi kontrak adalah dalam jumlah kontrak. Volume nomor Stempel waktu tingkat milidetik. Waktu nomor Posisi, sebagian besar antarmuka pertukaran tidak menyediakan data ini dan nilainya adalah 0 ketika data ini tidak didukung. OpenInterest nomor

Fungsi exchange.GetTicker() mengembalikan struktur Ticker. Untuk kontrak opsi,exchange.GetTicker()fungsi panggilan rentan terhadap kesalahan. Karena likuiditas pasar kontrak opsi biasanya buruk, sering tidak ada pesanan yang menunggu untuk pembelian pertama atau penjualan pertama.Tickerbidang strukturBuyatauSelladalah 0, prompt kesalahan akan diaktifkan.

{@fun/Market/exchange.GetTicker exchange.GetTicker}, {@fun/Market/exchange.GetTickers exchange.GetTickers}

Catatan

Struktur K-Line Bar, struktur OHLC standar, digunakan untuk menggambar K-line dan indikator untuk perhitungan dan analisis.

Stempel waktu tingkat milidetik, untuk struktur Rekaman yang nilai atribut Time adalah timestamp awal periode Bar K-line ini. Waktu nomor Harga pembukaan. Buka nomor Harga tertinggi. Tinggi nomor Harga terendah. Rendah nomor Harga penutupan. Dekat nomor Jumlah posisi, sebagian besar antarmuka pertukaran tidak menyediakan data ini, nilainya adalah 0 ketika data ini tidak didukung. OpenInterest nomor Jumlah transaksi. Pada prinsipnya, jumlah transaksi spot adalah dalam baseCurrency dan jumlah transaksi kontrak adalah dalam jumlah kontrak. Jika antarmuka pertukaran tidak menyediakan data tersebut, itu akan diisi dengan data yang ada dari antarmuka pertukaran, misalnya, jumlah transaksi dalam quoteCurrency. Volume nomor

Fungsi exchange.GetRecords() mengembalikan array of Records atau array kosong. Setiap struktur Record mewakili garis K, yaitu garis K.

{@fun/Market/exchange.GetRecords exchange.GetRecords}

Perintah

Struktur Orde.

The data asli dari respon antarmuka pertukaran, tidak ada atribut tersebut tersedia untuk backtesting. Informasi objek PeraturanSymbolkolom adalah kode produk perdagangan yang didefinisikan oleh platform FMZ dan formatnya konsisten denganSymbolbidang struktur {@struct/Ticker Ticker}

  • Untuk obyek pertukaran spot, formatSymbolNilai bidang adalah (misalnya):BTC_USDT, menunjukkan pasangan perdagangan spot BTC_USDT.
  • Untuk obyek bursa berjangka, formatSymbolNilai bidang adalah (misalnya):BTC_USDT.swap, yang merupakan kontrak abadi standar USDT dari BTC.

Simbol string Order Id, atribut ini terdiri dari kode produk pertukaran dan ID pesanan asli pertukaran, dipisahkan oleh koma bahasa Inggris.Idformat pasangan perdagangan spotETH_USDTurutan pertukaran OKX adalah:ETH-USDT,1547130415509278720Aku tidak tahu. Id string Harga pesanan, perhatikan bahwa atribut ini dapat 0 atau -1 untuk pesanan pasar. Harga nomor Jumlah pesanan yang ditempatkan, perhatikan bahwa atribut pesanan pasar ini mungkin jumlah dan bukan mata uang. Jumlah nomor Jumlah transaksi, mungkin diisi dengan 0 jika antarmuka pertukaran tidak memberikan data ini. DealAmount nomor Harga transaksi rata-rata, perhatikan bahwa beberapa bursa tidak memberikan data ini. Atribut ini ditetapkan menjadi 0 jika tidak tersedia dan tidak dapat dihitung. Rata-rata Harga nomor Status pesanan, merujuk pada {@var/ORDER_STATE/ORDER_STATE_PENDING ORDER_STATE_PENDING}, {@var/ORDER_STATE/ORDER_STATE_CLOSED ORDER_STATE_CLOSED}, {@var/ORDER_STATE/ORDER_STATE_CANCELED ORDER_STATE_CANCELED}, {@var/ORDER_STATE/ORDER_STATE_UNKNOWN OR_STATE_UNKNOWN}. Status nomor Jenis pesanan, merujuk pada {@var/ORDER_TYPE/ORDER_TYPE_BUY ORDER_TYPE_BUY}, {@var/ORDER_TYPE/ORDER_TYPE_SELL ORDER_TYPE_SELL}. Jenis nomor Untuk arah pembukaan dan penutupan pesanan kontrak, lihat {@var/ORDER_OFFSET/ORDER_OFFSET_OPEN ORDER_OFFSET_OPEN}, {@var/ORDER_OFFSET/ORDER_OFFSET_CLOSE ORDER_OFFSET_CLOSE}. Kompensasi nomor Atribut ini dalam pesanan spot adalah""Dalam pesanan kontrak, atribut ini adalah kode kontrak tertentu. ContractType string

PeraturanOrderstruktur pesanan dapat dikembalikan olehexchange.GetOrder()danexchange.GetOrders()fungsi.exchange.GetOrders()fungsi mengembalikan array dariOrderJika tidak ada urutan yang belum selesai, itu kembali[], yang merupakan array kosong.Statusproperti dariOrderstruktur urutan dapat dibandingkan secara langsung dengan konstanta sepertiORDER_STATE_PENDINGuntuk menentukan apakah mereka sama dan dengan demikian menentukan status pesanan.

Untuk mode posisi satu arah, ketika tidak mungkin untuk menentukan apakah pesanan adalah perintah penutupan (pengurangan),Offsetlapangan diatur ke arah pembukaan secara default, yaitu,ORDER_OFFSET_OPEN.

{@fun/Trade/exchange.GetOrder exchange.GetOrder}, {@fun/Trade/exchange.GetOrders exchange.GetOrders}, {@fun/Trade/exchange.GetHistoryOrders exchange.GetHistoryOrders}

Buku pesanan

Struktur pesanan dalam kedalaman pasar.

Harga. Harga Nomor Jumlahnya. Jumlah Nomor

Fungsi GetDepth (() mengembalikan struktur data di mana nilai atribut Bid, Ask adalah array OrderBook.

{@fun/Market/exchange.GetDepth exchange.GetDepth}, {@struct/Depth Depth}

Kedalaman

Struktur kedalaman pasar.

Array order jual, yaitu array OrderBook, disortir berdasarkan harga dari terendah ke tertinggi, dan struktur OrderBook pertama dalam array memiliki Harga terendah. Menanyakan Array Array order buy, yaitu array OrderBook, disortir berdasarkan harga dari tertinggi ke terendah, dan struktur OrderBook pertama dalam array memiliki Harga tertinggi. Penawaran Array Stempel waktu tingkat milidetik. Waktu nomor

Fungsi exchange.GetDepth( mengembalikan struktur Depth.

{@fun/Market/exchange.GetDepth exchange.GetDepth}, {@struct/OrderBook OrderBook}

Rekening

Struktur informasi akun.

Data asli yang dikembalikan oleh antarmuka pertukaran, tidak ada atribut tersebut tersedia untuk backtesting. Informasi objek Jumlah mata uang denominasi yang tersedia, di spot, jika pasangan perdagangan adalah BTC_USDT, Saldo mengacu pada jumlah USDT yang saat ini tersedia. Dalam kontrak standar U, Saldo mengacu pada jumlah margin yang tersedia (USDT, quoteCurrency). Saldo nomor Nilai aset yang dibekukan ketika pesanan tidak dipenuhi. FrozenBalance nomor Jumlah mata uang perdagangan yang tersedia, secara spot, jika pasangan perdagangan adalah BTC_USDT, Saham mengacu pada jumlah BTC yang tersedia saat ini. Saham mengacu pada jumlah margin yang tersedia (mata uang, Mata uang dasar) dalam kontrak berbasis mata uang. Stok nomor Nilai aset yang dibekukan ketika pesanan tidak dipenuhi. Buah-buahan beku nomor Hanya obyek bursa berjangka yang mendukung bidang ini.Equitykolom adalah total ekuitas margin akun berjangka di bawah pengaturan kontrak saat ini.

Ekuitas Nomor Bidang ini hanya didukung oleh obyek pertukaran berjangka.UPnLbidang adalah jumlah dariHasil dan kerugian yang belum direalisasikandari semua posisi yang dibuka oleh margin akun futures di bawah pengaturan kontrak saat ini.

UPnL Nomor

Fungsi exchange.GetAccount (() mengembalikan struktur Akun. Data dalam struktur yang dikembalikan tergantung pada pasangan perdagangan yang saat ini ditetapkan, kode kontrak.

{@fun/Account/exchange.GetAccount pertukaran.GetAccount}

Aktif

Struktur informasi aset mata uang tertentu.

Nama-nama yang ditentukan oleh pertukaran untuk aset cryptocurrency, yang dapat bervariasi dari pertukaran ke pertukaran untuk cryptocurrency yang sama, misalnyaBTCmungkin disebutXBTdi beberapa bursa. Mata uang string Saldo aset mata uang yang tersedia. Jumlah Nomor Jumlah aset yang dibekukan dalam mata uang. Frozen Jumlah Nomor

PeraturanFrozenAmountdari aset mata uang dapat mencakup aset yang terkunci untuk pesanan yang belum dipenuhi, dan bagian margin yang terkunci untuk posisi berjangka.

{@fun/Account/exchange.GetAssets pertukaran.GetAssets}

Posisi

Struktur informasi posisi kontrak.

Data asli yang dikembalikan oleh antarmuka pertukaran, tidak ada atribut tersebut tersedia untuk backtesting. Informasi objek PeraturanSymbolkolom adalah kode produk perdagangan yang didefinisikan oleh platform FMZ dan formatnya konsisten denganSymbolbidang struktur {@struct/Ticker Ticker}

  • Untuk obyek pertukaran spot, formatSymbolNilai bidang adalah (misalnya):BTC_USDT, menunjukkan pasangan perdagangan spot BTC_USDT.
  • Untuk obyek bursa berjangka, formatSymbolNilai bidang adalah (misalnya):BTC_USDT.swap, yang merupakan kontrak abadi standar USDT dari BTC.

Simbol string Ukuran bar posisi, diisi dengan perhitungan jika antarmuka pertukaran tidak memberikan data ini, mungkin tidak akurat. MarginLevel nomor Ukuran posisi, yang biasanya adalah bilangan bulat positif (jumlah nomor kontrak). Jumlah nomor Jumlah posisi yang dibekukan, jumlah posisi yang dibekukan sementara ketika pesanan tertutup tidak dipenuhi. Frozen Jumlah nomor Harga rata-rata posisi, yang pada prinsipnya adalah harga rata-rata posisi secara keseluruhan (tidak berpartisipasi dalam penyelesaian). Harga nomor Keuntungan/kerugian yang mengambang dari posisi pada prinsipnya adalah keuntungan/kerugian posisi yang belum direalisasikan, jika data tidak disediakan oleh antarmuka pertukaran, data tersebut akan diisi dengan data laba/kerugian lain dari antarmuka pertukaran. Keuntungan nomor Tipe posisi, merujuk pada {@var/POSITION_DIRECTION/PD_LONG PD_LONG}, {@var/POSITION_DIRECTION/PD_SHORT PD_SHORT}. Jenis nomor Kode kontrak, lihat deskripsi fungsi {@fun/Futures/exchange.SetContractType exchange.SetContractType} untuk rincian. ContractType string Margin yang diduduki oleh posisi, diisi dengan 0 jika antarmuka pertukaran tidak memberikan data ini. Margin nomor

Fungsi exchange.GetPositions( mengembalikan array Positions atau array kosong. Untuk berjangka mata uang kripto, penting untuk dicatat bahwa array struktur Posisi dikembalikan oleh fungsi exchange.GetPositions(). Untuk atribut FrozenAmount, Profit, dan Margin dalam struktur data posisi, karena data yang diberikan oleh pertukaran tidak seragam, antarmuka GetPositions(, definisi data yang dikembalikan oleh objek pertukaran mungkin berbeda. Misalnya, beberapa bursa tidak memiliki data pembekuan posisi dalam data posisi, jadi FrozenAmount adalah 0.

{@fun/Futures/exchange.GetPositions exchange.GetPositions}

Pasar

Struktur informasi pasar tentang varietas yang diperdagangkan.

Mengambil nilai seperti"btcusdt", yangSymbolCatat bahwa format dan definisi atribut ini berbeda dariSymbolbidang struktur {@struct/Ticker Ticker} Simbol string Mengambil nilai seperti"BTC", yangBaseAssetbidang mencatat nama mata uang yang diperdagangkan (misalnya: baseCurrency), yang seragam huruf besar. Basis Aset string Mengambil nilai seperti"USDT", yangQuoteAssetbidang mencatat nama mata uang yang dijumlahkan (misalnya: quoteCurrency), yang secara seragam huruf besar. Nilai aset string Mengambil nilai seperti0.01, yangTickSizebidang mencatat nilai perubahan terkecil dalam harga item yang diperdagangkan di bursa. TickSize nomor Mengambil nilai seperti0.01, yangAmountSizekolom mencatat nilai perubahan minimum dalam volume pesanan yang ditempatkan di bursa untuk perdagangan tersebut. JumlahUkuran nomor Mengambil nilai seperti2, yangPricePrecisionbidang mencatat presisi harga barang yang diperdagangkan di bursa, menunjukkan bahwa harga akurat hingga 2 desimal. PricePrecision nomor Mengambil nilai seperti3, yangAmountPrecisionkolom mencatat presisi pesanan yang ditempatkan di bursa untuk varietas yang diperdagangkan, menunjukkan bahwa pesanan tersebut akurat hingga 3 desimal. JumlahKeterangan nomor Mengambil nilai seperti0.001, yangMinQtybidang mencatat ukuran pesanan minimum di bursa untuk perdagangan tersebut. MinQty Nomor Mengambil nilai seperti1000, yangMaxQtybidang mencatat jumlah pesanan maksimum yang dapat ditempatkan di bursa untuk jenis perdagangan tersebut. MaxQty nomor Mengambil nilai seperti5, yangMinNotionalbidang mencatat jumlah minimum pesanan yang ditempatkan di bursa untuk jenis perdagangan tersebut. MinNotional nomor Mengambil nilai seperti9999999, yangMaxNotionalbidang mencatat jumlah maksimum pesanan yang ditempatkan di bursa untuk jenis perdagangan tersebut. Max Notional nomor LapanganCtValmencatat nilai kontrak produk perdagangan di bursa, dalam mata uang yang tercatat diCtValCcycontohnya:CtValadalah 0,01CtValCcyadalah"BTC", yang berarti bahwa kontrak bernilai 0.01 BTC. CtVal Nomor BidangCtValCcymencatat unit nilai kontrak. unit nilai kontrak dapat:BTC, USD, ETH, dll. CtValCcy Nomor BidangInfomencatat data mentah untuk spesies yang dikembalikan oleh antarmuka informasi pasar bursa. Informasi objek

Fungsi exchange.GetMarkets() mengembalikan kamus yang berisi iniMarketstruktur. Karena tingkat dukungan yang berbeda untuk data informasi pasar oleh setiap bursa, bidang yang tidak didukung oleh bursa akan diabaikan.Info field.

{@fun/Market/exchange.GetMarkets pertukaran.GetMarkets}

Pendanaan

Struktur informasi tingkat pendanaan produk perdagangan. Hanya kontrak abadi cryptocurrency yang mendukung tingkat pendanaan.

Data mentah dikembalikan ketika antarmuka dana pertukaran berjangka cryptocurrency dipanggil. Informasi objek PeraturanSymbolkolom adalah kode produk perdagangan yang didefinisikan oleh platform FMZ. Simbol string Interval tingkat pendanaan, dalam milidetik.28800000berarti interval 8 jam. Interval nomor Stempel waktu waktu awal periode suku bunga pendanaan berikutnya (waktu penyelesaian periode ini), dalam milidetik. Waktu nomor Tingkat pendanaan yang akan digunakan untuk periode ini. Tingkat nomor

Tingkat pendanaan kontrak abadi dari bursa berjangka yang berbeda memiliki metode dan mekanisme perhitungan yang berbeda, dan siklus penyelesaian adalah 1 jam, 4 jam, 8 jam, dan satu hari. Tingkat pendanaan saat ini dari kontrak abadi di bursa berjangka memiliki nilai tetap dan nilai variabel yang dihitung secara real time. PeraturanRatebidang adalah nilai suku bunga pendanaan tanpa%. Jika Anda ingin mengkonversi ke nilai dengan%, Anda dapat mengalikannya dengan 100 dan menambahkan%di akhir.

{@fun/Futures/exchange.GetFundings exchange.GetFundings}

Struktur lainnya

HttpQuery-options

Struktur JSON ini digunakan untuk mengkonfigurasi parameter fungsi HttpQuery dan fungsi HttpQuery_Go untuk mengirim permintaan Http.

Metode permintaan, misalnya:GET, POST, dll. metode string Misalnya, dalam permintaan POST, tubuh dapat berisi data formulir, JSON, teks, dll. tubuh string Pengkodean set karakter. Misalnya, tentukan pengkodean data teks dalam body sebagai:"UTF-8"Aku tidak tahu. Charset string Cookie adalah data kecil yang digunakan untuk menyimpan dan bertukar informasi keadaan antara klien (biasanya browser) dan server. kue string Digunakan untuk mensimulasikan sidik jari browser. profil string Ketika diatur ke true, panggilan fungsi HttpQuery mengembalikan pesan respons lengkap. Ketika diatur ke false, hanya data dalam pesan respon Body yang dikembalikan. debug bool Informasi request header ada dalam bentuk key-value pairs (struktur JSON) dan digunakan untuk mengirimkan berbagai informasi, seperti jenis konten, informasi otentikasi, kontrol cache, dll. Header JSON Pengaturan timeout. Mengatur 1000 berarti waktu istirahat 1 detik. timeout nomor

Contoh penggunaan:

function main() {
    var options = {
        method: "POST",
        body: "a=10&b=20&c=30",
        charset: "UTF-8",
        cookie: "session_id=12345; lang=en",
        profile: "chrome_103",
        debug: false,
        headers: {"TEST-HTTP-QUERY": "123"},
        timeout: 1000
    }
    var ret = HttpQuery("http://127.0.0.1:8080", options)
    Log(ret)
}

Pesan http yang dikirim saat kode di atas dijalankan:

POST / HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Cookie: session_id=12345; lang=en
Host: 127.0.0.1:8080
Test-Http-Query: 123
Transfer-Encoding: chunked
User-Agent: Mozilla/5.0 (Macintosh; ...
Accept-Encoding: gzip, deflate, br

e
a=10&b=20&c=30
0

{@fun/Global/HttpQuery HttpQuery}, {@fun/Global/HttpQuery_Go HttpQuery_Go}

HttpQuery-return

Struktur JSON ini adalah struktur data yang dikembalikan oleh fungsi HttpQuery dalam mode debug ketika bidang debug dioptionsParameter struktur benar.

Kode status http StatusKode Nomor Minta informasi header. Judul JSON Informasi tentang cookie. Cookie Array Informasi jalur penuh permintaan. Menelusuri JSON Panjang pesan Panjang Nomor Isi pesan. Tubuh string

Contoh dari struktur data JSON yang dikembalikan adalah:

{
    "StatusCode": 302,
    "Header": {
        "Content-Type": ["text/html"],
        // ...
    },
    "Cookies": [{
        // ...
    }],
    "Trace": {},
    "Length": 154,
    "Body": "..."
}

{@fun/Global/HttpQuery HttpQuery}, {@fun/Global/HttpQuery_Go HttpQuery_Go}

Tabel LogStatus

Struktur JSON ini digunakan untuk mengkonfigurasi konten tabel yang ditampilkan di bilah status strategi.

Digunakan untuk mengatur jenis UI dan kontrol yang akan dianalisis dan ditampilkan.tableAku tidak tahu. jenis string Digunakan untuk mengatur judul tabel status bar. Judul string Digunakan untuk mengatur judul kolom dari tabel bar status. elemen pertama array adalah judul kolom pertama, dan seterusnya. Benih Array Digunakan untuk mengatur data baris tabel bar status. Elemen pertama array baris (array dua dimensi) juga merupakan struktur array. Panjang struktur array ini harus konsisten dengan jumlah kolom tabel (elemen dalam struktur array sesuai dengan nama kolom tabel satu per satu), yaitu, baris pertama data dalam tabel. baris Array

function main() {
    var tbl = {
        type: "table", 
        title: "title", 
        cols: ["Column 1", "Column 2", "Column 3"], 
        rows: [
            ["Row 1 Column 1", "Row 1 Column 2", "Row 1 Column 3"],
            ["Row 2 Column 1", "Row 2 Column 2", "Row 2 Column 3"],
            ["Row 3 Column 1", "Row 3 Column 2", "Row 3 Column 3"],
        ]
    }
    LogStatus("`" + JSON.stringify(tbl) + "`")
}

{@fun/Log/LogStatus LogStatus}

LogStatus-btnTypeOne

Struktur JSON ini digunakan untuk mengkonfigurasi kontrol tombol di bilah status. Struktur JSON kontrol tombol dapat disematkan dalam struktur JSON tabel bilah status. Struktur ini adalah struktur versi lama, dan platform masih kompatibel. Contoh membangun kontrol tombol bilah status (setelah tombol dipicu dan diklik, kotak pop-up berisi kontrol input tunggal, yang dibangun melalui bidang input):

{
    "type": "button", 
    "cmd": "open", 
    "name": "opening a position", 
    "input": {
        "name": "number of opening positions", 
        "type": "number", 
        "defValue": 1
    }
}

Kontrol di kotak pop-up dipicu dengan mengklik tombol status bar kontrol diatur melaluiinputataugroup.

Untuk kontrol tombol, pengaturan tetap adalah:buttonAku tidak tahu. jenis string Pengaturan jenis tombol kelas string Teks pada tombol kontrol, yaitu, nama tombol. nama string Konten perintah interaktif yang dikirim ke strategi ketika kontrol tombol memicu operasi klik. cmd string Deskripsi kontrol tombol. Deskripsi ditampilkan ketika mouse ditempatkan pada tombol di bilah status. deskripsi string Menetapkan tombol ke disabled (true) / enabled (false). penyandang cacat bool Ketika membangun tombol bilah status untuk interaksi, input data juga didukung.GetCommand()Fungsi.inputItem ke struktur data JSON dari kontrol tombol di bilah status untuk mengkonfigurasi kontrol input di kotak pop-up yang ditampilkan ketika tombol dipicu. Sebagai contoh, untuk menetapkan nilai dariinputbidang:

{
    "name": "Number of opening positions", 
    "type": "number", 
    "defValue": 1,
    "description": "test",                  
}

Deskripsi setiap bidang dalam struktur JSON di atas:

  • nama Judul kontrol di kotak pop-up yang muncul setelah tombol bilah status memicu operasi klik.
  • deskripsi Deskripsi kontrol di kotak pop-up yang muncul setelah tombol bilah status memicu operasi klik.
  • jenis Jenis kontrol di kotak pop-up yang muncul setelah tombol bilah status memicu operasi klik.
    1. "number": kontrol input numerik.
    2. "string"Kontrol input string.
    3. "selected"Kontrol kotak drop-down.
    4. "boolean"/ Mengganti kontrol.
  • defValue Nilai default dari kontrol di kotak pop-up yang muncul setelah tombol bilah status memicu operasi klik. Jika itu adalah kontrol jenis kotak drop-down (dipilih), bidang defValue digunakan untuk mengatur opsi kotak drop-down."input": {"name": "Opening quantity", "type": "selected", "defValue": "A|B|C"}, deskripsi teks dari opsi kotak drop-down diatur menjadi A, B, C.

Untuk bidang yang diperluas oleh kontrol jenis kotak drop-down:

  • pilihan Kontrol kotak drop-down di halaman yang dipicu oleh kontrol tombol bilah status dapat menggunakan bidang opsi untuk mengatur opsi.{text: "description", value: "value"}Gunakan kolom defValue untuk mengatur opsi default, yang bisa beberapa pilihan.
  • berganda Ketika bidang ini ditetapkan menjadi benar, beberapa pilihan di kotak drop-down didukung.

input JSON Peraturaninputfield mengkonfigurasi kontrol di kotak pop-up yang muncul setelah tombol status bar dipicu dengan mengklik.groupdaninputadalah bahwa ia mengkonfigurasi sekelompok kontrol.groupmemiliki struktur data yang sama denganinputSilakan lihat deskripsi yang relevan dariinput field.

kelompok Array

Contoh dariclassnilai struktur JSON dari tombol di bilah status:

function main() {
    var table = {
        type: "table",
        title: "Status bar button style",
        cols: ["Default", "Original", "Success", "Information", "Warning", "Danger"], 
        rows: [
            [
                {"type":"button", "class": "btn btn-xs btn-default", "name": "Default"},
                {"type":"button", "class": "btn btn-xs btn-primary", "name": "Original"},
                {"type":"button", "class": "btn btn-xs btn-success", "name": "Success"},
                {"type":"button", "class": "btn btn-xs btn-info", "name": "Information"},
                {"type":"button", "class": "btn btn-xs btn-warning", "name": "Warning"},
                {"type":"button", "class": "btn btn-xs btn-danger", "name": "Danger"}
            ]
        ]
    }
    LogStatus("`" + JSON.stringify(table) + "`")
}

Contoh penggunaangroupbidang denganinputbidang:

function main() {
    // The drop-down box control in the page triggered by the testBtn1 button uses the options field to set options and the defValue field to set the default options. This is different from other examples in this chapter that directly use defValue to set options.
    var testBtn1 = {
        type: "button",
        name: "testBtn1",
        cmd: "cmdTestBtn1",
        input: {name: "testBtn1ComboBox", type: "selected", options: ["A", "B"], defValue: 1}
    }
  
    /* 
      Status bar button control (set input field implementation) testBtn2 button triggered by the page in the drop-down box control using the options field to set the options, options field in the options field not only supports the string,
      it also supports the use of ```{text: "description", value: "value"}``` structure. Use the defValue field to set the default option. The default option can be multiple selection (multiple selection is achieved through an array structure). Multiple selection requires setting the additional field multiple to true.
    */
    var testBtn2 = {
        type: "button", 
        name: "testBtn2",
        cmd: "cmdTestBtn2",
        input: {
            name: "testBtn2MultiComboBox", 
            type: "selected", 
            description: "Implementing multiple selection in drop-down box", 
            options: [{text: "Option A", value: "A"}, {text: "Option B", value: "B"}, {text: "Option C", value: "C"}],
            defValue: ["A", "C"],
            multiple: true
        }
    }
  
    // Status bar grouping button control (set group field implementation) testBtn3 button triggered by the page in the drop-down box control using the options field to set options, also supports the direct use of defValue set options.
    var testBtn3 = {
        type: "button",                     
        name: "testBtn3",
        cmd: "cmdTestBtn3", 
        group: [
            {name: "comboBox1", label: "labelComboBox1", description: "Drop-down box 1", type: "selected", defValue: 1, options: ["A", "B"]}, 
            {name: "comboBox2", label: "labelComboBox2", description: "Drop-down box 2", type: "selected", defValue: "A|B"}, 
            {name: "comboBox3", label: "labelComboBox3", description: "Drop-down box 3", type: "selected", defValue: [0, 2], multiple: true, options: ["A", "B", "C"]}, 
            {
                name: "comboBox4", 
                label: "labelComboBox4", 
                description: "Drop-down box 4", 
                type: "selected", 
                defValue: ["A", "C"], 
                multiple: true, 
                options: [{text: "Option A", value: "A"}, {text: "Option B", value: "B"}, {text: "Option C", value: "C"}, {text: "Option D", value: "D"}]
            }
        ]
    }
    while (true) {
        LogStatus("`" + JSON.stringify(testBtn1) + "`\n", "`" + JSON.stringify(testBtn2) + "`\n", "`" + JSON.stringify(testBtn3) + "`\n")
        var cmd = GetCommand()
        if (cmd) {
            Log(cmd)
        }
        Sleep(5000)
    }
}

{@fun/Log/LogStatus LogStatus}

LogStatus-btnTypeTwo

Struktur JSON ini digunakan untuk mengkonfigurasi kontrol tombol di bilah status. Struktur JSON kontrol tombol dapat disematkan dalam struktur JSON tabel bilah status. Contoh membangun kontrol tombol bilah status (setelah tombol dipicu dan diklik, kotak pop-up berisi beberapa kontrol input, yang dibangun melalui bidang kelompok):

{
    "type": "button",
    "cmd": "open",
    "name": "Open a position and place an order",
    "group": [{
        "type": "selected",
        "name": "tradeType",
        "label": "order type",
        "description": "market order, limit order",
        "default": 0,
        "group": "trading setup",
        "settings": {
            "options": ["market order", "limit order"],
            "required": true,
        }
    }, {
        "type": "selected",
        "name": "direction",
        "label": "trading direction",
        "description": "buy, sell",
        "default": "buy",
        "group": "trading setup",
        "settings": {
            "render": "segment",
            "required": true,
            "options": [{"name": "buy", "value": "buy"}, {"name": "sell", "value": "sell"}],
        }
    }, {
        "type": "number",
        "name": "price",
        "label": "price",
        "description": "order price",
        "group": "trading setup",
        "filter": "tradeType==1",
        "settings": {
            "required": true,
        }
    }, {
        "type": "number",
        "name": "amount",
        "label": "order quantity",
        "description": "order quantity",
        "group": "trading setup",
        "settings": {
            "required": true,
        }
    }],
}

Kontrol di kotak pop-up dipicu dengan mengklik tombol status bar kontrol diatur melaluiinputataugroup.

Untuk kontrol tombol, pengaturan tetap adalah:buttonAku tidak tahu. jenis string Teks pada tombol kontrol, yaitu, nama tombol. nama string Konten perintah interaktif yang dikirim ke strategi ketika kontrol tombol memicu operasi klik. cmd string Ketika membangun tombol bilah status untuk interaksi, input data juga didukung.GetCommand()Fungsi.inputItem ke struktur data JSON dari kontrol tombol di bilah status untuk mengkonfigurasi kontrol input di kotak pop-up yang ditampilkan ketika tombol dipicu. Dibandingkan dengan versi lama dari struktur input, versi baru memiliki beberapa bidang baru dan perubahan:

{
    "type": "selected",
    "name": "test",         
    "label": "topic",       
    "description": "desc",  
    "default": 1,
    "filter": "a>1",
    "group": "group1",
    "settings": { ... },    // Component configuration
}

Deskripsi dan penjelasan dari setiap bidang dalam struktur JSON di atas:

  • jenis Jenis kontrol (bidang wajib), mendukung pengaturan berikut:"number"kotak input numerik,"string"kotak input string,"selected"kotak drop-down,"boolean"Mengganti kontrol.

  • nama Jika struktur JSON saat ini adalah nilai bidang bidang input, ketika bidang label tidak ditetapkan, nama adalah judul kontrol di kotak pop-up yang muncul setelah tombol status bar diklik. Jika struktur JSON saat ini adalah elemen dalam nilai bidang (struktur array) dari bidang kelompok, nama tidak digunakan sebagai judul kontrol.

    var testBtn3 = {
        type: "button",                     
        name: "testBtn3",
        cmd: "cmdTestBtn3", 
        group: [
            {name: "comboBox1", label: "labelComboBox1", description: "Drop-down box 1", type: "selected", defValue: 1, options: ["A", "B"]}, 
            {name: "comboBox2", label: "labelComboBox2", description: "Drop-down box 2", type: "selected", defValue: "A|B"}, 
            {name: "comboBox3", label: "labelComboBox3", description: "Drop-down box 3", type: "selected", defValue: [0, 2], multiple: true, options: ["A", "B", "C"]}, 
            {
                name: "comboBox4", 
                label: "labelComboBox4", 
                description: "Drop-down box 4", 
                type: "selected", 
                defValue: ["A", "C"], 
                multiple: true, 
                options: [{text: "Option A", value: "A"}, {text: "Option B", value: "B"}, {text: "Option C", value: "C"}, {text: "Option D", value: "D"}]
            }
        ]
    }
    

    Menurut cuplikan ini, jika tombol bilah status memicu interaksi, kotak pop-up akan muncul dengan 4 kontrol, yang semuanya adalah kontrol kotak drop-down. Setelah mengatur opsi untuk setiap kontrol dan mengklik OK untuk mengirim pesan interaksi, fungsi GetCommand dalam strategi akan menerimacmdTestBtn3:{"comboBox1":1,"comboBox2":0,"comboBox3":[0,2],"comboBox4":["A","C"]}Aku tidak tahu. Nilai nama dalam struktur JSON digunakan sebagai nama lapangan dari informasi interaktif yang dikembalikan, misalnya: comboBox1, comboBox2, dll.

  • label Digunakan untuk mengatur judul kontrol.

  • deskripsi Deskripsi kontrol. Jika struktur JSON saat ini adalah elemen dalam nilai bidang (struktur array) dari bidang grup, dan bidang label tidak ditetapkan, deskripsi adalah judul kontrol di kotak pop-up yang muncul setelah tombol status bar diklik.

  • default Nilai default dari kontrol.

  • filter Selector, digunakan untuk menyembunyikan kontrol. Tidak menetapkan bidang ini berarti tidak ada penyaringan (menampilkan kontrol); ketika bidang ini ditetapkan, tidak ada penyaringan (menampilkan kontrol) terjadi ketika ekspresi benar. Ketika ekspresi salah, penyaringan terjadi (tidak menampilkan kontrol)

  • kelompok Digunakan untuk mengontrol pengelompokan kontrol, yang dapat dilipat.

  • pengaturan Konfigurasi komponen, kontrol memiliki berbagai pilihan UI, gunakan opsi ini untuk membuat pengaturan tertentu.

    settings:{
        multiple:true,
        customizable:true,
        options:[{name:'xxx|yyy',value:0}]
    }
    

    Pengaturan: setting.required: Apakah diperlukan. setting.disabled: Apakah untuk menonaktifkan. settings.min: Berlaku jika type=number, menunjukkan nilai minimum atau panjang minimum string. settings.max: Berlaku jika type=number, menunjukkan nilai maksimum atau panjang maksimum string. settings.step: Berlaku jika type=number dan render=slider, menunjukkan panjang langkah. settings.multiple: Berlaku jika type= dipilih, menunjukkan bahwa beberapa pilihan didukung. setting.customizable: Ini berlaku ketika type= dipilih, menunjukkan bahwa kustomisasi didukung; pengguna dapat langsung mengedit dan menambahkan opsi baru di kontrol kotak drop-down. Jika opsi yang baru diedit dipilih, nama opsi digunakan sebagai pengganti nilai yang diwakili oleh opsi ketika interaksi dipicu. setting.options: Berlaku jika type= dipilih, menunjukkan format data opsi selektor: [option 1, option 2], [{name:xxx,value:0}, {name:xxx,value:1}]. setting.render: Jenis komponen rendering. Ketika type=number, settings.render tidak ditetapkan (kotak input nomor default), opsional: slider (slider bar), tanggal (selector waktu mengembalikan timestamp). Ketika type=string, settings.render tidak ditetapkan (default single-line input box), opsional: textarea (multi-line input), date (time selector returns yyyy-MM-dd hh:mm:ss), color (color selector returns #FF00FF). Ketika type= dipilih, settings.render tidak ditetapkan (default drop-down box), opsional: segment (selector segment). Ketika type=boolean, saat ini hanya ada kotak centang default.

input JSON Peraturaninputfield mengkonfigurasi kontrol di kotak pop-up yang muncul setelah tombol status bar dipicu dengan mengklik.groupdaninputadalah bahwa ia mengkonfigurasi sekelompok kontrol.groupmemiliki struktur data yang sama denganinputSilakan lihat deskripsi di atas dariinput field.

kelompok Array

Dukungan pengaturan bilingual:

{
    type:'selected',
    name:'test',
    label:'选项|options',
    description:'描述|description',
    default:0,                            // Here, the default value is set to 0, which means the value in the option {name:'xxx|yyy',value:0}
    filter:'a>1&&a<10',
    group:'分组|group',
    settings:{
        multiple:true,
        customizable:true,
        options:[{name:'xxx|yyy',value:0}]
    }
}

{@fun/Log/LogStatus LogStatus}

Opsi grafik

JSON ini digunakan untuk mengatur informasi konfigurasi grafik dari fungsi gambar khususChart(). Perpustakaan grafik yang digunakan adalah Highcharts. Hanya beberapa bidang konfigurasi dasar yang terdaftar di sini.

Lapangan ekstensi platform. diatur ke benar untuk menggunakan grafik Highstocks; diatur ke salah untuk menggunakan grafik Highcharts.

__isStock string

{
    layout: 'single', // Not participating in grouping, displayed separately, default is group 'group'
    height: 300,      // Specify height
}

perpanjangan JSON Judul grafik Judul string Konfigurasi sumbu X. xAxis JSON Konfigurasi sumbu Y. yAxis JSON Seri data grafik. seri JSON

Contoh gambar sederhana:

// This chart is an object in JavaScript language. Before using the Chart function, we need to declare an object variable chart to configure the chart.
var chart = {                                           
    // This field marks whether the chart is a general chart. If you are interested, you can change it to false and run it.
    __isStock: true,                                    
    // Zoom tool
    tooltip: {xDateFormat: '%Y-%m-%d %H:%M:%S, %A'},    
    // title
    title : { text : 'Price difference analysis chart'},                       
    // Select range
    rangeSelector: {                                    
        buttons:  [{type: 'hour',count: 1, text: '1h'}, {type: 'hour',count: 3, text: '3h'}, {type: 'hour', count: 8, text: '8h'}, {type: 'all',text: 'All'}],
        selected: 0,
        inputEnabled: false
    },
    // The horizontal axis of the coordinate axis is: x-axis, and the current setting type is: time
    xAxis: { type: 'datetime'},                         
    // The vertical axis of the coordinate axis is: the y-axis, the default value is adjusted according to the data size
    yAxis : {                                           
        // title
        title: {text: 'Price difference'},                           
        // Whether to enable the right vertical axis
        opposite: false                                 
    },
    // Data series, this property saves each data series (line, K-line chart, label, etc.)
    series : [                                          
        // The index is 0, and the data array stores the data of the index series.
        {name : "line1", id : "line 1,buy1Price", data : []},                          
        // The index is 1, dashStyle:'shortdash' is set, that is, a dashed line is set
        {name : "line2", id : "line 2,lastPrice", dashStyle : 'shortdash', data : []}  
    ]
}
function main(){
    // Call the Chart function to initialize the chart
    var ObjChart = Chart(chart)         
    // Clear
    ObjChart.reset()                      
    while(true){
        // Get the timestamp of this poll, which is a millisecond timestamp. Used to determine the position of the X-axis written to the chart
        var nowTime = new Date().getTime()
        // Get market data
        var ticker = _C(exchange.GetTicker)
        // Get the buy price from the return value of the market data
        var buy1Price = ticker.Buy    
        // Get the last transaction price. In order to prevent the two lines from overlapping, we add 1.
        var lastPrice = ticker.Last + 1
        // Use the timestamp as the X value and the buy price as the Y value to pass into the data sequence of index 0
        ObjChart.add(0, [nowTime, buy1Price])
        // Same as above
        ObjChart.add(1, [nowTime, lastPrice])
        Sleep(2000)
    }
}

{@fun/Log/Chart Chart}

KLineChart-opsi

JSON ini digunakan untuk mengatur informasi konfigurasi grafik dari fungsi gambar khususKLineChartHanya beberapa bidang konfigurasi dasar yang tercantum di sini.

Apakah menggambar pada bagan utama. penyambungan bool Konfigurasi sumbu X. xAxis JSON Konfigurasi sumbu Y. yAxis JSON Konfigurasi grafik candlestick. lilin JSON

Silakan lihat:Artikel khusus tentang menggambar grafik menggunakan fungsi KLineChart.

{@fun/Log/KLineChart KLineChart}

SetData-data

JSON digunakan untuk mengatur data yang akan dimuat olehexchange.SetData()JSON data adalah struktur array, di mana setiap elemen juga array, yaitu[time, data].

Stempel waktu data, menandai waktu data ini. waktu nomor data adalah sepotong data yang sesuai dengan waktu tertentu dalam data yang dimuat olehexchange.SetData()Ketika strategi berjalan,exchange.GetData()fungsi mendapatkan data dengan timestamp sesuai dengan waktu saat ini.

data string, nomor, bool, objek, array, dll.

Contoh memuat data dalam sistem backtesting dan mengambil data ketika strategi backtest sedang berjalan:

/*backtest
start: 2020-01-21 00:00:00
end: 2020-02-12 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Bitfinex","currency":"BTC_USD"}]
*/
function main() {
    exchange.SetData("test", [[1579536000000, _D(1579536000000)], [1579622400000, _D(1579622400000)], [1579708800000, _D(1579708800000)]])
    while(true) {
        Log(exchange.GetData("test"))
        Sleep(1000 * 60 * 60 * 24)
    }
}

{@fun SetData}, {@fun GetData}

EventLoop-kembali

JSON ini adalah struktur data yang dikembalikan olehEventLoop()Fungsi.EventLoop()Monitor fungsi: 1. Setiap peristiwa data yang dapat dibaca WebSocket; 2. peristiwa penyelesaian tugas bersamaan dengan fungsi exchange.Go() dan HttpQuery_Go(); 3. peristiwa pesan yang dikirim di thread yang dibuat olehthreading.Thread()fungsi dalam strategi bahasa JavaScript.

Nomor urutan peristiwa. Seq Nomor Nama acara. Peristiwa string ID thread acara. ThreadId Nomor Indeks peristiwa. Indeks Nomor Stempel waktu nano. Nano Nomor

Gunakanexchange.Go()fungsi untuk membuat permintaan bersamaan dan struktur data peristiwa dikembalikan olehEventLoop() function.

{
    "Seq":1,
    "Event":"Exchange_GetTrades",
    "ThreadId":0,
    "Index":3,
    "Nano":1682068771309583400
}

Dalam thread yang dieksekusi secara bersamaan dari strategi bahasa JavaScript (dibuat olehthreading.Thread()fungsi), ketikapostMessage()fungsi dari objek thread digunakan untuk mengirim pesan,EventLoop()fungsi dalam thread yang menerima pesan akan memantau struktur data peristiwa berikut:

{
    "Seq":4,
    "Event":"thread",
    "ThreadId":1,
    "Index":0,
    "Nano":1727592066508674000
}

{@fun/Global/EventLoop EventLoop}

DBExec-kembali

JSON ini adalah struktur data yang dikembalikan olehDBExec()fungsi; juga dikembalikan ketika menjalankan pernyataan SQL menggunakanexec()metode dari objek yang dibuat olehDial() function.

Nama kolom data yang akan ditanyakan, array string. kolom Array Data tertentu yang akan ditanyakan, di mana setiap data sesuai dengan nama kolom. Nilai bidang nilai adalah array dua dimensi, di mana setiap elemen adalah array dan catatan data. nilai-nilai Array

Contoh data kueri di database:

{
    "columns":["TS","HIGH","OPEN","LOW","CLOSE","VOLUME"],
    "values":[
        [1518970320000,100,99.1,90,100,12345.6],
        [1518960320000,100,99.1,90,100,12345.6]
    ]
}

{@fun/Global/DBExec DBExec}, {@fun/Global/Dial Dial}

Thread.join-return

JSON ini adalah struktur data yang dikembalikan oleh fungsi anggotajoin()dariThreadobjek, yang menyimpan beberapa informasi tentang thread bersamaan diJavaScriptstrategi bahasa.Threadobjek mengacu pada objek benang, yang dibuat olehthreading.Thread().

ID benang. id Nomor Apakah benang dipaksa untuk berakhir. diakhiri bool Waktu berjalan benang dalam nanodetik. telah berlalu Nomor Nilai kembali dari fungsi thread. Rt Nomor

Kode berikut menguji mekanisme timeout darijoin()fungsi dariThreadobjek dan mencetak nilai kembali darijoin() function.

function testFunc() {
    for (var i = 0; i < 5; i++) {
        Log(i)
        Sleep(300)
    }
}

function main() {
    var t1 = threading.Thread(testFunc)
    Log(t1.join(1000))  // undefined
    Log(t1.join())      // {"id":1,"terminated":false,"elapsed":1506864000}
} ```


{@fun/Threads/Thread/join join}
Fungsi bawaan Variabel bawaan