错误、漏洞、问题 - 页 1758

 
-Aleks-:

如果我在MT4中改变配置文件,然后再返回,当市场关闭时,CPU开始大量加载 - 高达5%,之后是18-25%。

我感觉编译器有问题,因为当我运行编译器.mq5ME时,我得到了崩溃,如果我运行编译器.mqh,我得到了对编译器的诅咒))))。在崩溃中出现了一个巨大的文件!!!这个文件不断地被更新。除了Win 8.1x64操作系统本身没有病毒,一台机器上根本没有杀毒软件,因为只有MT5上网,而操作系统本身也到了它的储存库。

顺便提一下Renat关于千分之一的测试的答案--在写问题之前,我在不同的操作系统和机器上做同样的检查类似的事情))如果结果被证实,我就问一个问题,如果不是,我就开始自己挖掘问题。

 

我不明白问题出在哪里--是在指标中,还是在专家顾问中,还是在可视化工具中)。

对此,该指标只有相同的设置,时间框架是相同的。


专家顾问代码

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

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

指标代码

#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);
  }
//+------------------------------------------------------------------+
附加的文件:
test.mq5  11 kb
 

当终端被最小化时,报价窗口会折叠。情况不应该是这样的。

 
Vladimir Pastushak:

当终端被最小化时,报价窗口会折叠。情况不应该是这样的。

在MT中,价差一直是这样标注的(!)...谁知道为什么,也许是为了节省空间......。什么(?)如果传播比"!"长...
 

谁能告诉我RAM的大小(红色下划线)是否正确?

修复前的笔记本数据。

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)

交出笔记本电脑进行维修,维修后说,从工厂安装的内存(所有6GB)是不兼容的(一个在4GB)的处理器类型。

会不会是内存的大小是正常指定的,但实际上由于与处理器类型不兼容而没有涉及?

 
Alexandr Bryzgalov:

我把我的笔记本电脑交给他们维修,维修后他们说,出厂时安装的内存(共6GB)与处理器的类型不兼容(4GB的那个)。

通常,所有的系统和所有的笔记本电脑都经过工厂测试,工厂安装不兼容的硬件的可能性......这是非常非常非常不可能的......
 
ivanivan_11:
通常,所有的系统和笔记本电脑都经过工厂测试,工厂安装的硬件不兼容的几率......非常非常非常小......。
出于某种原因,我有同样的感觉,我觉得我被...我
 
Alexandr Bryzgalov:
出于某种原因,我有同样的感觉,我觉得我被...我
那么,它以不同的方式发生,事实证明--有品牌的智能手机在出厂时就爆炸了。而关于电脑--很多因素都不知道--在出售前是否有人在笔记本里翻找过(有翻新的,有退货的),什么类型的笔记本,什么操作系统,等等。- 所有这些都会影响内存的可用性。
 
Alexandr Bryzgalov:

谁能告诉我RAM的大小(红色下划线)是否正确?

修复前的笔记本数据。

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)

给笔记本电脑进行维修,维修后说,从工厂安装的内存(只有6GB)是不兼容的(一个4GB)与处理器的类型。

是否有可能内存大小被说明为正常,但由于与处理器类型不兼容而没有使用?

内存可能与主板冲突。而且,如果BIOS检测到内存存在,它就在那里,但可能无法稳定工作。

我想,较小的内存容量是由于内存被挤压给了显卡--一些集成卡这样做是因为它们本身没有内存。

 

你如何找到有的信号?

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