количество валютных пар по которым открыты позиции - страница 3

 
если писать код на мт4 под конкретно эту задачу

Natalya Dzerzhinskaya:
Ограничить надо портфель в торговле.
если 2 символа торгуют то остальные пары в игнор

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

bool CurrencyPairs()
  {
//+------------------------------------------------------------------+
//MT4 функция разрешения на открытие ордеров по символу
//проверяет наличие ордеров по нескольким символам
//если нет ордеров или есть ордера на одном символе возвращает    TRUE
//если есть ордера по двум символам или более вернет    FALSE
//+------------------------------------------------------------------+
   bool fl=true;   string sym="";
   for(int q=0;q<OrdersTotal() && fl && !IsStopped();q++)
     {
      if(!OrderSelect(q,SELECT_BY_POS))continue;      
      if(OrderType()>OP_SELL)continue;
      if(sym=="")sym=OrderSymbol();
      else if(sym!=OrderSymbol())fl=false;
     }
   return fl;
  }

с уважением.

 
Natalya Dzerzhinskaya:
mql4 не распознаёт))

Ограничить надо портфель в торговле.
если 2 символа торгуют то остальные пары в игнор


а зачем тогда вообще перебирать ордера в рынке или символы в обзоре??

посмотрите в портфеле - вы же его ведёте и он маленький (всего 2 символа)...

 
Andrey Kisselyov:
приведите полный код. во включаемый файл я могу написать сколько угодно кода, а вам кинуть одну строку по его включению и по вашему такой код будет оптимальный? жду полный код со всеми функциями работы на чистом MQL5.

Дело не во включаемом файле, а в приведенном фрагменте. При поставленной задаче - определить количество символов, по которым открыты позиции, - предложенный вами для МТ5 перебор символов в обзоре рынка, с попыткой выделения - это антипаттерн - пример того, как не надо программировать. Решение для МТ5 очевидное - PositionsTotal и PositionGetSymbol. Если вы его не знаете и пытаетесь даже привести какие-то неубедительные доводы за свое творение, то верх неуважения отправлять кого-либо читать справку.

Вместо хэша можно использовать массив приведенный выше. Но хэш - просто удобнее (зачем тогда в MQL ООП вообще?). Кодов в готовыми хэшами - предостаточно, включая и этот сайт. Вы можете ждать их хоть вечно. Я не буду сюда прикреплять - там по вашим меркам много кода, вам не понравится. Прочие желающие могут постучаться в личку - это вещи не секретные (и некоторые варианты я публиковал).

 
Stanislav Korotky:

Дело не во включаемом файле, а в приведенном фрагменте. При поставленной задаче - определить количество символов, по которым открыты позиции, - предложенный вами для МТ5 перебор символов в обзоре рынка, с попыткой выделения - это антипаттерн - пример того, как не надо программировать.

с этим не соглашусь, есть только 2 варианта решения поставленной задачи.
1 перебор символов и сравнение на скольких есть открытые позиции.(перебираем символы, если есть позиция учитываем ее, одна операция)
2 перебор позиций и получения символов по которым они открыты.(перебор позиций, сравнение есть ли данный символ в массиве, если нет заносим в массив, учитываем новый символ, как минимум две операции, не говоря уже о занятой под массив символов памяти).

Stanislav Korotky:

Решение для МТ5 очевидное - PositionsTotal и PositionGetSymbol. Если вы его не знаете и пытаетесь даже привести какие-то неубедительные доводы за свое творение, то верх неуважения отправлять кого-либо читать справку.

на это уже ответил, читайте справку. если вы не видите разницы между учетом позиций на неттинг и хедж счете, у меня нет слов.

Stanislav Korotky:
Вместо хэша можно использовать массив приведенный выше. Но хэш - просто удобнее (зачем тогда в MQL ООП вообще?).

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

Stanislav Korotky:
Кодов в готовыми хэшами - предостаточно, включая и этот сайт. Вы можете ждать их хоть вечно. Я не буду сюда прикреплять - там по вашим меркам много кода, вам не понравится.

если кода много, следовательно ваш код не оптимальный. тогда не вижу смысла, с вашей стороны, утверждать что мой код тупой и не оптимальный, и считаю что ваши доводы мягко сказать не обоснованы.

с уважением.

P.S. это вам маленький урок, чтоб в пред не пытались кого либо оскорблять в своих постах, уважайте себя и собеседника, с которым ведете беседу, не нужно хамить. все мы в этом мире ученики и идем по дороге знаний каждый своим путем. когда вы говорите  "тупой код", вы говорите "тупой программист", что ко мне явно не относиться.

 
Andrey Kisselyov:


Не хамите. А по существу от вас - только детский лепет.

Причина обращения: