Ajude-me a aprender a programar. - página 7

 
Aleksei Stepanenko:

Que monte de porcaria...

Sim, a chamada do ciclo de Dmitry não é a mais elegante, mas ele escreveu um código interessante para obter o número da semana a partir da data. Quando a uso, penso sempre nela com uma palavra gentil.

Mas, Dimitri, você tem que ser mais educado com as pessoas, mais gentil.

Eu sou educado com as pessoas.

 

O código de Dmitri não sobreviveu, mas aqui está um retrabalho com base nele:

//получаем номер недели в году
int GetWeekNumber(datetime eTime)
   {
   MqlDateTime eDate;
   //получаем дату начала года
   TimeToStruct(eTime,eDate);
   eDate.mon=1;
   eDate.day=1;
   eDate.hour=0;
   eDate.min=0;
   eDate.sec=0;
   datetime StartTime=StructToTime(eDate);
   //возвращаем дату назад в структуру, чтобы определить день недели начала года
   TimeToStruct(StartTime,eDate);
   return(int((eTime-StartTime+86400*eDate.day_of_week)/604800));
   }
 
Dmitry Fedoseev:

Eu sou educado com as pessoas.

Por que tal agressão, Dimitri?

Eu simplesmente perguntei como usar o PositionsTotal() no laço corretamente. E não você pessoalmente, mas em geral. E você simplesmente estalou. O que está errado, Dimitri?

Espero que não tenha sido eu quem se referia ao seu comentário sobre a desumanização de seus interlocutores.

 
Aleksei Stepanenko:

O código de Dmitri não sobreviveu, mas aqui está um retrabalho com base nele:

Oh b(a)ogies! É uma magnífica criação de uma mente de gênio! Inacreditável! Obrigado por compartilhar. Ainda tenho que crescer e crescer a alturas tão colossais! É como um truque de um hacker. Isso é incrível. Eu não entendo o que está escrito. É um código perfeito. Pena que você tenha mudado um pouco, não brilha tão bem quanto poderia.

 
Nikolay Mitrofanov:

Oh b(a)ogs! Esta é uma magnífica criação de uma mente engenhosa!

Que fora-da-lei!

 
Dmitry Fedoseev:

O que também é muito engraçado é que mais uma vez todo mundo fica todo excitado - oh que código errado eu escrevi para um novato... e todos estão me contando tudo sobre isso... Incrível!

Isso nunca aconteceu. Ninguém criticou o código. É tudo uma questão de preferências e opiniões sobre o loop.

E no momento com PositionsTotal(), já surgiu uma disputa a esse respeito.

Pareceu-lhe que você está sendo atacado por causa do código. Mas a realidade é que ninguém dá a mínima para isso.

Não há muitas variantes do que deveria estar certo e do que funcionaria ao mesmo tempo. É uma questão de escolha.


E agora, com meu maravilhoso Expert Advisor, que mostra a você qual abordagem de loops (de três usados com freqüência) escolher, desaparece toda a necessidade de discutir sobre o anúncio de loops) Não é uma grande notícia, Dmitry?

Alegremo-nos juntos em nosso sucesso compartilhado! Resolvemos conjuntamente uma longa e centenária controvérsia no fórum MQL! Finalmente! Viva todos os programadores e simpatizantes!

 
Tio Nisla:
Eu queria acrescentar mais cedo que se alguma função desempenha algumas outras manipulações além de devolver alguma quantia, por exemplo, calcular parâmetros comerciais, tal uso pode causar artefatos difíceis de capturar e levar um autor de código a um estupor: "Ht??? Por que 4 vezes??? O_o F$#@!!! Não deveria estar lá três vezes? Por que minha EA está mentindo para mim?". Isso é o que eu chamava de "shithcod", que um especialista ficou indignado com as raízes de seus cabelos. Eu não falei nisso, pois é óbvio, mas você o fez por mim. Mas você não levou em conta que o endereçamento por um índice calculado dinamicamente sem reinicialização de matriz é algo mais. No sistema nu, isto geralmente leva ao GPF, em plenos pulsos com indicadores e matrizes inteligentes para uma exceção e seu manipulador. Em mql não está claro a que leva.

Não deveria haver três vezes, mas uma vez.

Você pode desenhar como fazer isso?

 
Dmitry Fedoseev:

Eu sou educado com as pessoas.

Dimitri, este é um especialista de muito alto calibre.

 
Nikolay Mitrofanov:

Estou escrevendo sobre compreensão ao me desenvolver. Primeiro o estudo - depois a ação.

Pelo contrário, você escreve: primeiro ação, depois pensar e pentear.

Parece ser a mesma coisa. Mas então por que eles escrevem exemplos de código e documentação?) É para que as pessoas façam menos mal? Acho que essa é exatamente a razão. O que você acha?

Aprender enquanto se desenvolve? Na verdade, estamos falando sobre os primeiros passos na programação. É ao escrever a primeira EA que é melhor obter resultados primeiro, e depois descobrir a beleza e a brevidade do código mais tarde.

Estou deixando esta caixa de diálogo agora. Tudo isso é inútil.

 
Aleksei Stepanenko:

O código de Dmitri não sobreviveu, mas aqui está um retrabalho baseado nele:

Eu acho que deveria ser mais simples, assim

return ((int)(day_of_year/7))

O número seqüencial do dia do ano está na estruturaMqlDateTime