
No artigo anterior, aprendemos sobre os parâmetros de modelo da “Mai Language Trading Library” da Mai Language. Este modelo vem com a estratégia da Mai Language quando ela é criada e encapsula algumas funções que precisam ser definidas em transações. Neste artigo, continuaremos aprendendo sobre o uso da linguagem Mai na plataforma de negociação quantitativa Inventor.
Os parâmetros de estratégia da linguagem Mai são os mesmos de outras linguagens na Plataforma de Negociação Quantitativa do Inventor. Eles são definidos na página de edição de estratégia. Por exemplo, usamos a versão da linguagem MaiDual ThrustEstratégia como exemplo.
Endereço da estratégia: https://www.fmz.com/strategy/128884.


Na página de edição de políticas, os parâmetros definidos para a política podem ser usados diretamente no código da política. Os parâmetros de política da linguagem Mai geralmente usam apenas tipos numéricos. Outros tipos, como tipos booleanos, caixas suspensas, strings, etc., não são comumente usados.
Por exemplo, no exemplo acimaNO valor padrão deste parâmetro é 4. Se este parâmetro não for modificado quando o robô for criado, o valor de N na estratégia será 4 depois que o robô estiver em execução.
Já entendemos o conteúdo no nível da estratégia da linguagem Mai (parâmetros da estratégia da linguagem Mai, parâmetros do modelo da biblioteca de negociação da linguagem Mai). A seguir, vamos dar uma olhada na negociação real e no backtesting da Mai Language.
Testes retrospectivos

Após selecionar o intervalo de tempo do backtest (hora de início, hora de término), defina o período K-line da estratégia. O Mai Language também suporta múltiplos dados de período K-line na estratégia. No entanto, o período da linha K definido aqui é o período padrão da linha K. Se for definido como linha K diária aqui, o gráfico gerado automaticamente após a estratégia ser executada será a linha K diária. O modo de backtesting é dividido em “nível real” e “nível de simulação”. Para detalhes, consulte o documento: https://www.fmz.com/digest-topic/4009. Em seguida, selecione o mercado ou a bolsa a ser testada. Após adicioná-lo, você pode começar a testar. Se outros parâmetros precisarem ser ajustados, como o valor inicial do fundo de teste, etc., você pode defini-los de acordo com as necessidades específicas. Haverá um prompt quando você coloca o mouse sobre o parâmetro.

Parâmetros relacionados ao mercado e à bolsa, como valor do fundo de simulação de backtest, taxa de taxa de transação de backtest, precisão do preço de backtest, precisão da quantidade de transação, fonte de dados de backtest, etc., não são efetivos quando modificados na página de backtest. Você precisa excluir o mercados e bolsas que você adicionou anteriormente e adicione-os novamente depois que as configurações forem concluídas.
Oferta Firme
A configuração real é muito mais simples. Você só precisa especificar um host para o robô criado (ou seja, em qual host o robô será executado). Defina o período da linha K e o objeto de troca a ser operado (ou seja, o objeto de conta de troca configurado).

Quando a estratégia está em execução, não há muita diferença entre a negociação real e o backtest, exceto que o backtest tem alguns dados estatísticos adicionais gerados automaticamente pelo sistema de backtest.

Informações da barra de status
Informações da barra de status, a tabela é dividida principalmente em “Informações de mercado” e “Informações de fundos”. Informações de mercadoEle registra principalmente o horário de início do ciclo K-line padrão definido atualmente, o tipo de transação (código do contrato), o volume da posição, o preço da posição e outros dados. Vale ressaltar que as atualizações de mercado para o “Modelo de Preço em Tempo Real” e o “Modelo de Preço de Fechamento” definidos nos parâmetros do modelo da Biblioteca de Negociação em Idioma Mai são diferentes. Ao prestar atenção às atualizações de tempo aqui, você pode avaliar a operação da estratégia e as atualizações do mercado. (Julgamento preliminar: programa travado, logs ocupando espaço no disco rígido, etc.)
Informações de financiamentoEle registra principalmente o valor do robô desde o início da operação até os fundos atuais.
A parte inferior da barra de status também pode exibir quaisquer dados da estratégia, como no exemplo a seguir:UPTRACK, DOWNTRACK, ajuste a exibição de acordo com suas necessidades. Aqui precisamos falar sobre o método de atribuição no código de estratégia.
Os seguintes símbolos são usados para atribuir um valor a uma variável (extraídos da documentação da API da linguagem Mai)
Símbolos:
Os dois pontos representam a atribuição e a saída para o gráfico (subgráfico) e são exibidos na tabela da barra de status.
Símbolos:=
Os dois pontos são iguais e representam atribuição, mas não são enviados para o gráfico (gráfico principal, subgráfico, etc.) nem exibidos na tabela da barra de status.
Símbolos^^
Os dois símbolos ^ representam atribuição, que atribui um valor à variável e o envia para o gráfico (gráfico principal) e o exibe na tabela da barra de status.
Símbolos..
Os dois símbolos . representam atribuição, que atribui um valor à variável e o exibe na tabela da barra de status, mas não é enviado ao gráfico (gráfico principal, subgráfico, etc.).
Pode-se observar que todos esses símbolos são operações de atribuição, mas a diferença está em se a variável é exibida na barra de status e se a variável é desenhada no diagrama principal ou no diagrama anexado (a ser mostrado mais tarde).
^^、:、..Sim, você pode exibir o valor da variável na parte inferior da tabela da barra de status.
Gráfico de velas De acordo com o período padrão da linha K definido nas páginas de backtesting da estratégia e de negociação real, a estratégia gerará um gráfico da linha K e exibirá a curva de valor variável no gráfico da linha K com base no conteúdo da estratégia. Por exemplo, o gráfico no exemplo:

Imagem principal:
Para simplificar, o gráfico principal compartilha o mesmo eixo Y com a linha K. Então, quando você precisa exibir dados no gráfico principal?
Quando os dados a serem exibidos, o tamanho do valor da linha do indicador e o tamanho do preço subjacente são semelhantes (ou seja, o tamanho do valor do preço na BARRA da linha K é semelhante), ele pode ser exibido no gráfico principal, como o movimento média calculada pela estratégia. Os trilhos superior e inferior do preço (UPTRACKeDOWNTRACK)。
Sub-imagem:
Então, que tipo de dados são adequados para serem exibidos no subgráfico?
Quando a linha a ser desenhada (dados exibidos) é significativamente diferente do valor do preço na BARRA da linha K (muito maior ou menor que o preço na linha K), ela pode ser exibida no subgráfico, porque se é exibido neste momento na imagem principal, causará compressão de imagem, o que é muito inconveniente de observar. Por exemplo, depois de calcular o indicador MACD, você deseja exibi-lo no gráfico.
Por exemplo, adicione uma frase a esta estratégia de exemplo:AA^^(O-C)*100000;

O gráfico da linha K foi compactado diretamente e não pode ser encontrado.
Outra diferença é que o gráfico Mai Language Strategy é um gráfico HighCharts durante a negociação real e um gráfico tradingView durante o backtesting.
O gráfico do mercado real:

Estratégia de idioma Mai, quando o sinal de negociação é acionado (BK,SK,BP,SP,BPK,SPK ), um log será impresso, mostrando a localização (número da linha) do sinal disparado no código e o número de vezes que o sinal é disparado.

Após o registro do preço e da quantidade do log de pedidos, o log também emitirá o preço de primeira camada da contraparte naquele momento. Por exemplo, ao comprar uma posição longa, o preço e a quantidade da ordem ask de primeira camada serão exibidos .