개요
오류 원인 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 실패
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 : 가격의 실수 자리수 오류.
2. 상기1의 NormalizeDouble 함수만으로는 가격 규격화 완전하지 않은 종목도 있다. 아래 링크의 완전한 규격화 함수 이용하는 방법이 가장 범용적인 해결책임.
메타 트레이더 . 주문 가격 규격화 Digits 으로는 불완전. 해결책.
개요 - 메타트레이더 EA 에서 주문 송신시 가격 인자에 값을 기록시 해당심볼의 가격 규격에 맞게 정리해서 주문 송신 해야한다. - 가격 규격이라 함은 심볼의 specification 에서 지정되어있는 Digits
igotit.tistory.com
연관
상위정리
메타트레이더 4. 체계정리. 활용법/지식.
MetaTrader 4 메타트레이더 4 활용정보 체계정리. - 글로벌 트레이딩 소프트웨어. - 지속 발전 가능한 안정된 시스템. - 직접 코딩 가능한 MQL4 언어. C 언어 유사 - - MQL4 에서도 클래스 사용가능하므로
igotit.tistory.com
첫 등록 : 2018.07.22
최종 수정 : 2023.03.21
단축 주소 : https://igotit.tistory.com/1753
'트레이딩' 카테고리의 다른 글
메타트레이더 4. Trailing Stop 설정 및 작동상황. (0) | 2018.07.30 |
---|---|
메타트레이더. Symbol contract specification. (3) | 2018.07.22 |
메타트레이더 4. MQL4 문자열 출력 함수들. (0) | 2018.07.20 |
메타트레이더 4. MetaEditor. MQL4 EA 생성. (0) | 2018.07.20 |
메타트레이더4. 수동 주문. (0) | 2018.07.20 |
댓글