Erros, bugs, perguntas - página 1758

 
-Aleks-:

Se eu mudar de perfil no MT4 e depois voltar, quando o mercado estiver fechado a CPU começa a carregar fortemente - até 5%, depois de 18-25%.

Tive a sensação de que há algo de errado com o compilador, porque quando executo a compilação de .mq5ME, simplesmente caio e se executo a compilação de .mqh fico a praguejar no compilador)))) E em crash aparece um enorme ficheiro !!! que é constantemente actualizado. Nenhum vírus excepto para o próprio SO Win 8.1x64, nenhum antivírus numa só máquina, uma vez que apenas o MT5 vai para a Net, e o próprio SO para o seu repositório.

A propósito de tema para a resposta de Renat sobre milésimos de testes - antes de escrever uma pergunta faço a mesma verificação de coisas semelhantes em SO e máquinas diferentes )) se o resultado for confirmado, faço uma pergunta, se não, começo eu próprio a investigar o problema.

 

Não consigo compreender qual é o problema - quer seja no indicador, ou no Expert Advisor, ou no visualizador).

Para isso, o indicador só tem as mesmas definições, o prazo é o mesmo.


Código de conselheiro especializado

#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()
  {
//---

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

código indicador

#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);
  }
//+------------------------------------------------------------------+
Arquivos anexados:
test.mq5  11 kb
 

A janela de cotação desaba quando o terminal é minimizado. Este não deve ser o caso.

 
Vladimir Pastushak:

A janela de cotação desaba quando o terminal é minimizado. Este não deve ser o caso.

A propagação tem sido sempre marcada assim (!) em MT... Quem sabe porquê, talvez para poupar espaço... o que (?) se o valor de propagação for maior do que "!" ...
 

Alguém me pode dizer se o tamanho da RAM (sublinhado a vermelho) está correcto?

Dados do caderno de notas antes da reparação:

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)

entregou o portátil para reparação, após reparação disse que a partir da fábrica foi instalada memória (todas as suas 6 gb) não é compatível (a de 4 gb) com o tipo de processador.

pode ser que o tamanho da memória seja especificado normalmente, mas de facto devido à incompatibilidade com o tipo de processador que não estava envolvido?

 
Alexandr Bryzgalov:

Entreguei o meu portátil para reparação, após a reparação disseram que a memória foi instalada a partir da fábrica (6gb total) não compatível (o de 4gb) com o tipo de processador.

Normalmente TODOS os sistemas e com certeza todos os computadores portáteis são testados na fábrica e a possibilidade de a fábrica ter instalado hardware incompatível... é muito pouco provável...
 
ivanivan_11:
Normalmente TODOS os sistemas e com certeza os computadores portáteis são testados na fábrica e as hipóteses de hardware incompatível instalado na fábrica... é muito pouco provável...
por alguma razão, sinto o mesmo, sinto-me como se estivesse a ser... eu
 
Alexandr Bryzgalov:
Por alguma razão sinto o mesmo, sinto-me como se estivesse a ser... eu
Bem, acontece de formas diferentes, como acontece - há smartphones de marca a explodir da fábrica. E sobre o computador - muitos factores não sabem - se alguém tinha feito rumores no portátil antes da venda (há remodelações, devoluções), que tipo de portátil, que sistema operativo, etc. - tudo isto pode afectar a disponibilidade de memória.
 
Alexandr Bryzgalov:

Alguém me pode dizer se o tamanho da RAM (sublinhado a vermelho) está correcto?

Dados do caderno de notas antes da reparação:

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)

deu o portátil para reparação, após reparação disse que a partir da fábrica foi instalada memória (apenas a sua 6gb) não é compatível (a de 4gb) com o tipo de processador.

É possível que o tamanho da memória seja declarado como normal mas não utilizado devido à incompatibilidade com o tipo de processador?

A memória pode entrar em conflito com a placa-mãe. E, se a bios detectou a memória como presente, ela está lá, mas pode não funcionar de forma estável.

O menor tamanho de memória, presumo, deve-se ao facto de a memória ser espremida para o cartão de vídeo - alguns cartões integrados fazem-no porque não têm memória própria.

 

Como se encontram os Sinais que têm?

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