Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 1227

 
Olá! por favor explique ou aponte os dedos como programar Fechar Posições Abertas com tipo de conta Hedge/Hedg. como fechar posições hedged em mql5? só encontrou este material. https://www.mql5.com/ru/articles/4830
Совершение сделок - Торговые операции - Справка по MetaTrader 5
Совершение сделок - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 
BlackCoffee:
Olá! Por favor, explique ou aponte os dedos como programar Fechar Posições Abertas com tipo de conta Hedge/Hedg. como fechar posições cobertas em mql5? só encontrou este material. https://www. mql5.com/ru/articles/4830

Exemplo do código Fechar todas as posições

Quando se lida com posições, é necessário percorrer todas as posições até 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:

Exemplo do código Fechar todas as posições

Quando se lida com posições, é necessário percorrer todas as posições até zero:

Obrigado pela resposta!!! E se precisar apenas de fechar uma posição de venda? Devo acrescentar estas linhas?
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);
                       }
 

Este é o tipo de coisa que eu fiz. Para fechar os eus para uma sebe.


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
                       }
  }
Mas por vezes há uma posição deixada em aberto por alguma razão. Se estabelecermos condição: Fechar se houver mais de cinco posições.
 
BlackCoffee:

Este é o tipo de coisa que eu fiz. Para fechar os eus para uma sebe.


Mas por vezes há uma posição que, por alguma razão, não está fechada. Se estabelecermos uma condição: fechar se houver mais de cinco posições.

Já está certo, então:

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 não conseguir fechar, procurar no ficheiro de registo. Pode haver um milhão de razões: redireccionamento, sem comércio, sem preço, proximidade de níveis de paragem...

 
Olá. Porque é que preciso de eliminar objectos de classe na desinicialização? Ficarão na memória depois do terminal estar fechado? Ou permanecerão na memória enquanto o terminal estiver a funcionar, sem um EA? O que mais precisa de ser apagado, excepto os objectos de classe?
 
Ivan_Invanov:
Olá. Porque é necessário eliminar os objectos de classe na desinicialização? Ficarão na memória depois do terminal estar fechado? Ou permanecerão na memória enquanto o terminal estiver a funcionar, sem o Expert Advisor? O que mais precisa de ser apagado, excepto os objectos de classe?

Por exemplo, elimina-se o Expert Advisor do gráfico, mas todos os desenhos (objectos) permanecem no gráfico. Na desinicialização, eliminar todas as coisas desnecessárias para ter um gráfico limpo. É assim.

 
Nauris Zukas:

Por exemplo, elimina-se o Expert Advisor do gráfico, mas todos os desenhos (objectos) permanecem no gráfico. Na desinicialização, eliminar todas as coisas desnecessárias para ter um gráfico limpo. É assim.

Eu não utilizo códigos gráficos. Vi no programa de outras pessoas que os objectos de classe são eliminados. Compreendi correctamente que se não forem apagados na desinicialização, permanecerão na memória até que o terminal seja fechado. Que mais é melhor eliminar para além dos objectos de classe? Obrigado.
 

Hi !

Como é que atribuo uma identificação a um indicador? Comprei um EA, é orientado para um período de tempo mais elevado para negociar com um mais baixo. O programador escreveu que tenho de colocar o indicador no gráfico superior e atribuir-lhe uma identificação. Sou novo na MT, não sei como o fazer. Por favor aconselhem-me, se alguém souber como o fazer. (Estou a utilizar a versão MT5)

 
secret:

Como posso impedir que os comércios de outros gráficos apareçam no gráfico?

Apenas os ofícios do robô que está no gráfico dado.

Serei eu o único a ser incomodado por um emaranhado de trocas de muitos robôs num único gráfico? Mais ninguém se deu ao trabalho?

Razão: