Erreurs, bugs, questions - page 2477

 

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

Bugs, bugs, questions

Sergey Dzyublik, 2019.05.23 13:52


Comment savoir si je dois attendre leur correction ?

(non corrigé dans MT5(build 2069))"Bug avec la file d'attente des journaux dans le terminal MT, supposément, lorsque le nombre de messages dans la file d'attente atteint la limite, la réallocation de la mémoire avec recopie se produit, mais un message 395e est perdu".
(corrigé dans MT5(build 2069))"Erreur de compilation lors du passage du paramètre (void*)(NULL) à la fonction template".
(corrigé dans MT5(build 2059))"Strategy Tester : 2 passes prévues, mais en pratique un nombre infini de passes > 900pcs dû à l'erreur "OnInit critical error"".
(non corrigé dans MT5(build 2069))"Valeur invalide du champ de taille du tableau dans l'opérateur d'affectation par défaut pour les structures avec tableaux dynamiques".
(non corrigé dans MT5(build 2069))"Le compilateur ne voit pas le constructeur de copie de classe par défaut lorsqu'il retourne un objet de classe par valeur depuis une fonction".
(corrigé dans MT5(build 2059))"Le compilateur ne voit pas le type cast "in itself" pour les classes de motifs et les structures "complexes"".
(non corrigé dans MT5(build 2069))"Lors du travail avec typedef, l'utilisation d'une fonction template avec une spécialisation explicite ne génère pas de code pour cette fonction template".
(non corrigé dans MT5(build 2069))"Erreur de compilation lors de la réutilisation de la même signature de fonction dans un typedef".
(non corrigé dans MT5(build 2069))"Une partie importante des fonctions de traitement des chaînes de caractères ne fonctionne pas avec des caractères NULL dans une chaîne de caractères (par exemple : ShortArrayToString, StringInit, StringFill)".
(non corrigé dans MT5(build 2069))"La fonction StringSetLength ne fonctionne que pour "couper" la longueur de la chaîne, pas pour l'augmenter.
(corrigé dans MT5(build 2057))"Strategy Tester : 750 processus "metatester64.exe" sont en cours d'exécution".
"Forum www.mql5.com, lors de la modification d'un message avec une image, l'image précédente n'est pas remplacée par la nouvelle".


Suggestions :
"Autoriser l'utilisateur à forcer la génération/suppression de code pour l'opérateur d'affectation par défaut (constructeur de copie)".
"Permettre à ArrayCopy de copier des classes et des structures "complexes", de façon similaire à la façon dont les structures fournissent une fonctionnalité de copie profonde pour tout type d'objet".
# Fournir une fonctionnalité permettant à l'utilisateur de lire/définir la valeur de capacité lorsqu'il travaille avec des tableaux dynamiques.
"Changements pour améliorer les infographies du service Signaux"

 
Ces constantes

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

Services. Vous travaillez déjà ?

fxsaber, 2019.06.07 06:37

#include <WinAPI\fileapi.mqh>
#include <WinAPI\handleapi.mqh>

#define  GENERIC_WRITE                    0x40000000
#define  CREATE_ALWAYS                    2
#define  FILE_ATTRIBUTE_NORMAL            0x00000080
#define  FILE_FLAG_OVERLAPPED             0x40000000

bool FileIsInvalid_WinAPI( const string FileName )
{
  const HANDLE hFile = CreateFileW(FileName, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, NULL);

Et beaucoup d'autres sont absents de SB.

 

Une fois encore, je vous demande de désactiver les ordres à cours limité et de prendre des slippages dans le testeur sur des symboles personnalisés sur des ticks réels.

Maintenant, tous ceux qui sont pilotés dans le testeur de stratégie par des ticks réels, où des ordres limites ou des ordres à prendre sont appliqués, appartiennent à l'une des trois catégories suivantes

  • Ne croyez pas qu'ils sont trompés par le testeur.
  • Les pseudo-physiciens.
  • fxsaber.

Nous demandons instamment que cette pratique cesse, au moins pour les symboles personnalisés. Cela est nécessaire non seulement pour que le testeur ne mente pas, mais aussi pour pouvoir travailler plus rapidement.

Ну а как еще обратить внимание на эту проблему?

 

La fonction CopyTicks ne fonctionne pas pour demander l'historique des ticks à partir d'une date donnée. Par conséquent, soit un grand nombre de ticks doit être demandé, soit l'historique des ticks requis ne peut être obtenu en utilisant le code.

Le terminal MT5 se bloque en permanence si l'espace disque est épuisé lors de la demande d'une grande quantité d'historique de ticks. Une panne du terminal peut entraîner la suppression de tous les paramètres du compte.

 
Gelium:

La fonction CopyTicks ne fonctionne pas pour demander l'historique des ticks à partir d'une date donnée. Par conséquent, soit un grand nombre de ticks doit être demandé, soit l'historique des ticks ne peut être obtenu avec le code.

Le terminal MT5 se bloque en permanence si les demandes d'historique de ticks volumineux manquent d'espace disque. Une panne du terminal peut entraîner l'échec de tous les paramètres du compte.

Les millisecondes sont dans l'entrée, pas les secondes.

 
fxsaber:

Des millisecondes dans les entrées, pas des secondes.

Lisez l'aide :

de

[Date à partir de laquelle les ticks sont demandés. Spécifié en millisecondes à partir du 01.01.1970. Si le paramètre from=0, le dernier compte de ticks est donné .

Voici un test de code simple :

int tm_ms = 10000000 ;
int reçu=CopyTicks(_Symbol,tick_array,COPY_TICKS_ALL, tm_ms) ;

Cette requête renvoie toujours 2000 ticks avec tout changement du paramètre tm_ms. Est-ce que c'est censé être comme ça ou est-ce que je fais quelque chose de mal ?

 
Gelium:

Lisez l'aide :

de

[Date à partir de laquelle les ticks sont demandés. Spécifié en millisecondes à partir du 01.01.1970. Si from=0, le dernier compte de ticks est donné .

Plus loin se trouve un test de code simple :

int tm_ms = 10000000 ;
int reçu=CopyTicks(_Symbol,tick_array,COPY_TICKS_ALL, tm_ms) ;

Cette requête renvoie toujours 2000 ticks avec tout changement du paramètre tm_ms. Est-ce que c'est censé être comme ça ou est-ce que je fais quelque chose de mal ?

long tm_ms = (long)D'2019.06.01' * 1000;
définir le compte correct pour qu'il ne soit pas de 2000.
 

fxsaber:

long tm_ms = (long)D'2019.06.01' * 1000;


Réglez le bon compte pour que ce ne soit pas 2000.

Merci, ça marche ! Mon erreur avec l'int. :)

 
Chaque compilation donne une valeur différente en Warning
void OnStart()
{
  int i = 0;

  {
    int i = 0; // declaration of 'i' hides local declaration at line 482781488
  }
}
 
fxsaber:
Ces constantes

et bien d'autres sont absents du SB.

Mieux vaut être absent que dans l'état actuel des choses :

Par exemple, FILE_SHARE_READ dans MQL = 0x80,

et dans WinAPI = 0x01

Raison: