Caractéristiques du langage mql5, subtilités et techniques - page 80

 
Vitaly Muzichenko:

Je l'ai fait, ça n'a pas montré de conneries. Ce qui est déroutant c'est que le décalage devrait probablement être -720

P.S. Encore une fois, je sais que le décalage +2 heures - écrit sur le site, mais le robot ne le sait pas.

Il n'est pas nécessaire de croire les sites web. La durée réelle du poste est de 3 heures.

Le résultat demandé : "Find the current time TimeServer()" Je n'ai pas bien compris, peut-être que je fais quelque chose de mal.

// https://www.mql5.com/ru/docs/dateandtime/timetradeserver
datetime TimeTradeServer()
{
  return(TimeGMT() - TimeServerGMTOffset());
}
 
fxsaber:

Vous n'êtes pas obligé de croire les sites web. La durée réelle du poste est de 3 heures.

Vérifié sur les 4 bornes, c'est correct.


Merci pour votre temps !

 
 

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

Bibliothèques : Symbole

fxsaber, 2018.04.06 08:20

Si vous devez modifier certaines propriétés d'un symbole personnalisé, dans certains cas, cela doit être fait AVANT d'importer des citations.

Je recommande donc vivement de définir d'abord toutes les propriétés du symbole, puis de procéder à l'importation.

Par exemple, si vous voulez définirSYMBOL_TRADE_TICK_VALUE et SYMBOL_TRADE_TICK_SIZE, vous devez le faire avant d'importer les ticks/bars.

 
// Копирование всех баров без обращения к торговому серверу
CopyRates(Symb, PERIOD_M1, 0, (int)SeriesInfoInteger(Symb, PERIOD_M1, SERIES_BARS_COUNT), Rates);
 
fxsaber:

Les grands tableaux sont agréables, mais n'oubliez pas que la taille compte.

 
Nikolai Semko:

Les grandes matrices sont certainement une bonne chose, mais il faut garder cela à l'esprit.

Cela n'a rien à voir avec cela.

 
fxsaber:

Cela n'a rien à voir avec ça.

Qui sait...
Après tout, un élément de MqlRates pèse 60 octets.

Bien sûr, si vous n'utilisez qu'un seul tableau de 10000 éléments, tout va bien.

Mais si vous avez un tas de tableaux de ce type composés de caractères synthétiques, et que chacun d'entre eux a une taille de 100 000, vous serez confronté à une forte baisse (de plus d'un ordre de grandeur) de la vitesse d'accès aux éléments du tableau.

Il n'y a pas de mal à garder un œil sur l'optimisation de la taille des tableaux, et c'est un bon style. C'est tout. J'ai seulement dit que c'était quelque chose à garder à l'esprit.

 
Nikolai Semko:

Comment savez-vous...
Un élément MqlRates pèse 60 octets.

Bien sûr, si vous n'utilisez qu'un seul tableau de 10000 éléments, tout va bien.

Mais si vous avez un tas de tableaux de ce type constitués de caractères synthétiques, et que chacun d'entre eux a une taille de 100 000, attendez-vous à une diminution radicale (plus d'un ordre de grandeur) de la vitesse d'exécution.

Cela ne fait pas de mal de garder un œil sur l'optimisation de la taille des tableaux, et c'est un bon style. C'est tout. J'ai seulement dit que vous devriez le garder à l'esprit.

L'exemple ne fait aucunement référence à la taille des tableaux. Il ne s'agissait pas d'appeler la demande d'historique depuis le serveur de commerce et donc d'obtenir les barres déjà présentes dans le Terminal le plus rapidement possible.

 
fxsaber:

L'exemple ne fait en aucun cas référence à la taille des tableaux. Il s'agissait de ne pas appeler une requête d'historique du serveur de trading et, par conséquent, de récupérer le plus rapidement possible les barres qui sont déjà dans le Terminal.

Oui, je ne sais pas de quoi il s'agissait.

Je viens de voir votre ligne de code, qui va probablement créer un tableau plus grand que la taille du cache du CPU.

Raison: