Comentarios sobre MQL5 - página 5

 
Sí, gracias. Intentaré trabajar ....
 

Para empezar, arréglalo:

  • ERR_CHART_NO_REPLY( 4102) [,4003?] problema, initeal inicio, extremadamente perjudicial para la fiabilidad del EA.
  • Estancamiento de las órdenes en la fase de solicitud antes del final de la sesión. Sucede que las solicitudes funcionan, es decir, se cuelgan en el intercambio. Es imposible retirarlos. Los casos completamente atroces, ocurren rara vez, pero regularmente.

  • Además, una vez mi terminal perdió milagrosamente una posición. El corredor me habría permitido comprar una posición en las cuentas y luego me habría deshecho de ella.
  • Otra situación desagradable es cuando los precios en el mercado salen en baja liquidez, y la equidad se calcula desde el precio de apertura de la posición (que cambia cada día en la compensación), hasta el precio de la última operación de hace una semana, que está a gran distancia de las "bestias" reales. Es decir, el resultado se pervierte al contrario. Así, crece una pérdida sustancial (beneficio) en la pose, que no refleja la realidad y es imaginaria. Por ejemplo, en el MIX-3.16 esta diferencia es ahora de 6000-10000r por contrato. Supongamos que estas metamorfosis provocan una reducción del 15% en la cuenta hoy y del 30% mañana, ¿y qué ocurre el primer jueves de agosto? ¿Garantía? ¿Sólo por la falta total de ofertas en el instrumento? No he especificado cómo se realiza este cálculo en la bolsa, pero en otras plataformas no se ha producido este problema. Ahora no los uso, así que no puedo comprobarlo.

Esto es sólo lo primero que se me ocurrió. Hay un montón de "pequeñas cosas" como esa.

Hace tiempo que los desarrolladores tienen que entender que si se anuncia un terminal de valores, se debe utilizar un concepto adecuado. De qué sirve poner en muletas una copia de una máquina de cocina "reescrita desde cero"...

La atención debería haberse centrado desde el principio en los instrumentos financieros cotizados de baja liquidez. Los líquidos encajarían en el propio sistema.

Entonces el mercado sería humano,

y habría un lugar para la "Tabla de parámetros actuales" tradicional para todas las plataformas,

y la actitud hacia la negociación con órdenes limitadas ocuparía el lugar que le corresponde,

y, tal vez, en lugar de las inútiles series históricas (spread máximo, volumen de ticks) tendríamos el ASK/BID completo para un periodo.

En resumen, la revolución no se ha producido, y las plagas con consejos estúpidos han sido derrotadas. ¡Viva el rey! ...cocina.

 
1150 vinda 8.1 pro 64x

Broker modo de demostración tiene 719 herramientas para el comercio, alrededor de 650 deshabilitado

cuando se especifica en la visión general del mercado "Mostrar todos" después de cargar todos 719 terminal se ralentiza y freesit ... ( hay un retardo entre el comando de clic o pulsación de tecla ) y su ejecución 1-4 segundos ...

Desconcertante, el código escrito para mt4 y llevado casi sin cambios a mt5, funciona diez veces más lento en mt5

Cuando se cambia de forex a futuros, las ventanas previamente abiertas se cuelgan y esperan la actualización. ( Teóricamente, el primer símbolo de futuros debería tomarlo o simplemente cerrarse, pero no colgarse esperando la actualización...)

El trabajo con "Market Watch" no está pensado en absoluto...

Si borra un símbolo con la tecla Del, la ventana se vuelve inactiva, y para volver a borrarlo con la tecla Del, debe activar primero la ventana...

La operación rápida con herramientas en "Market Watch" está muy mal concebida...

Para µl5

en µl4 has añadido ObjectsDeleteAll(0, "Prefix"); borrar por prefijo, ¿Y en mt5 te has olvidado?
 
Vladimir Pastushak:
1150 vinda 8.1 pro 64x

Broker modo demo tiene 719 instrumentos para operar, unos 650 deshabilitados

cuando se especifica "Mostrar todo" en la visión general del mercado después de cargar todos los 719 el terminal se ralentiza y se congela ... ( hay un retardo entre el comando de clic o la pulsación de una tecla ) y su ejecución de 1 a 4 segundos ...

Desconcertante, el código escrito para mt4 y llevado casi sin cambios a mt5, funciona diez veces más lento en mt5

Cuando se cambia de forex a futuros, las ventanas previamente abiertas se cuelgan y esperan la actualización. ( Teóricamente, el primer símbolo de futuros debería tomarlo o simplemente cerrarse, pero no colgarse esperando la actualización...)

El trabajo con "Market Watch" no está pensado en absoluto...

Si borra un símbolo con la tecla Del, la ventana se vuelve inactiva, y para volver a borrarlo con la tecla Del, debe activar primero la ventana...

El trabajo de velocidad con herramientas en Market Watch no ha sido pensado en absoluto...

En µl5

en µl4 añadiste ObjectsDeleteAll(0, "Prefix"); borrar por prefijo, pero en mt5 lo olvidaste?


No, no lo han olvidado. Pero no hay mucha diferencia:

ObjectsDeleteAll(0,prefixObj,0,-1);


P./S.: Por cierto, y en MT4 funciona con -1 en lugar de EMPTY.

Para mí, escribí el memorándum así:

int  ObjectsDeleteAll(
   long    chart_id,           // идентификатор графика
   string  prefix_obj,         // общий префикс в именах объектов  
   int     sub_window=-1,      // индекс окна
   int     type=-1             // ENUM_OBJECT (тип объекта для удаления)
   );
 

El trabajo del estilista también desafía la explicación.

está escrito en la ayuda

Excepciones al formato interlineal

Las reglas de estilización anteriores no se aplican en algunos casos. Esto es para asegurar que la alineación del autor no se vea comprometida en las líneas adyacentes. El estilizador reconoce el interlineado en la línea adyacente para las siguientes palabras clave y caracteres:

  • "//" - Caracteres "C";
  • "{" - corchete izquierdo;
  • "}" - corchete derecho;
  • "retorno" - operador de "retorno";
  • "borrar" - Operador de "borrar";
  • "="- símbolo de igualdad;
  • ":" - dos puntos;
  • "." - punto y aparte.



El estilista sigue gobernando el código como quiere....

 
Vladimir Pastushak:
1150 vinda 8.1 pro 64x

El modo demo del broker tiene 719 instrumentos para operar, unos 650 desactivados

Cuando indico "mostrar todo" en la visión general del mercado después de cargar todos los 719, el terminal se ralentiza y freesit ... ( hay un retardo entre el comando de clic o la pulsación de una tecla ) y su ejecución de 1 a 4 segundos ...
Estamos trabajando en ello, estamos trabajando en la aceleración de muchos instrumentos activos. Especifique el nombre del servidor de comercio, por favor.


El código escrito para mt4 y transferido casi sin cambios a mt5 es decenas de veces más lento en mt5.

Pruébalo técnicamente, por favor.

Se puede decir de inmediato que se engaña directamente.


Cuando se pasa de forex a futuros, las ventanas previamente abiertas se cuelgan y esperan la actualización. ( Teóricamente debería tomar el primer símbolo de futuros y mostrarlo o simplemente cerrarlo, pero no colgarlo esperando la actualización...)

No confunda su "teóricamente" con "hacer siempre". Si ha cambiado a otra cuenta en la que su anterior conjunto de instrumentos no está disponible, la mejor estrategia es dejarle decidir por sí mismo qué hacer y qué cambiar.

Esto no es un error ni un problema.


La operación con "Market Watch" no está nada bien pensada...

Si borra un símbolo con la tecla Del, la ventana se vuelve inactiva y para volver a borrar el símbolo con la tecla Del, debe activar primero la ventana...
Se trata de un problema menor de la interfaz, pero lo solucionaremos.


Manejo de la velocidad extremadamente desacertada de las herramientas en Market Watch ...

¿Especificar específicamente qué no es lo suficientemente rápido?

Hay estructuración de herramientas, filtros, clasificación inteligente y ocultación de las caducadas.


Para µl5

En µl4 añadiste ObjectsDeleteAll(0, "Prefix"); eliminar por prefijo, pero en mt5 te olvidaste ?
Esta función apareció originalmente en MQL5 hace muchos años.
 
Vladimir Pastushak:

El trabajo del estilista también desafía la explicación.

está escrito en la ayuda

Excepciones al formato interlineal

Las reglas de sustitución del estilista mencionadas anteriormente no se aplican en algunos casos.


El estilista sigue gobernando el código como quiere....

La descripción de las reglas del estilista no puede caber en unas pocas líneas de texto ficticio.

Lo formatea como queremos que lo haga.

 

Personalmente, lo único que me falta ahora mismo son los punteros a un array.

Específicamente - en la función intOnCalculate() obtenemos referencias a arrays, pero no podemos guardarlos. En lugar de guardar los punteros y utilizarlos dentro del código, tenemos que copiar primero las series de tiempo en arrays internos y sólo entonces utilizar los punteros a estas clases.

Creo que sería razonable hacer la función OnCalculate(), que recibe punteros a objetos de series de tiempo de la Biblioteca Estándar.

 

Estoy leyendo, todo el mundo está escribiendo, y no me da pereza hacerlo.

Para hacer una valoración sobre la velocidad del 5-Rka, primero hay que decir cuántos bits de ordenador, cuánta memoria y demás.

Me sigue gustando todo. Hay, por supuesto, matices, pero en el fondo están sorteando la misma programación. 4-rka tampoco es un regalo desde algunos puntos de vista....

 
Renat Fatkhullin:

La descripción de las reglas de un estilista no puede resumirse en unas pocas líneas de ficción.

Formatea según lo establecido por nosotros.

En el estilista:

Quiero ver el código tal y como lo he "arreglado"

   ENUM_OBJECT   GetTYPE(string name)              { return(ENUM_OBJECT)GetObjectInteger(name,OBJPROP_TYPE);} // Тип обьекта
   datetime      GetCREATETIME(string name)        { return GetObjectInteger(name,OBJPROP_CREATETIME);} // Время создания объекта 
   int  GetCOLOR(string name)                      { return GetObjectInteger(name,OBJPROP_COLOR);} // Цвет
   int  GetSTYLE(string name)                      { return GetObjectInteger(name,OBJPROP_STYLE);} // Стиль
   int  GetWIDTH(string name)                      { return GetObjectInteger(name,OBJPROP_WIDTH);} // Толщина линии
   bool GetBACK(string name)                       { return GetObjectInteger(name,OBJPROP_BACK);} // Объект на заднем плане
   int  GetZORDER(string name)                     { return GetObjectInteger(name,OBJPROP_ZORDER);    } // Приоритет графического объекта на получение события нажатия мышки на графике 

Estilismo:

   ENUM_OBJECT   GetTYPE(string name) { return(ENUM_OBJECT)GetObjectInteger(name,OBJPROP_TYPE);} // Тип обьекта
   datetime      GetCREATETIME(string name) { return GetObjectInteger(name,OBJPROP_CREATETIME);} // Время создания объекта 
   int  GetCOLOR(string name)                      { return GetObjectInteger(name,OBJPROP_COLOR);} // Цвет
   int  GetSTYLE(string name)                      { return GetObjectInteger(name,OBJPROP_STYLE);} // Стиль
   int  GetWIDTH(string name)                      { return GetObjectInteger(name,OBJPROP_WIDTH);} // Толщина линии
   bool GetBACK(string name) { return GetObjectInteger(name,OBJPROP_BACK);} // Объект на заднем плане
   int  GetZORDER(string name)                     { return GetObjectInteger(name,OBJPROP_ZORDER);    } // Приоритет графического объекта на получение события нажатия мышки на графике

¿Por qué se omite una parte del código y se incluye otra? Sintácticamente cada línea es la misma....