Wie lässt sich die Schließung von Positionen nach N Minuten realisieren? - Seite 3

 
Ihor Herasko:

Entschuldigen Sie bitte. Die Linie:

muss folgendermaßen umgeschrieben werden:


(OrderCloseTime()> 0) funktioniert, dann lasse ich es so

Nochmals vielen Dank))

Renat Akhtyamov:

закрытие по тикету, переделайте под свой

Es lässt sich auch problemlos schließen, aber nach dem Schließen wird der Fehler 4108"Ungültige Ticketnummer" geschrieben.


 
Natalya Dzerzhinskaya:

(OrderCloseTime()> 0) funktioniert, dann lasse ich es so

Nochmals vielen Dank)))


Er lässt sich auch problemlos schließen, aber nach dem Schließen erscheint die Fehlermeldung 4108"Falsche Ticketnummer".


Es ist also wirklich falsch, ich werde nicht lügen.

Prüfen Sie die Logik Ihres Codes.

Und machen Sie einen Befehl zum Schließen oder zwei?

Wenn Sie es einmal geschlossen haben, gibt es beim zweiten Mal nichts mehr zu tun, und das vorherige Ticket ist bereits ungültig.

 
Renat Akhtyamov:

Es ist also wirklich falsch, es wird nicht lügen.

Untersuchen Sie die Logik Ihres Codes.

Führen Sie einen oder zwei Schließbefehle aus?

Wenn Sie einmal schließen, gibt es für das zweite Ticket nichts mehr zu tun, und das vorherige Ticket ist bereits falsch.


Die"close"-Variable in Ihrem Code wird nie kleiner als Null sein, lesen Sie die Hilfe.

 
Ihor Herasko:

Die oben genannten Punkte sind richtig. Warum alle Bestellungen erneut durchgehen, wenn das Ticket bereits bekannt ist?

Es ist möglich, Aufträge sofort zu schließen, wenn sie überschießen.
Warum nach Zeit suchen? Vergleichen - schließen - weiter.
 
Taras Slobodyanik:

die "close"-Variable Ihres Codes wird nie kleiner als Null sein, lesen Sie die Hilfe

lesen Sie es selbst...

-----------

Rückgabewert

Gibt true zurück, wenn die Funktion erfolgreich abgeschlossen wurde, oder false, wenn ein Fehler auftrat. Um die Fehlerinformationen zu erhalten, müssen Sie GetLastError() aufrufen.

Коды возврата торгового сервера - Коды ошибок и предупреждений - Стандартные константы, перечисления и структуры - Справочник MQL4
Коды возврата торгового сервера - Коды ошибок и предупреждений - Стандартные константы, перечисления и структуры - Справочник MQL4
  • docs.mql4.com
GetLastError() - функция, возвращающая коды ошибок. Кодовые константы ошибок определены в файле stderror.mqh. Для вывода текстовых сообщений следует использовать функцию ErrorDescription(), определенную в файле stdlib.mqh.
 
Renat Akhtyamov:

lesen Sie selbst...

-----------

Zurückgegebener Wert

Gibt true zurück, wenn die Funktion erfolgreich abgeschlossen wurde, oder false im Falle eines Fehlers. Um Informationen über den Fehler zu erhalten, rufen Sie GetLastError() auf.


Sie kennen nicht einmal den Unterschied zwischen den verschiedenen Arten von Variablen)

die Sie lernen müssen.

 
Taras Slobodyanik:

Sie kennen also nicht einmal die Typen der Variablen)

Sie müssen lernen.


Forum zum Thema Handel, automatische Handelssysteme und Strategietester

Wie kann die Schließung von Positionen nacheinander nach N-Minuten erfolgen?

Natalya Dzerzhinskaya, 2017.11.22 19:17


(OrderCloseTime()> 0) funktioniert, werde ich es so belassen

Nochmals vielen Dank)))


Es lässt sich auch problemlos schließen, aber nach dem Schließen wird der Fehler 4108"Ungültige Ticketnummer" geschrieben.


Kommt es vom Himmel oder so?

)

Viel Glück mit Ihrem Studium!
 
Renat Akhtyamov:

Fällt es aus dem Himmel oder so?

)

Viel Glück mit Ihrem Studium!

Unter welchen Bedingungen könnte das jemals funktionieren, selbst wenn es nur alle 100 Jahre geschieht?

                  if(OrderSelect(MyTicketBuy, SELECT_BY_TICKET)==true)
                  {
                     close=OrderClose(MyTicketBuy,OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),0,clrRed);
                     if(close<0){if(Fun_Error(GetLastError())==1)return;}
                  }
                  if(OrderSelect(MyTicketSell, SELECT_BY_TICKET)==true)
                  {
                     close=OrderClose(MyTicketSell,OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),0,clrBlue);
                     if(close<0){if(Fu n_Error(GetLastError())==1)return;}
                  }
 
Vitaly Muzichenko:

Unter welchen Bedingungen könnte das jemals funktionieren, selbst wenn es nur alle 100 Jahre geschieht?

Nun Vitaly, ich weiß es nicht...............

Sie haben es in Ihrem Beitrag ausgearbeitet......

Vorsicht, die Funktion befindet sich auf der vorherigen Seite.
 
Renat Akhtyamov:

Nun Vitaly, ich weiß es nicht...............

Sie haben es in Ihrem Beitrag......

Vorsicht, die Funktion befindet sich auf der vorherigen Seite.

Ich will damit sagen, dass"close" nur entweder 0 (falsch) oder 1 (wahr) sein kann, es gibt keine andere Möglichkeit.

Für die Zuverlässigkeit ist es besser, dasselbe zu schreiben:

close=OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),0,clrRed);