Erreurs, bugs, questions - page 2153

 
Andrii Djola:

Comment puis-je savoir à quelle heure les transactions de symboles forex se terminent ?

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

Caractéristiques du langage mql5, conseils et astuces

fxsaber, 2017.02.25 16:39

ENUM_DAY_OF_WEEK GetDayOfWeek( const datetime time )
{
  MqlDateTime sTime = {0};

  ::TimeToStruct(time, sTime);

  return((ENUM_DAY_OF_WEEK)sTime.day_of_week);
}

// true - находимся в торговой сессии
bool SessionTrade( const string Symb )
{
  datetime TimeNow = ::TimeTradeServer();

  const ENUM_DAY_OF_WEEK DayOfWeek = GetDayOfWeek(TimeNow);

  TimeNow %= 24 * 60 * 60;

  bool Res = false;
  datetime From, To;

  for (int i = 0; (!Res) && ::SymbolInfoSessionTrade(Symb, DayOfWeek, i, From, To); i++)
    Res = ((From <= TimeNow) && (TimeNow < To));

  return(Res);
}

// Возвращает true, если символ торгуемый. Иначе - false.
bool SymbolTrade( const string Symb )
{
  MqlTick Tick;

  return(::SymbolInfoTick(Symb, Tick) ? ((Tick.bid != 0) && (Tick.ask != 0) && SessionTrade(Symb) /* &&
         ((ENUM_SYMBOL_TRADE_MODE)::SymbolInfoInteger(Symb, SYMBOL_TRADE_MODE) == SYMBOL_TRADE_MODE_FULL) */
) : false);
}

Utilisation de

if (OrderCheck(Request, CheckResult) && SymbolTrade(Request.symbol))
  OrderSend(Request, Result);
 
fxsaber:

Un bug très désagréable avec les personnages personnalisés. L'historique des tics des personnages personnalisés peut disparaître complètement.

Il y a eu plusieurs dizaines d'heures d'Optimize sur les tics réels du personnage personnalisé. Personne ne s'est approché de l'ordinateur et n'a rien fait.

Après 15 heures d'optimisation, je suis venu voir les résultats. Il n'est pas possible d'utiliser l'option de menu "Run Single Test" à n'importe quel moment - le testeur commence et se termine immédiatement.

Le journal est

2018.03.03 15:48:04.696 Tester  file cache used 3010 times
2018.03.03 15:48:04.698 Tester  optimization finished, total passes 352000
2018.03.03 15:48:04.708 Statistics      optimization done in 41 hours 32 minutes 37 seconds
2018.03.03 15:48:04.708 Statistics      local 348990 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
2018.03.03 15:48:04.708 Core 1  connection closed
2018.03.03 15:48:04.709 Core 2  connection closed
2018.03.03 15:48:04.710 Core 3  connection closed
2018.03.03 15:48:04.710 Core 4  connection closed
2018.03.03 15:48:04.711 Core 5  connection closed
2018.03.03 15:48:04.711 Core 6  connection closed
2018.03.03 15:48:04.712 Core 7  connection closed
2018.03.03 15:48:04.714 Core 8  connection closed
2018.03.03 15:48:04.716 Tester  348990 records written to file cache C:\Program Files\Alpari Limited MT5\tester\cache\Test.TESTER_EURUSD.M1.4.xml
2018.03.03 15:48:04.722 Tester  Вы можете ускорить оптимизацию в сотни раз с помощью MQL5 Cloud Network
2018.03.04 08:26:30.933 Tester  single pass 297022 started
2018.03.04 08:26:31.000 Tester  TESTER_EURUSD: history data begins from 2018.02.06 00:00
2018.03.04 08:27:36.409 Tester  single pass 297022 started
2018.03.04 08:27:36.491 Tester  TESTER_EURUSD: history data begins from 2018.02.06 00:00
2018.03.04 14:05:10.940 Tester  single pass 297022 started
2018.03.04 14:05:11.007 Tester  TESTER_EURUSD: history data begins from 2018.02.06 00:00

J'ai découvert que les tics de tous les personnages personnalisés ont été supprimés.

 
Après l'optimisation, ce fichier texte
2018.03.03 15:48:04.716 Tester  348990 records written to file cache C:\Program Files\Alpari Limited MT5\tester\cache\Test.TESTER_EURUSD.M1.4.xml
occupe 1 Go. 7z le compresse par un facteur de 100. Pourquoi une façon aussi inefficace de stocker le cache ?
 

Si vous utilisez l'exportation XML

350 000 passages sont écrits dans un fichier XML de 320 Mo. Pour une raison quelconque, cela ouvre automatiquement le fichier XML. J'ai le Bloc-notes qui essaie de le faire et qui se bloque lors de la lecture de ces monstres. Veuillez avertir à l'avance de la taille approximative du fichier lorsque vous sélectionnez le menu XML et des conséquences possibles lors de son ouverture ultérieure.

 

Erreur lors de la compilation

aucun fragment de code ne peut encore être sélectionné

 
fxsaber:

Si vous utilisez l'exportation XML

350 000 passages sont écrits dans un fichier XML de 320 Mo. Pour une raison quelconque, cela ouvre automatiquement le fichier XML. J'ai le Bloc-notes qui essaie de le faire et qui se bloque lors de la lecture de ces monstres. S'il vous plaît, lorsque vous sélectionnez le menu XML, dites à l'avance quelle sera la taille approximative du fichier et quelles seront les conséquences de son ouverture ultérieure.

Je suis d'accord, mais il n'est pas nécessaire d'avertir, il est nécessaire de désactiver l'ouverture du fichier, et l'utilisateur décidera comment l'ouvrir.

 

Erreur lors de la compilation

template<typename T>
class A { T t; };
void OnStart() { A<void *> a; } //Error: '<' - cannot to apply function template

Autrement :

template<typename T>
class A { T t; };
void OnStart() { A<void *> a; }
class B {};

C'est bon. Quelle différence cela fait-il ?

 

Erreur de compilation

template<typename T>
struct A { T    *t; };
struct B { void *b; };
void OnStart()
{
        A<void> a; //Error: 'void' - expression of 'void' type is illegal
        B       b; //номально
} 
 
fxsaber:

Pendant plusieurs dizaines d'heures, il y a eu une optimisation par tics réels du symbole personnalisé. Personne ne s'est approché de l'ordinateur et n'a rien fait.

Après 15 heures d'optimisation, je suis venu voir les résultats. Il n'est pas possible d'utiliser l'élément de menu "Run Single Test" sur n'importe quel passage - le testeur commence et se termine immédiatement.

Le journal est

J'ai constaté que les tics de tous les symboles personnalisés ont été supprimés.

Reproductible. Il faut lancer Tester/Optimiser. Attendez quelques heures après la fin de l'opération. J'ai exactement 10 heures plus tard, tous les tics des personnages personnalisés sont supprimés.

 

Qu'est-ce que c'est ?


Raison: