O que deve ser acrescentado para apoio adicional de cálculos matemáticos universais em MQL5 e MQL5 Cloud Network?

 

Nem todos sabem que o testador MetaTrader 5 pode testar não só estratégias comerciais mas também resolver toda uma classe de problemas universais. Para este fim existe um modo especial "Cálculos Matemáticos", que desactiva a entrega de dados do ambiente do mercado, o que poupa muito a quantidade de dados transferidos.

Actualmente, implementamos uma série de funções importantes para a construção de uma rede de cálculo universal:

  • Modo de funcionamento "Cálculo Matemático" para desactivar o ambiente do mercado.
  • Transmissão dos dados iniciais através da anexação do ficheiro "my_file.dat", que nos permite processar dados iniciais de qualquer tamanho e devolver os resultados.
  • Transmissão de dados de origem sob a forma de # anexos de recursos.
  • Modo servidor de cálculo no terminal e transferir conjuntos de dados de agentes sob a forma de molduras. Os agentes podem devolver quaisquer dados ao terminal via FrameAdd, enquanto a parte do servidor do mesmo Expert Advisor é lançada no lado do terminal numa janela separada para receber resultados via pontos de entrada OnTesterPass com extracção de dados via funções FrameXXX. Os dados obtidos podem ser registados no lado terminal, visualizados num gráfico, etc. Pode saber mais sobre isto no tópico"Controlo em tempo real dos processos de optimização e transferência de dados massivos dos agentes no MetaTrader 5".
  • Funcionamento de agentes locais e remotos (sem MQL5 Cloud Network) com um servidor separado utilizando os tubos nomeados.
  • Alugar uma enorme rede de agentes para acelerar os cálculos.
  • Construa a sua própria quinta de cálculo na sua rede em agentes remotos.

Naturalmente, isto é acompanhado por: a segurança da MQL5, a sua velocidade, enumeradores genéticos, etc.

Daí a questão - que outras características devem ser incluídas para melhorar as capacidades da rede computacional?

 
Renat:

Daí a questão - que outras características devem ser activadas para melhorar as capacidades da rede de cálculo?

Permitir a utilização de OpenCL em modo "computação matemática" na nuvem.
OpenCL: Мост в параллельные миры
OpenCL: Мост в параллельные миры
  • 2012.05.16
  • Sceptic Philozoff
  • www.mql5.com
В конце января 2012 года компания-разработчик терминала MetaTrader 5 анонсировала нативную поддержку OpenCL в MQL5. В статье на конкретном примере изложены основы программирования на OpenCL в среде MQL5 и приведены несколько примеров "наивной" оптимизации программы по быстродействию.
 
TheXpert:
Permitir que OpenCL seja utilizado em modo "computação matemática" na nuvem.

Isto já foi discutido muitas vezes - é arquitectonicamente impossível devido à forma como os drivers do Windows funcionam. Desde que as funções de cálculo sejam uma parte protegida dos controladores de vídeo, não há solução. Neste momento, mesmo que se ligue via Remote Desktop ao Windows, verificará que não há acesso ao OpenCL.

Assim que os fabricantes de placas de vídeo deslocassem as funções de cálculo para uma interface separada independente dos controladores de vídeo, haveria alguma felicidade. Até agora, apenas Nvidia Tesla está a ir nessa direcção.

 
Na funçãoOnTesterInit()

Adicionar a transferência de dados brutos ao agente, não como um recurso anexado, mas como um conjunto de dados gerados no decurso da optimização.

Aproximadamente:

void OnTesterInit()
  {
   // здесь формируем массив данных (например ArrayPass[])
   // и передаем сформированный массив агенту для расчетов
   return(ArrayPass);
  }

.

...

Por favor.

 
E quem tem de transmitir estes dados e como exactamente?

São os detalhes técnicos de quem, o quê e como isso é de interesse.
 
Renat:
1. Quem e como exactamente devem transferir estes dados?

2. são os detalhes técnicos de quem, o quê e como isso são de interesse.

1. A transmissão deve naturalmente ser feita pelo utilizador, como sugeri acima -"Aproximadamente como isto:", é o que melhor se sabe.

2. Quem é quem e como, não consigo descrever )

Para que servem os agentes? - Para resolver problemas.

Quais as tarefas que resolvemos? - Não sei, o principal é que os resolvam.

Precisamos de entrada e saída para resolver estas tarefas.

A saída é clara, mas a entrada não é clara.

Talvez me tenha escapado alguma coisa? Como é que passo os dados de entrada (calculados com base nos dados de saída anteriores) ao agente?

 
her.human:

1. A transmissão deve naturalmente ser feita pelo utilizador, como sugeri acima -"Aproximadamente como isto:", é o que melhor se sabe.

2. Quem é quem e como, não consigo descrever )

A questão é que precisamos de propostas exactamente elaboradas tecnicamente em pelo menos 2 passos. "Não sei o quê e como" não é suficientemente bom.

 
her.human:

Como passar os dados de entrada (calculados a partir de dados de saída anteriores) ao agente

Isto já foi pedido, controlar o progresso da optimização seria por vezes muito útil.

Mas surgem muitas questões sobre um mergulho mais próximo (a menos que a optimização seja feita num único agente local).

 
Renat:

A questão é que precisamos de propostas tecnicamente sólidas em pelo menos duas etapas. "Não sei o quê e como" não é suficientemente bom.

Deve dizê-lo - "as propostas são aceites sob a forma de termos de referência", caso contrário é entendido como "escutaremos as ideias".
 
Komposter, não tão categórica, mas ainda um pouco mais técnica.

Pela nossa parte, estamos a pensar numa comunicação independente entre agentes sem terminal. Por exemplo, um dos agentes poderia gerar os dados iniciais e enviá-los aos outros por fordcast.
 
Renat:
Pela nossa parte, estamos a pensar numa comunicação independente entre agentes sem o envolvimento do terminal. Por exemplo, um dos agentes pode gerar os dados iniciais e enviá-los aos outros por fordcast.

É um pouco diferente. Eu queria controlar o curso da optimização.

Ou seja, para gerar conjuntos de parâmetros à medida que a optimização avança e enviá-los aos agentes para execução.

Naturalmente, haverá muitas perguntas. Não estou pronto para lhes responder.

Razão: