Diese JSON-Struktur wird verwendet, um die Parameter der HttpQuery-Funktion und der HttpQuery_Go-Funktion zum Senden der Http-Anfrage zu konfigurieren.
Anforderungsmethode, z. B.:GET
, POST
, usw.
Methode
String
Anforderungs-Body. Zum Beispiel kann in einer POST-Anfrage der Körper Formulardaten, JSON, Text usw. enthalten.
Körper
String
Kennzeichnung der Zeichenmengen. Zum Beispiel ist die Kennzeichnung von Textdaten im Textkörper wie folgt anzugeben:"UTF-8"
- Ich weiß.
Charset
String
Ein Cookie ist ein kleines Stück Daten, das zur Speicherung und zum Austausch von Zustandsinformationen zwischen einem Client (in der Regel einem Browser) und einem Server verwendet wird.
Keks
String
Verwendet zur Simulation des Browserabdrucks.
Profil
String
Wenn auf true gesetzt, gibt der HttpQuery-Funktionsaufruf die komplette Antwortnachricht zurück.
Debug
Boole
Die Anforderungshäupterinformationen bestehen in Form von Schlüssel-Wert-Paaren (JSON-Struktur) und werden zur Übertragung verschiedener Informationen wie Inhaltstyp, Authentifizierungsinformationen, Cache-Kontrolle usw. verwendet.
Überschriften
JSON-Daten
Einstellung von 1000 bedeutet eine Auszeit von 1 Sekunde.
Zeitverzögerung
Zahl
Beispiel für die Verwendung:
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)
}
Die HTTP-Nachricht, die gesendet wird, wenn der obige Code ausgeführt wird:
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
Das ist eine sehr schwierige Aufgabe.
Diese JSON-Struktur ist die Datenstruktur, die von der HttpQuery-Funktion im Debug-Modus zurückgegeben wird, wenn das Debug-Feld in deroptions
Strukturparameter stimmt.
HTTP-Statuscode Statuscode Zahl Anfordern Sie Headerinformationen. Überschrift JSON-Daten Informationen über Cookies. Cookies Reihenfolge Die vollständigen Pfadinformationen des Antrags. Spuren JSON-Daten Nachrichtenlänge Längen Zahl Inhalt der Nachricht. Körper String
Ein Beispiel für die zurückgegebene JSON-Datenstruktur ist:
{
"StatusCode": 302,
"Header": {
"Content-Type": ["text/html"],
// ...
},
"Cookies": [{
// ...
}],
"Trace": {},
"Length": 154,
"Body": "..."
}
Das ist eine sehr schwierige Aufgabe.
Diese JSON-Struktur wird zur Konfiguration des in der Strategie-Statusleiste angezeigten Tabelleninhalts verwendet.
Wird verwendet, um den Typ der Benutzeroberfläche und der zu analysierenden und anzuzeigenden Steuerelemente festzulegen.table
- Ich weiß.
Typ
String
Verwendet, um den Titel der Statusleiste zu setzen.
Titel
String
Verwendet, um die Spaltenbezeichnungen der Statusleiste zu setzen. Das erste Element des Arrays ist der Titel der ersten Spalte und so weiter.
Kälber
Reihenfolge
Das erste Element des Reihenarrays (zweidimensionales Array) ist ebenfalls eine Arraystruktur. Die Länge dieser Arraystruktur sollte mit der Anzahl der Tabellenspalten (die Elemente in der Arraystruktur entsprechen den Tabellenspaltennamen einzeln) übereinstimmen, d. h. die erste Datenzeile in der Tabelle.
Zeilen
Reihenfolge
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) + "`")
}
Ich bin nicht derjenige, der dich anspricht.
Diese JSON-Struktur wird zur Konfiguration der Tastenkontrolle in der Statusleiste verwendet. Die Tastenkontrolle JSON-Struktur kann in die Statusleiste JSON-Struktur eingebettet werden. Diese Struktur ist eine alte Version-Struktur, und die Plattform ist immer noch kompatibel. Es wird empfohlen, die neueste Version der Tasten-JSON-Struktur zu verwenden. Beispiel für die Konstruktion eines Statusleiste-Buttons (nach Auslösung und Klicken des Buttons enthält das Pop-up-Boxen eine einzige Eingabe-Steuerung, die über das Eingabefeld konstruiert wird):
{
"type": "button",
"cmd": "open",
"name": "opening a position",
"input": {
"name": "number of opening positions",
"type": "number",
"defValue": 1
}
}
Die Steuerelemente im Pop-up-Feld, die durch Klicken auf die Statusleiste ausgelöst werden, werden durchinput
odergroup
.
Bei Tastensteuerungen ist die feste Einstellung:button
- Ich weiß.
Typ
String
Einstellungen des Tastentyps
Klasse
String
Der Text auf der Tastensteuerung, das heißt der Tastenname.
Name
String
Der interaktive Befehlsinhalt, der an die Strategie gesendet wird, wenn die Tastensteuerung einen Klick auslöst.
cmd
String
Beschreibung der Tastensteuerung. Die Beschreibung wird angezeigt, wenn die Maus auf die Taste in der Statusleiste gesetzt wird.
Beschreibung
String
Setzt die Taste auf deaktiviert (true) / aktiviert (false).
Behindert
Boole
Bei der Konstruktion einer Statusleiste-Taste für die Interaktion wird auch die Dateneingabe unterstützt.GetCommand()
Funktion.input
Element in die JSON-Datenstruktur des Buttons im Statusleiste, um das Eingabeauftrag in dem Popup-Boxen zu konfigurieren, das bei Auslösung des Buttons angezeigt wird.
Zum Beispiel, um den Wert derinput
Feld:
{
"name": "Number of opening positions",
"type": "number",
"defValue": 1,
"description": "test",
}
Beschreibung jedes Felds in der obigen JSON-Struktur:
"number"
: numerische Eingabe."string"
: Steuerelemente für die String-Eingabe."selected"
- Ein Drop-Down-Controller."boolean"
Schalten Sie die Steuerung ein."input": {"name": "Opening quantity", "type": "selected", "defValue": "A|B|C"}
, wird die Textbeschreibung der Dropdown-Fensteroptionen auf A, B, C gesetzt.Für die Felder, die durch die Dropdown-Box-Typsteuerung erweitert werden:
{text: "description", value: "value"}
Verwenden Sie das Feld defValue, um die Standardoption festzulegen, die mehrere Auswahlen sein kann.Eingabe
JSON-Daten
Dieinput
Feld konfiguriert ein Steuerelement im Pop-up-Box, die nach dem Klick auf die Statusleiste-Taste ausgelöst wird, erscheint.group
undinput
Die Elemente ingroup
die gleiche Datenstruktur haben wie dieinput
Siehe die entsprechende Beschreibung desinput
field.
Gruppe Reihenfolge
Ein Beispiel fürclass
Wert der JSON-Struktur einer Taste in der Statusleiste:
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) + "`")
}
Beispiel für die Verwendung dergroup
Feld mit derinput
Feld:
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)
}
}
Ich bin nicht derjenige, der dich anspricht.
Diese JSON-Struktur wird zur Konfiguration der Tastensteuerung in der Statusleiste verwendet. Beispiel für die Konstruktion eines Statusleiste-Buttons (nach Auslösung und Anklicken des Buttons enthält das Popup-Box mehrere Eingabe-Steuerelemente, die über das Gruppenfeld konstruiert werden):
{
"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,
}
}],
}
Die Steuerelemente im Pop-up-Feld, die durch Klicken auf die Statusleiste ausgelöst werden, werden durchinput
odergroup
.
Bei Tastensteuerungen ist die feste Einstellung:button
- Ich weiß.
Typ
String
Der Text auf der Tastensteuerung, das heißt der Tastenname.
Name
String
Der interaktive Befehlsinhalt, der an die Strategie gesendet wird, wenn die Tastensteuerung einen Klick auslöst.
cmd
String
Bei der Konstruktion einer Statusleiste-Taste für die Interaktion wird auch die Dateneingabe unterstützt.GetCommand()
Funktion.input
Element in die JSON-Datenstruktur des Buttons im Statusleiste, um das Eingabeauftrag in dem Popup-Boxen zu konfigurieren, das bei Auslösung des Buttons angezeigt wird.
Im Vergleich zur alten Version der Eingabestruktur hat die neue Version einige neue Felder und Änderungen:
{
"type": "selected",
"name": "test",
"label": "topic",
"description": "desc",
"default": 1,
"filter": "a>1",
"group": "group1",
"settings": { ... }, // Component configuration
}
Beschreibung und Erläuterung jedes Felds in der obigen JSON-Struktur:
Typ
Steuerungstyp (Pflichtfeld) unterstützt folgende Einstellungen:"number"
numerische Eingabebox,"string"
String-Eingabebox,"selected"
eine Drop-down-Box,"boolean"
Schalten Sie die Steuerung um.
Name Wenn die aktuelle JSON-Struktur der Feldwert des Eingabefeldes ist, ist Name, wenn das Etikettfeld nicht eingestellt ist, der Steuertitel im Popup-Feld, das nach dem Klicken auf die Statusleiste angezeigt wird. Wenn die aktuelle JSON-Struktur ein Element im Feldwert (Array-Struktur) des Gruppenfeldes ist, wird Name nicht als Steuerungsbezeichnung verwendet. Das Name-Feld wird verwendet, um den Feldnamen des Steuereingabeinhalts anzugeben. Zum Beispiel wird ein Auszug aus dem Gruppenfeld als Illustration verwendet:
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"}]
}
]
}
Wenn die Statusleiste eine Interaktion auslöst, erscheint ein Pop-up-Box mit 4 Steuerelementen, die alle Dropdown-Box-Steuerelementen sind.cmdTestBtn3:{"comboBox1":1,"comboBox2":0,"comboBox3":[0,2],"comboBox4":["A","C"]}
- Ich weiß.
Der Name-Wert in der JSON-Struktur wird als Feldname der zurückgegebenen interaktiven Informationen verwendet, z. B.: comboBox1, comboBox2 usw.
Etikett Wird verwendet, um den Titel der Steuerung festzulegen.
Beschreibung Beschreibung des Steuerelements: Wenn die aktuelle JSON-Struktur ein Element im Feldwert (Array-Struktur) des Gruppenfeldes ist und das Etikettfeld nicht eingestellt ist, ist die Beschreibung der Steuertitel im Pop-up-Feld, der nach dem Klicken auf die Statusleiste angezeigt wird.
Standard Der Standardwert der Steuerung.
Filter Auswählvorrichtung, verwendet zum Verbergen von Steuerelementen. Wenn dieses Feld nicht eingestellt wird, wird kein Filtern (Anzeigen von Steuerelementen) durchgeführt; wenn dieses Feld eingestellt ist, erfolgt kein Filtern (Anzeigen von Steuerelementen), wenn der Ausdruck wahr ist. Wenn der Ausdruck falsch ist, erfolgt ein Filtern (kein Anzeigen von Steuerelementen)
Gruppe Verwendet zur Steuerung der Gruppierung von Kontrollen, die gefaltet werden können.
Einstellungen Komponentenkonfiguration, die Steuerung verfügt über eine Vielzahl von Benutzeroberflächenoptionen, verwenden Sie diese Option, um bestimmte Einstellungen vorzunehmen.
settings:{
multiple:true,
customizable:true,
options:[{name:'xxx|yyy',value:0}]
}
Einstellungen:
Einstellungen erforderlich: Ob erforderlich.
Einstellungen.deaktiviert: Deaktivieren.
settings.min: Gültig, wenn type=number, der Mindestwert oder die Mindestlänge einer Zeichenfolge angibt.
settings.max: Gültig, wenn type=number, wobei der maximale Wert oder die maximale Länge einer Zeichenfolge angegeben wird.
Einstellungen.Schritt: Gültig bei type=number und render=slider, wobei die Schrittlänge angegeben wird.
settings.multiple: Gültig, wenn type= ausgewählt ist, was anzeigt, dass mehrere Auswahlmöglichkeiten unterstützt werden.
settings.customizable: Es ist gültig, wenn type= ausgewählt ist, was anzeigt, dass die Anpassung unterstützt wird; Benutzer können direkt neue Optionen in der Dropdown-Fenstersteuerung bearbeiten und hinzufügen. Wenn die neu bearbeitete Option ausgewählt ist, wird der Name der Option anstelle des Wertes verwendet, der durch die Option dargestellt wird, wenn die Interaktion ausgelöst wird.
Einstellungen.Optionen: Gültig, wenn type= ausgewählt ist, wobei das Datenformat der Auswahloption angegeben wird: [
Eingabe
JSON-Daten
Dieinput
Feld konfiguriert ein Steuerelement im Pop-up-Box, die nach dem Klick auf die Statusleiste-Taste ausgelöst wird, erscheint.group
undinput
Die Elemente ingroup
die gleiche Datenstruktur haben wie dieinput
Feldwert. Bitte beachten Sie die obige Beschreibung desinput
field.
Gruppe Reihenfolge
Unterstützung von zweisprachigen Einstellungen:
{
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}]
}
}
Ich bin nicht derjenige, der dich anspricht.
Diese JSON wird verwendet, um die Chartkonfigurationsinformationen der benutzerdefinierten Zeichnungsfunktion festzulegenChart()
. Die verwendete Diagrammbibliothek ist Highcharts. Hier sind nur wenige grundlegende Konfigurationsfelder aufgeführt.
Plattform-Erweiterungsfeld. Setzen Sie auf wahr, um Highstocks-Charts zu verwenden; Setzen Sie auf falsch, um Highcharts-Charts zu verwenden.
__isBestand String
{
layout: 'single', // Not participating in grouping, displayed separately, default is group 'group'
height: 300, // Specify height
}
Verlängerung JSON-Daten Titel der Tabelle Titel String X-Achsenkonfiguration. xAchse JSON-Daten Y-Achsenkonfiguration. yAchse JSON-Daten Datenreihe für Diagramme. Reihe JSON-Daten
Ein einfaches Zeichnungsbeispiel:
// 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)
}
}
Ich habe dich nicht gesehen.
Diese JSON wird verwendet, um die Chartkonfigurationsinformationen der benutzerdefinierten Zeichnungsfunktion festzulegenKLineChart
Hier sind nur einige wenige grundlegende Konfigurationsfelder aufgeführt.
Ob auf der Hauptkarte zu zeichnen. Überlagerung Boole X-Achsenkonfiguration. xAchse JSON-Daten Y-Achsenkonfiguration. yAchse JSON-Daten Lustkartenkonfiguration. Kerze JSON-Daten
SieheSonderartikel über das Zeichnen von Diagrammen mit der KLineChart-Funktion.
Ich bin nicht derjenige, der das Problem hat.
JSON wird verwendet, um die von derexchange.SetData()
Die JSON-Daten sind eine Arraystruktur, in der jedes Element auch ein Array ist, nämlich[time, data]
.
Der Zeitstempel der Daten, der den Zeitpunkt dieser Daten kennzeichnet.
Zeit
Zahl
Daten ist ein Stück Daten, das einer bestimmten Zeit in den von derexchange.SetData()
Die Strategie ist in der Lage, dieexchange.GetData()
Funktion erhält die Daten mit dem entsprechenden Zeitstempel entsprechend der aktuellen Zeit.
Daten String, Zahl, bool, Objekt, Array usw.
Ein Beispiel für das Laden von Daten im Backtesting-System und das Abrufen von Daten, wenn der Strategie-Backtest ausgeführt wird:
/*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)
}
}
Das ist nicht nur ein Spiel, sondern auch ein Spiel.
Diese JSON ist die Datenstruktur, die von derEventLoop()
DieEventLoop()
Funktionsmonitore: 1. Jedes von WebSocket lesbare Datenereignis; 2. Aufgabenvollendungsereignisse gleichzeitig mit den Exchange.Go() und HttpQuery_Go() Funktionen; 3. Nachrichtenereignisse, die in Threads gesendet werden, die von derthreading.Thread()
Funktion in der JavaScript-Sprachstrategie.
Ereignisfolgenummer. Nachfolgend Zahl Name der Veranstaltung. Ereignis String Ereignis-Thread-ID. Schnüren Zahl Ereignisindex. Index Zahl Nanozeitstempel. Nano Zahl
Verwendenexchange.Go()
Funktion, um gleichzeitige Anfragen zu stellen und die Ereignisdatenstruktur, die von derEventLoop()
function.
{
"Seq":1,
"Event":"Exchange_GetTrades",
"ThreadId":0,
"Index":3,
"Nano":1682068771309583400
}
In dem gleichzeitig ausgeführten Thread der JavaScript-Sprachstrategie (erstellt von derthreading.Thread()
Funktion), wenn diepostMessage()
Funktion des Thread-Objekts verwendet wird, um eine Nachricht zu senden, dieEventLoop()
Die Funktion im Thread, der die Nachricht empfängt, überwacht die folgende Ereignisdatenstruktur:
{
"Seq":4,
"Event":"thread",
"ThreadId":1,
"Index":0,
"Nano":1727592066508674000
}
Ich bin nicht derjenige, der dich anspricht.
Diese JSON ist die Datenstruktur, die von derDBExec()
Funktion; es wird auch zurückgegeben, wenn eine SQL-Anweisung mit derexec()
Verfahren des durch dieDial()
function.
Die Spaltennamen der zu abfragenden Daten, ein String-Array. Spalten Reihenfolge Die spezifischen zu abfragenden Daten, bei denen jedes Datenstück einem Spaltennamen entspricht. Der Wert des Wertefeldes ist ein zweidimensionaler Array, bei dem jedes Element ein Array und ein Dateneintrag ist. Werte Reihenfolge
Beispiel für Abfragen in der Datenbank:
{
"columns":["TS","HIGH","OPEN","LOW","CLOSE","VOLUME"],
"values":[
[1518970320000,100,99.1,90,100,12345.6],
[1518960320000,100,99.1,90,100,12345.6]
]
}
Ich bin nicht derjenige, der dich anspricht.
Diese JSON ist die Datenstruktur, die von der Mitgliederfunktion zurückgegeben wirdjoin()
derThread
Objekt, das einige Informationen über gleichzeitige Threads in derJavaScript
Die SprachstrategieThread
Objekt bezieht sich auf das Thread-Objekt, das durchthreading.Thread()
.
- Das ist Thread-ID. Identifizierung Zahl Ob der Faden zum Ende gezwungen wird. beendet Boole Die Laufzeit des Faden in Nanosekunden. abgelaufen Zahl Der Rückgabewert der Threadfunktion. Verzögerung Zahl
Der folgende Code prüft den Timeout-Mechanismus derjoin()
Funktion derThread
Objekt und druckt den Wert derjoin()
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}
Finanzierung
Eingebettete Variablen