Erreurs, bugs, questions - page 1812

 
Sergey Kudryavtsev:
Le problème se situe dans la fonction PackMagic. variables externes int frac_length=2 ; int Pow10frac_length=100 ;.
Vous n'avez pas fourni d'exemple de l'erreur. À quelles valeurs d'arguments cette fonction renvoie-t-elle une valeur erronée (laquelle ?) et quel devrait être le résultat correct ?
 
Sergei Vladimirov:
Vous n'avez pas donné d'exemple d'erreur. À quelles valeurs des arguments cette fonction renvoie-t-elle une valeur erronée (laquelle ?) et quel devrait être le résultat correct ?

Par exemple :

Id1_class=1, bs=0, type=0, frac=99, ll=1, frac_length=2, Pow10frac_length=100, return a retourné 11299.

Il devrait être 1001199. En Expert, fonctions en classe, compte démo en Open.

Il n'est pas certain que 11299 sera toujours renvoyé en cas d'erreur.

 
Non reproductible. Avec ces paramètres, la fonction renvoie systématiquement 1001199. Il n'y a pas non plus d'erreurs dans la fonction elle-même. Donc, il n'y a rien à dire. Il est fort probable que le problème de votre Expert Advisor ne se situe pas dans cette fonction, mais ailleurs. Les valeurs des paramètres passés à la fonction sont différentes de celles que vous attendez. En conséquence, le résultat est différent de celui attendu.
 

Il est en train de jouer. J'ai écrit votre code dans le script, il a donné une valeur correcte (1001199) lorsqu'il a été exécuté en mode débogage, mais si je compile la version et l'exécute à partir de l'arbre dans MT5, il a donné 11199 régulièrement. J'ai pu localiser le problème, voici le code de reproduction :

int frac_length = 2;

void OnStart()
{
        
        ulong i = 1;

        ulong a1 = Pow10(frac_length + i);
        ulong a2 = Pow10(frac_length + i + 1);
        ulong a3 = Pow10(frac_length + i + 2);
        ulong a4 = Pow10(frac_length + i + 3);
        
        Print(IntegerToString(a1), " ", IntegerToString(a2), " ", IntegerToString(a3), " ", IntegerToString(a4));

}  

ulong Pow10(const ulong power)
{
        ulong r = 10;
        
        if (power == 0)
                return 1;
                
        for (ulong i = 2; i <= power; i++)
                r = r*10;
                
        return r;
}

En mode débogage, il fonctionne correctement. Mais au début de la sortie du navigateur dans MT5, soit il produit un non-sens ("1000 10000 100 100 100" au lieu de "1000 10000 100000 1000000"), soit MT5 se bloque avec une charge complète d'un des cœurs du processeur.

Il y a deux façons de le réparer. De l'une ou l'autre de ces façons :

        ulong a1 = Pow10(frac_length + i);
        ulong a2 = Pow10(frac_length + i + (ulong)1);
        ulong a3 = Pow10(frac_length + i + (ulong)2);
        ulong a4 = Pow10(frac_length + i + (ulong)3);

Soit en déplaçant la variable globale frac_length dans la fonction Start().

Il s'agit en effet d'un bug du compilateur, écrivez au Service Desk.

 
MT4 a commencé à peser 1,8 gigaoctet (RAM). Il a mangé tous les UPU, le deuxième terminal ne peut pas être allumé correctement. Pouvez-vous me dire comment "nettoyer" la RAM de MT ?
 

Lorsque vous passez la souris sur un avis personnel qui vient d'être publié pour un produit du marché, plusieurs suggestions/actions apparaissent. Si vous sélectionnez "modifier" et changez la révision, une erreur "Pas de droits" apparaîtra après avoir cliqué sur "Mettre à jour".

La demande au SR ne peut être créée - Uneerreur s'est produite.

 
fxsaber:
Lorsque vous passez la souris sur un avis personnel qui vient d'être publié pour un produit du marché, plusieurs suggestions/actions apparaissent. Si vous sélectionnez "modifier" et changez la révision, l'erreur "Aucun droit" apparaît après avoir cliqué sur "Mettre à jour".

Veuillez préciser le nom et la version de votre navigateur.
Sous chrome 56.0.2924.87, le vol se passe bien, avec et sans rafraîchissement manuel de la page d'examen.

 
fxsaber:

La demande au SR ne peut être créée - Uneerreur s'est produite.

Je vois, vous devez effacer les cookies pour www.mql5.com.
Apparemment, il y a eu une mise à jour des principes de vérification des jetons anti-CSRF.

En chrome, vous pouvez le faire comme ceci :
Appuyez sur F12 lorsque vous êtes sur www.mql5.com => dans le tableau de bord, allez dans Application => Cookies => cliquez sur les cookies => Effacer tous les...
 
Sergey Dzyublik:

Veuillez préciser le nom et la version de votre navigateur.
Sous Chrome 56.0.2924.87, le vol se déroule sans problème, avec et sans rafraîchissement manuel de la page d'examen.

Portable ChromeVersion 45.0.2454.85 + Frigate.
 
Sergey Dzyublik:
Vous devez effacer les cookies pour www.mql5.com.
Pouvez-vous me dire comment ?