기고글 토론 "포지션 중심적 MetaTrader5 환경에서 주문 추적을 위해 가상 주문 매니저 활용하기" - 페이지 2

 
phampton:

맞습니다. 기존 주문으로 서버로 직접 이동한 것이므로 가상 주문이 열려 있지 않습니다. 수동 가상 주문을 발행하려면 VirtualOrderManagerTester를 사용해야 합니다.

기사에서 특정 종목에 VOM EA가 도입되면 해당 종목을 거래하는 다른 모든 EA도 VOM이 활성화되어야 한다는 점을 분명히 했어야 했습니다. 이는 VOM의 재해 보호 SL 코드 때문입니다.

Paul

폴 감사합니다.

MT-5 전략 테스터에서 VirtualOrderManager.mqh를 사용할 수 있나요? 그렇다면 EA를 VOM으로 어떻게 설정해야 하나요?

 
wackena:

감사합니다 Paul.

MT-5 전략 테스터에서 VirtualOrderManager.mqh를 사용할 수 있나요? 그렇다면 EA를 VOM으로 어떻게 설정해야 하나요?

예, ST에서 매우 제한적으로 테스트한 결과 각 틱을 처리해야 하기 때문에 느리지만 변경 없이 작동하는 것으로 나타났습니다.
 

마틴 게일 유형 EA에서 VOM으로 작업하고 있습니다. 동일한 유형 및 통화쌍의 매도 거래가 여러 개 열려 있는 경우, 이 CloseAllOrders 함수는 마지막 거래만 청산하고 이전 거래는 계속 열려 있는 것처럼 보입니다.

VOM.CloseAllOrders(_Symbol,VIRTUAL_ORDER_TYPE_SELL);

여러 개의 동일한 유형 및 통화쌍의 가상 주문(vo)이 열려 있는 경우 이 함수 코드는 하나의 vo 주문 청산을 시작하거나 열려 있는 모든 vo 주문을 청산하는 기능을 수행해야 합니다.

VOM.OrdersTotal()은 미체결 vo 주문 수를 잘 추적합니다.

 
wackena:

마틴 게일 유형 EA에서 VOM으로 작업하고 있습니다. 동일한 유형 및 통화쌍의 매도 거래가 여러 개 열려 있는 경우 이 CloseAllOrders 함수는 마지막 거래만 청산하고 이전 거래는 계속 열려 있는 것처럼 보입니다.

여러 개의 동일한 유형 및 통화쌍의 가상 주문(vo)이 열려 있는 경우 이 기능 코드는 하나의 vo 주문 청산을 시작하거나 열려 있는 모든 vo 주문을 청산하는 기능을 수행해야 합니다.

VOM.OrdersTotal()은 미체결 vo 주문 수를 꽤 잘 추적합니다.

안녕하세요 wackena,

방금 가상 주문 관리자 테스터에 모두 닫기 버튼을 추가했습니다(첨부 파일 참조). 모든 가상 주문을 청산하는 것이 투박한 방법이라는 것은 인정하지만 정상적으로 작동합니다. 더 좋은 방법은 주문을 합산하여 단일 서버 주문을 발행하는 것이며 다음 릴리스에서이를 수행하는 방법을 살펴 보겠습니다.

무슨 일이 일어나고 있는지 더 잘 볼 수 있도록 LOG_VERBOSE EA 로그 사본을 보내주세요.

Paul

 
phampton:

안녕하세요,

방금 가상 주문 관리자 테스터에 모두 닫기 버튼을 추가했습니다(첨부 파일 참조). 모든 가상 주문을 닫는 것이 투박한 방법이라는 것은 인정하지만 정상적으로 작동합니다. 더 좋은 방법은 가상 주문을 합산하여 단일 서버 주문을 발행하는 것이며 다음 릴리스에서 그렇게하는 방법을 살펴 보겠습니다.

무슨 일이 일어나고 있는지 더 잘 볼 수 있도록 LOG_VERBOSE EA 로그 사본을 보내주세요.

Paul

로그 파일을 첨부합니다.
파일:
 
wackena:
첨부된 로그 파일입니다.

로그에서 확인할 수 있는 것은 가상 테이크프로핏이 발생했을 때, 즉 명시적으로 주문을 청산하는 코드(예: CloseAllOrders)가 도달하지 않았거나 청산할 주문이 남아 있지 않을 때만 OrderClose 호출이 발생한다는 점입니다.

 

문서 부록 업데이트:

이제 가상 주문 관리자 라이브러리에 대한 문서, 사용자 가이드 및 소스 코드 주석을 러시아어로 사용할 수 있습니다.

 

이 라이브러리에는 큰 문제가 있습니다. VOM으로 개설하고 수동으로 청산한 거래가 VOM에 의해 개설된 것으로 표시됩니다.

그뿐만 아니라 VOM에서 이 거래를 청산하려고 하면 VOM이 반대 방향으로 거래를 개시합니다.

예를 들어

- 가상 주문 관리자 테스터로 5개의 매수 주문을 개설했는데 정상입니다.

- 5개의 주문을 모두 수동으로 청산합니다: MT5에서는 주문이 없고 차트(VOM)에는 5개의 미체결 주문이 표시됩니다.

- 가상 주문 관리자 테스터에서 5개의 주문을 청산합니다: MT5에는 5개의 매도 주문이 표시되고 차트(VOM)에는 아무것도 표시되지 않습니다.

내 EA 주문이 브로커 또는 다른 EA에 의해 마감되면 내 EA가 VOM을 사용하여 마감하려고 할 때 반대 방향으로 주문이 열리기 때문에 이것은 큰 문제라고 생각합니다.

이 문제에 대한 해결책이 있나요?

파일:
vom_test.jpg  188 kb
 
mbt22:

이 라이브러리에 큰 문제가 있습니다. VOM으로 개설하고 수동으로 청산한 거래가 VOM에 의해 개설된 것으로 표시됩니다.

그뿐만 아니라 VOM에서 이 거래를 청산하려고 하면 VOM이 반대 방향으로 거래를 개시합니다.

예를 들어

- 가상 주문 관리자 테스터로 5개의 매수 주문을 열었는데 정상입니다.

- 5개의 주문을 모두 수동으로 청산합니다: MT5에는 주문이 없고 차트(VOM)에는 5개의 미체결 주문이 표시됩니다.

- 가상 주문 관리자 테스터에서 5개의 주문을 청산합니다: MT5에는 5개의 매도 주문이 표시되고 차트(VOM)에는 아무것도 표시되지 않습니다.

내 EA 주문이 브로커 또는 다른 EA에 의해 마감되면 내 EA가 VOM을 사용하여 마감하려고 할 때 반대 방향으로 주문이 열리기 때문에 이것은 큰 문제라고 생각합니다.

이 문제에 대한 해결책이 있나요?

안녕하세요 mbt22,

귀하가 강조한 것은 확실히이 라이브러리의 한계입니다. 계정에서 실행되는 모든 EA는 VOM을 사용해야하며 여기에는 수동 거래가 포함됩니다.

그러나 VOM EA의 이러한 사교성 제한은 많은 MQL5 EA에서 볼 수 있습니다. 즉, 이러한 EA는 수동 거래 또는 동일한 심볼에서 작동하는 모든 유형의 다른 EA에서도 실패 할 수 있습니다.

다음은 VOM이 아닌 EA가 실패한 예시입니다. 해당 EA 외부의 거래(수동 및/또는 EA 생성)가 총 1.0랏이 부족하고 EA가 50핍 스탑으로 0.1랏의 매수 주문을 발행한다고 가정해 보겠습니다.EA의 주문 보내기 기능이 정확히 어떻게 작동하는지(완료 또는 스톱 오류 반환)는 기억나지 않지만 확실한 것은 결과 포지션 크기인 0.9 랏 숏보다 50 핍 아래에서는 스톱이 적용될 수 없다는 것입니다.

테스트 EA는 VOM을 사용하여 수동 거래를 관리할 수 있지만 브로커가 주문을 청산하는 상황이 발생하면 VOM이 통제력을 잃은 것이므로 계좌에 대한 신중한 평가가 필요합니다.

VOM이 VOM이 아닌 활동과 사교적이지 않은 주된 이유 중 하나는 모든 고객 기반 거래 종료 프로세스에서 절대적인 위험 관리 인 재난 보호 중지 관리 때문입니다.

Paul

 
phampton:

안녕하세요 mbt22,

강조하신 부분은 분명히 이 라이브러리의 한계입니다. 계정에서 실행되는 모든 EA는 VOM을 사용해야 하며 여기에는 수동 거래가 포함됩니다.

그러나 VOM EA의 이러한 사교성 제한은 많은 MQL5 EA에서 볼 수 있습니다. 즉, 이러한 EA는 수동 거래 또는 동일한 심볼에서 작동하는 모든 유형의 다른 EA에서도 실패 할 수 있습니다.

다음은 VOM이 아닌 EA가 실패한 예시입니다. 해당 EA 외부의 거래(수동 및/또는 EA 생성)가 총 1.0랏이 부족하고 EA가 50핍 스탑으로 0.1랏의 매수 주문을 발행한다고 가정해 보겠습니다.EA의 주문 보내기 기능이 어떻게 작동하는지(완료 또는 스톱 오류 반환)는 정확히 기억나지 않지만 확실한 것은 결과 포지션 크기인 0.9 랏 숏보다 50핍 아래에서는 스톱이 적용될 수 없다는 것입니다.

테스트 EA는 VOM을 사용하여 수동 거래를 관리할 수 있지만 브로커가 주문을 청산하는 상황이 발생하면 VOM이 통제력을 잃은 것이므로 계좌에 대한 신중한 평가가 필요합니다.

VOM이 VOM이 아닌 활동과 사교적이지 않은 주된 이유 중 하나는 모든 고객 기반 거래 종료 프로세스에서 절대적인 위험 관리인 재해 보호 중지 관리 때문입니다.

Paul


알겠습니다.

빠른 답변에 감사드립니다.