Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 532
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Otterremo i secondi necessari per arrotondare - l'arrotondamento è il problema.
duh
e c'è l'arrotondamento all'inizio del giorno. 86400=24*60*60Non riesco a capire come usarlo.
Il secondo valore richiede"MqlDateTime&dt_struct// struttura per prendere valori" e non capisco come usare questo MqlDateTime.
C'è un tempo. Il tempo ha parametri come: anno, mese, giorno, ore, minuti, secondi, ecc. Chiamando la funzione TimeToStruct(), si scompone il tempo in questi componenti. Poi, per esempio, si possono azzerare ore, minuti e secondi - si ottiene l'inizio del giorno.
MqlDateTime è un tipo di dati, proprio come int, bool, ecc. È solo un tipo composto, cioè per accedere ai suoi campi (ore, minuti, secondi...) bisogna usare un punto. Per esempio: dt_struct.hour - valore dell'ora. Leggi di più sulle strutture su https://www.mql5.com/ru/docs/basis/types/classes.
bene
e c'è un arrotondamento all'inizio del giorno. 86400=24*60*60C'è tempo. Il tempo ha parametri come: anno, mese, giorno, ore, minuti, secondi, ecc. Chiamando la funzione TimeToStruct(), si scompone il tempo in questi componenti. Poi, per esempio, si possono azzerare ore, minuti e secondi - si ottiene l'inizio del giorno.
MqlDateTime è un tipo di dati, proprio come int, bool, ecc. È solo un tipo composto, cioè per accedere ai suoi campi (ore, minuti, secondi...) bisogna usare un punto. Per esempio: dt_struct.hour - valore dell'ora. Leggi di più sulle strutture su https://www.mql5.com/ru/docs/basis/types/classes.
Secondo la vostra formula si ottiene il numero di giorni tra la barra attuale e il remoto, ma questi giorni sono condizionali, cioè può essere 9 del giorno corrente e 1 ora del giorno prima. Poi la differenza in secondi sarà 122400, che equivale a 1,42 giorni - quando arrotondato a 1 giorno, e la necessità di avere 2.
un giorno perso, 23h+24h+9h=2 giorni 8h... Non ho bisogno di questa formula se ne ho bisogno:
Ho bisogno di calcolare su ogni grafico del timeframe corrente. Per il calcolo ho bisogno di sapere la data del lasso di tempo superiore (giorni). Sopra ho allegato il codice - il punto è sapere su ogni barra il prezzo massimo del TF superiore al momento dell'apertura della barra nel timeframe corrente.
E tu dici struttura... :)
un giorno perso, 23h+24h+9h=2 giorni 8h... Non avete bisogno di questa formula se ne avete bisogno:
Di nuovo:E tu dici struttura... :)
Perché hai 23 ore - ho scritto 1 ora, ma il punto non cambia.
24 (il giorno prima - un'ora ieri)+24 (ieri - un'ora oggi)+8 (dopo un'ora oggi - meno un'ora)=56/24=2,33, quindi ha fatto due giorni, non sei d'accordo?
Perché hai 23 ore - ho scritto 1 ora, ma l'essenza non cambia
24 (l'altro ieri - all'ora di ieri)+24 (ieri - all'ora di oggi)+8 (dopo un'ora di oggi - meno un'ora) =56/24 = 2,33 cioè sono due giorni, non sei d'accordo?
23h prima di ieri +
24h ieri +
9h oggi=
2 giorni 8h=2,(33)giorni
Questo è il modo giusto per farlo:
Non importa, non è necessario)23h prima di ieri+
24h ieri+
9h oggi=
2 giorni 8h=2,(33)giorni
Il modo corretto è qualcosa del genere:
Non importa, non è necessario)Ora immaginiamo che non siano le 9h di questo giorno ma le 19
24(l'altro ieri +24(ieri - 1h oggi)+18(dopo 1h oggi - meno 1h)=66/24=2,75 cioè fa tre giorni, siete d'accordo?
Come se la gamma non è cambiato ogni giorno, e il calcolo durante il giorno dà poi 2, poi 3 giorni - in questo il problema.
La variante
int DayN=time[0]/86400-time[163]/86400;
Questo non funziona anche se assumiamo che la barra corrente sia di 1 ora e la barra stimata sia di 23 ore, nel qual caso il risultato del calcolo è zero e dovrebbe essere 1.
Sarà 1, entrambi i tempi sono prima arrotondati a un giorno intero, poi sottratti.