Как перемещаться по всем позициям и получать их тип в MQL5 - PullRequest
0 голосов
/ 06 апреля 2020
for(int i=0; i<PositionsTotal(); i++)
           {

             string id=PositionGetString(POSITION_COMMENT);
           int type = PositionGetInteger(POSITION_TYPE);

У меня есть советник, который я хочу получить тип позиций и перемещаться по информации о позициях .... эти две строки кода не работают для меня, не возвращайте значение

1 Ответ

1 голос
/ 07 апреля 2020

Во-первых, вам необходимо выбрать позицию перед вызовом функций PositionGetDouble(), PositionGetInteger(), PositionGetString().

Вы можете выбрать позицию с помощью PositionSelect() в неттинговых счетах, а также вызвать функцию PositionGetTicket() возвращает номер билета, а также выбирает текущие позиции (но это ненадежно). Вы также можете использовать PositionSelectByTicket(), если вам известен номер билета.

Чтобы всегда получать набор данных sh, рекомендуется позвонить по номеру PositionSelectByTicket() после получения билета. из функции PositionGetTicket(), перед вызовом функций PositionGetDouble(), PositionGetInteger() и PositionGetString().

Вот пример, он печатает тип позиции и ее билет.

for(int i = PositionsTotal() - 1; i >= 0; i--) {
      ulong ticket = PositionGetTicket(i);
      if(ticket>0){
          PositionSelectByTicket(ticket);
          ENUM_POSITION_TYPE posType = PositionGetInteger(POSITION_TYPE);
          Print(EnumToString(posType) + " : " + (string)ticket);
      }
}
...