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.
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
DieSymbol
Feld ist der vom FMZ-System definierte Handelssortencode.
Symbol
Feldwert (beispielsweise) ist:BTC_USDT
, das das Spothandelspaar BTC_USDT anzeigt.Symbol
Feldwert (z. B.BTC_USDT.swap
, der den USDT-Property-Perpetual-Vertrag für BTC darstellt.Symbol
Feldwert 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.Ticker
StrukturfeldBuy
oderSell
ist 0, wird eine Fehlermeldung ausgelöst.
Das ist ein sehr schwieriger Fall.
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.
Die Struktur der Ordnung.
Die ursprünglichen Daten der Exchange-Schnittstellenantwort sind für das Backtesting nicht verfügbar.
Informationen
Gegenstand
DieSymbol
Das Feld ist der von der FMZ-Plattform definierte Handelsproduktcode, dessen Format mit demSymbol
Feld der {@struct/Ticker Ticker} Struktur.
Symbol
Feldwert ist (z. B.:BTC_USDT
, das das Spothandelspaar BTC_USDT anzeigt.Symbol
Feldwert 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.Id
Format des SpothandelspaaresETH_USDT
Die 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
DieOrder
Die Bestellstruktur kann durch dieexchange.GetOrder()
undexchange.GetOrders()
Dieexchange.GetOrders()
Funktion gibt ein Array derOrder
Wenn keine unvollendete Reihenfolge vorhanden ist, gibt es[]
, was ein leeres Array ist.Status
Eigentum derOrder
Die Reihenfolge kann direkt mit Konstanten wieORDER_STATE_PENDING
um 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 dieOffset
Feld 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}
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.
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.
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.Equity
Das Feld ist das Gesamtkapital der Futures-Konto-Marge unter der aktuellen Vertragsinstallation.
Eigenkapital
Zahl
Dieses Feld wird nur von Futures-Austauschobjekten unterstützt.UPnL
Feld 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.
Die Struktur von Informationen über spezifische Währungsinstrumente.
Angabe der Wertpapier- und Wertpapierverbindlichkeiten, die für die Verwendung von Kryptowährungen verwendet werdenBTC
kann genannt werdenXBT
auf einigen Börsen.
Währung
String
Verfügbare Währungssalden.
Betrag
Zahl
Anzahl der eingefrorenen Vermögenswerte in der Währung.
Gefrierter Betrag
Zahl
DieFrozenAmount
Der 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.
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
DieSymbol
Das Feld ist der von der FMZ-Plattform definierte Handelsproduktcode, dessen Format mit demSymbol
Feld der {@struct/Ticker Ticker} Struktur.
Symbol
Feldwert ist (z. B.:BTC_USDT
, das das Spothandelspaar BTC_USDT anzeigt.Symbol
Feldwert 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.
Struktur der Marktinformationen über gehandelte Sorten.
Es werden Werte wie"btcusdt"
, dieSymbol
Die Angabe des ursprünglichen Namens der an der Börse gehandelten Sorte wird in diesem Feld erfasst.Symbol
Feld der {@struct/Ticker Ticker} Struktur.
Symbol
String
Es werden Werte wie"BTC"
, dieBaseAsset
Das 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"
, dieQuoteAsset
Das 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
, dieTickSize
Das Feld erfasst den Wert der kleinsten Preisänderung des auf der Börse gehandelten Gegenstandes.
TickSize
Zahl
Es werden Werte wie0.01
, dieAmountSize
Das 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
, diePricePrecision
Das 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
, dieAmountPrecision
Das 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
, dieMinQty
Das Feld erfasst die Mindestordergröße für diesen Handel an der Börse.
MinQty
Zahl
Es werden Werte wie1000
, dieMaxQty
Das 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
, dieMinNotional
Das Feld erfasst den Mindestbetrag der an der Börse aufgenommenen Bestellung für diese Handelsvariante.
Mindestnationale
Zahl
Es werden Werte wie9999999
, dieMaxNotional
Das Feld zeichnet die maximale Anzahl der auf der Börse für diese Handelssorte platzierten Aufträge auf.
Maximal
Zahl
Das FeldCtVal
Der Wert eines Vertrags des Handelsprodukts wird an der Börse in der Währung erfasst, die in derCtValCcy
Das ist ein Beispiel:CtVal
ist 0,01CtValCcy
ist"BTC"
, was bedeutet, dass ein Vertrag einen Wert von 0,01 BTC hat.
CtVal
Zahl
Das FeldCtValCcy
Die Wert-Einheit eines Auftrags kann sein:BTC
, USD
, ETH
, usw.
CtValCcy
Zahl
Das FeldInfo
Er 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 dieseMarket
Struktur.
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.
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
DieSymbol
Feld ist der vom FMZ-System definierte Handelsproduktcode.
Symbol
String
Finanzierungsrate-Intervall, in Millisekunden.28800000
bedeutet 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.
DieRate
Feld 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.
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}
Einbaufunktionen
Eingebettete Variablen