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

 
The Journal of the Optimizer, 러시아어 항목
 2018.03 . 03 15 : 48 : 04.722 Tester  Вы можете ускорить оптимизацию в сотни раз с помощью MQL5 Cloud Network
 
Andrii Djola :

외환 기호 거래가 끝나는 시간을 찾는 방법은 무엇입니까?

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

mql5 언어의 특징, 미묘함 및 작업 방법

fxsaber , 2017.02.25 16:39

ENUM_DAY_OF_WEEK GetDayOfWeek( const datetime time )
{
   MqlDateTime sTime = { 0 };

  :: TimeToStruct (time, sTime);

   return (( ENUM_DAY_OF_WEEK )sTime.day_of_week);
}

// true - находимся в торговой сессии
bool SessionTrade( const string Symb )
{
   datetime TimeNow = :: TimeTradeServer ();

   const ENUM_DAY_OF_WEEK DayOfWeek = GetDayOfWeek(TimeNow);

  TimeNow %= 24 * 60 * 60 ;

   bool Res = false ;
   datetime From, To;

   for ( int i = 0 ; (!Res) && :: SymbolInfoSessionTrade (Symb, DayOfWeek , i, From, To); i++)
    Res = ((From <= TimeNow) && (TimeNow < To));

   return (Res);
}

// Возвращает true, если символ торгуемый. Иначе - false.
bool SymbolTrade( const string Symb )
{
   MqlTick Tick;

   return (:: SymbolInfoTick (Symb, Tick) ? ((Tick.bid != 0 ) && (Tick.ask != 0 ) && SessionTrade(Symb) /* &&
         ((ENUM_SYMBOL_TRADE_MODE)::SymbolInfoInteger(Symb, SYMBOL_TRADE_MODE) == SYMBOL_TRADE_MODE_FULL) */
) : false );
}

애플리케이션

if ( OrderCheck (Request, CheckResult) && SymbolTrade(Request.symbol))
   OrderSend (Request, Result);
 
fxsaber :

사용자 정의 기호가 있는 매우 불쾌한 버그입니다. 사용자 지정 기호 의 틱 기록 은 완전히 손실될 수 있습니다.

커스텀 심볼의 실제 눈금을 기준으로 수십 시간이 최적화되었습니다. 아무도 컴퓨터에 접근하지 않았고 아무 것도 하지 않았습니다.

최적화 15시간 후, 그는 결과를 보기 위해 왔습니다. 모든 패스에서 "단일 테스트 시작" 메뉴 항목을 사용할 수 없습니다. 테스터가 시작되고 즉시 종료됩니다.

로그는 이렇습니다

 2018.03 . 03 15 : 48 : 04.696 Tester  file cache used 3010 times
2018.03 . 03 15 : 48 : 04.698 Tester  optimization finished, total passes 352000
2018.03 . 03 15 : 48 : 04.708 Statistics      optimization done in 41 hours 32 minutes 37 seconds
2018.03 . 03 15 : 48 : 04.708 Statistics      local 348990 tasks ( 100 %), remote 0 tasks ( 0 %), cloud 0 tasks ( 0 %)
2018.03 . 03 15 : 48 : 04.708 Core 1   connection closed
2018.03 . 03 15 : 48 : 04.709 Core 2   connection closed
2018.03 . 03 15 : 48 : 04.710 Core 3   connection closed
2018.03 . 03 15 : 48 : 04.710 Core 4   connection closed
2018.03 . 03 15 : 48 : 04.711 Core 5   connection closed
2018.03 . 03 15 : 48 : 04.711 Core 6   connection closed
2018.03 . 03 15 : 48 : 04.712 Core 7   connection closed
2018.03 . 03 15 : 48 : 04.714 Core 8   connection closed
2018.03 . 03 15 : 48 : 04.716 Tester   348990 records written to file cache C:\Program Files\Alpari Limited MT5\tester\cache\Test.TESTER_EURUSD.M1. 4 .xml
2018.03 . 03 15 : 48 : 04.722 Tester  Вы можете ускорить оптимизацию в сотни раз с помощью MQL5 Cloud Network
2018.03 . 04 08 : 26 : 30.933 Tester  single pass 297022 started
2018.03 . 04 08 : 26 : 31.000 Tester  TESTER_EURUSD: history data begins from 2018.02 . 06 00 : 00
2018.03 . 04 08 : 27 : 36.409 Tester  single pass 297022 started
2018.03 . 04 08 : 27 : 36.491 Tester  TESTER_EURUSD: history data begins from 2018.02 . 06 00 : 00
2018.03 . 04 14 : 05 : 10.940 Tester  single pass 297022 started
2018.03 . 04 14 : 05 : 11.007 Tester  TESTER_EURUSD: history data begins from 2018.02 . 06 00 : 00

모든 사용자 정의 기호의 눈금이 제거되었음을 발견했습니다.

 
최적화 후 이 텍스트 파일
 2018.03 . 03 15 : 48 : 04.716 Tester   348990 records written to file cache C:\Program Files\Alpari Limited MT5\tester\cache\Test.TESTER_EURUSD.M1. 4 .xml
1GB를 차지합니다. 7z는 100번 누릅니다. 캐시를 저장하는 데 왜 그렇게 비효율적인 방법을 선택합니까?
 

XML 내보내기를 사용하는 경우

그런 다음 320MB XML 파일에 350,000개의 패스가 기록됩니다. 동시에 어떤 이유로 이 XML 파일의 열기가 자동으로 시작됩니다. 메모장은 나를 위해 이것을 하려고 하는데, 그런 괴물을 읽을 때 멈춥니다. XML 메뉴를 선택할 때 파일의 대략적인 크기 와 더 열면 어떤 결과가 나타날지 미리 경고하십시오.

 

컴파일 중 오류

코드 스니펫 선택은 아직 불가능합니다.

 
fxsaber :

XML 내보내기를 사용하는 경우

그런 다음 320MB XML 파일에 350,000개의 패스가 기록됩니다. 동시에 어떤 이유로 이 XML 파일의 열기가 자동으로 시작됩니다. 메모장은 나를 위해 이것을 하려고 하는데, 그런 괴물을 읽을 때 멈춥니다. XML 메뉴를 선택할 때 파일의 대략적인 크기와 더 열면 어떤 결과가 나타날지 미리 경고하십시오.

동의하지만 경고할 필요는 없습니다 . 파일 열기를 금지해야 하며 사용자가 파일 열기 방법을 직접 결정할 것입니다.

 

컴파일 중 오류

 template < typename T>
class A { T t; };
void OnStart () { A< void *> a; } //Error: '<' - cannot to apply function template

그리고 다음과 같이:

 template < typename T>
class A { T t; };
void OnStart () { A< void *> a; }
class B {};

좋아. 차이점이 뭐야?

 

컴파일 중 오류

 template < typename T>
struct A { T    *t; };
struct B { void *b; };
void OnStart ()
{
        A< void > a; //Error: 'void' - expression of 'void' type is illegal
        B       b; //номально
} 
 
fxsaber :

커스텀 심볼의 실제 눈금을 기준으로 수십 시간이 최적화되었습니다. 아무도 컴퓨터에 접근하지 않았고 아무 것도 하지 않았습니다.

최적화 15시간 후, 그는 결과를 보기 위해 왔습니다. 모든 패스에서 "단일 테스트 시작" 메뉴 항목을 사용할 수 없습니다. 테스터가 시작되고 즉시 종료됩니다.

로그는 이렇습니다

모든 사용자 정의 기호의 눈금이 제거되었음을 발견했습니다.

재생산. 테스터/옵티마이저를 실행해야 합니다. 완료 후 몇 시간을 기다리십시오. 10시간이 지나면 사용자 지정 기호의 모든 눈금이 완전히 삭제됩니다.