[TOC]

Разработка стратегий на платформе количественной торговли Inventor неотделима от проектирования параметров стратегии и стратегических взаимодействий. Платформа количественной торговли Inventor стремится предоставлять простые, удобные в использовании и мощные инструменты количественной торговли, а также постоянно совершенствовать дизайн и функции продукта. Благодаря обновлению «параметров стратегии» и «элементов управления взаимодействием» гибкость проектирования параметров и взаимодействий при разработке стратегии была еще больше увеличена. Функции параметров стратегии и интерактивного управления были улучшены, чтобы упростить выполнение некоторых требований к проектированию. В этой статье давайте рассмотрим два основных аспекта разработки стратегии: «разработка параметров стратегии» и «разработка взаимодействия стратегий».
Типы параметров стратегии в Inventor Quant не увеличились, и это по-прежнему пять типов параметров, с которыми мы знакомы:
Тогда вы наверняка спросите меня, какой контент был добавлен и оптимизирован в этом обновлении платформы?
Это обновление добавляет «конфигурацию компонента» для управления привязкой параметров, упрощает функции «группировки» и «зависимости параметров» и интегрирует эти две функции в «конфигурацию компонента». Для значения параметра по умолчанию добавляется опция «необязательный»/«обязательный», чтобы определить, подходит ли стратегия для работы. Если параметр установлен как «обязательный», но в элементе управления параметром не записано конкретное значение, когда стратегия выполняется, Параметры, в данный момент стратегия не может быть запущена. Теперь, когда у нас есть общее представление об изменениях в обновлении, давайте протестируем их подробно.

Ранее мы кратко говорили о «необязательных»/«обязательных» функциях, поэтому я не буду вдаваться в подробности. Ниже в основном объясняется «конфигурация компонента». Настройка конфигурации компонента может быть просто понята как:
Задайте различные свойства, типы и правила элементов управления, которым соответствуют параметры (к которым они привязаны). Связанным элементом управления по умолчанию числового типа параметра (тип числа) является поле ввода. Вы можете задать правила для данных, полученных полем ввода, то есть использовать элементы управления “минимальное значение” и “максимальное значение” на рисунке, чтобы установите их.
В дополнение к стандартному элементу управления полем ввода платформа добавила:

Параметры логического типа отличаются тем, что им соответствует только один элемент управления. Это переключатель управления по умолчанию. Также требуется указать значение параметра по умолчанию.
Поскольку логические значения могут быть либо истинными, либо ложными, они являются бинарными опционами. Поэтому весьма целесообразно использовать переключательное управление для соответствия этому типу параметра.
Обычно параметры логического типа используются для управления включением определенных функций стратегии на платформе.

В дополнение к стандартному элементу управления полем ввода платформа добавила:
текст В «Типе компонента» выберите настройку: Текст. Элемент управления полем ввода в интерфейсе стратегии, соответствующий текущему параметру, изменится на большее текстовое поле. Различия между текстовым элементом управления и обычным полем ввода заключаются в следующем: текст, введенный в текстовое поле, может переноситься, а текстовое поле может регулировать размер элемента управления. Переменное значение параметра интерфейса: строка.
Выбор времени В разделе «Тип компонента» выберите настройку: Выбор времени. Элемент управления полем ввода в интерфейсе стратегии, соответствующий текущим параметрам, станет элементом управления для установки времени и даты. «Селектор времени для типа компонента с параметром типа String» отличается от «Селектора времени для типа компонента с параметром типа Numeric». Выбор времени для параметра типа string имеет дополнительную опцию «Формат времени», которая может задать формат времени элемента управления. Выберите Формат:
Выбор цвета В разделе «Тип компонента» выберите настройку: Выбор цвета. Элемент управления полем ввода в интерфейсе стратегии, соответствующий текущему параметру, станет элементом управления выбором цвета. Обычно используется для проектирования параметров настройки цветов. Переменное значение параметра интерфейса: строка (значение цвета, соответствующее выбранному цвету, например: #7e1717).

Элемент управления по умолчанию, соответствующий параметру типа раскрывающегося списка, представляет собой раскрывающийся список, но на этот раз было сделано много обновлений по сравнению с предыдущим простым раскрывающимся списком с одним выбором:
В дополнение к раскрывающемуся списку по умолчанию на этот раз платформа добавляет:

Параметр типа зашифрованной строки также является особенным и имеет только один соответствующий элемент управления. Это зашифрованный элемент управления полем ввода по умолчанию.
На платформе элементы управления типа зашифрованной строки обычно используются для установки некоторой конфиденциальной информации, такой как секретные ключи, пароли и т. д. Эти значения входных параметров будут переданы после локального шифрования.
Переменное значение параметра интерфейса: строка.
Для всех вышеперечисленных типов параметров интерфейса стратегии это обновление интегрирует предыдущие функции «группировки параметров» и «зависимости параметров» в «конфигурацию компонентов». В конфигурации компонента всех параметров интерфейса имеются настройки «Группировка» и «Фильтр».
Группировка Вы можете напрямую ввести метки, которые хотите сгруппировать, в раскрывающемся списке групп и использовать клавишу Enter для подтверждения ввода группы. Система запишет введенную в данный момент метку в параметры группировки. Затем вы можете назначить группы текущим параметрам интерфейса. После группировки в интерфейсе бэктестинга/реальной торговли стратегии параметры, отмеченные как группа, будут отображаться в области группировки.
Фильтры Введите несколько выражений в элемент управления фильтром, чтобы определить, необходимо ли активировать и отображать текущий параметр. Эта функция позволяет отображать или скрывать текущий параметр в зависимости от определенной настройки параметра. Примеры выражений фильтра:
过滤器格式: a>b , a==1 , a , !a , a>=1&&a<=10 , a>b
Здесь a и b представляют собой переменные параметров интерфейса стратегии.
Если приведенные выше объяснения кажутся вам немного неинтуитивными, лучший способ понять их — это на самом деле использовать и протестировать эти функции параметров:
Возьмем в качестве примера политику языка JavaScript:
function main() {
Log("---------------------------开始测试数字类型参数---------------------------")
Log("变量pNum1:", pNum1, ", 变量值类型:", typeof(pNum1))
Log("变量pNum2:", pNum2, ", 变量值类型:", typeof(pNum2))
Log("变量pNum3:", pNum3, ", 变量值类型:", typeof(pNum3))
Log("变量pNum4:", pNum4, ", 变量值类型:", typeof(pNum4))
Log("---------------------------开始测试布尔类型参数---------------------------")
Log("变量pBool1:", pBool1, ", 变量值类型:", typeof(pBool1))
Log("变量pBool2:", pBool2, ", 变量值类型:", typeof(pBool2))
Log("---------------------------开始测试字符串类型参数---------------------------")
Log("变量pStr1:", pStr1, ", 变量值类型:", typeof(pStr1))
Log("变量pStr2:", pStr2, ", 变量值类型:", typeof(pStr2))
Log("变量pStr3:", pStr3, ", 变量值类型:", typeof(pStr3))
Log("变量pStr4:", pStr4, ", 变量值类型:", typeof(pStr4))
Log("---------------------------开始测试下拉框类型参数---------------------------")
Log("变量pCombox1:", pCombox1, ", 变量值类型:", typeof(pCombox1))
Log("变量pCombox2:", pCombox2, ", 变量值类型:", typeof(pCombox2))
Log("变量pCombox3:", pCombox3, ", 变量值类型:", typeof(pCombox3))
Log("---------------------------开始测试加密串类型参数---------------------------")
Log("变量pSecretStr1:", pSecretStr1, ", 变量值类型:", typeof(pSecretStr1))
}

Полная стратегия тестирования параметров: https://www.fmz.com/strategy/455212
В параметрах выше скрыта конструкция зависимости параметров. Многие стратегии требуют включения ряда настроек на основе определенного параметра, что может быть достигнуто с помощью зависимостей параметров, подобных этой.
В платформе количественной торговли Inventor также имеется пять типов интерактивных элементов управления стратегиями, и на этот раз эти интерактивные элементы управления также были оптимизированы и обновлены. Добавлена «конфигурация компонента» для упрощения функции группировки.

Интерактивные элементы управления в основном такие же, как «конфигурация компонентов» параметров интерфейса стратегии. В дополнение к элементам управления по умолчанию для ввода, типы компонентов также поддерживают:
Использование такое же, как и у различных типов компонентов параметров интерфейса стратегии, поэтому здесь оно повторяться не будет.

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

Помимо элемента управления полем ввода по умолчанию, тип компонента также поддерживает:

Раскрывающийся список интерактивного элемента управления также был обновлен: «поддержка множественного выбора», «пользовательские значения по умолчанию», привязка параметров к определенным данным и т. д.
В дополнение к раскрывающемуся списку по умолчанию добавляются следующие компоненты:

Интерактивный элемент управления типа «кнопка» не имеет никаких элементов ввода. При срабатывании отправляемая интерактивная команда содержит только имя элемента управления «кнопка».
Лучший способ понять это — протестировать вручную. Стратегия тестирования также подготовлена здесь.
Следует отметить, что интерактивные элементы управления невозможно протестировать в системе бэктестинга, можно создать только тестирование в реальном времени.
function main() {
var lastCmd = ""
while (true) {
var cmd = GetCommand() // 接收交互控件产生的消息
if (cmd) {
Log(cmd)
lastCmd = cmd
}
LogStatus(_D(), lastCmd)
Sleep(500)
}
}
Случайным образом введите некоторую информацию, установите некоторые параметры, а затем нажмите кнопку интерактивного управления, чтобы сгенерировать интерактивные сообщения. Стратегия захватывает сообщения и распечатывает их.


Завершенная стратегия интерактивного контроля тестирования: https://www.fmz.com/strategy/455231



function main() {
Log("参数test1使用币种控件选择后,test1的值为:", test1)
Log("参数test2使用交易代码控件选择后,test2的值为:", test2)
}

参数test1使用币种控件选择后,test1的值为: BTC

参数test2使用交易代码控件选择后,test2的值为: ETH_USDT.next_quarter

function main() {
while (true) {
var cmd = GetCommand()
if (cmd) {
Log(cmd)
}
Sleep(2000)
}
}

test1:SOL

test2:XRP_USDT.swap