Errores, fallos, preguntas - página 3125

 
Nikolai Semko #:

Dios, estos indicadores de amortiguación son tan incómodos. Espeluznante.
Con el dibujo en lienzo todo es mucho más fácil, menos código, más claro, más versátil y con total libertad de acción.

Su afición por la tela ha quedado clara desde hace mucho tiempo. Pero no todo el mundo está acostumbrado... )))
 
Alexey Viktorov #:
Todo el mundo entiende su afición por las kanvas desde hace mucho tiempo. Pero no todos están tan acostumbrados... )))
Te equivocas.
El hábito es cosa del pasado.
 
Nikolai Semko #:
No deberías.
El hábito es cosa del pasado.

Sí... si no muero primero...

 
Los búferes son más fáciles de trabajar, pero se puede enviar cualquier cosa a Kanvas. Por otro lado, también hay muchos tipos diferentes de topes de indicadores en los indicadores personalizados en MQL5. En general, el programador no debería equivocarse al elegir cualquiera de estos métodos. Pero la elección debería depender siempre de la tarea a realizar...
 
Alexey Viktorov #:

Probablemente no sea una muleta, pero hasta ahora no tengo explicación para lo que está pasando. Gracias...

Probablemente depende de que el buffer esté más alto en la construcción. Sólo hay que cambiar el + por el -.

y también funcionará. Pero necesitaba dirigir el espesor dentro de la barra.

El tampón de relleno tiene dos colores. Tienes que poner ambos separados por comas. El que está más arriba en la pantalla determina el color de relleno. No se especifica uno de los colores - se sustituye por clrNONE

 
Mihail Matkovskij #:
Es más fácil trabajar con los buffers, pero se puede emitir cualquier cosa en Kanvas. Por otra parte, en los indicadores personalizados en MQL5 también hay un montón de diferentes tipos de topes de indicadores. En general, el programador no debería equivocarse al elegir cualquiera de estos métodos. Pero la elección debería depender siempre de la tarea a realizar...

Por supuesto, los topes son más difíciles de trabajar. Es más fácil con un lienzo.
No se puede poner #propiedad en una función.

Y puedes añadir una línea de kanvas con una sola línea pasando un array a una función.
Personalmente uso kanvas más para visualizar algunos procesos y datos intermedios durante el desarrollo. De esta manera es más fácil ver los problemas y encontrar soluciones óptimas.
A menos que, por supuesto, estemos hablando de algoritmos primitivos construidos sobre intersecciones.
Aquí está, por ejemplo, mi trabajo actual.
Toda esta chapa es servicio y me ayuda mucho a encontrar soluciones óptimas.
Con los topes, por supuesto, no se puede hacer. Además, esta solución funciona igualmente en Asesores Expertos e indicadores. Y el código también funciona en MT4.

Y se realiza muy fácil y rápidamente. Literalmente, sobre la marcha.
 
Nikolai Semko #:

Por supuesto, los topes son más difíciles de trabajar. Es más fácil con un lienzo.
No se puede poner #propiedad en una función.

Y puedes añadir una línea de kanvas con una sola línea pasando un array a una función.
Personalmente uso kanvas más para la visualización de algunos procesos y datos intermedios durante el desarrollo. De esta manera es más fácil ver los problemas y encontrar soluciones óptimas.
A menos que, por supuesto, estemos hablando de algoritmos primitivos construidos sobre intersecciones.
Aquí está, por ejemplo, mi trabajo actual.
Toda esta chapa es servicio y me ayuda mucho a encontrar soluciones óptimas.
Con los topes, por supuesto, no se puede hacer. Además, esta solución funciona igualmente en Asesores Expertos e indicadores. Y el código también funciona en MT4.

Y esto se implementa muy fácil y rápidamente. Literalmente, sobre la marcha.

Este problema requiere el uso de Canvas. Por supuesto, no tenemos otra opción. Aunque hay una posibilidad, es DirectX. Pero no sé quién lo utiliza en aplicaciones MQL. Nunca he visto esos ejemplos. Kanvass me ha ayudado mucho cuando he necesitado dar salida al oscilador en el gráfico junto con los indicadores de tendencia. Por supuesto, no puedo conseguir ese resultado utilizando mecanismos de indicadores personalizados. He creado dos clases basadas en CCanvas. Uno de ellos muestra osciladores, el segundo - indicadores de tendencia utilizando métodos, donde se pasan matrices de valores de indicadores, matrices de colores y matrices de índices de colores. Pero cuando necesito mostrar un indicador, uso métodos de indicadores personalizados. No sé por qué. O es una costumbre o no quiero complicar demasiado el código, cuando el punto principal y la complejidad está en el cálculo de los valores, no en el método de su salida.

 
Mihail Matkovskij #:
Pero la elección debería depender siempre de la tarea a realizar...

Me olvidé de decírtelo. El uso de Kanvas también es muy útil en los robots en los que se necesita dar salida a los valores calculados en un gráfico, pero los búferes de los indicadores no están disponibles. Entonces los valores o señales sólo pueden ser emitidos usando Kanvas si hay suficientes de ellos (no 2-3 señales que pueden ser emitidas usando objetos gráficos).

 
Nikolai Semko #:

Dios, estos indicadores de amortiguación son tan incómodos. Espeluznante.
Con el dibujo en lienzo todo es mucho más fácil, hay menos código, más claro, más universal y completa libertad de acción.

La versatilidad de un lienzo termina cuando sus valores deben obtenerse de otro EA/indicador.

¿O ya ha encontrado una solución para eso también? )

 
Andrey Khatimlianskii #:

La versatilidad de Kanvas termina cuando sus valores tienen que venir de otro EA/indicador.

¿O también ha encontrado ya una solución para eso? )

¿Cuáles son los problemas, Andrei?
Se forma una estructura de datos o una matriz de estructuras en el EA o en el indicador y se envía a un recurso.
Y en el lado receptor, se lee esta estructura o array de estructuras.
Es aún más conveniente, porque tienes que tratar con nombres y diferentes tipos de datos de tamaños necesarios, en lugar de arrays dobles numerados de toda la longitud de las comillas.
Si se trata de un indicador para un mercado, pero tienes que proporcionar la clase que lee los datos del recurso.
El cliente sólo tiene que añadir un include y declarar una instancia de la clase. Tal vez también llamar a los métodos de OnTimer y OnTick. Y entonces esta instancia de la clase siempre tendrá los datos reales del indicador de lectura en forma de una estructura convenientemente legible o un array de estructuras.