주문이 선택되었는지 확인하는 방법 - 페이지 9

 
Vinin :


특별히 누구와도 연락을 하지 않았다.

그러나 당신은 그것을 개인적으로 취함으로써 분명히 옳은 일을 한 것 같습니다.

당신을 바보라고 할 수는 없지만 당신이 귀머거리라는 사실은 확실합니다.

당신은 다른 사람의 말을 듣지 않습니다. 이것은 내 말에 관한 것이 아니라 당신이받은 조언에 관한 것입니다.

상호 운용 가능한 프로그램을 작성한 적이 있습니까?

Ant_TL 이 요구하는 것은 "상호 운용성"이지만 MQL에서는 실현할 수 없습니다.

 
PapaYozh :

상호 운용 가능한 프로그램을 작성한 적이 있습니까?

Ant_TL 이 요구하는 것은 "상호 운용성"이지만 MQL에서는 실현할 수 없습니다.


구현하는 것은 어렵지 않습니다. 그리고 원칙적으로 해결책이 있습니다. 더 읽기에는 너무 게으르다
 
변경되지 않는 닫힌 위치 에 대해 유사한 솔루션이 실행될 수 있습니다. 그리고 개방을 위해-하지 마십시오
 
Vinin :

구현하는 것은 어렵지 않습니다. 그리고 원칙적으로 해결책이 있습니다. 더 읽기에는 너무 게으르다

주문으로 작업을 수행할 수 없으며 동시에 환경에 영향을 미치지 않습니다.

GetLastError()가 이미 언급되었으므로 GetLastError() 함수 가 반환해야 하는 코드를 복구할 수 없습니다.

 
PapaYozh :

주문으로 작업을 수행할 수 없으며 동시에 환경에 영향을 미치지 않습니다.

GetLastError()에 대해서는 이미 언급했지만 GetLastError() 함수가 반환해야 하는 코드를 복구할 수 없습니다.


원하는 경우 고유한 기능을 사용할 수 있습니다( GetLastError() 에 대해 이야기하고 있습니다).
 

다음은 솔루션의 모습입니다. - 래퍼 OrderSelect() - 인덱스별로 주문을 정렬하는 함수에서 사용하기 위한 MySelect()

정수 last_select=0; // 초기화 및 시작 전에 어딘가에 넣습니다.

// ...... 프로그램 코드

bool MySelect(int i,int mode=MODE_TRADES){ // 필요한 주문 선택 - 주문이 선택되고 EA에 속하면 True를 반환하고 그렇지 않으면 False를 반환합니다.
if(주문선택(i,SELECT_BY_POS,모드)){
last_select=OrderTicket();
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
반환(참);
또 다른
반환(거짓);
}
반환(거짓);
}

bool TickSelect(int tick){ // 티켓으로 직접 선택 주문
if(주문선택(틱,SELECT_BY_TICKET))
last_select=틱;
또 다른
반환(거짓);
반환(참);
}

void SomeFunc(){ // 주문 선택을 위반할 수 있고 따라서 현재 주문 선택이 처리되지 않으면 프로그램 논리를 위반할 수 있는 함수 템플릿
정수 틱=last_select;

// ... 필요한 작업을 수행합니다.

if(틱>0)
TickSelect(틱);
}

 
Ant_TL :

프로그램에서 이 상태를 직접 변경하지 않는 한 불가능합니다.

주문 상태가 MODE_TRADES에서 MODE_HISTORY로 변경된 것으로 가정합니다. 게다가 당신의 고문은 그 명령에 대해 아무 것도 하지 않았습니다. 같은 순서인가요, 아니면 다른 순서인가요?

 
Mislaid :

주문 상태가 MODE_TRADES에서 MODE_HISTORY로 변경된 것으로 가정합니다. 게다가, 당신의 고문은 명령에 대해 아무 것도 하지 않았습니다. 같은 순서인가요, 아니면 다른 순서인가요?

같은 주문입니다.

 
나는 어떤 문제도 보이지 않는다. 그리고 소란은 이혼 ... 하나의 주 함수 A()에서 순서를 선택해야하고 주 함수 A()에서 호출되는 다른 함수 B()에서 함수 A()에서 선택한 순서를 처리해야합니다. 그리고 B() 함수에서는 그 주문이 아직 선택되어 있는지 확실히 알아야 합니다... 자, A() 함수에서 선택한 주문의 티켓을 B() 함수에 전달합니다. B() 함수에서 어떤 목록에서 주문이 선택되었는지 확인한 다음 A() 함수로 돌아갈 위치와 반환할 항목을 결정할 수 있습니다.
 
Ant_TL :

다음은 솔루션의 모습입니다. - 래퍼 OrderSelect() - 인덱스별로 주문을 정렬하는 함수에서 사용하기 위한 MySelect()

정수 last_select=0; // 초기화 및 시작 전에 어딘가에 넣습니다.

// ...... 프로그램 코드

bool MySelect(int i,int mode=MODE_TRADES){ // 필요한 주문 선택 - 주문이 선택되고 EA에 속하면 True를 반환하고 그렇지 않으면 False를 반환합니다.
if(주문선택(i,SELECT_BY_POS,모드)){
last_select=OrderTicket();
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
반환(참);
또 다른
반환(거짓);
}
반환(거짓);
}

bool TickSelect(int tick){ // 티켓으로 직접 선택 주문
if(주문선택(틱,SELECT_BY_TICKET))
last_select=틱;
또 다른
반환(거짓);
반환(참);
}

void SomeFunc(){ // 주문 선택을 위반할 수 있고 따라서 현재 주문 선택이 처리되지 않으면 프로그램 논리를 위반할 수 있는 함수 템플릿
정수 틱=last_select;

// ... 필요한 작업을 수행합니다.

if(틱>0)
TickSelect(틱);
}

이제 터미널을 다시 시작한 후 last_select 변수에 어떤 일이 발생하는지 상상해 봅시다.