Minha abordagem. O núcleo é o motor. - página 91

 
Реter Konow:

Outra questão séria.

Eu mesmo ainda não tentei, mas há dúvidas sobre a eficácia do intercâmbio rápido através de recursos.

Troca rápida, - 16 milissegundos para frente e para trás em uma base constante.

A unidade não vai estar sobrecarregada?

Você está caindo no "pecado da otimização prematura". :-)

Faça uma classe (ou conjunto de funções, se o IGE não agradar a você) de intercâmbio de dados - se em projetos reais ele vai atrasar, então você vai pensar sobre as opções. E enquanto isso, você estará ocupado com testes sem sentido por mais meio ano.

PS, a propósito, você já fez alguma coisa para apresentar o projeto ao público? ou você está apenas arranhando seu ego no fórum tradicionalmente :-)

 
Artyom Trishkin:

O comentário do gráfico tem um tamanho limitado. Ou não é? Eu meio que tropecei nele.

Eu acho que há limitações. Eu mesmo só passo MqlTick-ticks para EventChartCustom via strings, pois a fila de eventos salva a seqüência de ticks. É terrivelmente conveniente.

 
Реter Konow:

Ou seja, você pode traduzir uma série de cordas em uint através da união?

Não me lembro como isso é implementado, mas posso traduzir não apenas conjuntos de cordas, mas outros tipos de dados em qualquer tipo (mesmo em MqlTick). O código será o mesmo.

E é mais rápido do que usar oStringToChar()?

Eu não sei. Experimente o MqlTick para fazer um string usando seu método e depois através do StringToChar para uint. E vice versa, é claro. Medir e comparar.

Se você puder, dê um pequeno e simples exemplo. Não consigo dar sentido ao seu código.

#include <TypeToBytes.mqh> // https://www.mql5.com/ru/code/16280

void OnStart()
{    
  string Str[] = {"123", "Hello World!", "Peter Konow"};

  CONTAINER<uint> Container; // Создаем контейнер - все будет храниться в массиве простого типа (в примере выбран uint)    
  Container[0] = Str;        // Записали в контейнер строковый массив
  
  CONTAINER<uint> Container2;                 // Создаем контейнер-получатель  
  ArrayCopy(Container2.Data, Container.Data); // Скопировали в него ТОЛЬКО содержимое uint массива

  string Str2[];
  Container2[0].Get(Str2); // Получили данные в исходном виде
  ArrayPrint(Str2);
}
 
fxsaber:

Eu acho que há limitações. Eu mesmo só passo MqlTick-ticks para EventChartCustom via strings, pois a fila de eventos salva a seqüência de ticks. É realmente útil.

Se a pergunta for sobre mensagens pequenas (até 64 caracteres) e passagem rápida constante para frente e para trás, há várias opções convenientes.

E EventChartCustom não é o melhor, porque entra na fila de eventos OnChartEvent().

Mas quando se trata de transferência rápida de mais de 1000 símbolos, o EventChartCustom e a fila de eventos levam a atrasos (por exemplo, ao recarregar mesas e usar animação).

A passagem rápida pelos recursos é questionável.

Diga-me, não vai carregar um disco?

 

A julgar pelo silêncio - provavelmente será.

Aí está, confira).

 
Реter Konow:

Transferência rápida através de recursos - em questão.

Fórum sobre comércio, sistemas automatizados de comércio e testes de estratégia comercial

Nova versão do MetaTrader 5 build 1930: janelas de gráficos flutuantes e bibliotecas .Net em MQL5

fxsaber, 2018.12.09 00:18

Este exemplo agora funciona 15x mais rápido

1000000
Time[TestResource()] = 286646


Grosso modo, um ciclo completo de escrita/leitura de carrapatos através do recurso funciona a 4 milhões de carrapatos por segundo.


Aqui vai uma palavra, não vai colocar uma carga na unidade?

O disco não é utilizado na operação do recurso. Tudo está na memória.

Fórum sobre comércio, sistemas automatizados de comércio e teste de estratégias comerciais

Bichos, insetos, perguntas

fxsaber, 2018.12.11 09:19

Verificado, 60Mb é seguro (MT4/5) escrito para Recursos. Portanto, se existe um limite, ele é mais alto.

 
fxsaber:


A unidade não é utilizada quando se trabalha com recursos. Tudo está na memória.

Obrigado. Portanto, esta opção permanece.

 
fxsaber:


A unidade não é utilizada quando se trabalha com recursos. Tudo está na memória.

E quanto ao testador? Os recursos criados no equipamento de teste serão visíveis fora do equipamento de teste? E eles são criados no testador?

ZS. Um camarada aqui, disse que os recursos - não se sabe se eles trabalham no testador)).
 
Реter Konow:

E quanto ao testador? Os recursos criados no equipamento de teste serão visíveis fora do equipamento de teste?

E eles são criados no testador?

Eu não verifiquei se os recursos funcionam no Testador de Estratégia. Se eles trabalharem lá, serão visíveis no MT4 porque o Testador está dentro do Terminal, mas não no MT5 porque o Testador não está conectado com o Terminal. Lá você pode trocar arquivos somente através de arquivos comuns.


Quando olhei para as informações acima, tive uma maneira, fiz uma pergunta a mim mesmo e a respondi verificando o código. Eu o recomendo.

 
fxsaber:

Eu não verifiquei se os recursos funcionam no Testador de Estratégia. Se eles trabalharem lá, serão visíveis no MT4, porque o testador está dentro do terminal, mas não no MT5, porque o testador não está conectado ao terminal de forma alguma. Lá você pode trocar arquivos somente através dos Common-Files.

Estou vendo. Preciso verificar. Vou verificar isso hoje.

Razão: