Errori, bug, domande - pagina 1758

 
-Aleks-:

Se cambio profilo in MT4 e poi torno indietro, quando il mercato è chiuso la CPU inizia a caricare pesantemente - fino al 5%, dopo il 18-25%.

Ho avuto la sensazione che c'è qualcosa di sbagliato con il compilatore, perché quando eseguo la compilazione di .mq5ME vado in crash e se eseguo la compilazione di .mqh ottengo imprecazioni al compilatore))) E in crash appare un file enorme!!! che viene costantemente aggiornato. Nessun virus tranne che per Win 8.1x64 OS stesso, nessun antivirus su una macchina a tutti come solo MT5 va a Net, e OS stesso al suo repository.

A proposito della risposta di Renat sui millesimi di test - prima di scrivere una domanda faccio lo stesso controllo di cose simili su diversi sistemi operativi e macchine )) se il risultato è confermato, faccio una domanda, se no, inizio a scavare nel problema da solo.

 

Non riesco a capire qual è il problema - se è nell'indicatore, o nell'Expert Advisor, o nel visualizzatore).

Per questo, l'indicatore ha solo le stesse impostazioni, il timeframe è lo stesso.


Codice di Expert Advisor

#property strict
input string   Symbol1="EURUSD";
input int Per=14;  
double buf[];
int handle_1,copied1;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

handle_1=iCustom(Symbol(),PERIOD_CURRENT,"test ma",Symbol1,Per);
ArrayInitialize(buf,0);
   return(INIT_SUCCEEDED);
  }
//+---------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
  Comment("");
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---

  copied1=CopyBuffer(handle_1,0,0,4,buf);
  Comment("Индикатор 3 = ",buf[3]);
}  

//+------------------------------------------------------------------+
//| Trade function                                                   |
//+------------------------------------------------------------------+
void OnTrade()
  {
//---

  }
//+------------------------------------------------------------------+

codice indicatore

#property indicator_separate_window
//---- количество индикаторных буферов 2
#property indicator_buffers 3
//---- использовано всего одно графическое построение
#property indicator_plots   1
//+----------------------------------------------+
//|  объявление констант                         |
//+----------------------------------------------+
#define RESET 0 // Константа для возврата терминалу команды на пересчёт индикатора
//+----------------------------------------------+
//|  Параметры отрисовки индикатора              |
//+----------------------------------------------+
#property indicator_type1   DRAW_HISTOGRAM
#property indicator_color1  clrPlum
//+----------------------------------------------+
//| Входные параметры индикатора                 |
//+----------------------------------------------+
input string Symb1="EURUSD";
input int Per=14;                        
int Shift=0;                              
//+----------------------------------------------+
//---- объявление динамических массивов, которые будут в
// дальнейшем использованы в качестве индикаторных буферов
double Buffer1[];
double Buffer2[];
double Buffer3[],Buffer4[],Buffer5[];
//---- Объявление целых переменных начала отсчёта данных
int min_rates_total;
//---- Объявление целых переменных для хранения хендлов индикаторов
int Handle1,Handle2;
double buf1[],buf2[],close1[],close2[],buf4[];
int closed1,closed2;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+  
int OnInit()
  {
//---- Инициализация переменных начала отсчёта данных
   min_rates_total=Per+1;

//--- получение хендла индикатора Fast iCCI
   Handle1=iMA(Symb1,PERIOD_CURRENT,Per,0,0,0);
   if(Handle1==INVALID_HANDLE)
     {
      Print(" Не удалось получить хендл индикатора");
      return(INIT_FAILED);
     }

//---- превращение динамического массива в индикаторный буфер
   SetIndexBuffer(1,Buffer1,INDICATOR_DATA);
   SetIndexBuffer(0,Buffer3,INDICATOR_DATA);
   SetIndexBuffer(2,buf1,INDICATOR_DATA);
//---- осуществление сдвига индикатора 1 по горизонтали на Shift
   PlotIndexSetInteger(0,PLOT_SHIFT,Shift);
//---- осуществление сдвига начала отсчёта отрисовки индикатора 1 на min_rates_total
   PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,min_rates_total);
      IndicatorSetInteger(INDICATOR_DIGITS,_Digits);
//--- завершение инициализации
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(
                const int rates_total,    // количество истории в барах на текущем тике
                const int prev_calculated,// количество истории в барах на предыдущем тике
                const datetime &time[],
                const double &open[],
                const double& high[],     // ценовой массив максимумов цены для расчёта индикатора
                const double& low[],      // ценовой массив минимумов цены  для расчёта индикатора
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[]
                )
  {
//---- объявления локальных переменных
   int to_copy;
  
//---- расчёты необходимого количества копируемых данных
   if(prev_calculated>rates_total || prev_calculated<=0)// проверка на первый старт расчёта индикатора
     {
      to_copy=rates_total; // стартовый номер для расчёта всех баров
     }
   else to_copy=rates_total-prev_calculated+1; // стартовый номер для расчёта новых баров

      int first,bar;
      if(CopyBuffer(Handle1,0,0,to_copy,Buffer1)<=0) return(RESET);
      if(CopyClose(Symb1,0,0,to_copy,buf1)<=0) return(RESET);
    
//---- расчёт стартового номера first для цикла пересчёта баров
   if(prev_calculated>rates_total || prev_calculated<=0) // проверка на первый старт расчёта индикатора
      first=min_rates_total; // стартовый номер для расчёта всех баров
   else first=prev_calculated-1; // стартовый номер для расчёта новых баров

//---- Основной цикл расчёта индикатора
   for(bar=first; bar<rates_total ; bar++)
   {
   Buffer3[bar]=Buffer1[bar] - buf1[bar];
   }
  
//----    
   return(rates_total);
  }
//+------------------------------------------------------------------+
File:
test.mq5  11 kb
 

La finestra di quotazione crolla quando il terminale è ridotto a icona. Questo non dovrebbe essere il caso.

 
Vladimir Pastushak:

La finestra di quotazione crolla quando il terminale è ridotto a icona. Questo non dovrebbe essere il caso.

Lo spread è sempre stato segnato così (!) in MT... Chissà perché, forse per risparmiare spazio... cosa (?) se lo spread è più lungo di "!" ...
 

Qualcuno può dirmi se la dimensione della RAM (sottolineata in rosso) è corretta?

Dati del notebook prima della riparazione:

2013.04.28 01:26:54     OpenCL  Device #2: GPU NVIDIA Corporation GeForce 610 M with OpenCL 1.1 (1 units, 950 MHz, 2047 Mb, version 305.46)
2013.04.28 01:26:54     OpenCL  Device #1: GPU Intel(R) Corporation Intel(R) HD Graphics 4000 with OpenCL 1.1 (16 units, 350 MHz, 1624 Mb, version 9.17.10.2828)
2013.04.28 01:26:54     OpenCL  Device #0: CPU Intel(R) Corporation  Intel(R) Core(TM) i5-3210 M CPU @ 2.50 GHz with OpenCL 1.1 (4 units, 2500 MHz, 6029 Mb, version 1.1)

consegnato il portatile per la riparazione, dopo la riparazione ha detto che dalla fabbrica è stato installato la memoria (tutti i suoi 6 gb) non è compatibile (quello a 4 gb) con il tipo di processore.

può essere che la dimensione della memoria sia specificata normalmente, ma in realtà a causa dell'incompatibilità con il tipo di processore non è stata coinvolta?

 
Alexandr Bryzgalov:

Ho consegnato il mio portatile per la riparazione, dopo la riparazione mi hanno detto che la memoria installata dalla fabbrica (6gb totali) non era compatibile (quella da 4gb) con il tipo di processore.

Di solito TUTTI i sistemi e sicuramente tutti i portatili sono testati in fabbrica e la possibilità che la fabbrica abbia installato hardware incompatibile... è molto molto molto improbabile...
 
ivanivan_11:
Di solito TUTTI i sistemi e sicuramente i computer portatili sono testati in fabbrica e le possibilità di hardware incompatibile installato in fabbrica... è molto molto molto improbabile...
per qualche ragione, mi sento allo stesso modo, mi sento come se fossi... me
 
Alexandr Bryzgalov:
Per qualche ragione mi sento allo stesso modo, mi sento come se fossi... me
Beh, succede in modi diversi, come si è scoperto - ci sono smartphone di marca che esplodono dalla fabbrica. E riguardo al computer - molti fattori non si sanno - se qualcuno aveva rovistato nel portatile prima della vendita (ci sono ristrutturazioni, resi), che tipo di portatile, che sistema operativo, ecc. - che possono influenzare la disponibilità della memoria.
 
Alexandr Bryzgalov:

Qualcuno può dirmi se la dimensione della RAM (sottolineata in rosso) è corretta?

Dati del notebook prima della riparazione:

2013.04.28 01:26:54     OpenCL  Device #2: GPU NVIDIA Corporation GeForce 610 M with OpenCL 1.1 (1 units, 950 MHz, 2047 Mb, version 305.46)
2013.04.28 01:26:54     OpenCL  Device #1: GPU Intel(R) Corporation Intel(R) HD Graphics 4000 with OpenCL 1.1 (16 units, 350 MHz, 1624 Mb, version 9.17.10.2828)
2013.04.28 01:26:54     OpenCL  Device #0: CPU Intel(R) Corporation  Intel(R) Core(TM) i5-3210 M CPU @ 2.50 GHz with OpenCL 1.1 (4 units, 2500 MHz, 6029 Mb, version 1.1)

ha dato il portatile per la riparazione, dopo la riparazione ha detto che dalla fabbrica è stato installato la memoria (solo il suo 6gb) non è compatibile (quello su 4gb) con il tipo di processore.

È possibile che la dimensione della memoria sia indicata come normale ma non utilizzata a causa dell'incompatibilità con il tipo di processore?

La memoria può andare in conflitto con la scheda madre. E, se il bios ha rilevato la memoria come presente, è lì, ma potrebbe non funzionare in modo stabile.

La dimensione della memoria più piccola, presumo, è dovuta al fatto che la memoria viene spremuta per la scheda video - alcune schede integrate lo fanno perché non hanno memoria propria.

 

Come si fa a trovare i segnali che hanno?

Слишком большой прирост за последний месяц говорит о высоком риске