Errores, fallos, preguntas - página 2041

 
Kirill Belousov:
No especificamos el número de subventana, pero la función nos dice (es un parámetro de salida, no de entrada) - en qué subventana del gráfico con el ID especificado hay un gráfico de precios y nos dice qué precio y hora corresponden a las coordenadas X,Y que especificamos en ese gráfico.

Esto es comprensible, pasando el parámetro por referencia. Pero la pregunta está abierta: ¿por qué la función no ve en qué número de subventana está instalado el indicador y no toma datos de él?

 
Vitaly Muzichenko:

Esto es comprensible, pasando el parámetro por referencia. Pero la pregunta queda abierta: ¿por qué la función no ve en qué número de subventana está instalado el indicador y toma los datos de éste?

ALTURA_DEL_GRÁFICO_EN_PÍXELES
 
fxsaber:
ALTURA_DEL_GRÁFICO_EN_PÍXELES

Es toda una historia con los cálculos si tienes varios indicadores en subventanas, pero gracias de todos modos por tu tiempo.

 
Vitaly Muzichenko:

Es toda una historia con los cálculos si hay varios indicadores en subventanas, pero gracias de todos modos por tu tiempo.

https://www.mql5.com/ru/docs/chart_operations/chartwindowfind

Документация по MQL5: Операции с графиками / ChartWindowFind
Документация по MQL5: Операции с графиками / ChartWindowFind
  • www.mql5.com
1. Функция ищет на указанном графике подокно с указанным "коротким именем" индикатора (короткое имя выводится слева вверху подокна) и в случае удачи возвращает номер подокна. Не следует путать короткое имя индикатора и имя файла, которое указывается при создании индикатора функциями iCustom() и IndicatorCreate(). Если короткое наименование...
 

Sí, estas son todas las funciones que conozco.

La tarea es sencilla, tenemos que vincular el objeto de la 4ª subventana (resaltado en rojo) con el precio, en este caso es -0,02, y la coordenada Y en el gráfico es 34


 
Vitaly Muzichenko:

La tarea es sencilla, hay que vincular el objeto de la subventana 4 (resaltado en rojo) con el precio, en este caso es -0,02, y la coordenada Y en el gráfico es 34

#property indicator_separate_window

#property indicator_buffers 0 
#property indicator_plots 0

#define  CHART_SUBWINDOW_BORDER_SIZE 2 // Размер разделителя подокон

void OnInit()
{
  int X = 0;
  int Y = 0;

  const int SubWindow = ChartWindowFind();
  
  for (int i = 0; i < SubWindow; i++)  
    Y += (int)ChartGetInteger(0, CHART_HEIGHT_IN_PIXELS, i) + CHART_SUBWINDOW_BORDER_SIZE;
  
  int SubWindow2;
  datetime time;
  double Price;
  
  if (ChartXYToTimePrice(0, X, Y, SubWindow2, time, Price))
    Print(SubWindow2);
}

int OnCalculate ( const int rates_total, const int, const int, const double &[] )
{ 
  return(rates_total);
}
 
fxsaber:

Gracias por la variante terminada, intentaré adjuntarla a los indicadores.

P.D. ¡Ha funcionado, gracias de nuevo!


Pero la pregunta sigue siendo, ¿por qué debo especificar el número de subventana en la función, si tengo que bailar con pandereta?

 
Vitaly Muzichenko:

¿Por qué debo especificar el número de subventana en la función si tengo que jugar con él?

Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias

Errores, fallos, preguntas

Kirill Belousov, 2017.10.15 19:50

No especificamos el número de subventana, la función nos dice(es un parámetro de salida, no de entrada) - en qué subventana del gráfico con el ID especificado está el gráfico de precios y qué precio y hora corresponden a las coordenadas X,Y que especificamos en ese gráfico.
 
Vitaly Muzichenko:

Gracias por la versión terminada, intentaré adjuntarla a los indicadores.

P.D. ¡Ha funcionado, gracias de nuevo!


Pero la pregunta sigue siendo, ¿por qué debo especificar el número de subventana en la función, si quiero hacer un lío?

El baile se puede acortar utilizando ChartGetInteger() con este parámetro

VENTANA_GRÁFICA_DISTANCIA

Distancia en píxeles a lo largo del eje vertical Y entre el borde superior de la subventana del indicador y el borde superior de la ventana del gráfico principal. En los eventos del ratón, las coordenadas del cursor se pasan en las coordenadas de la ventana del gráfico principal, mientras que las coordenadas de los objetos gráficos de una subventana del indicador se establecen en relación con la esquina superior izquierda de la subventana.

El valor es necesario para convertir las coordenadas absolutas del gráfico principal a las coordenadas locales de una subventana para trabajar correctamente con los objetos gráficos cuyas coordenadas se establecen en relación con la esquina superior izquierda del marco de la subventana.

int r/o modifier - número de subventana

 
Kirill Belousov:

El baile se puede acortar utilizando ChartGetInteger() con este parámetro

VENTANA_GRÁFICA_DISTANCIA

Distancia en píxeles a lo largo del eje vertical y entre el marco superior de la subventana del indicador y el marco superior de la ventana del gráfico principal. En los eventos del ratón, las coordenadas del cursor se pasan en las coordenadas de la ventana del gráfico principal, mientras que las coordenadas de los objetos gráficos de una subventana del indicador se establecen en relación con la esquina superior izquierda de la subventana.

El valor es necesario para convertir las coordenadas absolutas del gráfico principal en las coordenadas locales de una subventana para trabajar correctamente con los objetos gráficos cuyas coordenadas se establecen en relación con la esquina superior izquierda del marco de la subventana.

int r/o modifier - número de subventana

Gracias, acortado, mismo resultado, ¡pero menos código!

Razón de la queja: