Вопросы от "чайника" - страница 59

 
Yedelkin:
Двумерные массивы типа array[][] не подойдут?
 В теории - вроде должны, я даже пытался... Не осилил. Хотелось бы увидеть готовую реализацию, если она возможна в принципе. Там сразу множество затыков возникало... Если говорить о двумерном массиве, то первейшее, что озадачило, - буферы изначально неопределённой величины, то есть динамические. Как их загнать в родительский массив? И потом... если у каждого буфера будет после заполнения своя индивидуальная длина, то получится в итоге не двумерный массив, а кубический, но это будет даже не куб, а 3D-тетрис какой-то.
 
x100intraday:
 В теории - вроде должны, я даже пытался... Не осилил. Хотелось бы увидеть готовую реализацию, если она возможна в принципе. Там сразу множество затыков возникало... Если говорить о двумерном массиве, то первейшее, что озадачило, - буферы изначально неопределённой величины, то есть динамические. Как их загнать в родительский массив? И потом... если у каждого буфера будет после заполнения своя индивидуальная длина, то получится в итоге не двумерный массив, а кубический, но это будет даже не куб, а 3D-тетрис какой-то.
Воспользуйтесь структурой, как оберткой для динамического буфера. Это проверено - работает.
 

Подскажите, как узнать время закрытия сделки?

Не могу найти в свойствах сделки.

 
masharov:

Подскажите, как узнать время закрытия сделки?

Не могу найти в свойствах сделки.

У сделки (ордера) нет времени закрытия, как это было в МТ4. Для того чтобы определить время жизни "отдельной сделки", как это было в МТ4 придется анализировать "открывающие" (IN) сделки и "закрывабщие" (OUT/INOUT) сделки.

Тоже самое касается позиции.

 
В Справочнике сказано, что для функции PositionGetSymbol() "если позиция не найдена, то вернётся пустая строка". А если необходимо отслеживать именно возврат пустых строк, то с чем сравнивать возвращаемое функцией значение: с NULL  или с "" (две кавычки)?
 
Yedelkin:
В Справочнике сказано, что для функции PositionGetSymbol() "если позиция не найдена, то вернётся пустая строка". А если необходимо отслеживать именно возврат пустых строк, то с чем сравнивать возвращаемое функцией значение: с NULL  или с "" (две кавычки)?
Нужно воспользоваться другой функцией для проверки наличия позиции.
 
Renat:
Нужно воспользоваться другой функцией для проверки наличия позиции.
Да не, цель не в проверке наличия позиции, а в том, чтобы при возврате пустой строки в цикле применить оператор continue. Я же написал в предыдущем сообщении: "необходимо отслеживать именно возврат пустых строк".Так с чем сравнивать, кто подскажет?
Документация по MQL5: Основы языка / Операторы / Оператор продолжения continue
Документация по MQL5: Основы языка / Операторы / Оператор продолжения continue
  • www.mql5.com
Основы языка / Операторы / Оператор продолжения continue - Документация по MQL5
 
Yedelkin:
Да не, цель не в проверке наличия позиции, а в том, чтобы при возврате пустой строки в цикле применить оператор continue. Я же написал в предыдущем сообщении: "необходимо отслеживать именно возврат пустых строк".Так с чем сравнивать, кто подскажет?

В справке есть раздел Тип void и константа NULL. А вообще - уже давно можно было проверить:

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   string a=NULL;
   string b="";
   if(a==b)
      Print("Пустая строка и NULL - одно и то же");
   else
      Print("Пустая строка не равна NULL");
  }
//+--
 
Rosh:

В справке есть раздел Тип void и константа NULL.

Ну да, раздел существует. Только в этом разделе не сказано, как обозначается именно пустая строка. В примере из раздела переменная NULL используется только для выявления неинициализированной строки.

Что касается самостоятельной проверки, то вопрос возник после того, как компилятор ругнулся на фразу

switch(PositionGetSymbol(i)!=(NULL || ""))

следующим образом: "implicit conversion from 'number' to 'string'". Сравнение же указанных string-значений по отдельности не вызвало возражений у компилятора . Поэтому, чтобы не усугубляться околотеоретическими рассуждениями на тему "приведения к старшему типу" и в целях упрощения кода, был задал вопрос. 

Из Вашего примера видно, что, по крайней мере, у разработчиков языка принято обозначать пустую строку парой двойных кавычек без пробелов. Что, в общем-то, и требовалось узнать. Спасибо. 

 
Yedelkin:

Ну да, раздел существует. Только в этом разделе не сказано, как обозначается именно пустая строка. В примере из раздела переменная NULL используется только для выявления неинициализированной строки.

Что касается самостоятельной проверки, то вопрос возник после того, как компилятор ругнулся на фразу

А что вы ожидали получить из этого выражения?

(NULL || "")
Почитайте Логические операции
Причина обращения: