Erreurs, bugs, questions - page 2178

 
Nikolai Semko:

Une pause très étrange de 22 secondes. Qui peut l'expliquer ?

résultat :

Peut-être un téléchargement de l'histoire d'une autre époque ?
 
Artyom Trishkin:
Peut-être qu'il charge l'historique d'une autre période ?

Oui, cela prend beaucoup de temps à charger à partir de l'actuel. J'ai 22 symboles à charger sur une profondeur de seulement 250 barres, mais le terminal mt5 le fait comme si quelqu'un se rendait au DC pour obtenir des devis. Les mêmes actions se produisent instantanément dans mt4.

 
Artyom Trishkin:
Peut-être que l'historique est chargé à partir d'une autre période ?

Non, cela n'a rien à voir avec le chargement.

Si je ne prends pas une barre de départ zéro, mais, disons, 50 barres, alors tout est OK. Instantanément.

if(CopyTime(_Symbol,PERIOD_H4,50,1,Arr)<0) Print("Ошибка");

Et si je monte jusqu'à 30 bars inclus, il se fige. Après ça, ça ne l'est plus.

C'EST DÉFINITIVEMENT UN BUG !

 
Nikolai Semko:

Non, cela n'a rien à voir avec le chargement.

Si vous ne prenez pas une barre de départ à zéro mais disons 50 bars, alors tout est OK. Instantanément.

Et si je monte jusqu'à 30 bars inclus, il se fige. Après ça, ça ne l'est plus.

C'EST DÉFINITIVEMENT UN BUG !

C'est la première fois que je viens sur ce fil et il est là !

comment je travaille ?

Comment expliquer 30 bar au client ?

Je vais vérifier moi-même !
 
Nikolai Semko:

Non, cela n'a rien à voir avec le chargement.

Si je prends non pas la barre de départ zéro, mais disons 50 barres, alors tout est OK. Instantané.

Et si je monte jusqu'à 30 bars inclus, il se fige. Après ça, ça ne l'est plus.

C'EST DÉFINITIVEMENT UN BUG !

Je prends de "0" à "250" - j'ai noté le résultat.

 
Vitaly Muzichenko:

Je prends de '0' à '250' - J'ai écrit le résultat.

MT5 ?

 
Nikolai Semko:

MT5 ?

j'ai vérifié ! le code est de Nikolai Semko, je pensais que le script était complet, puis bam - la deuxième ligne est apparue

00:09:39.980 Test (EURUSD,M15) 1 2018.03.30 20:00 Heure actuelle = 2018.03.30 23:59

00:09:57.313 Test (EURUSD,M15) 2 CurrentTime = 2018.03.30 23:59

 
Nikolai Semko:

MT5 ?

Forum sur le trading, les systèmes de trading automatisé et les tests de stratégies de trading

Bugs, bugs, questions

Vitaly Muzichenko, 2018.03.30 22:50

Oui, cela prend beaucoup de temps à charger à partir de l'actuel. J'ai 22 symboles à charger avec seulement 250 barres de profondeur, le terminal mt5 le fait comme si quelqu'un se rendait aux DCs pour obtenir des cotations. Dans mt4 les mêmes actions se produisent instantanément.


 
Vitaly Muzichenko:

Je prends de '0' à '250' - j'ai écrit le résultat.

En fait, ça pourrait être un bug flottant. Parce qu'au début, je l'ai observé sur une autre combinaison d'horizons temporels, mais il a ensuite disparu sur ces derniers. Je l'ai remarqué dans cette combinaison.

Il est possible que cela dépende encore non seulement du TF, mais aussi du fuseau horaire.

 
Nikolai Semko:

Non, cela n'a rien à voir avec le chargement.

Si vous ne prenez pas une barre de départ zéro, mais disons 50 barres, alors tout est OK. Instantané.

Et si je monte jusqu'à 30 bars inclus, il se fige. Après ça, ça ne l'est plus.

C'EST DÉFINITIVEMENT UN BUG !

Essaie celle-là :

//+------------------------------------------------------------------+
//| Возвращает смещение бара по времени                              |
//| https://www.mql5.com/ru/code/1864&nbsp;                               |
//+------------------------------------------------------------------+
int iBarShift(const string symbol_name,const ENUM_TIMEFRAMES timeframe,const datetime time,bool exact=false)
  {
   datetime last_bar;
   if(!SeriesInfoInteger(symbol_name,timeframe,SERIES_LASTBAR_DATE,last_bar))
     {
      datetime array[1];
      if(CopyTime(symbol_name,timeframe,0,1,array)==1)
         last_bar=array[0];
      else
         return WRONG_VALUE;
     }
   if(time>last_bar)
      return(0);
   int shift=Bars(symbol_name,timeframe,time,last_bar);
   datetime array[1];
   if(CopyTime(symbol_name,timeframe,time,1,array)==1)
      return(array[0]==time ? shift-1 : exact && time>array[0]+PeriodSeconds(timeframe) ? WRONG_VALUE : shift);
   return WRONG_VALUE;
  }
//+------------------------------------------------------------------+