Erreurs, bugs, questions - page 2650

 
fxsaber:

Pourriez-vous vous pencher sur ce problème également ?


Le modérateur a été mis à jour à la main à ma demande. Mais je ne peux pas demander à chaque fois. La machine ne passe pas.

Corrigé.

 
Anton:

Corrigé.

Je vois, merci.

 
Andrey Khatimlianskii:

Sur les tics de tous les outils utilisés.


Voici mon code pour vérifier les nouveaux ticks :

void OnTimer()
  {
//+------------------------------------------------------------------+
// Перебор всех символов, которые указаны в внешних переменных
// Recursion of all symbols that are specified in external variables
//+------------------------------------------------------------------+
   string SymbolToTick="";
   for(int si=0; si<12; si++)
     {
      if(si==0)
         SymbolToTick=PAIR1;
      if(si==1)
         SymbolToTick=PAIR2;
      if(si==2)
         SymbolToTick=PAIR3;
      if(si==3)
         SymbolToTick=PAIR4;
      if(si==4)
         SymbolToTick=PAIR5;
      if(si==5)
         SymbolToTick=PAIR6;
      if(si==6)
         SymbolToTick=PAIR7;
      if(si==7)
         SymbolToTick=PAIR8;
      if(si==8)
         SymbolToTick=PAIR9;
      if(si==9)
         SymbolToTick=PAIR10;
      if(si==10)
         SymbolToTick=PAIR11;
      if(si==11)
         SymbolToTick=PAIR12;
     
      if(SymbolToTick=="" && si==0)
        {
         SymbolToTick=Symbol();
        }
      if(SymbolToTick=="")
         continue;
      //|#############################################################################################+
      // проверяем текущий Бид Аск
      MqlTick last_tickSymbol;
      SymbolInfoTick(SymbolToTick,last_tickSymbol);
      double currentBid=last_tickSymbol.bid;
      double currentAsk=last_tickSymbol.ask;

      //|#############################################################################################+
      // Если тик изменился, запускаем тик этого символа
      if(currentBid!=LastBid[si] || currentAsk!=LastAsk[si])
        {
         // Запускаем исполнение тика
         OnTickSymbol(si,SymbolToTick);
         LastBid[si]=currentBid;
         LastAsk[si]=currentAsk;
         TicksAllNumbers[si]++;
        }
      //|#############################################################################################+
     }
  }


Création d'un tableau pour les tests avec le nombre de tiques comptées.


Test de deux paires EURUSD GBPUSD

Exécution d'un test sur GBPUSD :

2020.02.18 14:01:03.802	Core 1	2020.02.16 23:59:58    TICKS EURUSD TicksAllNumbers=621120
2020.02.18 14:01:03.802	Core 1	2020.02.16 23:59:58    TICKS GBPUSD TicksAllNumbers=1143002


Exécution d'un test sur EURUSD :

2020.02.18 14:01:37.129 Core 1  2020.02.16 23:59:58    TICKS EURUSD TicksAllNumbers=621120
2020.02.18 14:01:37.129 Core 1  2020.02.16 23:59:58    TICKS GBPUSD TicksAllNumbers=1143002


Les tiques semblent être les mêmes. ... ... ... donc j'ai dû manquer quelque chose quelque part.....

Merci, je vais continuer à creuser.



DÉCISION : _Digit était dans le code, j'ai dû l'ajouter à l'environnement..... sans regarder.

pas besoin de commentaire :-)

 
Anton:

Déplacez le fichier mql5pack-ico.zip dans l'archive vers le dossier.

Déplacé ce fichier dans le dossier MQL5/Scripts. Ça n'a pas aidé. Je l'ai ensuite déplacé dans le dossier MQL5/Files, ce qui n'a pas aidé non plus.

Je ne comprends probablement pas de quoi il s'agit.

 
Stanislav Korotky:

Je l'ai déplacé dans le dossier MQL5/Scripts. Ça n'a pas aidé.

Fixe.

 

Konstantin Gruzdev

Vous êtes un auteur intéressant, le plus intéressant ici. J'ai posé une question à Vladislav, je suis aussi intéressé par la multidevise, car il y a des nuances sur la nouvelle barre et sur la non-applicabilité de toutes les barres nécessaires.

 
le problème des multidevises est toujours en suspens, MQ ne veut pas donner de signaux pour une raison quelconque, je préfère que les programmeurs se remplissent de problèmes de timing et d'espionnage. cela ne devrait pas durer longtemps.
 
Vladislav Andruschenko:
Grâce à la minuterie, oui,
Plus susceptible d'augmenter la fréquence de la minuterie ......
Il manque un certain nombre de tics. C'est pourquoi il y a une différence dans les résultats. La différence est très faible. Mais il suffit de sauter un tic et tout est chamboulé.

Il n'est pas certain que la fréquence améliore les résultats, mais elle ralentit certainement la vitesse des tests. Les événements de chronométrage ne sont pas parfaits, il y aura presque toujours une erreur. Même sur une minuterie vide, vous pouvez voir l'erreur. S'il y a des calculs dans la fonction de minuterie, la marge d'erreur est susceptible d'être plus élevée. Charger l'ordinateur de tâches tierces peut également affecter le minuteur. Il est possible que tous les signaux d'ouverture/fermeture/modification ne soient pas émis au même moment et sur les mêmes ticks.

Il convient de mentionner que j'ai fait toutes ces observations il y a quelques années sur un outil lourd multidevises qui utilise près de 30 instruments simultanément. Les résultats ne correspondaient que lorsque le minuteur était éteint. Je suppose que rien n'a changé depuis.

 
Fast235:

Konstantin Gruzdev

Vous êtes un auteur intéressant, le plus intéressant ici. J'ai posé une question à Vladislav, je suis aussi intéressé par la multidevise, car il y a des nuances sur la nouvelle barre et sur la non-applicabilité de toutes les barres nécessaires.

Ok. Réponse ci-dessus.

 
Konstantin Gruzdev:

OK. La réponse est ci-dessus.

Merci Constantin de m'avoir répondu. S'il vous plaît, ne vous laissez pas trop distraire par d'autres choses !