Apprendre et écrire ensemble en MQL5 - page 36

 

Merci pour ces réponses complètes et je m'excuse de ma hâte et de mon inattention lors de l'étude de la documentation, les réponses étaient en effet contenues dans la description de la fonction OnCalculate.

Apparemment, j'ai été trop rapide pour forcer le processus d'apprentissage et j'ai manqué l'étude des descriptions OnInit et OnCalculate.

Yedelkin:

Ces lignes répondent-elles à votre question ?

MetaDriver:

Dans ce cas, ces valeurs ne peuvent pas être calculées correctement (pas assez d'historique pour les calculer), donc on leur attribue carrément des valeurs nulles.

// J'aurais préféré leur attribuer des données d'entrée correspondantes, mais cela ne fait pas grande différence.

Mauvaise formulation de la question (c'est évident, j'ai écrit la même chose dans le commentaire de la ligne, et j'ai compris que l'affectation de valeurs nulles est présente). Pour paraphraser

Profi_R:

Je mets dans l'impression et vois que les valeurs autres que 0 dans ExtLineBuffer sont assignées de l'index limit-1à l'index rates_total-1, mais dans le graphique l'indicateur est dessiné dans l'espace entier, hmm, alors où est l'assignation des valeurs(autres que zéro) au tampon de l'indicateur dans l'espace de 0 à limit-1?

Le fait qu'ils ne peuvent pas être calculés et n'ont pas de sens est clair dès le début. J'ai regardé, sur la barre 0 la valeur d'une moyenne simple (indicateur) est égale à la valeur maximale du prix (pas toujours), au début j'ai pensé qu'il s'agissait du nombre de barres affichées sur le graphique et stockées dans l'historique, j'ai passé cette option de paramétrage à unlimit, le résultat n'a pas changé, l'indicateur sur la première (gauche) barre limite est dessiné, et sa valeur est différente de 0.
 
Profi_R:

Merci pour ces réponses complètes et je m'excuse de ma précipitation et de mon inattention lors de l'étude de la documentation ; les réponses étaient en effet contenues dans la description de la fonction OnCalculate.

Apparemment, j'ai été trop rapide pour forcer le processus d'apprentissage et j'ai manqué l'étude des descriptions OnInit et OnCalculate.

ok.

Paraphraser

Le fait qu'ils ne peuvent pas être calculés et n'ont pas de sens est clair dès le début. J'ai regardé, à 0 barre la valeur d'une moyenne simple (indicateur), égale à la valeur maximale du prix (pas toujours), au début j'ai pensé qu'il s'agissait du nombre de barres affichées sur le graphique et stockées dans l'historique, j'ai passé ce paramètre à "illimité", le résultat n'a pas changé, l'indicateur sur la première (gauche) barre dessinée, et sa valeur est différente de 0.

J'ai vérifié et cela semble identique. L'historique dans les paramètres est de 100000 barres, je ne veux pas vérifier pour une quelconque illimitation, je le crois).

Je n'ai pas de réponse à "comment est-ce possible", il vaut mieux demander aux développeurs (par exemple dans la branche "bugs, bugs, questions", qui est visitée par les développeurs très régulièrement).

Je suis sûr qu'il n'y aura pas de miracle ici, il est fort probable que le terminal n'affiche pas tout l'historique demandé et que les barres les plus à gauche disponibles (par programmation) sont simplement laissées de côté. :)

 
Profi_R:
Le fait qu'ils ne peuvent être calculés et n'ont pas de sens est clair dès le départ. J'ai regardé, à 0 barre, la valeur d'une moyenne simple (l'indicateur), égale à la valeur maximale du prix (pas toujours), au début j'ai pensé qu'il s'agissait du nombre de barres affichées sur le graphique et stockées dans l'historique, j'ai passé cette option à un illimité, le résultat n'a pas changé, l'indicateur sur les premières barres (à gauche) est dessiné, et sa valeur est différente de 0.
Je l'ai fait scientifiquement : dans la ligne for(i=0;i<limit-1;i++) ExtLineBuffer[i]=0.0; remplacez zéro par un et voyez où cela apparaît. Comparer avec les résultats obtenus précédemment.
 
MetaDriver:

Je suis sûr qu'il n'y aura pas de miracle ici, il est fort probable que le terminal n'affiche pas tout l'historique demandé et que les barres les plus à gauche disponibles (par programmation) soient simplement laissées de côté. :)

Oui, il s'est avéré que toute la profondeur de l'historique a été calculée (sans la lier à un graphique), il ne suffit pas d'activer la profondeur, affichée sur le graphique, vous devez soit redémarrer le terminal ou ouvrir le graphique à nouveau et seulement alors cette option sera effective. Ce morceau de code est maintenant complètement clair.
Документация по MQL5: Операции с графиками / ChartOpen
Документация по MQL5: Операции с графиками / ChartOpen
  • www.mql5.com
Операции с графиками / ChartOpen - Документация по MQL5
 

En général, vous devriez commencer par les articles Comment écrire un indicateur en MQL5 et Indicateur par indicateur en MQL5.

Par ailleurs, il existe une branche spéciale dans la section appropriée du forum, qui vise à répondre à ce type de questions - Ce que vous devez savoir sur les indicateurs

 
Rosh:

En général, vous devriez commencer par les articles Comment écrire un indicateur en MQL5 et Indicateur par indicateur en MQL5.

Par ailleurs, il existe un fil de discussion spécial dans la section appropriée du forum, qui vise à répondre à ce type de questions - Ce que vous devez savoir sur les indicateurs

))))) heureux de vous voir en bonne santé, pardonnez mes flamboiements. Merci, je vais en tenir compte ;)
 
C'est bon de te voir sur le 5 aussi :)
 
Bonsoir, j'étudie la structuredu résultat d'une demande de transaction (MqlTradeResult). Les impressions pour cette structure sont respectivement comprises entre Print(99999999999999999999999999) ;
 OrderSend(request,result);

      int Error=GetLastError(); ResetLastError();
        printf("Error %i ",Error);
      
        Print(i);
        
       Print(999999999999999999); 
        uint re= result.retcode;
         Print( "Код результата операции");
        Print( re);  
      // int re=
       ulong  ru= result.   deal;
        Print( "Тикет сделки, если она совершена");
       Print( ru); 
       
         ru= result.  order;
        Print( "Тикет ордера, если он выставлен");
        Print( ru);
        
         double    rd= result. volume;
         Print( "Объем сделки, подтверждённый брокером"); 
         Print( rd); 
       
          rd= result.  price;  
        Print( "Цена в сделке, подтверждённая брокером");  
       Print( rd);
      
           rd= result. bid;     
       Print( "Текущая рыночная цена предложения (цены реквота)"); 
         Print( rd); 
      
            rd= result. ask;   
        Print( "Текущая рыночная цена спроса (цены реквота)"); 
         Print( rd); 
      
          string    rs= result. comment;  
           Print( "Комментарий брокера к операции (по умолчанию заполняется расшифровкой)"); 
         Print( re);
      
         //    re= result.  request_id;   
       //    Print( "Идентификатор запроса, устанавливается терминалом при отправке "); 
       //  Print( re);
         
          
                   
      Print(999999999999999999); 
Pour de nombreuses valeurs, l'impression est écrite zéro, qu'est-ce que c'est ?
 
Dimka-novitsek:
Bonsoir, j'étudie la structuredu résultat d'une demande de transaction (MqlTradeResult). J'ai écrit Print(9999999999999999999999) pour cette structure respectivement ; Pour beaucoup de valeurs Print a écrit zéro, qu'est-ce que c'est !

Pourquoi écrivons-nous ces lignes ? Pourquoi n'analysons-nous pas le résultat ?

uint re= result.retcode;
         Print( "Код результата операции");
         Print( re);  

Concernant les zéros : quel type de zéros provoque une perturbation ?

 
Merci ! Le prix actuel de l'offre et de la demande est égal à zéro. Billet à prix réduit . Commande de billets. Bien, voici le papa.
Документация по MQL5: Торговые функции / OrderGetTicket
Документация по MQL5: Торговые функции / OrderGetTicket
  • www.mql5.com
Торговые функции / OrderGetTicket - Документация по MQL5