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

 
Hallo! Bitte erklären Sie oder zeigen Sie Finger, wie man programmatisch offene Positionen mit Hedge/Hedg-Kontotyp schließen kann. Wie schließt man abgesicherte Positionen in mql5? Ich habe nur dieses Material gefunden. https://www.mql5.com/ru/articles/4830
Совершение сделок - Торговые операции - Справка по MetaTrader 5
Совершение сделок - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 
BlackCoffee:
Hallo! Bitte erklären Sie oder zeigen Sie Finger, wie man programmatisch offene Positionen mit Hedge/Hedg-Kontotyp schließt. Wie schließt man abgesicherte Positionen in mql5? habe nur dieses Material gefunden. https://www. mql5.com/ru/articles/4830

Beispiel für den Code " Alle Positionen schließen

Bei der Arbeit mit Positionen ist es notwendig, alle Positionen in einer Schleife auf Null zu bringen:

//+------------------------------------------------------------------+
//| Close all positions                                              |
//+------------------------------------------------------------------+
void CloseAllPositions()
  {
   for(int i=PositionsTotal()-1;i>=0;i--) // returns the number of current positions
      if(m_position.SelectByIndex(i))     // selects the position by index for further access to its properties
         m_trade.PositionClose(m_position.Ticket()); // close a position by the specified symbol
  }

Close all positions
Close all positions
  • www.mql5.com
Закрытие позиций при достижении уровня прибыли  Close all if Profit . При этом суммируется общая прибыль по всем позициям: вне зависимости от символа и magic number. Подсчёт прибыли происходит только в момент рождения нового бара.
 
Vladimir Karputov:

Beispiel für den Code " Alle Positionen schließen

Wenn es sich um Positionen handelt, müssen alle Positionen in einer Schleife bis auf Null durchlaufen werden:

Danke für die Antwort!!! Was ist, wenn Sie nur eine Verkaufsposition schließen müssen? Soll ich diese Zeilen hinzufügen?
if((ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL)
                       {
                         //--- prepare request for close SELL position
                        mrequest.type =ORDER_TYPE_BUY;
                        mrequest.price=SymbolInfoDouble(_Symbol,SYMBOL_ASK);
                       }
 

Das ist die Art von Dingen, die ich gemacht habe. Um sich selbst für eine Hecke zu schließen.


void CloseSellPositions()
  {
   for(int i=PositionsTotal()-1;i>=0;i--) // returns the number of current positions
      if(m_position.SelectByIndex(i))     // selects the position by index for further access to its properties
         if((ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL)
                       {
                            m_trade.PositionClose(m_position.Ticket()); // close a position by the specified symbol
                       }
  }
Aber manchmal bleibt aus irgendeinem Grund eine Stelle frei. Wenn wir die Bedingung "Schließen, wenn es mehr als fünf Positionen gibt" festlegen.
 
BlackCoffee:

Das ist die Art von Dingen, die ich gemacht habe. Um sich selbst für eine Hecke zu schließen.


Aber manchmal gibt es eine Position, die aus irgendeinem Grund nicht geschlossen ist. Wenn wir eine Bedingung festlegen: Schließen, wenn es mehr als fünf Positionen gibt.

Dann ist es schon richtig:

void CloseSellPositions()
  {
   for(int i=PositionsTotal()-1;i>=0;i--) // returns the number of current positions
      if(m_position.SelectByIndex(i))     // selects the position by index for further access to its properties
         if(m_position.PositionType()==POSITION_TYPE_SELL)
            m_trade.PositionClose(m_position.Ticket()); // close a position by the specified symbol
  }

und wenn es sich nicht schließen lässt, sehen Sie in der Protokolldatei nach. Dafür kann es eine Million Gründe geben: Umleitung, kein Handel, kein Preis, Nähe der Stopp-Levels...

 
Hallo. Warum müssen Sie Klassenobjekte bei der Deinitialisierung löschen? Bleiben sie im Speicher, wenn das Terminal geschlossen wird? Oder bleiben sie im Speicher, solange das Terminal läuft, ohne dass ein EA vorhanden ist? Was muss außer den Klassenobjekten noch gelöscht werden?
 
Ivan_Invanov:
Hallo. Warum müssen Sie die Klassenobjekte bei der Deinitialisierung löschen? Bleiben sie im Speicher, wenn das Terminal geschlossen wird? Oder bleiben sie im Speicher, während das Terminal läuft, ohne den Expert Advisor? Was muss außer den Klassenobjekten noch gelöscht werden?

Sie löschen zum Beispiel den Expert Advisor aus dem Diagramm, aber alle Zeichnungen (Objekte) bleiben im Diagramm. Löschen Sie bei der Deinitialisierung alles Unnötige, um ein sauberes Diagramm zu erhalten. Das geht so.

 
Nauris Zukas:

Sie löschen zum Beispiel den Expert Advisor aus dem Diagramm, aber alle Zeichnungen (Objekte) bleiben im Diagramm erhalten. Löschen Sie bei der Deinitialisierung alles Unnötige, um ein sauberes Diagramm zu erhalten. Das geht so.

Ich verwende keine grafischen Codes. Ich habe in den Prog anderer Leute gesehen, dass Klassenobjekte gelöscht werden. Habe ich das richtig verstanden, dass sie, wenn sie bei der Deinitialisierung nicht gelöscht werden, im Speicher bleiben, bis das Terminal geschlossen wird? Was sollte man außer Klassenobjekten noch löschen? Ich danke Ihnen.
 

Hallo!

Wie weise ich einem Indikator eine ID zu? Ich habe einen EA gekauft, der auf einen höheren Zeitrahmen ausgerichtet ist, um auf einem niedrigeren zu handeln. Der Entwickler schrieb, dass ich den Indikator auf das übergeordnete Diagramm setzen und ihm eine ID zuweisen muss. Ich bin neu bei MT, ich weiß nicht, wie man es macht. Bitte beraten Sie mich, wenn jemand weiß, wie man das macht. (Ich verwende die Version MT5)

 
secret:

Wie kann ich verhindern, dass Trades aus anderen Charts auf dem Chart angezeigt werden?

Nur die Trades des Roboters, die sich auf dem angegebenen Chart befinden.

Bin ich der Einzige, den ein Wirrwarr an Trades von vielen Robotern in einem Chart stört? Niemand sonst hat sich die Mühe gemacht?