Servicedesk. Reclamações, sugestões. - página 3

 
Alexey Kozitsyn:

Se pelo menos porque está escrito na documentação e eu quero utilizá-lo.

Para baixar e verificar o histórico, similar ao MT5: https://www.mql5.com/ru/docs/series/timeseries_access

Repito a pergunta, você sabe como obter esta data por meio do antigo mql4?

Para mim, a presença de uma função na documentação não é motivo suficiente para lidar com o service desk e o fórum, perdendo tempo e esforço se eu não precisar dela em princípio. E por que talvez seja necessário que você, em minha opinião, nunca tenha sido capaz de argumentar.

Eu pessoalmente não recomendo a ninguém que utilize no MT4 as funções do API do MT5, porque elas vêm apresentando falhas como esta há muito tempo, desde a "modernização" da MQL4. E não recomendarei seu uso a partir de agora, a menos que alguém prove sua necessidade absoluta.

 
Ilya Malev:

Para mim, a presença de uma função na documentação não é razão suficiente para lidar com o servicedesk e no fórum, perdendo tempo e esforço se eu não precisar dela em princípio. E, na minha opinião, você não tem sido capaz de argumentar porque pode precisar dele.

Eu pessoalmente não recomendo a ninguém que utilize no MT4 as funções do API do MT5, porque elas vêm apresentando falhas como esta há muito tempo, desde a "modernização" da MQL4. E não recomendarei seu uso no futuro, a menos que alguém prove sua necessidade absoluta.

Você ainda não respondeu à minha pergunta. Mas eu percebi que você não se importa e está satisfeito.

Ah, e mais um argumento - a portabilidade dos programas do MT4 ao MT5 e vice-versa.

 
Alexey Kozitsyn:

Você ainda não respondeu à minha pergunta. Mas eu entendi que você não se importa e está bem com isso.

Ah, e mais um argumento - a portabilidade dos programas do MT4 para o MT5 e vice-versa.

Se você tiver uma restrição no número de barras na janela MT4, você não saberá quantas barras estão no servidor. E não tenho encontrado uma situação regular quando seria necessário. É claro, você pode inventar muitos exóticos, mas em 99,9% dos casos podemos passar sem ele.

Quanto à portabilidade - estas são plataformas totalmente diferentes com metodologia fundamentalmente diferente de trabalho com dados e pedidos. Portanto, sua metodologia de programação é completamente diferente. Para a portabilidade, existe a diretiva __MQL4__ e bibliotecas com compilação condicional.

 
Ilya Malev:

Não é possível saber quantas barras há no servidor se houver um limite no número de barras na janela MT4. E não tenho encontrado uma situação regular quando seria necessário. É claro que você pode inventar todo tipo de exóticos, mas em 99,9% das tarefas dos comerciantes, você pode praticamente passar sem ele.

Quanto à portabilidade - estas são plataformas totalmente diferentes com metodologia fundamentalmente diferente de trabalho com dados e pedidos. Portanto, sua metodologia de programação é completamente diferente. Para a portabilidade, existe a diretiva __MQL4__ e bibliotecas com compilação condicional.

A organização do acesso aos dados é "exótica"? Ahem. Ok.

O comerciante não se importa com o idioma, o comerciante precisa negociar, e os Assessores/indicadores/escritores especializados devem funcionar corretamente. Como eles funcionam é um problema do programador. Mas o programador, a fim de escrever um produto de qualidade para o comerciante, deve prestar atenção a detalhes tão pequenos como acesso aos dados.

E se você não encontrou algo, isso não significa que outros não encontraram.

 
Alexey Kozitsyn:

Organizar o acesso aos dados é 'exótico'!? Ahem. Ok.

Os comerciantes não se importam realmente com o idioma, o comerciante precisa negociar, e os Consultores/indicadores/escritores especializados devem funcionar corretamente. Como eles funcionam é um problema do programador. Mas o programador, a fim de escrever um produto de qualidade para o comerciante, deve prestar atenção a coisas tão pequenas como o acesso aos dados.

Você nunca citou uma única tarefa real para a qual esta função seja necessária. Apenas palavras bonitas como "acesso aos dados" e uma admissão de que você precisa desta função só porque está descrita na documentação.

Há funções suficientes no MT4 API para acesso aos dados, na minha opinião, não há absolutamente nenhuma necessidade de entrar em funções para o MT5. Não há necessidade de descobrir o número de barras no servidor no MT4, pois não há necessidade de carregar o histórico programático - o próprio terminal o faz antes de acessar as funções de acesso aos dados do MT4 (iHigh, iLow, MarketInfo, etc.).

O que é muito conveniente e é uma pena que tenha sido alterado no MT5, o que criou muitas dificuldades de acesso aos dados lá

 
Ilya Malev:

Você ainda não citou uma única tarefa real para a qual esta característica é necessária. Apenas palavras bonitas como "acesso aos dados" e uma admissão de que você precisa desta função só porque está descrita na documentação.

Há funções suficientes no MT4 API para acesso aos dados, na minha opinião, não há absolutamente nenhuma necessidade de entrar em funções para o MT5. Não há necessidade de descobrir o número de barras no servidor no MT4, pois não há necessidade de carregar o histórico de forma programática - o terminal faz isso.

O que é muito conveniente e é uma pena que tenha sido alterado no MT5, o que criou muitos problemas com o acesso aos dados lá

Eu até lhe dei o link:

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

Balcão de serviço. Se você tiver qualquer dúvida ou comentário sobre o Service Desk, não hesite em entrar em contato conosco.

Alexey Kozitsyn, 2015.10.30 17:11

Pelo menos porque está declarado na documentação e eu quero usá-lo.

Para baixar e verificar o histórico, similar ao MT5: https://www.mql5.com/ru/docs/series/timeseries_access

Tenho uma função de verificação/upload do histórico escrita no mql5 semelhante a como é descrita no link. Tudo funciona como deveria. E eu queria usar o mesmo no programa mql4. Eu copiei o código e descobri que a função SeriesInfoInteger() funciona incorretamente. Escrevi um pedido para a Sersidesk. Por que não devo usar o código existente se todas as funções estão duplicadas em ambos os idiomas?

Pelo que entendi, no início você estava escrevendo para mql4, e depois mudou para mql5. Pelo contrário, comecei a escrever ativamente em mql5, e depois - em mql4. Portanto, para mim é mais conveniente usar novas funções.

 
E se você comparar a documentação para organizar o acesso aos dados de mql4 e mql5, torna-se claro que o acesso é o mesmo. É que a documentação do mql5 é ampliada com um exemplo de acesso. Portanto, ainda é uma grande questão se este acesso é tão diferente.
 
Alexey Kozitsyn:
E se compararmos a documentação para acesso aos dados de mql4 e mql5, ficaria claro que o acesso é o mesmo. É que a documentação do mql5 é ampliada com um exemplo de acesso. Portanto, ainda é uma grande questão se este acesso é tão diferente.

Um exemplo simples é que um indicador chama outro pelo iCustom. E este outro indicador, por sua vez, chama também o terceiro e quarto. E todos estes indicadores são construídos um pouco mais do que alguns milissegundos. Ao executar tal construção no fim de semana, o usuário não esperará que o indicador seja criado até que o fim de semana termine, a menos que ele pressione regularmente o botão "Refresh" no gráfico. Devido a este problema, tive que fazer todo um sistema de classes em vez de iCustom para chamar uns aos outros com indicadores, contornando o iCustom. Na MT4 não havia tal chatice.

No MT4, o indicador é construído primeiro, e depois o código que utiliza seus dados é chamado. A mesma coisa é feita principalmente com as séries cronológicas. Na MT5 tudo foi mudado não para melhor.

 
Ilya Malev:

Um exemplo simples é que um indicador chama outro pelo iCustom. E este outro indicador, por sua vez, chama também o terceiro e quarto. E todos estes indicadores são construídos um pouco mais do que alguns milissegundos. Ao executar tal construção no fim de semana, o usuário não esperará que o indicador seja criado até que o fim de semana termine, a menos que ele pressione regularmente o botão "Refresh" no gráfico. Devido a este problema, tive que fazer todo um sistema de classes em vez de iCustom para chamar uns aos outros com indicadores, contornando o iCustom. Na MT4 não havia tal chatice.

Na Mt4, o indicador é construído primeiro, e depois o código que utiliza seus dados é chamado de código.

Tente usar os eventos do temporizador. Isto é, iniciar a lógica de todos os cálculos na saída no temporizador. A seguir, se o indicador não aparecer na janela - pressione atualizar uma vez. Tudo deve funcionar.
 

Alexey Kozitsyn:

Tente usar eventos temporizados.

Os eventos temporizados são na verdade uma subclasse do ChartEvent, e são chamados somente quando o indicador é lançado diretamente no gráfico. Nos indicadores chamados através do iCustom, você não vai esperar pela chamada OnTimer ou OnChartEvent

Lá, um indicador começa a desenhar somente após o outro ter sido desenhado. Você precisa atualizar uma vez para construir o primeiro, o mais distante da cadeia, depois mais uma vez para construir aquele que usa seus dados :)

Porque, o indicador em sua linha não pode esperar pela construção de dados de outro indicador, sem voltar da OnCalculate. É também uma característica agradável. Assim, o usuário sempre enfrentará o menu de gráficos em vez de trabalhar com dados.

Razão: