Bibliotheken: MT4Orders - Seite 41

 
fxsaber :


Ergebnis

OrderTicketID () ist ungültig, ich denke MT4Orders.mqh ist nicht die Version, die ich heruntergeladen habe.


Ich habe von hier heruntergeladen https://www.mql5.com/de/code/16006


Dies ist nicht korrekt. kompiliert mit vielen Fehlern

MT4Orders
MT4Orders
  • www.mql5.com
Данная библиотека позволяет работать с ордерами в MQL5 (MT5-hedge) точно так же, как в MQL4. Т.е. ордерная языковая система (ОЯС) становится идентичной MQL4. При этом сохраняется возможность параллельно использовать MQL5-ордерную систему. В частности, стандартная MQL5-библиотека будет продолжать полноценно работать. Выбор между ордерными...
 
noChangepromise:

Es ist nicht richtig. kompiliert eine Menge von Fehlern

 
fxsaber :

.


kein Funktionsname

kein Funktionsname? Ihr Computer hat Russisch, also könnte es gut funktionieren. aber für unsere nicht-russischen Benutzer hat es ein großes Problem mit Unicode

 
noChangepromise:

Auf Ihrem Computer ist Russisch installiert, also könnte es funktionieren, aber für unsere nicht-russischen Benutzer gibt es ein großes Problem mit Unicode

Dies ist das erste Mal, dass ein solches Problem geäußert wird. Versuchen Sie, die Datei selbst herunterzuladen, anstatt sie zu kopieren und einzufügen.

 
noChangepromise:

Könnten Sie bitte ein Beispiel dafür geben, wie man iMA () oder iCustom ()

Ich mache keine Konvertierung.

 
// Liste ändern:
// 02.11.2019
// Fix: Angepasste Lot-, Kommissions- und Schlusskurse für CloseBy-Positionen.


In MT4 ist es recht einfach, den Durchschnittswert der gehandelten Lose und die gezahlte Provision zu berechnen.

void OnStart()
{
  double AvgLots = 0;       // Durchschnittliches Los einer geschlossenen Position.
  double AvgCommission = 0; // Durchschnittliche Provision pro geschlossener Position.
  
  int AmountPositions = 0;  // Anzahl der geschlossenen Positionen.
  
  for (int i = OrdersHistoryTotal() - 1; i >= 0; i--)
    if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY) && (OrderType() <= OP_SELL) && OrderLots())
    {
      AvgLots += OrderLots();
      AvgCommission += OrderCommission();
      
      AmountPositions++;
    }
    
  if (AmountPositions)
  {
    AvgLots /= AmountPositions;
    AvgCommission /= AmountPositions;
  }
}

Der hervorgehobene Teil ist dafür verantwortlich, dass geschlossene Positionen von CloseBy ignoriert werden. Da sie nicht gehandelt werden und sind eigentlich Fälschungen.

Es stellte sich heraus, dass ein solch einfacher Code (ich gebe keine weiteren Beispiele) in MT5 mit der alten Version der Bibliothek nicht korrekt funktionierte. Jetzt ist alles in Ordnung.


ZЫ Das erste Mal fand ich eine Verwendung für die Eigenschaft ORDER_POSITION_BY_ID.

 
fxsaber:

Der hervorgehobene Link ist ein ungelöstes Problem. Wenn jemand eine Idee für eine Lösung hat, lassen Sie es mich wissen.

Krücke Abhilfe.

bool IsSynchronized( void )
{
  static ulong Orders[];
  
  bool Res = true;
  
  for (int i = ArraySize(Orders) - 1; (i >= 0) && Res; i--)
    if (Orders[i])
      Res = OrderSelect(Orders[i]) || HistoryOrderSelect(Orders[i]);
    
  if (Res)
    for (int i = ArrayResize(Orders, OrdersTotal()) - 1; i >= 0; i--)      
      Orders[i] = OrderGetTicket(i);
      
  return(Res);  
}

#include <MT4Orders.mqh>

void OnTick()
{
  if (!IsSynchronized())
  {
    Alert("Hello World!");
    
    return;
  }
  
  // ....
}
 

Es wäre sehr wünschenswert, zumindest im Header des Quelltextes darauf hinzuweisen, dass MT4ORDERS_FASTHISTORY_OFF nicht nur die Arbeit mit History Arrays beschleunigt, sondern auch die Vollständigkeit der funktionalen Unterstützung beeinträchtigt, insbesondere ist es ohne diese Option nicht möglich, zuvor geöffnete und geschlossene Market Orders über OrderSelect(ticket, SELECT_BY_TICKET, MODE_HISTORY) auszuwählen, da das übergebene Ticket zum Input Trade gehört (der in IsMT4Deal verworfen wird).weil das übertragene Ticket zum Input-Trade gehört (der in IsMT4Deal verworfen wird), und die Suche nach dem entsprechenden Exit gerade durch die bedingte Kompilierung auf MT4ORDERS_FASTHISTORY_OFF (in GetPositionDealOut) abgedeckt wird.

 
Stanislav Korotky:

Es wäre sehr wünschenswert, zumindest im Header des Quelltextes darauf hinzuweisen, dass MT4ORDERS_FASTHISTORY_OFF nicht nur die Arbeit mit History Arrays beschleunigt, sondern auch die Vollständigkeit der funktionalen Unterstützung beeinträchtigt, insbesondere ist es ohne diese Option nicht möglich, zuvor geöffnete und geschlossene Market Orders über OrderSelect(ticket, SELECT_BY_TICKET, MODE_HISTORY) auszuwählen, da das übergebene Ticket zu einem Input Trade gehört (der in IsMT4Deal verworfen wird).weil das übertragene Ticket zu einem Input-Trade gehört (der in IsMT4Deal verworfen wird), und die Suche nach dem entsprechenden Exit gerade durch die bedingte Kompilierung auf MT4ORDERS_FASTHISTORY_OFF (in GetPositionDealOut) abgedeckt ist.

Mir ist nicht in den Sinn gekommen, dass dieser langsame Modus von jemand anderem verwendet werden könnte. Es ist bereits so viel Wasser vergangen, dass man nicht einmal versuchen kann, es zu erhalten.