Erreurs, bugs, questions - page 846

 
Dites-moi, y a-t-il une fonction qui peut envoyer une position pour un travail ultérieur (modification) en utilisant , ulong deal ; // Ticket deal, si elle est faite par le ticket du deal, rappelé plus tôt ? Probablement, un tel choix nécessiterait un algorithme complexe - comme la main gauche pour brosser l'oreille droite ?
 
Dimka-novitsek:
Dites-moi, y a-t-il une fonction qui peut envoyer une position pour un travail ultérieur (modification) en utilisant , ulong deal ; // Ticket deal, si elle est faite par le ticket du deal, rappelé plus tôt ? Probablement, ce choix nécessitera un algorithme complexe, comme la main gauche brossant l'oreille droite ?
Chaque transaction possède un identifiant de position. En utilisant cet identifiant, nous allons essayer de rechercher la position elle-même.
 

Bonsoir à tous ! Je vois que les gens sont intéressés par cette branche. A propos du championnat...

Toujours pas vérifié mes données envoyées de l'information fermée pour le championnat, bien que l'expert - vérifié !

Quand seront-ils contrôlés ?

 
Leo:

Bonsoir à tous ! Je vois que les gens sont intéressés par cette branche. A propos du championnat...

Toujours pas vérifié mes données envoyées de l'information fermée pour le championnat, bien que l'expert - vérifié !

Quand seront-ils contrôlés ?

Si le robot est contrôlé sans erreur, il n'y a pas lieu de s'inquiéter. D'après ce que j'ai compris, l'expert est contrôlé automatiquement, mais les données personnelles sont contrôlées manuellement.
 
Leo:

Bonsoir à tous ! Je vois que les gens sont intéressés par cette branche. A propos du championnat...

Toujours pas vérifié mes données envoyées de l'information fermée pour le championnat, bien que l'expert - vérifié !

Quand seront-ils contrôlés ?

Cela a été conseillé ailleurs : s'il y a des questions, un concurrent inscrit peut facilement écrire sur son problème dans la section "Discussion" de sa page de championnat. Le message parviendra à son destinataire beaucoup plus rapidement que par le biais du forum.
 

J'ai une question.

Il y a un morceau de code de l'article qui définit le début d'une nouvelle barre.

   static datetime Old_Time;
   datetime New_Time[1];
   bool IsNewBar=false;

// копируем время текущего бара в элемент New_Time[0]
   int copied=CopyTime(_Symbol,_Period,0,1,New_Time);
   if(copied>0) // ok, успешно скопировано
     {
      if(Old_Time!=New_Time[0]) // если старое время не равно
        {
         IsNewBar=true;   // новый бар
         if(MQL5InfoInteger(MQL5_DEBUGGING)) 
            Print("Новый бар",New_Time[0],"старый бар",Old_Time);
            Old_Time=New_Time[0];   // сохраняем время бара
        }
     }
   else
     {
      Alert("Ошибка копирования времени, номер ошибки =",GetLastError());
      ResetLastError();
      return;
     }

//--- советник должен проверять условия совершения новой торговой операции только при новом баре
   if(IsNewBar==false)
     {
      return;
     }

Tout fonctionne bien. Mais je veux insérer le calcul de différentes statistiques lourdes dans le dernier if. Je veux avoir des calculs minimums au moment d'une nouvelle barre.

Voici ma question. Comment se comportera ce code si les statistiques sont calculées pendant un temps relativement long (disons 2 secondes) et si l'écart entre les ticks de l'ancienne et de la nouvelle barre est minimal.

Si je comprends bien, pendant que lafonction OnTick() calcule, les ticks seront ignorés mais le prochain tick sera nouveau pour l'EA, bien qu'il ne soit pas le premier de la barre.

Le contrôle manuel n'a pas encore fonctionné

Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
Основы языка / Функции / Функции обработки событий - Документация по MQL5
 
St.Vitaliy: Comment ce code se comportera, si les statistiques sont lues pendant un temps relativement long (disons 2 secondes).
Si la fonction OnTick() est exécutée pendant 2 secondes, alors toutes les cotations qui arrivent pendant cette période seront ignorées par le Conseiller Expert. C'est le point que vous vouliez clarifier ? Une "nouvelle" cotation pour le Conseiller Expert sera une cotation qui arrive immédiatement après l'exécution de la fonction OnTick(), même si cette cotation n'est pas le "premier tick de la barre".
 
Yedelkin:
Si la fonction OnTick() est exécutée pendant 2 secondes, alors toutes les cotations qui arrivent pendant cet intervalle de temps seront ignorées par l'EA. Est-ce le point que vous vouliez clarifier ?

Ici, ces 2 secondes sont ignorées (et les ticks pendant ce temps), mais au troisième tick, par exemple, un autre tick va arriver et le code le percevra comme nouveau dans la barre ?

Ceci est indirectement confirmé par le fait que lorsque je lance l'EA, le prochain tick est toujours le premier.

Si la statistique est calculée pendant 90 secondes, la condition pour un nouveau tick sur M1 sera exécutée au moins une fois ?

 
Yedelkin:
Chaque transaction possède un identifiant de position. Utilisez cet identifiant pour rechercher le poste lui-même.
Merci ! !!
 
St.Vitaliy: Ici, ces 2 secondes sont ignorées (et les ticks pendant ce temps), mais à la troisième, par exemple, un autre tick va arriver et le code va l'accepter comme un nouveau tick dans la barre ? Indirectement, cela est prouvé par le fait que lorsque je lance l'EA, le prochain tick est toujours le premier. Je pose une question différente, si les statistiques sont calculées pendant 90 secondes, la condition d'un nouveau tick sur M1 sera-t-elle jamais remplie ?

Eh bien, je l'ai déjà terminé ci-dessus. Je le répète : la "nouvelle" cotation pour le conseiller expert est une cotation qui arrive juste après l'achèvement de la fonction OnTick() suivante, même si cette cotation n'est pas le "premier tick d'une barre". Votre condition d'arrivée d'une nouvelle barre

if(Old_Time!=New_Time[0])

ne sera vérifiée qu'une fois que le conseiller expert aura terminé le traitement de la cotation de la barre "précédente". ...Si la fonction OnTick() est exécutée pendant 90 secondes et est lancée à 00.00.00, la "condition pour un nouveau tick sur M1 sera exécutée à un moment donné", à savoir après 00.01.30.