Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 531

 
Aleksey Lebedev:

È un po' un casino, vero?

Non sono d'accordo, perché la persona sta facendo un indicatore, e in un indicatore devi lavorare con gli array da OnCalculate().
 
-Aleks-:

...

Scusa la mia impertinenza, ma puoi mostrarmi come combinare il tuo codice con il mio?

Un'antica saggezza popolare dice: se vuoi aiutare un uomo affamato, non dargli un pesce, dagli una canna da pesca.

Se avete domande, chiedete pure.

 
Karputov Vladimir:
Non sono d'accordo, perché l'uomo fa un indicatore, e in un indicatore è necessario lavorare con gli array da OnCalculate().
time[0] se necessario, e la religione non permette di usare TimeCurrent().
 
Aleksey Lebedev:

È un po' un casino, vero?

E come fate a sapere che giorno è sulla 163 barra del TF corrente?
 
-Aleks-:
E come si fa a sapere che giorno è la barra 163 del TF corrente?
time[163]
Così nell'indicatore otterrete la data di apertura della barra con l'indice 163.
 
-Aleks-:
E come faccio a sapere che giorno è sulla 163 barra del TF corrente?

Non capisco bene la domanda.

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

0 = oggi

1 = ieri, ecc.


Print(time[163]) o Comment(time[163]) stamperà la data/ora in forma umana.


corretto.

 
Karputov Vladimir:
In questo modo nell'indicatore otterrete la data di apertura della barra con l'indice 163.

Ha fatto un esperimento, ha messo 163 e ha ottenuto una linea

2016.03.07 18:46:29.062 Start_day GBPUSD,H1: Giorno di inizio 2016.02.25 03:00:00

E in realtà avrebbe dovuto ottenere la data 2016.03.01 00:00:00 !

Credo di non essere molto bravo a spiegare quello che voglio ottenere, lasciami provare di nuovo.

Ho bisogno di fare un calcolo su ogni grafico del TF corrente. Il calcolo richiede di conoscere la data del TF superiore (giorni). Sopra ho allegato il codice - l'idea è di conoscere su ogni barra il prezzo massimo del TF superiore al momento dell'apertura della barra nel TF corrente.

 
Aleksey Lebedev:

Non capisco bene la domanda.

0 = oggi

1 = ieri, ecc.


Print(time[163]) o Comment(time[163]) stamperà la data/ora in forma umana.


corretto.

Otterremo i secondi necessari per arrotondare - l'arrotondamento è il problema.
 
 
Alexey Kozitsyn:
Usate TimeToStruct().

Non riesco a capire come usarlo.

Il secondo valore richiede"MqlDateTime&dt_struct// struttura per prendere valori", ma non capisco come usare questo MqlDateTime.

Motivazione: