Assista a como baixar robôs de negociação gratuitos
Encontre-nos em Twitter!
Participe de nossa página de fãs
Script interessante?
Coloque um link para ele, e permita que outras pessoas também o avaliem
Você gostou do script?
Avalie seu funcionamento no terminal MetaTrader 5
Scripts

Informações sobre entradas e saídas do modelo ONNX - script para MetaTrader 5

Visualizações:
2204
Avaliação:
(20)
Publicado:
2023.03.28 09:42
Atualizado:
2023.08.25 08:54
Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance

A função de execução do modelo ONNX requer que as dimensões de entrada e saída estejam definidas. As funções OnnxSetInputShape e OnnxSetOutputShape são usadas para especificar as dimensões, respectivamente.

Nem todos os modelos têm tamanhos de entrada e saída fixos. Nesses casos, o script mostra o valor -1 (menos 1).

   OnnxTypeInfo type_info;

   long input_count=OnnxGetInputCount(session_handle);
   Print("model has ",input_count," input(s)");
   for(long i=0; i<input_count; i++)
     {
      string input_name=OnnxGetInputName(session_handle,i);
      Print(i," input name is ",input_name);
      if(OnnxGetInputTypeInfo(session_handle,i,type_info))
         PrintTypeInfo(i,"input",type_info);
     }

   long output_count=OnnxGetOutputCount(session_handle);
   Print("model has ",output_count," output(s)");
   for(long i=0; i<output_count; i++)
     {
      string output_name=OnnxGetOutputName(session_handle,i);
      Print(i," output name is ",output_name);
      if(OnnxGetOutputTypeInfo(session_handle,i,type_info))
         PrintTypeInfo(i,"output",type_info);
     } 

A seleção de modelo na pasta MQL5\Files é efetuada utilizando a função FileSelectDialog


A seguir, um exemplo de como o script funciona:

Create model from mnist.onnx with debug logs
ONNX: Creating and using per session threadpools since use_per_session_threads_ is true
ONNX: Dynamic block base set to 0
ONNX: Initializing session.
ONNX: Adding default CPU execution provider.
ONNX: Removing initializer 'Parameter6'. It is no longer used by any node.
ONNX: Removing initializer 'Parameter88'. It is no longer used by any node.
ONNX: Total shared scalar initializer count: 0
ONNX: Removing initializer 'Parameter193_reshape1_shape'. It is no longer used by any node.
ONNX: Removing initializer 'Parameter193'. It is no longer used by any node.
ONNX: Total fused reshape node count: 0
ONNX: Total shared scalar initializer count: 0
ONNX: Total fused reshape node count: 0
ONNX: Removing initializer 'Parameter5'. It is no longer used by any node.
ONNX: Removing initializer 'Parameter87'. It is no longer used by any node.
ONNX: Use DeviceBasedPartition as default
ONNX: Saving initialized tensors.
ONNX: Done saving initialized tensors
ONNX: Session successfully initialized.
model has 1 input(s)
0 input name is Input3
   type ONNX_TYPE_TENSOR
   data type ONNX_DATA_TYPE_FLOAT
   shape [1, 1, 28, 28]
   shape of input data can be reduced to [28, 28]
model has 1 output(s)
0 output name is Plus214_Output_0
   type ONNX_TYPE_TENSOR
   data type ONNX_DATA_TYPE_FLOAT
   shape [1, 10]
   shape of output data can be reduced to [10]

Traduzido do russo pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/ru/code/43452

Detectando o início duma nova barra ou vela Detectando o início duma nova barra ou vela

Detectando o início duma nova barra ou vela, no manipulador de eventos OnTick() dum “Expert Advisor”.

Verificação de servidor ativo Verificação de servidor ativo

Envio de mensagem push para verificação do VPS e MT5.

Funções de Tempo Aplicadas no Código Funções de Tempo Aplicadas no Código

Tempo local e de servidor

Exemplo de uso do modelo ONNX para reconhecer dígitos desenhados Exemplo de uso do modelo ONNX para reconhecer dígitos desenhados

Esse EA não negocia. Painel simples, implementado usando a biblioteca Canvas padrão, que permite desenhar números com o mouse. O reconhecimento de padrões é realizado usando o modelo treinado mnist.onnx.