Alle Trades gleichzeitig schließen MQL5

 

Hallo zusammen

 

Ein Forum besteht zwar aus Informationen geben und Informationen nehmen. Ich als Neuling, muss aber leider erst mal nehmen. Daher hätte ich folgende Frage.

Kann man in einem EA (MQL5 Handelsklasse CTrade), mehrere (alle) Trades gleichzeitig schließen? Also nicht durch eine For-Schleife und somit je Tick einen Trade, sondern alle Trades innerhalb eines Ticks.

Wäre prima wenn mir jemand helfen könnte, ich verzweifle schon langsam. Seit Stunden hänge ich an dem Thema. Hier im Forum hab ich bisher nur die For-Schleife gefunden.

 

Danke und Grüße

Robert

 
trading_newbie:

Hallo zusammen

 

Ein Forum besteht zwar aus Informationen geben und Informationen nehmen. Ich als Neuling, muss aber leider erst mal nehmen. Daher hätte ich folgende Frage.

Kann man in einem EA (MQL5 Handelsklasse CTrade), mehrere (alle) Trades gleichzeitig schließen? Also nicht durch eine For-Schleife und somit je Tick einen Trade, sondern alle Trades innerhalb eines Ticks.

Wäre prima wenn mir jemand helfen könnte, ich verzweifle schon langsam. Seit Stunden hänge ich an dem Thema. Hier im Forum hab ich bisher nur die For-Schleife gefunden.

 

Danke und Grüße

Robert

Eine schleife wird beim anstossen bearbeitet, unabhängig von ticks. Nach dem start läuft die durch, on kein tick dabei kommt oder 100 ist unabhängig 

 

Da es keinen 'zentralen Zugang' zu allen offenen Positionen gibt (über die man mit einem klick oder Befehl) alles schließt, bleibt nur die Schleife - aber das geht schnell, vor allem, wenn Du asynchrone Aufträge verwendest.

Allenfalls - aber ich glaub, das steht nicht zur Diskussion - könntest Du (versuchen,) alles Geld vom Konto abbuchen, dann schließt der Broker alle Positionen.

 
trading_newbie:

Hallo zusammen

 

Ein Forum besteht zwar aus Informationen geben und Informationen nehmen. Ich als Neuling, muss aber leider erst mal nehmen. Daher hätte ich folgende Frage.

Kann man in einem EA (MQL5 Handelsklasse CTrade), mehrere (alle) Trades gleichzeitig schließen? Also nicht durch eine For-Schleife und somit je Tick einen Trade, sondern alle Trades innerhalb eines Ticks.

Wäre prima wenn mir jemand helfen könnte, ich verzweifle schon langsam. Seit Stunden hänge ich an dem Thema. Hier im Forum hab ich bisher nur die For-Schleife gefunden.

 

Danke und Grüße

Robert

Hallo,

natürlich kann man das umsetzen, aber ohne for Schleife quasi Unmöglich.

//+------------------------------------------------------------------+
//|                                                     Position.mq5 |
//|                                  Copyright 2023, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2023, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"

#include <Trade/Trade.mqh>
CPositionInfo  m_position;


//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit() {
//---

//---
   return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason) {
//---

}
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick() {
//---

// Bedinnung muss man selbst wählen (Button oder durch EA befehl)
   if(Bedinnung) {
      ClosePos();
   }

}
//+------------------------------------------------------------------+
void ClosePos() {
   for(int i=PositionsTotal()-1; i>=0; i--)
      if(m_position.SelectByIndex(i))
         m_trade.PositionClose(m_position.Ticket());
}
//+------------------------------------------------------------------+
Grund der Beschwerde: