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

 
MakarFX #:
Чем эта плоха?

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

 
Nerd Trader #:

С единицы, OrdersTotal вернёт ноль когда ордеров нет. Но почему-то

for ( int i = OrdersTotal() ; i > 0 ; i -- )

даёт бесконечный цикл, а так >= нет.

з.ы есть другая более удобная платформа для общения по теме mql???

Это сайт разработчиков платформы и языка MQL.

Где ж ещё более точно вы получите наиболее верные ответы?

А вопрос у вас из области непонимания как работать с массивами.

 
Aleksei Stepanenko #:

неправильно задан цикл:

надо так:

Почему? Все пишут с равно, но разве это правильно? Зачем нужна одна итерация цикла, если позиций 0 ?
 
Nerd Trader #:

С единицы, OrdersTotal вернёт ноль когда ордеров нет. Но почему-то

for ( int i = OrdersTotal() ; i > 0 ; i -- )

даёт бесконечный цикл, а так >= нет.

з.ы есть другая более удобная платформа для общения по теме mql???
Почему даёт бесконечный цикл? у меня не даёт, только у меня mql5
 
Не, всё нормально. Если позиций нет, то  i=OrdersTotal()-1 будет равен -1. И условие цикла i>=0 сразу не выполнится. И программа не войдёт в цикл.
 
больше или равно, потому что первый элемент массива тоже нужно учесть, а его индекс в массиве равен нулю.
 
Aleksei Stepanenko #:
больше или равно, потому что первый элемент массива тоже нужно учесть, а его индекс в массиве равен нулю.
А, точно, спасибо. Но получается, какой то костыль это конечно. Впрочем, как и весь mql
 

Здравствуйте!

Переменные объявлены такие

input  string startHour ="00:20";
input  string endHour ="23:40";
datetime startTime, endTime;

В коде mql4 строка такая

startTime=StringToTime(StringConcatenate(TimeToString(TimeCurrent(),TIME_DATE)," ",startHour));
endTime=StringToTime(StringConcatenate(TimeToString(TimeCurrent(),TIME_DATE)," ", endHour));

Компилятор mql5 выдает ошибку'(TimeToString' - variable expected),предупреждение(implicit conversion from 'number' to 'string')

Подскажите пожалуйста как исправить? 

 
grimc124 #:

...

Подскажите пожалуйста как исправить? 

Не дублируйте код (принцип DRY = Don't Repeat Yourself) Используйте функции. Например:

datetime SetTime(datetime dtime, string stime) {
    return StringToTime(TimeToString(dtime, TIME_DATE) + " " + stime);
}

Любая недопустимая строка stime преобразуется в нулевое время

 
Artyom Trishkin #:

Это сайт разработчиков платформы и языка MQL.

Где ж ещё более точно вы получите наиболее верные ответы?

А вопрос у вас из области непонимания как работать с массивами.

OrdersTotal при 1 ордере возвращает 1 а не 0, когда 0 ордеров соответственно возвращает 0.

" Это сайт разработчиков платформы и языка MQL. Где ж ещё более точно вы получите наиболее верные ответы? "

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

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