본문 바로가기
트레이딩

메타트레이더. MQL4. OrderSend error 130. 해결방법.

by i.got.it 2018. 7. 22.

 

개요

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 호출하여 손절, 익절 주문 가능하다. 
 
코드예. 

int order_id; 
 bool bRsltOrderModify; 


 order_id = OrderSend(Symbol(),OP_BUY,1,Ask,10,0,0)); 


 if(order_id > 0) // 시장가 주문 성공. 
 {
   bRsltOrderModify = OrderModify(order_id, 0, Ask-0.001, Ask+0.001);
   if(!bRsltOrderModify)
  {
     Alert("Fail OrderModify : ORDER ID = ", order_id); 
  }
 }

 

 

오류 원인 3 :  가격의 실수 자리수 오류.

가격의 실수자리수가 4자리, 5자리 로 딱 떨어지지 않게 처리되어 주문 오류 발생하는 경우가 있다. 
 
해결책. 
 
1. 가격의 자리수를 강제로 확정짓는 NormailizeDouble(가격, Digits); 호출하여 반환값을 주문함수의 가격에 입력한다. 

2. 상기1의  NormalizeDouble 함수만으로는 가격 규격화 완전하지 않은 종목도 있다. 아래 링크의 완전한 규격화 함수 이용하는 방법이 가장 범용적인 해결책임. 

 

메타 트레이더 . 주문 가격 규격화 Digits 으로는 불완전. 해결책.

개요 - 메타트레이더 EA 에서 주문 송신시 가격 인자에 값을 기록시 해당심볼의 가격 규격에 맞게 정리해서 주문 송신 해야한다. - 가격 규격이라 함은 심볼의 specification 에서 지정되어있는 Digits

igotit.tistory.com

 

 

 

 

 

 

 

댓글



 

비트코인




암호화폐       외환/나스닥/골드         암호화폐/외환/나스닥/골드
     
현물 |선물 인버스 |선물 USDT       전략매니저(카피트레이딩)         프랍 트레이더 온라인 지원가능. MT4,MT5