메타 트레이더 시간 0시 주문 위험 상황 예시
바이비트 MT5로 BTCUSDT 같은 연속시장 종목 거래 하는 경우임에도 주문 불가한 시간이 있다.
MT5 에서 구동 중인 EA 에서 주문 송신하였으나, MT5 저널 부분에 주문 오류 표시된 것(아래 이미지)을 보면 로컬 PC 시각 21시 0분 0.117 초(UTC+0 으로 시각 설정해 둔 컴퓨터임) 시점에 Market closed 사유로 주문 거부된 것을 볼 수 있다.
바이비트 MT5 가 서머타임 적용 기간이어서 UTC+3 인 메타시간으로는 0시0분0.117 초 시점에 주문 낸 것이 거부된 것.
한편, BTCUSDT 종목의 스펙에서 거래가능 시간을 보면 00:00~ 24:00 으로 완전 연속 거래 가능 종목이다.
주문 불가 원인 : 메타트레이더 플랫폼 관리 방식 때문
연속 거래 가능한 종목이어도 메타트레이더 서버단에서 0시 시점 필수 셋팅이 이뤄져야 하는 구조로 설계되어 있어서 수초 정도는 주문 불가능하다. 0시 0분 시점 통상 2 ~ 5초 이내 구간은 주문 접수 안된다.
이런 문제는 메타트레이더 서버단의 구조적인 문제 때문에 발생하는 상황이므로 바이비트 외 모든 다른 브로커에서도 메타트레이더로 거래할 때는 연속시장이어도 주문 불가능한 시간이 있음에 주의해야 한다. MT5 제조사 메타쿼트 사의 공식 문서에서도 아래와 같이 고지하고 있다.
"Although sessions may appear continuous, a brief gap around midnight server time may occur due to system resets or internal accounting."
거래 세션이 연속이어도 시스템 재설정 등의 사유로 서버의 자정(0시)에 공백이 생길 수 있다.
해결책
수동매매 하는 경우에는 메타시각 0시 시점에만 2~5초 이내로 주문 불가하므로 주문접수 안된 경우 다시 주문하면 되므로 심각한 문제 없이 활용 가능하다.
그러나, 자동화 된 매매 구현된 EA에서 진입 신호 발생한 시점이 0시 이고 이 시점에 반드시 주문 실행 해야 하는 경우에는 주문 실패에 대응한 재주문 코드 구현해야 한다.
코드구현예
- 아래 코드에서 OrderSend_PosiOpen_UntilSuccess(,,) 호출하면 호출한 시점이 0시 이어서 Market closed 사유로 실패해도 2초단위로 주문 실행하여 최대 60초동안 반복한다. 60초 초과하면 포기.
상위 정리
메타트레이더 5. 체계정리. 활용법/지식
MetaTrader 5 메타트레이더 5 , 메타에디터, MQL5 활용정보 체계정리. 본 글에서 주요 정리대상 정보 1. 메타트레이더 5 사용법.2. MQL5 언어 기반 "직접 코딩"하여 메타프레이더5에서 자동매매 달성
igotit.tistory.com
첫 등록 : 2025.04.08
최종 수정 :
단축 주소 : https://igotit.tistory.com/6023
'트레이딩 > 메타트레이더 코딩' 카테고리의 다른 글
MQL5 . 사용자 정의 지표 만들기 (0) | 2025.03.24 |
---|---|
MT5 . 종목별 주문가능 최소수량 (5) | 2025.03.06 |
OnInit, OnDeinit . EA에서 1회만 실행 위한 코드 구조 (0) | 2025.03.04 |
MQL5 . SQLite 데이터베이스 직접 지원 . 활용 코드예 (1) | 2024.10.26 |
MT5 . 주문 체결 에러 . No Prices . TRADE_RETCODE_PRICE_OFF (=10021) (3) | 2024.10.10 |
댓글