MQL5で学び、共に書く - ページ 38

 

これは自然な宣言だと思ったのですが、コンパイラは悪態をついています。以下のように呪われていた。

'Type' - 未宣言の識別子 orderni.mq5 213 18

'Type' - 何らかの演算子が期待されています ordernir.mq5 213 18

POSITION_TYPE' - 式は何の効果もありません ordernir.mq5 213 4

私は英語の専門家ではありませんが、どちらとも言えません。表現の効率化...????はい、そして何が言いたいのでしょうか?

 
Dimka-novitsek:

これは自然な宣言だと思ったのですが、コンパイラは悪態をついています。以下のように呪われています。

'Type' - 未宣言の識別子 ordernir.mq5 213 18

'Type' - 何らかのオペレータが期待されている ordernii.mq5 213 18

POSITION_TYPE' - 式は何の効果もない ordernir.mq5 213 4

英語の専門家ではないのですが、とにかくわからない。

POSITION_TYPE は単なる識別子である。この識別子がどのようなタイプであるかを見てみましょう。
 

ありがとうございます!見てみるよ。

スーパー!!!!intなんです!!!

 
Dimka-novitsek:

POSITION_TYPE' - 式は何の効果もない orderni.mq5 213 4

直訳すると、「表現には効果がない」。
 
Dimka-novitsek:

これは自然な宣言だと思ったのですが、コンパイラは悪態をついています。以下のように呪われていた。

'Type' - 未宣言の識別子 orderni.mq5 213 18

'Type' - 何らかの演算子が期待されています ordernir.mq5 213 18

POSITION_TYPE' - 式は何の効果もありません ordernir.mq5 213 4

私は英語の専門家ではありませんが、どちらとも言えません。

ENUM_POSITION_TYPE Type
 
notused:

素晴らしい!!!そんな悪口じゃない、もう違う悪口だ!
 
'PositionGetInteger' -関数の 呼び出し順には、いずれのオーバーロードも適用できません。mq5 214 13 つまり、関数ではなく、呼び出しです。というか、私が送り込んだものです。
bool  PositionGetInteger(
   ENUM_POSITION_PROPERTY_INTEGER  property_id,     // идентификатор свойства
   long&                           long_var         // сюда примем значение свойства
   );
私は
Bull =PositionGetInteger(POSITION_TYPE,Type);
????????????
 
Dimka-novitsek:

ありがとうございます!見てみるよ。

スーパー!!!!intなんです!!!

いいえ、intではありません。指定された識別子に対応する型は、リファレンスブックで確認することになる。
 
Dimka-novitsek:
'PositionGetInteger' - 関数の呼び出し順には、どのオーバーロードも適用できません。mq5 214 13 要するに、関数ではなく、呼び出しが問題なのです。というか、私が送り込んだものです。

まだドキュメントを読まないで、コピーしようともしない。

それがどうしたんだ、見つからないのか?効かないんですか?

//--- будем искать позицию по символу графика, на котором работает эксперт
   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' - 関数の呼び出し順には、いずれのオーバーロードも適用できません。mq5 214 13 つまり、関数ではなく、呼び出しです。というか、私が送り込んだものです。私は、??????????????????????????????????????!

ENUM_POSITION_TYPE Type=(ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE);