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
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
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.
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.
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, já 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.
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 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.
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).
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).
É 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 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.
É 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.
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.