Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Пиши программы на заказ. Зарабатывай с помощью сервиса Фриланс!
Sergey
214
Sergey 2013.10.02 05:39 

Планирую делать так:

int MyOP = NumberOfPositions(NULL,-1,Magic);

int AllOP = NumberOfPositions(NULL,-1,-1);

int Alien = AllOP-MyOP

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает количество позиций.                                 |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
int NumberOfPositions(string sy="", int op=-1, int mn=-1) {
  int i, k=OrdersTotal(), kp=0;

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderSymbol()==sy || sy=="") {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) kp++;
          }
        }
      }
    }
  }
  return(kp);
}

Нормально? Или можно придумать лучше?

Alexander
2441
Alexander 2013.10.02 05:53  

Для себя родного измени функцию, Замени

if (mn<0 || OrderMagicNumber()==mn) kp++;

на

if (OrderMagicNumber()!=mn) kp++;

Тогда достаточно будет одной строчки

int Alien = NumberOfPositions(NULL,-1,Magic);

Sergey
214
Sergey 2013.10.02 06:19  
спасибо
Mikhail Kozhemyako
1177
Mikhail Kozhemyako 2013.10.02 06:21  
boing9267:

Планирую делать так:

int MyOP = NumberOfPositions(NULL,-1,Magic);

int AllOP = NumberOfPositions(NULL,-1,-1);

int Alien = AllOP-MyOP

Нормально? Или можно придумать лучше?

Всё нормально, работает.Просто наверное чужой код выкладывать на всеобщее осмотрение, тем более его менять. Ну или комментарии хотя бы убрать.
Sergey
214
Sergey 2013.10.02 06:30  
а в чем криминал?
Mikhail Kozhemyako
1177
Mikhail Kozhemyako 2013.10.02 06:42  
boing9267:
а в чем криминал?


А просто подставив шапку от имени другого человека. Мало ли как Вы можете изменит код, а ему потом расхлёбывай...Конечно этот код выложен в свободном доступе, но если код меняете под свои задачи уберите хотя бы шапку.
Sergey
214
Sergey 2013.10.02 07:29  
Sepulca:


А просто подставив шапку от имени другого человека. Мало ли как Вы можете изменит код, а ему потом расхлёбывай...Конечно этот код выложен в свободном доступе, но если код меняете под свои задачи уберите хотя бы шапку.

В измененном коде комментов нет + я не планирую выкладывать измененный код. В сообщении оставил код с комментами с целью указания авторства.
Alekseu Fedotov
729
Alekseu Fedotov 2013.10.02 08:46  
NumberOfPositions(string sy="", int op=-1, int mn=-1)boing9267:

В измененном коде комментов нет + я не планирую выкладывать измененный код. В сообщении оставил код с комментами с целью указания авторства.

Не обязательно что-то меять.

Вызываем

NumberOfPositions(); все, и чюжие и свои.

/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий