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

 

모든 프로젝트 파일을 별도의 폴더에 복사(상대 경로 유지)하는 방법.

예를 들어 여기에서 코드를 공유하고 싶습니다. 다른 위치에서 12개/기타 mqh 파일을 가져옵니다.

이제 이러한 파일을 수동으로 찾아야 하며, 종종 모든 것을 찾지 못하거나 추가로 필요한 것이 있습니다. 소스를 공유할 수 있도록 이 프로세스를 자동화하는 방법은 무엇입니까?

 

모든 파일이 포함 된 프로젝트를 삭제하는 방법은 무엇입니까?

여기에서 코드베이스에서 터미널을 통해 수십 개의 파일에 대한 프로젝트를 다운로드했는데 어떻게 삭제할 수 있습니까?

 

컴파일 중 오류

 class A {};
template < typename T> //--------------------------------------------------- //(1)
T *f( T* t ) { return t; }               //      A *f(       A* )          //(2)
                                        //const A *f( const A* )          //(3)
template < typename T> //--------------------------------------------------- // (4)
T *f( T* t, const T* ) { return t; }    //      A *f(       A*, const A* )//(5)
void OnStart ()
{
    const A *a;
    const A *a1 = f( a );    // ошибка не обоснована: T -> const A, и в отсутствии (6) применимо (3)
          A *a2 = f( a );     //ошибка    обоснована, но по другой причине: A* = const A*
                  f( a, a ); //ошибка    обоснована, но по другой причине : T -> A, и отсутствует f(const A*,const A*)
}

(*) 일반적인 경우 템플릿 (1)에서 T 대신에 A - > (2)와 const A - > (3)을 모두 대체할 수 있습니다. 예를 들어 템플릿 (4)와 달리 T 대신 A->(5)만 대체할 수 있습니다.

이제 대체 A-> (2)만 작동하며 전체 사용을 위해서는 하나가 아닌 두 개의 템플릿을 수행해야 합니다.

 template < typename T> //--------------------------------------------------- //(1)
      T *f(       T* t ) { return t; }
template < typename T> //--------------------------------------------------- //(6)
const T *f( const T* t ) { return t; }

참고: 명시적 정의(6)가 일반적인 경우(*)보다 우선합니다.

전체: 템플릿(6)이 없는 경우 서명(3)이 있는 템플릿(1)이 적용될 것으로 예상됨

 
A100 :
코드베이스에 무언가를 넣어달라고 부탁합니다! 교육 목적.
 
1) OrderSend를 호출 한 후 MT5에서 열린 포지션 및 거래 내역 업데이트에 지연이 있습니까? 그렇다면 권장 대기 시간 초과는 얼마입니까?

2) 비교를 위해 MT4에 대한 동일한 질문입니다.
 

RickD :
1) Обновление открытых позиций и торговой истории в MT5 после вызова OrderSend происходит с некоторой задержкой? Если да, какой рекомендуется timeout для ожидания?

MT5-OrderSend는 완전히 동기화되지 않았습니다. 거래 환경과 동기화되지 않았습니다. 이는 역사의 증언이 실제 상황과 일치하지 않는다는 것을 의미한다.

시간 초과에 대한 이야기는 없습니다. 문제에 대한 신뢰할 수 있는 솔루션이 없기 때문에 동기화 문제는 서버가 아닌 터미널 수준에서 처리해야 합니다.

실제로 MT5 사용자는 MT4 브리지 개발자가 경험한 것을 경험했습니다.

OrderSend가 전송되면 이것이 완료되었음을 기억해야 합니다(잠재적인 취약점이 있음). 또한 해당 메시지가 OnTrade에 도착할 때까지 현재 이력(거래 환경)에 주의를 기울이지 마십시오. 그것이 오면 기억해야 할 것은 잊어버려야 합니다.

STORED 데이터가 없으면 MT4와 같이 이력을 신뢰할 수 있습니다.

2) 비교를 위해 MT4에 대한 동일한 질문입니다.
MT4-OrderSend가 완전히 동기화되었습니다.
 

Версия и битность терминала

버전: 5.00, 빌드 1445(2016년 10월 7일), 32비트.

문제에 대한 설명

지표는 다른 시간대(지표가 설치된 차트의 현재 시간대 제외)에서 표준 지표(MT5에 내장)의 데이터를 복사하지 못합니다. 동시에 표준 표시기의 "핸들"을 얻을 수 있지만 CopyBuffer() 함수는 지속적으로 값 -1을 반환합니다. 시각화 모드의 테스터에서는 이 문제가 발생하지 않지만 차트의 터미널(지표가 추가된)에서는 문제가 지속적으로 존재합니다.

시퀀싱

전술 한 바와.

결과

전술 한 바와.

예상 결과

지표의 다른 시간 프레임에서 표준(및 사용자 지정, 바람직하게는 역시) 지표의 데이터를 올바르게 복사합니다.

추가 정보

이전 빌드에는 이 문제가 없었습니다.

비슷한 문제가 발생한 사람이 있습니까? 터미널 또는 광산의 "버그"?

 

fxsaber :

...OrderSend가 전송되면 이것이 완료되었음을 기억해야 합니다(잠재적인 취약점이 있음). 또한 해당 메시지가 OnTrade에 도착할 때까지 현재 이력(거래 환경)에 주의를 기울이지 마십시오. 그것이 오면 기억해야 할 것은 잊어야 합니다...

내 메모리가 새거나 OnTrade 부분에서 문서 가 업데이트되었습니다.

...OrderSend() 함수에 대한 호출이 성공적으로 완료되고 true를 반환하면 거래 서버가 실행을 위해 주문을 대기열에 넣고 티켓 번호를 할당했음을 의미합니다. 서버가 이 주문을 처리하는 즉시 Trade 이벤트가 생성됩니다. 그리고 사용자가 티켓 값을 기억하면 OnTrade() 이벤트를 처리할 때 이 티켓을 사용하여 주문에 무슨 일이 일어났는지 정확히 알 수 있습니다...

즉, i번째 단계에서 OnTrade를 트리거하는 것은 주문이 서버에서 수락되었음을 보장합니다.

 
Dennis Kirichenko :

내 메모리가 새거나 OnTrade 부분에서 문서 가 업데이트되었습니다.

즉, i번째 단계에서 OnTrade를 트리거하는 것은 주문이 서버에서 수락되었음을 보장합니다.

티켓(OrderSend에 의해 반환된다는 사실이 아님) 또는 실제 반환과 함께 OrderSend가 이루어졌다는 바로 그 사실을 기억하는 것이 필요합니다.
 
fxsaber :
티켓(OrderSend에 의해 반환된다는 사실이 아님) 또는 실제 반환과 함께 OrderSend가 이루어졌다는 바로 그 사실을 기억하는 것이 필요합니다.

모든 것이 괜찮습니다. 주문은 OnTradeTransaction을 통해 제어되어야 합니다. 그런데 Plaza2 를 통해 거래소에 직접 연결하면 상황은 동일합니다. 주문에 대한 메시지 수신을 제어해야 합니다. 그리고 MT4에서 이 기능은 동기식이지만 MT5에서 동일한 옵션을 사용할 수 있습니다. 이 경우에만 함수가 응답을 수신할 때까지 논리가 중지됩니다.

필요한 경우 제어 클래스를 삭제할 수 있지만 시장 배치를 위해 축소되었지만 곧 지정가 주문으로 마무리할 것입니다.