Die Ressourcen sind geladen. Beförderung...

Strukturen

Handel

Struktur der Marktgeschäftsunterlagen.

Die Markttransaktionsdatenbank ID oder, wenn die Börsenoberfläche keine ID enthält, einen Zeitstempel. Identifizierung String Millisekundenzeitstempel. Zeit Zahl Transaktionspreis. Preis Zahl Betrag der Transaktion. Betrag Zahl Der Bestelltyp ist unter {@var/ORDER_TYPE/ORDER_TYPE_BUY ORDER_TYPE_BUY}, {@var/ORDER_TYPE/ORDER_TYPE_SELL ORDER_TYPE_SELL} zu finden. Typ Zahl

Die Funktion exchange.GetTrades( gibt ein Array von Trade oder ein leeres Array zurück.

Ich bin nicht derjenige, der dich anspricht.

Tickern

Die Struktur des Marktes.

Die ursprünglichen Daten werden von der Austauschoberfläche zurückgegeben, kein solches Attribut ist für Backtesting verfügbar. Informationen Gegenstand DieSymbolFeld ist der vom FMZ-System definierte Handelssortencode.

  • Für das Spot-Börseobjekt ist das Format derSymbolFeldwert (beispielsweise) ist:BTC_USDT, das das Spothandelspaar BTC_USDT anzeigt.
  • Für den Objekt der Futures-Börse ist das Format derSymbolFeldwert (z. B.BTC_USDT.swap, der den USDT-Property-Perpetual-Vertrag für BTC darstellt.
  • Für Futures-Börsen ist das Format derSymbolFeldwert ist (z. B.:BTC_USDT.BTC-240108-40000-C, der einen Call-Option-Vertrag von BTC in USDT mit einem Ausübungstermin von 8. Januar 2024 und einem Ausübungspreis von 40.000 entspricht.

Symbol String Der höchste Preis, oder wenn die Börsenoberfläche keinen 24-Stunden-Höchsten Preis anbietet, dann verwenden Sie den Verkaufspreis zum Ausfüllen. Hoch Zahl Der niedrigste Preis, oder wenn die Börsenoberfläche keinen 24-Stunden-Nidrigsten Preis anbietet, dann verwenden Sie den Kaufpreis zum Ausfüllen. Niedrig Zahl Der aktuelle Moment verkauft einen Preis. Verkaufen Zahl Der aktuelle Moment kostet nur einen Preis. Kaufen Zahl Der letzte Transaktionspreis. Letzter Zahl Periodenöffnungspreis, wenn die Börsenoberfläche keinen 24-Stunden-rollenden Periodenöffnungspreis anbietet, wird der aktuelle Preis zur Ausfüllung verwendet. Geöffnet Zahl Der aktuelle Transaktionsbetrag ist grundsätzlich in Basiswährung und der Vertragsbetrag in Anzahl von Verträgen angegeben. Volumen Zahl Zeitstempel auf Millisekundenebene. Zeit Zahl Positionen, die meisten Austauschschnittstellen liefern diese Daten nicht und der Wert ist 0, wenn diese Daten nicht unterstützt werden. OpenInterest Zahl

Die Funktion exchange.GetTicker( gibt eine Ticker-Struktur zurück. Bei Optionsverträgen werden dieexchange.GetTicker()Da die Liquidität des Optionsmarktes in der Regel gering ist, gibt es oft keine ausstehenden Aufträge für den ersten Kauf oder ersten Verkauf.TickerStrukturfeldBuyoderSellist 0, wird eine Fehlermeldung ausgelöst.

Das ist ein sehr schwieriger Fall.

Aufzeichnung

Die Struktur der K-Line Bar, die Standard-OHLC-Struktur, wird zur Zeichnung von K-Linien und Indikatoren zur Berechnung und Analyse verwendet.

Zeitstempel auf Millisekundenebene für eine Datensatzstruktur, deren Time-Attributwert der Startzeitstempel der Periode dieser K-Linienleiste ist. Zeit Zahl Eröffnungspreis. Geöffnet Zahl Der höchste Preis. Hoch Zahl Der niedrigste Preis. Niedrig Zahl Schlusskurs. Schließen. Zahl Position Betrag, die meisten Austausch-Schnittstellen bieten diese Daten nicht, der Wert ist 0, wenn diese Daten nicht unterstützt werden. OpenInterest Zahl Transaktionsbetrag. Im Prinzip ist der Spot-Transaktionsbetrag in Basiswährung und der Vertragstransaktionsbetrag in Anzahl von Verträgen angegeben. Wenn die Börsenoberfläche keine solchen Daten liefert, werden sie mit den vorhandenen Daten der Börsenoberfläche ausgefüllt, z. B. der Transaktionsbetrag in QuoteWährung. Volumen Zahl

Die Exchange.GetRecords() Funktion gibt ein Array von Records oder ein leeres Array zurück. Jede Record-Struktur repräsentiert eine K-Zeile, also eine K-Zeile.

Ich bin nicht derjenige, der dich anspricht.

Aufordnung

Die Struktur der Ordnung.

Die ursprünglichen Daten der Exchange-Schnittstellenantwort sind für das Backtesting nicht verfügbar. Informationen Gegenstand DieSymbolDas Feld ist der von der FMZ-Plattform definierte Handelsproduktcode, dessen Format mit demSymbolFeld der {@struct/Ticker Ticker} Struktur.

  • Für Spot-Austauschobjekte ist das Format derSymbolFeldwert ist (z. B.:BTC_USDT, das das Spothandelspaar BTC_USDT anzeigt.
  • Für Futures-Börsen ist das Format derSymbolFeldwert ist (z. B.:BTC_USDT.swap, der den USDT-Standard-Perpetual Contract von BTC darstellt.

Symbol String Order Id, dieses Attribut besteht aus dem Austauschproduktcode und der Austausch-Originalorder-ID, getrennt durch englische Kommas.IdFormat des SpothandelspaaresETH_USDTDie Reihenfolge des OKX-Austauschs ist:ETH-USDT,1547130415509278720- Ich weiß. Identifizierung String Der Preis des Auftrags, beachten Sie, dass dieses Attribut bei Marktordern 0 oder -1 sein kann. Preis Zahl Die Anzahl der aufgegebenen Aufträge, beachten Sie, dass dieses Attribut einer Marktanordnung ein Betrag und keine Währung sein kann. Betrag Zahl Die Anzahl der Transaktionen, gegebenenfalls mit 0 versehen, wenn die Austauschoberfläche diese Daten nicht liefert. Umsatzbetrag Zahl Durchschnittlicher Transaktionspreis, beachten Sie, dass einige Börsen diese Daten nicht bereitstellen. Durchschnittlicher Preis Zahl Der Status der Bestellung ist unter {@var/ORDER_STATE/ORDER_STATE_PENDING ORDER_STATE_PENDING}, {@var/ORDER_STATE/ORDER_STATE_CLOSED ORDER_STATE_CLOSED}, {@var/ORDER_STATE/ORDER_STATE_CANCELED ORDER_STATE_CANCELED}, {@var/ORDER_STATE/ORDER_STATE_UNKNOWN OR_ORDER_STATE_UNKNOWN} zu finden. Status Zahl Der Bestelltyp ist unter {@var/ORDER_TYPE/ORDER_TYPE_BUY ORDER_TYPE_BUY}, {@var/ORDER_TYPE/ORDER_TYPE_SELL ORDER_TYPE_SELL} zu finden. Typ Zahl Für die Öffnungs- und Schließrichtung von Auftragsaufträgen sind {@var/ORDER_OFFSET/ORDER_OFFSET_OPEN ORDER_OFFSET_OPEN}, {@var/ORDER_OFFSET/ORDER_OFFSET_CLOSE ORDER_OFFSET_CLOSE} zu lesen. Ausgleich Zahl Dieses Attribut in Spotordnungen ist""In einer Auftragsbestellung ist dieses Attribut der spezifische Auftragscode. Vertragstyp String

DieOrderDie Bestellstruktur kann durch dieexchange.GetOrder()undexchange.GetOrders()Dieexchange.GetOrders()Funktion gibt ein Array derOrderWenn keine unvollendete Reihenfolge vorhanden ist, gibt es[], was ein leeres Array ist.StatusEigentum derOrderDie Reihenfolge kann direkt mit Konstanten wieORDER_STATE_PENDINGum festzustellen, ob sie gleich sind und somit den Auftragsstatus bestimmen.

Bei einem einseitigen Positionsmodus, wenn es unmöglich ist, festzustellen, ob es sich bei der Bestellung um eine Schließ- (Reduzierungs-) Bestellung handelt, wird dieOffsetFeld ist standardmäßig auf die Öffnungsrichtung gesetzt, d. h.ORDER_OFFSET_OPEN.

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

Bestellbuch

Auftragsstruktur in Markttiefe.

Preis. Preis Zahl - Wie viel? Betrag Zahl

Die Funktion GetDepth() gibt eine Datenstruktur zurück, in der die Attributwerte von Bids, Asks Arrays von OrderBook sind.

Ich habe eine Frage. Ich habe eine Frage.

Tiefe

Struktur der Markttiefe.

Das Sell Order Array, d.h. das OrderBook Array, wird nach Preis von niedrigstem bis höchstem sortiert, und die erste OrderBook-Struktur im Array hat den niedrigsten Preis. Er fragt. Reihenfolge Das Order-Array, d. h. das Order-Book-Array, wird nach Preis von höchstem bis niedrigstem sortiert, und die erste Order-Book-Struktur im Array hat den höchsten Preis. Angebote Reihenfolge Zeitstempel auf Millisekundenebene. Zeit Zahl

Die Exchange.GetDepth() Funktion gibt eine Depth-Struktur zurück.

Ich bin nicht derjenige, der das Problem hat, aber ich bin derjenige, der das Problem hat.

Abrechnung

Die Struktur der Kontoinformationen.

Die ursprünglichen Daten werden von der Austauschoberfläche zurückgegeben, kein solches Attribut ist für Backtesting verfügbar. Informationen Gegenstand Die Anzahl der verfügbaren Währungen, im Spot, wenn das Handelspaar BTC_USDT ist, bezieht sich der Saldo auf die Anzahl der derzeit verfügbaren USDT. Im U-Standard-Kontrakt bezieht sich der Saldo auf die Menge der verfügbaren Marge (USDT, QuoteCurrency). Ausgleichsbetrag Zahl Der Wert der eingefrorenen Vermögenswerte, wenn der Auftrag nicht ausgeführt wird. GefrorenBilanz Zahl Die Anzahl der verfügbaren Handelswährungen, im Spot, wenn das Handelspaar BTC_USDT ist, Stocks bezieht sich auf die Anzahl der derzeit verfügbaren BTC. Stocks bezieht sich auf die Anzahl der verfügbaren Marge (Währung, Basiswährung) in einem währungsbasierten Vertrag. Bestände Zahl Der Wert der eingefrorenen Vermögenswerte, wenn der Auftrag nicht ausgeführt wird. Gefrorene Lagerbestände Zahl Nur Futures-Börsen unterstützen dieses Feld.EquityDas Feld ist das Gesamtkapital der Futures-Konto-Marge unter der aktuellen Vertragsinstallation.

Eigenkapital Zahl Dieses Feld wird nur von Futures-Austauschobjekten unterstützt.UPnLFeld ist die Summe dernicht realisierter Gewinn und Verlustvon allen Positionen, die durch die Futures-Konto-Marge unter den aktuellen Vertragseinstellungen geöffnet wurden.

UPnL Zahl

Die Exchange.GetAccount-Funktion gibt eine Kontostruktur zurück. Die Daten in der zurückgegebenen Struktur hängen vom aktuell eingestellten Handelspaar ab.

Ich bin nicht derjenige, der dich anspricht.

Vermögenswerte

Die Struktur von Informationen über spezifische Währungsinstrumente.

Angabe der Wertpapier- und Wertpapierverbindlichkeiten, die für die Verwendung von Kryptowährungen verwendet werdenBTCkann genannt werdenXBTauf einigen Börsen. Währung String Verfügbare Währungssalden. Betrag Zahl Anzahl der eingefrorenen Vermögenswerte in der Währung. Gefrierter Betrag Zahl

DieFrozenAmountDer Anteil der Devisenvermögenswerte kann Vermögenswerte umfassen, die für nicht ausgeführte Aufträge und den für Futures-Positionen eingeschlossenen Marginanteil eingeschlossen sind.

Ich bin nicht derjenige, der das Problem hat, aber ich bin derjenige, der das Problem hat.

Position

Struktur der Informationen zur Vertragsposition.

Die ursprünglichen Daten werden von der Austauschoberfläche zurückgegeben, kein solches Attribut ist für Backtesting verfügbar. Informationen Gegenstand DieSymbolDas Feld ist der von der FMZ-Plattform definierte Handelsproduktcode, dessen Format mit demSymbolFeld der {@struct/Ticker Ticker} Struktur.

  • Für Spot-Austauschobjekte ist das Format derSymbolFeldwert ist (z. B.:BTC_USDT, das das Spothandelspaar BTC_USDT anzeigt.
  • Für Futures-Börsen ist das Format derSymbolFeldwert ist (z. B.:BTC_USDT.swap, der den USDT-Standard-Perpetual Contract von BTC darstellt.

Symbol String Größe der Positionsleiste, durch Berechnung ausgefüllt, wenn die Austauschoberfläche diese Daten nicht liefert, kann sie ungenau sein. Margin-Level Zahl Positiongröße, die in der Regel eine positive ganze Zahl (Anzahl der Vertragsnummern) darstellt. Betrag Zahl Positionsaufbewahrungsbetrag, die Anzahl der vorübergehend eingefrorenen Positionen, wenn die geschlossene Order nicht ausgeführt wird. Gefrierter Betrag Zahl Durchschnittlicher Kurs der Position, der grundsätzlich der durchschnittliche Preis der Position als Ganzes ist (bei der Abwicklung nicht beteiligt). Preis Zahl Der variable Gewinn/Verlust der Position ist grundsätzlich der nicht realisierte Gewinn/Verlust der Position, wenn die Daten nicht von der Börsenoberfläche bereitgestellt werden, werden sie mit anderen Gewinn/Verlustdaten der Börsenoberfläche ausgefüllt. Gewinn Zahl Die Position ist in der Regel in der Position, in der sie sich befindet, und in der Position, in der sie sich befindet. Typ Zahl Vertragskode, siehe die Beschreibung der Funktion {@fun/Futures/exchange.SetContractType exchange.SetContractType} für Einzelheiten. Vertragstyp String Die Marge der Position, ausgefüllt mit 0, wenn die Börsenoberfläche diese Daten nicht liefert. Marge Zahl

Die Funktion exchange.GetPositions( gibt ein Array von Positions oder ein leeres Array zurück. Für Kryptowährungs-Futures ist es wichtig zu beachten, dass das von der Exchange.GetPositions() Funktion zurückgegebene Position-Struktur-Array. Für die FrozenAmount-, Profit- und Margin-Attribute in der Positionsdatenstruktur können die von der Exchange bereitgestellten Daten, da die von der Exchange bereitgestellten Daten nicht einheitlich sind, die Definition der von dem Exchange-Objekt zurückgegebenen Daten unterschiedlich sein. Zum Beispiel haben einige Börsen keine Position-Freeze-Daten in den Positionsdaten, so dass die FrozenAmount 0 ist. Wenn Sie bestimmte Daten berechnen müssen, können Sie die ursprünglichen Daten im Info-Attribut zur Berechnung und Analyse verwenden.

Ich bin nicht derjenige.

Markt

Struktur der Marktinformationen über gehandelte Sorten.

Es werden Werte wie"btcusdt", dieSymbolDie Angabe des ursprünglichen Namens der an der Börse gehandelten Sorte wird in diesem Feld erfasst.SymbolFeld der {@struct/Ticker Ticker} Struktur. Symbol String Es werden Werte wie"BTC", dieBaseAssetDas Feld enthält den Namen der gehandelten Währung (d. h.: Basiswährung), die einheitlich groß geschrieben ist. Basisvermögen String Es werden Werte wie"USDT", dieQuoteAssetDas Feld enthält den Namen der lautenden Währung (z. B.: QuoteCurrency), die einheitlich groß geschrieben ist. Quotevermögen String Es werden Werte wie0.01, dieTickSizeDas Feld erfasst den Wert der kleinsten Preisänderung des auf der Börse gehandelten Gegenstandes. TickSize Zahl Es werden Werte wie0.01, dieAmountSizeDas Feld erfasst den Wert der geringsten Änderung des auf der Börse platzierten Auftragsvolumens für diesen Handel. BetragGröße Zahl Es werden Werte wie2, diePricePrecisionDas Feld zeichnet die Genauigkeit des Preises des auf der Börse gehandelten Gegenstandes auf und gibt an, dass der Preis bis zu zwei Dezimalstellen genau ist. Preisgenauigkeit Zahl Es werden Werte wie3, dieAmountPrecisionDas Feld zeichnet die Genauigkeit der auf der Börse für die gehandelte Sorte aufgegebenen Aufträge auf und gibt an, dass die Aufträge bis zu drei Dezimalstellen genau sind. BetragGenauigkeit Zahl Es werden Werte wie0.001, dieMinQtyDas Feld erfasst die Mindestordergröße für diesen Handel an der Börse. MinQty Zahl Es werden Werte wie1000, dieMaxQtyDas Feld zeichnet die maximale Anzahl der Aufträge auf, die für diese Handelssorte an der Börse platziert werden können. Maximal Zahl Es werden Werte wie5, dieMinNotionalDas Feld erfasst den Mindestbetrag der an der Börse aufgenommenen Bestellung für diese Handelsvariante. Mindestnationale Zahl Es werden Werte wie9999999, dieMaxNotionalDas Feld zeichnet die maximale Anzahl der auf der Börse für diese Handelssorte platzierten Aufträge auf. Maximal Zahl Das FeldCtValDer Wert eines Vertrags des Handelsprodukts wird an der Börse in der Währung erfasst, die in derCtValCcyDas ist ein Beispiel:CtValist 0,01CtValCcyist"BTC", was bedeutet, dass ein Vertrag einen Wert von 0,01 BTC hat. CtVal Zahl Das FeldCtValCcyDie Wert-Einheit eines Auftrags kann sein:BTC, USD, ETH, usw. CtValCcy Zahl Das FeldInfoEr erfasst die Rohdaten für die Arten, die durch die Marktinformationsschnittstelle der Börse zurückgegeben werden. Informationen Gegenstand

Die Funktion exchange.GetMarkets() gibt ein Wörterbuch zurück, das dieseMarketStruktur. Aufgrund der unterschiedlichen Unterstützung von Marktinformationsdaten durch jede Börse werden Felder, die nicht von der Börse unterstützt werden, ignoriert.Info field.

Ich bin nicht derjenige, der das Problem hat, aber ich bin derjenige, der das Problem hat.

Finanzierung

Die Struktur der Finanzierungsraten Informationen des Handelsprodukts. Nur Kryptowährungs-Perpetual-Kontrakte unterstützen Finanzierungsraten.

Die Rohdaten werden zurückgegeben, wenn die Kryptowährungs-Futures-Interface aufgerufen wird. Informationen Gegenstand DieSymbolFeld ist der vom FMZ-System definierte Handelsproduktcode. Symbol String Finanzierungsrate-Intervall, in Millisekunden.28800000bedeutet 8 Stunden Intervall. Intervall Zahl Der Zeitstempel des Beginns der nächsten Finanzierungssatzperiode (die Abrechnungszeit dieser Periode) in Millisekunden. Zeit Zahl Der für die Abwicklung dieses Zeitraums verwendete Finanzierungsgrad. Zinssatz Zahl

Die Raten der dauerhaften Vertragsfinanzierung verschiedener Futures-Börsen haben unterschiedliche Berechnungsmethoden und -mechanismen, und die Abrechnungszyklen sind 1 Stunde, 4 Stunden, 8 Stunden und 1 Tag. Der aktuelle Finanzierungsgrad von Daueraufträgen an Futures-Börsen hat einen festen und einen in Echtzeit berechneten variablen Wert. DieRateFeld ist der Wert der Finanzierungssätze ohne%. Wenn Sie es in einen Wert mit konvertieren wollen%, können Sie es mit 100 multiplizieren und addieren%Am Ende.

Ich bin nicht derjenige, der das Problem hat, aber ich bin derjenige, der das Problem hat.

Sonstige Struktur

HttpQuery-Optionen

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.

HttpQuery-Return

Diese JSON-Struktur ist die Datenstruktur, die von der HttpQuery-Funktion im Debug-Modus zurückgegeben wird, wenn das Debug-Feld in deroptionsStrukturparameter 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.

LogStatus-Tabelle

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.

LogStatus-btnTypeOne

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 durchinputodergroup.

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.inputElement 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 derinputFeld:

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

Beschreibung jedes Felds in der obigen JSON-Struktur:

  • Name Der Titel des Steuerelements im Pop-up-Fenster, der nach dem Statusleiste-Button erscheint, löst einen Klick aus.
  • Beschreibung Beschreibung des Steuerelements im Pop-up-Fenster, das nach Auslösung eines Klicks durch die Statusleiste angezeigt wird.
  • Typ Der Typ des Steuerelements im Pop-up-Feld, das nach dem Statusleiste-Button angezeigt wird, löst einen Klick aus. Die möglichen Werte des Typfeldes sind wie folgt:
    1. "number": numerische Eingabe.
    2. "string": Steuerelemente für die String-Eingabe.
    3. "selected"- Ein Drop-Down-Controller.
    4. "boolean"Schalten Sie die Steuerung ein.
  • defWert Der Standardwert des Steuerelements im Pop-up-Fenster, der nach dem Statusleiste-Button angezeigt wird, löst eine Klickoperation aus. Wenn es sich um ein Dropdown-Box-Kontrolltyp handelt (gewählt), wird das Feld defValue verwendet, um die Dropdown-Box-Optionen festzulegen."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:

  • Optionen Die Dropdown-Box-Steuerung in der Seite, die durch die Statusleiste-Buttonsteuerung ausgelöst wird, kann das Optionsfeld verwenden, um Optionen festzulegen.{text: "description", value: "value"}Verwenden Sie das Feld defValue, um die Standardoption festzulegen, die mehrere Auswahlen sein kann.
  • Mehrfach Wenn dieses Feld auf true gesetzt ist, werden mehrere Auswahlmöglichkeiten im Dropdown-Feld unterstützt.

Eingabe JSON-Daten DieinputFeld konfiguriert ein Steuerelement im Pop-up-Box, die nach dem Klick auf die Statusleiste-Taste ausgelöst wird, erscheint.groupundinputDie Elemente ingroupdie gleiche Datenstruktur haben wie dieinputSiehe die entsprechende Beschreibung desinput field.

Gruppe Reihenfolge

Ein Beispiel fürclassWert 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 dergroupFeld mit derinputFeld:

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.

LogStatus-btnTypeTwo

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 durchinputodergroup.

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.inputElement 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: [option 1, option 2], [{name:xxx,value:0}, {name:xxx,value:1}]. Einstellungen.Render: Typ der Renderkomponente. Wenn type=number, settings.render nicht eingestellt ist (Standardnummer-Eingabefeld), optional: Schieberegler (Schieberegler), Datum (Zeitauswahlgerät gibt den Zeitstempel zurück). Wenn type=string, settings.render nicht eingestellt ist (Standard-Einzelzeilen-Eingabefeld), optional: Textbereich (Mehrzeilen-Eingabe), Datum (Zeit-Selektor gibt yyyy-MM-dd hh:mm:ss zurück), Farbe (Farb-Selektor gibt #FF00FF zurück). Wenn type= ausgewählt ist, ist settings.render nicht eingestellt (Standard-Rolldown-Feld), optional: segment (Segment-Selektor). Wenn type=boolean, gibt es derzeit nur ein Standard-Checkfeld.

Eingabe JSON-Daten DieinputFeld konfiguriert ein Steuerelement im Pop-up-Box, die nach dem Klick auf die Statusleiste-Taste ausgelöst wird, erscheint.groupundinputDie Elemente ingroupdie gleiche Datenstruktur haben wie dieinputFeldwert. 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.

Chart-Optionen

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.

KLineChart-Optionen

Diese JSON wird verwendet, um die Chartkonfigurationsinformationen der benutzerdefinierten Zeichnungsfunktion festzulegenKLineChartHier 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.

SetData-Daten

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.

EventLoop-Rückgabe

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.

DBExec-Rückgabe

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.

Thread.join-return

Diese JSON ist die Datenstruktur, die von der Mitgliederfunktion zurückgegeben wirdjoin()derThreadObjekt, das einige Informationen über gleichzeitige Threads in derJavaScriptDie SprachstrategieThreadObjekt 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 derThreadObjekt 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}
Einbaufunktionen Eingebettete Variablen