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

[삭제]  

CopyTicks()를 사용하여 틱 기록을 가져올 때 터미널의 이전 작업 세션 틱이 반환되며 이는 함수 설명과 모순됩니다.

MQL5: Добавлена функция работы с тиковой историей CopyTicks. Функция позволяет получить массив тиков, накопленных терминалом за текущую рабочую сессию. Глубина получаемых тиков ограничена последними 2 000.

개발자에게 질문합니다. 고쳐질까요? 그리고 터미널이 실행될 때 MQ 서버(또는 브로커)에서 마지막 N 틱이 전달되어 히스토리가 누적될 때까지 기다리지 않도록 할 수 있습니까? 간단히 말해서, 과거에 알려지지 않은 N 틱에 대한 틱 기록이 필요한 사람은 거의 없습니다. 서비스 데스크 #1162481

 

내 개인 정보 설정에서 "새 스크린샷" 확인란이 제거되었습니다. 게시될 때 피드에 메시지가 없어야 합니다.

내 피드에 이 게시물이 없습니다. 그러나 새 스크린샷 게시에 대한 메시지는 내 친구 의 뉴스 피드에 있습니다.

추신: 이것이 그래야 한다면 이 설정은 개인 정보 보호에 전혀 적용되지 않습니다)

[삭제]  
sanyooooook :

내 개인 정보 설정에서 "새 스크린샷" 확인란이 제거되었습니다. 게시될 때 피드에 메시지가 없어야 합니다.

내 피드에 이 게시물이 없습니다. 그러나 새 스크린샷 게시에 대한 메시지는 내 친구의 뉴스 피드에 있습니다.

추신: 이것이 그래야 한다면 이 설정은 개인 정보 보호에 전혀 적용되지 않습니다)

메시지 감사합니다,

스크린샷에 대한 메시지는 친구 피드에 표시되어서는 안 됩니다. 버그는 곧 수정될 것입니다.

 
4개의 MT5 터미널을 열고 b.1079로 업데이트를 시작했습니다. 일반적으로 업데이트를 다운로드하고 일반적으로 재부팅했습니다. 그리고 그 중 절반만이 재부팅에서 벗어날 수 있었고 우연히도 성공했습니다.
그 이유는 이번 업데이트 때문이었습니다. 아래 그래프는 하나의 MT5 단말기를 거래 시스템으로 업데이트하는 과정, 업데이트 전후의 스왑 파일입니다.

b.1085로 업그레이드할 때 모든 것이 동일하게 유지되었습니다.

이것은 하나의 터미널이 2Gb의 스왑 파일을 망칠 수 있도록 터미널에서 수행해야 했던 작업입니다.

시스템에 "무거운" 표시기가 없습니다. "가장 무거운" 로드는 각각 2 - 5, 1 - 4, 나머지 - 1 마이크로초 이하로 로드하는 데 7마이크로초가 필요합니다.

비교를 위해 CodeBase의 JMA 표시기는 내 컴퓨터에서 110µs가 필요하지만 시스템에서는 사용되지 않습니다.


따라서 업데이트 된 MT5는 즉시 내 거래 시스템을 묻었습니다. 하나의 터미널에서도 작동하는 것은 불가능합니다. 따라서 나는 그것을 묻었습니다.

MT5에서 한 병에 수영장, 매점, 화장실이 있으면 이것은 필연적으로 일어날 수 있는 일이었습니다.

좋은 MT5의 괴물화는 오래전에 시작되었습니다. 이전 버전의 MT5에서 가비지 양이 1Gb로 떨어졌을 때 걱정이 됨과 동시에 시스템을 MT4 플랫폼으로 완전히 옮겼습니다. 틀리지 않은 것으로 밝혀졌습니다.

시스템은 8개의 TF를 동시에 분석하며 그래프는 그 중 3개를 보여줍니다. 시스템의 주요 거래 신호는 도구적 측정을 기반으로 생성됩니다.

따라서 수요/공급 비율은 객관적입니다.

아래 - 5개의 MT4 터미널이 동일한 거래 시스템으로 동시에(다른 통화 쌍에 대해) 열려 있으며 분명히 아직 문제가 없습니다.



 
s2101 :
4개의 MT5 터미널을 열고 b.1079로 업데이트를 시작했습니다. 일반적으로 업데이트를 다운로드하고 일반적으로 재부팅했습니다. 그리고 그 중 절반만이 재부팅에서 빠져나왔다가 우연히 일어났습니다.
그 이유는 이번 업데이트 때문이었습니다. 아래 그래프는 하나의 MT5 단말기를 거래 시스템으로 업데이트하는 과정, 업데이트 전후의 스왑 파일입니다.

스크린샷에서 물리적 메모리 표시기를 숨겼지만 스왑 파일을 잊지 않은 이유는 무엇입니까?

또한 이러한 중요한 문제를 해결할 때 프로세스 섹션의 스크린샷을 첨부하는 것을 잊어버렸습니다. 여기에서 각 프로세스의 실제 메모리 비용과 실행 중인 스레드 수를 볼 수 있습니다.

 

내가 아는 한, MT5 1085 에는 주석(Comment)을 설정하기 위한 경쟁 조건 이 있습니다.

의미는 다음과 같습니다. 코드가 있는 별도의 창에 표시기가 있습니다.

 int OnInit (){
   Comment ( "AAAAAAAAAAAAAAAAAAAAAAAAA" );
}

void OnDeinit ( const int reason) {
   Comment ( "" );
}

동일한 차트에서 지표의 2개 인스턴스를 실행하고 시간 프레임을 전환하면 Comment 에서 무엇을 볼 수 있습니까?
90%에서는 ""가 됩니다. ( OnInitOnDeinit 아래에서 Comment 를 설정하기 위한 우선 순위가 다른 다른 스레드에 다른 대기열이 있으면 어떻게 합니까 ....)

 

컴파일 오류

 template < typename T>
string ETS( T t ) { return ( typename ( t ) == "int" ? "OK" : :: EnumToString ( t ) ); }
enum ENUM {     ENUM__ };
void OnStart ()
{
        ENUM i1 = ENUM__;       Print ( ETS( i1 )); //нормально
         int   i2 = 0 ;             Print ( ETS( i2 )); //ошибка компиляции
}
컴파일 타임에 유형이 알려진 경우 두 번째 경우에 ::EnumToString( int )을 평가하는 이유는 무엇입니까?
 
ALXIMIKS :

90%에서는 ""가 됩니다.

무엇을 예상했습니까? 하나는 쓰고 다른 하나는 지웁니다.
 
A100 :
무엇을 예상했습니까? 하나는 쓰고 다른 하나는 지웁니다.
두 번째 쓰기를 잊어 버렸습니다.

쓰기 2회와 지우기 2회가 있습니다. 비동기식일 가능성이 큽니다.
아이디어에 따르면 쓰기 전에 지우기가 있어야하지만 슬프게도 이것은 그렇지 않습니다 ...
 

컴파일러는 오류 를 감지하지 못합니다(최소한 두 번째 #endif가 누락됨). 이로 인해 더 심각한 오류를 감지하지 못합니다.

 #property library
#define __MQL5
#ifdef   __MQL5
#ifndef __MQL5
#else
#else
#endif