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

 
angevoyageur : 무슨 말인지 잘 모르겠습니다. 우리가 이 주제에서 이야기하는 이 문제는 잘못된 코딩으로 인한 것이 아니라 mql5의 잘못된 설계로 인해 발생합니다(내 의견이거나 단순히 버그 일 수도 있습니다). "다중 거래 스레드"는 무엇을 의미합니까?

나는 돌아가서 당신이 나쁜 디자인 이라고 생각하는 것을 다시 읽었습니다.

old-mt4 내에는 이러한 클래스 가 존재하지 않습니다. 내부의 Success_Orders를 확인하는 일반적인 방법은 Ticket#==(-1) && GetLastError()입니다. 귀하의 주문이 유효한 티켓 번호 및 GLE=0을 반환하는 경우를 본 적이 없습니다. 그러나 다음 틱에서 OrdersTotal()은 여전히 0을 반환합니다.

이제 내가 전체 mql5 문서를 살펴보지 않았다는 것을 명심하십시오. 그러나 PositionSelect_Information이 나중까지 업데이트되지 않는다고 표시되는 경우. 그리고 누군가 PositionSelect를 사용하여 입력 논리를 평가하고 있습니다. 그런 다음 그 사람은 OrderSend 로직을 종료하기 전에 PositionSelect_Information이 업데이트될 때까지 기다려야 합니다.

스레드의 경우 ... 주문을 보내기 위해 여러 스레드와 단일 트레드에 대해 이야기하고있었습니다. 동시에 열리는 동시 주문과 같습니다. 여기에서는 관련이 있을 수도 있고 그렇지 않을 수도 있습니다.

 
Ubzen :

나는 돌아가서 당신이 나쁜 디자인 이라고 생각하는 것을 다시 읽었습니다.

old-mt4 내에는 이러한 클래스 가 존재하지 않습니다. 내부의 Success_Orders를 확인하는 일반적인 방법은 Ticket#==(-1) && GetLastError()입니다. 귀하의 주문이 유효한 티켓 번호 및 GLE=0을 반환하는 경우를 본 적이 없습니다. 그러나 다음 틱에서 OrdersTotal()은 여전히 0을 반환합니다.

이제 내가 전체 mql5 문서를 살펴보지 않았다는 것을 명심하십시오. 그러나 PositionSelect_Information이 나중까지 업데이트되지 않는다고 표시되는 경우. 그리고 누군가 PositionSelect를 사용하여 입력 논리를 평가하고 있습니다. 그런 다음 그 사람은 OrderSend 로직을 종료하기 전에 PositionSelect_Information이 업데이트될 때까지 기다려야 합니다.

스레드의 경우 ... 주문을 보내기 위해 여러 스레드와 단일 트레드에 대해 이야기하고있었습니다. 동시에 열리는 동시 주문과 같습니다. 여기에서는 관련이 있을 수도 있고 그렇지 않을 수도 있습니다.

PositionSelect에 대한 문서는 "나중에 업데이트되지 않음"에 대해 아무 말도 하지 않습니다. PositionSelect가 true인 경우에도 Position에 대한 정보가 최신 정보가 아닐 수 있으며, 이는 여기서 귀하의 문제와 관련이 없습니다.

나중에 시장이 열리면 어리석은 을 하지 않도록 가지 테스트 해보고 더 완전한 답변하도록 하겠습니다 .

 
angevoyageur :

PositionSelect에 대한 문서는 "나중에 업데이트되지 않음"에 대해 아무 말도 하지 않습니다. PositionSelect가 true인 경우에도 Position에 대한 정보가 최신 정보가 아닐 수 있으며, 이는 여기서 귀하의 문제와 관련이 없습니다.

나중에 시장이 열리면 어리석은 을 하지 않도록 가지 테스트 해보고 더 완전한 답변하도록 하겠습니다 .

K..... 그리고 btw, 문서에 아무 말도 없으면 나는 전적으로 동의합니다.

Service_Desk에 궁극적으로 물어볼 질문은 "trade.PositionOpen()==true일 때 Position_Information을 업데이트할 수 없는 이유는 무엇입니까?"입니다.

그들은 아마도 우리에게 좋은 답을 줄 것입니다. .

 
angevoyageur :

아니요. 저는 그냥 그것에 대해 생각하고 있었습니다...관련된 모든 사람들이 이 문제에 대해 ServiceDesk에 티켓을 작성하면 유용할 것입니다. 그러나 MQ가 이 디자인을 변경할 의향이 있는지 매우 회의적입니다. 하지만 우리는 시도할 수 있습니다.

사람들은 ServiceDesk에 글을 쓰고 티켓 번호를 여기에서 보고할 수 있습니다. 내 것은

오류 , MetaTrader 5 MQL , 열기 , 시작: 2013.12.23 19:08 , #916435


나는 또한 서비스 데스크, #933192 를 알렸다 | 2014.01.19 14:44

 

MQ는 실제로 이것을 타임아웃 기능 을 갖도록 쉽게 재설계할 수 있습니까?

응답이 없으면 이와 같은 오류가 발생합니까?

 
doshur :

MQ는 실제로 타임아웃 기능을 갖도록 이것을 쉽게 재설계할 수 있습니까?

응답이 없으면 이와 같은 오류가 발생합니까?


그들은 정확히 반대를 만들었습니다. mql5가 생성될 때 PositionSelect와 같은 기능에 대한 시간 초과 매개변수가 있었습니다 .

그러나 나중에 제거합니다. 여기에서 9번 항목을 참조하십시오. https://www.mql5.com/en/forum/53/page5#comment_14479

 

나는 나쁜 디자인의 주장에 동의하지만 MQL5의 주요 문제는 주식 시장과 같이 작동하도록 성공적인 Forex 기반 코드를 적용하는 것이었습니다.

예를 들어, 몇몇 주식 시장은 FIX 프로토콜을 표준으로 사용하는데, 저에게 이 통신 프로토콜은 어떤 코드나 아키텍처에도 적용하기 쉽지 않습니다.

어쨌든 MQ 사람들은 시간 문제가 있었고 처음부터 MQL4를 기반으로 MQL5를 만들어야 했던 것이 아니라 처음부터 만들어야 한다고 생각합니다. 나는 그 해에 챔피언십이 그들에게 더 많은 시간이 있기 때문에 중단되었던 것으로 기억합니다.

따라서 이 주제는 주로 모든 시장에서 작동하는 트랜잭션 복원력 및 불가지론적 솔루션과 관련하여 미래의 MQL6과 완전히 새로운 아키텍처에 대한 훌륭한 조언이 될 수 있습니다.

 
doshur :

MQ는 실제로 타임아웃 기능을 갖도록 이것을 쉽게 재설계할 수 있습니까?

응답이 없으면 이와 같은 오류가 발생합니까?

전통적으로 TimeOut은 주문이 포지션이 되지 않는다는 것을 의미하지 않습니다. 당신은 오랜 기간 동안 기다려야 할 것입니다 .. 그것이 포지션이 되는지 확인하고 ... 주문이 실행되지 않으면 거래가 중단됩니다.

나는 MQ가 이것이 프로그래머의 오류라는 것에 대해 figurelli 의 편을 들 것이라고 생각합니다. trade.PositionOpen이 구축된 기능 은 다른 사항을 확인해야 한다고 명확하게 명시하고 있기 때문입니다.


****** (개인 일정 추가 ... 이 시점에서 읽기를 중단할 수 있습니다.) *******

이것이 내가 mql_forum에서 그들을 도울 때 함수와 그들의 반환 값에 대해 새 프로그래머를 찾아 헤매지 않는 이유입니다. 항상 다음을 수행하라는 말은 의미가 없습니다.

if( 주문 보내기()<0 ) { 인쇄( GetLastError() ); }

이것은 자동화된 거래자라고 가정합니다 ... 당신은 떨어져 있을 수 있습니다 ... 그리고 그것이 하는 일은 Print()입니까?

내 생각에 Error_Handling과 Error_Reporting은 2_매우 다른 괴물입니다. 오류를 처리하는 적절한 방법을 설명하려고 하면 페이지가 길어질 수 있으며 트레이더에게 몇 번이나 다시 시도해야 하는지 또는 거래를 종료해야 하는지 여부는 매우 개인적입니다.

**** 이제 초보자가 EA를 코딩하고 있고 거래에 문제가 있다고 말하는 것이 아닙니다... Print( GetLastError(); ) <- 이것은 분명해야 합니다. 하지만 항상 Get_Error라고 하려면 항상 Handle_Error라고 말해야 합니다. *** 의제 종료. ****

 
angevoyageur :


그들은 정확히 반대를 만들었습니다. mql5가 생성될 때 PositionSelect와 같은 기능에 대한 시간 초과 매개변수가 있었습니다 .

그러나 나중에 제거합니다. 여기에서 9번 항목을 참조하십시오. https://www.mql5.com/en/forum/53/page5#comment_14479

그것을 되살릴 시간?
 
doshur :
그것을 되살릴 시간?

나는 그렇게 생각하지 않는다. 동기식 거래 요청은 모든 측면에서 동기식이어야 합니다. 그것만큼 간단합니다.

여기서 요청은 동기식이지만 비동기식 항목을 관리해야 합니다. 그리고 그것에 대해 문서화 된 것은 없습니다.

사유: