Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 1227

 
Ciao, per favore spiega o indica le dita come chiudere programmaticamente le posizioni aperte con il tipo di conto Hedge/Hedg. come chiudere le posizioni hedged in mql5? solo trovato questo materiale. https://www.mql5.com/ru/articles/4830
Совершение сделок - Торговые операции - Справка по MetaTrader 5
Совершение сделок - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 
BlackCoffee:
Ciao, per favore spiega o indica le dita come chiudere programmaticamente le posizioni aperte con il tipo di conto Hedge/Hedg. come chiudere le posizioni hedged in mql5? solo trovato questo materiale. https://www. mql5.com/ru/articles/4830

Esempio dal codice Close all positions

Quando si lavora con le posizioni, è necessario fare un ciclo di tutte le posizioni fino a zero:

//+------------------------------------------------------------------+
//| 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:

Esempio dal codice Close all positions

Quando si tratta di posizioni, è necessario fare un ciclo di tutte le posizioni fino a zero:

Grazie per la risposta!!! E se avete solo bisogno di chiudere una posizione di vendita? Devo aggiungere queste righe?
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);
                       }
 

Questo è il tipo di cose che ho fatto. Chiudere i sé per una siepe.


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
                       }
  }
Ma a volte c'è una posizione lasciata aperta per qualche motivo. Se impostiamo la condizione: Chiudi se ci sono più di cinque posizioni.
 
BlackCoffee:

Questo è il tipo di cose che ho fatto. Chiudere i sé per una siepe.


Ma a volte c'è una posizione che non è chiusa per qualche motivo. Se impostiamo una condizione: chiudere se ci sono più di cinque posizioni.

Allora è già giusto:

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
  }

e se non riesce a chiudersi, guardate nel file di log. Ci potrebbero essere un milione di ragioni: reindirizzamento, nessun trade, nessun prezzo, vicinanza dei livelli di stop...

 
Salve. Perché è necessario cancellare gli oggetti di classe nella deinizializzazione? Rimarranno in memoria dopo la chiusura del terminale? O rimarranno in memoria mentre il terminale è in esecuzione, senza un EA? Cos'altro deve essere cancellato a parte gli oggetti della classe?
 
Ivan_Invanov:
Salve. Perché è necessario cancellare gli oggetti della classe nella deinizializzazione? Rimarranno in memoria dopo la chiusura del terminale? O rimarranno in memoria mentre il terminale è in esecuzione, senza l'Expert Advisor? Cos'altro deve essere cancellato a parte gli oggetti della classe?

Per esempio, si elimina l'Expert Advisor dal grafico, ma tutti i disegni (oggetti) rimangono sul grafico. Nella deinizializzazione, cancellate tutte le cose inutili per avere un grafico pulito. Funziona così.

 
Nauris Zukas:

Per esempio, si elimina l'Expert Advisor dal grafico, ma tutti i disegni (oggetti) rimangono sul grafico. Nella deinizializzazione, cancellate tutte le cose inutili per avere un grafico pulito. Funziona così.

Non uso codici grafici. Ho visto nel prog di altre persone che gli oggetti di classe vengono cancellati. Ho capito bene che se non vengono cancellati nella deinizializzazione, rimangono in memoria fino alla chiusura del terminale. Cos'altro oltre agli oggetti di classe è meglio cancellare? Grazie.
 

Ciao!

Come si assegna un id a un indicatore? Ho comprato un EA, è orientato su un timeframe superiore per fare trading su uno inferiore. Lo sviluppatore ha scritto che devo mettere l'indicatore sul grafico superiore e assegnargli un id. Sono nuovo di MT, non so come fare. Per favore consigliatemi, se qualcuno sa come farlo. (Sto usando la versione MT5)

 
secret:

Come posso evitare che le compravendite di altri grafici appaiano sul grafico?

Solo i trade del robot che si trova sul grafico dato.

Sono l'unico che è infastidito da un'accozzaglia di operazioni di molti robot su un grafico? Nessun altro si è preoccupato?