avatar of 发明者量化-小小梦 发明者量化-小小梦
focar em Mensagem privada
4
focar em
1271
Seguidores

Explicação detalhada dos novos recursos dos parâmetros da interface de estratégia e controles interativos

Criado em: 2024-06-26 17:42:51, atualizado em: 2024-08-02 16:11:43
comments   0
hits   967

[TOC]

Explicação detalhada dos novos recursos dos parâmetros da interface de estratégia e controles interativos

O desenvolvimento de estratégias na plataforma de negociação quantitativa Inventor é inseparável do design de parâmetros estratégicos e interações estratégicas. A plataforma de negociação quantitativa Inventor está comprometida em fornecer ferramentas de negociação quantitativa simples, fáceis de usar e poderosas, além de iterar continuamente o design e as funções do produto. Ao atualizar os “parâmetros de estratégia” e os “controles de interação”, a flexibilidade de design de parâmetros e interações no design de estratégia foi aumentada ainda mais. As funções dos parâmetros de estratégia e controles interativos foram aprimoradas para tornar alguns requisitos de design mais fáceis de serem alcançados. Neste artigo, vamos dar uma olhada em dois aspectos essenciais do design de estratégia: “design de parâmetros de estratégia” e “design de interação de estratégia”.

Parâmetros da interface de estratégia

Os tipos de parâmetros de estratégia no Inventor Quant não aumentaram e ainda são os cinco tipos de parâmetros com os quais estamos familiarizados:

  • Parâmetros de tipo numérico
  • Parâmetro do tipo string
  • Parâmetros do tipo booleano
  • Parâmetros do tipo caixa suspensa
  • Parâmetro do tipo string criptografada

Então você certamente me perguntará: qual conteúdo foi adicionado e otimizado nesta atualização da plataforma?

Esta atualização adiciona “configuração de componente” para controles de vinculação de parâmetros, simplifica as funções de “agrupamento” e “dependência de parâmetro” e integra essas duas funções na “configuração de componente”. Para o valor padrão do parâmetro, uma opção “opcional”/“obrigatório” é adicionada para determinar se a estratégia está qualificada para operação. Se o parâmetro for definido como “obrigatório”, mas nenhum valor específico for escrito no controle de parâmetro quando o a estratégia é executada, Parâmetros, a estratégia não pode ser executada neste momento. Agora que temos uma compreensão geral das mudanças de atualização, vamos testá-las em detalhes.

1. Parâmetros do tipo numérico

Explicação detalhada dos novos recursos dos parâmetros da interface de estratégia e controles interativos

Já falamos brevemente sobre as funções “opcionais”/“obrigatórias”, então não entrarei em detalhes aqui. O seguinte explica principalmente “configuração de componente”. A configuração de componente pode ser entendida simplesmente como:

Defina as várias propriedades, tipos e regras dos controles aos quais os parâmetros correspondem (estão vinculados). O controle de limite padrão para parâmetros de tipo numérico (tipo de número) é uma caixa de entrada. Você pode definir regras para os dados recebidos pela caixa de entrada, ou seja, use os controles “valor mínimo” e “valor máximo” na figura para definir eles.

Além do controle de caixa de entrada padrão, a plataforma adicionou:

  • Selecionador de tempo Em “Tipo de componente”, selecione a configuração como: Seletor de tempo, e o controle da caixa de entrada na interface de estratégia correspondente ao parâmetro atual se tornará um controle de seleção de tempo. Ao definir este parâmetro, selecione um horário específico. O valor da variável deste parâmetro é o timestamp correspondente ao horário definido. Tais controles são geralmente usados ​​para configurações de intervalo de tempo, configurações de data de início e término. Esse uso muito conveniente e intuitivo de controles de data permite que a estratégia saiba o timestamp correspondente, sem a necessidade de escrever um código complexo de conversão de tempo. O valor variável do parâmetro de interface é: valor (representando o registro de data e hora)
  • Barra de entrada de slides Se for definido como um controle de barra de entrada deslizante, você deve especificar o “valor mínimo” e o “valor máximo” para determinar o intervalo do controle deslizante. O tamanho do passo se refere ao valor do intervalo no controle deslizante quando ele se move uma vez.
    A barra de entrada deslizante pode implementar muito convenientemente um parâmetro para controlar os níveis de stop loss e take profit. Claro, pode haver muitos outros designs, que não serão elaborados aqui. O valor variável do parâmetro interface é: valor (representando as informações de posição do controle deslizante na barra deslizante)

2. Parâmetros do tipo booleano

Explicação detalhada dos novos recursos dos parâmetros da interface de estratégia e controles interativos

Parâmetros do tipo booleano são especiais porque têm apenas um controle correspondente. É o controle de switch padrão. E o valor padrão do parâmetro também é necessário.

Como os valores booleanos são verdadeiros ou falsos, eles são opções binárias. Portanto, é muito apropriado usar um controle de chave para corresponder a esse tipo de parâmetro.

Geralmente, parâmetros do tipo booleano são usados ​​para controlar se certas funções de estratégia estão habilitadas na plataforma.

3. Parâmetros do tipo string

Explicação detalhada dos novos recursos dos parâmetros da interface de estratégia e controles interativos

Além do controle de caixa de entrada padrão, a plataforma adicionou:

  • texto Em “Tipo de componente”, selecione a configuração: Texto. O controle da caixa de entrada na interface de estratégia correspondente ao parâmetro atual mudará para uma caixa de texto maior. As diferenças entre um controle de texto e um controle de caixa de entrada comum são: o texto inserido na caixa de texto pode ser quebrado, e a caixa de texto pode ajustar o tamanho do controle. O valor variável do parâmetro interface é: string.

  • Selecionador de tempo Em “Tipo de componente”, selecione a configuração como: Seletor de tempo. O controle da caixa de entrada na interface de estratégia correspondente aos parâmetros atuais se tornará um controle para definir hora e data. O “Time Selector for Component Type with String Type Parameter” é diferente do “Time Selector for Component Type with Numeric Type Parameter”. A seleção de tempo para o parâmetro do tipo string tem uma opção adicional “Time Format”, que pode definir o Select do controle Formatar:

    1. Data: Quando o “Formato de hora” é definido como “Data”, o controle é um controle de seleção de hora completo para selecionar ano, mês, dia, hora, minuto e segundo, e suporta seleção com um clique da hora atual .
    2. Hora: Quando o “Formato de hora” é definido como “Hora”, o controle é um controle de seleção de hora para selecionar minutos, horas e segundos.
    3. Ano e mês: quando o “Formato de hora” é definido como “Ano e mês”, o controle é um controle de seleção de hora para selecionar ano e mês.
    4. Ano: Quando o “Formato de hora” é definido como “Ano”, o controle é um controle de seleção de hora para selecionar um ano. O valor variável do parâmetro interface é: string (formatado como o tempo correspondente).
  • Seletor de cores Em “Tipo de componente”, selecione a configuração como: Seletor de cores. O controle da caixa de entrada na interface de estratégia correspondente ao parâmetro atual se tornará um controle de seleção de cores. Geralmente usado para projetar parâmetros para definir cores. O valor variável do parâmetro interface é: string (o valor da cor correspondente à cor selecionada, por exemplo: #7e1717).

4. Parâmetros do tipo caixa suspensa

Explicação detalhada dos novos recursos dos parâmetros da interface de estratégia e controles interativos

O controle padrão correspondente ao parâmetro do tipo caixa suspensa é uma caixa suspensa, mas desta vez muitas atualizações foram feitas na caixa suspensa simples de seleção única anterior:

  • Suporte para seleção múltipla Você pode selecionar várias opções ao mesmo tempo no controle da caixa suspensa correspondente ao parâmetro da caixa suspensa. Neste caso, o valor da variável do parâmetro da caixa suspensa não é mais o índice da opção selecionada, mas uma matriz. A matriz contém os índices ou dados de ligação de todas as opções selecionadas.
  • Suporte a valores padrão personalizados Quando esta opção está ativada, você pode personalizar o valor padrão em vez de ter que selecionar uma opção na caixa suspensa como valor padrão.
  • Adicionada a função de vincular valores numéricos e strings às opções da caixa suspensa. Vincular uma string ou valor a uma opção. Ao definir esse parâmetro, o valor da variável da caixa suspensa não é mais o índice da opção selecionada, mas a string ou valor vinculado à opção selecionada.

Além do controle de caixa suspensa padrão, desta vez a plataforma adiciona:

  • Controlador de Segmento Em “Tipo de componente”, selecione a configuração: Controlador de segmento. Dessa forma, o controle vinculado ao parâmetro atual se torna um controle deslizante segmentado selecionável, e você pode selecionar um bloco segmentado específico. Geralmente, ele pode ser projetado como: geralmente usado para alternar entre várias opções mutuamente exclusivas, frequentemente usado para filtrar conteúdo por categoria ou tag, escolher entre diferentes modos de operação, etc. O valor variável do parâmetro de interface é: o índice da parte selecionada do controlador de segmento ou os dados vinculados à parte selecionada (os dados vinculados suportam valores numéricos e strings).

5. Parâmetros do tipo string criptografados

Explicação detalhada dos novos recursos dos parâmetros da interface de estratégia e controles interativos

O parâmetro do tipo string criptografada também é especial e tem apenas um controle correspondente. É o controle de caixa de entrada criptografada padrão.

Na plataforma, controles do tipo string criptografada geralmente são usados ​​para definir algumas informações confidenciais, como chaves secretas, senhas, etc. Esses valores de parâmetros de entrada serão transmitidos após serem criptografados localmente.

O valor variável do parâmetro interface é: string.

Para todos os tipos de parâmetros de interface de estratégia acima, esta atualização integra as funções anteriores de “agrupamento de parâmetros” e “dependência de parâmetros” na “configuração de componentes”. Há configurações de “Agrupamento” e “Filtro” na configuração do componente de todos os parâmetros da interface.

  • Agrupamento Você pode inserir diretamente os rótulos que deseja agrupar no controle da caixa suspensa do grupo e usar a tecla Enter para confirmar a entrada do grupo. O sistema registrará o rótulo inserido atualmente nas opções de agrupamento. Então você pode atribuir grupos aos parâmetros de interface atuais. Após o agrupamento, na interface de backtesting de estratégia/negociação real, os parâmetros marcados como um grupo serão exibidos em uma área de agrupamento.

  • Filtros Insira algumas expressões no controle de filtro para determinar se o parâmetro atual precisa ser ativado e exibido. Esta função permite que o parâmetro atual seja exibido ou ocultado dependendo de uma determinada configuração de parâmetro. Exemplos de expressão de filtro:

  过滤器格式: a>b , a==1 , a , !a , a>=1&&a<=10 , a>b

Aqui, a e b representam variáveis ​​de parâmetros de interface de estratégia.

Estratégia de teste de parâmetros de interface

Se as explicações acima não forem muito intuitivas, a melhor maneira de entendê-las é usar e testar estas funções de parâmetros:

Tomemos como exemplo a política de linguagem 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))
}

Explicação detalhada dos novos recursos dos parâmetros da interface de estratégia e controles interativos

Estratégia completa de teste de parâmetros: https://www.fmz.com/strategy/455212

Há um design de dependência de parâmetros oculto nos parâmetros acima. Muitas estratégias têm o requisito de habilitar uma série de configurações com base em um determinado parâmetro, o que pode ser alcançado com dependências de parâmetros como esta.

Controles interativos

Há também cinco tipos de controles interativos de estratégia na Plataforma de Negociação Quantitativa do Inventor, e esses controles interativos também foram otimizados e atualizados desta vez. Adicionada “configuração de componentes” para simplificar a função de agrupamento.

1. Controles interativos digitais

Explicação detalhada dos novos recursos dos parâmetros da interface de estratégia e controles interativos

Os controles interativos são basicamente os mesmos que a “configuração do componente” dos parâmetros da interface de estratégia. Além dos controles da caixa de entrada padrão, os tipos de componentes também suportam:

  • Selecionador de tempo O comando interativo enviado contém um registro de data e hora da seleção.
  • Barra de entrada de slides O comando interativo enviado contém o valor representado pela posição do controle deslizante selecionado.

O uso é o mesmo de vários tipos de componentes de parâmetros de interface de estratégia, portanto não será repetido aqui.

2. Controles interativos booleanos (verdadeiro/falso)

Explicação detalhada dos novos recursos dos parâmetros da interface de estratégia e controles interativos

Os controles interativos são basicamente os mesmos que a “configuração de componentes” dos parâmetros da interface de estratégia.

3. Controles interativos de string

Explicação detalhada dos novos recursos dos parâmetros da interface de estratégia e controles interativos

Além do controle da caixa de entrada padrão, o tipo de componente também suporta:

  • texto O comando interativo enviado contém o conteúdo inserido na caixa de texto.
  • Selecionador de tempo O comando interativo enviado contém uma sequência de tempo do horário selecionado, com vários formatos para escolher.
  • Seletor de cores O comando interativo enviado contém a sequência de valores de cor da cor selecionada.

4. Caixa suspensa (selecionada) controle interativo

Explicação detalhada dos novos recursos dos parâmetros da interface de estratégia e controles interativos

A caixa suspensa do controle interativo também foi atualizada: “suporte a múltiplas seleções”, “valores padrão personalizados”, vinculação de opções a dados específicos, etc.

Além do componente de caixa suspensa padrão, o seguinte foi adicionado:

  • Controlador de Segmento O comando interativo enviado contém o índice ou dados vinculados do controle deslizante selecionado.

5. Controle interativo de botões

Explicação detalhada dos novos recursos dos parâmetros da interface de estratégia e controles interativos

Um controle interativo do tipo botão não tem nenhum item de entrada. Quando acionado, o comando interativo enviado contém apenas o nome do controle do botão.

Estratégia de teste de controle interativo

A melhor maneira de entender é testá-lo manualmente. Uma estratégia de teste também é preparada aqui.

Vale ressaltar que controles interativos não podem ser testados no sistema de backtesting, e somente testes em tempo real podem ser criados.

function main() {
    var lastCmd = ""
    while (true) {
        var cmd = GetCommand()  // 接收交互控件产生的消息
        if (cmd) {
            Log(cmd)
            lastCmd = cmd
        }
        LogStatus(_D(), lastCmd)
        Sleep(500)
    }
}

Insira aleatoriamente algumas informações, defina algumas opções e clique no botão de controle interativo para gerar mensagens interativas. A estratégia captura as mensagens e as imprime. Explicação detalhada dos novos recursos dos parâmetros da interface de estratégia e controles interativos

Explicação detalhada dos novos recursos dos parâmetros da interface de estratégia e controles interativos

Estratégia de teste de controle interativo concluída: https://www.fmz.com/strategy/455231

renovar

  1. A plataforma atualizou o tipo de string e o tipo de caixa suspensa dos parâmetros de interface e controles interativos; e adicionou suporte para 2 novos controles:

Explicação detalhada dos novos recursos dos parâmetros da interface de estratégia e controles interativos

Explicação detalhada dos novos recursos dos parâmetros da interface de estratégia e controles interativos

  1. Teste de parâmetros de uso de controle de moeda e controle de código de negociação (par de negociação) em parâmetros de interface de estratégia

Explicação detalhada dos novos recursos dos parâmetros da interface de estratégia e controles interativos

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

Explicação detalhada dos novos recursos dos parâmetros da interface de estratégia e controles interativos

  参数test1使用币种控件选择后,test1的值为: BTC
  • 2. Código de negociação (par de negociação)

Explicação detalhada dos novos recursos dos parâmetros da interface de estratégia e controles interativos

  参数test2使用交易代码控件选择后,test2的值为: ETH_USDT.next_quarter
  1. Configure testes interativos usando controles de moeda e controles de código de transação (par de transações) nos controles de interação de estratégia:

Explicação detalhada dos novos recursos dos parâmetros da interface de estratégia e controles interativos

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

Explicação detalhada dos novos recursos dos parâmetros da interface de estratégia e controles interativos

  test1:SOL
  • 2. Código de negociação (par de negociação)

Explicação detalhada dos novos recursos dos parâmetros da interface de estratégia e controles interativos

  test2:XRP_USDT.swap