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

 
Interesting :

MarketWatch 는 어디에서 어떻게 형성됩니까?

내가 알기로는 이 블록은 결과를 확인하면서 목록에 문자를 추가하려고 합니다.

그러나 전문가가 다중인 경우 여러 통화 쌍을 추가해야 합니다(위의 예에서는 표시되지 않음).

이 코드는 첫 번째 "외부" 통화 쌍을 제외하고 각 패스에서 통화 쌍, Exp_Symbol에 대한 주기에 있습니다. 5개의 통화 쌍이 있는 경우 SymbolSelect(Exp_Symbol, true)는 5개의 다른 기호에 대해 5번 작동합니다.

코드에서 "외부" 기호에 대한 SymbolSelect() , SymbolIsSynchronized(), CopyRates() 함수를 호출했습니다(따라서 기록을 펌핑해야 함). 1차 테스트 중에는 데이터가 있지만 2차 테스트에서는 데이터가 없고 Expert Advisor가 테스터에서 오류와 함께 충돌합니다.

 
Konstantin83 :

이 코드는 첫 번째 "외부" 통화 쌍을 제외한 모든 패스에서 통화 쌍 루프인 Exp_Symbol에 있습니다. 코드에서 "외부" 기호에 대한 SymbolSelect() , SymbolIsSynchronized(), CopyRates() 함수를 호출했습니다(따라서 기록을 펌핑해야 함). 1차 테스트 시에는 데이터가 존재하나 2차 테스트 시 데이터가 존재하지 않고, 테스터 내 Expert Advisor가 오류와 함께 크래시를 일으키게 된다.


전문가와 최적화/테스트 설정에 대한 설명을 서비스 데스크에 보낼 수 있습니까?
 
alexvd :
전문가와 최적화/테스트 설정 에 대한 설명을 서비스 데스크에 보낼 수 있습니까?
만들어진.
 
그러나 이제 견적이 데모 계정 에 다시 붙어 있습니다. 연결은 있지만 움직임은 없습니다.
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете - Документация по MQL5
 

2009년 1월 데이터를 업로드하고 싶습니다. 시, 15분 동안의 데이터는 언로드되지만 5분 동안은 언로드되지 않고, 이력이 없습니다. 스토리가 5분 안에 다운로드되지 않는 이유는 무엇입니까?

void OnStart()
  {
   int size = 25;
   datetime dateFrom;
   datetime dateTo;
   MqlRates rates[];
   MqlDateTime stDate;
   int FileHandle;
  
   stDate.day  = 1;
   stDate.hour = 0;
   stDate.mon  = 1;
   stDate.year = 2009;
   dateFrom    = StructToTime( stDate );
   stDate.day  = 31;
   dateTo      = StructToTime( stDate );
  
  
   ArraySetAsSeries(rates,true);
  
   int copied=CopyRates(Symbol(), PERIOD_M5, dateFrom, dateTo, rates);
   for(int i=0;i<100;i++)
     {
      if(GetLastError()!=0)
       {
        Sleep(5000);
        copied=CopyRates(Symbol(), PERIOD_M5, dateFrom, dateTo, rates);
       }
      else
       {
        break;
       }
      Print("Нет истории, проход № " + i);
     }
   if(copied>0)
     {
      Print("Скопировано баров: "+IntegerToString(copied));
      //string format="open = %G, high = %G, low = %G, close = %G, volume = %d";
      string out;
      size = ArraySize(rates);
      ResetLastError();
     
      FileHandle=FileOpen("Data.csv",FILE_WRITE|FILE_CSV);
      if(FileHandle==INVALID_HANDLE)
        {
         Print("Ошибка " + IntegerToString((GetLastError())));
        }
      for(int i=size-1;i>=0;i--)
        {
         FileWrite(FileHandle, TimeToString(rates[i].time), DoubleToString(rates[i].open, _Digits), DoubleToString(rates[i].high, _Digits), DoubleToString(rates[i].low, _Digits), DoubleToString(rates[i].close, _Digits));
        }
     
      Print("size = " + FileSize(FileHandle));
      FileFlush(FileHandle);
      FileClose(FileHandle);
     }
   else
    {
     Print("Не удалось получить исторические данные по символу ",Symbol());
     Print("Ошибка " + GetLastError());
    }
  }

 

ArrayResize 함수가 모든 매개변수와 어떻게 작동하는지 확인하기로 했습니다. 문제없이 컴파일되면 모든 곳에서 자동 거래가 허용되지만 OnInit에 가지 않고도 Expert Advisor가 차트에서 언로드됩니다.

 //+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//---
   Print ( __FUNCTION__ );
//---
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---
   Print ( __FUNCTION__ );
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick () {
   double ZZ[][ 2 ];
//==============================================   
   Print ( __FUNCTION__ );
   
   ResetLastError ();
   ArrayResize (ZZ, 5 , 5 );
   for ( int i= 0 ;i< 10 ;i++) {
      ZZ[i][ 0 ]=i;
       Print ( "i=" ,i, "; ZZ=" ,ZZ[i][ 0 ]);
       Print ( GetLastError ());
   }
   return ;
}
//+------------------------------------------------------------------+

무슨 일이야, 난 모르겠어.

하나

2

 
Talex :

ArrayResize 함수가 모든 매개변수와 어떻게 작동하는지 확인하기로 했습니다. 문제없이 컴파일되면 모든 곳에서 자동 거래가 허용되지만 OnInit에 가지 않고도 Expert Advisor가 차트에서 언로드됩니다.

무슨 일이야, 난 모르겠어.


평범한 범위를 벗어났습니다. "전문가" 탭을 확인하세요.
예약은 할당이 아니며 메모리는 10개 미만으로 할당되지만 배열은 그대로 5개 요소에 대해 유지됩니다.

 
mql5 :

평범한 범위를 벗어났습니다. "전문가" 탭을 확인하세요.
예약은 할당이 아니며 메모리는 10개 미만으로 할당되지만 배열은 그대로 5개 요소에 대해 유지됩니다.

감사합니다. 잘못된 탭을 보았고, 아프고, 분명히 영향을 미치고 있습니다.
 
Talex :

ArrayResize 함수가 모든 매개변수와 어떻게 작동하는지 확인하기로 했습니다. 문제없이 컴파일되면 모든 곳에서 자동 거래가 허용되지만 OnInit에 가지 않고도 Expert Advisor가 차트에서 언로드 됩니다.

일반적으로 위의 스크린샷은 터미널 로그를 보여줍니다. 그리고 당신이 찾고 있는 것은 전문가 탭에 있습니다.
 

여보세요,

나를 위해 테스트하고 최적화를 활성화한 후 다음과 같이 나옵니다.

핵심 1 유전자 패스(127, 1195) 테스트에서 "심각한 런타임 오류" 오류가 발생했습니다.

테스트는 괜찮습니다.