Erros, bugs, perguntas - página 2175

 
Artyom Trishkin:

Serei eu o único com uma imagem deste post que não abre num novo popup? Mozilla FireFox 59.0.2 (64bit)

Ou seja, a imagem que está na citação não se abre.

Guardei-o para um com e olhei para ele. Parece uma captura de ecrã do fórum, já com um ícone de zoom.

 
Konstantin Nikitin:

Guardei-o para um com e olhei para ele. Parece uma captura de ecrã do fórum, já com um ícone de zoom.

Não, é uma imagem normal - se PKM e seleccionar abrir numa nova aba/janela, a imagem abre em tamanho real.

 
Artyom Trishkin:

Serei eu o único com uma imagem deste post que não abre numa nova janela popup? Mozilla FireFox 59.0.2 (64bit)

Quer dizer, a imagem que está na citação não abre.

Não abre, e eu tenho cromado, que abre tudo!

 
Vitaly Muzichenko:

Não abre, e eu tenho cromado, que abre tudo!


Não se trata do cromado, mas sim do guião do sítio web.

 

Meus senhores, há um erro que não compreendo. Se sabe qual é o problema, ajude-me, por favor.

Ao compilar o código abaixo, obtemos um erro:'ORDER_TYPE_BUY' - não pode converter enum;'ORDER_TYPE_SELL' - não pode converter enum.

Um código semelhante em mql4 compila bem. Vi exemplos semelhantes em outros EAs usando mql5. Mas, de momento, não está a compilar. Não faço ideia porque é assim e o que tem de ser corrigido.

//+------------------------------------------------------------------+
int Fun()
  {
   int res;

   int total=PositionsTotal(); // количество открытых позиций   
//--- перебор всех открытых позиций
   for(int i=total-1; i>=0; i--)
     {
      //--- параметры ордера
      ulong  position_ticket=PositionGetTicket(i);  // тикет позиции                                  

      ENUM_POSITION_TYPE type=(ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE);  // тип позиции      

      if(type!=ORDER_TYPE_BUY && type!=ORDER_TYPE_SELL) continue;

      switch(type)
        {
         case ORDER_TYPE_BUY:
            res=1;
            break;

         case ORDER_TYPE_SELL:
            res=2;
            break;
        }
      return(res);

     }

   return(3);
  }
//+------------------------------------------------------------------+

 
if (type !=POSITION_TYPE_BUY &&  type!=POSITION_TYPE_SELL) continue;  
 
Sergiy Riehl:

Meus senhores, há um erro que não compreendo. Se sabe qual é o problema, ajude-me, por favor.

Ao compilar o código abaixo, obtemos um erro:'ORDER_TYPE_BUY' - não pode converter enum;'ORDER_TYPE_SELL' - não pode converter enum.

Um código semelhante em mql4 compila bem. Vi exemplos semelhantes em outros EAs usando mql5. Mas, de momento, não está a compilar. Não faço ideia porquê e o que tem de ser corrigido.


Por favor insira o código correctamente:


O seu código é corrigido para si no seu posto

 
Sergiy Riehl:

Meus senhores, há um erro que não compreendo. Se sabe qual é o problema, ajude-me, por favor.

Ao compilar o código abaixo, obtemos um erro:'ORDER_TYPE_BUY' - não pode converter enum;'ORDER_TYPE_SELL' - não pode converter enum.

Um código semelhante em mql4 compila bem. Vi exemplos semelhantes em outros EAs usando mql5. Mas, de momento, não está a compilar. Não faço ideia porque é assim e o que tem de ser corrigido.



 ENUM_POSITION_TYPE type=(ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE);  // тип позиции      

      if(type!=ORDER_TYPE_BUY && type!=ORDER_TYPE_SELL) continue;


Atribui o tipo POSITION_TYPE

e compará-lo com ORDER_TYPE

 
Sergiy Riehl:

Meus senhores, há um erro que não compreendo. Se sabe qual é o problema, ajude-me, por favor.

Ao compilar o código abaixo, obtemos um erro:'ORDER_TYPE_BUY' - não pode converter enum;'ORDER_TYPE_SELL' - não pode converter enum.

Um código semelhante em mql4 compila bem. Vi exemplos semelhantes em outros EAs usando mql5. Mas, de momento, não está a compilar. Não faço ideia porquê e o que tem de ser corrigido.


Está a confundir as encomendas (na língua antiga) e posições na MQL5.

O tipo de posição pode ser (ENUM_POSITION_TYPE)

Identificador

Descrição

POSITION_TYPE_BUY

Comprar

POSITION_TYPE_SELL

Venda


Isto é OU "POSITION_TYPE_BUY" OU "POSITION_TYPE_SELL". Não pode haver qualquer outro acordo.

Por conseguinte, o seu código tomará a forma:

   for(int i=total-1; i>=0; i--)
     {
      //--- параметры позиции
      ulong  position_ticket=PositionGetTicket(i);  // тикет позиции                                  

      ENUM_POSITION_TYPE type=(ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE);  // тип позиции      

      switch(type)
        {
         case POSITION_TYPE_BUY:
            res=1;
            break;

         case POSITION_TYPE_SELL:
            res=2;
            break;
        }
      return(res);
     }
   return(3);
 
Obrigado a todos vós. Consegui tudo.