JavaScript
, Python
, C++
Die Interaktionssteuerungen einer Strategie werden verwendet, um interaktive Befehle an das laufende Strategieprogramm zu senden, wenn die Strategie im Live-Handel ausgeführt wird.
FürJavaScript
, Python
, undC++
Sie können dieGetCommand()
Funktion im Strategiecode, um die von der Interaktionssteuerung generierte Nachricht zu erhalten.
Mit Code, der in der Strategie für den Umgang mit Nachrichten aus den interaktiven Bedienelementen entwickelt wurde, kann die Verwendung interaktiver Bedienelementen während des Live-Handels (nicht beschränkt auf) Funktionen ermöglichen, z. B.:
Variable (Name Beispiel) | Beschreibung | Typ | Standardwert (Beschreibung) | Komponentenkonfiguration (Beschreibung) | Anmerkungen |
---|---|---|---|---|---|
cmdNummer | Beschreibung der interaktiven Steuerung cmdNum | Zahl | Standardwert ist optional und kann leer gelassen werden | Wird verwendet, um die an das aktuelle interaktive Element gebundenen Schnittstellensteuerungen festzulegen: Komponententyp, Mindestwert, Höchstwert, Gruppierung usw. | Anmerkungen zur interaktiven Steuerung cmdNum |
cmdBool | Beschreibung der interaktiven Steuerung cmdBool | Boolean (wahr/falsch) | Standardwert erforderlich, eingeschaltet oder ausgeschaltet | Das gleiche wie oben | Anmerkungen zur interaktiven Steuerung cmdBool |
cmdStr | Beschreibung der interaktiven Steuerung cmdStr | String | Standardwert ist optional und kann leer gelassen werden | Das gleiche wie oben | Anmerkungen zur interaktiven Steuerung cmdStr |
cmdCombox | Beschreibung der interaktiven Steuerung cmdCombox | ausgewählt | Standardwert ist optional und kann leer gelassen werden | Das gleiche wie oben | Anmerkungen zur interaktiven Steuerung cmdCombox |
cmdBtn | Beschreibung der interaktiven Steuerung cmdBtn | Schaltfläche | Die Tastensteuerung ist nicht an das Eingabeobjekt gebunden | Das gleiche wie oben | Anmerkungen zur interaktiven Steuerung cmdBtn |
Nachricht an die Strategie nach Auslösung der interaktiven Steuerung (String):
Nach Eingabe der interaktiven Daten GetCommand()
Funktion im Strategieprogramm wird die Nachricht erhalten:cmdBool:true
- Ich weiß.
Nach Eingabe der interaktiven Daten:abc
In der Eingabebox cmdStr der interaktiven Steuerung klicken Sie auf die Schaltfläche cmdStr der interaktiven Steuerung.GetCommand()
Funktion im Strategieprogramm wird die Nachricht erhalten:cmdStr:abc
- Ich weiß.
Nach Auswahl der zweiten Option im Dropdown-Fenster der interaktiven Steuerung cmdCombox klicken Sie auf die Taste der interaktiven Steuerung cmdCombox.GetCommand()
Funktion im Strategieprogramm wird die Nachricht erhalten:cmdCombox:1
, wobei 1 den Index der ausgewählten Option darstellt, hat die erste Option einen Index von 0 und die zweite Option einen Index von 1.
Klicken Sie auf die Taste der interaktiven Steuerung cmdBtn.GetCommand()
Funktion im Strategieprogramm wird die Nachricht erhalten:cmdBtn
.
Die Option
5 Arten von Komponenten, die durch interaktive Bedienelemente unterstützt werden:
Interaktive Steuerelemente können ebenfalls gruppiert werden, genau wie die Interface-Parameter-Einstellungen.
Zusätzlich zum Entwurf interaktiver Steuerelemente in der Spalte LogStatus
Funktionsbereich der
Gemeinsame Tastensteuerungen Ein Beispiel für eine Datenstruktur ist:
{"type": "button", "name": "button1", "cmd": "button1", "description": "This is the first button."}
Tastensteuerung mit Dateneingabe
Verwendeninput
Eigenschaft zur Einstellung der Eingabe-Steuerungsoptionen mit Beispieldatenstruktur:
{"type": "button", "name": "button2", "cmd": "button2", "description": "This is the second button.", "input": {"name": "number of open positions", "type": "number", "defValue": 1}}
{
"type": "button",
"cmd": "test1",
"name": "test1",
"input": {
"type": "selected",
"name": "selected",
"label": "drop-down box",
"description": "description",
"default": 100,
"settings": {
"multiple": true,
"customizable": true,
"options":[{"name": "A", "value": 100}, {"name": "B", "value": 200}]
}
},
}
Tastensteuerung mit einem Satz Eingabedaten
Verwendengroup
Eigenschaft zur Einstellung der Optionen für eine Gruppe von Eingabeaufgaben, mit einer Beispieldatenstruktur:
{
"type": "button",
"cmd": "open",
"name": "open positions",
"group": [
{"name": "orderType", "description": "下单方式|order type", "type": "selected", "defValue": "market order|pending order"},
{"name": "tradePrice@orderType==1", "description": "交易价格|trade price", "type": "number", "defValue": 100},
{"name": "orderAmount", "description": "委托数量|order amount", "type": "string", "defValue": 100},
{"name": "boolean", "description": "yes/no|boolean", "type": "boolean", "defValue": True}
]
}
{
"type": "button",
"cmd": "test2",
"name": "test2",
"group": [{
"type": "selected",
"name": "selected",
"label": "drop-down box",
"description": "description",
"default": 200,
"group": "group1",
"settings": {
"multiple": true,
"options":[{"name": "A", "value": 100}, {"name": "B", "value": 200}]
}
}, {
"type": "string",
"name": "string",
"label": "input box",
"description": "description",
"default": "ABC",
"group": "group1"
}],
}
Codieren Sie diese Knopfsteuerungs-JSON-Daten in eine JSON-String und wickeln Sie sie dann mit`
Siehe hier, wie man das in der Statusleiste ausfügt.
function main() {
var btn = {"type": "button", "name": "button1", "cmd": "button1", "description": "This is the first button."}
LogStatus("`" + JSON.stringify(btn) + "`")
}
Diese Tastensteuerungen können auch in Statusleiste-Formulare geschrieben werden, sieheSyntaxführerfür detaillierte Beispiele.
Die Struktur derinput
Das Feld entspricht der Struktur einer einzigen Kontrolle in dergroup
Nachstehend eine ausführliche Beschreibung:
{
"type": "selected", // Control type (required field), supports the following settings: number, string, selected, boolean
"name": "test", // Name (required when used in group)
"label": "topic", // Title (required field)
"description": "desc", // Component tips
"default": 1, // Default value; if the settings field is not set in the current JSON structure, defValue is compatible and can be used instead of default
"filter": "a>1", // Selector. If this field is not set, no filtering (controls are displayed). If this field is set, no filtering (controls are displayed) occurs when the expression is true. Filtering occurs when the expression is false (controls are not displayed)
// For the selector, take the expression a>1 in the current example as an example, a refers to the value of the control with name a under the group field in the structure of type=button. This value is used to determine whether to filter.
"group": "group1", // Grouping
"settings": { ... }, // Component configuration
}
Komponentenkonfigurationsettings
Jedes Feld ist detailliert beschrieben:
settings.required
: Ob diese Option erforderlich ist.settings.disabled
Ob sie deaktiviert werden soll.settings.min
: Gültig, wenntype=number
, der den Mindestwert oder die Mindeststrängenlänge anzeigt.settings.max
: Gültig, wenntype=number
, der den Höchstwert oder die Höchststrängenlänge anzeigt.settings.step
: type=number
, gültig, wennrender=slider
, zeigt die Stufenlänge an.settings.multiple
: type=selected
ist gültig, was bedeutet, dass mehrere Auswahlmöglichkeiten unterstützt werden.settings.customizable
: type=selected
ist gültig, 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.settings.options
: Gültig, wenntype=selected
, mit Angabe des Datenformats für die Auswahloption:["option 1", "option 2"]
, [{'name':'xxx','value':0}, {'name':'xxx','value':1}]
.settings.render
: Typ der Rendering-Komponente.
Wann?type=number
, settings.render
nicht eingestellt ist (Standardnummer-Eingabefeld), optional:slider
(Schieberaden)date
(Zeitauswahlgerät gibt den Zeitstempel zurück).
Wann?type=string
, settings.render
nicht eingestellt ist (Standard-Einzeilen-Eingabefeld).textarea
(Mehrzeilen-Eingabe)date
(Zeitauswahlgerät gibt yyyy-MM-dd hh:mm:ss zurück),color
(Kleinschalter gibt #FF00FF zurück).
Wann?type=selected
, settings.render
nicht eingestellt (Standard-Roll-Down-Box), optional:segment
(Segmentwahl).type=boolean
hat derzeit nur ein Standardcheckfeld.Unterstützt zweisprachige Einstellungen, zum Beispiel:'选项 | options'
Die Anpassung an das aktuelle Sprachumfeld erfolgt durch eine einheitliche Kontrolle in dergroup
Feld als Beispiel, das vollständige Beispiel:
{
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}]
}
}
Strategieparameter
Handel mit Optionen