[TOC]

El desarrollo de estrategias en la plataforma de negociación cuantitativa Inventor es inseparable del diseño de parámetros de estrategia e interacciones de estrategia. La plataforma de comercio cuantitativo Inventor se compromete a proporcionar herramientas de comercio cuantitativo simples, fáciles de usar y potentes, e iterar continuamente el diseño y las funciones del producto. Al actualizar los “parámetros de estrategia” y los “controles de interacción”, se ha aumentado aún más la flexibilidad de diseño de parámetros e interacciones en el diseño de la estrategia. Se han mejorado las funciones de los parámetros de estrategia y los controles interactivos para que sea más fácil cumplir algunos requisitos de diseño. En este artículo, echemos un vistazo a dos aspectos esenciales del diseño de estrategia: el “diseño de parámetros de estrategia” y el “diseño de interacción de estrategia”.
Los tipos de parámetros de estrategia en Inventor Quant no han aumentado y siguen siendo los cinco tipos de parámetros con los que estamos familiarizados:
Entonces seguramente me preguntarás, ¿qué contenido se ha agregado y optimizado en esta actualización de la plataforma?
Esta actualización agrega “configuración de componentes” para los controles de enlace de parámetros, simplifica las funciones de “agrupación” y “dependencia de parámetros” e integra estas dos funciones en la “configuración de componentes”. Para el valor predeterminado del parámetro, se agrega una opción “opcional”/“obligatoria” para determinar si la estrategia está calificada para la operación. Si el parámetro se establece como “obligatorio” pero no se escribe ningún valor específico en el control de parámetros cuando se La estrategia se ejecuta, Parámetros, la estrategia no se puede ejecutar en este momento. Ahora que tenemos una comprensión general de los cambios de actualización, probémoslos en detalle.

Hablamos brevemente sobre las funciones “opcionales”/“requeridas” anteriormente, por lo que no entraré en detalles aquí. A continuación se explica principalmente la “configuración de componentes”. La configuración de componentes se puede entender simplemente como:
Establezca las distintas propiedades, tipos y reglas de los controles a los que corresponden los parámetros (a los que están vinculados). El control de enlace predeterminado para los parámetros de tipo numérico (tipo número) es un cuadro de entrada. Puede establecer reglas para los datos recibidos por el cuadro de entrada, es decir, utilizar los controles de “valor mínimo” y “valor máximo” en la figura para establecer a ellos.
Además del control del cuadro de entrada predeterminado, la plataforma ha agregado:

Los parámetros de tipo booleano son especiales porque solo tienen un control correspondiente. Es el control de interruptor predeterminado. Y también se requiere el valor predeterminado del parámetro.
Debido a que los valores booleanos son verdaderos o falsos, son opciones binarias. Por lo tanto, es muy apropiado utilizar un control de conmutación que corresponda a este tipo de parámetro.
Generalmente, los parámetros de tipo booleano se utilizan para controlar si ciertas funciones de estrategia están habilitadas en la plataforma.

Además del control del cuadro de entrada predeterminado, la plataforma ha agregado:
texto En “Tipo de componente”, seleccione la configuración: Texto. El cuadro de entrada de control en la interfaz de estrategia correspondiente al parámetro actual cambiará a un cuadro de texto más grande. Las diferencias entre un control de texto y un control de cuadro de entrada normal son: el texto ingresado en el cuadro de texto se puede ajustar y el cuadro de texto puede ajustar el tamaño del control. El valor variable del parámetro de interfaz es: cadena.
Selector de hora En “Tipo de componente”, seleccione la configuración como: Selector de tiempo. El control del cuadro de entrada en la interfaz de estrategia correspondiente a los parámetros actuales se convertirá en un control para configurar la hora y la fecha. El “Selector de tiempo para el tipo de componente con parámetro de tipo cadena” es diferente del “Selector de tiempo para el tipo de componente con parámetro de tipo numérico”. La selección de tiempo para el parámetro de tipo cadena tiene una opción adicional de “Formato de tiempo”, que puede configurar la selección del control. Formato:
Selector de color En “Tipo de componente”, seleccione la configuración como: Selector de color. El control del cuadro de entrada en la interfaz de estrategia correspondiente al parámetro actual se convertirá en un control de selección de color. Generalmente se utiliza para diseñar parámetros para configurar colores. El valor variable del parámetro de interfaz es: cadena (el valor del color correspondiente al color seleccionado, por ejemplo: #7e1717).

El control predeterminado correspondiente al parámetro de tipo de cuadro desplegable es un cuadro desplegable, pero esta vez se han realizado muchas mejoras al cuadro desplegable de selección única simple anterior:
Además del control de cuadro desplegable predeterminado, esta vez la plataforma agrega:

El parámetro de tipo de cadena cifrada también es especial y solo tiene un control correspondiente. Es el control de cuadro de entrada cifrado predeterminado.
En la plataforma, generalmente se utilizan controles de tipo cadena cifrada para establecer información confidencial, como claves secretas, contraseñas, etc. Estos valores de parámetros de entrada se transmitirán después de ser cifrados localmente.
El valor variable del parámetro de interfaz es: cadena.
Para todos los tipos de parámetros de interfaz de estrategia mencionados anteriormente, esta actualización integra las funciones anteriores de “agrupación de parámetros” y “dependencia de parámetros” en la “configuración de componentes”. En la configuración de componentes de todos los parámetros de la interfaz hay configuraciones de “Agrupamiento” y “Filtro”.
Agrupamiento Puede ingresar directamente las etiquetas que desea agrupar en el cuadro de control desplegable del grupo y utilizar la tecla Entrar para confirmar la entrada del grupo. El sistema registrará la etiqueta ingresada actualmente en las opciones de agrupación. Luego puedes asignar grupos a los parámetros de la interfaz actual. Después de la agrupación, en la interfaz de backtesting de estrategia/trading real, los parámetros marcados como grupo se mostrarán en un área de agrupación.
Filtros Introduzca algunas expresiones en el control de filtro para determinar si es necesario activar y mostrar el parámetro actual. Esta función puede realizar que el parámetro actual se pueda mostrar u ocultar dependiendo de una determinada configuración de parámetro. Ejemplos de expresiones de filtro:
过滤器格式: a>b , a==1 , a , !a , a>=1&&a<=10 , a>b
Aquí, a y b representan variables de parámetros de interfaz de estrategia.
Si las explicaciones anteriores son un poco poco intuitivas, la mejor forma de entenderlas es usar y probar estas funciones de parámetros:
Tomemos como ejemplo la política del lenguaje 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))
}

Estrategia completa de prueba de parámetros: https://www.fmz.com/strategy/455212
En los parámetros anteriores se esconde un diseño de dependencia de parámetros. Muchas estrategias exigen habilitar una serie de configuraciones basadas en un parámetro determinado, lo que se puede lograr con dependencias de parámetros como esta.
También hay cinco tipos de controles interactivos de estrategia en la Plataforma de Comercio Cuantitativo Inventor, y estos controles interactivos también se han optimizado y actualizado esta vez. Se agregó “configuración de componentes” para simplificar la función de agrupación.

Los controles interactivos son básicamente los mismos que la “configuración de componentes” de los parámetros de la interfaz de estrategia. Además de los controles de cuadro de entrada predeterminados, los tipos de componentes también admiten:
El uso es el mismo que el de varios tipos de componentes de los parámetros de la interfaz de estrategia, por lo que no se repetirá aquí.

Los controles interactivos son básicamente los mismos que la “configuración de componentes” de los parámetros de la interfaz de estrategia.

Además del control del cuadro de entrada predeterminado, el tipo de componente también admite:

También se ha actualizado el cuadro desplegable del control interactivo: “admite selecciones múltiples”, “valores predeterminados personalizados”, vinculación de opciones a datos específicos, etc.
Además del componente de cuadro desplegable predeterminado, se agregan los siguientes:

Un control interactivo de tipo botón no tiene ningún elemento de entrada. Cuando se activa, el comando interactivo enviado contiene únicamente el nombre del control de botón.
La mejor manera de entenderlo es probarlo manualmente. Aquí también se prepara una estrategia de prueba.
Cabe señalar que los controles interactivos no se pueden probar en el sistema de backtesting y solo se pueden crear pruebas en tiempo real.
function main() {
var lastCmd = ""
while (true) {
var cmd = GetCommand() // 接收交互控件产生的消息
if (cmd) {
Log(cmd)
lastCmd = cmd
}
LogStatus(_D(), lastCmd)
Sleep(500)
}
}
Ingrese información al azar, configure algunas opciones y luego haga clic en el botón de control interactivo para generar mensajes interactivos. La estrategia captura los mensajes y los imprime.


Estrategia de prueba de control interactiva completada: 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