Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1611

 
Alexey Viktorov #:
А чего до завтра-то ждать? Если лениво просматривать спецификации, погоняй скрипт по всем символам которые интересуют и найди совпадение валюты маржи и валюты прибыли.
Я не все проверил перед тем как писать, но совпадений не обнаружил…

Сегодня немного занят


Taras Slobodyanik #:

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

Все сложно забить в массив единоразово

 
Yevhenii Levchenko #:

Вопрос по статической переменной var метода X::doJob(). Есть класс U, который создает объект типа Х, выполняет кое-какую работу и затем уничтожает его. И так периодически. Вопрос: когда удаляется переменная var?


Она будет жить вечно.

 
Koldun Zloy #:

Она будет жить вечно.

До тех пор пока объект U жив? Или пока терминал не перегрузится? Грубо говоря, после чего она удаляется?

 
Yevhenii Levchenko #:

До тех пор пока объект U жив? 

нет, экземпляр класса может быть даже не создан, но для статик поля  класса будет выделена память и произведена инициализация.... кстати, Ваш пример, по-моему, не должен компилироваться, инициализация статик поля должна быть вне описания

Yevhenii Levchenko #:

ли пока терминал не перегрузится? Грубо говоря, после чего она удаляется?

терминал тут вообще не причем, время жизни такое же как у глобально описанных переменных, или обычных статик переменных - память распределяется в момент загрузки MQL-программы, и освобождается при выгрузке  MQL-программы

 
Igor Makanu #:

нет, экземпляр класса может быть даже не создан, но для статик поля  класса будет выделена память и произведена инициализация.... кстати, Ваш пример, по-моему, не должен компилироваться, инициализация статик поля должна быть вне описания

Норм! вроде бы компилируется...

Igor Makanu #:

терминал тут вообще не причем, время жизни такое же как у глобально описанных переменных, или обычных статик переменных - память распределяется в момент загрузки MQL-программы, и освобождается при выгрузке  MQL-программы

То есть, если это все внутри советника, переменная сидит в памяти до тех пор пока не будет OnDeinit() советника?

 
Yevhenii Levchenko #:

Норм! вроде бы компилируется...

То есть, если это все внутри советника, переменная сидит в памяти до тех пор пока не будет OnDeinit() советника?

Статические переменные уничтожаются после OnDeinit().

 
Koldun Zloy #:

Статические переменные уничтожаются после OnDeinit().

Ок! Спасибо :)

 
Помогите с выбором брокера, где лучше торговать и с выводом чтоб проблем не было..спасибо
 
dryun777 #:
Помогите с выбором брокера, где лучше торговать и с выводом чтоб проблем не было..спасибо

На этом ресурсе назвать брокера равно обсуждению. А барабашка не дремлет и грозит репрессиями. Так-что ищите сами…

 
Alexey Viktorov #:

У Валерия правильное направление мысли. Но я не понимаю зачем определять валюту, которую ищем в валютах ордеров, на каждой итерации цикла? И мне кажется проще не в строке искать, а взять валюту маржи и валюту прибыли. Посмотрите спецификацию по валютам… Я-бы сделал так

bool Search(string _sy)
 {
  int OT = OrdersTotal();
  string curencyProfit = SymbolInfoString(_sy, SYMBOL_CURRENCY_PROFIT),
         currencyMargin = SymbolInfoString(_sy, SYMBOL_CURRENCY_MARGIN);
  for(int i = 0; i < OT; i++)
   {
    if(OrderSelect(i, SELECT_BY_POS))
     {
      bool res = StringFind(OrderSymbol(), curencyProfit) >= 0 ||
                 StringFind(OrderSymbol(), currencyMargin) >= 0;
      if(res)
        return(true);
     }
   }
  return(false);
 }

Проверил, работает правильно.

Спасибо!

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