Módulo de visualização para construir estratégia de negociação - primeira vista

Criado em: 2019-07-08 09:23:59, atualizado em: 2024-12-23 17:57:33
comments   7
hits   7021

Módulo de visualização para construir estratégia de negociação - primeira vista

Módulo de visualização para construir estratégia de negociação - primeira vista

A programação visual sempre foi uma meta desejada pelos desenvolvedores de ferramentas de software, mesmo no campo da negociação quantitativa. Porque a abordagem de visualização “o que você vê é o que você obtém” reduz muito o limite técnico para o desenvolvimento de programação. Os usuários não precisam mais lidar com um monte de codificação chata. Eles só precisam usar seus cérebros, imaginação e pensamento lógico, e focar no negócio em si. Você pode realizar um programa que você deseja, não é incrível!

Então vamos entrar juntos no campo da programação visual de estratégias de negociação quantitativa!

  • ## Inventor inicial da programação visual quantizada

Após efetuar login em https://www.fmz.com, registre uma conta (se já tiver se registrado, faça login diretamente) e clique em: Centro de Controle->Biblioteca de Políticas->Nova Política.

Módulo de visualização para construir estratégia de negociação - primeira vista

Podemos ver uma estratégia de visualização inicial. Ele somente emite as informações de ativos da conta da exchange configurada padrão (o primeiro objeto de exchange adicionado no backtest ou robô). (Como mostrado abaixo)

Módulo de visualização para construir estratégia de negociação - primeira vista

## Antes de começarmos a aprender como usar a visualização, podemos primeiro entender alguns conceitos de design de visualização.

  • 1. Emenda

    Uma observação cuidadosa revela que todos os módulos têm encaixes (côncavos) e encaixes (convexos), o que significa que os módulos podem ser “conectados” e “conectados”. Se os códigos funcionais representados por dois módulos puderem ser conectados, eles serão encaixados quando você aproximar a espiga e o encaixe dos dois módulos.

    Módulo de visualização para construir estratégia de negociação - primeira vista

  • 2. Configurações e ajustes do módulo

    Alguns módulos possuem algumas configurações especiais, por exemplo:

    Módulo de visualização para construir estratégia de negociação - primeira vista

    Você pode arrastar o módulo “Projeto” à esquerda para o módulo “Unir”, para poder adicionar uma posição de encaixe e espiga, adicionando assim uma posição para emendar o texto. Dessa forma, você pode fazer alguns ajustes e configurações no módulo clicando na pequena engrenagem.

  • 3. Parâmetros de entrada padrão do módulo

    Alguns módulos exigem parâmetros de entrada, que podem ser valores, strings, etc. Se você não adicionar variáveis ​​como parâmetros de entrada do módulo, o módulo será executado de acordo com os parâmetros de entrada padrão.

    Módulo de visualização para construir estratégia de negociação - primeira vista Um módulo de cálculo como este para encontrar raízes quadradas gera os resultados dos cálculos deste módulo. Módulo de visualização para construir estratégia de negociação - primeira vista Como você pode ver, se o parâmetro de entrada estiver ausente, o valor padrão 9 será usado como parâmetro de entrada para calcular a raiz quadrada de 9. Módulo de visualização para construir estratégia de negociação - primeira vista

    Claro, se você quiser usar um módulo variável como um parâmetro de entrada, você pode conectar diretamente o módulo variável à posição de encaixe e espiga (recesso). Módulo de visualização para construir estratégia de negociação - primeira vista

  • 4. Operação

    O módulo pode ser clicado e arrastado com o botão esquerdo do mouse. Os módulos podem ser copiados usando ctrl + c e colados usando ctrl + v, tão convenientemente quanto copiar e colar código ou texto. A área de operação pode ser ampliada ou reduzida usando a roda do mouse, e todos os módulos serão ampliados ou reduzidos. Clique e segure uma área em branco na área de operação e arraste para mover a área de operação. A lixeira à direita registra os módulos que foram excluídos recentemente. Mais importante, depois de montar a estratégia do módulo, não se esqueça de clicar em “Salvar”.

  • Introdução ao módulo Ferramentas de visualização

Você pode ver que há muitas categorias de módulos no lado esquerdo da área de edição visual, e há muitos módulos visuais disponíveis em cada categoria.

Módulo de visualização para construir estratégia de negociação - primeira vista Há 11 categorias no total.

  • Módulo de ferramentas:

    Módulo de visualização para construir estratégia de negociação - primeira vista


    • ### 1. Informações de saída:

    Este módulo é normalmente usado em combinação com módulos de texto, conforme mostrado abaixo: Módulo de visualização para construir estratégia de negociação - primeira vista Você pode inserir uma string no módulo de classe de texto para que, quando você executar o módulo “informações de saída”, o conteúdo da string no módulo de texto seja impresso. Módulo de visualização para construir estratégia de negociação - primeira vista Teste retrospectivo: Módulo de visualização para construir estratégia de negociação - primeira vista

    Como código de linguagem JavaScript:

      function main(){
          Log("你好,可视化编程!")
      }
    

    • ### 2. Envio do WeChat:

    Este módulo se parece com “Informações de saída”, exceto que ele emite informações e as envia para a conta WeChat vinculada à conta atual. Módulo de visualização para construir estratégia de negociação - primeira vista Módulo de visualização para construir estratégia de negociação - primeira vista

    Como código de linguagem JavaScript:

      function main () {
          Log("微信推送!@")
      }
    

    • ### 3. Lançando uma exceção

    O módulo throw exception permite que o programa gere um erro e então interrompa a execução do programa (sem escrever código de tratamento de exceção). Módulo de visualização para construir estratégia de negociação - primeira vista

    Isso é semelhante à estratégia do JavaScript, em que a função throw “string a ser gerada” é executada diretamente na função principal.

      function main () {
          throw "第一句就抛出异常,让程序停止!"
      }
    

    Resultados do backtesting: Módulo de visualização para construir estratégia de negociação - primeira vista Geralmente é usado com mais frequência durante a depuração, por exemplo, quando você deseja que o programa pare sob uma determinada condição e imprima alguns dados naquele momento para facilitar a observação. Ou você pode colocar um módulo de geração de exceções no fluxo de código onde podem ocorrer problemas, para que o programa possa relatar erros e descobrir alguns erros.


    • ### 4. Hibernação

    Módulo de hibernação Módulo de visualização para construir estratégia de negociação - primeira vista Como na estratégia JavaScript:

      function main () {
          Sleep(1000 * 5)
      }
    

    Teste o módulo de hibernação: Módulo de visualização para construir estratégia de negociação - primeira vista Resultados do backtesting: Módulo de visualização para construir estratégia de negociação - primeira vista


    • ### 5. Impressão de renda

    Módulo de visualização para construir estratégia de negociação - primeira vista

    Este módulo é semelhante à função LogProfit da API da plataforma de negociação quantitativa do Inventor, imprimindo o log de lucro e desenhando automaticamente a curva de lucro com base nos parâmetros de entrada.

    Por exemplo: Módulo de visualização para construir estratégia de negociação - primeira vista A execução do backtest é mostrada abaixo: Módulo de visualização para construir estratégia de negociação - primeira vista O código de política JavaScript correspondente é o seguinte:

      function main () {
          LogProfit(1)
          Sleep(1000 * 5)
          LogProfit(2)
          Sleep(1000 * 5)
          LogProfit(3)
          Sleep(1000 * 5)
          LogProfit(2)
          Sleep(1000 * 5)
          LogProfit(5)
      }
    

    Ele pode ser emendado em qualquer local onde você queira gerar informações de receita.


    • ### 6. Laço

    Módulo de visualização para construir estratégia de negociação - primeira vista O módulo de loop pode encapsular uma série de combinações de módulos emendados e permitir que essa combinação de módulos seja executada em um loop.

    teste: Módulo de visualização para construir estratégia de negociação - primeira vista Resultados do backtesting: Módulo de visualização para construir estratégia de negociação - primeira vista Pode-se observar que após o módulo de loop envolver a combinação de módulos que consiste em Print Profit e Sleep, a combinação de módulos será executada continuamente.


    • ### 7. Execução do loop a cada N segundos

    Módulo de visualização para construir estratégia de negociação - primeira vista O uso deste módulo é basicamente o mesmo do módulo de loop, a única diferença é que este módulo tem uma função de suspensão integrada. Módulo de visualização para construir estratégia de negociação - primeira vista


    • ### 8. Processamento de precisão

    Módulo de visualização para construir estratégia de negociação - primeira vista Este módulo pode ser usado quando módulos variáveis ​​ou valores numéricos precisam controlar a precisão. O valor numérico da parte do parâmetro de entrada será emitido como o valor numérico das casas decimais especificadas de acordo com as configurações.

    Por exemplo, o número 3,1415926535897 é processado com precisão. Módulo de visualização para construir estratégia de negociação - primeira vista

    O backtesting mostra: Módulo de visualização para construir estratégia de negociação - primeira vista


    • ### 9. Limpe o log

    Módulo de visualização para construir estratégia de negociação - primeira vista

    Usado para limpar logs. Dependendo dos parâmetros de entrada, uma parte dos logs pode ser retida. Conforme a documentação da API:

      LogReset()
    

    • ### 10. Limpe o registro de renda

    Módulo de visualização para construir estratégia de negociação - primeira vista

    Usado para limpar o log de receita. Dependendo dos parâmetros de entrada, uma parte do log pode ser retida. Conforme a documentação da API:

      LogProfitReset()
    

    A seguir estão alguns módulos de ferramentas usados ​​com frequência

    • ### 11. Módulo funcional para obtenção de determinado atributo do mercado

    Módulo de visualização para construir estratégia de negociação - primeira vista

    Este módulo de ferramenta precisa ser usado em conjunto com o módulo de mercado no “Tipo de módulo de negociação”, conforme mostrado na figura: Módulo de visualização para construir estratégia de negociação - primeira vista

    Use o módulo de informações de saída para gerar o preço de transação mais recente do mercado de ticker mais recente: Módulo de visualização para construir estratégia de negociação - primeira vista

    O backtesting mostra: Módulo de visualização para construir estratégia de negociação - primeira vista

    Como o código de estratégia JavaScript:

      function main () {
          Log(exchange.GetTicker().Last)
      }
    
    • ### 12. Módulo para obtenção dos atributos de uma determinada barra de dados K-line

    Módulo de visualização para construir estratégia de negociação - primeira vista

    Este módulo também precisa ser usado junto com o módulo de aquisição de dados K-line no “Tipo de módulo de negociação”.

    Primeiro crie um módulo variável e nomeie-o: K-line. Módulo de visualização para construir estratégia de negociação - primeira vista Em seguida, obtenha os dados da linha K, use o módulo de dados da linha K para obtê-los e atribua-os ao módulo de variável: “linha K”. Módulo de visualização para construir estratégia de negociação - primeira vista Em seguida, use o módulo de comprimento da lista no “Tipo de módulo de lista” para obter o comprimento do módulo variável da linha K, que é usado para especificar de qual barra da linha K obter dados. Módulo de visualização para construir estratégia de negociação - primeira vista Costure, conforme mostrado: Módulo de visualização para construir estratégia de negociação - primeira vista Quando o backtest é executado, o registro de data e hora da última barra da linha K é impresso. Módulo de visualização para construir estratégia de negociação - primeira vista

    • ### 13. Módulo para obtenção de dados de ordens no livro de ordens

    Módulo de visualização para construir estratégia de negociação - primeira vista

    Ele também precisa ser usado junto com o módulo Obter Dados de Profundidade no “Tipo de Módulo de Transação”.

    Módulo de visualização para construir estratégia de negociação - primeira vista

    Defina o índice como 0, defina uma ordem de venda e obtenha as informações da ordem de venda.

    Módulo de visualização para construir estratégia de negociação - primeira vista

    Como o código de estratégia JavaScript:

      function main () {
          Log(exchange.GetDepth().Asks[0])
      }
    
    • ### 14. Módulo para obtenção de determinado atributo em informações de ativos

    Módulo de visualização para construir estratégia de negociação - primeira vista Este módulo precisa ser usado em conjunto com o módulo Obter informações de ativos. Módulo de visualização para construir estratégia de negociação - primeira vista

    Por exemplo: imprimir a quantidade de moedas disponíveis na conta corrente Módulo de visualização para construir estratégia de negociação - primeira vista

    O backtesting mostra: Módulo de visualização para construir estratégia de negociação - primeira vista

    Como na estratégia JavaScript:

      function main () {
          Log(exchange.GetAccount().Stocks)
      }
    
    • ### 15. Módulo para obter um determinado atributo em dados de pedidos

    Módulo de visualização para construir estratégia de negociação - primeira vista

    Este módulo é usado para obter o valor de um determinado atributo nos dados do pedido, como o preço ou a quantidade da primeira venda no livro de pedidos (exemplo número 13). Módulo de visualização para construir estratégia de negociação - primeira vista

    Resultados do backtesting: Módulo de visualização para construir estratégia de negociação - primeira vista Como na estratégia JavaScript:

      function main () {
          Log(exchange.GetDepth().Asks[0].Price)
      }
    

    Ele também pode ser usado para obter um determinado atributo nas informações do pedido retornadas pelo “Módulo de Detalhes do Pedido de Consulta” (que será explicado na seção avançada).

    • ### 16. Módulo para obtenção dos atributos de uma determinada posição nas informações de posição

    Módulo de visualização para construir estratégia de negociação - primeira vista

    Da mesma forma, ele deve ser usado junto com o “Get Futures Position Module”. Deve-se notar que os dados de posição retornados pelo Get Futures Position Module são uma matriz (lista), que é uma estrutura de dados contendo posições de diferentes contratos e direções . Portanto, você deve especificar o índice ao usá-lo.

    Depois de aprender tanto, vamos combinar uma operação de hedge, ou seja, fazer hedge tanto de contratos de curto prazo quanto de contratos futuros ao mesmo tempo. Fazemos um hedge de arbitragem positivo, ou seja, abrimos um contrato a termo curto, 1 contrato, e abrimos um contrato longo no curto prazo.

    Módulo de visualização para construir estratégia de negociação - primeira vista

    Resultados do backtesting: Módulo de visualização para construir estratégia de negociação - primeira vista

Exemplo de estratégia de visualização:

Mais estratégias estão disponíveis em: https://www.fmz.com/square

Outros artigos desta série

Programação chata pode ser facilmente concluída usando blocos de construção. Experimente, é muito interessante!