A programação de visualização sempre foi um objetivo ambicioso para os desenvolvedores de ferramentas de software, mesmo no campo da quantificação de transações. A visualização do que parece ser o que acontece é uma maneira de reduzir drasticamente o limite técnico para o desenvolvimento de programação. Os usuários não precisam mais lidar com uma pilha de código chato, mas apenas usar suas mentes, usar sua imaginação e pensamento lógico e se concentrar no próprio negócio. É maravilhoso que você possa realizar um programa que você quer!
Então, vamos entrar no campo da programação visual para quantificar estratégias de negociação!
Entrarhttps://www.fmz.comEm seguida, clique em: Centro de Controle - > Biblioteca de Políticas - > Criar novas políticas.
A partir daí, podemos ver uma estratégia inicial de visualização. A função é apenas a de exportar informações de ativos da conta de uma bolsa configurada por defeito (revisão ou, no bot, o primeiro objeto de troca adicionado). (Figura abaixo)
Observação atenta mostra que os módulos são de conchas e conchas, o que significa que os módulos podem ser "conectados" e "conectados". Se o código funcional representado pelos dois módulos puder ser conectado, então você vai se juntar quando você aproxima os dois módulos.
Alguns módulos possuem locais especiais onde podem ser configurados, como:
Você pode arrastar o módulo "Objetos" do lado esquerdo para o módulo "Juntar" para adicionar um ponto de junção, adicionando assim um ponto de junção. Assim, você pode passar, clicar na pequena engrenagem e fazer alguns ajustes e configurações no módulo.
Alguns módulos exigem a entrada de alguns parâmetros, que podem ser valores numéricos ou strings. Se não for adicionado uma variável como um parâmetro de entrada do módulo, o módulo é executado de acordo com o parâmetro de entrada padrão.
Um módulo de cálculo semelhante a um módulo de cálculo de raízes quadradas como este, produz os resultados desse módulo.Como se pode ver, se o parâmetro de entrada estiver desativado, a raiz quadrada de 9 é calculada como parâmetro de entrada pelo valor padrão de 9.
Claro, se você quiser usar um módulo de variável como um parâmetro de entrada, você pode colocar o módulo de variável diretamente na posição
O módulo pode ser colocado e arrastado com o botão esquerdo do mouse. O módulo pode ser copiado com as teclas Ctrl + C e colado com as teclas Ctrl + V, o que é tão fácil quanto copiar e colar código ou texto. A área de operação pode ser reduzida ao tamanho com o rodapé do mouse, e todos os módulos podem ser aumentados ou diminuídos. O espaço em branco na área de operação é arrastado, permitindo mover a área de operação. O lixo à direita registra os módulos que foram removidos mais recentemente. O mais importante é que a política do módulo esteja bem articulada, e não se esqueça do ponto "guardar".
Como você pode ver no lado esquerdo da área de edição de visualização, há muitas categorias de módulos, e há muitas categorias de módulos de visualização disponíveis para cada item.
A partir daí, o blogue foi dividido em 11 categorias.
O módulo é geralmente usado em combinação com módulos de classes de texto, como mostrado abaixo:Pode-se inserir uma string no módulo de classe de texto, para que o conteúdo da string no módulo de texto seja impresso quando o módulo "Exportar informações" for executado.Revisão:
Por exemplo, o código da linguagem JavaScript:
function main(){
Log("你好,可视化编程!")
}
O módulo tem a mesma aparência de "Exportar Informações", mas é diferente de "Exportar Informações" e "Push" as informações para o WeChat ligado à conta atual.
Por exemplo, o código da linguagem JavaScript:
function main () {
Log("微信推送!@")
}
Lançar um módulo de anomalias faz com que o programa faça um erro e então o programa pare de executar (sem escrever o código de tratamento de anomalias).
A função é executada diretamente na função main em uma política de JavaScript semelhante à função de arremessar.
function main () {
throw "第一句就抛出异常,让程序停止!"
}
Os resultados do teste:Geralmente, é mais usado no momento do depurador, por exemplo, para que o programa pare em uma determinada condição, e para que alguns dados sejam mais fáceis de observar quando são impressos. Ou colocar módulos anormais no processo de código que pode ter problemas, deixando o programa relatar erros e encontrar erros.
O módulo de hibernaçãoComo na política do JavaScript:
function main () {
Sleep(1000 * 5)
}
Testar o módulo de hibernação:Os resultados do teste:
O módulo, assim como a função LogProfit da API do inventor de plataforma de negociação quantitativa, imprime logs de receita e automaticamente traça curvas de receita com base nos parâmetros inseridos.
Por exemplo:O teste foi executado da seguinte forma:O código da 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)
}
O texto pode ser escrito em qualquer local onde você deseja exportar informações de ganhos.
Um módulo de ciclo pode ser envolvido em uma série de combinações de módulos empilhados, permitindo que essa combinação de módulos execute o ciclo.
Testes:Os resultados do teste:Pode-se ver que a combinação de módulos que envolve o módulo circular é executada continuamente após a combinação de módulos que compõem o ganho de impressão e o sono.
O módulo e o módulo circular são basicamente idênticos, a única diferença é que o módulo é automático.
O módulo de variáveis ou valores pode ser usado quando o controle de precisão é necessário. O valor da parte dos parâmetros pode ser inserido e, de acordo com a configuração, o valor será exibido como uma fração específica.
Por exemplo, o valor 3.1415926535897 é processado com precisão.
O teste mostra:
Para registros vazios, pode-se manter uma parte dos registros, dependendo dos parâmetros de entrada. Como diz o documento da API:
LogReset()
Para limpar o registro de ganhos, pode-se manter uma parte do registro, dependendo dos parâmetros de entrada. Como diz o documento da API:
LogProfitReset()
Este módulo de ferramenta deve ser usado em conjunto com o módulo de mercado no "tipo de módulo de negociação", como mostra:
Exportação de preços de transações mais recentes para transações de ticker mais recentes usando o módulo de informações de saída:
O teste mostra:
Por exemplo, o código da política do JavaScript:
function main () {
Log(exchange.GetTicker().Last)
}
O módulo também precisa ser usado em conjunto com o módulo de dados da linha K para obter o "tipo de módulo de transação".
Primeiro, um módulo de variáveis é criado, chamado: K-line.Em seguida, os dados da linha K são obtidos usando o módulo de dados da linha K e atribuídos ao módulo de variáveis: "K-Line".Em seguida, use o módulo de comprimento de lista no "tipo de módulo da lista" para obter o comprimento do módulo de variável da linha K, para especificar em que Bar os dados da linha K devem ser obtidos.O que é que ele tem a ver com isso?O teste é executado e o último K-line Bar é impresso.
Também deve ser usado junto com o módulo de acesso a dados profundos no "tipo de módulo de transação".
O índice é definido como 0, o pedido é definido como e o que se obtém é a informação sobre o pedido vendido.
Por exemplo, o código da estratégia JavaScript:
function main () {
Log(exchange.GetDepth().Asks[0])
}
O módulo deve ser usado em conjunto com o módulo de acesso a informações de ativos.
Exemplo: número de moedas disponíveis para a conta corrente
O teste mostra:
Por exemplo, a política do JavaScript:
function main () {
Log(exchange.GetAccount().Stocks)
}
O módulo é usado para obter o valor de uma propriedade nos dados de pedidos, como o preço ou a quantidade de vendas em uma folha de pedidos (exemplo do número de ordem 13).
Os resultados do teste:Por exemplo, a política do JavaScript:
function main () {
Log(exchange.GetDepth().Asks[0].Price)
}
Também pode ser usado para obter uma propriedade na informação de pedido que o "Módulo de Informação de Detalhes de Pedido de Consultas" retorna (explicado no passo a passo).
Da mesma forma, para ser usado em conjunto com o módulo de posicionamento de futuros, note que os dados de posicionamento que o módulo de posicionamento de futuros retorna são um conjunto (lista), uma estrutura de dados que contém diferentes contratos e posições em diferentes direções. Por isso, indique o índice quando usado especificamente.
Aprendemos tanto e depois combinamos uma operação de hedge, ou seja, hedge contra contratos de curto e longo prazo ao mesmo tempo. Nós fazemos um hedge positivo, ou seja, um contrato aberto a longo prazo, um contrato aberto e mais um contrato aberto recentemente.
Os resultados do teste:
A estratégia de visualização de paradigmas:
Mais estratégias podem ser encontradas em:https://www.fmz.com/square
Outros artigos desta série
15650463856Eu não posso criar com essa visualização se eu quiser usar isso.
NegroPor favor, veja como é usado o módulo indicador na visualização.
Inventor quantificado - sonho pequeno https://www.fmz.com/digest-topic/6182
15650463856Além de profundidade, inicialização e progressão, há outros artigos na série, por que eu não encontrei o uso de módulos personalizados e módulos de indicadores?
Inventor quantificado - sonho pequenoOs artigos desta série falam sobre como implementar módulos personalizados.
NegroMuito bem, obrigada.
Inventor quantificado - sonho pequenoA série pode ser lida e comentada novamente.