Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 531

 
Aleksey Lebedev:

Es un poco de lío, ¿no?

No estoy de acuerdo, porque la persona está haciendo un indicador, y en un indicador hay que trabajar con arrays desde OnCalculate().
 
-Aleks-:

...

Perdona mi impertinencia, pero ¿puedes mostrarme cómo combinar tu código y el mío?

Una antigua sabiduría popular dice: si quieres ayudar a un hambriento, no le des un pescado, dale una caña de pescar.

Si tiene alguna duda, pregunte.

 
Karputov Vladimir:
No estoy de acuerdo, porque el hombre hace un indicador, y en un indicador hay que trabajar con arrays desde OnCalculate().
time[0] si es necesario, y la religión no permite utilizar TimeCurrent().
 
Aleksey Lebedev:

Es un poco de lío, ¿no?

¿Y cómo sabes qué día está en la barra 163 de la TF actual?
 
-Aleks-:
¿Y cómo sabes qué día es la barra 163 de la TF actual?
time[163]
Así que en el indicador obtendrá la fecha de apertura de la barra con el índice 163.
 
-Aleks-:
¿Y cómo puedo saber qué día está en la barra 163 de la TF actual?

No entiendo bien la pregunta.

int DayN=(time[0]-time[163])/86400;

0 = hoy en día

1 = ayer, etc.


Print(time[163]) o Comment(time[163]) imprimirán la fecha/hora en forma humana.


corregido.

 
Karputov Vladimir:
De esta manera en el indicador obtendrá la fecha de apertura de la barra con el índice 163.

Hice un experimento, puse 163 y obtuve una línea

2016.03.07 18:46:29.062 Start_day GBPUSD,H1: Día de inicio 2016.02.25 03:00:00

¡Y en realidad debería haber obtenido la fecha 2016.03.01 00:00:00 !

Creo que no soy muy bueno explicando lo que quiero conseguir, déjame intentarlo de nuevo.

Necesito hacer un cálculo en cada gráfico de la TF actual. El cálculo requiere conocer la fecha de la TF superior (días). Arriba he adjuntado el código - la idea es saber en cada barra el precio máximo de la TF superior en el momento de la apertura de la barra en la TF actual.

 
Aleksey Lebedev:

No entiendo bien la pregunta.

0 = hoy en día

1 = ayer, etc.


Print(time[163]) o Comment(time[163]) imprimirán la fecha/hora en forma humana.


corregido.

Obtendremos los segundos que necesitamos para redondear - el redondeo es el problema.
 
 
Alexey Kozitsyn:
Utilice TimeToStruct().

No sé cómo utilizarlo.

El segundo valor requiere"MqlDateTime&dt_struct// estructura para tomar valores", pero no entiendo cómo usar este MqlDateTime.