Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1915

 
Vitaly Muzichenko #:

Às vezes eu faço a mesma coisa, porque às vezes acontece que você está apenas tentando se explicar, você perde tempo, mas não tem notícias do TC, ou ele não está interessado.

Se ele responder, significa que ele está pronto para uma discussão, e então você inicia uma discussão.

Alguns novatos em programação já são bastante reconhecíveis. E na maioria das vezes você pode ver se a pessoa quer aprender ou simplesmente aparecer para perguntar... Neste caso, tenho certeza de que há um desejo.

 
Alexey Viktorov #:

Alguns recém-chegados à programação já são bastante reconhecíveis. E na maioria das vezes você pode ver se uma pessoa quer aprender ou simplesmente aparecer para perguntar... Neste caso, tenho certeza de que há um desejo.

Boa noite! Mais uma vez quero expressar um GRANDE OBRIGADO a todos aqueles que responderam de forma construtiva à minha pergunta.

Vou tentar ser claro sobre mim mesmo brevemente. Uma pessoa bastante idosa. Ainda trabalhando (não em uma fábrica, mas ainda). Em outubro de 2020, comecei a auto-treinar na linguagem de programação MQL5. No meu tempo livre, desenvolvi um Expert Advisor em várias moedas, que agora está instalado e trabalhando em uma conta real. De vez em quando eu tento escrever novos Expert Advisors (somente para mim!). Às vezes eu "tropeço" devido à minha falta de conhecimento de muitas coisas. Não tenho a pretensão de ser profissional. É mais ou menos isso.

E O MAIS IMPORTANTE!!! Se uma pessoa entra em contato com os novatos em MQL4 e MQL5, ajuda e discussão de algoritmos e códigos, ele realmente espera por ajuda!!!

Atenciosamente, Vladimir.

 
MrBrooklin #:

E O MAIS IMPORTANTE!!! Se uma pessoa se aplica ao ramo Qualquer pergunta de iniciantes em MQL4 e MQL5, ajuda e discussão de algoritmos e códigos, ele realmente espera por ajuda!!!

Atenciosamente, Vladimir.

Infelizmente, todos eles esperam um tipo diferente de ajuda. Você quer entender e dominar todas as sutilezas de programação, enquanto algumas pessoas pensam e lhe pedem para "Você me escreve uma função". E então eu descobrirei como deve funcionar...". Espero que você entenda que tais pessoas não vão resolver isso, mas apenas usar códigos prontos como tijolos de lego... E às vezes eles não podem montar algo que funcione mesmo com esses tijolos. Eles podem errar a seqüência...

 

Surgiu uma pergunta. Qual é o significado (sagrado) de usar o argumento por referência no exemplo (Fedoseyev Dm. textbook)?

bool hyperbola(double x,double &r){
if(x==0){
return(false);
}
r=1.0/x;
return(true);
}

É possível fazer com um argumento x declarando r em âmbito global.

double r;
////
bool hyperbola(double x){
if(x==0){
return(false);
}
r=1.0/x;
return(true);
}

Isto é mais necessário se o argumento for calculado ou receber um valor dentro da função e for passado como resultado.

Por exemplo:

int FileOpenF(string File_NameArg,int &HandleArg)
  {
   HandleArg=FileOpen(File_NameArg,FILE_CSV|FILE_WRITE,";");//Открытие файла
   if(HandleArg==-1) // Неудача при открытии файла
     {
      Alert("Ошибка при открытии файла. ",File_NameArg,// Сообщение об ошибке
            "Возможно, файл занят другим приложением Handle= ",HandleArg);
     }
   return(HandleArg);
  }

Algo confuso sobre os significados sagrados))))

 

Por favor, me ajude nesta tarefa - preciso saber quantas barras de minutos existem no dia de hoje.

A tarefa é descobrir quantos bares existem no dia anterior da semana - se hoje é terça-feira, então veja na última terça-feira.

Ao mesmo tempo, se não houver um dia anterior da semana, digamos, que foi um fim de semana, então olhamos para o antepenúltimo dia.

Como fazer isso?

Até agora a idéia de trabalho é a seguinte - definimos o dia atual da semana, depois procuramos o mesmo dia da semana e o usamos para definir o número de barras, mas talvez haja algo mais elegante?

 
Valeriy Yastremskiy #:

Que estou confuso com os significados sagrados))))

Sem uma variável global, uma função é mais autônoma e, portanto, mais versátil. Por exemplo, uma função pode realizar cálculos semelhantes em 20 lugares independentes no código e, compreensivelmente, o resultado não deve ser empilhado em uma variável global comum x. Em vez de uma variável, pode haver também uma estrutura ou classe mais complexa, ou por exemplo, várias classes e várias estruturas, ou uma matriz, portanto, também não se deve colocar tudo em um valor de retorno. o valor de retorno é freqüentemente usado não para retornar um cálculo, mas sucesso/falha nesse cálculo.

 
Nikolay Ivanov #:

Sem uma variável global, a função é mais autônoma e, portanto, mais versátil. Por exemplo, uma função pode realizar cálculos semelhantes em 20 lugares independentes no código e, claro, o resultado não deve ser empilhado em uma variável global x. Ao invés de uma variável, pode haver também uma estrutura ou classe mais complexa, ou por exemplo, várias classes e várias estruturas, de modo que também não se deve colocar tudo em um valor de retorno.

Para que seja divulgado (r) ele ainda precisa ser declarado no escopo ou global.

double r;
if(hyperbola(DBL_MIN,r)){
Alert("1/DBL_MIN=",r);
}
else{
Alert("Неправильный аргумент для функции hyperbola()");
}
 
Valeriy Yastremskiy #:

Para tirá-lo (r), você ainda precisa declará-lo no escopo ou global.

Sim, você prepara a variável com antecedência, global ou localmente, e a utiliza como argumento em uma função. Mas a função em si não estará vinculada a estas variáveis criadas para armazenamento.

 
Nikolay Ivanov #:

Sim, você pode preparar uma variável antecipadamente, global ou localmente, e usá-la como um argumento em uma função. Mas a função em si não estará vinculada a estas variáveis criadas para armazenamento.

A pergunta não era sobre isso. A função de Dimitri não retorna um argumento por referência. Por que usar um argumento por referência? Sim, as áreas locais poderão declarar uma variável em seu próprio lugar e obter uma resposta à variável depois que a função for chamada.

E é só isso????

 
Valeriy Yastremskiy #:

A pergunta não era sobre isso. A função de Dimitri não retorna um argumento por referência. Por que usar um argumento por referência? Sim, as áreas locais serão capazes de declarar uma variável em si mesmas e obter uma resposta à variável após a função ser chamada.

E é só isso????

Se uma variável é declarada globalmente, não deve haver variáveis com o mesmo nome. Se uma função é chamada de várias funções, como em seu exemplo, você pode esquecê-la e declarar uma variável com o mesmo nome em cada função. Isto é conveniente...

Razão: