Discusión sobre el artículo "¡Visualice esto! La biblioteca gráfica en MQL5 como un análogo de plot en el lenguaje R" - página 2

 
-Aleks-:

¿Es posible hacer dos o más escalas en el gráfico - similar a una regla, donde las divisiones se dan como centímetros y pulgadas, con los valores sólo se dan si el punto se utilizó para trazar el gráfico?

Será bastante fácil añadir una nueva marca en el contexto de su tarea utilizando el método MarksToAxisAdd.

#include <Graphics\Graphic.mqh>
//+------------------------------------------------------------------+
//| Función de inicio del programa de script|
//+------------------------------------------------------------------+
void OnStart()
  {
   double x[]={-11,-11,11,11};
   double y[]={-10,10,-10,10};
//--- gráfico
   CGraphic graph;
   graph.HistoryNameWidth(80);
   graph.Create(0,"Graph",0,30,30,830,430);
//--- Puntos
   CCurve *curve=graph.CurveAdd(x,y,CURVE_LINES);
   graph.CurvePlot(0);
//--- añadir marcas al eje X
   graph.MarksToAxisAdd(x,8,MARK_INTERNAL,0);
   graph.Update();
   Sleep(1000);
  }‌

P.D. Tenga en cuenta que el método MarksToAxisAdd no crea nuevos objetos. Es decir, al redibujar el gráfico con el método Redraw, esta marca se perderá.

P.P.S. Si necesita no sólo añadir nuevas serifas, sino también firmarlas, es una tarea más complicada. Será necesario escribir cada serifa manualmente utilizando el método TextAdd.

 
Roman Konopelko:

Añadir una nueva marca en el contexto de su tarea será bastante fácil utilizando el método MarksToAxisAdd.

#include <Graphics\Graphic.mqh>
//+------------------------------------------------------------------+
//| Función de inicio del programa de script|
//+------------------------------------------------------------------+
void OnStart()
  {
   double x[]={-11,-11,11,11};
   double y[]={-10,10,-10,10};
//--- gráfico
   CGraphic graph;
   graph.HistoryNameWidth(80);
   graph.Create(0,"Graph",0,30,30,830,430);
//--- Puntos
   CCurve *curve=graph.CurveAdd(x,y,CURVE_LINES);
   graph.CurvePlot(0);
//--- añadir marcas al eje X
   graph.MarksToAxisAdd(x,8,MARK_INTERNAL,0);
   graph.Update();
   Sleep(1000);
  }‌

P.D. Tenga en cuenta que el método MarksToAxisAdd no crea nuevos objetos. Es decir, al redibujar el gráfico con el método Redraw, este marcado se perderá.

P.P.S. Si necesita no sólo añadir nuevas serifas, sino también firmarlas, es una tarea más complicada. Será necesario escribir cada serifa manualmente utilizando el método TextAdd.

Gracias por la respuesta.

Es necesario que las muescas sean paralelas - el objetivo es ver dos valores de un punto - por lo que necesitamos firmas de puntos. ¿No hay planes para hacer el trabajo con la carta como con la carta - es decir, cuando se señala en la ventana de navegación para obtener los valores de la carta por escalas?

 
-Aleks-:

Gracias por la respuesta.

Necesito que las muescas sean paralelas - el objetivo es ver dos valores de un punto - por lo que necesito las firmas de los puntos. ¿Está planeando trabajar con un gráfico como con un gráfico - es decir, cuando se apunta en la ventana de navegación, obtener los valores del gráfico por escalas?

Como parte de la librería de Gráficos esta funcionalidad no está planeada todavía. Pero en el mismo tema sobre la librería de Gráficos ya he encontrado una implementación personalizada de la funcionalidad de la que hablas).

 
Roman Konopelko:

Esta funcionalidad no estaba prevista como parte de la librería Graphics. Pero en el mismo hilo de la librería Graphics ya he visto una implementación personalizada de la funcionalidad de la que hablas).

Gracias por el enlace. Es una pena que no esté planificada - creo que es extremadamente útil para el trabajo real con gráficos.

Tengo una pregunta de la que probablemente sepas la respuesta, ya que has pasado mucho tiempo trabajando con gráficos, y me temo que he vuelto a inventar una bicicleta - ¿existe un método para trazar un gráfico como superponer tartas de datos multicapa en forma de matriz unas sobre otras? Humanamente (en ejecución física) se parece a esto - tomamos un vaso - lo diferenciamos en celdas, en cada celda dependiente índice x de y, hacemos normalización de indicadores, y pintamos dependiendo del indicador de celdas en el vaso con un gradiente de un color, luego el siguiente indicador con la misma matriz, pero con otros valores, también normalizamos y pintamos, pero con otro veet. El resultado del análisis será una paleta, que resultó - se supone que por el tono del color y su capacidad para transmitir la luz, puede identificar patrones de influencia de un indicador sobre otro. (en todo caso, este es mi know-how :)) Hay algo parecido en terminal, pero hay un gráfico sobre extremos, que no es lo mismo, pero quizás inspiró mi idea.

 
-Aleks-:

Gracias por el enlace. Es una lástima que no está previsto - Creo que es extremadamente útil para el trabajo real con gráficos.

Tengo una pregunta, a la que usted probablemente sabe la respuesta, ya que han pasado mucho tiempo trabajando con gráficos, y me temo que he inventado una bicicleta de nuevo - ¿existe un método de construcción de un gráfico como la superposición de pasteles de varias capas de datos en forma de una matriz sobre la otra? Humanamente (en ejecución física) se parece a esto - tomamos un vaso - lo diferenciamos en celdas, en cada celda dependiente índice x de y, hacemos normalización de indicadores, y pintamos dependiendo del indicador de celdas en el vaso con un gradiente de un color, luego el siguiente indicador con la misma matriz, pero con otros valores, también normalizamos y pintamos, pero con un veet diferente. El resultado del análisis será una paleta, que resultó - se supone que por el tono del color y su capacidad para transmitir la luz, puede identificar patrones de influencia de un indicador sobre otro. (en todo caso, este es mi know-how :)) Hay algo parecido en Terminal, pero grafica por extremos, que no es para nada lo mismo, pero puede haber inspirado mi idea.

Probablemente te he entendido mal, pero lo que describes me parece más asociado a los métodos clásicos de clustering del aprendizaje automático. Especialmente parece algo parecido a los mapas de Kohonen.
 
Roman Konopelko:
Probablemente no te he entendido bien, pero lo que describes me parece que se asocia más con los métodos clásicos de agrupación del aprendizaje automático. En concreto, parece algo parecido a los mapas de Kohonen.

Los mapas de Kohonen no son exactamente así, es un principio diferente... Estaba pensando que este enfoque ayudaría al aprendizaje automático... De todos modos, o estoy pensando en la dirección correcta o no está allí todavía y hay que hacer para evaluar. Gracias.

 
pequeña petición, si no es difícil, ¿puedes añadir la posibilidad de dibujar velas o barras en OHLC? Me gustan mucho estos lienzos, me gustaría poder construir gráficos completos sobre ellos
 
Maxim Dmitrievsky:
pequeña petición, si no es difícil, ¿puedes añadir la posibilidad de dibujar velas o barras en OHLC? Me gustan mucho estos lienzos, me gustaría poder trazar gráficos completos en ellos
¿Quizás sólo necesitas DRAW_COLOR_CANDLES?
 
Rashid Umarov:
¿Quizás sólo necesites DRAW_COLOR_CANDLES?


No, sólo que sin indicadores se podría mostrar un gráfico adicional con información sobre distribuciones (no hay problemas con eso), y estaría bien poder mostrar un trozo de gráfico de otro TF, digamos, u otra información en forma de barras, a través de la misma librería de gráficos. Por supuesto, se pueden mostrar los 4 tipos de precios con líneas, pero no se ve bien.

 
Maxim Dmitrievsky:


No, exactamente que sin indicadores sería posible mostrar un gráfico adicional con información sobre las distribuciones (no hay problemas con esto), y sería bueno ser capaz de mostrar un pedazo de gráfico de otro TF, por ejemplo, u otra información en forma de barras, a través de la misma biblioteca de gráficos. Es sólo conveniente y rápido para trabajar con él, puede, por supuesto, las líneas para mostrar los 4 tipos de precios, pero no se ve as.

¡Buenas tardes!

El modo CustomPlotFunction está implementado en la librería para propósitos similares, el ejemplo de uso implementa aproximadamente lo que te interesa.

P.D. Más detalles al respecto están escritos en el foro .