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 2

 
Sergey Voytsekhovsky:
Artem, não dê atenção aos neo-devotos, por favor. Deixe-os gritar. Você está fazendo um bom trabalho. Tenho uma pergunta: há pelo menos um cronograma aproximado para os próximos artigos desta série? Por exemplo: uma vez por semana, uma vez por mês, trimestralmente .... ???

O segundo artigo está pronto, aguardando publicação. O terceiro está em desenvolvimento. Planejo não atrasar o lançamento de novas partes, pois todas estão interconectadas e cada parte é uma continuação e expansão das anteriores. Planejo lançar uma série de artigos. Como resultado, haverá uma biblioteca e, após conectá-la, o usuário obterá imediatamente uma coleção automatizada dos dados necessários e uma ampla gama de ferramentas para usar os dados disponíveis em seus programas. Será fornecido e explicado o acesso aos métodos necessários das classes da biblioteca, ou o simples uso habitual das funções usuais para aqueles que não estão familiarizados com as classes - haverá um grande conjunto de funções da biblioteca, bem como o acesso aos dados por meio de estruturas. O usuário não precisará fazer nenhuma recuperação e processamento de dados - ele só precisará solicitar os dados de que precisa no estilo "pergunta-resposta-aplicativo".

Por exemplo: consulta: quando tal ordem pendente foi excluída? resposta: então. Ou: consulta: você precisa de dados sobre a última posição fechada, resposta: uma estrutura preenchida com todos os dados da posição é retornada. Ou: você precisa excluir uma ordem clicada pelo usuário, a resposta é que a ordem foi excluída. Ou: precisamos de um tíquete de uma posição com o menor preço de abertura no símbolo EURUSD e com a mágica 12345, a resposta será o preço dessa ordem e a estrutura preenchida com todos os dados dessa posição.

As consultas, é claro, são feitas por funções. Como exemplo (hipotético): GetLastClosePosition() - retorna uma estrutura com campos preenchidos sobre a última posição fechada, GetLastClosePosition("USDCAD") - retorna uma estrutura com campos preenchidos sobre a última posição fechada no símbolo USDCAD, etc.

Mas será possível endereçar as classes diretamente e obter ponteiros para listas, das quais se obtêm os dados necessários de forma independente.

E assim por diante, etc., etc.

 
Artyom Trishkin:

Por exemplo: consulta: quando essa ordem pendente foi excluída? resposta: então. Ou: solicitação: precisamos de dados sobre a última posição fechada, a resposta: uma estrutura preenchida com todos os dados da posição é retornada. Ou: é necessário excluir uma ordem clicada pelo usuário, a resposta é que a ordem foi excluída. Ou: precisamos de um tíquete de uma posição com o menor preço de abertura no símbolo EURUSD e com a mágica 12345, a resposta será o preço dessa ordem e a estrutura preenchida com todos os dados dessa posição.

O retorno da estrutura é caro. Pelo mesmo motivo, CopyRates é várias vezes mais caro que CopyClose.

 
fxsaber:

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

Bem, o retorno de estruturas está planejado como um recurso adicional a pedido do usuário - puramente por conveniência. Isso será visto mais adiante. De qualquer forma, a biblioteca é criada "on the fly" com uma descrição das etapas de sua criação, com a realização de alterações. Portanto, 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:

Não consigo imaginar nada mais conveniente do que o que os desenvolvedores criaram no MT4.

 
O que você quer dizer com "caro"???
 
Talvez eu não esteja entendendo alguma coisa, mas até agora a forma proposta de localização (tradução de mensagens para outros idiomas) parece errada. O código-fonte da biblioteca não deve mudar dependendo da localização, e agora o russo está escrito lá como o principal? Como devemos adicionar, por exemplo, alemão ou francês?
 
Sergey Voytsekhovsky:
O que você quer dizer com "caro"???

Caro em termos de consumo de recursos

 
Stanislav Korotky:
Talvez eu não esteja entendendo alguma coisa, mas até agora a forma proposta de localização (tradução de mensagens para outros idiomas) parece errada. O código-fonte da biblioteca não deve mudar dependendo da localização, e agora o russo está escrito lá como o principal? Como é possível adicionar, por exemplo, alemão ou francês?

Até o momento

 
É bom ver uma tentativa de aproximar as plataformas por meio da criação de funcionalidades entre plataformas. A direção certa.
 
Artyom Trishkin:

Por enquanto

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