Wizard #: Guten Tag, benötigt der Code die Zeile PositionSelectByTicket... Wenn ja, wie schreibe ich die Fahrkarte korrekt hinein, indem ich PositionGetTicket(i) verwende oder diePositionGetInteger(POSITION_TICKET) belasse? Vielen Dank im Voraus!
Seien Sie nicht unhöflich... Steht in der Dokumentation nicht eindeutig
Die Funktion gibt ein Positionsticket durch den Index in der Liste der offenen Positionen zurück und wählt diese Position automatisch für die weitere Arbeit mit ihr aus
Wenn die Position bereits ausgewählt ist, warum sollte sie mit der Funktion PositionSelectByTicket erneut ausgewählt werden?
Ich will nicht unhöflich sein... Steht in der Dokumentation nicht eindeutig
Wenn die Position bereits ausgewählt ist, warum sollte sie mit der Funktion PositionSelectByTicket erneut ausgewählt werden?
Vielen Dank für Ihre Antwort! Ich habe mich das gefragt, weil ich in der Bibliothek <Trade/Trade.mqh> nachgesehen habe, dass die Funktion PositionClose(const ulong ticket,const ulong deviation) auch PositionSelectByTicket verwendet. Und die Funktion PositionClose( const ulong ticket,const ulong deviation ) selbst wird von Programmierern oft in Kombination mit der Schleife for(int i = PositionsTotal()-1; i >= 0; i--) verwendet und durchläuft alle Positionen in einer Schleife. Und ich frage mich, ob ich irgendwo ein zusätzliches Exemplar verwende.
Wizard #: Hallo, ist die PositionSelectByTicket Zeile im Code erforderlich... Wenn ja, wie schreibt man einen Fahrschein korrekt hinein, durch PositionGetTicket(i) oder durchPositionGetInteger(POSITION_TICKET)? Vielen Dank im Voraus!
int IsPositions()
{
int pos = 0;
int total = PositionsTotal();
for(int i = total-1; i >= 0; i--)
{
if(!PositionGetTicket(i))
continue;
if(PositionGetString(POSITION_SYMBOL) == Symbol_T && PositionGetInteger(POSITION_MAGIC) == EXPERT_MAGIC)
pos = (PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY) ? 1 : (PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL) ? -1 : 0;
}
return(pos);
}
Wizard #: Vielen Dank für Ihre Antwort! Ich begann mich zu wundern, weil ich in der Bibliothek <Trade/Trade.mqh> nachgeschaut habe, dass die Funktion PositionClose(const ulong ticket,const ulong deviation) auch PositionSelectByTicket verwendet. Und die Funktion PositionClose( const ulong ticket,const ulong deviation ) selbst wird häufig von Programmierern in Kombination mit der Schleife for(int i = PositionsTotal()-1; i >= 0; i--) verwendet und durchläuft alle Positionen in einer Schleife. Und ich frage mich, ob ich irgendwo ein zusätzliches Exemplar verwende.
Die Funktion PositionClose(const ulong ticket,const ulong deviation) in der Bibliothek empfängt ein Ticket der zu schließenden Position, aber niemand weiß, wie das Ticket empfangen wurde oder ob die Position existiert.
Daher prüft PositionSelectByTicket meist, ob es etwas zu schließen gibt. Und warum haben Sie beschlossen, dass alle Positionen oft in der Schleife geschlossen werden? Nicht unbedingt...
Die Funktion PositionClose(const ulong ticket,const ulong deviation) in der Bibliothek erhält ein Ticket der zu schließenden Position, aber niemand weiß, wie das Ticket empfangen wurde und ob die Position existiert.
Daher prüft PositionSelectByTicket meist, ob es etwas zu schließen gibt. Und warum haben Sie beschlossen, dass alle Positionen oft in der Schleife geschlossen werden? Nicht unbedingt...
Ja, jetzt verstehe ich alles. Ich habe vor kurzem eine EA, ich habe es nach Ihrem Beispiel geschrieben (mit Durchschnitten) aus einem Forum, kombiniert es mit Timur Mashnin's Code. Jetzt habe ich beschlossen, die Bedingungen dort zu ändern und sie ein wenig umzuschreiben, indem ich alles durch Systemfunktionen ohne Bibliotheken ersetze. Wenn bei einem einfachen PositionSelect alles sehr einfach war, eine Position - eine Auswahl, dann brauche ich mit der Schleife hier natürlich mehr Überlegungen und Logik.
Was wird an die MqlTradeCheckResult-Struktur zurückgegeben?
In der Dokumentation heißt es: "Der Betrag der Marge, derfür die gewünschte Handelsoperation erforderlich ist".
Feld
Beschreibung
retcode
Rückgabecode
Bilanz
Saldowert, der sich nach Ausführung des Geschäfts ergibt
Eigenkapital
Wert desEigenkapitals, der sich nach der Ausführung des Geschäfts ergeben wird
Gewinn
Wert des schwebenden Gewinns, der sich nach der Ausführung des Geschäfts ergeben wird
Marge
die Höhe der für das gewünschte Geschäft erforderlichen Marge
margin_free
Der Betrag des Eigenkapitals, der nach der Ausführung des gewünschten Geschäfts verbleibt
margin_level
Die Höhe der Marge, die nach der Ausführung des gewünschten Geschäfts festgelegt wird
Kommentar
Kommentar zum Antwortcode, Fehlerbeschreibung
Was man aber tatsächlich erhält, ist die Größe des gesamten Spielraums, des aktuellen und desjenigen, der nach der Ausführung der Operation genommen wird.
2022.02.0110:11:28.002 Test bag (EURUSD,H1) 2.252022.02.0110:11:28.108 Test bag (EURUSD,H1) 4.5
Wenn keine offenen Positionen auf dem Konto sind, entspricht my_check_result.margin der Marge für die offene Position mit Lot 0,01, und wenn bereits 0,01 auf dem Konto sind, entspricht die Marge für Lot 0,02
Guten Tag, benötigt der Code die Zeile PositionSelectByTicket... Wenn ja, wie schreibe ich die Fahrkarte korrekt hinein, indem ich PositionGetTicket(i) verwende oder diePositionGetInteger(POSITION_TICKET) belasse? Vielen Dank im Voraus!
Seien Sie nicht unhöflich... Steht in der Dokumentation nicht eindeutig
Wenn die Position bereits ausgewählt ist, warum sollte sie mit der Funktion PositionSelectByTicket erneut ausgewählt werden?
Ich will nicht unhöflich sein... Steht in der Dokumentation nicht eindeutig
Wenn die Position bereits ausgewählt ist, warum sollte sie mit der Funktion PositionSelectByTicket erneut ausgewählt werden?
Hallo, ist die PositionSelectByTicket Zeile im Code erforderlich... Wenn ja, wie schreibt man einen Fahrschein korrekt hinein, durch PositionGetTicket(i) oder durchPositionGetInteger(POSITION_TICKET)? Vielen Dank im Voraus!
Vielen Dank für Ihre Antwort! Ich begann mich zu wundern, weil ich in der Bibliothek <Trade/Trade.mqh> nachgeschaut habe, dass die Funktion PositionClose(const ulong ticket,const ulong deviation) auch PositionSelectByTicket verwendet. Und die Funktion PositionClose( const ulong ticket,const ulong deviation ) selbst wird häufig von Programmierern in Kombination mit der Schleife for(int i = PositionsTotal()-1; i >= 0; i--) verwendet und durchläuft alle Positionen in einer Schleife. Und ich frage mich, ob ich irgendwo ein zusätzliches Exemplar verwende.
Die Funktion PositionClose(const ulong ticket,const ulong deviation) in der Bibliothek empfängt ein Ticket der zu schließenden Position, aber niemand weiß, wie das Ticket empfangen wurde oder ob die Position existiert.
Daher prüft PositionSelectByTicket meist, ob es etwas zu schließen gibt. Und warum haben Sie beschlossen, dass alle Positionen oft in der Schleife geschlossen werden? Nicht unbedingt...
Die Funktion PositionClose(const ulong ticket,const ulong deviation) in der Bibliothek erhält ein Ticket der zu schließenden Position, aber niemand weiß, wie das Ticket empfangen wurde und ob die Position existiert.
Daher prüft PositionSelectByTicket meist, ob es etwas zu schließen gibt. Und warum haben Sie beschlossen, dass alle Positionen oft in der Schleife geschlossen werden? Nicht unbedingt...
Hallo
Können Sie mir bitte helfen?
mit dem Code.
Ein Indikator im Testgerät funktioniert richtig
Wenn ich sie in die Tabelle einfüge, wird sie nicht korrekt angezeigt.
Ich kann nicht herausfinden, warum das falsch ist.
Was wird an die MqlTradeCheckResult-Struktur zurückgegeben?
In der Dokumentation heißt es: "Der Betrag der Marge, der für die gewünschte Handelsoperation erforderlich ist".
Feld
Beschreibung
retcode
Rückgabecode
Bilanz
Saldowert, der sich nach Ausführung des Geschäfts ergibt
Eigenkapital
Wert desEigenkapitals, der sich nach der Ausführung des Geschäfts ergeben wird
Gewinn
Wert des schwebenden Gewinns, der sich nach der Ausführung des Geschäfts ergeben wird
Marge
die Höhe der für das gewünschte Geschäft erforderlichen Marge
margin_free
Der Betrag des Eigenkapitals, der nach der Ausführung des gewünschten Geschäfts verbleibt
margin_level
Die Höhe der Marge, die nach der Ausführung des gewünschten Geschäfts festgelegt wird
Kommentar
Kommentar zum Antwortcode, Fehlerbeschreibung
Was man aber tatsächlich erhält, ist die Größe des gesamten Spielraums, des aktuellen und desjenigen, der nach der Ausführung der Operation genommen wird.
Hier ist das Skript
und das Ergebnis der Ausführung
Wenn keine offenen Positionen auf dem Konto sind, entspricht my_check_result.margin der Marge für die offene Position mit Lot 0,01, und wenn bereits 0,01 auf dem Konto sind, entspricht die Marge für Lot 0,02
Was Sie aber tatsächlich erhalten, ist die Höhe der gesamten Marge, die derzeitige und diejenige, die nach Abschluss der Operation genommen wird.
Richtig.
Richtig.
Lassen Sie es so sein, aber dann sollte es auch in der Dokumentation so sein.
Wenn balans der Wert des Saldos ist , der sich nach Abschluss des Handels ergibt
dann Marge - sein sollte. Margin-Wert, der sich nach der Ausführung des Geschäfts ergibt