Imparare e scrivere insieme in MQL5 - pagina 38

 

Ho trovato questa dichiarazione naturale, ma il compilatore sta bestemmiando. Avverte nel seguente modo

'Type' - identificatore non dichiarato orderni.mq5 213 18

'Type' - atteso qualche operatore ordernir.mq5 213 18

'POSITION_TYPE' - l'espressione non ha effetto ordernir.mq5 213 4

Non sono un esperto di inglese, ma non è chiaro in entrambi i casi. Efficienza di espressione... ???? Sì e qual è il punto?

 
Dimka-novitsek:

Ho trovato questa dichiarazione naturale, ma il compilatore sta bestemmiando. È maledetto nel modo seguente

'Type' - identificatore non dichiarato ordernir.mq5 213 18

'Tipo' - qualche operatore atteso ordernii.mq5 213 18

POSITION_TYPE' - l'espressione non ha effetto ordernir.mq5 213 4

Non sono un esperto di inglese, ma non lo capisco comunque.

POSITION_TYPE è solo un identificatore. Guardate che tipo è questo identificatore.
 

GRAZIE!!! Darò un'occhiata.

Super!!! È un int!!!

 
Dimka-novitsek:

'POSITION_TYPE' - l'espressione non ha effetto orderni.mq5 213 4

Traduzione: "l'espressione non ha effetto".
 
Dimka-novitsek:

Ho trovato questa dichiarazione naturale, ma il compilatore sta bestemmiando. È stato maledetto nel seguente modo

'Type' - identificatore non dichiarato orderni.mq5 213 18

'Type' - atteso qualche operatore ordernir.mq5 213 18

'POSITION_TYPE' - l'espressione non ha effetto ordernir.mq5 213 4

Non sono un esperto di inglese, ma non è chiaro in entrambi i casi.

ENUM_POSITION_TYPE Type
 
notused:

Grande!!! Non impreca così, impreca già in modo diverso!
 
'PositionGetInteger' - nessuno degli overload può essere applicato all'ordine di chiamata della funzione.mq5 214 13 In breve, non la funzione, ma la chiamata. O meglio, quello che ci metto dentro.
bool  PositionGetInteger(
   ENUM_POSITION_PROPERTY_INTEGER  property_id,     // идентификатор свойства
   long&                           long_var         // сюда примем значение свойства
   );
Ho
Bull =PositionGetInteger(POSITION_TYPE,Type);
????????????
 
Dimka-novitsek:

GRAZIE!!! Darò un'occhiata.

Super!!! È un int!!!

No, non è int. Si guarda nel Reference book per vedere quale tipo corrisponde all'identificatore specificato.
 
Dimka-novitsek:
'PositionGetInteger' - nessuno degli overload può essere applicato all'ordine di chiamata della funzione.mq5 214 13 In breve, non è la funzione ma la chiamata. O meglio, quello che ci metto dentro.

Continui a non leggere la documentazione, non provi nemmeno a copiarla.

Cosa c'entra, non riesci a trovarlo? Non funziona?

//--- будем искать позицию по символу графика, на котором работает эксперт
   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' - nessuno degli overload può essere applicato all'ordine di chiamata della funzione.mq5 214 13 In breve, non la funzione, ma la chiamata. O meglio, quello che ci metto dentro. Ho ????????????

ENUM_POSITION_TYPE Type=(ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE);
Motivazione: