
É realmente muito simples escrever estratégias de tendências na linguagem Mai. Graças ao encapsulamento, uma estratégia pode ser escrita usando apenas algumas linhas de código. Além de consultar a documentação do idioma Mai, você pode usar o idioma Mai na plataforma de negociação FMZ:Documentação Mylang Quantificada pelo InventorAlém disso, alguns artigos de orientação estão faltando. Neste artigo, vamos brincar com a linguagem do microfone na FMZ. A linguagem Mai pode ser dividida em dois aspectos no FMZ: moeda digital spot e moeda digital futures. Vamos resolver as diferenças de uso em diferentes mercados. Vamos dar uma olhada em um ponto mais importante primeiro.
A Mai Language Trading Library integra e encapsula alguns valores, parâmetros e modos que precisam ser definidos pelo usuário. Ela é separada do nível de código de estratégia e é uma biblioteca de estrutura definida e configurada pelo usuário ao criar um mercado real. Traga seu próprio.

Para dominar o uso de estratégias de linguagem de microfone no FMZ, é essencial entender esses parâmetros e configurações. Vamos aprender os conceitos e usos de cada parâmetro juntos.
Execução
Os métodos de execução são divididos em收盘价模型、实盘价模型。


Simplificando, quando a última coluna da linha K é concluída e a coluna da linha K do novo ciclo é lançada, o programa em tempo real executa a lógica da estratégia estabelecida (o código da estratégia de negociação escrito). A vantagem deste modo é que ele evita a interferência causada por mudanças de preço em tempo real dentro do ciclo e só analisa os dados de mercado quando a última coluna da linha K é finalizada como base para compra, venda e abertura estratégicas. fechando. A desvantagem é que pode haver um atraso na abertura e no fechamento de posições, porque a estratégia não entrará em ação até que o último ciclo de barras da linha K seja concluído.
Conforme mostrado na figura acima, o tempo exibido na barra de status e no gráfico de estratégia tem 8 horas de diferença. Isso ocorre devido à inconsistência entre as configurações de fuso horário do dispositivo do custodiante e o navegador que está exibindo o gráfico no momento.


Tamanho de lote de abertura padrão Ao escrever uma estratégia de linguagem Mic, se o parâmetro de quantidade do pedido não for especificado para BK, SK, BPK, SPK, o parâmetro será usado como a quantidade do pedido. Por exemplo:
MA5^^MA(C,5);
MA10^^MA(C,10);
CROSSUP(MA5,MA10),BK;
Neste momento, se o “Lotes de abertura padrão” estiver definido como 2, então quando a condição de execução da estratégia BKCROSSUP(MA5,MA10)Quando acionado, a quantidade de compra é 2 (especificamente 2 lotes, 2 moedas ou 2 contratos, dependendo de qual exchange é adicionada, seja moeda digital à vista ou futuros de moeda digital).
Tomemos como exemplo o sistema de backtesting:

Para negociação real, consulte a página de câmbio e adicione você mesmo o objeto de câmbio configurado:

Quantidade máxima de pedido de transação única O número máximo de ordens permitidas por vez. Se o volume da ordem for grande quando o sinal for acionado (definido pelos parâmetros de comando na estratégia ou pelo tamanho do lote de abertura padrão), a ordem será dividida em ordens menores quando a ordem for executado. um.
Pontos de deslizamento (inteiro)
Este parâmetro é o mesmo do grupo “Spot Trading”.定价货币精度Parâmetro relacionado, usado principalmente para definir o prêmio adicionado ou subtraído ao fazer uma ordem. Por exemplo, quando você precisa comprar, o preço de venda do oponente é 10, e colocamos uma ordem de compra em 11, então 11-10= 1 A diferença extra de 1 yuan é o slippage. Ao contrário, a parte vendida a um preço reduzido é o slippage. O propósito de adicionar o slippage é garantir a transação.
Por exemplo, na negociação de futuros de commodities, diferentes variedades têm diferentes ticks de preço (ou seja, preços de um tick). O mesmo é verdade para a negociação de criptomoedas. Se o preço da ordem não for um múltiplo do tick de preço, por exemploi2009Contrato de minério de ferro de 2009, o tick de preço é 0,5, se eu fizer uma ordem a 760,1, ela não atende ao requisito do tick de preço, tal ordem não pode ser feita com sucesso, a bolsa rejeitará a ordem, se a ordem for 760,5, OK. Portanto, você precisa considerar essa questão ao definir o preço de deslizamento.
O sistema obterá automaticamente o priceTick do produto atual (o parâmetro de precisão da moeda de precificação não é efetivo).滑价点数É um múltiplo de priceTick, por exemplo:

O salto de preço exibido é 1e-7, que é 0,0000001, quando definimos o ponto de deslizamento como 5.


Porque as informações como o aumento de preço fornecidas pelas moedas digitais não são uniformes, e algumas as fornecem enquanto outras não. Portanto, o parâmetro “precisão da moeda de precificação” é necessário para controlá-lo. Por exemplo, se o parâmetro “Precisão da moeda de preço” for definido como 2, o preço do pedido durante a transação atual será preciso até a segunda casa decimal, que é 0,01. Neste momento, priceTick é 0,01. Se o ponto de slippage for definido como 5, o slippage (ou prêmio) adicionado ou subtraído com base no preço da contraparte cada vez que uma ordem é colocada é 0,05.


Este parâmetro é usado principalmente para数字货币期货Código de contrato de definição de mercado, verDocumentação da Língua Mai
Se o objeto de troca adicionado pela estratégia for uma moeda digital à vista, esta configuração de parâmetro será inválida.
Se este parâmetro estiver marcado, quando a estratégia for reiniciada após ser interrompida, as posições anteriores serão continuadas e o sinal continuará a ser executado em vez de ser executado no estado inicial. Se você precisar executar a estratégia em seu estado inicial, poderá desmarcar este parâmetro.
Tempos de repetição do pedido Se uma ordem não for executada (por exemplo, o mercado muda muito rapidamente e o deslizamento não é grande, o preço de mercado pode ter se movido quando a ordem foi colocada). Cancele a ordem e faça uma nova. Este parâmetro controla o número de vezes para fazer a ordem novamente. Se o número exceder, nenhuma outra ordem será feita e a execução do sinal será concluída.
Intervalo de pesquisa de rede (milissegundos) Ele é válido somente para futuros e à vista de moeda digital e controla a frequência de execução da rotação do programa.
Tempo de sincronização da conta (segundos) O intervalo para leitura de dados da conta.
Tempo de sincronização de posição após a abertura de uma posição (milissegundos) Usado principalmente em bolsas de futuros de moeda digital. Às vezes, a interface de bolsa de futuros de moeda digital retornará dados antigos, resultando em julgamento de posição incorreto, o que causará ordens repetidas para estratégias. Aumentar essa configuração de parâmetro pode aliviar esses problemas. Após a estratégia colocar uma ordem para abrir uma posição, aguarde um certo período de tempo para sincronizar a posição.
Aproveitar Este parâmetro é usado somente para futuros de moeda digital. Ao definir a alavancagem de futuros de moeda digital, o intervalo de alavancagem e o valor suportado por cada bolsa de futuros de moeda digital podem ser diferentes. Por favor, trate a configuração especificamente.
Um volume de lote Este parâmetro é válido apenas para transações à vista em moeda digital, ou seja, para definir a quantidade de pedido padrão
Volume mínimo de transação Usado para moeda digital spot, é diferente do conceito de precisão. Novos alunos sempre ficam confusos aqui. Precisão se refere à casa decimal para a qual é preciso, e não diz o tamanho do valor. O volume mínimo de transação se refere ao valor mínimo de cada ordem. Se o volume calculado da ordem for menor que esse valor, nenhuma transação será feita (por exemplo, fundos insuficientes, transação incompleta, uma pequena quantidade da quantidade de transação planejada restante na divisão transação, etc.). Simplificando, para uma operação de pedido, a quantidade do pedido deve pelo menos atingir esse valor, e nenhum pedido será feito se for menor que esse valor.
Precisão da moeda de precificação Este parâmetro se refere à precisão do preço (número de casas decimais no preço) durante a negociação, o que afeta o parâmetro “pontos de deslizamento” sobre o qual falamos anteriormente. Atenção especial deve ser dada a alguns pares de negociação denominados em BTC. Os valores de preço desses pares de negociação são muito pequenos e têm muitas casas decimais. Você precisa ter cuidado ao definir a precisão do preço.
Precisão do tipo de transação Este parâmetro se refere à precisão da quantidade do pedido durante a negociação e controla as casas decimais da quantidade do pedido. Por exemplo, se a quantidade do pedido for planejada para ser 0,1234 moedas, se este parâmetro for definido como 2, a quantidade do pedido será ajustada para 0,12.
Tarifas Este parâmetro é aplicado à moeda digital spot. O parâmetro fee é usado para calcular a quantidade do pedido ao fazer um pedido (ao comprar um pedido) para evitar que a quantidade do pedido calculada exceda o número real de ativos necessários. Se você não tiver certeza sobre a taxa de câmbio, você pode ajustá-la apropriadamente. Defina esse parâmetro um pouco maior.
Intervalo de estatísticas de lucros e perdas
As estatísticas de lucro da Mai Language calculam e imprimem o lucro e a perda flutuantes atuais em intervalos de tempo regulares, para que possam ser calculados independentemente de haver uma posição (não há uma posição real na moeda digital à vista, é uma posição lógica).
Conforme mostrado acima, esse parâmetro é definido como horas, e a curva de juros é impressa uma vez a cada hora. A renda impressa é: renda acumulada + lucro e prejuízo flutuantes correntes.
Nova tentativa de falha (milissegundos) Este parâmetro é usado para determinar o intervalo entre tentativas quando uma chamada de interface falha.
Use um proxy Este parâmetro é usado principalmente para futuros de moeda digital e spot de moeda digital. Usar proxy SS5 permite que hosters de servidores domésticos acessem algumas interfaces de câmbio Q-ed.
Ocultar erros comuns de rede Marque este parâmetro para filtrar alguns logs de erros.
Trocar endereço base
Este parâmetro é usado principalmente para futuros de moeda digital e moeda digital à vista, e é usado para alternar o endereço base da interface da API do protocolo REST, como alternar o ambiente de disco de simulação da Binance:https://testnet.binancefuture.com。
Notificações Push Após a verificação deste parâmetro, o log de ordens e as mensagens push na estratégia serão enviadas para as opções push definidas para a conta atual.

Estamos familiarizados com os parâmetros de template da Mai Language aqui. No próximo artigo, podemos nos familiarizar com a interface de tempo de execução da Mai Language, gráficos e outros conteúdos na plataforma FMZ.