Lo que me gustaría del "terminal" como programador profesional. Otro hilo con deseos para MQL5. - página 8

 
Sin embargo, if() por cualquier JMP - incondicional o condicional sigue ramificando + while/for
 
En la entrevista con los desarrolladores de MQL5 se dijo que el intérprete ahora compilará en el código x86 de la plataforma, no en el código de bytes del intérprete. Así que, básicamente, es posible desmontar y ver la API para trabajar con el terminal. Incluso se pueden escribir bibliotecas basadas en él y escritas incluso en VC++.
 

Sería muy conveniente hacer doble clic en una posición en los resultados del comprobador para saltar a un evento en el gráfico.

Mientras tanto, tener que buscar el momento a mano es agotador.

 
majestic >> :

Sería muy conveniente hacer doble clic en la posición en los resultados del probador para saltar al evento en el gráfico.

Mientras tanto, tienes que usar tus manos para encontrar el momento - es estresante.

¿No es lo que ya hay un buen ajuste?

 

MProgrammer, ¿por qué necesitas un módulo dotnet que dibuje gráficos? Además, qué interés tiene MQ en dar un módulo de gráficos de este tipo de forma gratuita a los programadores de terceros.

¿No es posible ahora dar nuestros datos calculados desde C# que necesitamos mostrar en un gráfico a través de un simple archivo con carga y visualización de objetos usando el script o indicador, escrito en MQL4? Es decir, programa C# >> datos >> archivo >> script, indicador o acceso síncrono por EA.

Si quieres crear un Asesor Experto en C# o en cualquier otro lenguaje de programación al que estés acostumbrado, puedes hacer una cadena de conexión con MT, como


para el Asesor Experto:

MQL4 Expert Advisor >> Dll >> sync socket >> programa C# (trabajando con comillas) >> (resultados) >> sync socket >> Dll >> MQL4 Expert Advisor (mostrando objetos gráficos, posiciones de apertura y cierre)


para su optimizador o probador:

MQL4 script >> Dll >> sync socket >> programa C# (trabajando con comillas, múltiples ejecuciones) >> (resultados) >> sync socket >> Dll >> MQL4 Expert Advisor (mostrando el gráfico de los objetos y las posiciones de la ejecución como después del probador)


Ventajas de este enfoque:

- Puede desarrollar el programa en el lenguaje y el entorno al que está acostumbrado, porque todos los lenguajes de alto nivel admiten el manejo de sockets.

- Es posible depurar el programa de estrategia.

- Puedes crear tus propios optimizadores, cuya potencia de cálculo se distribuye entre procesadores (múltiples hilos) e incluso ordenadores en la red

(la distribución por supuesto es mucho trabajo, pero la velocidad de optimización se incrementará en varias veces). Por ejemplo, si se ejecuta el optimizador en el ordenador de sobremesa de casa, se enviará una parte de las ejecuciones al ordenador portátil de la red local y también al ordenador de su amigo, e incluso al ordenador del trabajo, donde también se está ejecutando el módulo de optimización (uso no autorizado de la capacidad de la oficina para fines personales :))).


Contras:

- En MQL4, la transferencia de datos a Dll no está convenientemente implementada. Es decir, las estructuras y arrays de estructuras no se pueden pasar sólo arrays de doble, pero en MQL5 este problema se ha prometido.

Aunque, teniendo en cuenta que msvc++ es más rápido para trabajar con double que con otros tipos de datos, el enfoque existente es probablemente incluso mejor, aunque menos conveniente.

- Tendré que crear un módulo de conexión y depurarlo (pero para un programador profesional no hay problema, es más fácil que crear sus propios gráficos, como dijo el autor de este hilo).


El módulo de comunicación lo quiero implementar yo mismo en un socket para dot.net y java. Tengo el módulo similar en Delphi y WM_COPYDATA utilizando - funciona bien y se utiliza en el programa vinculado con MT y el comercio en la cuenta real.

Por cierto, hace poco hice algunas pruebas con números reales y enteros en Java y C++.

En general, si se utiliza la máquina java en modo -servidor, a partir de la segunda o tercera ejecución la velocidad de la prueba java de trabajo con enteros supera al programa MSVC++.

Con tipos de datos dobles, msvs++ supera a java, pero si se utilizan tipos float, java toma la delantera. Así que hay una optimización dinámica del programa java en tiempo de ejecución.

No he probado C#, pero estoy decepcionado con delphi: está por detrás de C++ y Java en las pruebas de velocidad. Aunque puede ser cuando se trabaja con muchos objetos pequeños (ordenar, mover, borrar, crear) Delphi mostrará su mejor cara.

 

Queridos amigos, permítanme decir unas palabras sobre GOTO.

Toda esta historia comenzó mucho antes de la aparición de los antiguos ordenadores personales, que algunos recuerdan con nostalgia.

"En el año 68 la situación explotó por completo con el famoso artículo de Dijkstra "Sobre la nocividad del operador goto", y eso fue en la época en que ni un solo programa podía prescindir del operador goto. Resultó que la habilidad del programador es inversamente proporcional al número de operadores goto que utiliza en su programa. Fue una conmoción revolucionaria no sólo en el campo de la programación, sino también en la metodología de programación en general.

Luego hubo una serie de trabajos sobre programación estructural, donde se demostró que cualquier programa podía ser dibujado sin un GOTO, utilizando 3 estructuras básicas: secuencia, ramificación y bucle. En algún lugar tengo incluso el libro de Hoare "Structured Programming" por ahí. No recuerdo exactamente, tal vez el segundo autor fue Wirth.

"En el 69 apareció el lenguaje Pascal, que era una implementación pura de las ideas de Dijkstra".

"Entonces, ¿se puede o no se puede utilizar el operador goto? En 1974 apareció el artículo de Knuth "Structured programming with goto operator".

Y así sucesivamente.

En resumen, la discusión se extinguió hace tiempo; se desaconseja el uso de goto, y aparecieron todo tipo de sustitutos de break, contunue, exit, halt, hande hoch y otros GOTO, aunque muchos lenguajes siguen utilizando goto. Creo que los desarrolladores de MQL están familiarizados con esta historia, por eso no hay GOTO en MQL5. Está claro que ocultan sus motivos por tradición. :-)

 

a Dedushka
cualquiera puedeavergonzar y reprochar a un programador,
Especialmente alguien que no sabe el color de la cubierta del
"Programación estructurada" y no sabe que su autor es Iodan (Iordan)
Sí, tiene fechas de superación del GOTO ajustadas a la llegada de los americanos a la luna, pero ¿por qué?
¿Además no está al tanto de los acontecimientos que siguieron al lanzamiento de C#, y por qué?
Una última cosa: en la época de Dijkstra el número de GOTOs en los programas llegaba al 50%)))),
pero por una razón muy diferente a la de la calificación.
Para que quede más claro, es lo mismo que si alguien dijera que el rendimiento de un abuelo debe juzgarse por el número de reparaciones menores
- cuanto menos reparaciones, más cualificado está el abuelo.

y para que el abuelo trabaje mejor, hay que quitarle las herramientas.

 
Korey писал(а) >>

a Dedushka
Todo el mundo puedeavergonzar y reprochar a un programador,
Especialmente alguien que no sabe de qué color es la portada de
"Programación estructurada" y no sabe que su autor es Iodan (Iordan)
Sí, tiene fechas de superación del GOTO ajustadas a la llegada de los americanos a la luna, pero ¿por qué?
¿Además no está al tanto de los acontecimientos que siguieron al lanzamiento de C#, y por qué?
Una última cosa: en la época de Dijkstra el número de GOTOs en los programas llegaba al 50%)))),
pero por una razón muy diferente a la de la calificación.
Para que quede más claro, es como si alguien dijera que el rendimiento de un abuelo debe juzgarse por el número de reparaciones menores
- cuanto menos reparaciones, más cualificado está el abuelo.

y para que el abuelo trabaje mejor, quítale las herramientas.

Querido Korey, he releído mi post varias veces por si acaso... Por Dios, no veo ningún atisbo de intentar reprochar o avergonzar a nadie.

Ni siquiera estaba pensando en ello, es que conocí el tema de la discusión hace unos 30 años... Y como un amable abuelo decidió decirme de dónde viene. :-)

Sobre la "programación estructural" - sí, hay un libro tan grueso en rústica amarilla, obra clásica: W. W. Dahl, E. Dijkstra y K. Hoare, "Structured Programming", Moscú, Mir, 1975.

Y finalmente estoy hablando de los viejos tiempos, todos mis libros son del siglo anterior, y estoy realmente "fuera de contacto con los acontecimientos posteriores al lanzamiento de C#", porque no soy un programador en ejercicio desde hace mucho tiempo. Sólo trabajo como vigilante en una pequeña empresa :-). Pero estoy interesado en MQL5, y parece que necesito relajarme y salir de la hibernación - tengo mucho que programar, y no tengo a nadie que me ayude. Así que vine a este foro con la esperanza de obtener algo de ayuda de, como tú, querida... Por favor, no jures, no me gusta...

 

a Dedushka

1. mirando tu avatar, veo un pecho de marinero como un marinero y el apodo de "abuelo" - sí, significa mecánico de barcos, el jefe de mecánicos se fue a la bolsa.
2. el nivel de "palabrotas" en el foro es aceptable, el comercio es identidad, y no se puede comerciar sin identidad))
2) el nivel de "palabrotas" en el foro es aceptable. el comercio es una forma de autosuficiencia sin interés propio, no hay forma de comerciar sin interés propio.
3. Quieras o no personalmente, ya has dicho palabrotas, sobre todo porque MQL4 como lenguaje y como entorno es malo = )))
Resulta que te unes a los vergonzosos por "operador de cuatro letras".
También te avergüenza no entender el pensamiento profundo de los creadores de MQL))))
- Si recuerda la forma de los agujeros de los punzones en los portapunzones, pronto entenderá el precio de MQL y MT-4.
4. el goto está siendo retocado y avergonzado como un reproche por ser poco inteligente, es decir, supuestamente cojo intelectualmente, y vergonzoso.
para la prueba leer este hilo también))
= quitó el operador goto a los programadores, supuestamente ahora les deja saltar.
5.
Sin embargo, sobre el tema:
la vergonzosa palabra goto no puede ser utilizada, pero la propia SRAM y su vergonzoso operador goto - DEBE

 

Debería, debería ser - sólo por el bien del arte. Hay situaciones en las que goto es la única manera de codificar de forma breve y elegante.