Especialistas: Sprut

 

Sprut:

Grade de ordens pendentes do tipo Stop e Limit.

Autor: Vladimir Karputov

 

Esse é um excelente ea para quem gosta de estratégias de grade, e pode ser customizado facilmente. Contudo, nessa versão para o site português do MQL5 há alguns bugs que precisam ser corrigidos a fim evitar recotes e/ou erros de execução. São eles:


Na linha 148, de "for(int i=0;i<CountOrders;i++)"  para "for(int i=1;i<CountOrders;i++)"  , ou seja, muda-se a contagem do número "0" para "1".

Na linha 185, de  "price=price_sell_limit-(double)i*ExtStepLimit;"  para  "price=price_sell_limit+(double)i*ExtStepLimit;" , ou seja, inverte-se o sinal negativo "-" para positivo "+".

 

Bom dia.

Poderia esclarecer se as posições que são fechadas quando lucro/perda são atingidos são somente do símbolo negociado? Ou todas as posições da conta?

Obrigado.

 
psrs55 :

Bom dia.

Poderia esclarecer se as posições que são fechadas quando lucro/perda são atingidos são somente do símbolo negociado? Ou todas as posições da conta?

Obrigado.

Fechado por símbolo e número mágico:

//+------------------------------------------------------------------+
//| 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
         if(m_position.Symbol()==m_symbol.Name() && m_position.Magic()==m_magic)
            m_trade.PositionClose(m_position.Ticket()); // close a position by the specified symbol
  }
 
Joao Raimundo Alexandre Neto #:

Esse é um excelente ea para quem gosta de estratégias de grade, e pode ser customizado facilmente. Contudo, nessa versão para o site português do MQL5 há alguns bugs que precisam ser corrigidos a fim evitar recotes e/ou erros de execução. São eles:


Na linha 148, de "for(int i=0;i<CountOrders;i++)"  para "for(int i=1;i<CountOrders;i++)"  , ou seja, muda-se a contagem do número "0" para "1".

Na linha 185, de  "price=price_sell_limit-(double)i*ExtStepLimit;"  para  "price=price_sell_limit+(double)i*ExtStepLimit;" , ou seja, inverte-se o sinal negativo "-" para positivo "+".

       Nova correção linha 148, de "for(int i=0;i<CountOrders;i++)"  para "for(int i=1;i<=CountOrders;i++)"  , ou seja, muda-se a contagem do número "0" para "1" e em seguida acrescenta-se o sinal "<".


 

 
Gostaria de pedir uma atualização, quando a FirstOrder for stopada teria como ele recolocar ela no lugar definido novamente?