Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 47

 
¿Puede decirme si la visualización en agentes remotos es, supongo, categóricamente imposible? ¿O es posible?
 
Dimka-novitsek:
Por favor, dígame, ¿la visualización en agentes remotos, supongo, no es posible? ¿O es posible?

No es posible porque no es necesario, el agente remoto está en modo proceso, no tiene ventana (excepto la ventana de configuración).

Sólo se puede ver a través del administrador de tareas (pero sólo el proceso, no lo que está haciendo).

 
Aquí están las impresiones que leí directamente y que no salen... Es una pena. Por lo general, si no hay ni siquiera un pequeño punto en la línea gris del curso de la optimización después de un período de tiempo suficientemente largo, ¿qué significa que simplemente no hay resultados positivos? Entonces, ¡las impresiones y la visualización también son necesarias! Pero, ¿por qué no va? ¡¡¡Los tanques van, y los barcos están en guerra, y la memoria como 4 gigas, y la tarjeta de vídeo super, 1375 MHz algo así, y probarlo completamente no puede!!! Al menos lentamente... El ordenador pasa directamente a la fase de derribo con la pantalla en blanco.
 
Urain:
No es posible porque no lo necesita, el agente remoto está en modo proceso, no tiene ventana (más que la de configuración).¡Gracias! ¡Lo tengo! ¡En efecto!
 
Vladon:
Para el reloj, me gustaría utilizar una fuente no estándar, si fuera posible almacenarla directamente en los recursos, por ejemplo.
sargazo:
el texto significa no cargar con un archivo ttf separado, sino incrustarlo directamente en ex5 como recurso.

Es decir, ¿sólo para dibujar en un mapa de bits/lienzo gráfico?

Las fuentes definitivamente no serán incrustadas, pero podemos permitir el uso de las fuentes estándar de Windows para dibujar en kanvas.

 
Renat:

¿Te refieres exclusivamente a dibujar en un mapa de bits/lienzo gráfico?

No, para un dibujo eficiente de la etiqueta. La cuestión es que el terminal sea capaz de tomar una fuente de los recursos y establecerla de forma independiente.
 
TheXpert:
No, para un dibujo eficiente de la etiqueta. La cuestión es permitir que el terminal tome una fuente de los recursos y la instale por sí mismo.
Por desgracia, no.
 
Renat:

Entonces, ¿exclusivamente para dibujar en un mapa de bits/lienzo gráfico?

Definitivamente no vamos a incrustar las fuentes, pero podemos permitirte usar fuentes normales de Windows para dibujar en el lienzo.

Tengo entendido que abrirá algunos GDI para Kanvas. Eso es genial.

pero hay un problema, creo, que radica en un nivel ideológico en los principios de la elaboración de gráficos.

Me explico con dos ejemplos.

Para utilizar el lienzo de forma más activa, necesitas un cambio de marco. Pero en el terminal cualquier objeto no se dibuja hasta que no se oculta de todos los plazos(OBJ_NO_PERIODS). Esto hace que no pueda preparar la ubicación y el tamaño del objeto si aún no se ha dibujado.

He sacado este tema tanto para el tamaño del texto estático de salida como para el tamaño del bmp de salida - la respuesta fue esta - dibujas con anchura = 1, y luego preguntas el tamaño desde el propio objeto y lo sabrás exactamente. Y añadir aquí una pausa mínima y la necesidad de llamar a ChartRedraw... Estarás de acuerdo en que esto es una muleta.

Y no hay que rellenar sólo una estática o un bmp, sino docenas de ellas. Y si hay mucha actividad, hay que vigilar las pausas en el renderizado.

--------------------

En cuanto a los kanvas omnipresentes como alternativa a los objetos existentes, eso es una utopía // aunque es bonito en un mundo ideal

Nadie en su sano juicio dibujaría un mapa de bits de 10 megabytes y lo ralentizaría sólo para una línea diagonal a través de un gráfico de 2096 por 1080 píxeles


Apoyo totalmente el desarrollo de kanvas // Apoyo cualquier desarrollo.

Pero los objetos existentes cubren el 95% de todas las necesidades empresariales en la interfaz. Kanvas es un apéndice de las estructuras empresariales complicadas // muy bien demostrado por Kohonen Maps. Pero no quieren sustituir los objetos por completo.

( -5% es el esfuerzo de los desarrolladores para evitar introducir una línea de coordenadas. :) // pero ya se ha iniciado un diálogo, esperemos que lleguemos a un consenso)

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Свойства объектов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Свойства объектов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Свойства объектов - Документация по MQL5
 

2012.10.20 14:21:46 Archivo del experto en pruebas C:\NUsers\Micha\AppData\Roaming\MetaQuotes\Terminal\FF783873B20D7FA177754FFD85AFB6\MQL5\Experts\Final.ex5 asignar error

2012.10.20 14:21:31 Núcleo 2 autorizado (agente build 695)

2012.10.20 14:21:16 Core 2 conectándose a 127.0.0.1:3001

2012.10.20 14:11:10 Dispositivo OpenCL Core 1: GPU NVIDIA Corporation GeForce 9600 GSO 1GB con OpenCL 1.0 (12 unidades, 1375 MHz, 2048MB, versión 301.42)

Lo siento, ¿qué dice esto? Entiendo que el error. ¿Qué le falta? ??

En general, la prueba se cuelga casi por completo. A menudo se apaga... Pero esa misma noche, hay juegos muy animados y bonitos, tanques-mundo, acosador, etc. ¡!


 
sergeev:

Pero hay un problema, me parece, que se sitúa en el plano ideológico en los principios de la elaboración de un gráfico.

Para utilizar kanvas de forma más activa, es necesario cambiar de marco. Y cualquier objeto en el terminal no se dibuja hasta que se oculta de todos los plazos(OBJ_NO_PERIODS). Esto lleva a que no puedo preparar la ubicación del objeto y conocer su tamaño, si aún no se dibuja.

¿Conoces el toque perfecto del backbuffering en nuestros lienzos y la vinculación con un objeto en la pantalla?

Podemos dibujar marcos perfectamente, de forma rápida y sin artefactos. Echa un vistazo al ejemplo de vídeo basado en la generación de secuencias de fotogramas en OpenCL Test.

Utiliza una táctica agradable:

  1. Crear un objeto gráfico de etiqueta de mapa de bits en el gráfico

       string objname ="OpenCL_"+IntegerToString(ChartID());
       string resname ="::Mandelbrot_"+IntegerToString(ChartID());
    //--- creating the object for graphics display
       ObjectCreate(0,objname,OBJ_BITMAP_LABEL,0,0,0);
       ObjectSetInteger(0,objname,OBJPROP_XDISTANCE,4);
       ObjectSetInteger(0,objname,OBJPROP_YDISTANCE,26);
    

  2. Crea un recurso gráfico vacío en memoria y lo vincula a un objeto previamente creado:

    //--- create initial empty picture
       uint buf[];
    
       ArrayResize(buf,SIZE_X*SIZE_Y);
       ResourceCreate(resname,buf,SIZE_X,SIZE_Y,0,0,SIZE_X,COLOR_FORMAT_XRGB_NOALPHA);
       ObjectSetString(0,objname,OBJPROP_BMPFILE,resname);
    
    Aquí es donde ocurre la magia. El objeto gráfico recibe un enlace directo al recurso gráfico. Y este enlace es inteligente con el almacenamiento en caché, ya que fue creado especialmente para la paginación rápida y el manejo de backbuffer.

  3. Ahora puedes dibujar fácilmente en tu buffer sin preocuparte de enlazar con un objeto en la pantalla

    //--- рисуем что хотим в buf
    ....
    
  4. Y ahora es el momento de mostrar este mapa de bits actualizado en la pantalla

          //--- saving the frame in memory and drawing it
          ResourceCreate(resname,buf,SIZE_X,SIZE_Y,0,0,SIZE_X,COLOR_FORMAT_XRGB_NOALPHA);
          ChartRedraw();
    
    Para ello, "reconstruimos" el recurso (en realidad no se produce ninguna reconstrucción, porque todos los tamaños son iguales), copiamos en él el nuevo mapa de bits y se incrementan los contadores de cambios de este recurso.

    Tenga en cuenta que el objeto gráfico objname en sí no se toca de ninguna manera, ya que ya está asociado con el recurso.

    Luego llamamos a Screen Redraw a través de ChartRedraw, que requiere el dibujo del objeto gráfico. Está vinculado a nuestro recurso que controla mediante el contador de alteraciones del mapa de bits. Si el contador de cambios del mapa de bits guardado en el objeto gráfico no coincide con el contador del recurso, el mapa de bits se copiará automáticamente en el objeto gráfico y se visualizará de forma protegida. Si los contadores son los mismos, la imagen se muestra sin cambios.

He aquí un método sencillo de trabajo seguro (desde el acceso simultáneo desde MQL5 y el propio sistema de renderizado del terminal) y rápido con los cuadros de renderizado.