Aprender e escrever juntos em MQL5 - página 38

 

Descobri que se trata de uma declaração natural, mas o compilador está a jurar. Foi amaldiçoado da seguinte forma

'Tipo' - identificador não declarado orderni.mq5 213 18

'Tipo' - alguns operadores esperavam ordernir.mq5 213 18

POSITION_TYPE' - expressão não tem efeito ordernir.mq5 213 4

Não sou perito em inglês, mas não é claro de qualquer das maneiras. Eficiência de expressão... ???? Sim e qual é o objectivo?

 
Dimka-novitsek:

Descobri que se trata de uma declaração natural, mas o compilador está a jurar. É amaldiçoado da seguinte forma

'Tipo' - identificador não declarado ordernir.mq5 213 18

'Tipo' - alguns operadores esperavam ordernii.mq5 213 18

POSITION_TYPE' - expressão não tem efeito ordernir.mq5 213 4

Não sou especialista em inglês, mas de qualquer forma não o compreendo.

POSITION_TYPE é apenas um identificador. Veja de que tipo é este identificador.
 

OBRIGADO!!! Vou dar uma vista de olhos.

Super!!! É uma int!!!

 
Dimka-novitsek:

POSITION_TYPE' - expressão não tem efeito orderni.mq5 213 4

Tradução: "a expressão não tem efeito".
 
Dimka-novitsek:

Descobri que se trata de uma declaração natural, mas o compilador está a jurar. Foi amaldiçoado da seguinte forma

'Tipo' - identificador não declarado orderni.mq5 213 18

'Tipo' - alguns operadores esperavam ordernir.mq5 213 18

POSITION_TYPE' - expressão não tem efeito ordernir.mq5 213 4

Não sou perito em inglês, mas não é claro de qualquer das maneiras.

ENUM_POSITION_TYPE Type
 
notused:

Óptimo!!! Não jura assim, jura já de forma diferente!
 
PositionGetInteger' - nenhuma das sobrecargas pode ser aplicada à ordem de chamada da função.mq5 214 13 Em suma, não a função, mas a chamada. Ou melhor, o que lhe dou de comer.
bool  PositionGetInteger(
   ENUM_POSITION_PROPERTY_INTEGER  property_id,     // идентификатор свойства
   long&                           long_var         // сюда примем значение свойства
   );
Eu tenho
Bull =PositionGetInteger(POSITION_TYPE,Type);
????????????
 
Dimka-novitsek:

OBRIGADO!!! Vou dar uma vista de olhos.

Super!!! É uma int!!!

Não, não é intrigante. Procura no livro de referência para ver que tipo corresponde ao identificador especificado.
 
Dimka-novitsek:
PositionGetInteger' - nenhuma das sobrecargas pode ser aplicada à ordem de chamada da função.mq5 214 13 Em suma, não é a função mas sim a chamada. Ou melhor, o que lhe dou de comer.

Ainda não se lê a documentação, nem sequer se tenta copiá-la.

O que é que isso tem a ver? Não o consegue encontrar? Não funciona?

//--- будем искать позицию по символу графика, на котором работает эксперт
   string symbol=Symbol();
//--- попробуем получить позицию
   bool selected=PositionSelect(symbol);
   if(selected) // если позиция выбрана
     {
      long pos_id            =PositionGetInteger(POSITION_IDENTIFIER);
      double price           =PositionGetDouble(POSITION_PRICE_OPEN);
      ENUM_POSITION_TYPE type=(ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE);
      long pos_magic         =PositionGetInteger(POSITION_MAGIC);
      string comment         =PositionGetString(POSITION_COMMENT);
      PrintFormat("Позиция #%d по %s: POSITION_MAGIC=%d, цена=%G, тип=%s, комментарий=%s",
                  pos_id, symbol, pos_magic, price,EnumToString(type), comment);
     }
   else        // если выбрать позицию не удалось
     {
      PrintFormat("Не удалось выбрать позицию по символу %s. Ошибка",symbol,GetLastError());
     }
  }

https://www.mql5.com/ru/articles/211

Ордерa, позиции и сделки в MetaTrader 5
Ордерa, позиции и сделки в MetaTrader 5
  • 2011.01.05
  • MetaQuotes Software Corp.
  • www.mql5.com
Надежный торговый робот не может быть создан без понимания механизмов работы торговой системы MetaTrader 5. Клиентский терминал получает от торгового сервера информацию о позициях, ордерах и сделках. Чтобы правильно обработать эти данные средствами MQL5 необходимо хорошо представлять как происходит взаимодействие mql5-программы и среды исполнения терминала.
 
Dimka-novitsek:
PositionGetInteger' - nenhuma das sobrecargas pode ser aplicada à ordem de chamada da função.mq5 214 13 Em suma, não a função, mas a chamada. Ou melhor, o que lhe dou de comer. Eu tenho ????????????

ENUM_POSITION_TYPE Type=(ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE);