Cấu trúc JSON này được sử dụng để cấu hình các tham số của hàm HttpQuery và hàm HttpQuery_Go để gửi yêu cầu Http.
Phương pháp yêu cầu, ví dụ:GET
, POST
, vv
phương pháp
chuỗi
Ví dụ, trong một yêu cầu POST, cơ thể có thể chứa dữ liệu biểu mẫu, JSON, văn bản, v.v.
cơ thể
chuỗi
Mã hóa tập hợp ký tự. Ví dụ, chỉ định mã hóa dữ liệu văn bản trong phần chính là:"UTF-8"
.
Charset
chuỗi
Cookie là một phần nhỏ dữ liệu được sử dụng để lưu trữ và trao đổi thông tin trạng thái giữa một khách hàng (thường là trình duyệt) và một máy chủ.
bánh quy
chuỗi
Được sử dụng để mô phỏng dấu vân tay của trình duyệt.
hồ sơ
chuỗi
Khi được đặt thành true, cuộc gọi hàm HttpQuery trả về thông điệp phản hồi hoàn chỉnh. Khi được đặt thành false, chỉ có dữ liệu trong thư phản hồi Body được trả về.
debug
bool
Thông tin tiêu đề yêu cầu tồn tại dưới dạng cặp giá trị khóa (cấu trúc JSON) và được sử dụng để truyền thông tin khác nhau, chẳng hạn như loại nội dung, thông tin xác thực, kiểm soát bộ nhớ cache, v.v.
tiêu đề
JSON
Đặt 1000 nghĩa là thời gian nghỉ 1 giây.
thời gian nghỉ
số
Ví dụ sử dụng:
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)
}
Thông điệp http được gửi khi mã trên được thực thi:
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}
Cấu trúc JSON này là cấu trúc dữ liệu được trả về bởi hàm HttpQuery trong chế độ debug khi trường debug trongoptions
Các thông số cấu trúc là đúng.
Mã trạng thái http Mã trạng thái số Yêu cầu thông tin tiêu đề. Tiêu đề JSON Thông tin về cookie. Cookie mảng Thông tin đường dẫn đầy đủ của yêu cầu. Hồ sơ JSON Chiều dài tin nhắn Chiều dài số Nội dung tin nhắn. Cơ thể chuỗi
Một ví dụ về cấu trúc dữ liệu JSON được trả về là:
{
"StatusCode": 302,
"Header": {
"Content-Type": ["text/html"],
// ...
},
"Cookies": [{
// ...
}],
"Trace": {},
"Length": 154,
"Body": "..."
}
{@fun/Global/HttpQuery HttpQuery}, {@fun/Global/HttpQuery_Go HttpQuery_Go}
Cấu trúc JSON này được sử dụng để cấu hình nội dung bảng được hiển thị trong thanh trạng thái chiến lược.
Sử dụng để thiết lập loại giao diện người dùng và điều khiển để phân tích và hiển thị. Đối với bảng thanh trạng thái, nó được thiết lập cố định là:table
.
loại
chuỗi
Sử dụng để đặt tiêu đề của bảng thanh trạng thái.
tiêu đề
chuỗi
Được sử dụng để đặt tiêu đề cột của bảng thanh trạng thái.
bông
mảng
Được sử dụng để thiết lập dữ liệu hàng của bảng thanh trạng thái. Đơn vị đầu tiên của mảng hàng (mảng hai chiều) cũng là một cấu trúc mảng. Chiều dài của cấu trúc mảng này nên phù hợp với số cột bảng (các yếu tố trong cấu trúc mảng tương ứng với tên cột bảng một lần một), tức là hàng đầu tiên của dữ liệu trong bảng.
hàng
mảng
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}
Cấu trúc JSON này được sử dụng để cấu hình điều khiển nút trong thanh trạng thái. Cấu trúc JSON điều khiển nút có thể được nhúng vào cấu trúc bảng JSON thanh trạng thái. Cấu trúc này là một cấu trúc phiên bản cũ, và nền tảng vẫn tương thích. Ví dụ về việc xây dựng điều khiển nút thanh trạng thái (sau khi nút được kích hoạt và nhấp, hộp bật lên chứa một điều khiển đầu vào duy nhất, được xây dựng thông qua trường đầu vào):
{
"type": "button",
"cmd": "open",
"name": "opening a position",
"input": {
"name": "number of opening positions",
"type": "number",
"defValue": 1
}
}
Các điều khiển trong hộp bật lên được kích hoạt bằng cách nhấp vào nút thanh trạng thái điều khiển được thiết lập thông quainput
hoặcgroup
.
Đối với các điều khiển nút, cài đặt cố định là:button
.
loại
chuỗi
Cài đặt kiểu nút
lớp học
chuỗi
Văn bản trên nút điều khiển, nghĩa là tên nút.
tên
chuỗi
Nội dung lệnh tương tác được gửi đến chiến lược khi điều khiển nút kích hoạt một hoạt động nhấp chuột.
cmd
chuỗi
Mô tả của nút điều khiển. Mô tả được hiển thị khi chuột được đặt trên nút trong thanh trạng thái.
mô tả
chuỗi
Thiết lập nút tắt (true) / bật (false).
tàn tật
bool
Khi xây dựng một nút thanh trạng thái cho tương tác, nhập dữ liệu cũng được hỗ trợ.GetCommand()
thêm cácinput
mục vào cấu trúc dữ liệu JSON của điều khiển nút trong thanh trạng thái để cấu hình điều khiển đầu vào trong hộp bật lên được hiển thị khi nút được kích hoạt.
Ví dụ, để thiết lập giá trị củainput
trường:
{
"name": "Number of opening positions",
"type": "number",
"defValue": 1,
"description": "test",
}
Mô tả của mỗi trường trong cấu trúc JSON trên:
"number"
: điều khiển đầu vào số."string"
: điều khiển đầu vào chuỗi."selected"
: điều khiển hộp thả xuống."boolean"
Đổi điều khiển."input": {"name": "Opening quantity", "type": "selected", "defValue": "A|B|C"}
, mô tả văn bản của các tùy chọn hộp thả xuống được đặt là A, B, C.Đối với các trường được mở rộng bởi điều khiển loại hộp thả xuống:
{text: "description", value: "value"}
Sử dụng trường defValue để đặt tùy chọn mặc định, có thể là nhiều lựa chọn.đầu vào
JSON
Cácinput
field cấu hình một điều khiển trong hộp pop-up xuất hiện sau khi nút thanh trạng thái được kích hoạt bằng cách nhấp vào.group
vàinput
là nó cấu hình một nhóm các điều khiển.group
có cùng cấu trúc dữ liệu nhưinput
Vui lòng tham khảo mô tả liên quan củainput
field.
nhóm mảng
Một ví dụ vềclass
giá trị của cấu trúc JSON của nút trong thanh trạng thái:
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) + "`")
}
Ví dụ sử dụnggroup
lĩnh vực vớiinput
trường:
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}
Cấu trúc JSON này được sử dụng để cấu hình điều khiển nút trong thanh trạng thái. Cấu trúc JSON điều khiển nút có thể được nhúng trong cấu trúc bảng JSON thanh trạng thái. Phiên bản mới nhất của cấu trúc JSON nút. Ví dụ về việc xây dựng một nút điều khiển thanh trạng thái (sau khi nút được kích hoạt và nhấp vào, hộp bật lên chứa nhiều điều khiển đầu vào, được xây dựng thông qua trường nhóm):
{
"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,
}
}],
}
Các điều khiển trong hộp bật lên được kích hoạt bằng cách nhấp vào nút thanh trạng thái điều khiển được thiết lập thông quainput
hoặcgroup
.
Đối với các điều khiển nút, cài đặt cố định là:button
.
loại
chuỗi
Văn bản trên nút điều khiển, nghĩa là tên nút.
tên
chuỗi
Nội dung lệnh tương tác được gửi đến chiến lược khi điều khiển nút kích hoạt một hoạt động nhấp chuột.
cmd
chuỗi
Khi xây dựng một nút thanh trạng thái cho tương tác, nhập dữ liệu cũng được hỗ trợ.GetCommand()
thêm cácinput
mục vào cấu trúc dữ liệu JSON của điều khiển nút trong thanh trạng thái để cấu hình điều khiển đầu vào trong hộp bật lên được hiển thị khi nút được kích hoạt.
So với phiên bản cũ của cấu trúc đầu vào, phiên bản mới có một số trường mới và thay đổi:
{
"type": "selected",
"name": "test",
"label": "topic",
"description": "desc",
"default": 1,
"filter": "a>1",
"group": "group1",
"settings": { ... }, // Component configuration
}
Mô tả và giải thích của mỗi trường trong cấu trúc JSON trên:
loại
Loại điều khiển (quảng trường bắt buộc), hỗ trợ các cài đặt sau:"number"
hộp đầu vào số,"string"
hộp đầu vào chuỗi,"selected"
hộp thả xuống,"boolean"
Chuyển điều khiển.
tên Nếu cấu trúc JSON hiện tại là giá trị trường của trường đầu vào, khi trường nhãn không được đặt, tên là tiêu đề điều khiển trong hộp bật lên xuất hiện sau khi nhấp vào nút thanh trạng thái. Nếu cấu trúc JSON hiện tại là một phần tử trong giá trị trường (cấu trúc mảng) của trường nhóm, tên không được sử dụng làm tiêu đề điều khiển.
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"}]
}
]
}
Theo đoạn trích này, nếu nút thanh trạng thái kích hoạt tương tác, một hộp pop-up sẽ bật lên với 4 điều khiển, tất cả đều là các điều khiển hộp thả xuống. Sau khi thiết lập các tùy chọn cho mỗi điều khiển và nhấp OK để gửi thông báo tương tác, hàm GetCommand trong chiến lược sẽ nhậncmdTestBtn3:{"comboBox1":1,"comboBox2":0,"comboBox3":[0,2],"comboBox4":["A","C"]}
.
Giá trị của tên trong cấu trúc JSON được sử dụng như tên trường của thông tin tương tác được trả về, ví dụ: comboBox1, comboBox2, v.v.
nhãn Sử dụng để đặt tiêu đề của điều khiển.
mô tả Mô tả điều khiển: Nếu cấu trúc JSON hiện tại là một phần tử trong giá trị trường (cấu trúc mảng) của trường nhóm, và trường nhãn không được đặt, mô tả là tiêu đề điều khiển trong hộp bật lên xuất hiện sau khi nhấp vào nút thanh trạng thái.
mặc định Giá trị mặc định của điều khiển.
bộ lọc Selector, được sử dụng để ẩn các điều khiển. Không đặt trường này có nghĩa là không lọc (hiển thị các điều khiển); khi trường này được đặt, không lọc (hiển thị các điều khiển) xảy ra khi biểu thức là đúng. Khi biểu thức là sai, lọc xảy ra (không hiển thị các điều khiển)
nhóm Được sử dụng để điều khiển nhóm các điều khiển, có thể được gấp.
cài đặt Cấu hình thành phần, điều khiển có một loạt các tùy chọn UI, sử dụng tùy chọn này để thực hiện các thiết lập cụ thể. Ví dụ:
settings:{
multiple:true,
customizable:true,
options:[{name:'xxx|yyy',value:0}]
}
cài đặt:
settings.required: Có cần thiết hay không.
settings.disabled: Cho dù để vô hiệu hóa.
settings.min: Valid when type=number, chỉ ra giá trị tối thiểu hoặc chiều dài tối thiểu của một chuỗi.
settings.max: Có hiệu lực khi type=number, chỉ ra giá trị tối đa hoặc chiều dài tối đa của chuỗi.
settings.step: Có hiệu lực khi type=number và render=slider, chỉ ra chiều dài bước.
settings.multiple: Valid when type=selected, indicating that multiple selections are supported: hợp lệ khi type= được chọn, cho thấy hỗ trợ nhiều lựa chọn.
settings.customizable: Nó có giá trị khi type= được chọn, cho thấy tùy chỉnh được hỗ trợ; người dùng có thể trực tiếp chỉnh sửa và thêm các tùy chọn mới trong điều khiển hộp thả xuống. Nếu tùy chọn mới được chỉnh sửa được chọn, tên của tùy chọn được sử dụng thay vì giá trị đại diện cho tùy chọn khi tương tác được kích hoạt.
settings.options: Valid when type=selected, indicating the selector option data format: [
đầu vào
JSON
Cácinput
field cấu hình một điều khiển trong hộp pop-up xuất hiện sau khi nút thanh trạng thái được kích hoạt bằng cách nhấp vào.group
vàinput
là nó cấu hình một nhóm các điều khiển.group
có cùng cấu trúc dữ liệu nhưinput
Vui lòng tham khảo mô tả ở trên củainput
field.
nhóm mảng
Hỗ trợ cài đặt song ngữ:
{
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}
JSON này được sử dụng để thiết lập thông tin cấu hình biểu đồ của chức năng vẽ tùy chỉnhChart()
. Thư viện biểu đồ được sử dụng là Highcharts. Chỉ có một vài trường cấu hình cơ bản được liệt kê ở đây.
Trường mở rộng nền tảng. Đặt thành true để sử dụng biểu đồ Highstocks; đặt thành false để sử dụng biểu đồ Highcharts.
__isStock chuỗi
{
layout: 'single', // Not participating in grouping, displayed separately, default is group 'group'
height: 300, // Specify height
}
gia hạn JSON Tên biểu đồ tiêu đề chuỗi Cấu hình trục X. XAxis JSON Cấu hình trục y. Trục y JSON Dòng dữ liệu biểu đồ. loạt JSON
Một ví dụ vẽ đơn giản:
// 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}
JSON này được sử dụng để thiết lập thông tin cấu hình biểu đồ của chức năng vẽ tùy chỉnhKLineChart
Chỉ một vài trường cấu hình cơ bản được liệt kê ở đây.
Có nên vẽ trên biểu đồ chính hay không. lớp phủ bool Cấu hình trục X. XAxis JSON Cấu hình trục y. Trục y JSON Cấu hình biểu đồ nến. nến JSON
Xin tham khảo:Bài viết đặc biệt về vẽ biểu đồ bằng chức năng KLineChart.
{@fun/Log/KLineChart KLineChart}
JSON được sử dụng để thiết lập dữ liệu để được tải bởi cácexchange.SetData()
Dữ liệu JSON là một cấu trúc mảng, trong đó mỗi phần tử cũng là một mảng, cụ thể là[time, data]
.
Thời gian của dữ liệu, đánh dấu thời gian của dữ liệu này.
thời gian
số
dữ liệu là một mảnh dữ liệu tương ứng với một thời gian nhất định trong dữ liệu tải bởi cácexchange.SetData()
Khi chiến lược được thực hiện,exchange.GetData()
chức năng nhận được dữ liệu với dấu thời gian tương ứng theo thời gian hiện tại.
dữ liệu chuỗi, số, bool, đối tượng, mảng, vv
Một ví dụ về tải dữ liệu trong hệ thống backtesting và lấy dữ liệu khi backtest chiến lược đang chạy:
/*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}
JSON này là cấu trúc dữ liệu được trả về bởiEventLoop()
chức năng.EventLoop()
Các trình giám sát chức năng: 1. Bất kỳ sự kiện dữ liệu có thể đọc WebSocket nào; 2. Các sự kiện hoàn thành nhiệm vụ đồng thời với các chức năng exchange.Go (()) và HttpQuery_Go (()); 3. Các sự kiện tin nhắn được gửi trong các luồng được tạo ra bởithreading.Thread()
chức năng trong chiến lược ngôn ngữ JavaScript.
Số chuỗi sự kiện. Tiếp theo số Tên sự kiện. Sự kiện chuỗi ID chuỗi sự kiện. ThreadId số Chỉ số sự kiện. Chỉ số số Mẫu thời gian nano. Nano số
Sử dụngexchange.Go()
chức năng để thực hiện các yêu cầu đồng thời và cấu trúc dữ liệu sự kiện trả về bởi cácEventLoop()
function.
{
"Seq":1,
"Event":"Exchange_GetTrades",
"ThreadId":0,
"Index":3,
"Nano":1682068771309583400
}
Trong cùng một lúc thực thi chủ đề của chiến lược ngôn ngữ JavaScript (được tạo ra bởi cácthreading.Thread()
chức năng), khipostMessage()
chức năng của đối tượng thread được sử dụng để gửi một thông điệp,EventLoop()
chức năng trong chủ đề nhận tin nhắn sẽ theo dõi cấu trúc dữ liệu sự kiện sau:
{
"Seq":4,
"Event":"thread",
"ThreadId":1,
"Index":0,
"Nano":1727592066508674000
}
@fun/Global/EventLoop EventLoop
JSON này là cấu trúc dữ liệu được trả về bởiDBExec()
hàm; nó cũng được trả về khi thực thi một lệnh SQL sử dụngexec()
phương pháp của đối tượng được tạo ra bởiDial()
function.
Tên cột của dữ liệu được truy vấn, một mảng chuỗi. các cột mảng Các dữ liệu cụ thể được truy vấn, trong đó mỗi phần dữ liệu tương ứng với tên cột. Giá trị của trường giá trị là một mảng hai chiều, trong đó mỗi phần tử là một mảng và một bản ghi dữ liệu. giá trị mảng
Ví dụ về truy vấn dữ liệu trong cơ sở dữ liệu:
{
"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}
JSON này là cấu trúc dữ liệu được trả về bởi hàm thành viênjoin()
củaThread
object, mà lưu một số thông tin về các chủ đề đồng thời trongJavaScript
Chiến lược ngôn ngữThread
đối tượng đề cập đến đối tượng thread, được tạo ra bởithreading.Thread()
.
Thread ID. id số Cho dù sợi dây bị buộc phải kết thúc. kết thúc bool Thời gian chạy của sợi trong nano giây. đã qua số Giá trị trả về của hàm thread. rt số
Mã sau đây kiểm tra cơ chế thời gian củajoin()
chức năng củaThread
đối tượng và in giá trị trả về củajoin()
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}
Tài trợ
Các biến tích hợp