오류, 버그, 질문 - 페이지 1758

 
-Aleks- :

MT4에서 프로필을 변경한 다음 다시 변경하면 시장이 닫힐 때 프로세서가 18-25% 이후 최대 5%까지 크게 로드되기 시작합니다.

나는했지만 도움이되지 않았습니다)))) 컴파일을 시작할 때 .mq5ME가 충돌하고 .mqh 컴파일을 시작하면 맹세하기 때문에 컴파일러에 문제가 있다는 느낌을 말하고 있습니다. 컴파일러에서))) 그리고 충돌시 거대한 파일이 나타납니다 !!! ! 지속적으로 업데이트됩니다. Win 8.1x64 OS 자체를 제외하고는 바이러스가 없으며 한 시스템에 바이러스 백신이 전혀 없습니다. MT5만 아니오로 바뀌고 OS 자체는 저장소로 이동합니다.

그건 그렇고, 수천 가지 테스트에 대한 Renat의 답변 주제에서-질문을 작성하기 전에 다른 OS 및 시스템에서도 유사한 사항을 확인합니다.)) 결과가 확인되면 질문을 하고, 그렇지 않으면 질문을 던집니다. 문제 나 자신.

 

제가 알아낼 수 있도록 도와주세요. 문제가 무엇인지 이해할 수 없습니다. 표시기, 고문 또는 시각화 도우미에서. 옵션이 허용됩니다-바보 자신, 따라서 스키는 가지 않습니다. 그러나 위치와 이유에 대한 표시만 있음))

표시등이 동일하고 설정이 동일하며 전화가 동일합니다. 위 화면에서 테스터 내부에 이 표시기가 있는 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 ()
  {
//---

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

표시기 코드

#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가 메모리를 사용할 수 있다고 판단한 경우 메모리는 있지만 안정적으로 작동하지 않을 수 있습니다.

적은 메모리, 나는 이것이 비디오 카드의 압축된 메모리 때문이라고 가정합니다. 이것은 자체 메모리가 없기 때문에 일부 통합 카드가 하는 일입니다.

 

가지고 있는 신호를 찾는 방법은 무엇입니까?

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