Discussão do artigo "Biblioteca para desenvolvimento fácil e rápido de programas para a MetaTrader (parte I). Conceito, gerenciamento de dados e primeiros resultados" - página 3

 
Stanislav Korotky:

Se você deixar isso "por enquanto", terá que alterar muito código se redesenhar a localização. Qual é a dificuldade de conectar strings de bibliotecas de "recursos" ou cabeçalhos de uma só vez?

Além disso, ele disse que o desenvolvimento da biblioteca será feito passo a passo, com refatoração regular do código.

 
Stanislav Korotky:

Se você deixar isso "por enquanto", terá que alterar muito código se redesenhar a localização. Qual é a dificuldade de conectar strings de bibliotecas de "recursos" ou cabeçalhos de uma só vez?

Tudo tem sua vez. Nesta etapa da criação da biblioteca, ela ainda não tem uma classe de mensagem. Quando ela for criada, tudo terá. Não estou tentando correr à frente da locomotiva e seguir o princípio "do simples ao complexo", além disso, já escrevi:

Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação

Discussão do artigo "Biblioteca para a criação fácil e rápida de programas para o MetaTrader (Parte I). Conceito, organização de dados, primeiros resultados"

Artyom Trishkin, 2019.02.27 19:25

Bem, o retorno das estruturas é planejado como um recurso adicional a pedido do usuário - puramente por conveniência. Isso será visto mais adiante. Em qualquer caso, a biblioteca é criada "on the fly" com uma descrição das etapas de sua criação, com a introdução de alterações. Mais adiante, veremos como fazer com que "não seja caro".

No entanto, eu já fiz isso. Agora estou apenas descrevendo-o de forma estruturada e, ao mesmo tempo, colocando tudo em ordem para mim.

E, em geral, estou acostumado a fazer "do simples ao complexo", mas pensando com antecedência "o que vem a seguir", para não ficar preso à necessidade de revisar o conceito, da qual ninguém está imune.


 
Artyom Trishkin:

Tudo tem sua vez. Nesta etapa da criação da biblioteca, ela ainda não tem uma classe de mensagem. Quando ela for criada, tudo terá. Não estou tentando correr à frente da locomotiva e seguir o princípio de "do simples ao complexo", além disso, escrevi:

Eu li isso. Só que se o plano de trabalho ainda não chegou à localização, por que você teve que colocá-lo como está agora? Em geral, o proprietário é o chefe, a pergunta é retórica.

 
Stanislav Korotky:

Eu li isso. Só que, se o plano de trabalho ainda não chegou à localização, por que você teve que colocá-lo como está agora? De qualquer forma, o chefe é o chefe, é uma pergunta retórica.

O plano já foi pintado há muito tempo. E eu não vou mudá-lo. Esta é apenas a primeira parte - o início, uma história sobre o conceito geral, sem detalhes. E se você estiver atento, sua pergunta é muito estranha.
É estranho fazer afirmações sobre a estrutura do carro que não tem uma escotilha no teto da carroceria, que você ainda não viu.
 
Artyom Trishkin:
O plano está em vigor há muito tempo. E eu não o mudarei. Esta é apenas a primeira parte - o início, uma história sobre o conceito geral, sem detalhes. E se você estiver prestando atenção, sua pergunta é muito estranha.
É estranho fazer uma afirmação sobre a estrutura de um carro que não inclui uma escotilha no teto da carroceria, que você ainda não viu.

Ok, se você continuar com a analogia do carro, já existe um teto solar da Webasto preso à estrutura por algum motivo, que não tem nada a ver com o conceito geral e precisará ser substituído. A pergunta não era sobre o plano ou o carro inteiro, mas sobre uma parte desnecessária (trabalho desnecessário agora e retrabalho desnecessário no futuro).

 
Stanislav Korotky:

Ok, para continuar com a analogia do carro, já existe uma escotilha webasto presa ao chassi por algum motivo, que não tem nada a ver com o conceito geral e precisará ser substituída. A pergunta não era sobre o plano ou o carro como um todo, mas sobre uma parte desnecessária (trabalho desnecessário agora e retrabalho desnecessário no futuro).

Durante a depuração, se você precisar enviar algo para o log, você escreve uma classe inteira para enviar entradas de log para você na linguagem Tombo? Especialmente se precisar mostrar essa saída em um artigo? Não é possível mostrar o depurador em um artigo. Em geral, não vou me adiantar à locomotiva. Especialmente porque a classe está planejada e será mostrada no artigo onde for apropriado e contextual.
 
fxsaber:

É caro retornar uma estrutura. Pelo mesmo motivo, CopyRates é várias vezes mais caro que CopyClose.

É mesmo? Apenas presumi que a estrutura integrada deveria funcionar de forma eficiente. Ou seja, se eu precisar copiar todos os campos MqlRates, usar CopyRates deve ser mais eficiente do que usar CopyTime, CopyOpen, CopyHigh ... todas as oito funções em sequência.
 
alex_all:
É mesmo? Apenas presumi que a estrutura integrada deveria funcionar de forma eficiente. Ou seja, se eu precisar copiar todos os campos MqlRates, usar CopyRates deve ser mais eficiente do que usar CopyTime, CopyOpen, CopyHigh ... todas as oito funções sequencialmente.

funções individuais CopyClose, CopyHigh, High[], Low[], etc. Há muitos lugares em que indicadores específicos são usados sem a necessidade de consultar a barra inteira.

 
alex_all:
É mesmo? Apenas presumi que a estrutura integrada deveria funcionar de forma eficiente. Ou seja, se eu precisar copiar todos os campos MqlRates, usar CopyRates deve ser mais eficiente do que usar CopyTime, CopyOpen, CopyHigh ... todas as oito funções sequencialmente.

Ainda assim, fornecer um ponteiro para um objeto, a partir do qual você pode obter todas as suas propriedades no programa, será mais rápido do que copiar todas as propriedades do objeto na estrutura passada para a classe por referência.

 
Artyom Trishkin:

Ainda assim, será mais rápido fornecer um ponteiro para um objeto, a partir do qual você pode obter todas as suas propriedades no programa, do que copiar todas as propriedades do objeto em uma estrutura passada para a classe por referência.

Entendo corretamente o que você quer dizer - CopyRates realiza a cópia real de dados em uma estrutura, enquanto a família CopyOpen... realiza a cópia virtual (ou seja, sobrescreve a estrutura). - O que é virtual (ou seja, sobrescrever uma referência a uma matriz existente)?

O fato é que a criação de uma estrutura incorporada à plataforma faz sentido se houver mecanismos implementados para trabalhar com ela que não reduzam muito a velocidade.