JavaScript
, Python
, C++
, и стратегии MyLanguage могут быть разработаны с помощью элементов управления взаимодействием. Контроли взаимодействия стратегии используются для отправки интерактивных команд в запущенную стратегию программы, когда стратегия работает в режиме реального времени.
ДляJavaScript
, Python
, иC++
С помощью языковых стратегийGetCommand()
Функция в коде стратегии, чтобы получить сообщение, генерируемое управлением взаимодействия.
С кодом, разработанным в стратегии для обработки сообщений от интерактивных элементов управления, использование интерактивных элементов управления во время торговли в режиме реального времени может обеспечить (не ограничиваясь) такими функциями, как:
Переменная (например, название) | Описание | Тип | Значение по умолчанию (описание) | Конфигурация компонента (описание) | Примечания |
---|---|---|---|---|---|
cmdNum | Описание интерактивного управления cmdNum | Номер | Значение по умолчанию является необязательным и может быть оставлено пустым | Используется для настройки элементов управления интерфейса, связанных с текущим интерактивным элементом: тип компонента, минимальное значение, максимальное значение, группировка и т.д. | Примечания к интерактивному управлению cmdNum |
cmdBool | Описание интерактивного управления cmdBool | Булево (правда/ложно) | Необходимое значение по умолчанию, включенное или выключенное | То же самое, что и выше. | Примечания к интерактивному управляющему устройству cmdBool |
cmdStr | Описание интерактивного управления cmdStr | строка | Значение по умолчанию является необязательным и может быть оставлено пустым | То же самое, что и выше. | Примечания к интерактивному управлению cmdStr |
cmdCombox | Описание интерактивного управления cmdCombox | выбранный | Значение по умолчанию является необязательным и может быть оставлено пустым | То же самое, что и выше. | Примечания к интерактивному управляющему устройству cmdCombox |
cmdBtn | Описание интерактивного управления cmdBtn | кнопка | Управление кнопкой не связано с элементом ввода | То же самое, что и выше. | Примечания к интерактивному управлению cmdBtn |
Сообщение, отправленное в стратегию после запуска интерактивного управления (строка):
После ввода интерактивных данных GetCommand()
функция в программе стратегии получит сообщение:cmdBool:true
- Да.
После ввода интерактивных данных:abc
в поле ввода cmdStr интерактивного управления нажмите кнопку cmdStr интерактивного управления.GetCommand()
функция в программе стратегии получит сообщение:cmdStr:abc
- Да.
После выбора второго варианта в выпадающем окне cmdCombox, нажмите кнопку cmdCombox.GetCommand()
функция в программе стратегии получит сообщение:cmdCombox:1
, где 1 представляет собой индекс выбранного варианта, первый вариант имеет индекс 0, а второй вариант - индекс 1.
Нажмите кнопку интерактивного управления cmdBtn.GetCommand()
функция в программе стратегии получит сообщение:cmdBtn
.
Опция
5 типов компонентов, поддерживаемых интерактивными элементами управления:
Интерактивные элементы управления также могут быть сгруппированы, как настройки параметров интерфейса.
В дополнение к проектированию интерактивных элементов управления в столбце LogStatus
раздел функций в руководстве по синтаксису- Да.
Кнопки управления в строке состояния можно классифицировать как:
Общие кнопки управления Примером структуры данных является:
{"type": "button", "name": "button1", "cmd": "button1", "description": "This is the first button."}
Кнопка управления с вводом данных
Используйтеinput
атрибут для настройки опций управления вводом с примерной структурой данных:
{"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}]
}
},
}
Кнопка управления с набором входных данных
Используйтеgroup
атрибут для установки параметров для группы элементов управления вводом, с примерной структурой данных:
{
"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"
}],
}
Кодировать эти кнопки управления JSON данных в строку JSON, а затем обернуть его с`
Возьмем язык JavaScript в качестве примера:
function main() {
var btn = {"type": "button", "name": "button1", "cmd": "button1", "description": "This is the first button."}
LogStatus("`" + JSON.stringify(btn) + "`")
}
Эти кнопки управления также могут быть написаны на формы строки состояния, пожалуйста, обратитесь кРуководство по синтаксисудля подробных примеров.
Структураinput
поле соответствует структуре одного контроля вgroup
Ниже приведено подробное описание:
{
"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
}
Конфигурация компонентаsettings
каждое поле подробно описано:
settings.required
: Требуется ли этот вариант.settings.disabled
Отключить или нет.settings.min
: Действует, когда:type=number
, с указанием минимального значения или минимальной длины строки.settings.max
: Действует, когда:type=number
, указывающие максимальное значение или максимальную длину струны.settings.step
: type=number
, действителен, когда:render=slider
, указывает длину шага.settings.multiple
: type=selected
является действительным, что указывает на поддержку многократного выбора.settings.customizable
: type=selected
Если вы выбрали опцию, которую вы только что редактировали, вместо значения, представленного опцией при запуске взаимодействия, используется имя опции.settings.options
: Действует, когда:type=selected
, указывающий формат данных опции выборщика:["option 1", "option 2"]
, [{'name':'xxx','value':0}, {'name':'xxx','value':1}]
.settings.render
: Тип компонента рендеринга.
Когда?type=number
, settings.render
не установлено (по умолчанию ввод номер), необязательно:slider
(слайдерная панель),date
(выборщик времени возвращает временную отметку).
Когда?type=string
, settings.render
не установлен (по умолчанию однострочное поле ввода).textarea
(ввод с несколькими линиями),date
(выбиратель времени возвращает yyyy-MM-dd hh:mm:ss),color
(выбиратель цвета возвращает #FF00FF).
Когда?type=selected
, settings.render
не установлен (по умолчанию выпадающее окно), необязательно:segment
(выбиратель сегмента).type=boolean
в настоящее время имеет только отметку по умолчанию.Поддерживает двуязычные настройки, например:'选项 | options'
будет адаптирована в соответствии с текущей языковой средой;group
поле в качестве примера, полный пример:
{
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}]
}
}
Параметры стратегии
Торговля опционами