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

 
Maxim Kuznetsov:

com estática em mql tudo está funcionando e repleto de erros. O código é sempre construído/compilado como um todo, sem objeção intermediária e a declaração de estática é apenas um tributo à tradição.

Se alguém usa estática em mql - isso é quase 100% do mundo C/C++/C#; ou se alguém espreita e imita ridiculamente :-)

Mas há também __thread__ :-)

Se você escreve estático em um módulo e não em funções, sim. O programador muito provavelmente não sabe o que está fazendo. :) E o que diz respeito a variáveis locais de funções e,variáveis locais de métodos de classe, e também campos de classe, é até uma coisa muito útil, eu acho.

E os erros podem surgir de uma má compreensão do conceitode variáveis estáticas e da sua utilização incorreta como conseqüência.
 
MakarFX:

depois de

adicionar

não ajudou) onde quer que eu o tenha colocado)

 
Mihail Matkovskij:

Se você escreve estático em um módulo e não em uma função, sim. O codificador provavelmente não sabe o que está fazendo. :) E o que diz respeito a variáveis locais de funções e,variáveis locais de métodos de classe, e também campos de classe, é até uma coisa muito útil, na minha opinião.

A maneira de resolver conflitos simples de nomenclatura é adicionar m_ a_ tretas às entidades, porque o compilador não conhece o escopo e jura.

Dois programadores independentes não devem nomear funções, classes e variáveis globais da mesma forma. E os parâmetros de método e função devem ser únicos. O mesmo deve acontecer com as variáveis locais.

não há estática aqui :-)

Desculpe, eu entendi errado.

 
законопослушный гражданин:

não ajudou) onde quer que eu o coloque)

Se você quiser entender o código, veja através da lógica da EA, o que ela faz e sob quais condições.

Descrevi o consultor de forma muito clara, mesmo para iniciantes, se você não entende, pergunte.

Se você quer ter um EA escrito para você, como um "cidadão cumpridor da lei", vá aqui

 
Maxim Kuznetsov:

A maneira de resolver conflitos simples de nomenclatura é adicionar o m_ a_ treta às entidades porque o compilador não sabe como fazer escopo e jura.

Dois programadores independentes não devem nomear funções, classes e variáveis globais da mesma forma. E os parâmetros de método e função devem ser únicos. O mesmo deve acontecer com as variáveis locais.

não há estática aqui :-)

Desculpe, eu entendi errado.

As tarefas podem ser diferentes e usar variáveis estáticas apenas para resolver conflitos de namespace, claro, você não deve (mas isso é impreciso... :)). Mas você pode, por exemplo, registrar quantos objetos de alguma classe foram criados. Além disso, constantes estáticas, uma coisa muito útil. Métodos estáticos, etc. Você pode fazer sem estática, é claro. Mas tudo isso depende de muitos fatores. A tarefa em mãos e as formas de resolvê-la. Bem, é claro, depende da compreensãodos programadores sobre o conceito de programação, em primeiro lugar.

 
Mihail Matkovskij:

As tarefas podem ser diferentes e usar variáveis estáticas apenas para resolver conflitos de namespace certamente não é uma boa idéia (mas é impreciso... :)). Mas, por exemplo, você pode anotar quantos objetos de alguma classe foram criados. Além disso, constantes estáticas, uma coisa muito útil. Métodos estáticos, etc. Você pode fazer isso sem estática, é claro. Mas tudo isso depende de muitos fatores. A tarefa em mãos e as formas de resolvê-la. Bem, é claro, depende da compreensão doprogramador sobre o conceito de programação, em primeiro lugar.

Agora pegue uma biblioteca e #inclua-a...

Você vai ter muitos conflitos do nada. A razão é que você e o autor se referem a uma e a mesma coisa que duas pessoas razoáveis. Em um simples EA, a entrada de um SL duplo - e muitos avisos.

Como diabos eu nomeio um stop loss, então é garantido que não vai coincidir com ninguém (sic!, com os nomes dos parâmetros dos métodos), se for chamado de stop loss e significa exatamente isso ?

Ooh ! a solução é inp_SL...e m_SL e a_SL da visibilidade... deixar os desenvolvedores arrastarem os meta dados e as áreas de definição nos nomes.

não há lugar para ficar com raiva...

 
Maxim Kuznetsov:

Agora pegue alguma biblioteca e #inclua-a para si mesmo...

você vai ter muitos conflitos por nada. Só porque duas pessoas razoáveis, você e o autor, se referiram a uma e a mesma coisa como uma e a mesma coisa. Em um simples EA, SL duplo - e muitos avisos.

Como diabos eu nomeio um stop loss, então é garantido que não vai coincidir com ninguém (sic!, com os nomes dos parâmetros dos métodos), se for chamado de stop loss e significa exatamente isso ?

Ooh ! a solução é inp_SL...e m_SL e a_SL da visibilidade... deixar os desenvolvedores arrastarem os meta dados e as áreas de definição nos nomes.

não há lugar para a raiva...

Raramente uso bibliotecas de cordas, pois raramente estou satisfeito com elas. Eu prefiro fazer o meu próprio. Mas posso usar uma biblioteca de terceiros, somente se precisar criar algo que já tenhasido pensado muitas vezes antes de mim. E então tais bibliotecas de terceiros muitas vezes têm que afinar (por exemplo, um erro aparece de repente, ou me faltam algumas funções ou métodos necessários). E se houver demasiados conflitos como os descritos por você, é melhor procurar outra biblioteca. Ou mudar os nomes usando a substituição automática, no caso mais extremo. Mas eu não o faria.

 
MakarFX:

Se você quiser entender o código, passe por toda a lógica da EA, o que ela faz e sob quais condições.

Deixei muito claro para vocês todo o EA, mesmo para os iniciantes, se não o entenderem, perguntem.

Se você quiser ter um EA escrito para você, você pode ir aqui, como um "cidadão cumpridor da lei".

Não, não quero. Quero descobrir por conta própria.

O manual da MQLQL está escrito em uma linguagem diferente da minha, por isso não entendo algumas coisas, mas o Expert Advisor está explicado, obrigado.

 
Maxim Kuznetsov:

Agora pegue alguma biblioteca e #inclua-a para si mesmo...

você terá muitos conflitos de repente. Só porque duas pessoas razoáveis, você e o autor, se referiram a uma e a mesma coisa como uma e a mesma coisa. Em um simples EA, a entrada de um SL duplo - e muitos avisos.

Como diabos eu nomeio um stop loss, então é garantido que não vai coincidir com ninguém (sic!, com os nomes dos parâmetros dos métodos), se for chamado de stop loss e significa exatamente isso ?

Ooh ! a solução é inp_SL...e m_SL e a_SL da visibilidade... deixar os desenvolvedores arrastarem os meta dados e as áreas de definição nos nomes.

não há lugar para a raiva...

Aparentemente, é um pouco incômodo...)) Nunca vejo utilidade em inserir os grandes códigos binários de outra pessoa no corpo do programa. Ou exigem instruções reais, ou devem ser decompostas e compreendidas primeiro))))

O gerador de prefixos únicos no projeto é nosso everything))))

 

Não entendo porque todos estão falando de algum tipo de conflito de nomes...? Deve ser sobre programação de procedimentos... Tanto quanto sei, se houver vários conflitos desse tipo, eles podem ser facilmente resolvidos com prefixos. Isso é tudo... Por que você tem que escrever tanto sobre isso...? :)

Além disso, há muito tempo, os desenvolvedores acrescentaram algo como o namespace. Eu não sei sobre a 4ª versão, mas a 5ª a tem há muito tempo. Portanto, não vejo um problema tão grande.

Razão: