Gemeinsam lernen und schreiben in MQL5 - Seite 36

 

Ich danke Ihnen für die ausführlichen Antworten und entschuldige mich für meine Eile und Unaufmerksamkeit beim Studium der Dokumentation; die Antworten waren tatsächlich in der Beschreibung der Funktion OnCalculate enthalten.

Offensichtlich war ich zu schnell, um den Lernprozess zu forcieren und habe es versäumt, die Beschreibungen von OnInit und OnCalculate zu studieren.

Yedelkin:

Beantworten diese Zeilen Ihre Frage?

MetaDriver:

In diesem Fall können diese Werte nicht korrekt berechnet werden (es gibt nicht genug Historie, um sie zu berechnen), also werden ihnen dummerweise Nullwerte zugewiesen.

// Ich hätte es vorgezogen, ihnen entsprechende Eingabedaten zuzuweisen, aber das macht keinen großen Unterschied.

Die Frage ist falsch gestellt (es ist offensichtlich, ich habe das Gleiche im Kommentar zu der Zeile geschrieben, und ich habe verstanden, dass die Zuweisung von Nullwerten vorhanden ist). Um es zu umschreiben

Profi_R:

Ich setze in den Ausdruck und sehen, dass andere Werte als 0 in ExtLineBuffer von Index limit-1bis Index rates_total-1 zugewiesen werden, aber im Diagramm wird der Indikator in den gesamten Raum gezeichnet, hmm, wo ist dann die Zuweisung von Werten(andere als Null) an den Indikator-Puffer in den Raum von 0 bis limit-1?

Dass sie nicht kalkulierbar sind und keinen Sinn ergeben, ist von Anfang an klar. Ich schaute, auf bar 0 der Wert eines einfachen Durchschnitt (Indikator) ist gleich dem maximalen Preis Wert (nicht immer), auf den ersten dachte ich, es war über die Anzahl der Bars auf dem Diagramm angezeigt und in der Geschichte gespeichert, schaltete ich diese Einstellungen Option auf unlimit, das Ergebnis hat sich nicht geändert, der Indikator auf der ersten (links) Grenze Bars gezeichnet wird, und sein Wert ist anders als 0.
 
Profi_R:

Ich bedanke mich für die ausführlichen Antworten und entschuldige mich für meine Eile und Unaufmerksamkeit beim Studium der Dokumentation; die Antworten waren tatsächlich in der Beschreibung der Funktion OnCalculate enthalten.

Offensichtlich war ich zu schnell, um den Lernprozess zu forcieren und habe es versäumt, die Beschreibungen von OnInit und OnCalculate zu studieren.

OK.

Paraphrase

Dass sie nicht berechenbar sind und keinen Sinn ergeben, ist von vornherein klar. Ich schaute, bei 0 bar der Wert eines einfachen Durchschnitt (Indikator), gleich dem maximalen Preis Wert (nicht immer), auf den ersten dachte ich, es war über die Anzahl der Bars auf dem Diagramm angezeigt und in der Geschichte gespeichert, schaltete ich diese Einstellung auf "unbegrenzt", das Ergebnis hat sich nicht geändert, der Indikator auf der ersten (links) Bars gezeichnet, und sein Wert ist anders als 0.

Ich habe es überprüft und es sieht genauso aus. 100000 Balken in den Einstellungen, ich möchte nicht auf eine unbegrenzte Anzahl von Balken prüfen, ich glaube es).

Ich habe keine Antwort auf die Frage "wie ist es möglich", es ist besser, die Entwickler zu fragen (z.B. im "bugs, bugs, questions"-Zweig, der von den Entwicklern sehr regelmäßig besucht wird).

Ich bin mir sicher, dass hier keine Wunder geschehen werden. Wahrscheinlich zeigt das Terminal nicht den gesamten angeforderten Verlauf an und die ganz links verfügbaren (programmgesteuerten) Balken werden einfach weggelassen. :)

 
Profi_R:
Dass sie nicht berechenbar sind und keinen Sinn ergeben, ist von vornherein klar. Ich sah, bei 0 bar, der Wert eines einfachen Durchschnitts (der Indikator), gleich dem maximalen Preis Wert (nicht immer), auf den ersten dachte ich, es war über die Anzahl der Balken auf dem Diagramm angezeigt und in der Geschichte gespeichert, schaltete ich diese Option auf eine unbegrenzte, das Ergebnis hat sich nicht geändert, der Indikator auf der ersten (links) Bars gezeichnet wird, und sein Wert ist anders als 0.
Ich habe das wissenschaftlich gemacht: in der Zeile for(i=0;i<limit-1;i++) ExtLineBuffer[i]=0.0; ersetze Null durch Eins und schaue, wo es erscheint. Vergleichen Sie mit den zuvor erzielten Ergebnissen.
 
MetaDriver:

Ich bin mir sicher, dass hier keine Wunder geschehen werden. Wahrscheinlich zeigt das Terminal nicht den gesamten angeforderten Verlauf an und die ganz links verfügbaren (programmatischen) Balken werden einfach nicht angezeigt. :)

Ja, wie sich herausstellte, wurde die gesamte Tiefe der Historie berechnet (ohne sie mit einem Chart zu verknüpfen), es reicht nur nicht aus, die Tiefe zu aktivieren, die auf dem Chart angezeigt wird, Sie müssen entweder das Terminal neu starten oder den Chart erneut öffnen und erst dann wird diese Option wirksam. Dieser Teil des Codes ist nun völlig klar.
Документация по MQL5: Операции с графиками / ChartOpen
Документация по MQL5: Операции с графиками / ChartOpen
  • www.mql5.com
Операции с графиками / ChartOpen - Документация по MQL5
 

Im Allgemeinen sollten Sie mit den Artikeln How to write an indicator in MQL5 und Indicator by indicator in MQL5 beginnen.

Darüber hinaus gibt es im entsprechenden Bereich des Forums ein spezielles Thema, das auf solche Fragen eingeht - Was Sie über Indikatoren wissen müssen

 
Rosh:

Im Allgemeinen sollten Sie mit den Artikeln How to write an indicator in MQL5 und Indicator by indicator in MQL5 beginnen.

Außerdem gibt es im entsprechenden Abschnitt des Forums ein spezielles Thema, das auf solche Fragen abzielt - Was Sie über Indikatoren wissen müssen

))))) Ich freue mich, Sie bei guter Gesundheit zu sehen, verzeihen Sie mir meine Flamme. Danke, ich werde es berücksichtigen.)
 
Schön, dich auch auf 5 zu sehen :)
 
Guten Abend, ich untersuche die Strukturdes Ergebnisses einer Handelsanfrage (MqlTradeResult). Schreibt also Prints für diese Struktur jeweils zwischen Print(9999999999999999999999);
 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); 
Bei vielen Werten wird der Druck mit Null angegeben, was ist das?
 
Dimka-novitsek:
Guten Abend, ich untersuche die Strukturdes Ergebnisses einer Handelsanfrage (MqlTradeResult). Ich habe für diese Struktur jeweils Print(999999999999999999) geschrieben; für viele Werte hat Print Null geschrieben, was ist das!

Warum schreiben wir diese Zeilen? Warum analysieren wir nicht das Ergebnis?

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

Zu den Nullen: Welche Art von Nullen verursacht Störungen?

 
Ich danke Ihnen! Der aktuelle Geld- und Briefkurs ist Null. Deal Ticket . Kartenbestellung. Gut, hier ist der Vater.
Документация по MQL5: Торговые функции / OrderGetTicket
Документация по MQL5: Торговые функции / OrderGetTicket
  • www.mql5.com
Торговые функции / OrderGetTicket - Документация по MQL5