Erros, bugs, perguntas - página 1231

 

P./S.: Consegui descarregar um produto do Mercado em MT5 sem autorização da minha conta em MQL5 (não o experimentei em MT4 sem autorização).

Eu não sabia desta possibilidade antes.

 
meat:

E francamente, os seus argumentos são estranhos. Quem não souber como usá-lo, não o use. Já viu muitos códigos da treta onde FileFlush é usado? Não vi nenhum .

Quase todos o utilizaram incorrectamente, e depois têm "Metatrader lags". Esta função WinAPI é extremamente lenta.

Quando fomos a 600 builds, reescrevemos completamente toda a operação de arquivo e acelerámo-la dezenas de vezes nos modos habituais de operação de mordidas pequenas.


E areabertura do ficheiro torna o código mais difícil.

Mas faz pensar imediatamente nas consequências, não colocar FileFlush em cada tic e depois não ficar surpreendido com os resultados no testador de estratégias comerciais.

 
Renat:

Quase todos o usaram mal, e depois têm "Metatrader Brakes".

Está a exagerar. Talvez houvesse alguns maus codificadores, mas não generalize. Das suas palavras resulta como se todos aqui fossem entorpecidos e idiotas.

Mas faz-nos reflectir imediatamente sobre as consequências...

Renat, não podes estar a falar a sério, por amor de Deus! Dá a impressão de que está a dar trabalho de casa aos alunos, como se sofressem, mas aprenderão a pensar, etc. ("Duro no estudo - fácil na batalha"). Posiciona o MQL como manual de treino para bonecos ou como ferramenta de trabalho para programadores? Se o segundo, então porque coloca paus artificiais na roda?

Se alguém não sabe ou não é capaz de fazer alguma coisa - este é o seu problema pessoal, deixe-o aprender. Por que razão deveriam eles reduzir a funcionalidade para todos os outros?

 
meat:

Está a exagerar. Talvez houvesse alguns maus codificadores, mas não se deve generalizar. Das suas palavras resulta como se todos aqui fossem nódulos e idiotas.

Renat, não podes estar a falar a sério, por amor de Deus! Parece que está a dar trabalho de casa aos alunos, como se sofressem, mas aprendem a pensar, etc. ("difícil na aprendizagem - fácil na batalha"). Posiciona o MQL como manual de treino para bonecos ou como ferramenta de trabalho para programadores? Se o segundo, então porque coloca paus artificiais nas rodas?

Se alguém não sabe ou não é capaz de fazer alguma coisa - este é o seu problema pessoal, deixe-o aprender. Por que razão deveria ter de cortar a funcionalidade para todos os outros?

Olhe à volta dos nossos fóruns e kodobase, por favor.

Não estamos numa escola. Estamos num lugar muito pior onde se tem muito mau código e onde a MetaQuotes é sempre culpada a priori. Se o fizer dessa forma, a culpa é sua, e se o fizer ao contrário, a culpa continua a ser sua.

A decisão de derrotar FileFlush veio apenas do entendimento de que incapacitá-lo é o mal menor do que ver os comerciantes abrandarem e queixarem-se. Não o desactivámos apenas, reescrevemos completamente toda a operação de arquivo para que agora seja um motor extremamente eficiente e rápido que atenua quaisquer bugs e práticas ineficientes de desenvolvimento. Pensamos muito bem.


Para informação, não estou a exagerar, pois há mais de 13 anos que lidero pessoalmente as discussões públicas nos nossos fóruns:


 
crOss:
Pegue em qualquer Expert Advisor (a partir de exemplos de MetaQuotes), execute-o sob construção 975 sobre um determinado período e com os mesmos parâmetros,
Obter os resultados, ou seja, o gráfico da curva de rendimentos e a tabela de transacções.


Agora, execute o mesmo Expert Advisor com base no mesmo período e com os mesmos parâmetros, obterá resultados completamente diferentes...

P.S. Metatester é 32 bit.

O que mostra a análise do negócio no 975 build e no 1010 build tester?

Encontre o ponto de divergência para começar. Comparar o valor dos swaps. Veja os volumes dos ofícios

 
Uma vez que não ouvi nada do Service Desk durante uma semana, levantarei aqui o problema( construçãoMT4 745 ):
1. Tenho um indicador com este código:
#property strict
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
{
   EventSetTimer(10);
   return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start ()
{
   return 0;
}
//+------------------------------------------------------------------+

void OnTimer()
{
   ChartSetSymbolPeriod(0, _Symbol, 1);
}
2. Tenho um Conselheiro Especialista com este código:
#include <ChartObjects\ChartObjectsTxtControls.mqh>     


CChartObjectButton *p_button1 = NULL;                              
int OnInit()
{
   p_button1 = new CChartObjectButton; 
   p_button1.Create(0, "ddd", 0, 10, 20, 30, 40); // create button
 
   return INIT_SUCCEEDED;
}

void OnDeinit(const int reason)
{
   if (p_button1 != NULL)
   {
      p_button1.Delete();
      delete p_button1;
   }
}
void OnTick(void)
{
}

3. Anexar indicador primeiro , Conselheiro Especialista segundo
4. Roubamos a carta e esperamos que seja pendurada quando usamosChartSetSymbolPeriod
5. Tudo funciona com comutação TF manual ecom comutação manual de pares de moedas. Mas não funciona com software (ou empilhar na liberação da curva ou algum vazamento ....)


Consegui resolver o problema com a comutação TF - API, que mais uma vez se revela mais fiável
Mas como trocar um par de moedas com API?

 
ALXIMIKS:
Uma vez que não há feedback do Service Desk durante uma semana, levanto aqui o problema( construçãoMT4 745 ):
1. Existe um indicador com este código:
2. Existe um Consultor Especialista com este código:

3. Anexar indicador primeiro , perito segundo
4. Roubar a carta e esperar que seja pendurada quando se usaChartSetSymbolPeriod
5. Tudo funciona com comutação manual de TF ecom comutação manual de pares de moedas. Mas não funciona com software (ou empilhar na liberação da curva ou algum vazamento ....)


Consegui resolver o problema com a comutação TF - API, que mais uma vez se revela mais fiável
Mas como mudar o par de moedas para o par necessário com API?

A sua candidatura não é perdida.

Responder-lhe-emos definitivamente.

 
Alguém pode esclarecer: a minha classificação (perfil) tem caído nos últimos dias. Será isto uma novidade, apenas algo afinado no algoritmo do site, ou algo mais?
 
Renat:

Olhe à volta dos nossos fóruns e kodobaza, por favor.

Não estamos numa escola. Estamos num lugar muito pior, onde há muito código mau e onde a MetaQuotes é sempre a priori culpada por tudo. Se o fizeres dessa forma, a culpa é tua; se o fizeres ao contrário, a culpa continua a ser tua.

Alguma vez pensou que talvez seja você mesmo o responsável pela divulgação desta história? Então, acontece que se culpa a priori.Alguns novatos voltam-se para si com uma queixa de que algo não funciona lá, e em vez de lhes explicar educadamente ou de os enviar para estudar os factos, você fivela debaixo dos seus pés e refaz o seu produto para satisfazer a sua ignorância. É assim que funciona, não é? No final, a qualidade do produto sofre, e estas pessoas não aprendem nada.

Compreendo se estivéssemos a falar de uma plataforma de comércio. Mas estamos a falar de uma linguagem de programação em que a flexibilidade é importante. E você mesmo é um programador e provavelmente compreende que não existem soluções universais. O seu mecanismo supostamente eficaz é adequado apenas para alguns casos particulares e é absolutamente inútil noutros casos.Um precisa de descarregar dados para o disco a cada 10 segundos, o outro - a cada 10 MB, o terceiro - a cada tick (sim, sim, existe tal necessidade, se a informação for muito importante). E mais uma vez, se uma pessoa usa algo incorrectamente - é o seu problema pessoal, não há necessidade de ceder à sua ignorância e curvar-se perante ele.

Não comecei tudo isto para nada. Tinha um código onde FileFlush despejava periodicamente informações para o disco. E tenho notado ultimamente que nada é despejado, embora a quantidade de dados que guardo seja de 30-40 Mb. Finalmente, quando o terminal cai (o que não é uma ocorrência incomum), tudo se perde. E nem sequer se deu ao trabalho de nos avisar pelo menos sobre isso. Isso mina completamente a confiança no MQL, se alguma função pode parar de funcionar a qualquer momento.

 
meat:

Já pensou no facto de poder ser você a contribuir para a divulgação desta história? Então acontece que, a priori, se considera culpado.Alguns novatos voltam-se para si com uma queixa de que algo não funciona lá, e em vez de lhes explicar educadamente ou de os enviar para estudar os factos, você fivela debaixo dos seus pés e refaz o seu produto para satisfazer a sua ignorância. É assim que funciona, não é? No final, a qualidade do produto sofre, e estas pessoas não aprendem nada.

Pensamos constantemente e com profundidade suficiente. Como resultado, tomamos tais decisões para que todos tenham menos erros.


Compreendo se estivéssemos a falar de uma plataforma de comércio. Mas estamos a falar de uma linguagem de programação em que a flexibilidade é importante. E você mesmo é um programador e provavelmente compreende que não existem soluções universais. O seu mecanismo supostamente eficaz é adequado apenas para alguns casos particulares e é absolutamente inútil noutros casos.Um precisa de descarregar dados para o disco a cada 10 segundos, o outro - a cada 10 MB, o terceiro - a cada tick (sim, sim, existe tal necessidade, se a informação for muito importante). E mais uma vez, se uma pessoa usa algo incorrectamente - é o seu problema pessoal, não há necessidade de ceder à sua ignorância e curvar-se perante ele.

Deixem-no responder por nós para que "estes sejam os seus problemas pessoais" nos nossos fóruns. Vejamos quantas horas aguenta até que lhe digam como fazer negócios e porque está errado.


Não comecei tudo isto para nada. Tinha um código, onde o FileFlush despejava periodicamente informações para o disco. E ultimamente tenho notado que nada é despejado, embora a quantidade de dados recolhidos seja de 30-40 Mb. Como resultado, quando o terminal cai (e isto não é um acontecimento raro) tudo se perde. E nem sequer se deu ao trabalho de nos avisar pelo menos sobre isso. Isso mina completamente a confiança no MQL, se alguma função pode parar de funcionar a qualquer momento.

Salientei acima que a nossa prioridade é trabalhar eficientemente e maximizar o desempenho da nossa plataforma por si só, e não trabalhar ao lado. Isto aplica-se principalmente a todas as operações de ficheiros: registos, bases de dados e ficheiros de peritos.

Se está tão interessado em trabalhar externamente com ficheiros abertos(e isso em si mesmo já é um problema grave), então tome medidas.

Não há necessidade de bater na parede - esta decisão é consciente e não será alterada.