Sumber dimuat naik... memuat...

LainStruct

HttpQuery-pilihan

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

Kaedah permintaan, contohnya:GET, POST, dan lain-lain kaedah senar Badan permintaan. Sebagai contoh, dalam permintaan POST, badan boleh mengandungi data borang, JSON, teks, dll. badan senar Pengekodan set aksara. Sebagai contoh, tentukan pengekodan data teks dalam badan sebagai:"UTF-8". Charset senar Kuki adalah sekeping data kecil yang digunakan untuk menyimpan dan bertukar maklumat keadaan antara klien (biasanya penyemak imbas) dan pelayan. kek senar Digunakan untuk mensimulasikan cap jari penyemak imbas. profil senar Apabila ditetapkan kepada benar, panggilan fungsi HttpQuery mengembalikan mesej tindak balas lengkap. Apabila ditetapkan kepada salah, hanya data dalam mesej tindak balas Body yang dikembalikan. debug bool Maklumat tajuk permintaan wujud dalam bentuk pasangan kunci-nilai (struktur JSON) dan digunakan untuk menghantar pelbagai maklumat, seperti jenis kandungan, maklumat pengesahan, kawalan cache, dll. tajuk JSON Tetapan masa henti. Tetapan 1000 bermaksud masa henti 1 saat. masa lapang nombor

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

Mesej http yang dihantar apabila kod 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-kembali

Struktur JSON ini adalah struktur data yang dikembalikan oleh fungsi HttpQuery dalam mod debug apabila medan debug dalamoptionsParameter struktur adalah benar.

Kod status http Kod Status nombor Minta maklumat tajuk. Judul JSON Maklumat mengenai kuki. Kuki Array Maklumat laluan penuh permintaan. Tarikan JSON Panjang mesej Panjang nombor Kandungan mesej. Badan senar

Contoh 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}

Jadual LogStatus

Struktur JSON ini digunakan untuk mengkonfigurasi kandungan jadual yang dipaparkan dalam bar status strategi.

Digunakan untuk menetapkan jenis UI dan kawalan yang akan dianalisis dan dipaparkan.table. jenis senar Digunakan untuk menetapkan tajuk jadual bar status. tajuk senar Digunakan untuk menetapkan tajuk lajur jadual bar status. Elemen pertama array adalah tajuk lajur pertama, dan sebagainya. benih Array Digunakan untuk menetapkan data baris jadual bar status. Elemen pertama array baris (rantai dua dimensi) juga struktur array. Panjang struktur array ini harus konsisten dengan bilangan lajur jadual (elemen dalam struktur array sepadan dengan nama lajur jadual satu demi satu), iaitu baris pertama data dalam jadual. barisan 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 kawalan butang dalam bar status. Struktur kawalan butang JSON boleh disematkan dalam struktur JSON jadual bar status. Struktur ini adalah struktur versi lama, dan platform masih serasi. Disyorkan untuk menggunakan versi terbaru struktur JSON butang. Contoh membina kawalan butang bar status (selepas butang itu dicetuskan dan diklik, kotak pop-up mengandungi kawalan input tunggal, yang dibina melalui medan input):

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

Kawalan dalam kotak pop-up dicetuskan dengan mengklik butang bar status kawalan ditetapkan melaluiinputataugroup.

Untuk kawalan butang, tetapan tetap adalah:button. jenis senar Tetapan jenis butang kelas senar Teks pada butang kawalan, iaitu, nama butang. nama senar Kandungan arahan interaktif yang dihantar ke strategi apabila kawalan butang mencetuskan operasi klik. cmd senar Penerangan kawalan butang. Penerangan dipaparkan apabila tetikus diletakkan pada butang dalam bar status. Penerangan senar Tetapkan butang untuk dilumpuhkan (betul) / diaktifkan (salah). cacat bool Apabila membina butang bar status untuk interaksi, input data juga disokong.GetCommand()Tambah fungsi.inputItem kepada struktur data JSON kawalan butang dalam bar status untuk mengkonfigurasi kawalan input dalam kotak pop-up yang dipaparkan apabila butang itu dicetuskan. Sebagai contoh, untuk menetapkan nilaiinputmedan:

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

Penerangan setiap medan dalam struktur JSON di atas:

  • nama Judul kawalan dalam kotak pop-up yang muncul selepas butang bar status mencetuskan operasi klik.
  • Penerangan Penerangan kawalan dalam kotak pop-up yang muncul selepas butang bar status mencetuskan operasi klik.
  • jenis Jenis kawalan dalam kotak pop-up yang muncul selepas butang bar status mencetuskan operasi klik.
    1. "number": kawalan input berangka.
    2. "string": kawalan input rentetan.
    3. "selected": kawalan kotak turun.
    4. "boolean"- Pindah kawalan.
  • defValue Nilai lalai kawalan dalam kotak pop-up yang muncul selepas butang bar status mencetuskan operasi klik. Jika ia adalah kawalan jenis kotak turun (dipilih), medan defValue digunakan untuk menetapkan pilihan kotak turun. Sebagai contoh:"input": {"name": "Opening quantity", "type": "selected", "defValue": "A|B|C"}, penerangan teks pilihan kotak turun ditetapkan kepada A, B, C.

Untuk medan yang diperluaskan oleh kawalan jenis kotak turun:

  • pilihan Kawalan kotak drop-down dalam halaman yang dicetuskan oleh kawalan butang bar status boleh menggunakan medan pilihan untuk menetapkan pilihan. Pilihan dalam medan pilihan bukan sahaja menyokong rentetan, tetapi juga menyokong penggunaan{text: "description", value: "value"}Gunakan medan defValue untuk menetapkan pilihan lalai, yang boleh menjadi pelbagai pilihan.
  • berganda Apabila medan ini ditetapkan kepada benar, pelbagai pilihan dalam kotak drop-down disokong.

input JSON Peraturaninputmedan mengkonfigurasi kawalan dalam kotak pop-up yang muncul selepas butang bar status dicetuskan dengan mengklik.groupdaninputadalah bahawa ia mengkonfigurasi sekumpulan kawalan.groupmempunyai struktur data yang sama denganinputSila rujuk penerangan yang berkaitaninput field.

kumpulan Array

Satu contohclassnilai struktur JSON butang dalam bar 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 penggunaangroupmedan denganinputmedan:

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 kawalan butang di bar status. Struktur kawalan butang JSON boleh disematkan dalam struktur JSON jadual bar status. Versi terbaru struktur butang JSON. Contoh membina kawalan butang bar status (selepas butang itu dicetuskan dan diklik, kotak pop-up mengandungi beberapa kawalan input, yang dibina melalui medan kumpulan):

{
    "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,
        }
    }],
}

Kawalan dalam kotak pop-up dicetuskan dengan mengklik butang bar status kawalan ditetapkan melaluiinputataugroup.

Untuk kawalan butang, tetapan tetap adalah:button. jenis senar Teks pada butang kawalan, iaitu, nama butang. nama senar Kandungan arahan interaktif yang dihantar ke strategi apabila kawalan butang mencetuskan operasi klik. cmd senar Apabila membina butang bar status untuk interaksi, input data juga disokong.GetCommand()Tambah fungsi.inputItem kepada struktur data JSON kawalan butang dalam bar status untuk mengkonfigurasi kawalan input dalam kotak pop-up yang dipaparkan apabila butang itu dicetuskan. Berbanding dengan versi lama struktur input, versi baru mempunyai beberapa medan baru dan perubahan:

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

Penerangan dan penjelasan setiap medan dalam struktur JSON di atas:

  • jenis Jenis kawalan (bidang diperlukan), menyokong tetapan berikut:"number"kotak input berangka,"string"kotak input rentetan,"selected"kotak turun,"boolean"menukar kawalan.

  • nama Jika struktur JSON semasa adalah nilai medan medan input, apabila medan label tidak ditetapkan, nama adalah tajuk kawalan dalam kotak pop-up yang muncul selepas butang bar status diklik. Jika struktur JSON semasa adalah elemen dalam nilai medan (struktur array) medan kumpulan, nama tidak digunakan sebagai tajuk kawalan. medan nama digunakan untuk menunjukkan nama medan kandungan input kawalan. contohnya petikan medan kumpulan digunakan sebagai ilustrasi:

    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 butang bar status mencetuskan interaksi, kotak pop-up akan muncul dengan 4 kawalan, yang semuanya adalah kawalan kotak drop-down.cmdTestBtn3:{"comboBox1":1,"comboBox2":0,"comboBox3":[0,2],"comboBox4":["A","C"]}. Nilai nama dalam struktur JSON digunakan sebagai nama medan maklumat interaktif yang dikembalikan, contohnya: comboBox1, comboBox2, dll.

  • label Digunakan untuk menetapkan tajuk kawalan.

  • Penerangan Penerangan kawalan. Jika struktur JSON semasa adalah elemen dalam nilai medan (struktur array) medan kumpulan, dan medan label tidak ditetapkan, penerangan adalah tajuk kawalan dalam kotak pop-up yang muncul selepas butang bar status diklik.

  • lalai Nilai lalai kawalan.

  • penapis Pemilih, digunakan untuk menyembunyikan kawalan. Tidak menetapkan medan ini bermaksud tidak menapis (menampilkan kawalan); apabila medan ini ditetapkan, tidak menapis (menampilkan kawalan) berlaku apabila ungkapan itu benar. Apabila ungkapan itu salah, penapis berlaku (tidak menunjukkan kawalan)

  • kumpulan Digunakan untuk mengawal pengumpulan kawalan, yang boleh dilipat.

  • tetapan Konfigurasi komponen, kawalan mempunyai pelbagai pilihan UI, gunakan pilihan ini untuk membuat tetapan tertentu.

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

    tetapan: setting.required: sama ada ia diperlukan. setings.disabled: sama ada untuk melumpuhkan. setings.min: Sah apabila type=number, menunjukkan nilai minimum atau panjang minimum rentetan. setings.max: Sah apabila type=number, menunjukkan nilai maksimum atau panjang maksimum rentetan. setings.step: Sah apabila type=number dan render=slider, menunjukkan panjang langkah. setings.multiple: Sah apabila type= dipilih, menunjukkan bahawa pelbagai pilihan disokong. setings.customizable: Ia sah apabila type= dipilih, menunjukkan bahawa penyesuaian disokong; pengguna boleh mengedit dan menambah pilihan baru secara langsung dalam kawalan kotak drop-down. Jika pilihan yang baru diedit dipilih, nama pilihan digunakan dan bukannya nilai yang diwakili oleh pilihan apabila interaksi dicetuskan. setings.options: Sah apabila type= dipilih, menunjukkan format data pilihan pilihan: [option 1, option 2], [{name:xxx,value:0}, {name:xxx,value:1}]. setings.render: Jenis komponen rendering. Apabila type=number, settings.render tidak ditetapkan (kotak input nombor lalai), pilihan: slider (slider bar), tarikh (pemilih masa mengembalikan cap masa). Apabila type=string, settings.render tidak ditetapkan (kotak input baris tunggal lalai), pilihan: textarea (masukan pelbagai baris), tarikh (pemilih masa mengembalikan yyyy-MM-dd hh:mm:ss), warna (pemilih warna mengembalikan #FF00FF). Apabila type= dipilih, setings.render tidak ditetapkan (default drop-down box), pilihan: segmen (selector segmen). Apabila type=boolean, pada masa ini hanya kotak semak lalai.

input JSON Peraturaninputmedan mengkonfigurasi kawalan dalam kotak pop-up yang muncul selepas butang bar status dicetuskan dengan mengklik.groupdaninputadalah bahawa ia mengkonfigurasi sekumpulan kawalan.groupmempunyai struktur data yang sama denganinputSila rujuk penerangan di atasinput field.

kumpulan Array

Sokongan tetapan dua bahasa:

{
    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}

Pilihan carta

JSON ini digunakan untuk menetapkan maklumat konfigurasi carta fungsi lukisan tersuaiChart(). Perpustakaan carta yang digunakan adalah Highcharts. Hanya beberapa medan konfigurasi asas disenaraikan di sini.

Lapangan pelanjutan platform. Tetapkan ke benar untuk menggunakan carta Highstocks; tetapkan ke salah untuk menggunakan carta Highcharts.

__isStock senar

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

Pelancongan JSON Judul carta tajuk senar Konfigurasi paksi X. xAxis JSON Konfigurasi paksi Y. yAxis JSON Siri data carta. siri JSON

Contoh lukisan mudah:

// 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-pilihan

JSON ini digunakan untuk menetapkan maklumat konfigurasi carta fungsi lukisan tersuaiKLineChart. Hanya beberapa medan konfigurasi asas disenaraikan di sini.

Sama ada untuk menarik pada carta utama. penyambungan bool Konfigurasi paksi X. xAxis JSON Konfigurasi paksi Y. yAxis JSON Konfigurasi carta candlestick. lilin JSON

Sila rujukArtikel khas mengenai lukisan carta menggunakan fungsi KLineChart.

{@fun/Log/KLineChart KLineChart}

SetData-data

JSON digunakan untuk menetapkan data yang akan dimuatkan olehexchange.SetData()JSON data adalah struktur array, di mana setiap elemen juga array, iaitu[time, data].

Stempel masa data, menandakan masa data ini. masa nombor data adalah sekeping data yang sepadan dengan masa tertentu dalam data dimuatkan olehexchange.SetData()Apabila strategi dijalankan,exchange.GetData()fungsi mendapat data dengan timestamp yang sepadan mengikut masa semasa.

data rentetan, nombor, bool, objek, array, dll.

Contoh memuatkan data dalam sistem backtesting dan mendapatkan data apabila 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()pemantau fungsi: 1. sebarang peristiwa data yang boleh dibaca WebSocket; 2. peristiwa penyelesaian tugas serentak dengan fungsi exchange.Go() dan HttpQuery_Go(); 3. peristiwa mesej yang dihantar dalam benang yang dicipta olehthreading.Thread()fungsi dalam strategi bahasa JavaScript.

Nombor urutan peristiwa. Seq nombor Nama acara. Acara senar ID benang acara. ThreadId nombor Indeks peristiwa. Indeks nombor Stempel masa nano. Nano nombor

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

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

Dalam benang yang dijalankan secara serentak strategi bahasa JavaScript (dicipta olehthreading.Thread()fungsi), apabilapostMessage()fungsi objek benang digunakan untuk menghantar mesej,EventLoop()fungsi dalam utas yang menerima mesej 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; ia juga dikembalikan apabila menjalankan arahan SQL menggunakanexec()kaedah objek yang dicipta olehDial() function.

Nama lajur data yang akan ditanyakan, array rentetan. Kolom Array Data tertentu yang akan ditanyakan, di mana setiap data sepadan dengan nama lajur. Nilai medan nilai adalah array dua dimensi, di mana setiap elemen adalah array dan rekod data. nilai Array

Contoh data pertanyaan dalam pangkalan data:

{
    "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 ahlijoin()daripadaThreadobjek, yang menyimpan beberapa maklumat mengenai benang serentak dalamJavaScriptstrategi bahasa.Threadobjek merujuk kepada objek benang, yang dicipta olehthreading.Thread().

ID benang. id nombor Sama ada benang dipaksa untuk berakhir. tamat bool Masa berjalan benang dalam nanosegund. telah berlalu nombor Nilai pulangan fungsi benang. ret nombor

Kod berikut menguji mekanisme masa lapangjoin()FungsiThreadobjek dan mencetak nilai pulanganjoin() 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}
Pembiayaan Variabel terbina dalam