Обновление платформы MetaTrader 4 билд 625: Журналы в MetaTrader Market и новый MetaViewer - страница 5

 

Заявка Errors, MetaTrader 4, Открыта, Начата: 2014.01.13 13:59, #928691

Считаю данный момент багом или как минимум не правильным.

При запросе времени из под Х координаты в будущем время возвращается не правильное .

//+------------------------------------------------------------------+
//|                                                         Test.mq4 |
//|                        Copyright 2013, MetaQuotes Software Corp. |
//|                                              https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
int zz=0;
double x=0;
datetime y=0;
long shirina;
void OnInit(){Comment("");}
void OnTick()
  {
ChartGetInteger(0,CHART_WIDTH_IN_PIXELS ,0,shirina);
ChartXYToTimePrice(0,int(shirina-50),100,zz,y,x);
Comment(shirina,"  ",shirina-50,"    ",y,"    ",x); 

}

До сих пор не привета не ответа ))))

 

Так же хочу напомнить о заявке Errors, MetaTrader 4, Открыта, Начата: 2013.12.23 11:50, #916375

Это не критическое, но все же отображение должно быть адекватным https://c.mql4.com/forum/2013/12/87.JPG

ОС ХР проблема появляется при открепленном окне новигатора, проблема только в ХР

 
VOLDEMAR:

Заявка Errors, MetaTrader 4, Открыта, Начата: 2014.01.13 13:59, #928691

Считаю данный момент багом или как минимум не правильным.

При запросе времени из под Х координаты в будущем время возвращается не правильное .

}

До сих пор не привета не ответа ))))


Модифицируйте строки

ChartXYToTimePrice(0,int(shirina-50),100,zz,y,x);
Comment(shirina,"  ",shirina-50,"    ",y,"    ",x);

до состояния

bool result = ChartXYToTimePrice(0,int(shirina-50),100,zz,y,x);
Comment(result," ",shirina,"  ",shirina-50,"    ",y,"    ",x);

Посмотрите на результат для двух случаев, когда график полностью занимает окно, и когда график "обрывается" до правой границы окна при включённом сдвиге графика, и значение (shirina-50) оказывается правее графика, то есть, в "будущем". Сверьтесь с документацией.

Утверждение "При запросе времени из под Х координаты в будущем время возвращается не правильное" - неверно. Если вы присвоите переменным x и y другие начальные значения, то увидите, почему.

Функция ChartXYToTimePrice() здесь ведёт себя совершенно верно. Другое дело, что можно захотеть, чтобы она работала и для "будущего", но, если время для будущего вернуть можно, то, вот, цену...

И, кстати, функция ChartGetInteger() вызвана так, что последующий вызов ChartXYToTimePrice() неправомерен.
 

в советнике используется зигзаг, но почему-то в тестере стратегий на паре AUDCAD валит ошибка:

2014.03.24 07:35:20.785 2013.11.01 00:02 array out of range in 'ZigZag.mq4' (161,32)

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

хотя на USDJPY все нормально. в советнике просто вызывается ZigZag череp iCustom

 
stringo:

FAR спокойно открывает

Разработчики должны решать? Запросто. Например после того, как записали 1 гиг логов, останавливаем клиентский терминал. До тех пор, пока лог не будет прочитан и стёрт. А какие будут Ваши предложения?


добавить [x] - отключить логирование

в своих кодах пишу логи только при разрешении, использую только для отладки и проверки

 

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

После обновления метаедитора до 914-го билда при компиляции кода, который ранее компилировался без ошибок и предупреждений, появились такие предупреждения:

return value of 'OrderSelect' should be checked

return value of 'OrderClose' should be checked

Предупреждение выдано по отношению к этому куску:

//+----------------------------------+
// Закрытие всех рыночных BUY ордеров+
//+----------------------------------+
void CloseAllBuy() 
{for (int trade = OrdersTotal() - 1; trade >= 0; trade--) 
   {OrderSelect(trade, SELECT_BY_POS, MODE_TRADES);
      if (OrderSymbol() == Symbol()) {
         if (OrderSymbol() == Symbol() && OrderMagicNumber() == MN_Buy) 
           {if (OrderType() == OP_BUY) OrderClose(OrderTicket(), OrderLots(), Bid, (int)slip, Blue);}
         Sleep(1000);
      }
   }
}
//--------------

Подскажите пожалуйста, какие изменения надо внести в код?

Спасибо!

 
Что делать, если после обновления клиент запускаться перестал? Переустановка не помогает.
 
Night63:

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

После обновления метаедитора до 914-го билда при компиляции кода, который ранее компилировался без ошибок и предупреждений, появились такие предупреждения:

return value of 'OrderSelect' should be checked

return value of 'OrderClose' should be checked

Предупреждение выдано по отношению к этому куску:

Подскажите пожалуйста, какие изменения надо внести в код?

Спасибо!

Первая страница этой темы:

Y.A.K._:

Это кажется в 620 началось. Рекомендует проверять значение, если функция его возвращает. То есть или if, или присвоение. Предупреждение, а не ошибка.
Кстати онлайн переводчики в помощь. Не понять сложно.
 

С переводом проблемы нет. Смысл написанного понятен.

Мне не понятно КАК проводить требуемую проверку. Если Вам не трудно, не могли бы Вы показать на том примере, что я выложил?

Спасибо!

 
Night63:

С переводом проблемы нет. Смысл написанного понятен.

Мне не понятно КАК проводить требуемую проверку. Если Вам не трудно, не могли бы Вы показать на том примере, что я выложил?

Спасибо!

Ну например так:
//+----------------------------------+
// Закрытие всех рыночных BUY ордеров+
//+----------------------------------+
void CloseAllBuy() 
{for (int trade = OrdersTotal() - 1; trade >= 0; trade--) 
   if (OrderSelect(trade, SELECT_BY_POS, MODE_TRADES))
      {if (OrderSymbol() == Symbol()) {
         if (OrderSymbol() == Symbol() && OrderMagicNumber() == MN_Buy) 
           {if (OrderType() == OP_BUY) if (!OrderClose(OrderTicket(), OrderLots(), Bid, (int)slip, Blue)) Print("Ордер ",OrderTicket()," не закрыт");}
         Sleep(1000);
      }
   }
}
//--------------
Причина обращения: