Lienzo vs. Etiquetas - página 17

 
Mihail Matkovskij:

En cuanto al código g, ¡puedo encontrar tu código g argumentando cada palabra que digo! No como tú, haciendo acusaciones...¿Lo encuentras?

No soy programador. Soy autodidacta. Puedes hurgar en cualquiera de mis códigos y llamarlo como quieras, pero lo mires como lo mires, mis códigos están lejos de la g...

 
Artyom Trishkin:
Un tema de interés ha sido destrozado... Qué clase de gente...

El tema podría haber sido interesante. Pero, por desgracia, nunca lo será.

 
Alexey Viktorov:

No soy programador. Soy autodidacta. Puedes hurgar en mi código y llamarlo como quieras, pero lo mires como lo mires, mis códigos están lejos de ser los más g...

Pero los códigos de otros miembros de la comunidad, para ti, son... Bueno, es obvio que eres autodidacta. Así que no necesitas reglas no escritas que digan que no puedes destrozar a tus colegas.

Ahora las preguntas sobre el códigohttps://www.mql5.com/ru/code/24076. Por supuesto que no voy a ser como tú y decir que es una mierda de código... Pero de todos modos haré mis observaciones.

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   calculate();
   ArrayFill(extImg1, 0, IMG_WIDTH1*IMG_HEIGHT, 0);
   textComment(dts(lots[0])+" ", IMG_WIDTH1, 1, extImg1);
   textComment(dts(lots[1])+" ", IMG_WIDTH1, 2, extImg1);
   textComment(dts(lots[2])+" ", IMG_WIDTH1, 3, extImg1);
   textComment(dts(lots[3])+" ", IMG_WIDTH1, 4, extImg1);
   textComment(dts(lots[4])+" ", IMG_WIDTH1, 5, extImg1);
   textComment(dts(lots[5])+" ", IMG_WIDTH1, 6, extImg1);
   textComment(dts(lots[6])+" ", IMG_WIDTH1, 7, extImg1);
   textComment(dts(lots[7])+" ", IMG_WIDTH1, 8, extImg1);
   ResourceCreate("::bbb", extImg1, IMG_WIDTH1, IMG_HEIGHT, 0, 0, IMG_WIDTH1, clr_format);
  //ChartRedraw();
//--- return value of prev_calculated for next call
   return(rates_total);
}

¿Por qué no hay ninguna limitación en la frecuencia de actualización de BitmapLabel, si funcionará en el probador, en el modelo "todos los ticks"? ¿Esperas que una plancha moderna lo digiera todo?) ¿Dónde está la optimización? ¿Y tú me sugeriste esto, cuando buscaba una manera de dar salida al texto de los procesos de alta carga (salida en el probador, en el modelo "todos los ticks " , y en el gráfico en bucle)?

Y cuando dije que no me funcionaba cada tic...

https://www.mql5.com/ru/forum/1111/page2979#comment_21212761

¿Por qué no utilizar CCanvas, que está especialmente diseñado para este fin? Cierto, he mirado, has escrito en algún sitio que supuestamente llama a funciones innecesarias, etc. Así que no hiciste la limitación de la frecuencia de actualización para el probador, pero al mismo tiempo, las funciones de CCanvas de alguna manera te obstaculizaron... :)

Extraño...


Y ahora es tu turno de decirme exactamente por qué crees que mi código es "g-code". ¡Sólo que con argumentos, no con charlatanería!

 
Artyom Trishkin:
Estás desordenando un tema interesante... Qué clase de gente...

Lo único que hice fue aceptar una oferta para participar en la prueba, lo que me llevó a tener que hacer un par de preguntas al invitado...

 
Mihail Matkovskij:

...

¿Por qué no hay límite en la frecuencia de actualización de BitmapLabel si se va a ejecutar en un probador, en un modelo de "todos los ticks"? ¿Esperas que el hierro moderno lo digiera todo?) ¿Dónde está la optimización? ¿Y eso es lo que me sugeriste, cuando buscaba una manera de dar salida al texto de los procesos altamente cargados (salida en el probador, en todos los modelos de ticks, y en el gráfico en bucle)?

...

Y por qué, porque tú mismo afirmas que una etiqueta de mapa de bits es más rápida que una etiqueta normal. Y una sola etiqueta regular en este caso sería casi invisible en términos de rendimiento.

 
Dmitry Fedoseev:

Lo único que hice fue aceptar una oferta para participar en una prueba, lo que me llevó a tener que hacer un par de preguntas al invitado...

"El sombrero de un ladrón está en llamas"... Cualquiera puede descargar el código fuente y repetir las mediciones que he presentado anteriormente. Sólo tienes quejas y reclamaciones. Inventado, "enlaces rotos" y similares...
Dmitry Fedoseev:

Porque tú mismo afirmas que la etiqueta de mapa de bits es más rápida que la etiqueta normal.

Yo no he dicho eso. Y me refería a la salida de información en más de una línea. Por eso hice una pantalla para que saliera un gran número de líneas para medirlo.

La salida a las etiquetas optimiza el gráfico. Mientras que en BitmapLabel hay que pasar un array de píxeles, rellenándolo previamente. En este caso, se está llenando la matriz de píxeles y la salida de texto a la misma. Todas estas operaciones, si se llaman con demasiada frecuencia, suponen una carga para la aplicación. Mientras que para la etiqueta sólo hay que pasar una cadena. Esto ya se ha mencionado anteriormente.

Puede averiguar más sobre la velocidad comparando las mediciones de velocidad de CCanvas y de las etiquetas en diferentes modos:https://www.mql5.com/ru/forum/364640/page13#comment_21314045

 
Mihail Matkovskij:

Pero los códigos de los demás miembros de la comunidad para... Bueno, es obvio que eres autodidacta. Por eso no hacen falta reglas no escritas que digan que no se puede destrozar a los compañeros.

Y ahora las preguntas sobre el código. No voy a ser como tú y decir que es una mierda de código... ...pero de todos modos haré mis propios comentarios.

¿Por qué no hay ninguna limitación en la frecuencia de actualización de BitmapLabel, si funcionará en el probador, en el modelo "todos los ticks"? ¿Esperas que una plancha moderna lo digiera todo?) ¿Dónde está la optimización? ¿Y tú me sugeriste esto, cuando buscaba una manera de dar salida al texto de los procesos de alta carga (salida en el probador, en el modelo "todos los ticks " , y en el gráfico en bucle)?

Y cuando dije que no me funcionaba, empezaste a expresar tus quejas hacia mí... Supuestamente, no entiendo nada y he tenido que llamar sin piedad a TextOut - ResourseCreate - ChartRedraw . Cierto,ChartRedraw está comentado por alguna razón...


¿Por qué no utilizar CCanvas, especialmente diseñado para este fin? Cierto, veo que has escrito en algún sitio que supuestamente llama a funciones innecesarias, etc. Así que no has hecho una limitación en la frecuencia de las actualizaciones para el probador, pero al mismo tiempo, las funciones de CCanvas te han obstaculizado de alguna manera... :)

Extraño...


Y ahora es tu turno de decirme exactamente por qué crees que mi código es "g-code". ¡Sólo que con argumentos, no con charlatanería!

  1. ¿En qué planeta vives? ¿Dónde has encontrado esas normas? Acérquese a cualquier estación de servicio y escuche todo sobre quién reparó su coche la última vez. Aunque fuera con el que estás hablando ahora. Y no son sólo los coches. Es sólo el ejemplo más evidente.
  2. Te he ofrecido este código como ejemplo, no para que lo copies a ciegas.
  3. Todas las comprobaciones y retrasos sobrecargan el código y es más difícil utilizarlo como ejemplo.
  4. ¿De qué tipo de optimización estamos hablando si el EA no es de comercio? ¿Qué parámetros hay que optimizar en él?
  5. Después de que hayas rechazado mi propuesta, Nikolay empezó a explicarte todos los detalles. Acabo de aconsejarle que revise su tema en Canvas. Has mentido y has dicho que lo has leído todo. ¿Cómo quieres que traten a los mentirosos (por decirlo suavemente)?

Deja que las moscas y los escarabajos peloteros hurguen en tu código. Ya tengo otras cosas interesantes y útiles que hacer.

 
Mihail Matkovskij:
"El sombrero de un ladrón está en llamas"... Cualquiera puede descargar el código fuente y repetir las mediciones que he presentado anteriormente. Tú, en cambio, no tienes más que quejas y agravios. Inventado, "enlaces rotos" y similares...

Yo no he dicho eso. Y me refería a la salida de información en más de una línea. Por lo tanto, para la medición, hice una pantalla para dar salida a un gran número de líneas.

La salida a las etiquetas optimiza el gráfico. Mientras que en BitmapLabel hay que pasar un array de píxeles, rellenándolo previamente. En este caso, se está llenando la matriz de píxeles y la salida de texto a la misma. Todas estas operaciones, si se llaman con demasiada frecuencia, suponen una carga para la aplicación. Mientras que para la etiqueta sólo hay que pasar una cadena. Esto ya se ha mencionado anteriormente.

Puede obtener más información sobre la velocidad comparando las mediciones de velocidad de CCanvas y de las etiquetas en diferentes modos:https://www.mql5.com/ru/forum/364640/page13#comment_21314045

Bueno, en general, la desvergüenza y el descaro.

 
Hay una cita con enlaces en este comentario. Estos enlaces todavía permiten descargar un archivo con una clase que no tiene un campo limitFps, pero se hace referencia a él. También dime que yo mismo "dibujé" tales enlaces.
 
Alexey Viktorov:
  1. ¿En qué planeta vives? ¿Dónde has encontrado esas normas? Acuda a cualquier servicio técnico de automóviles y le dirán que la última vez le repararon el coche. Aunque fuera con el que estás hablando ahora. Y no se trata sólo de coches. Es sólo el ejemplo más evidente.

Obviamente, ¡estamos en planetas diferentes si sigues ese paradigma...!

El taller de coches me da un ejemplo... :) Bueno, al menos te has animado esta mañana. :)

Alexey Viktorov:

Te ofrecí este código como ejemplo...

Entonces vuelvo a preguntar, ¿cuál es la diferencia entre Kanvas y yo? Funciona de la misma manera. Sólo las funciones que necesito no se tiran, como las tuyas. La única diferencia es que es OOP, un nivel totalmente diferente, no su programación procedimental. :)

Alexey Viktorov:

Todas las comprobaciones y retrasos sobrecargan el código y dicho código es más difícil de utilizar como ejemplo.

Por supuesto, por supuesto... Sobrescribir... Tú tampoco eres muy bueno con el código. Probablemente te responderán con una excusa: Bueno, no soy programador... :) Sólo tratas de enseñar a los demás. :)

Alexey Viktorov:

¿De qué tipo de optimización estamos hablando si el Asesor Experto no es de comercio? ¿Qué parámetros debo optimizar en él?

Estoy confundido en cuanto a los términos :) Me refería a la optimización de la frecuencia de actualización de la etiqueta de mapa de bits. Cosa que no has hecho y me has ofrecido tu ejemplo para utilizarlo en procesos de alta carga.

Alexey Viktorov:
  1. Después de que mi oferta fuera rechazada, Nikolai empezó a explicarte todas las sutilezas. Te acabo de aconsejar que mires su tema sobre kanvas. Mentiste y dijiste que lo habías leído todo. ¿Cómo quieres tratar a los mentirosos (por decirlo suavemente)?

En este caso, el mentiroso eres tú. Porque yo no he dicho eso. Todo lo que he dicho es por qué necesito otra biblioteca basada en Canvas. De hecho, otro lienzo. Me ofreciste el mismo lienzo y funciona exactamente igual. Nikolay no tuvo ningún deseo de explicar qué hacer para que Kanvas funcionara rápidamente en mi tarea. Y es evidente que no tienes los conocimientos adecuados. Le dijiste a Nikolai "no pierdas tu tiempo con él". Dijo "estoy de acuerdo". Esa es tu explicación y la de Nikolai. Los programadores...

Alexey Viktorov:

Deja que las moscas y los escarabajos peloteros hurguen en tu código. Ya tengo otras cosas interesantes y útiles que hacer.

No voy a decir que lo tuyo es cierto... Pero estoy de acuerdo contigo en una cosa. No es necesario. ¿Por qué debería necesitar las conclusiones de un aficionado...? Mejor ir a un taller mecánico...

Eso es todo. No le daré respuestas más detalladas. Porque es una pérdida de tiempo. ¡Prefiero hacer algo útil!