기고글 토론 "MetaTrader 5에서의 거래 이벤트" - 페이지 2

 
Rosh:
문서에 따르면 초기 확인은 터미널에서 수행된다고 합니다. 주문 확인()은 터미널에서도 작동하며 서버로 전송되는 것은 없습니다.
여기 또 다른 문제가 있습니다: "잘못된 요청이 서버 측에서 초기 검사를 통과하지 못함".
 
Yedelkin:

이 문서에는 "요청이 전송되면 서버에 도착하여 초기 유효성 검사를 거치게 됩니다."라고 설명되어 있습니다.

말 그대로 다음과 같이 말합니다:

중요: 각 요청은 거래 서버로 전송되기 전에 클라이언트 터미널 자체에서 정확성을 사전 확인합니다. 그럴듯하게 잘못된 요청(백만 랏 매수 또는 마이너스 가격으로 매수)은 터미널 외부로 전달되지 않습니다. 이는 mql5 프로그램에서 오류가 발생할 경우 대량의 잘못된 요청으로부터 트레이딩 서버를 보호하기 위한 것입니다.

요청을 전송하면 거래 서버에 도착하여 초기 검사를 통과합니다:

 
Rosh:
저도 헷갈렸어요. "초기 확인" 조합에서 참조를 제거했습니다.
기사를 다시 읽고 있습니다. 잘못된 부분이 있다면 사과드립니다. 하지만 이미 초기 서버 측 검사에 대한 기사에서 직접 두 개의 링크를 제공했습니다.
 
Yedelkin:
서버가 주문을 수락(배치) 한 후에만 OrderSend() 함수가 참을 반환한다는 말씀이신가요?
요청이 수락되었다는 뜻입니다. 또한 딜러, 거래 플랫폼 등에 의해 거부될 수도 있습니다.
 
Rosh:

말 그대로 다음과 같이 적혀 있습니다:

중요: 각 요청은 거래 서버로 전송되기 전에 클라이언트 터미널 자체에서 정확성을 사전 확인합니다. 그럴듯하게 잘못된 요청(백만 랏 매수 또는 마이너스 가격으로 매수)은 터미널 외부로 전달되지 않습니다. 이는 mql5 프로그램에서 오류가 발생할 경우 대량의 잘못된 요청으로부터 거래 서버를 보호하기 위한 것입니다.

요청을 전송하면 거래 서버에 도착하여 초기 확인을 통과합니다:

그런 다음 세 가지 점검으로 나눌 필요가 있습니다:

1) 터미널에 의한 대략적인 확인;

2) 주문확인()$ 함수를 사용한 터미널 측 확인

3) 서버 측 확인.

"1차 확인"의 개념이 무엇을 의미하는지는 아직 명확하지 않습니다.

 

Rosh:
Это означает, что запрос принят. Дальше он может быть отвергнут дилером, торговой площадкой и так далее.

알겠습니다. 주문의 향후 운명에 대해서는 신경 쓰지 않습니다. 귀하의 말에 따르면 OrderSend() 함수는 요청이 올바른지 확인한 후 즉시 참을 반환 할 수 없으며 서버가 주문을 수락 한 후에 만 참을 반환한다고 결론을 내립니다 (질문 2). 이것이 맞나요? 그렇다면 참고서에서 "기본 구조 확인에 성공하면 참이 반환된다"는 정보가 정확하지 않다는 것이 밝혀졌습니다.
 
Yedelkin:
알겠습니다. 주문의 향후 운명에 대해서는 신경 쓰지 않습니다. 귀하의 말에 따르면 OrderSend() 함수는 요청이 올바른지 확인한 후 즉시 참을 반환 할 수 없으며 서버가 주문을 수락 한 후에 만 참을 반환한다고 결론을 내립니다 (질문 2). 이것이 맞나요? 그렇다면 참고서에서 "구조의 기본 확인에 성공하면 참이 반환된다"는 정보는 정확하지 않은 것으로 밝혀졌습니다.
기본 검사 ≡ 서버 측의 기본 검사
 
Rosh:
기본 확인 ≡ 1차 서버 측 확인

질문 2를 공식화할 때 이미 "요청의 정확성을 이미 확인했지만 브로커가 아직 수락하지 않은 상황이 있을 수 있다"고 썼습니다. 아무도 이 말에 이의를 제기하지 않는 것 같습니다. 그래서 질문 2의 정의를 고려하여 질문 2를 약간 바꾸어 보겠습니다:

정확히 어떤 순간에 OrderSend() 함수가 참을 반환합니까? 요청의 정확성에 대한 기본 확인 (서버 측의 초기 확인) 직후 또는 주문이 서버에서 수락 된 후에 만?

실제로 다음 질문에 관심이 있습니다. 주문이 통과되었을 때 OrderSend() 함수가 정확히 어떤 단계 (터미널에서 서버로)에서 신호를 보내는가? "기본 확인" 또는 "주문의 기본 확인 + 수락 (배치)"? 아니면 참을 수신하는 것만으로 필요한 결론을 내리는 것이 불가능합니까?

 
Yedelkin:

위에서 질문 2를 공식화할 때 이미 "요청의 정확성을 이미 확인했지만 브로커가 아직 수락하지 않은 상황이 있을 수 있다"고 썼습니다. 아무도 이 진술에 이의를 제기하지 않는 것 같습니다. 따라서 질문 2의 정의를 고려하여 질문 2를 약간 수정하겠습니다:

정확히 어떤 순간에 OrderSend() 함수가 참을 반환합니까 - 정확성 요청에 대한 기본 확인(서버 측의 기본 확인) 직후 또는 서버에서 주문을 수락한 후에만?

물론 서버가 수락한 후에 반환됩니다. 게다가 이 함수의 이름은 OrderSEND입니다.
 
Yedelkin:

실제로 다음 질문이 궁금합니다. 주문 전송() 함수의 어느 단계(터미널에서 서버로)에서 참으로 신호가 전달되나요? "기본 확인" 또는 "주문의 기본 확인 + 수락 (배치)"? 아니면 참을 수신하는 것만으로 필요한 결론을 도출하는 것이 불가능합니까?
제 생각에는 참을 기준으로 만 결론을 도출해서는 안되며 서버 응답 코드도 분석해야합니다 (그리고 후자가 더 중요하다고 생각합니다) ...