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

 

Можно ли в MT4 делать таблицу с такой структурой, как в экселе (+ и - сворачивают и разворачивают данные)? Если да, то где почитать?


 

Всем привет! Осваиваю только коды. Есть ошибка, не могу въехать как ее починить.


int CountTrades(int type, int magic)

  {

   int count=0;

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

     {

      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

        {

         if(OrderSymbol()==Symbol() && (OrderType()==type||type==-1) && 

            (OrderMagicNumber()==magic||magic==-1))

            count++;

        }

     }

   return (count);


Выделил красным то на что ругается.


Ошибки такие:

"-" operand expected

")"  - unexpected token

"i" - undeclared identifier


Вроде как ему не нравится что я после i в первой ошибке минус ставлю. Может как то дефиз поставить нужно?

Выполнил все буква в букву с учебником - но не компилируется код.

Нужна ваша помощь.

 
Falx:

Всем привет! Осваиваю только коды. Есть ошибка, не могу въехать как ее починить.

Два минуса и нет скобки закрывающей функцию.
 
Aleksey Vyazmikin:
Два минуса и нет скобки закрывающей функцию.

Большое спасибо! Все исправил! Работает! 

 

Пришлось два datetime сравнивать по часам, я это сделал таким способом:

string TimeCompare = StringSubstr(TimeToString(MyLastNewsTime[i],TIME_DATE|TIME_MINUTES),0,13);
string TimeCompare1 = StringSubstr(TimeToString(MyLastNewsTime1[i],TIME_DATE|TIME_MINUTES),0,13);
if(TimeCompare != TimeCompare1)
...

Всё получилось, но может такой способ не самый корректный? Что программисты скажет?

 
Nauris Zukas:

Пришлось два datetime сравнивать по часам, я это сделал таким способом:

Всё получилось, но может такой способ не самый корректный? Что программисты скажет?


if(TimeHour(MyLastNewsTime[i])!=TimeHour(MyLastNewsTime1[i]))
 {
 }
 
Nikolay Ivanov:

Может не очень правильно объяснил, но надо найти двух дат с точности до часа (минуты и секунды не важны).  У вас сравнение только по часам.

 
Nauris Zukas:

Может не очень правильно объяснил, но надо найти двух дат с точности до часа (минуты и секунды не важны).


 надо найти даты, или сравнить час 2х дат ?

 
Nikolay Ivanov:

 надо найти даты, или сравнить час 2х дат ?

надо найти даты с точности до часа (минуты и секунды не важны).

 
Nikolay Ivanov:

 надо найти даты, или сравнить час 2х дат ?

Может CopyTime лучше подойдёт?

Такой вариант

int  CopyTime(
   string           symbol_name,     // имя символа
   ENUM_TIMEFRAMES  timeframe,       // период PERIOD_H1
   datetime         start_time,      // с какой даты
   int              count,           // сколько копируем 1
   datetime         time_array[]     // массив для копирования времени открытия
   );

Переводить время в строку и её сравнивать не самый хороший вариант.

CopyTime - Доступ к таймсериям и индикаторам - Справочник MQL4
CopyTime - Доступ к таймсериям и индикаторам - Справочник MQL4
  • docs.mql4.com
Функция получает в массив time_array исторические данные времени открытия баров для указанной пары символ-период в указанном количестве. Необходимо отметить, что отсчет элементов от стартовой позиции ведется от настоящего к прошлому, то есть стартовая позиция, равная 0, означает текущий бар. При копировании заранее неизвестного количества...
Причина обращения: