Errori, bug, domande - pagina 1227

 

MT4. Il server dimostrativo MetaQuotes-Demo.foro dal 30.08.2012 al 10.09.2012. Confermato.

Foro dal 30.08.2012 al 10.09.2012

 
Renat:

Non ci credo.

Ho volutamente cancellato tutta la cronologia dal disco per tre volte, ho controllato tutti e tre i punti di accesso per tre volte riavviando. Tutta la storia è ancora lì.

Non è necessario giocare con l'archivio delle citazioni, ma controllare la cronologia regolare in modo pulito.

Ho messo appositamente l'MT4 di MQ per giocare con la storia regolare.

Quando premo il tasto Home, dopo aver cancellato dal disco la cronologia viene scaricata, si può vedere nello stato di connessione. È come nello screenshot.

Questo è un altro broker per il confronto, commuta e scarica


ps su Home download "fino alla fine" non funziona automaticamente, non ricordo, era così prima?

 
barabashkakvn:

MT4. Il server dimostrativo MetaQuotes-Demo.foro dal 30.08.2012 al 10.09.2012. Confermato.

Sembra essere circa il 2012, non il 2014.

Sì, c'è un buco lì. Carica una cronologia dei minuti da History Center e accetta di ricalcolare i tempi. Il buco si riempirà.

Usa i server dei broker o passa a MT5 dove la storia è molto meglio grazie alla storia a un solo minuto per tutti i timeframe.

 

Perché nessuno risponde alla richiesta nel Service Desk #1073960 del 2014.09.30 riguardante 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


Ho scritto degli stessi bug 3 mesi fa qui:https://www.mql5.com/ru/forum/1111/page1190#comment_993762

Non ricevo alcuna risposta, la nuova build è stata rilasciata ma i bug sono ancora lì. Francamente parlando, non è bello essere trattati in questo modo. Sembra che tu li aiuti, indicando gli errori, ma nessuno si preoccupa nemmeno di rispondere. Non ti importa davvero dei bug delle tue stesse librerie?

 

Nessun post - nessun problema?

Giardino per bambini.

 
Silent:

Nessun post - nessun problema?

Giardino per bambini.

Di cosa stai parlando? Non ci sono post cancellati da questo thread oggi.
 
meat:

Ci sono errori nella libreria standard di MQL4, in particolare nelle classi di indicatori.

Non esiste un corpo del metodo GetData per la classe CiATR.

Il metodo GetData() è definito nella classe madre di base e non ha bisogno di essere sovrascritto in questo caso.

Si noti che prima di chiamare GetData(), è necessario aggiornare i valori nei buffer degli indicatori della classe utilizzando il metodo 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:

Ci sono errori nella libreria standard di MQL4, e in particolare nelle classi degli indicatori.

Per gli indicatori che usano il parametro ENUM_APPLIED_VOLUME(CiForce, CiOBV) c'è un errore: l'enumeratore improprio non può essere usato


Ecco alcuni esempi che compilano e funzionano.

//+------------------------------------------------------------------+
//|                                                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);
     }
  }
//+------------------------------------------------------------------+
 
Il messaggio è apparso nel registro, quale potrebbe essere la ragione?
Appare molto raramente, ma voglio comunque arrivare in fondo - ho bisogno della stabilità del programma.
3 14:55:11.739 Impossibile aprire il file 'D:\progy\mt4\MQL4\indicators\.ex4' [123]
 
ALXIMIKS:
è spuntato un messaggio nel registro, quale potrebbe essere la ragione?
Appare molto raramente, ma voglio comunque arrivare in fondo - ho bisogno della stabilità del programma.
In quali condizioni appare? Come si chiama l'indicatore?