Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 977

 
Vadim_2015:


Consulte la ayuda para las funciones, y el foro para ver ejemplos de su uso:

1. iHighest/iLowest
- para evitar confusiones, estas funciones devuelven un índice correspondiente al precio máximo/mínimo.
Entonces debes poner sus valores en High[] / Low[]. Encontrarás muchos ejemplos en el foro.

2. iBarShift
 

Gracias por sus comentarios.

1_Sí, he intentado utilizar _iHighest, pero devuelve el índice (número de barra) del valor más alto encontrado (desplazamiento relativo a la "barra actual"). Lo que quiero decir es que se cumple una determinada condición en la barra i-ésima, esta barra corresponde a la hora, digamos, 10:00, necesito el valor máximo desde _10:00 hasta el final del día _00:00. Si puedes, al menos un pequeño garabato, ¿cómo? Cómo enlazar iHighest High[] / Low[] de los que hablabas.

2_iBarShift después de todo devuelve el índice de la barra donde cae el tiempo especificado. El índice de una barra. Me refería a que hay que calcular cuántas barras hay en el historial (en el gráfico), con una hora concreta_12:00_13:00_14:00, etc. iBars tampoco es lo mismo.

atztek:

Consulte la ayuda para las funciones, y el foro para ver ejemplos de uso:

1. iHighest/iLowest
- para evitar confusiones, estas funciones devuelven un índice correspondiente al precio máximo/mínimo.
Entonces debes poner sus valores en High[] / Low[]. Encontrarás muchos ejemplos en el foro.

2. iBarShift

 
Vadim_2015:

Gracias por sus comentarios.

1_Sí, he intentado utilizar _iHighest, pero devuelve el índice del valor más alto encontrado (desplazamiento relativo a la "barra actual"). Lo que quiero decir es que una determinada condición en la barra i-ésima se ha cumplido, esta barra corresponde a la hora, digamos, 10:00, por lo que necesito el máximo desde _10:00 hasta el final del día _00:00. Si puedes, al menos un pequeño garabato, ¿cómo? Cómo enlazar iHighest High[] / Low[] de los que hablabas.

2_ iBarShift después de todo devuelve el índice de la barra donde cae el tiempo especificado. El índice de una barra. Me refería a que hay que calcular cuántas barras hay en el historial (en el gráfico), con una hora concreta_12:00_13:00_14:00, etc. iBars tampoco es lo mismo.

1. En el segmento que está considerando, iHighest devolverá algún valor que puede ser almacenado en una variable, digamos 'Index_Max'. Para obtener el valor hay que realizar una simple operación => High[Index_Max].

2. iBarShift devolverá el número de barras hasta el momento especificado.

Olvídate de lo que tienes que programar durante un tiempo, crea pequeños ejemplos para cada caso y utilízalos para mostrar cómo funciona.
 
atztek:
1. En la sección que está considerando iHighest devolverá algún valor que puede ser almacenado en una variable, digamos 'Index_Max'. Para obtener el valor hay que realizar una simple operación => High[Index_Max].

2. iBarShift devolverá el número de barras hasta el momento especificado.

Olvídate de lo que tienes que programar durante un tiempo, crea pequeños ejemplos para cada caso y utilízalos para mostrar cómo funciona.

Tal vez no entienda algo, pero yo...Manual MQL4/Acceso a series temporales e indicadores/ iBarShift

" iBarShift - Búsqueda de bares por tiempo. La función devuelve el índice de la barra en la que cae el tiempo especificado.

El valor devuelto -Índice de la barra, el tiempoespecificado cae en.Si no hay ninguna barra para el tiempo especificado ("agujero" en el historial), la función devuelve -1 o el índice de la barra más cercana." ,

no el número de compases antes de la hora especificada.

Sí, ya uso los ejemplos, pero está todo mal. He probado diferentes funciones. Probaré su versión. ¿Qué debo hacer para calcular el tiempo de las barras? ¿Cómo se calculan?

Gracias.

 
Vadim_2015:


Tal vez no entienda algo, pero yo...Manual MQL4/Acceso a series temporales e indicadores/ iBarShift

" iBarShift - Búsqueda del bar por tiempo. La función devuelve el índice de la barra en la que cae el tiempo especificado.

El valor devuelto -Índice de la barra, el tiempoespecificado cae en.Si no hay ninguna barra para el tiempo especificado ("agujero" en el historial), la función devuelve -1 o el índice de la barra más cercana." ,

no el número de compases antes de la hora especificada.

Sí, ya uso los ejemplos, pero está todo mal. He probado diferentes funciones. Probaré su versión. ¿Qué debo hacer para calcular el tiempo de las barras? ¿Cómo se calculan?

Gracias.

Tienes razón, pero conociendo el índice de barras también puedes averiguar el número de barras del gráfico, ¿no?
 
Vadim_2015:

2_ no todo, perdona mi impertinencia, hay una función 'iBars'( Devuelve el número de barras en el historial para el símbolo y periodo correspondiente). Por favor, ¿puede decirme qué combinación de funciones puede calcular no sólo el número de barras con tiempo, digamos, '12:00' o digamos '15:00' en history(PERIOD_H1), sino también cuántas barras con tiempo.

Las 12:00 y/o las 15:00 se producen sólo una vez al día. Así, si definimos el número de barras o el número de la última barra del periodo PERIOD_D1, será el número de barras con la hora 12:00, o cualquier otra hora.

Puede que no esté muy claro a primera vista, pero el algoritmo es aproximadamente el siguiente:

Definimos la hora de la barra más antigua del periodo actual utilizando Bares. datetime time = Time[Bars-1];

Define el número de barra iBarShift(_Symbol, PERIOD_D1, time, false);

 
¿Cómo puedo identificar el símbolo gráfico activo actual? Es decir, el gráfico, cuya pestaña/ventana está activa en ese momento, y no aquella en la que se encuentra el indicador/experto. Es decir, el Asesor Experto que trabaja en algún gráfico conoce el símbolo del gráfico, que ha sido seleccionado por el usuario.
 
r772ra:
tal vez.
MUCHAS GRACIAS.
 
AlexPORT:
¿Cómo puedo identificar el símbolo gráfico activo actual? Es decir, el gráfico cuya pestaña/ventana está activa en ese momento, y no aquel en el que se encuentra el indicador/experto. Es decir, el Asesor Experto que trabaja en algún gráfico conoce el símbolo del gráfico, que ha sido seleccionado por el usuario.
No existe tal cosa, que defina el símbolo del gráfico programáticamente activo. Sólo se puede definir el símbolo del gráfico sobre el que trabaja el indicador/asesor _Symbol, Symbol().
 

AlexeyVik:

Puede que no tenga sentido a primera vista, pero el algoritmo es más o menos así:

Determina la hora de la barra más antigua del periodo actual utilizando Bares. datetime time = Time[Bars-1];

Define el número de barra iBarShift(_Symbol, PERIOD_D1, time, false);

El algoritmo está claro, lo he descubierto. He hecho un ejemplo y funciona.

¡Muchas gracias!

Y, con la primera pregunta (sobre los máximos), ¿podrías explicar con más detalle cómo implementarlo? Si es posible, por favor, dame un pequeño algoritmo. Se te da bien :)