Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 958

 

Ich bin wirklich verwirrt über ausstehende Aufträge und Positionen beim Zugriff auf die Geschäftshistorie.

Wenn ein schwebender Auftrag ausgelöst, in eine Position umgewandelt und erfolgreich geschlossen wurde (Deal), wie wird er dann im History-Cache als Auftrag oder als Position gespeichert?

Wie spreche ich sie als Position oder als Auftrag über den Status an?

 
vladzeit:

Ich bin wirklich verwirrt über ausstehende Aufträge und Positionen beim Zugriff auf die Geschäftshistorie.

Wenn ein schwebender Auftrag ausgelöst, in eine Position umgewandelt und erfolgreich geschlossen wurde (Deal), wie wird er dann im History-Cache als Auftrag oder als Position gespeichert?

Wie spreche ich sie als Position oder als Auftrag über den Status an?

Die Lektüre dieses Abschnitts der Dokumentation sollte Ihnen dabei helfen.

Erst ein Auftrag, dann ein Handel, dann eine Position. Dann, wenn es sich um ein Netting-Konto handelt, mehr Aufträge und Abschlüsse und am Ende ein Auftrag in entgegengesetzter Richtung mit einem Los, das der bestehenden Position entspricht, daraus ein Abschluss und keine Position. Sie ist geschlossen und es gibt keine Position in der Historie, es gibt nur Aufträge und Geschäfte, die diese Position erstellt, geändert und geschlossen haben. Sie sind jedoch alle mit der Positions-ID verbunden.
Документация по MQL5: Торговые функции / HistorySelectByPosition
Документация по MQL5: Торговые функции / HistorySelectByPosition
  • www.mql5.com
Не следует путать между собой ордера из торговой истории и действующие отложенные ордера, которые отображаются на вкладке "Торговля" в панели "Инструменты". Список ордеров, которые были отменены или привели к проведению торговой операции, можно посмотреть  в закладке "История" на панели "Инструменты" клиентского терминала. Функция...
 

4758

Gewinn- oder Margenberechnung fehlgeschlagen


Wie kann dies behoben werden?

 
Alexey Viktorov:

Die Lektüre dieses Abschnitts der Dokumentation sollte Ihnen dabei helfen.

Erst ein Auftrag, dann ein Handel, dann eine Position. Als nächstes, wenn es sich um ein Netting-Konto handelt, mehrere Aufträge und Abschlüsse und am Ende ein Auftrag in die entgegengesetzte Richtung mit einem Lot gleich der bestehenden Position, daraus ein Abschluss und keine Position. Sie ist geschlossen und es gibt keine Position in der Historie, es gibt nur Aufträge und Geschäfte, die diese Position erstellt, geändert und geschlossen haben. Sie sind jedoch alle mit der Positions-ID verbunden.

Alexey. Ich habe die Fibel gelesen, aber Sie haben alles in Ihren eigenen Worten einfacher erklärt, als es dort steht... Alles ist klar und verständlich. Dankeschön)

 
vladzeit:

Alexey. Ich habe die Fibel gelesen, aber Sie haben alles in Ihren eigenen Worten einfacher erklärt, als es dort steht... Alles ist klar und verständlich. Dankeschön)

Ich bitte Sie.




Aber ich sagte "den Abschnitt studieren", nicht ihn lesen. Es ist alles da, aber mit Beschreibungen der verschiedenen Funktionen dieses Abschnitts gespickt, es ist nur eine Dokumentation, kein Buch für Anfänger. Es gibt auch noch andere Artikel. Es muss doch einen von ihnen geben, der darüber spricht.

 
Alexey Viktorov:
Ich bitte Sie.




Aber ich sagte "den Abschnitt studieren", nicht ihn lesen. Es ist alles da, aber mit Beschreibungen der verschiedenen Funktionen dieses Abschnitts gespickt, es ist nur eine Dokumentation, keine Fibel für Anfänger. Es gibt auch noch andere Artikel. Es muss doch einen von ihnen geben, der darüber spricht.

Sie haben Recht, ich sollte studieren, nicht nur lesen, was gerade mein Interesse weckt. Aber ich folge meinen Gefühlen und meinem Wunsch nach einem schnellen und praktischen Ergebnis, das in Form eines funktionierenden Algorithmus umgesetzt wird.

Und ich versuche, von mql5 nur das zu bekommen, was ich für die Lösung dieser engen Aufgabe brauche... Infolgedessen habe ich eine Menge Bildungslücken)

Ich scheine bereits Buchstaben erkennen zu können, aber sie wollen keine Wörter und Sätze bilden).

Es ist auch deshalb schwierig, weil es kein genaues Lehrbuch mit Beispielen und Übungen gibt, und die Hilfe ist für diejenigen gedacht, die schon etwas Programmiererfahrung haben und eigentlich nur ihre eigene Syntax erklären.

Natürlich gibt es eine Menge Informationen im Forum, aber alles ist sehr verstreut und manchmal nicht zuverlässig aufgrund der neuen Änderungen in mql5.

Wahrscheinlich hätte ich meine Bekanntschaft mit mql4 beginnen sollen... Es gibt natürlich mehr Tutorials dort, und dann, nachdem die grundlegende Erfahrung, eine Idee, beginnen mit mql5, das Studium seiner Unterschiede.

Ich tue dies teilweise, indem ich nach Beispielen in mql4 suche und versuche, sie analog in mql5 zu implementieren. Aber manchmal bin ich wegen der kardinalen Unterschiede einiger Funktionen und Prinzipien noch verwirrter)))).

Anscheinend machen das alle Autodidakten durch).

Was Sie oben gesagt haben, werde ich sicherlich berücksichtigen, zumindest werde ich es versuchen).

 

Nach der Aktualisierung des Terminals wurde der Expert Advisor nicht mehr erstellt.

Fehler

'INIT_FAILED' - expression not boolean  

Was könnte das Problem sein?

//+------------------------------------------------------------------+
//| Lots or risk in percent for a deal from a free margin            |
//+------------------------------------------------------------------+
bool LotsOrRisk(const double lots,const double risk,const int digits_adjust)
  {
   if(lots<0.0 && risk<0.0)
     {
      Print(__FUNCTION__,",ERROR: Parameter(\"lots\" or \"risk\") can't be less than zero");
      return(false);
     }
   if(lots==0.0 && risk==0.0)
     {
      Print(__FUNCTION__,", ERROR: Trade is impossible: You have set \"lots\" == 0.0 and \"risk\" == 0.0");
      return(false);
     }
   if(lots>0.0 && risk>0.0)
     {
      Print(__FUNCTION__,", ERROR: Trade is impossible: You have set \"lots\" > 0.0 and \"risk\" > 0.0");
      return(false);
     }
   if(lots>0.0)
     {
      string err_text="";
      if(!CheckVolumeValue(lots,err_text))
        {
         Print(__FUNCTION__,", ERROR: ",err_text);
         return(false);
        }
     }
   else if(risk>0.0)
     {
      if(m_money!=NULL)
         delete m_money;
      m_money=new CMoneyFixedMargin;
      if(m_money!=NULL)
        {
         if(!m_money.Init(GetPointer(m_symbol),Period(),m_symbol.Point()*digits_adjust))
            return(INIT_FAILED);
         m_money.Percent(risk);
        }
      else
        {
         Print(__FUNCTION__,", ERROR: Object CMoneyFixedMargin is NULL");
         return(INIT_FAILED);
        }
     }
//---
   return(true);
  }
//+------------------------------------------------------------------+

Dies ist die Funktion, auf die der Compiler flucht

return(INIT_FAILED);
 
ilvic:

Nach der Aktualisierung des Terminals wurde der Expert Advisor nicht mehr erstellt.

Fehler

Was könnte das Problem sein?

Dies ist die Funktion, auf die der Compiler schwört

Die Funktion LotsOrRisk() wird als bool deklariert. Das bedeutet, dass sie nur true ODER false zurückgeben kann.

 
Juer:

Offenbar liegt es eher an meiner Hardware... und mein System.

Ich habe das System auf vin10 aktualisiert und eine Festplattenprüfung mit Bitsektor-Lokalisierung durchgeführt. Nun, ich werde wohl auf SSD umsteigen müssen.

Die Kompilierung dauerte ebenfalls über 10 Minuten. Es ist nicht normal, dass die Kompilierung so lange dauert...

 
Guten Tag.
Ist es möglich, dass der Indikator die Eingabeparameter im Chart anzeigt? Vielleicht gibt es ein fertiges Beispiel?
Grund der Beschwerde: