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

 

Podéis golpearos la cabeza contra la pared, o inventaros agua caliente.... PeroInteger tiene razón.

Entero:

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

Todas las lenguas son iguales, excepto las extravagantes. Todos ellos pueden ser aprendidos en 21 días por cualquier tonto. Todos los for, while, if, switch pueden tener una notación diferente, pero en principio no hay ninguna diferencia. Lo importante no es la forma de escribir los operadores, sino la infraestructura con la que interactúa el lenguaje. En este sentido, MT4 y MT5 son dos mundos diferentes.

La diferencia en todo. Empezando por lo pequeño - con la numeración de las barras en el indicador, en MT4 de derecha a izquierda, en MT5 de izquierda a derecha. Continuando con el más significativo - la posición agregada y la organización de los datos del historial comercial. La mayor diferencia en lo que a menudo se requiere - en la forma de acceder a las cotizaciones de datos e indicadores, la copia de datos requiere la comprobación, a continuación, la indexación de izquierda a derecha, a continuación, de derecha a izquierda, el tiempo de la barra se incluye en el rango, o no. No hay que olvidar la discusión de la función iBarShift() en CodeBase.

En MT4, para asegurar el funcionamiento estable del EA bastaba con comprobar el valor de retorno de OrderSelect(), pero en MT5 es necesario hacer comprobaciones en cada paso, incluso en los datos del último tick. También hay algunas sutilezas de la programación de MT5, que aprenderá sólo después de haber sufrido mucho, porque hay muchas trampas.


 
Renat:

Lo que no se ve en este foro.

Por qué, no hay responsabilidad. Puedes decir cualquier cosa.

Las lenguas siguen siendo diferentes. El código de un indicador de cinco no siempre funcionará en cuatro. No hay suficiente capacidad
 
Vinin:
Las lenguas siguen siendo diferentes. El código indicador del cinco no siempre funcionará en el cuatro. No hay suficiente capacidad
Mejor que los códigos de los indicadores de la 4 sigan funcionando en la 4. Y no habrá necesidad de características
 
borilunad:
Sería mejor si los códigos de los indicadores de la 4 siguieran funcionando en la 4. Y no habría necesidad de características.
Sí funcionan. A menos que se modifiquen o recompilen
 
Vinin:
Sí funcionan. A menos que los modifique o recompile.
No cambié nada en el "Tema", pero cuando se actualizó el Terminal de la build 670 a la 711, se volvió lento con cualquiera de ellas en el tester, por eso lo reporté, pero me puse a experimentar con el MA estándar y encontré muchas cosas que antes no podía por inexperiencia. Ahora trabajo con ella y estoy contento con ella. Sólo insatisfecho con mi compra de un 8, que se llama, lo consiguió, y planeó trabajar en él sólo, y en Vista todo el resto. Supongo que tendré que seguir con Vista mientras sobreviva y luego comprarlo sin fiarme de nadie y dejaré que este 8- para el jabón, las webs, etc. :)
 
Renat:

MetaTrader 4 tiene una profundidad limitada del historial, marcos temporales separados y acceso directo a sus barras de símbolos a través de Open/High/Low/Close/Time[xxx]. Este acceso directo es muy caro de implementar en términos de recursos y coste de la CPU. Considera que cada Asesor Experto tiene su propia copia local de estos datos para evitar conflictos con otros Asesores Expertos y con el propio terminal.

Esto no es realmente un problema del usuario, es su problema. Es decir, podría decirse que está trasladando los problemas de acceso a los datos del terminal al usuario.

Es decir, o se eleva el nivel de conocimientos de codificación o se obtiene un montón de código no válido que puede ser peor y más ineficiente que el acceso directo conveniente en MT4.

De hecho, algunas de sus soluciones son muy controvertidas.

 
TheXpert:

Esto no es realmente un problema del usuario, es su problema. Así que podría decirse que está trasladando los problemas de acceso a los datos del terminal al usuario.

Es decir, o subes el listón de las habilidades de codificación o consigues un montón de código torcido que puede funcionar mucho peor e ineficaz que el acceso directo conveniente en MT4.

En general, algunas de sus soluciones son muy controvertidas.


Lea todo el texto: hay un razonamiento directo por el que es imposible seguir utilizándolo.

Para que el usuario no nos culpe después por los frenos o el uso excesivo de recursos, hemos dado un control más efectivo sobre los datos solicitados.

Un ejemplo sencillo: un Asesor Experto sobre el Eurodólar M1 con un historial de 10 años, el gráfico actual ocupa unos 200 mb. En el modelo de MT4 tendríamos que replicar (aunque sea escasamente) en cada tick 200 mb en la instantánea sombra del experto y perderíamos 200 mb de memoria. En MT5 no hay consumo de memoria para dicha caché en absoluto, y lo más probable es que el Asesor Experto solicite sólo un pequeño trozo de historia, lo ponga en un array local y trabaje con él a máxima velocidad.

 
Renat:

Para evitar que el usuario nos culpe después de los retrasos o del consumo excesivo de recursos, hemos dado un control más eficaz a los datos solicitados.

He leído todo el texto. No es imposible. Usted recoge los plazos para los gráficos, podría recogerlos para los Asesores Expertos de la misma manera, y hacerlo con bastante eficacia.

¿Qué te hace pensar que el usuario te mataría por frenar?

En el modelo de MT4 tendríamos que replicar (aunque sea escasamente) en cada tick 200 Mb a la sombra de la instantánea del EA y desperdiciar 200 Mb de memoria. MT5 no tiene gastos de memoria para tal caché en absoluto, y el Asesor Experto probablemente solicitará sólo un pequeño trozo de historia, lo almacenará en una matriz local y trabajará con él a la máxima velocidad.

Haz un caché inteligente (hay experiencia), no guardes el resto en la memoria.
 

Escribe tu propio motor de terminal con un ecosistema interno eficiente y una máquina virtual, y luego hablamos. Hemos escrito las últimas cuatro plataformas así, mejorando la arquitectura una y otra vez. Así que nuestras decisiones están justificadas por la experiencia práctica.

De lo contrario, es imposible responder al consejo "hazlo, caché inteligente, no se abusará de ellos, etc.".

 
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 los for, while, if, switch pueden tener una notación diferente, pero no cambia nada fundamentalmente. Lo importante no es la forma de escribir los operadores, sino la infraestructura con la que interactúa el lenguaje. En este sentido, MT4 y MT5 son dos mundos diferentes.

Hay una diferencia en todo. Empezando por uno menor - con la numeración de las barras en el indicador, en MT4 de derecha a izquierda, en MT5 de izquierda a derecha.

...

La numeración en MT5 se invierte en comparación con MT4 sólo por defecto. De hecho, las matrices pueden invertirse en cualquier dirección. Véase la documentación: Dirección de indexación en arrays, buffers y timeseries.

Entero:

...

Siguiendo con lo más esencial: la posición agregada y la organización de los datos del historial comercial.

...

Y en MT4 había muchos problemas porque teníamos que cubrir las posiciones opuestas de los instrumentos enviando una orden extra al servidor a través de OrderCloseBy() que no siempre funcionaba por diversos motivos. Por lo tanto, tuvimos que comprobar y reenviar adicionalmente las órdenes, ya que, de lo contrario, se rompía toda la lógica del sistema de negociación.

En MT5, debido a la posición agregada, todo se ha simplificado hasta un nivel aceptable. Ahora, por ejemplo, ni siquiera tenemos que preocuparnos de cuál debe ser el nivel de equilibrio - esta estúpida pregunta sólo es relevante en MT4. Al fin y al cabo, el precio abierto de una posición agregada es el nivel de equilibrio. Todo se ha simplificado con las posiciones ganadoras, ya que se cierran automáticamente en el servidor sin necesidad de enviar órdenes adicionales.

Es decir, a expensas de la pose agregada, la cantidad de código se ha reducido al nivel necesario y suficiente, así como la cantidad de órdenes y comprobaciones redundantes que se requieren para ellas.

Entero:

En MT4 bastaba con comprobar el valor de retorno de OrderSelect(), mientras que en MT5 es necesario hacer comprobaciones en cada paso, incluso en los datos del último tick. Hay algunas sutilezas más de la programación de MT5, que aprenderá sólo después de haber sufrido mucho, porque hay muchas trampas.

Nadie está obligando a utilizar comprobaciones adicionales en MT5, puedes esperar lo mismo que en MT4 e intentar procesar cualquier cosa sin comprobaciones, que no se haya cargado desde el servidor correctamente o que no se haya cargado en absoluto, sino que se haya inicializado. En este caso el rendimiento también se corresponderá con el de MT4, es decir, todo irá bien sólo en el tester, y veremos tonterías en la cuenta demo y en la real.

Es decir, el aumento del número de comprobaciones adicionales en MT5 está destinado a asegurar la calidad de la información obtenida. En MT4 muchas de estas comprobaciones están ausentes, por lo que en algunos casos críticos es imposible asegurarse de que la información recibida del terminal, que debe ser procesada para tomar una decisión, es fiable. Sólo se puede esperar que el terminal haya descargado correctamente todo lo necesario del servidor, pero no hay forma de estar seguro de ello, ya que no hay nada que compruebe la corrección.


En general, un ataque a MT5 - es sólo una excusa podrida para aquellos que no quieren cambiar a un nuevo terminal o una invención de los que sólo han oído hablar de MT5, pero no saben dónde está.

MT4 es el terminal de ayer para crear algoritmos primitivos más o menos adecuados para "operar" en el probador para dibujar bonitas curvas de balance. Si no te interesa dibujar bonitas curvas de balance, porque no puedes guardártelas en el bolsillo y ponértelas en el pan, y sólo puedes usarlas para presumir en el hilo rústico, tienes que cambiarte a MT5.