Verificação de posição mini índice

Para adicionar comentários, por favor Faça o login ou registrar
Willian De Caldas Leite
21
Willian De Caldas Leite  

Estou com  problema, na conta demo o EA funciona normal mas no testador de estrategia ele abre infinitas ordens ate meu saldo zerar.


Estou usando esse estrutura para abrir somente uma ordem.

if(SemPosicao() && SemOrdem()){
  
   // Aqui faço a execução da ordem send


   }

      bool SemPosicao()
     {
     return !PositionSelect(_Symbol);
      }
      
      
      bool SemOrdem()
      { 
      for(int i=OrdersTotal()-1; i>=0; i--)
   {
      OrderGetTicket(i);
      if(OrderGetString(ORDER_SYMBOL)==_Symbol)
         return false;
   }
   return true;
      
      }

As duas funções tem que retornar falso caso alguma posição ou ordem estiver aberta, mas isso não acontece. 

Coloquei um Print pra verificar o estado enquanto o testador de estrategia estava testando e o retorno é sempre true mesmo com varias posicões aberta.

Cid Ougaske
3064
Cid Ougaske  
Willian De Caldas Leite:

Estou com  problema, na conta demo o EA funciona normal mas no testador de estrategia ele abre infinitas ordens ate meu saldo zerar.


Estou usando esse estrutura para abrir somente uma ordem.

As duas funções tem que retornar falso caso alguma posição ou ordem estiver aberta, mas isso não acontece. 

Coloquei um Print pra verificar o estado enquanto o testador de estrategia estava testando e o retorno é sempre true mesmo com varias posicões aberta.

olá, sugestão é verificar se realmente existe posição para o ativo assim como fez com as ordens pendentes, mais seguro.

bool SemPosicao()
  {

   for(int i=PositionsTotal()-1;i>=0;i--)
   {
     string t_symbol=PositionGetSymbol(i);
     ulong ticket=PositionGetTicket(i);
     
     if(PositionSelectByTicket(ticket))    // se o ticket foi confirmado
         if(PositionGetInteger(POSITION_MAGIC)==m_magic)   // m_magic é o numero magico de seu EA se vc o utiliza
            return false;
   }

   return true;
  }


Para adicionar comentários, por favor Faça o login ou registrar