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

 
barudkinarseniy:
Ich sehe keine Probleme, mein Expert Advisor funktioniert einfach so, dass er nach dem Schließen eines gewinnbringenden oder verlustbringenden Handels sofort Aufträge öffnet, und die Ticketnummer im Drucker ist sehr groß, so dass ich dachte, er müsste sie nicht manuell neu laden, vielleicht kann das automatisch geschehen. Ich sollte Ihnen auch für diese Funktion danken))
Wenn man sich die 1000 Aufträge in einem Jahr ansieht, ist das nichts, man muss sich nur die Ticker der echten Konten ansehen. Ich habe zum Beispiel die letzten 10179697. In der Regel sind die Tickets vom Typ int, daher beträgt der Höchstwert 2 147 483 647.
 
Alexey Volchanskiy:
1000 Bestellungen in einem Jahr sind nichts, schauen Sie sich die Tickets auf echten Konten an. Ich habe zum Beispiel zuletzt 10179697. Im Allgemeinen sind die Tickets vom Typ int, daher beträgt der Höchstwert 2 147 483 647.
Und was ist, wenn der Höchstwert erreicht ist?
 
in MQL5 ist das Ticket vom Typ ulong, Ihnen wird die Puste ausgehen, um die
 
barudkinarseniy:
Und was passiert, wenn sie den Höchstwert erreicht?
Die Nummern für Aufträge und Trades werden vom Broker vergeben, nicht von Ihrem EA, und der EA stellt sicher, dass sie den Höchstwert nicht überschreiten. ) Das sind nicht Ihre Kopfschmerzen.
 
Danke für die nützlichen Informationen))) Haben Sie eine Idee, wie man Limit-Orders mit AccountFreeMarginCheck überprüfen kann?
 

Ich habe den Standard Demark Expert Advisor aus der Bibliothek genommen, er scheint zu funktionieren. Ich habe angefangen, sie zu verfeinern.

double DU = iCustom(NULL, 0, "itdlines", Level, 0, 0);

double DD = iCustom(NULL, 0, "itdlines", Level, 1, 0);

double DU1 = iCustom(NULL, 0, "itdlines", Level, 0, 1);

double DD1 = iCustom(NULL, 0, "itdlines", Level, 1, 1);

Ich habe Berechnungen und zusätzliche Ausgabedaten zu diesem Indikator hinzugefügt, und er funktioniert wie folgt

double DU = iCustom(NULL, 0, "itdlines", Level, 0, 0);

double DD = iCustom(NULL, 0, "itdlines", Level, 1, 0);

double DU1 = iCustom(NULL, 0, "itdlines", Level, 0, 1);

double DD1 = iCustom(NULL, 0, "itdlines", Level, 1, 1);

double LUN = iCustom(NULL, 0, "itdlines", Level, 2, 0);

double LDN = iCustom(NULL, 0, "itdlines", Level, 3, 0);

double KUN = iCustom(NULL, 0, "itdlines", Level, 4, 0);

double KDN = iCustom(NULL, 0, "itdlines", Level, 5, 0);

und es fängt an, sich zu verzögern, d.h. ich erhalte Fehler über ungültige Daten.

Die Frage ist, ob ich den gleichen Indikator 8 Mal erstellt habe und das richtige Array daraus erhalten habe, oder liege ich falsch? Oder irre ich mich, ein Indikator wird einmal erstellt?
Wenn ich richtig liege, wie kann ich sie einmal erstellen und die erforderlichen Daten daraus abrufen?

 

Hallo Kollegen!

Bitte beraten Sie mich über die Struktur einer Handelsanfrage zur Schließung einer Position in MT5 mit einem Hedge.

Ich danke Ihnen.

 
Nikita Solodko:

Hallo Kollegen!

Bitte informieren Sie mich über die Struktur einer Handelsanfrage, um eine Position in MT5 mit einem Hedge zu schließen.

Ich danke Ihnen.

Sie können die Methode
bool  PositionClose( 
   const ulong   ticket,                  // тикет позиции 
   ulong         deviation=ULONG_MAX      // отклонение 
   )
aus der Standardbibliothek der Klasse CTrade
 
Sergey Gritsay:
Sie können Methoden aus der Standardbibliothek der CTrade-Klasse verwenden
Danke, natürlich, aber ich verwende keine Handelsklassen, sondern die Funktion OrderSend(). Und alles war in Ordnung, bevor die Möglichkeit der Absicherung, aber jetzt in der Struktur des Handels Anfrage erschien Element"Position", wie in der Hilfe angegeben, um eine bestimmte Position bei der Änderung und Schließung es, nur es nicht sagen, wie diese Position (Art der Operation, etc.) zu schließen.
 
Milleras1981:

Ich habe den Standard-EA für die Demarkierung aus der Bibliothek genommen, es scheint zu funktionieren. Ich habe angefangen, sie zu verfeinern.

double DU = iCustom(NULL, 0, "itdlines", Level, 0, 0);

double DD = iCustom(NULL, 0, "itdlines", Level, 1, 0);

double DU1 = iCustom(NULL, 0, "itdlines", Level, 0, 1);

double DD1 = iCustom(NULL, 0, "itdlines", Level, 1, 1);

Ich habe Berechnungen und zusätzliche Ausgabedaten zu diesem Indikator hinzugefügt, und er funktioniert wie folgt

double DU = iCustom(NULL, 0, "itdlines", Level, 0, 0);

double DD = iCustom(NULL, 0, "itdlines", Level, 1, 0);

double DU1 = iCustom(NULL, 0, "itdlines", Level, 0, 1);

double DD1 = iCustom(NULL, 0, "itdlines", Level, 1, 1);

double LUN = iCustom(NULL, 0, "itdlines", Level, 2, 0);

double LDN = iCustom(NULL, 0, "itdlines", Level, 3, 0);

double KUN = iCustom(NULL, 0, "itdlines", Level, 4, 0);

double KDN = iCustom(NULL, 0, "itdlines", Level, 5, 0);

und es fängt an, sich zu verzögern, d.h. ich erhalte Fehler über ungültige Daten.

Die Frage ist, ob ich den gleichen Indikator 8 Mal erstellt habe und das richtige Array daraus erhalten habe, oder liege ich falsch? Oder irre ich mich, ein Indikator wird einmal erstellt?
Wenn ich richtig liege, wie kann ich sie einmal erstellen und die erforderlichen Daten daraus abrufen?

Bevor Sie ihn verbessern, hat der Expert Advisor 4 Werte erhalten: aus dem Nullindikatorpuffer des letzten und vorletzten Balkens sowie aus dem ersten Indikatorpuffer, während Sie versuchen, Informationen aus 6 Indikatorpuffern zu erhalten... Sind Sie sicher, dass Sie sie im Indikator haben? Was wollen Sie erreichen?
Grund der Beschwerde: