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

 
Mickey Moose:


Das stimmt, deshalb will ich es herausholen.

den Quellcode aus dieser Datei zu erhalten, ist viel schwieriger als diese Art von Problem zu lösen)

Sie können eine coole Sache im Allgemeinen machen: ein EA (oder was auch immer Sie haben, ohne Quellen) wird Mails an ein nahegelegenes Diagramm senden :-)

habe gerade in aller Ruhe http://luxtrade.tk/atcl:start gemacht (Forumsthema: https://www.mql5.com/ru/forum/224745)

und dort in den Paketen ist SMTP-Server(https://core.tcl.tk/tcllib/doc/tcllib-1-18/embedded/www/tcllib/files/modules/smtpd/smtpd.html)

Mit anderen Worten, Sie können Eval("package require smtpd") im Indikator verwenden, dann den Callback für "deliver" setzen und die notwendige Mail sofort empfangen, ohne MetaTrader zu verlassen, im selben Prozess

ATcl
  • luxtrade.tk
Рад представить вам библиотеку ATcl v1 beta - интерпретатор Tcl для MT4. Расширяте возможности ваших программ MQL, используйте СУБД, дополняйте сетевыми средствами, интегрируйте их с любыми программами используя Tcl.
 
Maxim Kuznetsov:

Sie könnten eine lustige Sache im Allgemeinen tun: ein EA (oder was auch immer Sie ohne Quellcode haben) wird Mails an ein benachbartes Diagramm senden :-)

Ich habe gerade http://luxtrade.tk/atcl:start (Forumsthread: https://www.mql5.com/ru/forum/224745) in aller Ruhe bearbeitet.

und es gibt einen SMTP-Server in den Paketen(https://core.tcl.tk/tcllib/doc/tcllib-1-18/embedded/www/tcllib/files/modules/smtpd/smtpd.html)

Mit anderen Worten, Sie können Eval("package require smtpd") im Indikator verwenden und dann den Callback für die Zustellung und den Empfang der benötigten Mails auf einmal setzen, ohne MetaTrader zu verlassen, und zwar im selben Prozess

Ich werde versuchen, das Problem zu lösen und gegebenenfalls die Ergebnisse mitteilen.

 
Artyom Trishkin:

Dieser sollte einfach die gesamte Historie auf die von Ihnen in den Einstellungen festgelegte Entfernung in Balken punktieren.

Danke, aber ich versuche, die Nummer des Balkens herauszufinden, in dem sich der Pfeil befindet, und erst dann mit einer 10 zu vergleichen (zum Beispiel), was ich nicht ohne eine verschachtelte Schleife tun kann.

Ich muss wissen, auf welchem Balken sich der Pfeil des aufgerufenen Indikators zum aktuellen Zeitpunkt befindet.

Ich schätze, ich kann mich nicht sehr gut ausdrücken). Mit einem Beispiel, denke ich, wird es klarer, was ich tun möchte

Zum Beispiel möchte ich durch eine Bedingung if(Open[i+1]>Cloce[i+1]) Text auf High[i+1] mit der Bar-Nummer setzen, wo sich der Pfeil befindet
 
Mickey Moose:

Ich werde versuchen, es herauszufinden, und wenn ich es schaffe, kann ich die Ergebnisse mitteilen.

Wenn Sie irgendwelche Fragen haben, können Sie mich persönlich fragen oder mich in meinem Profil kontaktieren. Ich besuche die Website oft, aber ich schaue mir nicht das ganze Forum an - es ist schwer, den Überblick zu behalten und ich könnte versehentlich eine Frage verpassen
 

Können Sie mir sagen, wie in MQL5 zu implementieren, um alle Geschäfte auf alle Währungspaare zu schließen, wenn sie einen bestimmten Gewinn für alle Geschäfte zu erreichen, unabhängig davon, ob sie von diesem Expert Advisor oder eine andere Weise geöffnet werden?

Ich habe es so gemacht, ist das richtig?

   if(AccountInfoDouble(ACCOUNT_PROFIT)>profit_close_all)
         for(int i=0; i<OrdersTotal(); i++)
            trade.PositionClose(OrderGetTicket(i),40);
 

Artyom Trishkin, entschieden. Verschachtelte Schleifen sind in der Tat unnötig. Vielen Dank!)

 
Roman Sharanov:

Können Sie mir sagen, wie in MQL5 zu implementieren, um alle Geschäfte auf alle Währungspaare zu schließen, wenn sie einen bestimmten Gewinn für alle Geschäfte zu erreichen, unabhängig davon, ob sie von diesem Expert Advisor oder eine andere Weise geöffnet werden?

Ich habe es so gemacht, ist das richtig?

Nein, das ist es nicht. In mql5 ist OrdersTotal() die Anzahl der ausstehenden Aufträge, und die aktiven Aufträge werden als Positionen bezeichnet. Dementsprechend sollte die Schleife nach der Anzahl der Positionen aufgebaut sein, PositionsTotal()
 
Roman Sharanov:

Ich habe das getan, ist das richtig?

if(AccountInfoDouble(ACCOUNT_PROFIT)>profit_close_all)
         for(int i=PositionsTotal()-1; i>=0; i--)
            trade.PositionClose(PositionGetTicket(i),40);

Etwa so.

Sie verwenden eine Schleife, die bei Null beginnt, während Sie von mehr zu Null gehen müssen, weil Sie Aufträge direkt in der Schleife abschließen. Und zweitens wurde Ihnen bereits gesagt, dass Sie PositionsTotal() verwenden sollen .

 
Verstanden, danke für die Hilfe!
 
Roman Sharanov:
Verstanden, danke für die Hilfe!

Vergessen Sie nur nicht, in der hervorgehobenen Zeile OrderGetTicket() in PositionGetTicket() zu ändern.

Forum für Handel, automatisierte Handelssysteme und Strategietests

Alle Fragen für Anfänger auf MQL4, Hilfe und Diskussion über Algorithmen und Codes

Konstantin Nikitin, 2018.02.03 08:38

if(AccountInfoDouble(ACCOUNT_PROFIT)>profit_close_all)
         for(int i=PositionsTotal()-1; i>=0; i--)
            trade.PositionClose(OrderGetTicket(i),40);

Etwa so.

Sie nutzen den Zyklus von Null und umgekehrt, von mehr zu Null, weil Sie Aufträge direkt im Zyklus abschließen. Und zweitens wurde Ihnen bereits gesagt, dass Sie PositionsTotal() verwenden sollen.