Erreurs, bugs, questions - page 3014

 
Voici la question : Comment puis-je créer un symbole personnalisé, qui est une copie d'une paire croisée (par exemple, CADJPY), mais avec des ticks modifiés, mais de telle manière que le testeur de stratégie n'utilise pas les paires de base USDCAD, USDJPY lors de son utilisation. Les positions doivent être correctement comptabilisées pour les profits et les pertes.
 
Maksim Emeliashin:
Voici la question : comment puis-je créer un symbole personnalisé, qui est une copie d'une certaine paire croisée (par exemple, CADJPY), mais avec des ticks modifiés, mais de telle manière que le testeur de stratégie n'utilise pas les paires de base USDCAD et USDJPY. Les positions doivent être correctement comptabilisées pour les profits et les pertes.

Mode basé sur le pip.

 
fxsaber:

Mode basé sur le pip.

Oh en effet, il n'utilise pas de paires de bases dans ce mode. Eh, je vais devoir réécrire tout le code où je fais compter les statistiques de profit actuelles pour les fixer.

 

J'ai 12 cœurs, 6 cœurs physiques avec hyperthreading. Je ne veux garder que ceux qui sont physiques, comment savoir lesquels garder et lesquels désactiver ?

 
Alain Verleyen:

J'ai 12 cœurs, 6 cœurs physiques avec hyperthreading. Je ne veux garder que ceux qui sont physiques, comment savoir lesquels garder et lesquels désactiver ?

Désactivez juste la moitié d'entre eux
 
Aliaksandr Hryshyn:
Il suffit d'en éteindre la moitié.

Oui. C'est ça.

 
Aliaksandr Hryshyn :
Désactivez juste la moitié d'entre eux.
Slava:

Oui. C'est ça.

Merci.

Terminé, j'ai 6 cœurs physiques, 12 agents, les 6 derniers désactivés.


Mais tous les cœurs sont encore utilisés (bien que moins qu'avec 12 agents). Quelle est l'explication ?


 
Alain Verleyen:

J'ai 12 cœurs, 6 cœurs physiques avec hyperthreading. Je ne veux garder que ceux qui sont physiques, comment savoir lesquels garder et lesquels désactiver ?

Les hypercores ont un sens si les tests mettent la plupart des citations dans le cache. Disons que si nous faisons des tests sur des ticks basés sur des ticks réels, il n'y a aucune utilité aux hypercores, la vitesse ne change pas. Cependant, pour les tests sur OHLC 1M sur un ou deux ans - la vitesse de 12 hypercores est nettement supérieure à celle de six physiques.

 

Qui peut me dire si c'est quelque chose que j'ai mal fait ou un bug de MQL5 ?

Code

/*******************Expert initialization function*******************/
int OnInit()
 {
  MqlDateTime mqlTime;
  datetime tgmt = TimeGMT();
  TimeToStruct(tgmt, mqlTime);
  return(INIT_SUCCEEDED);
 }/******************************************************************/

La structure est vide même si la variable tgmt contient l'heure courante normale...

Code

/*******************Expert initialization function*******************/
int OnInit()
 {
  MqlDateTime mqlTime;
  datetime tgmt = TimeGMT(mqlTime);
  //TimeToStruct(tgmt, mqlTime);
  return(INIT_SUCCEEDED);
 }/******************************************************************/

La structure contient des déchets malgré le fait que la variable tgmt contient l'heure courante normale...

Sur ce matériel

2021.05.13 09:42:03.384 Terminal        MetaTrader 5 x64 build 2899 started for MetaQuotes Software Corp.
2021.05.13 09:42:03.384 Terminal        Windows 7 Service Pack 1 build 7601, AMD FX-4170 Quad-Core, 8 / 11 Gb memory, 56 / 465 Gb disk, IE 11, Admin, GMT+3

Dans le gestionnaire OnTick() aussi


 

J'ai un

2021.05.13 15:25:42.599 Terminal        MetaTrader 5 x64 build 2903 started for MetaQuotes Software Corp.
2021.05.13 15:25:42.602 Terminal        Windows 10 build 19042, Intel Core i7-9750 H  @ 2.60 GHz, 26 / 31 Gb memory, 823 / 947 Gb disk, IE 11, UAC, GMT+2
2021.05.13 15:25:42.602 Terminal        C:\Users\barab\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075

code

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   MqlDateTime STime;
   datetime time_gmt = TimeGMT();
   TimeToStruct(time_gmt,STime);
//---
   Print("time_gmt: ",TimeToString(time_gmt,TIME_DATE|TIME_SECONDS));
   datetime struct_to_time=StructToTime(STime);
   Print("struct_to_time: ",TimeToString(struct_to_time,TIME_DATE|TIME_SECONDS));
//---
   return(INIT_SUCCEEDED);
  }

a fonctionné correctement :