Bibliotheken: MT4Orders - Seite 58

 
Igor Makanu:

getestet MT4Orders in Bezug auf die Verwendung von reinen MQL5 (ohne Verwendung von SB ) https://www.mql5.com/ru/forum/357253/page4#comment_19593443

Eindeutig, nichts in MT4Orders verlangsamt und funktioniert perfekt

Unabhängig von MT4Orders wurden Snapshots nicht auf einem ebenen Boden geschrieben. Aber das ist real. Es ist schwierig, Bremsen in Tester zu erstellen.

 

Diese Bibliothek ist fantastisch!! Es ist so einfach, MT4-Code in MT5 auszuführen. Herzlichen Dank!

Ich habe ein Problem, die OrderTicket() Funktion gibt nicht die richtige Nummer zurück, wenn der Handel geschlossen wird. Dies ist ein echtes Problem, um einen Handel zu verfolgen, wenn er geschlossen ist.

Zum Beispiel wird ein Handel # 4584849 zu # 38484939, wenn er geschlossen wird.

Vielen Dank im Voraus für Ihre Hilfe

Dies ist mein Code in einem Skript:

#include <MT4Orders1.mqh>
void OnStart()
  {
int n=OrdersTotal();
//pLog(StringConcatenateV4("detectCloseTrade n=",n," ticket=",ticket));
   for(int i=n-1; i>=0; i--)
     {
      //---
      //if((ticket=HistoryOrderGetTicket(i))>0 && isMagic())
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderType()>=OP_BUY && OrderSymbol()==Symbol())
        {
         Print("MOH ",i, " ",OrderTicket());
        }
     }
  Print("History");
  n=OrdersHistoryTotal();
//pLog(StringConcatenateV4("detectCloseTrade n=",n," ticket=",ticket));
   for(int i=n-1; i>=0; i--)
     {
      //---
      //if((ticket=HistoryOrderGetTicket(i))>0 && isMagic())
      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) && OrderType()>=OP_BUY && OrderSymbol()==Symbol())
        {
         Print("MOH ",i, " ",OrderTicket());
        }
     }
}
 
Das ist kein Problem. Eine geschlossene Position in MT5 hat mehrere Tickets. Sie werden alle durch SELECT_BY_TICKET funktionieren.
Vielleicht brauchen Sie OrderTicketID().
[Gelöscht]  
Und wie kann ich alle Sprints und zusätzlichen Berechnungen (falls vorhanden) abschalten? Ich kann es nicht in den Definitionen finden
 
Maxim Dmitrievsky:
Und wie kann ich alle Sprints und zusätzlichen Berechnungen (falls vorhanden) abschalten? Ich kann es in den Definitionen nicht finden

Forum über Handel, automatisierte Handelssysteme und das Testen von Handelsstrategien

Bibliotheken: MT4Orders

fxsaber, 2019.04.29 15:19

Wenn Sie die Verwendung von MT4Orders in Ihrem Produkt unausgesprochen lassen wollen, können Sie entweder die relevanten Teile des Bibliotheksquelltextes ausschneiden oder einen universellen Stub einfügen
// Durch Makros werden alle Hinweise auf das Vorhandensein von MT4Orders unterbunden.
#define Alert PrintTmp
#define Print PrintTmp
  void PrintTmp( string ) {}
  
  #include <MT4Orders.mqh> // https://www.mql5.com/de/code/16006
#undef  Print
#undef  Alert
[Gelöscht]  
fxsaber:

Dankeschön

 
Eine Nuance des Unterschieds zwischen MT4 und MT5.
#include <MT4Orders.mqh>

#define  Ask SymbolInfoDouble(_Symbol, SYMBOL_ASK)

void OnStart()
{
  if (OrderSelect(OrderSend(_Symbol, OP_BUYLIMIT, 1, Ask - 100 * _Point, 0, 0, 0), SELECT_BY_TICKET)) // Öffnete einen Auftrag und wählte ihn aus
    OrderPrint();                                                                                     // Druckt ihre Daten aus
    
  OrderSend(_Symbol, OP_BUYLIMIT, 1, Ask - 100 * _Point, 0, 0, 0) // Öffnete einen Auftrag, wählte aber nicht aus.
  OrderPrint();                                                   // MT4 liefert das gleiche Ergebnis wie zuvor, MT5 nicht unbedingt.
}


Ergebnis in MT5.

        #827589598 2021.01.13 01:21:17.832 buy limit 1.00 EURSEK 10.06849 0.00000 0.00000 10.06949 0.00 0.00 0.00 0
        #827589601 2021.01.13 01:21:17.895 buy limit 1.00 EURSEK 10.06849 0.00000 0.00000 10.06949 0.00 0.00 0.00 0 // In MT4 wäre der String derselbe wie der vorherige.


Nach Handelsoperationen (im Terminal, nicht im Tester) können OrderLots(), OrderTicket() und andere Werte geändert werden. Diejenigen, die von MT4 konvertieren, sollten dies berücksichtigen.

 
fxsaber:

Nach Handelsoperationen (im Terminal, nicht im Tester) können OrderLots(), OrderTicket() und andere Werte geändert werden. Diejenigen, die von MT4 konvertieren, sollten dies berücksichtigen.

Ähnlich verhält es sich nach OrdersTotal.

#include <MT4Orders.mqh>

#define  Ask SymbolInfoDouble(_Symbol, SYMBOL_ASK)

void OnStart()
{
  if (OrderSelect(OrderSend(_Symbol, OP_BUYLIMIT, 1, Ask - 100 * _Point, 0, 0, 0), SELECT_BY_TICKET)) // Öffnete einen Auftrag und wählte ihn aus
    OrderPrint();                                                                                     // Druckt ihre Daten aus
    
  Sleep(10000); // Pause.
  
  OrdersTotal();
  OrderPrint(); // MT4 liefert das gleiche Ergebnis wie zuvor, MT5 nicht unbedingt.
}


Ergebnis.

        #827619194 2021.01.13 02:07:50.296 buy limit 1.00 EURUSD 1.22012 0.00000 0.00000 1.22112 0.00 0.00 0.00 0
        #827619194 2021.01.13 02:07:50.296 buy limit 1.00 EURUSD 1.22012 0.00000 0.00000 1.22111 0.00 0.00 0.00 0
 
Liebe fxsaber, dies ist wahrscheinlich eine Bananenfrage, aber ich muss sie stellen. Bibla funktioniert gut, aber im Tester tritt eine Besonderheit auf. Am Anfang hämmert der Expert Advisor etwas sehr heftig, ohne Ticks auszugeben, d.h. sobald der erste Tick auftritt, wird dort etwas sehr heftiges gestartet und erst nach ein paar Minuten beginnt der Test zu laufen. Jetzt in MT5 ging ich auf dem Chart von Eulen setzen er auch aß den ersten Tick und ein Kern ist voll geladen hängt, princhu Ticks im Protokoll erscheinen sie mit einer Periodizität von 2,5 Minuten etwa ). Und die Hauptsache ist nicht klar, wie lange er das Terminal vergewaltigen wird und ob er überhaupt fertig wird). Sov funktioniert normalerweise auf der vierten auf der fünften ist es im Prinzip nicht brauchbar. Okay, ich deaktiviert Sprinten, aber es hat nur das Protokoll gelöscht, aber mit der Leistung, wie zu sein? Ja, ich benutze sowohl Geschichte insgesamt und um wählen, sonst was ist der Sinn der Verwendung der lib. Das heißt, Sie können nicht postic Roboter verwenden, plus diese Sache bricht OnTick und dementsprechend alle Schnittstellen aufstehen, weil MQL5 OnChartEvent auf OnTick gehängt wird, es ist nicht klar, warum. Gibt es eine Möglichkeit, dieses Ding, das das Terminal spottet, abzuschalten oder ist es prinzipiell nicht vorgesehen? Ich würde Ihre Lib sehr gerne in meinem Produkt verwenden, aber ich weiß noch nicht, wie.
 
Und nehmen Sie den Ton nicht persönlich, das tue ich immer....