Sumber daya yang dimuat... Pemuatan...

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}
Pendanaan Variabel bawaan