Errori, bug, domande - pagina 2469
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
Lo saprò) poi hackerare
Sto trasferendo un programma da MQL4 a MQL5.
Ho affrontato questo errore.
Sui timeframe fino a m30 il valore di Period() è corretto.
2019.05.22 17:45:38.628 TestStat (GBPUSD,M15) 4854 Periodo()=15
2019.05.22 17:46:08.267 TestStat (GBPUSD,M30) 4854 Periodo()=30
Dal timeframe H1 ottengo valori incomprensibili.
2019.05.22 17:31:07.446 TestStat (GBPUSD,H1) 4854 Periodo()=16385
2019.05.22 17:46:39.362 TestStat (GBPUSD,H4) 4854 Periodo()=16388
2019.05.22 17:46:55.552 TestStat (GBPUSD,D1) 4854 Periodo()=16408
Versione terminale build 2057 del 21 maggio 2019.
Grazie.
Nella descrizione:
Periodo
Restituisce il valore del timeframe del grafico corrente.
ENUM_TIMEFRAMESPeriodo();
Valore restituito
Contenuto della variabile _Period , che contiene il valore del timeframe del grafico corrente. Ilvalore può essere uno dei valori dell'enumerazione ENUM_TIMEFRAMES.
Vedi anche
PeriodSeconds, Chart Periods, Date and Time, , Object Visibility
=================
Questo non è fatto molto bene. Dovrebbe essere scritto correttamente nella descrizione. Non dovreste cercare la fonte del problema sul forum.
Si scopre che Period() non darà il valore del timeframe corrente come dice:Il valore può essere uno dei valori dell'enumerazione ENUM_TIMEFRAMES.
È qualcosa di completamente diverso.
Si prega di correggere la descrizione della lingua per gli sviluppatori.
Abbiamo i seguenti risultati su ArrayResize capacità MT5 (build 2057):
Risultato:
Descrizione:
Contenuto della variabile _Period , che memorizza il valore del timeframe del grafico corrente. Il valore può essere uno dei valori dell'enumerazione ENUM_TIMEFRAMES.
Questo non è fatto bene. Dovrebbe essere scritto correttamente nella descrizione. Non dovreste cercare la fonte del problema sul forum.
Quindi non c'è scritto da nessuna parte che questo valore è uguale al periodo in minuti (come era in quad).
https://www.mql5.com/ru/articles/81
È da qui che parte l'articolo del link.
Quindi non c'è scritto da nessuna parte che questo valore è uguale al periodo in minuti (come lo era in quattro).
https://www.mql5.com/ru/articles/81
Qui inizia l'articolo del link.
C'è una descrizione del linguaggio che dice: Il valore può essere uno dei valori dell'enumerazione ENUM_TIMEFRAMES.
Vedere la descrizione della lingua più in basso:
Periodi del grafico
Tutti i periodi predefiniti del grafico hanno identificatori unici. L'identificatore PERIOD_CURRENT indica il periodo corrente del grafico in cui il programma mql5 è in esecuzione.
ENUM_TIMEFRAMES
Identificatore
Descrizione
PERIODO_CORRENTE
Periodo corrente
PERIODO_M1
1 minuto
PERIODO_M2
2 minuti
PERIODO_M3
3 minuti
PERIODO_M4
4 minuti
PERIODO_M5
5 minuti
PERIODO_M6
6 minuti
PERIODO_M10
10 minuti
PERIODO_M12
12 minuti
PERIODO_M15
15 minuti
PERIODO_M20
20 minuti
PERIODO_M30
30 minuti
PERIODO_H1
1 ora
PERIODO_H2
2 ore
PERIODO_H3
3 ore
PERIODO_H4
4 ore
PERIODO_H6
6 ore
PERIODO_H8
8 ore
PERIODO_H12
12 ore
PERIODO_D1
1 giorno
PERIODO_W1
1 settimana
PERIODO_MN1
1 mese
======================
E da nessuna parte nella descrizione si dice che questo valore è in secondi.
La descrizione dovrebbe dire tutto.
E quando devi cercare altri articoli, è un peccato.
Grazie ancora aTheXpert per aver fornito il codice.
Abbiamo i seguenti risultati su ArrayResize capacità MT5 (build 2057):
1. Il primo ArrayResize è molto importante, alloca realmente la memoria tenendo conto della dimensione + reserved_size e imposta la capacità.
2. Tutte le successive esecuzioni di ArrayResize con un nuovo valore di reserved_size non hanno effetto sulla quantità di memoria allocata e sulla capacità, rispettivamente.
3 Una nuova allocazione di memoria viene eseguita solo quando la capacità viene superata e in questo caso size + reserved_size viene utilizzato di nuovo per determinare la quantità di memoria allocata e impostare una nuova capacità.
4. Un valore di reserved_size < 0 libera la memoria riservata alla dimensione.
E da nessuna parte nella descrizione si dice che questo valore è in secondi.
Quindi non è in secondi...
C'è una descrizione del linguaggio che dice: Il valore può essere uno dei valori dell'enumerazione ENUM_TIMEFRAMES.
Vedere più avanti nella descrizione della lingua:
Periodi del grafico
Tutti i periodi predefiniti del grafico hanno identificatori unici. L'identificatore PERIOD_CURRENT indica il periodo corrente del grafico in cui il programma mql5 è in esecuzione.
ENUM_TIMEFRAMES
======================
E da nessuna parte nella descrizione si dice che questo valore è in secondi.
La descrizione dovrebbe dire tutto.
E quando si deve passare attraverso altri articoli, è un peccato.
Chi vi ha detto che questi sono valori in secondi?
C'è una descrizione del linguaggio che dice: Il valore può essere uno dei valori dell'enumerazione ENUM_TIMEFRAMES.
Vedere più avanti nella descrizione della lingua:
Periodi del grafico
Tutti i periodi predefiniti del grafico hanno identificatori unici. L'identificatore PERIOD_CURRENT denota il periodo corrente del grafico, al quale il programma mql5 sta girando.
ENUM_TIMEFRAMES
Identificatore
Descrizione
PERIODO_CORRENTE
Periodo corrente
PERIODO_M1
1 minuto
PERIODO_M2
2 minuti
PERIODO_M3
3 minuti
PERIODO_M4
4 minuti
PERIODO_M5
5 minuti
PERIODO_M6
6 minuti
PERIODO_M10
10 minuti
PERIODO_M12
12 minuti
PERIODO_M15
15 minuti
PERIODO_M20
20 minuti
PERIODO_M30
30 minuti
PERIODO_H1
1 ora
PERIODO_H2
2 ore
PERIODO_H3
3 ore
PERIODO_H4
4 ore
PERIODO_H6
6 ore
PERIODO_H8
8 ore
PERIODO_H12
12 ore
PERIODO_D1
1 giorno
PERIODO_W1
1 settimana
PERIODO_MN1
1 mese
======================
E da nessuna parte nella descrizione si dice che questo valore è in secondi.
La descrizione dovrebbe dire tutto.
E quando si deve passare attraverso altri articoli, è un peccato.
Non dovreste mai fare affidamento su un valore di enumerazione.
Utilizzare PeriodSeconds().