Probador de guiones y asesores de MG4 - página 5

 
Integer:
En este sentido, C++ es lo mismo que JavaScript. Y es cierto.

¡Una magnífica mentira!

Danos un ejemplo de una implementación en C++ de una función similar a la eval() de 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

Es decir, escribir un trozo de código fuente C++ en una variable de tipo std::string, y luego llamar a la función eval(), que ejecutará ese trozo de código tomado de la variable de tipo std::string.

Sugiera una implementación de dicha función eval() en C++ (es decir, ni siquiera estoy hablando de la ausencia de dicha función, sino de la posibilidad de dicha función en el propio lenguaje).

No hace falta decir que ésta no es la única diferencia.

El núcleo de MQL4++ no difiere del de MQL5: la misma sintaxis, los mismos tipos, operaciones, objetos, polimorfismo, sobrecarga...

La única diferencia es la biblioteca que implementa la API de Asesores Expertos, indicadores y scripts. En este sentido, en el mismo Javascript, hay un lenguaje principal y dos modelos de objetos:

Estructuralmente, JavaScript puede representarse como una unión de tres partes claramente distinguibles:

  • núcleo (ECMAScript),
  • Modelo de objetos del navegador (BOM),
  • Modelo de objetos del documento (Document Object Model o DOM).

Y MQL puede representarse como cosas claramente distinguibles: el núcleo del lenguaje y las bibliotecas. Si el núcleo MQL4 es diferente del núcleo MQL4++, el núcleo MQL4++ no difiere del núcleo MQL5.

Por lo tanto, Renat tiene toda la razón aquí, y es extraño discutirlo.

 
Integer:

Exactamente. Especialmente aprovechando la autoridad de la posición superior de uno.

Todas las lenguas son iguales, excepto las particularmente extravagantes. Todos ellos pueden ser aprendidos en 21 días por cualquier tonto. Todos tienen para, mientras, si, cambiar, tal vez la forma de escribir es diferente, pero en principio no cambia nada.

Naturalmente, una comprensión tan superficial hace imposible ver la diferencia. Por eso todos parecen ser iguales.

Me gustaría jugar con la función eval() no sólo en C++ sino también en MQL4++.

¿Escribirías una función de este tipo al menos en MQL4++, ya que no hay ninguna incorporada?

No podré escribirlo - las diferencias entre Javascript y MQL4++ son demasiado para mí.

Dices que todos los lenguajes son iguales, y por lo tanto Javascript y MQL4++ son uno y lo mismo, por lo que debe ser bastante fácil para ti escribirlo.

 
Renat:

En su lugar, cambiamos a funciones CopyXXX muy económicas, en las que el desarrollador consulta exactamente la matriz local para obtener los datos que necesita, no todo el gráfico disponible. A continuación, el manejo más rápido posible de los datos locales (en lugar del antiguo y bastante caro Open/High/Low/Close/Time[xxx]), además el autor puede almacenar en caché esos datos y utilizarlos con moderación en la siguiente llamada. El ahorro de memoria y CPU es enorme. Además, la propia plataforma es especialmente práctica para gestionar grandes bases de datos, ya que el acceso a las mismas se realiza siempre bajo demanda (en lugar de un acceso directo no supervisado), lo que permite una gestión flexible de las cachés.

También hay que tener en cuenta que la simplicidad de las llamadas Open/High/Low/Close/Time[xxx] en MQL4 se limitaba al símbolo y al marco temporal actuales, y todos los demás datos para otros símbolos y marcos temporales se obtenían mediante las funciones iClose/iLow(...), lo que provocaba graves retrasos. La transición en MQL5 a un único modelo de función CopyXXX ha mejorado radicalmente la situación, permitiendo a los desarrolladores obtener los trozos de datos necesarios en una sola petición, y no realizar múltiples llamadas bloqueadas (piense en los bloqueos en cada una de las llamadas a iClose).

Estas no son nuestras funciones y este artículo tampoco. Este artículo es un conjunto de muletas monstruosas, pero fue lanzado para mostrar la diferencia.

He explicado repetidamente la necesidad de utilizar las nuevas características de MQL5, no las horrendas muletas.

Si hubiera una documentación con un número suficiente de ejemplos adjuntos, basados en el uso literario de las nuevas características de MQL5, de forma que incluso los novatos pudieran montar el código para sus necesidades sin entrar en todos los detalles, y el código siguiera siendo literario en general, gracias al número suficiente de ejemplos y al código de los ejemplos escrito con el uso literario de las nuevas características de MQL5, la situación con MT5 no sería tan desastrosa.

Sin embargo, tan pronto como en lugar de ello, había artículos con "un montón de muletas horribles" utilizado como el código, tenemos tanto el rechazado MT5 y tal actitud a la API en MQL5. Y la inmensa mayoría del público no son programadores profesionales. Por supuesto, esta no es la única razón para el rechazo de la MT5, pero es una de las principales.

 

Le preguntaron a alguien:

- ¿Por qué si, por ejemplo, los extraterrestres existen, no nos hablan, no nos enseñan?

Se le dijo:

- ¿Enseñarías a las cucarachas a hablar? ¿Por qué no lo haces?


Simplón, sin ánimo de ofender, no has entendido nada de lo que ha dichoInteger.
 
simpleton:

Ojalá hubiera una documentación con un número suficiente de ejemplos adjuntos, que estuvieran escritos en base al uso competente de las nuevas características de MQL5,

Ladocumentación de MQL5 tiene 4000 páginas en 9 idiomas, una enorme kodobase en código fuente, 360 artículos traducidos a 5 idiomas, foros en 5 idiomas, donde se pueden hacer preguntas, etc.

 
rustein:

Simplón, sin ánimo de ofender, no has entendido nada de lo que ha dichoInteger.

Ha acertado.

Reshetov lo dijo con mayor precisión: https://www.mql5.com/ru/forum/153749/page4#998584

En general, los ataques a MT5 no son más que excusas podridas de quienes no quieren cambiar a un nuevo terminal o inventos de quienes sólo han oído hablar de MT5 pero no saben dónde está.

 
Renat:

Tiene razón.

En general, los ataques a MT5 no son más que excusas podridas de quienes no quieren cambiar a un nuevo terminal, o invenciones de quienes sólo han oído hablar de MT5 pero no saben dónde está.


¿Qué tiene que ver MT5 con esto?
Quiero hacerlo durante mucho tiempo. Pero el broker no ofrece todavía MT5. Así que promuévelo adecuadamente.
En cuanto a quién entendió qué o no, tal vez no lo entiendas. ¿Es tan importante?
 
rustein:

En cuanto a quién entendió qué o no, quizás tú tampoco lo hiciste. ¿Es tan importante?

No has pronunciado ni una sola frase con sentido ni has dado un solo argumento. Sólo emoción.

 
Renat:

No has pronunciado ni una sola frase con sentido ni has dado un solo argumento. Sólo la emoción.

И?
 
simpleton:

...

Hace poco hubo una discusión aquí sobre qué lenguaje de programación aprender. Uno de los participantes dio una recomendación muy útil: primero el ruso (o cualquier otra lengua materna). Para entender de qué va la conversación.

En la frase"En este sentido, C++ no es diferente de JavaScript. " la frase"De esta manera" define (o aclara) el criterio de comparación. Entonces surge una extraña pregunta: "¿De qué están hablando ahora aquí?".