Errori, bug, domande - pagina 491

 
Urain:

Cosa significano i numeri?

E come sbarazzarsi di questo errore ????

Per progettazione la temperatura dovrebbe essere uguale a -1,0

ZS Ho un controllo per l'uguaglianza a zero, ma non so come controllare l'uguaglianza a questo -1.#IND

Guardate attentamente gli esempi sotto Tipi reali (double, float)
 
Im_hungry:

Sono d'accordo, ma non necessariamente su tutti gli strumenti, solo uno, perché il tempo è lo stesso ovunque.

Il modo più semplice per determinare una nuova barra: (l'ho fatto io stesso, molto semplice ed efficace)

e mettete il costrutto in OnTick dove avete effettivamente bisogno di questa nuova barra
Non è proprio così. La nuova barra non inizia a 00 sec, ma con l'arrivo del primo tick dopo 00 sec. Se il timeframe non contiene un solo tick dopo 00 sec, non avremo una barra corrispondente
 

Buon pomeriggio di fronte a quanto segue:

Alert("Richiesta = ", Bars("GBPUSD", PERIOD_MN1, datetime("2009.01.01 00:00:00"), datetime("2008.10.01 00:00")) );
datetime timeArray[]; //array dinamico, la dimensione non è impostata
int ckopirovano = CopyTime("GBPUSD", PERIOD_MN1, datetime("2009.01.01 00:00:00"), datetime("2008.10.01 00:00:00"),timeArray);
Alert("Copiato = ", ckopirovano);

Risultato:

Query = 4

Copia = 3

Alert("Richiesta = ", Bars("GBPUSD", PERIOD_MN1, datetime("2009.01.01 00:00:00"), datetime("2008.10.01 00:00:00")) );
datetime timeArray[5]; // specifica la dimensione
int ckopirovano = CopyTime("GBPUSD", PERIOD_MN1, datetime("2009.01.01 00:00:00"), datetime("2008.10.01 00:00:00"),timeArray);
Alert("Copiato = ", ckopirovano);

Resultat :

Query = 4

Copiato = 4

Voglio dire, ho sempre copiato dalla serie temporale all'array dinamico, nessuna dimensione è stata impostata (mai avuto un errore), e ora questo. Come dovrei capirlo?

Документация по MQL5: Основы языка / Типы данных / Объект динамического массива
Документация по MQL5: Основы языка / Типы данных / Объект динамического массива
  • www.mql5.com
Основы языка / Типы данных / Объект динамического массива - Документация по MQL5
 
Im_hungry:

Dammi un argomento duro, ho controllato sul mio EA - sia su 2 coppie (multic) e

su uno il risultato del test dal 2000 su tutte le zecche non è diverso così come su 1 coppia,

e gli Expert Advisors con diverse strategie!


E se il calcolo non è fatto sulla barra di testo ma sulla storia di 2 o più barre (anche se è un milione)

Dobbiamo cercare il bar sulla storia!

Questo significa che non l'hanno controllato correttamente, oppure l'EA NON è multivaluta, e può funzionare solo con simboli diversi. Il ragionamento è semplice: sappiamo che le zecche arrivano per simboli diversi in momenti diversi. Di conseguenza, se un EA è suTick EURUSD (per esempio), e controlla GBPUSD o anche solo i cambiamenti di tick di GBPUSD invece di EURUSD, il risultato sarà diverso. In particolare, una barra formata su EURUSD può avvenire prima della formazione di una barra con lo stesso tempo su GBPUSD. Se scambi GBPUSD due volte sulla stessa barra: la barra GBPUSD precedente sarà ancora considerata come una nuova barra (zero). Per quanto riguarda gli indicatori multi-valuta, tutto è chiaro. Imparare le basi.
Построение мультивалютного индикатора с применением множества промежуточных индикаторных буферов
Построение мультивалютного индикатора с применением множества промежуточных индикаторных буферов
  • 2010.05.17
  • Alexey Klenov
  • www.mql5.com
В последнее время возрос интерес к кластерному анализу рынка FOREX. MQL5 открывает новые возможности исследования закономерностей движения валютных пар. Важным преимуществом MQL5, по сравнению с MQL4, является возможность использования неограниченного количества индикаторных буферов. В данной статье описан пример построения мультивалютного индикатора.
 
220Volt:

Buon pomeriggio di fronte a quanto segue:

Alert("Richiesta = ", Bars("GBPUSD", PERIOD_MN1, datetime("2009.01.01 00:00:00"), datetime("2008.10.01 00:00:00")) );
datetime timeArray[]; //array dinamico, la dimensione non è impostata
int ckopirovano = CopyTime("GBPUSD", PERIOD_MN1, datetime("2009.01.01 00:00:00"), datetime("2008.10.01 00:00:00"),timeArray);
Alert("Copiato = ", ckopirovano);

Risultato:

Query = 4

Copia = 3

Alert("Richiesta = ", Bars("GBPUSD", PERIOD_MN1, datetime("2009.01.01 00:00:00"), datetime("2008.10.01 00:00:00")) );
datetime timeArray[5]; // specifica la dimensione
int ckopirovano = CopyTime("GBPUSD", PERIOD_MN1, datetime("2009.01.01 00:00:00"), datetime("2008.10.01 00:00:00"),timeArray);
Alert("Copiato = ", ckopirovano);

Resultat :

Query = 4

Copiato = 4

Voglio dire, ho sempre copiato dalla serie temporale all'array dinamico, nessuna dimensione è stata impostata (mai avuto un errore), e ora questo. Come dovrei capirlo?

C'è un tale bug, il caso è archiviato in SD. Quando sarà riparato, non lo so.
 
220Volt:

Voglio dire, ho sempre copiato dalle serie temporali in un array dinamico, nessuna dimensione è stata impostata (mai avuto un errore), e ora questo. Come fai a capire tutto questo?

Quanto era disponibile, tanto abbiamo ottenuto. Ecco come capirlo. Controlla la profondità della storia disponibile. Prima di richiedere i dati, assicuratevi che siano disponibili. Che build hai? Recentemente è stato corretto un bug con la copia dei timeframe mensili, potrebbe essere questo.
 

Bild 489, non credo che si tratti di accessibilità (perché la seconda opzione funziona adeguatamente).

Quindi c'è qualcosa che non va:

Alert("Richiesta = ", Bars("GBPUSD", PERIOD_MN1, datetime("2009.01.01 00:00:00"), datetime("2008.10.01 00:00:00")) );
datetime timeArray[2];
int ckopirovano = CopyTime("GBPUSD", PERIOD_MN1, datetime("2009.01.01 00:00:00"), datetime("2008.10.01 00:00:00"),timeArray);
Alert("Copiato = ", ckopirovano);

Resultat :

Query = 4

Copia = 1 (dovrebbero essercene due?)

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Периоды графиков
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Периоды графиков
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы графиков / Периоды графиков - Документация по MQL5
 

Im_hungry:

Sono d'accordo, ma non necessariamente su tutti gli strumenti, solo uno, perché il tempo è ovunque

lo stesso ...min 00 sec, e il modo più semplice per rilevare una nuova barra: (l'ho fatto io stesso, è molto semplice ed efficace)

È obbligatorio, esattamente su tutti.

Un'eccezione - se l'EA analizza solo le barre formate, puoi semplicemente aspettare il tempo di una nuova barra (:00) e per diversi strumenti analizzare la 0a o la 1a barra, a seconda che ci sia una barra con un nuovo tempo (se c'è - analizziamo la vecchia barra con l'indice 1, e se non c'è un indice - la barra formata avrà l'indice 0, fino a quando la nuova barra appare).

 

È una buona idea creare un oggetto grafico con un nome che è già occupato (per spostare l'intero oggetto con una funzione)?

Se si sposta una coordinata alla volta con ObjecMove, una coordinata può muoversi e un'altra no.

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Типы событий графика
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Типы событий графика
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы графиков / Типы событий графика - Документация по MQL5
 
220Volt:

Per favore ditemi, quanto è corretto creare un oggetto grafico con un nome già occupato (per spostare l'intero oggetto con una funzione)?

È abbastanza corretto, non ci sono conseguenze negative in questo caso.