Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1715

 
MakarFX #:
PM

überprüfen Sie Ihr Portemonnaie)

 
Alexey Viktorov #:

Ich bin in einem Thread auf Folgendes gestoßen

Ich kopierte ihn, sah ihn an, verstand nichts, kommentierte ihn aus und vergaß ihn.

Jetzt ist es mir wieder eingefallen, ich habe es in meinen Testcodes gefunden, aber ich kann es nicht im Forum finden. Ich verstehe nicht, wie Makros funktionieren. Vielleicht kann jemand erklären, wie es funktioniert, oder die Ausgabe finden, aus der ich es kopiert habe...

Im Allgemeinen muss ich die Makro-Ersetzung......... irgendwie definieren.

Das alles funktioniert beim Kompilieren, aber nicht beim Laden des Programms

 

Guten Tag an alle !!!!

Könnten Sie mir bitte sagen, wie die Nummer des vorletzten Tickets lautet?

Es gibt eine Funktion zur Ermittlung der letzten Bestellung:

//+----------------------------------------------------------------------------+
//| Расчет тикета максимального ордера в сетке                                 |
//+----------------------------------------------------------------------------+
int GetTicketMaxOrder()
  {
   max_ticket = 0;
     {
      for(int cnt = OrdersTotal() - 1; cnt >= 0; cnt--)
        {
         if(OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES))
           {
            if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
              {
               if(OrderType() == OP_BUY || OrderType() == OP_SELL)
                 {
                  if(OrderTicket() > max_ticket)
                     max_ticket = OrderTicket();
                 }
              }
           }
        }
     }
   return(max_ticket);
  }

Eine Variante, diese Funktion anzuwenden und -1 von max_ticket anzunehmen, funktioniert nicht, da EA mit mehreren Instrumenten handelt und es passieren kann, dass zwischen der letzten und vorletzten Order eine Order eines anderen Instruments geöffnet wird.

Der Auftrag muss aus allen Aufträgen abzüglich des maximalen Auftrags oder des nächsthöheren Auftrags nach dem maximalen Auftrag ausgewählt werden, oder Sie können selbst entscheiden. Ich danke Ihnen.

 
Vitaly Muzichenko #:

Dies alles funktioniert zur Kompilierzeit, aber nicht, wenn das Programm geladen wird

Hängt das Laden eines Programms nicht davon ab, wie es kompiliert wurde?

 
EVGENII SHELIPOV #:

Guten Tag an alle !!!!

Diese Funktion kann nicht korrekt funktionieren

int GetTicketMaxOrder()
  {
   max_ticket = 0;
     {
      for(int cnt = OrdersTotal() - 1; cnt >= 0; cnt--)
        {
         if(OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES))
           {
 
MakarFX #:

Diese Funktion kann nicht richtig funktionieren.

Ja, Makar, du hast Recht, wie immer kann es behoben werden, aber seltsamerweise funktioniert diese Funktion wie ein Uhrwerk.

 
MakarFX #:

Ganz genau.

Ist es möglich, dies zu tun?

Der einzige Ausweg besteht darin, ein eigenes Parameter-Panel zu schreiben und es bei OnInit() zu verwenden, anstatt den Standard-Eingabeparameter-Mechanismus zu nutzen.
 
Sergey Gridnev #:
Der einzige Ausweg besteht darin, ein eigenes Parameter-Panel zu schreiben und es bei OnInit() zu verwenden, anstatt den Standard-Eingabeparameter-Mechanismus zu nutzen.

Interessante Idee! Ich danke Ihnen.

Nein, es ist uninteressant(

Jedes Mal, wenn Sie den Zeitrahmen erneut ändern, ist es nicht schön, die Einstellungen einzugeben(

 
EVGENII SHELIPOV #:

Ja, Makar, du hast Recht, wie immer kann man es reparieren, aber seltsamerweise funktioniert diese Funktion wie ein Uhrwerk.

Es funktionierte wie am Schnürchen, denn Sie suchten nach der letzten Bestellung

Sie kein anderes Ticket finden konnten.

 
EVGENII SHELIPOV #:

Guten Tag an alle !!!!

Können Sie mir bitte die Nummer des vorletzten Tickets nennen?

Es ist möglich, ein Ticket zu speichern, bevor eine neue Bestellung eröffnet wird.