개요 | |
MQL4 의 주문함수 OrderSend 실행시 정상적으로 접수되지 못하고 실패하고 오류번호 130 반환 되는 경우들 각각의 원인 및 해결책 정리. 참고 : 함수 OrderSend() 상세보기 -> http://igotit.tistory.com/1749 의 OrderSend 설명부. | |
|
오류 원인 1 : Stop Loss, Take Profit 가격 제한에 의한 OrderSend 실패 | |
거래 브로커에서 지정되어 있는 최소폭 Stops level 이하의 가격으로 설정하면 OrderSend 실패한다. 메타트레이더에서 종목별 Stops level 확인방법 및 개념 상세보기 : http://igotit.tistory.com/1754 의 항목 중 Stops level 부분 볼것. 동영상. - OrderSend error 130 by Stop Loss, Take Profit range fault. - 본 예에서는 OrderSend 함수의 인자 중 Stop Loss 값과 Take Profit 값이 contract specification 에서의 Stops level 이하인 값으로 설정되어 OrderSend 실패하는 상황. 해결책.동영상. - 상기 오류 상황에서 Stop Loss 값과 Take Profit 값을 Stops level 보다 큰 값을 지정하여 OrderSend 오류 해결하여 정상 주문 수행되게 함. | |
|
오류 원인 2 : 시장가 주문에서 손절,익절 비허용 브로커에 의한 OrderSend 실패 | ||
시장가 주문시에는 손절, 익절을 허용하지 않는 브로커(ECN 브로커들이 전부 이럼)가 있다. 해결책. 1. 시장가 주문하려면 손절, 익절 가격을 0으로 설정해서 OrderSend 함수 호출한다. - 예 : OrderSend(Symbol(),OP_BUY,1,Ask,10,0,0)) - 본 주문체결된 주문의 손절, 익절 주문은 설정되지 않는다. 2. 상기1 주문의 손절, 익절 주문 즉시 설정되게 하는 법. - 시장가 주문 직후 주문 수정함수인 OrderModify 호출하여 손절, 익절 주문 가능하다. 코드예.
| ||
|
오류 원인 3 : 가격의 실수 자리수 오류. | |
가격의 실수자리수가 4자리, 5자리 로 딱 떨어지지 않게 처리되어 주문 오류 발생하는 경우가 있다. 해결책. 가격의 자리수를 강제로 확정짓는 NormailizeDouble(가격, Digits); 호출하여 반환값을 주문함수의 가격에 입력한다. | |
|
///1753
'트레이딩' 카테고리의 다른 글
메타트레이더 4. Trailing Stop 설정 및 작동상황. (0) | 2018.07.30 |
---|---|
메타트레이더. Symbol contract specification. (3) | 2018.07.22 |
메타트레이더. MQL4. OrderSend error 130. 해결방법. (0) | 2018.07.22 |
메타트레이더 4. MQL4 문자열 출력 함수들. (0) | 2018.07.20 |
메타트레이더 4. MetaEditor. MQL4 EA 생성. (0) | 2018.07.20 |
메타트레이더4. 수동 주문. (0) | 2018.07.20 |
댓글0