이번 글에서는 MetaTrader 4에서 자동매매 시스템을 구현하기 위한 onTrade 이벤트 핸들러에 대해 알아보겠습니다. 이 코드는 주문의 티켓을 CArrayInt에 저장하고, onTimer에서 티켓 목록의 변화를 모니터링하여 다양한 이벤트 핸들러를 호출합니다.
//+------------------------------------------------------------------+ //| 손절매가 발생했을 때의 이벤트 핸들러 | //+------------------------------------------------------------------+ void onStopLoss(ulong ticket); //+------------------------------------------------------------------+ //| 이익 실현이 발생했을 때의 이벤트 핸들러 | //+------------------------------------------------------------------+ void onTakeProfit(ulong ticket); //+------------------------------------------------------------------+ //| 새로운 주문이 열릴 때의 이벤트 핸들러 | //+------------------------------------------------------------------+ void onTradeEntry(ulong ticket); //+------------------------------------------------------------------+ //| 주문이 종료(제거)될 때의 이벤트 핸들러 | //+------------------------------------------------------------------+ void onTradeExit(ulong ticket);
참고: 이 코드는 MQL5의 onTradeTransaction 핸들러의 모든 기능을 구현한 것은 아니며, 기본적인 접근 방식입니다.
아래 스크린샷에서 EA의 출력 로그를 확인할 수 있습니다:
