Erros, bugs, perguntas - página 1227

 

MT4. MetaQuotes-Demo.buraco do servidor de demonstraçãode 30.08.2012 a 10.09.2012. Confirmado.

Buraco de 30.08.2012 a 10.09.2012

 
Renat:

Não acredito nisso.

Apaguei de propósito todo o histórico da unidade três vezes, verifiquei os três pontos de acesso três vezes, reiniciando. Toda a história ainda lá está.

Não precisa de brincar com o arquivo de citações, mas verifique o histórico regular de forma limpa.

Coloco propositadamente o MT4 da MQ para brincar com a história regular.

Quando carrego no botão Home, depois de apagar da unidade o histórico é descarregado, pode ser visto no estado de ligação. É como na imagem do ecrã.

Este é outro corretor para comparação, muda e descarrega


ps em Home download "até ao fim" não funciona automaticamente, não me lembro, era assim antes?

 
barabashkakvn:

MT4. MetaQuotes-Demo.buraco do servidor de demonstraçãode 30.08.2012 a 10.09.2012. Confirmado.

Parece ser cerca de 2012, não 2014.

Sim, há ali um buraco. Carregar um minuto de história do Centro de História e concordar em recalcular os prazos. O buraco irá preencher-se.

Utilizar servidores de corretores ou mudar para o MT5 onde o histórico é muito melhor devido ao histórico de um minuto para todos os períodos de tempo.

 

Porque é que ninguém responde ao pedido no Service Desk #1073960 a partir de 2014.09.30 relativamente à 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


Escrevi sobre os mesmos insectos há 3 meses atrás aqui:https://www.mql5.com/ru/forum/1111/page1190#comment_993762

Não recebo qualquer resposta, novas construções foram lançadas mas os bugs ainda lá estão. Francamente falando, não é bom ser tratado assim. Parece que os ajuda, apontando erros, mas ninguém sequer se incomoda em responder. Não se preocupa realmente com os bugs das suas próprias bibliotecas?

 

Não há correio - não há problema?

Jardim das crianças.

 
Silent:

Não há correio - não há problema?

Jardim das crianças.

Do que está a falar? Hoje em dia não há mensagens eliminadas deste tópico.
 
meat:

Existem erros na biblioteca padrão para MQL4, especificamente nas classes indicadoras.

Não existe um corpo do método GetData para a classe CiATR.

O método GetData() é definido na classe mãe de base e não precisa de ser substituído neste caso.

Note que antes de chamar GetData(), é necessário actualizar os valores nos buffers indicadores da classe utilizando o método 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:

Existem erros na biblioteca padrão para MQL4, e especificamente nas classes indicadoras.

Para os indicadores que utilizam o parâmetro ENUM_APPLIED_VOLUME(CiForce, CiOBV) existe um erro: não é possível utilizar um enumerador inadequado


Aqui estão alguns exemplos que compilam e trabalham.

//+------------------------------------------------------------------+
//|                                                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);
     }
  }
//+------------------------------------------------------------------+
 
Mensagem em log, qual poderia ser a razão para isto?
Parece muito raramente, mas ainda quero chegar ao fundo da questão - preciso da estabilidade do programa.
3 14:55:11.739 Não é possível abrir o ficheiro 'D:\progy\mt4\MQL4\\mQL4\\\\i4' [123]
 
ALXIMIKS:
uma mensagem apareceu no registo, qual poderá ser a razão?
Parece muito raramente, mas ainda quero chegar ao fundo da questão - preciso da estabilidade do programa.
Em que condições é que aparece? Qual é o nome do indicador?