В процессе загрузки ресурсов... загрузка...

Интерактивное управление

JavaScript, Python, C++, и стратегии MyLanguage могут быть разработаны с помощью элементов управления взаимодействием. Контроли взаимодействия стратегии используются для отправки интерактивных команд в запущенную стратегию программы, когда стратегия работает в режиме реального времени. ДляJavaScript, Python, иC++С помощью языковых стратегийGetCommand()Функция в коде стратегии, чтобы получить сообщение, генерируемое управлением взаимодействия.

Interactive Control

С кодом, разработанным в стратегии для обработки сообщений от интерактивных элементов управления, использование интерактивных элементов управления во время торговли в режиме реального времени может обеспечить (не ограничиваясь) такими функциями, как:

  • Закройте стратегическое положение вручную.
  • Модифицировать параметры стратегии динамически, чтобы избежать возобновления стратегии в режиме реального времени.
  • Измените стратегию.
  • Запускает печать определенной информации отладки, данных и используется для тестирования определенных функций.

Виды средств управления взаимодействием

Переменная (например, название) Описание Тип Значение по умолчанию (описание) Конфигурация компонента (описание) Примечания
cmdNum Описание интерактивного управления cmdNum Номер Значение по умолчанию является необязательным и может быть оставлено пустым Используется для настройки элементов управления интерфейса, связанных с текущим интерактивным элементом: тип компонента, минимальное значение, максимальное значение, группировка и т.д. Примечания к интерактивному управлению cmdNum
cmdBool Описание интерактивного управления cmdBool Булево (правда/ложно) Необходимое значение по умолчанию, включенное или выключенное То же самое, что и выше. Примечания к интерактивному управляющему устройству cmdBool
cmdStr Описание интерактивного управления cmdStr строка Значение по умолчанию является необязательным и может быть оставлено пустым То же самое, что и выше. Примечания к интерактивному управлению cmdStr
cmdCombox Описание интерактивного управления cmdCombox выбранный Значение по умолчанию является необязательным и может быть оставлено пустым То же самое, что и выше. Примечания к интерактивному управляющему устройству cmdCombox
cmdBtn Описание интерактивного управления cmdBtn кнопка Управление кнопкой не связано с элементом ввода То же самое, что и выше. Примечания к интерактивному управлению cmdBtn

Сообщение, отправленное в стратегию после запуска интерактивного управления (строка): После ввода интерактивных данных 123 в поле ввода cmdNum, нажмите кнопку cmdNum. Функция GetCommand() в программе стратегии получит сообщение cmdNum:123. Установите переключатель управления интерактивного управления cmdBool на включенное и нажмите кнопку интерактивного управления cmdBool.GetCommand()функция в программе стратегии получит сообщение:cmdBool:true- Да. После ввода интерактивных данных:abcв поле ввода cmdStr интерактивного управления нажмите кнопку cmdStr интерактивного управления.GetCommand()функция в программе стратегии получит сообщение:cmdStr:abc- Да. После выбора второго варианта в выпадающем окне cmdCombox, нажмите кнопку cmdCombox.GetCommand()функция в программе стратегии получит сообщение:cmdCombox:1, где 1 представляет собой индекс выбранного варианта, первый вариант имеет индекс 0, а второй вариант - индекс 1. Нажмите кнопку интерактивного управления cmdBtn.GetCommand()функция в программе стратегии получит сообщение:cmdBtn.

Конфигурация компонента

Опция Конфигурация компонента интерактивного управления стратегией используется для настройки элементов управления, соответствующих 5 типам интерактивных элементов управления на платформе, повышая функциональность и упрощая конструкцию.

5 типов компонентов, поддерживаемых интерактивными элементами управления:

  • Числовое интерактивное управление Поддерживаемые типы компонентов: управление входной коробкой (по умолчанию), управление выборщиком времени и управление скользящей панелью ввода.
  • Интерактивные элементы управления по булевой системе (правда/ложно) Поддерживаются только элементы управления переключателями (по умолчанию).
  • Интерактивное управление строкой Поддерживаемые типы компонентов: управление входным ящиком (по умолчанию), управление текстовым ящиком, управление выборщиком времени, управление выборщиком цвета, валюта и торговый код.
  • Выбранное интерактивное управление Поддерживаемые типы компонентов: управление выпадающим ящиком (по умолчанию), управление контроллером сегмента, валюта и торговый код.
  • Интерактивное управление кнопкой Есть только кнопка управления (по умолчанию) и никакого управления вводом.

Интерактивные элементы управления также могут быть сгруппированы, как настройки параметров интерфейса.

  • Группировка В окне ввода Group конфигурации компонента вы можете ввести имя для этикетки для группировки нескольких элементов управления взаимодействием стратегии в групповую этикетку (заменяя старую функцию платформы Interaction Control Grouping).

Интерактивные элементы управления в строке состояния

В дополнение к проектированию интерактивных элементов управления в столбце Strategy Interaction, можно также проектировать интерактивные элементы управления в столбце "Статус стратегии".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}]
    }
}
Параметры стратегии Торговля опционами