Erreurs, bugs, questions - page 1227

 
Renat:

Je n'y crois pas.

J'ai volontairement effacé tout l'historique du disque trois fois, vérifié les trois points d'accès trois fois en redémarrant. Toute l'histoire est encore là.

Il n'est pas nécessaire de jouer avec l'archive des citations, mais de vérifier proprement l'historique régulier.

J'ai volontairement mis le MT4 de MQ pour jouer avec l'historique régulier.

Lorsque j'appuie sur le bouton Accueil, après avoir supprimé du disque l'historique est téléchargé, on peut le voir dans l'état de la connexion. C'est comme sur la capture d'écran.

Voici un autre courtier pour comparaison, il commute et télécharge.


ps sur Home download "to the end" ne fonctionne pas automatiquement, je ne me souviens pas, était-ce comme ça avant ?

 
barabashkakvn:

MT4.Trou du serveur de démonstration MetaQuotes-Demo.du 30.08.2012 au 10.09.2012. Confirmé.

Il semble qu'il s'agisse de 2012, et non de 2014.

Oui, il y a un trou là. Chargez un historique des minutes depuis le centre historique et acceptez de recalculer les délais. Le trou va se remplir.

Utilisez les serveurs des courtiers ou passez à MT5, où l'historique est bien meilleur grâce à l'historique d'une minute pour toutes les échéances.

 

Pourquoi personne ne répond à la demande du Service Desk #1073960 de 2014.09.30 concernant 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


J'ai écrit sur ces mêmes bugs il y a 3 mois ici: https://www.mql5.com/ru/forum/1111/page1190#comment_993762.

Je n'obtiens aucune réponse, une nouvelle version a été publiée mais les bugs sont toujours là. Franchement, ce n'est pas agréable d'être traité comme ça. Vous semblez les aider, en signalant les erreurs, mais personne ne prend la peine de répondre. Ne vous souciez-vous pas vraiment des bugs de vos propres bibliothèques ?

 

Pas de poste - pas de problème ?

Jardin pour enfants.

 
Silent:

Pas de poste - pas de problème ?

Jardin pour enfants.

De quoi parlez-vous ? Il n'y a pas de messages supprimés de ce fil de discussion aujourd'hui.
 
meat:

Il y a des erreurs dans la bibliothèque standard pour MQL4, spécifiquement dans les classes d'indicateurs.

Il n'existe pas de corps de méthode GetData pour la classe CiATR.

La méthode GetData() est définie dans la classe parent de base et n'a pas besoin d'être surchargée dans ce cas.

Veuillez noter qu'avant d'appeler GetData(), vous devez rafraîchir les valeurs dans les tampons d'indicateurs de la classe en utilisant la méthode 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:

Il y a des erreurs dans la bibliothèque standard de MQL4, et spécifiquement dans les classes d'indicateurs.

Pour les indicateurs qui utilisent le paramètre ENUM_APPLIED_VOLUME(CiForce, CiOBV), il y a une erreur : un énumérateur incorrect ne peut pas être utilisé.


Voici quelques exemples qui compilent et fonctionnent.

//+------------------------------------------------------------------+
//|                                                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 dans le journal, quelle pourrait en être la raison ?
Il apparaît très rarement, mais je veux quand même en venir à bout - j'ai besoin de la stabilité du programme.
3 14:55:11.739 Impossible d'ouvrir le fichier 'D:\progy\mt4\MQL4\\\\indicators\4' [123].
 
ALXIMIKS:
un message est apparu dans le journal, quelle pourrait en être la raison ?
Il apparaît très rarement, mais je veux quand même en venir à bout - j'ai besoin de la stabilité du programme.
Dans quelles conditions apparaît-il ? Quel est le nom de l'indicateur ?
 
Rosh:

La méthode GetData() est définie dans la classe parent de base et n'a pas besoin d'être surchargée dans ce cas.

Notez qu'avant d'appeler GetData(), vous devez rafraîchir les valeurs dans les tampons d'indicateurs de la classe en utilisant la méthode Refresh().


Voici quelques exemples qui compilent et fonctionnent.

Je parlais de MQL4. Rien ne compile à cause des bogues que j'ai signalés. Comme j'ai compris de la réponse du Service Desk, personne ne veut s'occuper de MQL4.

Raison: