Errores, fallos, preguntas - página 1227

 

MT4. Servidor de demostración MetaQuotes-Demo.hole del 30.08.2012 al 10.09.2012. Confirmado.

Agujero del 30.08.2012 al 10.09.2012

 
Renat:

No me lo creo.

He borrado a propósito todo el historial de la unidad tres veces, he comprobado los tres puntos de acceso tres veces reiniciando. Toda la historia sigue ahí.

No es necesario que juegues con el archivo de citas, sino que compruebes limpiamente el historial habitual.

Puse a propósito el MT4 de MQ para jugar con el historial normal.

Cuando pulso el botón de inicio, después de borrar de la unidad el historial se descarga, se puede ver en el estado de la conexión. Es como en la captura de pantalla.

Este es otro broker para comparar, cambia y descarga


ps en la descarga de Home "hasta el final" no funciona automáticamente, no recuerdo, ¿era así antes?

 
barabashkakvn:

MT4. Servidor de demostración MetaQuotes-Demo.hole del 30.08.2012 al 10.09.2012. Confirmado.

Parece que se trata de 2012, no de 2014.

Sí, hay un agujero ahí. Cargue un historial de minutos del Centro de Historia y acepte recalcular los plazos. El agujero se llenará.

Utilice los servidores de los corredores o cambie a MT5 donde el historial es mucho mejor debido al historial de un solo minuto para todos los marcos de tiempo.

 

Por qué nadie responde a la solicitud en el Service Desk #1073960 de 2014.09.30 sobre 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


Escribí sobre los mismos errores hace 3 meses aquí:https://www.mql5.com/ru/forum/1111/page1190#comment_993762

Para ser sincero, no es agradable ver esa actitud. Parece que les ayudas, señalando los errores, pero nadie se molesta en contestar. ¿No te importa realmente la inexactitud de tus propias bibliotecas?

 

¿Sin puesto, no hay problema?

Jardín infantil.

 
Silent:

¿Sin puesto, no hay problema?

Jardín infantil.

¿De qué estás hablando? Hoy no hay mensajes borrados de este hilo.
 
meat:

Hay errores en la biblioteca estándar de MQL4, concretamente en las clases indicadoras.

No hay cuerpo del método GetData para la clase CiATR.

El método GetData() está definido en la clase base padre y no necesita ser sobrescrito en este caso.

Tenga en cuenta que antes de llamar a GetData(), debe refrescar los valores en los buffers de los indicadores de la clase utilizando el 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:

Hay errores en la biblioteca estándar para MQL4, y específicamente en las clases de indicadores.

En los indicadores que utilizan el parámetro ENUM_APPLIED_VOLUME(CiForce, CiOBV) se produce un error: no se puede utilizar un enumerador inadecuado


Aquí hay algunos ejemplos que se compilan y funcionan.

//+------------------------------------------------------------------+
//|                                                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);
     }
  }
//+------------------------------------------------------------------+
 
Mensaje en el registro, ¿cuál podría ser la razón de esto?
Aparece muy pocas veces, pero aún así quiero llegar al fondo de la cuestión: necesito la estabilidad del programa.
3 14:55:11.739 No se puede abrir el archivo 'D:\gy\mt4\MQL4\\indicators\.ex4' [123]
 
ALXIMIKS:
ha aparecido un mensaje en el registro, ¿cuál podría ser la razón?
Aparece muy pocas veces, pero aún así quiero llegar al fondo de la cuestión: necesito la estabilidad del programa.
¿En qué condiciones aparece? ¿Cuál es el nombre del indicador?