Testador apoiando os scripts e consultores MG4 - página 5

 
Integer:
Nesta linha, C+++ é o mesmo que JavaScript. E é verdade!

Uma mentira magnífica!

Dê um exemplo de uma implementação C++ de uma função similar à avaliação Javascript ():

01      var str = "if (a) { 1+1 } else { 1+2 }"
02      var a = true
03      var b = eval(str)
04      alert("b равно : " + b) // 2
05       
06      // теперь поменяем "a"
07       
08      a = false
09      b = eval(str)
10      alert("b равно : " + b) // 3

Ou seja, escreva um pedaço de código fonte C++ em uma variável do tipo std::string, e então chame a função eval(), que executará aquele pedaço de código retirado da variável do tipo std::string.

Sugerir uma implementação de tal função eval() em C++ (isto é, não estou nem mesmo falando da ausência de tal função, mas sobre a possibilidade de tal função no próprio idioma).

É desnecessário dizer que esta não é a única diferença.

O núcleo MQL4++ não difere do da MQL5: a mesma sintaxe, os mesmos tipos, operações, objetos, polimorfismo, sobrecarga...

A única diferença é a biblioteca que implementa o API de Expert Advisors, indicadores e scripts. Neste sentido, no mesmo Javascript, há uma linguagem central e dois modelos de objetos:

Estruturalmente, o JavaScript pode ser representado como uma união de três partes claramente distinguíveis:

  • kernel (ECMAScript),
  • Modelo de Objeto de Navegador (BOM),
  • Modelo de Objeto de Documento (Document Object Model ou DOM).

E a MQL pode ser representada como coisas claramente distinguíveis: a linguagem central e as bibliotecas. Se o núcleo MQL4 é diferente do núcleo MQL4++, o núcleo MQL4++ não difere do núcleo MQL5.

Portanto, Renat está absolutamente certo aqui, e é estranho discutir com isso.

 
Integer:

Exatamente. Especialmente aproveitando a autoridade de uma posição superior.

Todos os idiomas são os mesmos, exceto os particularmente extravagantes. Todos eles podem ser aprendidos em 21 dias por qualquer boneco. Todos têm para, enquanto, se, mudar, talvez a forma de escrita seja diferente, mas em princípio não muda nada.

Naturalmente, um entendimento tão superficial torna impossível ver a diferença. É por isso que todos eles parecem ser iguais.

Eu gostaria de jogar com a função eval() não apenas em C++ mas também em MQL4++.

Você escreveria tal função pelo menos na MQL4++, já que não há nenhuma incorporada?

Não serei capaz de escrevê-lo - as diferenças entre Javascript e MQL4++ são demais para mim.

Você está dizendo que todos os idiomas são os mesmos e, portanto, Javascript e MQL4++ são um e o mesmo, por isso deve ser bastante fácil para você escrevê-lo.

 
Renat:

Em vez disso, mudamos para funções CopyXXX muito econômicas, onde o desenvolvedor consulta exatamente a matriz local para a quantidade de dados que precisa, não todo o gráfico disponível. A seguir vem o tratamento mais rápido possível dos dados locais (em vez do velho e caro Open/High/Low/Close/Time[xxx]), mais o autor pode armazenar esses dados e usá-los com parcimônia na próxima chamada. A economia de memória e CPU é enorme. Além disso, a plataforma em si é particularmente livre para gerenciar vastos bancos de dados - o acesso a eles é sempre sob demanda (ao invés de acesso direto sem supervisão) e isto permite o gerenciamento flexível de caches.

Deve-se notar também que a simplicidade das chamadas Open/High/Low/Close/Time[xxx] em MQL4 foi limitada ao símbolo e ao prazo atual, e todos os outros dados para outros símbolos e prazos foram obtidos usando as funções iClose/iLow(...), o que causou sérios atrasos. A transição em MQL5 para um único modelo de função CopyXXX melhorou radicalmente a situação, permitindo aos desenvolvedores obter os pedaços de dados necessários em uma solicitação, e não fazer múltiplas chamadas bloqueadas (pense nos bloqueios em cada chamada para iClose).

Estas não são nossas funções e este artigo também não é. Este artigo é um conjunto de muletas monstruosas, mas foi lançado para mostrar a diferença.

Expliquei repetidamente a necessidade de usar as novas características da MQL5, não as horrendas muletas.

Se houvesse uma documentação com um número suficiente de exemplos anexados, baseada no uso literário das novas características da MQL5, de modo que mesmo os novatos pudessem montar seu código como dados, sem entrar em todos os detalhes, e o código ainda seria literado em geral, graças ao número suficiente de exemplos e ao código de exemplos escrito com o uso literário das novas características da MQL5, a situação com a MT5 não seria tão ruim assim.

No entanto, assim que, em vez disso, havia artigos com "um monte de muletas horríveis" usados como código, temos tanto o MT5 rejeitado quanto tal atitude em relação ao API na MQL5. E a esmagadora maioria do público não é de programadores profissionais. É claro que esta não é a única razão para a rejeição do MT5, mas é uma das principais.

 

Alguém foi perguntado:

- Por que se, digamos, existem alienígenas, eles não falam conosco, não nos ensinam?

Foi-lhe dito:

- Você ensinaria as baratas a falar? Por que você não faz isso?


Simpleton, sem ofensa, você não entendeu nada do quea Integer disse.
 
simpleton:

Se houvesse apenas uma documentação com um número suficiente de exemplos anexados, que foram escritos com base no uso competente das novas características da MQL5,

Adocumentação da MQL5 tem 4000 páginas em 9 idiomas, um enorme kodobase em código fonte, 360 artigos traduzidos em 5 idiomas, fóruns em 5 idiomas, onde você pode fazer perguntas, etc.

 
rustein:

Simpleton, sem ofensa, você não entendeu porra nenhuma do quea Integer disse.

Ele acertou.

Reshetov disse-o ainda com mais precisão: https://www.mql5.com/ru/forum/153749/page4#998584

Em geral, os ataques ao MT5 são apenas desculpas podres para aqueles que não querem mudar para um novo terminal ou invenções por aqueles que só ouviram falar do MT5 mas não sabem onde ele está.

 
Renat:

Ele tem razão.

Em geral, os ataques ao MT5 são apenas desculpas podres por aqueles que não querem mudar para um novo terminal, ou fabricações por aqueles que só ouviram falar do MT5, mas não sabem onde ele está.


O que a MT5 tem a ver com isso?
Quero fazer isso por muito tempo. Mas o corretor ainda não oferece o MT5. Portanto, promova-o adequadamente.
Quanto a quem entendeu o quê ou não, talvez você não entenda. É assim tão importante?
 
rustein:

Quanto a quem entendeu o quê ou não, talvez você também não tenha entendido. Isso é assim tão importante?

Você não proferiu uma única frase significativa ou fez um único argumento. Apenas emoção.

 
Renat:

Você não proferiu uma única frase significativa ou fez um único argumento. Apenas emoção.

И?
 
simpleton:

...

Houve uma discussão em algum lugar aqui recentemente sobre qual linguagem de programação aprender. Um participante deu uma recomendação muito útil - primeiro russo (ou qualquer outro idioma nativo). Para entender do que se trata a conversa.

Na frase"Nesta linha, C++ não é diferente do JavaScript". " a frase"Desta forma" define (ou esclarece) o critério de comparação. Então surge uma pergunta estranha - "Do que você está falando aqui agora"?