Ошибки, баги, вопросы - страница 1227

 

MT4. Демо-сервер MetaQuotes-Demo. Дыра с 30.08.2012 по 10.09.2012. Подтверждаю.

Дыра с 30.08.2012 по 10.09.2012 

 
Renat:

Не верю.

Специально трижды стирал всю историю с диска, трижды перезапуская проверял все три точки доступа. Вся история на месте.

Не нужно играться архивом котировок, а проверьте вчиcтую штатную историю.

Я специально поставил поставил МТ4 от MQ, чтобы поиграться именно со штатной историей.

По кнопке Home после удаления с диска история закачивается, это видно в состоянии соединения. Такая, как на скрине.

Это для сравнения другой брокер, и переключает, и докачивает


ps по Home докачка "до конца" не работает автоматом, не помню, так было раньше?

 
barabashkakvn:

MT4. Демо-сервер MetaQuotes-Demo. Дыра с 30.08.2012 по 10.09.2012. Подтверждаю.

Речь оказывается о 2012 годе, а не о 2014.

Да, там дыра есть. Загрузите минутную историю из History Center и согласитесь на пересчет таймфреймов. Дыра заполнится.

Используйте серверы брокеров или переходите на МТ5, где с историей все гораздо лучше за счет единой минутной истории для всех таймфреймов.

 

Почему никто не отвечает на заявку в сервис-деске #1073960 от 2014.09.30 касательно MQL4?

Ошибка в файлах стандартной библиотеки при попытке использовать метод GetData классов CiForce и CiOBV

'm_applied' - improper enumerator cannot be used Oscilators.mqh   494 60

'm_applied' - improper enumerator cannot be used Volumes.mqh      241 34

И ещё ошибка в классе CiATR:

'GetData' - function must have a body Oscilators.mqh   25 22


 Об этих же ошибках я писал и тут 3 месяца назад:    https://www.mql5.com/ru/forum/1111/page1190#comment_993762

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

 

Нет поста - нет проблемы?

Децкий сад.

 
Silent:

Нет поста - нет проблемы?

Децкий сад.

Вы о чём? Удалённых постов с этой темы за сегодня нет.
 
meat:

Имеются ошибки в стандартной библиотеке для MQL4, а конкретно в индикаторных классах.

Для класса CiATR отсутствует тело метода GetData.

Метод GetData() определен в базовом родительском классе и не требуется переопределять в данном случае.

Учтите, что перед вызовом GetData() необходимо обновлять значения в индикаторных буферах класса методом Refresh()

//+------------------------------------------------------------------+
//|                                                   CheckCiATR.mq5 |
//|                        Copyright 2013, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"
#include<Indicators\Oscilators.mqh>

#property script_show_inputs
input int sleep_debug=10; // пауза в секундах при отладке
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   CiATR iatr;
   bool res=iatr.Create(_Symbol,0,15);
   if(res)
     {
      Sleep(3000);                // дадим время на расчет индикатора
      long handle=iatr.Handle();  // хендл индикатора
      //--- набросим индикатор на график      
      iatr.AddToChart(0,1);
      //--- количество баров, на которых индикатор рассчитан
      int bars=iatr.BarsCalculated();
      //--- количество буферов в индикаторе    
      int buffers=iatr.BuffersTotal();
      Print("Buffers=",buffers);
      //--- размер индикаторного буфера      
      int size=iatr.BufferSize();  // для экономии по умолчанию установлено 100
      Print("BufferSize=",size);
      //--- покажем как увеличить размер индикаторного буфера      
      bool resized=iatr.BufferResize(bars-1);
      //--- если изменить размер индикаторного буфера не удалось вдруг
      if(!resized)
        {
         PrintFormat("Ошибка при попытке увеличить размер индикаторного буфера!, GetLastError = "
                     ,GetLastError());
        }
      //--- ! обязательно обновляем данные в буфере перед обращением к данным индикатора      
      iatr.Refresh();
      //--- выведем 10 последних значений индикатора и сравних их с DataWindow      
      for(int i=10;i>=0;i--)
        {
         // буфер индикаторя является таймсерией - индекс увеличивается вглубь истории
         PrintFormat(" ATR(%d) = %f",i,iatr.GetData(0,i));
        }
     }
//--- пауза на тот случай, если скрипт запустили в отладке
   if(MQLInfoInteger(MQL_DEBUG))
     {
      Sleep(sleep_debug*1000);
     }
  }
//+------------------------------------------------------------------+
 
meat:

Имеются ошибки в стандартной библиотеке для MQL4, а конкретно в индикаторных классах.

Для индикаторов, использующих параметр типа ENUM_APPLIED_VOLUME (CiForce, CiOBV), выдаётся ошибка:  improper enumerator cannot be used


Вот для примера, которые компилируются и работают.

//+------------------------------------------------------------------+
//|                                                Check_CiForce.mq5 |
//|                        Copyright 2013, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"
#include<Indicators\Oscilators.mqh>

#property script_show_inputs
input int sleep_debug=10; // пауза в секундах при отладке
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   CiForce iforce;
   bool res=iforce.Create(_Symbol,0,15,MODE_SMA,VOLUME_TICK);
   if(res)
     {
      Sleep(3000);                // дадим время на расчет индикатора
      long handle=iforce.Handle();  // хендл индикатор
      //--- набросим индикатор на график      
      iforce.AddToChart(0,1);
      //--- ! обязательно обновляем данные в буфере перед обращением к данным индикатора      
      iforce.Refresh();
      //--- выведем 10 последних значений индикатора и сравних их с DataWindow      
      for(int i=10;i>=0;i--)
        {
         // буфер индикаторя является таймсерией - индекс увеличивается вглубь истории
         PrintFormat(" %s(%d) = %f",iforce.Name(),i,iforce.GetData(0,i));
        }
     }
//--- пауза на тот случай, если скрипт запустили в отладке
   if(MQLInfoInteger(MQL_DEBUG))
     {
      Sleep(sleep_debug*1000);
     }
  }
//+------------------------------------------------------------------+

и

//+------------------------------------------------------------------+
//|                                                  Check_CiOBV.mq5 |
//|                        Copyright 2013, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"
#include<Indicators\Volumes.mqh>

#property script_show_inputs
input int sleep_debug=10; // пауза в секундах при отладке
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   CiOBV indicator;
   bool res=indicator.Create(_Symbol,0,VOLUME_TICK);
   if(res)
     {
      Sleep(3000);                // дадим время на расчет индикатора
      long handle=indicator.Handle();  // хендл индикатор
      //--- набросим индикатор на график      
      indicator.AddToChart(0,1);
      //--- ! обязательно обновляем данные в буфере перед обращением к данным индикатора      
      indicator.Refresh();
      //--- выведем 10 последних значений индикатора и сравних их с DataWindow      
      for(int i=10;i>=0;i--)
        {
         // буфер индикаторя является таймсерией - индекс увеличивается вглубь истории
         PrintFormat(" %s(%d) = %f",indicator.Name(),i,indicator.GetData(0,i));
        }
     }
//--- пауза на тот случай, если скрипт запустили в отладке
   if(MQLInfoInteger(MQL_DEBUG))
     {
      Sleep(sleep_debug*1000);
     }
  }
//+------------------------------------------------------------------+
 
вылетело в лог сообщение, в чем может быть причина?
Очень редко появляется, но все равно хочу разобраться - надо стабильность работы программы.
3 14:55:11.739 Cannot open file 'D:\progy\mt4\MQL4\indicators\.ex4' [123]
 
ALXIMIKS:
вылетело в лог сообщение, в чем может быть причина?
Очень редко появляется, но все равно хочу разобраться - надо стабильность работы программы.
При каких условиях проявляется? Имя индикатора какое?
Причина обращения: