Errors, bugs, questions - page 1227

 

MT4. Demo server MetaQuotes-Demo.hole from 30.08.2012 to 10.09.2012. Confirmed.

Hole from 30.08.2012 to 10.09.2012

 
Renat:

I don't believe it.

I purposely erased all the history from the drive three times, checked all three access points three times by restarting. All the history is still there.

You do not need to play with the archive of quotes, but check the regular history cleanly.

I purposely put the MT4 from MQ to play with the regular history.

When I press the Home button, after deleting from the drive the history is downloaded, it can be seen in the connection status. It is like on the screenshot.

This is another broker for comparison, it switches and downloads


ps on Home download "to the end" does not work automatically, I do not remember, was it like this before?

 
barabashkakvn:

MT4. Demo server MetaQuotes-Demo.hole from 30.08.2012 to 10.09.2012. Confirmed.

It appears to be about 2012, not 2014.

Yes, there is a hole there. Load a minute history from History Center and agree to recalculate the timeframes. The hole will fill in.

Use brokers servers or switch to MT5 where the history is much better due to the single minute history for all timeframes.

 

Why isn't anyone answering the request in Service Desk #1073960 from 2014.09.30 regarding 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


I wrote about the same bugs 3 months ago here:https://www.mql5.com/ru/forum/1111/page1190#comment_993762

I don't get any response, new build has been released but bugs are still there. Frankly speaking, it is not nice to be treated like this. You seem to help them, pointing out errors, but no one even bothers to answer. Don't you really care about your own libraries' bugs?

 

No post - no problem?

Child's garden.

 
Silent:

No post - no problem?

Child's garden.

What are you talking about? There are no deleted posts from this thread today.
 
meat:

There are errors in the standard library for MQL4, specifically in indicator classes.

There is no GetData method body for CiATR class.

The GetData() method is defined in the base parent class and does not need to be overridden in this case.

Please note that before calling GetData(), you need to refresh values in indicator buffers of the class using Refresh() method

//+------------------------------------------------------------------+
//|                                                   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:

There are errors in the standard library for MQL4, and specifically in the indicator classes.

For indicators that use the ENUM_APPLIED_VOLUME parameter(CiForce, CiOBV) there is an error: improper enumerator cannot be used


Here are some examples that compile and work.

//+------------------------------------------------------------------+
//|                                                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);
     }
  }
//+------------------------------------------------------------------+
 
Message in log, what could be the reason for this?
It appears very rarely, but I still want to get to the bottom of it - I need the stability of the program.
3 14:55:11.739 Cannot open file 'D:\progy\mt4\MQL4\\indicators\.ex4' [123]
 
ALXIMIKS:
a message has popped up in the log, what could be the reason?
It appears very rarely, but I still want to get to the bottom of it - I need the stability of the program.
Under what conditions does it appear? What is the name of the indicator?
Reason: