내 EA가 이중 항목을 수행합니다. - 페이지 8

 
angevoyageur :

1) 나는 그것이 이 주제의 문제와 관련이 있다고 생각하지 않습니다. 우리가 얻는 문제는 요청이 성공적으로 채워지고 포지션이 열린 경우입니다. 그러나 이 포지션은 거래 서버에서 열렸고, 우리가 직면한 문제는 평소와 같이 더 중요한 지연이 있고 새로운 틱이 이미 처리된 후 MT5 터미널에 이 새로운 포지션에 대한 알림이 있을 때입니다.

2) ... 제 생각에는 명시적으로 동기 및 비동기 거래 요청을 허용하는 플랫폼에 적합하지 않게 설계되었습니다...

3) ... ResultRetCode는 동기식이며 비동기식인 위치(거래 및 주문)에 대한 MT5 데이터베이스 업데이트입니다...

1) 동의하지 않고 무지해서 죄송합니다. 하지만 ResultRetcode()를 다시 확인 하지 않고 거래 서버에서 PositionOpen() 이후에 포지션이 열렸는지 어떻게 확신합니까?

2) 100% 동의합니다.

3) ResultRetCode()가 동기식인지 확인하려면 사용자(마스터)가 여러 "비동기식" 메시지를 사용하여 서버(슬레이브)에 쿼리해야 하는 결과 코드를 확인해야 합니다.

 
figurelli :

1) 동의하지 않고 무지해서 죄송합니다. 하지만 ResultRetcode()를 다시 확인하지 않고 거래 서버에서 PositionOpen() 이후에 포지션이 열렸는지 어떻게 확신합니까?

2) 100% 동의합니다.

3) ResultRetCode()가 동기식인지 확인하려면 사용자(마스터)가 여러 "비동기식" 메시지를 사용하여 서버(슬레이브)에 쿼리해야 하는 결과 코드를 확인해야 합니다.

1) 이 항목은 이중 항목에 대한 것이므로 성공한 주문 요청에 대해 이야기하고 있습니다. 나는 ResultRetCode()를 다시 확인할 필요가 없다고 쓴 적이 없으며 정확히 그 반대로 썼습니다. 그러나 이것은 정의상 이중 항목과 관련이 없습니다. 뻔하지 않습니까?

3) 아마도 세부 사항일 것입니다( 이해력?). 그러나 귀하가 작성한 내용이 이해가 되지 않습니다. 문장의 첫 번째 부분에서는 ResultRetCode()가 동기식이라고 말했고 두 번째 부분에서는 ResultRetCode()와 동일한 "결과 코드"가 비동기식으로 획득된다고 말했습니다. 이 값(Retcode)을 얻기 위해 서버와 터미널 간에 통신이 전혀 없습니다.

기본적으로 CTrade.PositionOpen() 은 동기식이며, 이는 기본 클래스 가 OrderSend() 를 사용함 을 의미합니다. 주문 요청 을 보내고 서버의 응답을 기다립니다 . 서버는 결과를 터미널에 반환하고 EA 코드는 계속됩니다(반환 값 true 또는 false로). 마스터/슬레이브 통신이 종료되었습니다. 그런 다음 이미 로컬에서 사용 가능한 ResultRetcode를 확인할 수 있습니다.

Documentation on MQL5: Trade Functions / OrderSend
Documentation on MQL5: Trade Functions / OrderSend
  • www.mql5.com
Trade Functions / OrderSend - Documentation on MQL5
 
@ figurelli : 중재자가 되신 것을 축하드립니다... .
 
포지션 오픈에 타임아웃이 있나요?
 
doshur :
포지션 오픈에 타임아웃이 있나요?
안녕하세요 doshur, 정확히 시간 초과가 무엇을 의미합니까?
 
Malacarne :
안녕하세요 doshur, 정확히 시간 초과가 무엇을 의미합니까?
서버에서 응답이 없는 것처럼
 
angevoyageur :

1) 이 항목은 이중 항목에 대한 것이므로 성공한 주문 요청에 대해 이야기하고 있습니다. 나는 ResultRetCode()를 다시 확인할 필요가 없다고 쓴 적이 없으며 정확히 그 반대로 썼습니다. 그러나 이것은 정의상 이중 항목과 관련이 없습니다. 뻔하지 않습니까?

3) 아마도 세부 사항일 것입니다( 이해력?). 그러나 귀하가 작성한 내용이 이해가 되지 않습니다. 문장의 첫 번째 부분에서는 ResultRetCode()가 동기식이라고 말했고 두 번째 부분에서는 ResultRetCode()와 동일한 "결과 코드"가 비동기식으로 획득된다고 말했습니다. 이 값(Retcode)을 얻기 위해 서버와 터미널 간에 통신이 전혀 없습니다.

기본적으로 CTrade.PositionOpen() 은 동기식이며, 이는 기본 클래스 가 OrderSend() 를 사용함 을 의미합니다. 주문 요청 을 보내고 서버의 응답을 기다립니다 . 서버는 결과를 터미널에 반환하고 EA 코드는 계속됩니다(반환 값 true 또는 false로). 마스터/슬레이브 통신이 종료되었습니다. 그런 다음 이미 로컬에서 사용 가능한 ResultRetcode를 확인할 수 있습니다.

알랭,

약 1) doshur의 원래 코드는 ResultRetCode ()를 확인하지 않고 그는 "이중 입력"에 대한 솔루션을 찾고 있기 때문에 여전히 동의 하지 않습니다. 제안). 그래서 나에게 그것은 그렇게 분명하지 않습니다.

약 3) "그러나 ResultRetCode는 동기식 이지만 비동기식인 위치(거래 및 주문)에 대한 MT5 데이터베이스의 업데이트입니다."라고 썼습니다. 그래서 내 대답은 이 문장에 대한 것이었다.

어쨌든, 우리의 논쟁은 반 컵의 물에 대한 이야기처럼 보입니다. 어떤 사람들은 그것을 반이 차고 어떤 사람들은 반 비어 있다고 볼 것입니다. 비어 있는 ;-)))

따라서 솔직히 말해서 이 토론이 생산적이거나 계속되어야 한다고 생각하지 않습니다(적어도 이 주제에서는). 해결 방법을 다시 찾을 수 있기 때문입니다. 따라서 이러한 논란을 일으킨 점에 대해 죄송스럽게 생각하고 계속 진행하십시오. 당신의 생각과 함께, 나는 doshur 와 같은 문제를 가진 다른 사람들을 돕는 데 더 적합할 것이라고 생각합니다.

 
Ubzen :
@ figurelli : 진행자가 되신 것을 축하드립니다 .... .
Ubzen , 정말 감사합니다. 하지만 저는 이것이 단지 mql5.com 심각한 버그라고 생각합니다 ;-))
 

글쎄, 게시 된 모든 해결 방법은 매우 좋습니다. 나는 그것을 감사하고 그 과정에서 몇 가지 아이디어를 배웁니다.

도움이 됩니다.

내 EA는 이제 더 탄력적인 것 같습니다.

 
figurelli :
...

따라서 솔직히 말해서 이 토론이 생산적이거나 계속되어야 한다고 생각하지 않습니다(적어도 이 주제에서는). 해결 방법을 다시 찾을 수 있기 때문입니다. 따라서 이러한 논란을 일으킨 점에 대해 죄송스럽게 생각하고 계속 진행하십시오. 당신의 생각과 함께, 나는 doshur 와 같은 문제를 가진 다른 사람들을 돕는 데 더 적합할 것이라고 생각합니다.

나는 그것에 전적으로 동의합니다. 걱정하지 말고 진행하세요.