Adeus robô - olá marasmus - página 12

 
simpleton:

A propósito, sobre a experiência gerencial. Há 5 anos, discutimos no fórum mql5 sobre as perspectivas do MT5, eu disse então que o tempo dirá. Cinco anos se passaram e vemos que a comunidade rejeitou o MT5.

Você tem uma falta de informação. Nós nunca anunciamos nossa base de clientes e implementações.


Não estou traduzindo, princípios gerais, teoria, - não para a teoria em si, mas para a aplicação na prática. Você não encontrará "falhas" tão graves nos mesmos compiladores de C/C++.

E encontraram e até informaram aos autores sobre eles.


Se você diz que neste caso "um método de classe estática não tem o direito de entrar no conteúdo da classe", então por que no caso da criação de objetos dinâmicos já tem esse direito?

Eu estava dizendo "superproteção, vamos consertar isso". Em teoria as condições parecem simples, mas na prática as implementações estáticas/dinâmicas funcionam de forma diferente, o que leva a discrepâncias.


E quanto ao fato de uma implementação não estática comportar-se exatamente da mesma maneira?

A mesma coisa, a regra de "privado significa privado" prevaleceu sobre a nuance "para designer/desenvolvedor nós abrimos uma exceção". vamos consertar isso.


Se houver erros na implementação da linguagem - bem, sim, há erros. Você está falando de controle de qualidade total - portanto, livre-se de erros de implementação no compilador MQL4++ na prática, de modo que é quase tão difícil encontrar erros como nos compiladores C++, uma vez que você tem tal controle. Ainda acredito que um interpretador não ajudará a se livrar de erros como os que eu demonstrei.

Isso mesmo, são erros/merros no compilador que nós mesmos escrevemos a partir do zero. Portanto, esta é a forma usual de coletar ancinhos.

O controle de qualidade total é uma abordagem sistemática para trabalhar com bugs e um foco claro em encontrá-los. Isso é exatamente o que fazemos. Você, ao contrário, declara que é contra a coerção e não quer um controle rigoroso por meios técnicos.



Não se trata de gostar ou não gostar. Existe uma ferramenta. Por que eu deveria me recusar a usar todas as suas possibilidades?

Neste caso, não se trata sequer de "eu gosto". É Myers, aliás, quem gosta tanto. E por alguma razão ninguém tenta acusá-lo de tentar "tropeçar deliberadamente" nos compiladores de C++.

Temos uma boa explicação - "esta não é uma linguagem C++, mas uma linguagem MQL4/MQL5 especializada". Portanto, não temos que apoiar tudo". Mas em qualquer caso, o comportamento será reduzido ao C/C++ familiar na medida do possível.


Não é uma tarefa fácil que não pode ser resolvida logo de cara. É preciso fazer algum esforço aqui, e não um esforço pequeno. A grande maioria dos usuários de MQL não são programadores. E isto deve ser levado em conta no projeto lingüístico. Mas a tarefa pode ser resolvida, tenho certeza.

Se algo bastasse, seria suficiente acrescentar algumas estruturas à antiga MQL4 e limpar algumas coisas como prioridades às operações, como foi feito para a MQL4++ e isso seria um compromisso razoável. O sucesso do MT4 foi em grande parte devido à falta de "esperteza" da linguagem. Este não é o caso agora. E há muito mais erros na implementação do compilador porque a MQL4++ é muito mais complexa do que a antiga MQL4 e a equipe de desenvolvimento quase não mudou muito.

Aqui eu concordo com você, mas acho que é principalmente porque os concorrentes estão fazendo algo que não entendem.

Reescrevemos 5 plataformas de negociação do zero 5 vezes nos últimos 14 anos.

É uma maneira melhor de criar algo realmente legal do que carregar o burro velho com tijolos de pairar. Portanto, tanto o lançamento do MT5 quanto o novo MQL5 nos deram um enorme futuro para os próximos 10 anos.

Mas aqueles que se sentam e se amontoam sobre o velho projeto pensando "deixe o pássaro na mão, o principal é que eu não serei demitido se começar um novo e falhar", perdem o respeito da gerência, são descartados como impotentes e lentamente deixam a cena.

 
Renat:
Você tem uma falta de informação. Nós nunca anunciamos nossa base de clientes e nossa implementação.

Estou julgando pela informação pública e pelo apoio à versão anterior, ou seja, MT4.

Quando a MT4 saiu, a MT3 deixou de ser suportada e passou a ser oferecida muito rapidamente - todos mudaram para a MT4. Isso não aconteceu com o par MT4 - MT5, apesar de ter passado muito tempo. E ainda há um claro viés em direção ao MT4.

Você até já portou de volta do MT5 para o MT4, incluindo o compilador. Você portou alguma coisa do MT4 para o MT3, 4 anos após seu lançamento?

Renat:
E eles fizeram e até reportaram aos autores.

Mas há uma diferença: provavelmente é centenas, se não milhares de vezes mais difícil encontrar um erro em compiladores C/C++ modernos do que na MQL4+++.

Renat:

Eu costumava dizer "superproteger, vamos consertar isso". Em teoria as condições parecem simples, mas na prática as implementações estáticas/dinâmicas funcionam de forma diferente, o que leva a discrepâncias.

A mesma coisa - a regra "privado significa privado" superou a regra "fazer uma exceção para construtor/destrutor". Nós vamos corrigir isso.

Isso mesmo, são bugs/inconsistências no compilador que nós mesmos escrevemos do zero. Portanto, esta é a forma usual de recolher ancinhos.

O controle de qualidade total é uma abordagem sistemática para trabalhar com bugs e um foco claro em encontrá-los. É exatamente isso que nós fazemos.

Basta aplicar os testes de regressão usuais, que nem sequer exigem nenhum "motor" especial. Há controle de acesso em classes/estruturas no idioma - escreva uma vez testes para ele na forma de programas MQL compiláveis. Alguns devem compilar com sucesso, outros devem compilar com um certo erro. Esse é o controle de qualidade total nesse lugar em particular. É verdade, os testes que cobrirão todas as funcionalidades de controle de acesso devem ser escritos primeiro...

Renat:
Em oposição a isto, você diz que é contra a coerção e não quer um controle rigoroso por meios técnicos.

Não é o oposto. O compilador MQL para programas MQL poderia ser feito para incluir tanto avisos quanto o que alguns compiladores C++ chamam de observações por padrão. Mas estou "declarando" apenas que pelo menos as observações devem ser desativadas. Em compilador MQL para programas MQL. E agora nada pode ser desativado neste sentido no compilador MQL4++.

Há uma falta de controle de qualidade ao implementar, em particular, o compilador MQL, uma vez que erros nele são tão facilmente detectados. O que você quer dizer com o controle de qualidade rigoroso dos programas MQL?

Renat:
Temos uma boa explicação - "esta não é uma linguagem C++, mas MQL4/MQL5 especializada". Portanto, não somos obrigados a apoiar todos eles". Mas em qualquer caso, o comportamento será reduzido ao C/C++ familiar na medida do possível.

Ótimo. Você não apóia tudo. Mas o que é suportado não deve conter tantos erros nas construções básicas mais simples.

Você apóia o controle de acesso aos membros da classe/estrutura? Apoiar pelo menos todos os casos básicos nas construções básicas mais simples, sem erros.

Assumir o mesmo controle de acesso - nas construções básicas mais simples:

/******************************************************************************/
class A {
private:
  class B { };
};

/******************************************************************************/
void OnStart() {
  A a;
  B b;
}

Isto se compila sem erros:

'3.mq4' 3.mq4   1       1
0 error(s), 0 warning(s)                1       1

No entanto, vemos que este código não é compilado em C++ por duas razões:

$ clang -c 3.cpp
3.cpp:10:3: error: unknown type name 'B'
  B b;
  ^
1 error generated.

A classe B é definida dentro da classe A, portanto deve ser referenciada em OnStart() como A::B:

class A {
private:
  class B { };
};

/******************************************************************************/
void OnStart() {
  A a;
  A::B b;
}

Mas isso não é tudo - o código modificado ainda não será compilado com o compilador C++:

$ clang -c 3.cpp
3.cpp:10:6: error: 'B' is a private member of 'A'
  A::B b;
     ^
3.cpp:4:9: note: declared private here
  class B { };
        ^
1 error generated.

Por algum motivo, o controle de acesso na MQL4++ geralmente funciona para métodos e dados - membros de classe, mas não para tipos.

Ao especificar o escopo para a classe B como A::B, o compilador MQL4++ gera os seguintes erros:

'3.mq4' 3.mq4   1       1
'B' - struct member undefined   3.mq4   12      6
'b' - undeclared identifier     3.mq4   12      8
'b' - some operator expected    3.mq4   12      8
expression has no effect        3.mq4   12      6
3 error(s), 1 warning(s)                4       2

Por que este "membro estruturador não está definido"?

Mais uma vez, os compiladores C++ também não têm, de alguma forma, problemas com tipos dentro das classes. Mas o compilador MQL4++ faz.

Estes erros foram encontrados por acidente ao tentar implementar o singleton Myers. Alguns dos erros foram encontrados por mim, e alguns foram encontrados por outros participantes da discussão. Mostra quão facilmente se pode tropeçar nos erros de implementação do compilador ao programar em MQL4++. E não é preciso procurar deliberadamente por erros para tropeçar neles, basta tentar resolver a tarefa.

Favor observar que todos estes são erros críticos para o uso sério da MQL4++.

Obviamente, não há testes de regressão do tipo que mencionei acima, pelo menos para a simples verificação do controle de acesso do compilador MQL4++. Caso contrário, tudo já teria sido detectado e corrigido até agora.

Renat:
Reescrevemos 5 plataformas de negociação a partir do zero 5 vezes nos últimos 14 anos.

Essa é uma maneira melhor de criar algo realmente legal do que carregar o burro velho com tijolos de pairar. É por isso que tanto o lançamento do MT5 quanto o novo MQL5 nos deram um enorme futuro para os próximos 10 anos.

Por outro lado, aqueles que se sentam e escrevem o velho projeto pensando "deixe o pássaro na mão, o principal é não ser demitido se eu iniciar um novo projeto e falhar" perdem o respeito da gerência, são descartados como impotentes e lentamente deixam a cena.

Concordo que a ação pró-ativa com tipo inovador de desenvolvimento é o componente mais importante, mas não é o único. E você pode estragar um barril de mel com uma mosca na pomada.

Uma dessas tonalidades é uma distinta falta de qualidade. A razão para criar qualquer coisa na MQL é perdida por causa disso.

 

Eu sobre SSE2, talvez não em tema, mas também com prazer, algo escutado.

Tenho que mudar um dos computadores, não todos, mas isso distrai do tópico, não para o desenvolvimento, não para o comércio, exceto para ler o fórum.

 
MT5 Super! É mágico construir pirâmides sobre ela.
 

Olá usuários do fórum!

Estou atualizando para o mt5 e gostaria de

para perguntar à Pavlik.

Pavlik, se você me vir, envie-me uma mensagem.

r.klassen.ruit@web.de

pansa

 
TimeMaster:

Se você tem uma grande base de indulgências, corujas, etc. que não se compilam em novas construções, então faz sentido olhar mais de perto e "sacudir seu peito". Você deve manter todo o material útil e não perder tempo para reescrevê-lo e debugá-lo para novas construções.

Em um certo momento me aborreci).

TimeMaster:

Verdadeiros programadores experientes ou aqueles que querem se tornar eles, sempre seguem inovações, insetos e falhas em seu pão. É escrever código sem bugs que conta como uma boa programação. Se você não tem energia, tempo, possibilidade ou desejo de compreender todas as inovações do "Metakvot", use a linguagem em que você é fluente. As DLLs não foram abolidas, conecte seus próprios algoritmos ajustados.

O que os verdadeiros comerciantes ou aqueles que querem se tornar eles seguem? ) O autotrading disponível, a principal característica da MT, afundou-se no esquecimento e perdeu-se entre as constantes inovações de inúmeras construções... As opções de autotrading disponíveis através de uma abordagem mais séria da programação, digamos - "é". Eu mesmo tenho apenas uma pequena conta praticamente esquecida na MT. Passei 2 horas hoje reabilitando as ferramentas de MT, pelo aspecto, preciso de 10 vezes mais. Não tenho certeza se preciso, talvez o faça novamente, mas mais como "de memória antiga". Basicamente, já tomei minha decisão.

 
Figar0:

A auto-comercialização disponível, a principal característica da MT - afundou-se no esquecimento e perdeu-se entre as constantes inovações de inúmeras construções... As opções de auto-comercialização disponíveis através de abordagens de programação mais sérias estão, digamos, "lá". Eu mesmo tenho apenas uma pequena conta praticamente esquecida na MT. Passei 2 horas hoje reabilitando as ferramentas de MT, pelo aspecto, preciso de 10 vezes mais. Não tenho certeza se preciso, talvez o faça novamente, mas mais como "de memória antiga". Basicamente, já tomei minha decisão.

Na verdade, mesmo agora tudo funciona, se apenas as características antigas forem utilizadas. Algumas coisas podem ser tornadas muito mais fáceis e mais confiáveis, por exemplo, a contabilização das lacunas do histórico: antes disso (mcl++) a possibilidade de cálculo do histórico com lacunas causou alguma "dor de cabeça" (como conseqüência do histórico "rabo" ser carregado primeiro e depois as barras ausentes serem escritas dentro), eu tive que usar "muletas". Tudo é muito mais simples agora. Você não pode usar nenhum recurso adicional e usar MKL em sua forma anterior/melhorada, como antes. As exceções são os programas que foram além das arrays (índice calculado incorretamente ou memória não alocada) - aqueles que não funcionavam de forma garantida e, muito provavelmente, incorretamente antes.
 
Figar0:

Ficou entediado em algum momento)

De quem é a culpa de alguém ter uma merda de código???

Figar0:

Basicamente, já tomei minha decisão.

Alguém está tentando se conter? Laçado e segurado????

 
AlexeyVik:

De quem é, então, a culpa de alguém ter um código de merda????

O que tem o código de merda a ver com isso? Algumas coisas fundamentais mudaram
 
TheXpert:
O que o código de merda tem a ver com isso? Algumas coisas fundamentais mudaram
Só me pergunto (eu uso o código antigo, funciona): quais coisas fundamentais?