64비트 MT5 빌드 858 잠금...

 

안녕,

내 브로커는 어제 64비트 버전의 MT5 빌드 858을 출시했으며 빌드 842(잘 작동함)에서 이 새 버전으로 업그레이드한 후 MT5가 산발적으로 잠깁니다(즉, 정지되고 응답하지 않음). 이 문제가 발생한 후 MT5를 닫는 유일한 방법은 작업 관리자를 통해 종료하는 것입니다.

이 문제는 MT5 데모 머신(Windows 7)과 MT5 라이브 VPS 머신(Windows Server 2008r2) 모두에서 명백했습니다. 이 두 머신은 이전에 장애 없이 MT5 빌드 842를 실행했습니다.

변경된 사항은 없습니다. MT5의 구성 - 빌드 842에서 사용되었던 동일한 Experts 등이 이제 두 빌드 858 설치에서 모두 실행됩니다.

몇 주 전에, 나는 또한 빌드 858을 테스트하기 위해 32비트 머신을 작동시켰습니다. 에 문제가 있습니다. 그 이후로 라이브 거래를 32비트 플랫폼으로 이전했으며 아직까지는 문제가 없습니다. 내가 실행했던 64비트 데모 버전이 오늘 오후에 다시 한 번 충돌했습니다.

아, 그리고 로그에는 MT5에 문제가 있다는 내용이 없습니다.

어쨌든 이러한 문제가 있습니까?

 
이 문제를 Service Desk에 보고한 것 같습니까?
 
angevoyageur :
이 문제를 Service Desk에 보고한 것 같습니까?
아, 아니요. 서두르느라 정신이 없었어요! 알려주셔서 감사합니다. 지금 바로 실행하겠습니다...
 

이 문제의 현재 상태 - 잠금 문제는 빌드 858과 현재 MetaQuotes 웹사이트에서 사용 가능한 새 버전(빌드 868) 모두에서 발생합니다. 잠금 문제는 32비트 및 64비트 플랫폼 모두에서 발생합니다. 현재 MetaQuotes와 브로커 모두에서 실행 중인 문제 보고서가 있습니다.

빌드 842보다 최신 빌드에 잠금 문제가 있는 다른 사람이 있습니까? 저는 많은 전문가를 운영하고 있으므로 이러한 잠금 문제가 발생하려면 MT5가 합리적으로 "로드"되어야 할 수도 있습니다.

또한 다양한 다른 컴퓨터 와 VPS 인스턴스에 MT5를 다시 설치했습니다(기본적으로 컴퓨터 문제를 배제하기 위해). 그리고 이 설치는 새로 설치했기 때문에 MT5 설치가 어떤 식으로든 손상되었다는 것을 알 수 없습니다. 또한 새로운 빌드 컴파일러를 사용하여 Expert를 다시 컴파일했지만 차이가 없었습니다.

기록을 위해, 저는 작년과 동일한 머신에서 정확히 동일한 전문가를 실행하고 있으며(MT5의 다양한 빌드에서) MT5가 잠긴 인스턴스가 한 번도 없었습니다(실제로 정말 감동받았습니다. 지금까지 MT5의 안정성). 문제가 없는 MT5 빌드 842 설치를 빌드 858 설치로 업그레이드했을 때만 이러한 문제가 발생하기 시작했습니다.

 
cowil :

이 문제의 현재 상태 - 잠금 문제는 빌드 858과 현재 MetaQuotes 웹사이트에서 사용 가능한 새 버전(빌드 868) 모두에서 발생합니다. 잠금 문제는 32비트 및 64비트 플랫폼 모두에서 발생합니다. 현재 MetaQuotes와 브로커 모두에서 실행 중인 문제 보고서가 있습니다.

빌드 842보다 최신 빌드에 잠금 문제가 있는 다른 사람이 있습니까? 저는 많은 전문가를 운영하고 있으므로 이러한 잠금 문제가 발생하려면 MT5가 합리적으로 "로드"되어야 할 수도 있습니다.

또한 다양한 다른 컴퓨터와 VPS 인스턴스에 MT5를 다시 설치했습니다(기본적으로 컴퓨터 문제를 배제하기 위해). 그리고 이 설치는 새로 설치했기 때문에 MT5 설치가 어떤 식으로든 손상되었다는 것을 알 수 없습니다. 또한 새로운 빌드 컴파일러를 사용하여 Expert를 다시 컴파일했지만 차이가 없었습니다.

기록을 위해, 저는 작년과 동일한 머신에서 정확히 동일한 전문가를 실행하고 있으며(MT5의 다양한 빌드에서) MT5가 잠긴 인스턴스가 한 번도 없었습니다(실제로 정말 감동받았습니다. 지금까지 MT5의 안정성). 문제가 없는 MT5 빌드 842 설치를 빌드 858 설치로 업그레이드했을 때만 이러한 문제가 발생하기 시작했습니다.

이 빌드 858/868의 Bars() 함수 에서 버그를 발견했습니다. 이 버그는 코드 실행을 상당히 느리게 합니다. 어쩌면 당신도이 문제가 있습니다.
Documentation on MQL5: Timeseries and Indicators Access / Bars
Documentation on MQL5: Timeseries and Indicators Access / Bars
  • www.mql5.com
Timeseries and Indicators Access / Bars - Documentation on MQL5
 
angevoyageur :
이 빌드 858/868의 Bars() 함수 에서 버그를 발견했습니다. 이 버그는 코드 실행을 상당히 느리게 합니다. 어쩌면 당신도이 문제가 있습니다.

안녕하세요. 입력해 주셔서 감사합니다.

나는 실제로 내 코드에서 Bars() 함수를 사용하지 않지만 심각한 버그가 일반적으로 사용되는 함수에 잠입했다는 점에 대해 약간 염려합니다. 특히 이전에는 없었기 때문에... 아마도 관련 함수일 것입니다. 내가 사용하는 Bars() 함수가 호출하는 것과 동일한 기본 코드를 호출합니까?

어떻게 이것을 감지하고 분리할 수 있었습니까? Bars()가 기능을 완료하는 데 걸리는 시간이 엄청나게 길었나요? 그렇다면 어떤 종류의 시간을 말하는 것입니까? 100밀리초?

MetaQuotes 또는 내 브로커가 mo에 빌드 842 또는 이전 버전을 제공하도록 하려고 하지만 아직 성공하지 못했습니다...

 
cowil :

안녕하세요. 입력해 주셔서 감사합니다.

나는 실제로 내 코드에서 Bars() 함수를 사용하지 않지만 심각한 버그가 일반적으로 사용되는 함수에 잠입했다는 점에 대해 약간 염려합니다. 특히 이전에는 없었기 때문에... 아마도 관련 함수일 것입니다. 내가 사용하는 Bars() 함수가 호출하는 것과 동일한 기본 코드를 호출합니까?

어떻게 이것을 감지하고 분리할 수 있었습니까? Bars()가 기능을 완료하는 데 걸리는 시간이 엄청나게 길었나요? 그렇다면 어떤 종류의 시간을 말하는 것입니까? 100밀리초?

MetaQuotes 또는 내 브로커가 mo에 빌드 842 또는 이전 버전을 제공하도록 하려고 하지만 아직 성공하지 못했습니다...

먼저 EA가 각 눈금에 차트에 표시된 정보를 업데이트하지 않는다는 것을 관찰했습니다. 그래서 코드 디버깅을 시작했고 OnTick() 이벤트 핸들러가 각 틱에서 호출되지 않는다는 것을 발견했습니다. 즉, 이전 틱에 대한 OnTick이 여전히 실행 중임을 의미합니다.

프로파일러를 사용하여 OnTick()에서 발생하는 것을 분석하고 실행하는 데 많은 시간이 걸리는 Bars() 함수 를 발견했습니다. 매우 간단한 코드로 Bars() 함수를 확인한 후 MT5/mql5의 버그인지 확인합니다. 동일한 코드가 빌드 842에서 문제 없이 작동합니다.

프로파일러 는 사용하기 쉽고 강력하여 훌륭한 도구입니다.

 
angevoyageur :

먼저 EA가 각 눈금에 차트에 표시된 정보를 업데이트하지 않는 것을 관찰했습니다. 그래서 코드 디버깅을 시작했고 OnTick() 이벤트 핸들러가 각 틱에서 호출되지 않는다는 것을 발견했습니다. 즉, 이전 틱에 대한 OnTick이 여전히 실행 중임을 의미합니다.

프로파일러를 사용하여 OnTick()에서 발생하는 것을 분석하고 실행하는 데 많은 시간이 걸리는 Bars() 함수 를 발견했습니다. 매우 간단한 코드로 Bars() 함수를 확인한 후 MT5/mql5의 버그인지 확인합니다. 동일한 코드가 빌드 842에서 문제 없이 작동합니다.

프로파일러 는 사용하기 쉽고 강력하여 훌륭한 도구입니다.

첫째, 정보를 주셔서 감사합니다 - 대단히 감사합니다! :)

이런, SECONDS 말하는거야...? 그것은 확실히 심각한 문제입니다. 나는 똑같이 할 수 있고 내 전문가가 무엇을 하는지 볼 수 있다고 생각합니다. 저는 8개의 다른 차트에서 동일한 Expert를 실행하므로 각 Expert 내에서 이러한 종류의 지연이 발생하면 어떤 일이 일어날지 생각하는 것이 싫습니다.

그리고 MetaQuotes re: 빌드 842 또는 이전 버전을 얻으려고 하면 기쁨이 없습니다. 인용구 " 아니오, 빌드 842에 대한 링크가 없습니다. 우리는 이전 버전을 어디에도 저장하지 않습니다." 믿을 수 없습니다... :(당신이 거기에 빌드 842를 가지고 있다고 말할 때, 나는 그것이 이미 설치된 버전이고 설치 가능한 버전이 아니라고 가정합니다.

 
cowil :

첫째, 정보를 주셔서 감사합니다 - 대단히 감사합니다! :)

이런, SECONDS라고...? 그것은 확실히 심각한 문제입니다. 나는 똑같이 할 수 있고 내 전문가가 무엇을 하는지 볼 수 있다고 생각합니다. 저는 8개의 다른 차트에서 동일한 Expert를 실행하므로 각 Expert 내에서 이러한 종류의 지연이 발생하면 어떤 일이 일어날지 생각하는 것이 싫습니다.

그리고 MetaQuotes re: 빌드 842 또는 이전 버전을 얻으려고 하면 기쁨이 없습니다. 인용구 " 아니오, 빌드 842에 대한 링크가 없습니다. 우리는 이전 버전을 어디에도 저장하지 않습니다." 믿을 수 없습니다... :(당신이 거기에 빌드 842를 가지고 있다고 말할 때, 나는 그것이 이미 설치된 버전이고 설치 가능한 버전이 아니라고 가정합니다.

예는 이미 브로커에서 설치되었습니다(PM 참조).
 

글쎄, 내 자신의 중개인도 나에게 이전 버전을 제공할 수 없었습니다. 믿을 수 없을 정도로 믿을 수 없을 만큼, 저의 (대형) 중개인이나 실제로 소프트웨어를 개발하는 대형 소프트웨어 회사(예: MetaQuotes)도 저에게 MT5의 단일 이전 빌드를 제공할 수 없었습니다. 믿을 수 없는!!

따라서 이 게시물을 읽는 다른 사람을 위해 업그레이드는 기본적으로 일방통행입니다! 믿을 수 없는 것처럼 보이지만 문제가 있는 MT5 릴리스의 경우 돌아갈 수 있는 이전 빌드가 없습니다!!!! 그러니 새 릴리스에 커밋하기 전에 특히 라이브(즉, 실제 화폐 사용) 환경에서 모든 것을 철저히 테스트했는지 확인하십시오!!!

이번에 나처럼 엉성해져서(즉, 새 릴리스를 커밋하기 전에 모든 것을 철저히 테스트하지 않은 경우) 나와 동일하거나 유사한 문제가 있고 다른 모든 옵션을 소진했다면 여기에 내가 사용한 해킹이 있습니다. 나를 위해 일했다. 이것은 그것이 당신에게 효과가 있다는 것을 의미하지 않으며 나는 당신이 (a) 완전히 망했고 (b) 컴퓨터에 대해 어느 정도 알고 있을 때만 이것을 하라고 조언하고 싶습니다:

1. 아직 빌드 842를 설치하고 있는 사람을 찾으십시오.

2. 그들에게 전체 MT5 설치 디렉토리 구조의 사본을 만들어 컴퓨터의 임시 디렉토리에 배치하도록 요청하십시오.

3. 그런 다음 ../bases/xxx/history/<SymbolPair> 디렉토리(임시 디렉토리에 복사된 MT5 설치)로 이동하여 각 디렉토리의 전체 내용을 삭제하도록 요청합니다(이 단계는 기본적으로 특정 브로커의 기록을 제거합니다. 데이터)

4. 히스토리 데이터가 제거되면 임시 디렉토리에 전체 설치 디렉토리 구조를 압축하여 보내달라고 요청합니다(이를 위해 dropbox를 사용했습니다).

5. 자신의 컴퓨터에 빌드 858/868을 설치합니다(이렇게 하면 적절한 레지스트리 설정이 설정됨).

6. 컴퓨터의 임시 디렉토리에 받은 전체 MT5 설치의 압축을 풀고 받은 MT5 설치의 설치 디렉토리(임시 디렉토리에 있음)의 이름을 위의 858/868 설치에서 사용한 설치 디렉토리 이름으로 바꿉니다. .

7. MT5 빌드 858/868 설치 디렉토리 구조를 삭제하고 현재 임시 디렉토리에 있는 구조로 교체하십시오.

8. 대체된 MT5 디렉토리의 파일이 모두 읽기 전용 플래그로 지정될 가능성이 있습니다. 읽기/쓰기로 플래그를 지정합니다.

8. MT5를 실행합니다. 이제 작동하는 842 버전이 있어야 합니다. 물론 이제 브로커의 서버 이름(수신한 842 설치가 자신의 브로커가 아닌 다른 브로커를 사용하도록 구성된 경우), 로그인 및 비밀번호를 "도구" ->에서 구성해야 합니다. "옵션" -> "서버" 탭.

다시 말하지만, 이것은 나 자신이 보증하지 않으며 MQ나 귀하의 브로커가 보증하지 않을 최후의 수단임을 강조하고 싶습니다. 그러나 절박한 때에는 절박한 조치가 필요할 때가 있습니다. 드롭박스로 제공되는 빌드 842 설치가 필요한 경우 알려주십시오.

 
angevoyageur :
예는 이미 브로커에서 설치되었습니다(PM 참조).

안녕,

842 빌드에 대해 다양한 브로커를 시도했지만 내가 만난 브로커는 이미 업그레이드되었습니다. 결국, 위의 해킹으로 인해 다시 작동하게 되었습니다. 그 이후로(손가락이 교차) MT5 설치가 더 이상 충돌하지 않았습니다.

내가 즉시 알아차린 한 가지는 빌드 842가 두 개의 최신 빌드보다 훨씬 더 효율적으로 실행되는 것 같았기 때문에(즉, 프로세서 사용량이 적음) Bars() 함수 에서 경험한 문제의 변형이 다른 빌드에서 발생할 수 있다고 생각합니다. 내가 전문가 내에서 우연히 사용하는 기능. 프로파일러를 꺼내서 내 자신의 테스트를 실행할 시간이라고 생각합니다. 그리고 문제가 무엇인지 알게 된다면 MetaQuotes는 그 지식에 대해 내가 잃어버린 300유로를 지불할 수 있습니다! :)

어쨌든, 모든 도움에 다시 한 번 감사드립니다. 대단히 감사합니다!

사유: