¿Cómo puedo hacer que la salida de un gráfico sea en fuente monoespaciada? - página 4

 
Alexey Volchanskiy:

Estas medidas no son nada. Deberíamos hacer ciclos separados de varias decenas de miles de pases para Comment y Canvas por separado, entonces podremos juzgar algo. Y el texto a imprimir debe cambiar, por ejemplo, que se imprima el valor del contador.

¿Podría volver a hacerlo de esta manera?

La salida repetida es correcta, el comentario mata la velocidad en mt5. Lo comprobé hace tiempo y excluí su visualización durante las pruebas.

No he comprobadoCHART_COMMENT, acabo de acordarme de ello, tendré tiempo de comprobar la velocidad

//+------------------------------------------------------------------+ 
//| Функция получает текст комментария в левом верхнем углу графика. | 
//+------------------------------------------------------------------+ 
bool ChartCommentGet(string &result,const long chart_ID=0) 
  { 
//--- сбросим значение ошибки 
   ResetLastError(); 
//--- получим значение свойства 
   if(!ChartGetString(chart_ID,CHART_COMMENT,result)) 
     { 
      //--- выведем сообщение об ошибке в журнал "Эксперты" 
      Print(__FUNCTION__+", Error Code = ",GetLastError()); 
      return(false); 
     } 
//--- успешное выполнение 
   return(true); 
  } 
//+------------------------------------------------------------------+ 
//| Функция устанавливает текст комментария в левом верхнем углу     | 
//| графика.                                                         | 
//+------------------------------------------------------------------+ 
bool ChartCommentSet(const string str,const long chart_ID=0) 
  { 
//--- сбросим значение ошибки 
   ResetLastError(); 
//--- установим значение свойства 
   if(!ChartSetString(chart_ID,CHART_COMMENT,str)) 
     { 
      //--- выведем сообщение об ошибке в журнал "Эксперты" 
      Print(__FUNCTION__+", Error Code = ",GetLastError()); 
      return(false); 
     } 
//--- успешное выполнение 
   return(true); 
  }
 
Nikolai Semko:

Lo he probado en MT4. El código también funciona en él.
Resulta que Comment es 5 veces más rápido en MT4 que su análogo gráfico. Y resulta que Comment() funciona 5-6 veces más lento en MT5 que en MT4. Esta es una sorpresa desagradable y extraña. Así que mi pregunta es para los desarrolladores. ¿Por qué? ¡¡¡Está claro que es un error para el 5!!!


Gracias por la info, muy triste para MT5 y más triste aún que sea tan diferente en MT4 y MT5, la compatibilidad resulta ser pobre en un EA multiplataforma.

 
Yury Kirillov:

Gracias por la info, muy triste para MT5 y más triste aún que sea tan diferente en MT4 y MT5, la compatibilidad resulta ser pobre en un EA multiplataforma.

Hay algo. He eliminado por completo la salida de los objetos y la información en el gráfico en mt5, no perdió mucho en absoluto, a expensas de un buen informe de probador.

 
Yury Kirillov:

Gracias por la info, muy triste para MT5 y más triste aún que sea tan diferente en MT4 y MT5, la compatibilidad resulta ser pobre en un EA multiplataforma.


Creo que la mejor opción seguiría siendo cambiar a kanvas. La compatibilidad de MT4 y MT5 es perfecta allí. Y el comentario sólo es interesante para realizar comprobaciones rápidas en el borrador del código, pero no en el definitivo. Todo el mundo subestima la capacidad de velocidad de Kanvas por alguna razón.

 
Nikolai Semko:

Creo que la mejor opción seguiría siendo cambiar a Canvas. MT4 y MT5 son totalmente compatibles allí. Y el comentario es interesante sólo para las comprobaciones rápidas de corriente en el borrador de código, pero no en el código final. Todo el mundo subestima la capacidad de velocidad de Canvas por alguna razón.


Está claro que eso es lo que tendremos que hacer...

 
Nikolai Semko:

Hice los ciclos por separado también, pensé que los resultados eran un poco extraños, lo mismo. Los mismos resultados. No hay diferencia si se trata de un ciclo general o individual. En mi muestra el texto cambia cada vez, me pregunto por qué no se ha notado. También conozco la optimización del compilador. ))


¿Y puedo publicar el código con bucles separados?

 
Vitaly Muzichenko:

La conclusión repetida es correcta, Comment mata la velocidad en mt5 mal. Lo comprobé hace tiempo y excluí su visualización durante las pruebas.

No he comprobadoCHART_COMMENT, acabo de acordarme de ello, tendré tiempo de comprobar la velocidad

De la SD.

Alguien puede configurar el intercambio de información de cadenas entre el EA y el indicador a través del campo de comentarios del gráfico.

Hemos decidido que por el bien de un pequeño número de estos usuarios potenciales no debemos ralentizar la optimización.

En las próximas compilaciones, la función Comentario sólo funcionará en las pruebas individuales. Durante la optimización - no se

 
fxsaber:

Del SR.

intercambio de información de cadenas entre el EA y el indicador a través del campo de comentarios del gráfico.

La gente es buena en las perversiones sexuales

Y en general, por supuesto, no hay ningún método de intercambio como el mapeo de memoria, pero dentro de una caja de arena y sin llamar a la dll

 
Alexey Volchanskiy:

En realidad, lo que falta es un método de intercambio de tipos de mapeo de memoria, pero dentro de un sandbox y sin llamar a la dll

Muchas opciones.

 

Todos son sustitutos. Y cada una de ellas requiere serialización/deserialización. Por ejemplo, en WCF puedo enviar una instancia de cualquier clase compleja con campos de datos a través de la web utilizando cualquier protocolo disponible y no necesito pensar en cómo empaquetarlo/desempaquetarlo, todo se hace mediante la API. Lo único que necesito es conocer a esa clase en el extremo receptor.