Execution Quality Logger
- 유틸리티
-
Ganzorig Munkhbayar
Test - 버전: 1.0
- 활성화: 5
브로커가 주문을 어떻게 체결하는지 측정하는 유틸리티입니다. 아무 차트 하나에 붙이면 거래 계좌의 모든 체결을 감시합니다. 모든 EA의 주문, 데스크톱·웹·모바일 터미널의 수동 거래, 손절과 익절 체결까지 포함하여, 체결마다 요청한 것과 받은 것을 기록합니다. 실계좌에서 거래를 열거나 수정하거나 청산하는 일은 절대 없습니다.
체결마다 기록하는 내용
- 요청 가격 - 주문 가격(대기 주문은 그 가격, 손절 / 익절 체결은 포지션에 설정되어 있던 손절 또는 목표 가격).
- 주문 시점의 호가 - 많은 서버("시장가 체결")는 시장가 주문의 요청 가격을 저장하지 않습니다. 이 경우 기준은 서버가 주문을 등록할 때 유효했던 시장 호가(매수는 ask, 매도는 bid)이며 터미널의 틱 기록에서 가져옵니다. 체결마다 어떤 기준을 썼는지("vs requested" 또는 "vs quote") 표시합니다.
- 체결 가격과 기준 대비 슬리피지(포인트와 계좌 통화, 부호 포함: + 유리, - 불리).
- 체결 지연(밀리초): 거래 서버가 주문을 등록한 시점부터 체결까지.
- 체결이 터미널에 통보된 시점의 스프레드(포인트).
- 심볼, 방향, 수량, 진입 또는 청산, 사유(EA, 수동, 모바일, 웹, 손절, 익절, 스톱아웃), 주문 유형, 매직 넘버, 체결 / 주문 / 포지션 티켓, 코멘트.
확인할 수 있는 곳
- 차트 위의 패널(심볼당 한 줄): 체결 수, 요청 가격이 알려진 체결 수, 평균 / 중앙값 / 최악의 슬리피지, 불리한 체결 비율, 계좌 통화 기준 순 슬리피지, 평균 지연, 체결 시 평균 스프레드.
- CSV 파일(체결당 한 줄): MQL5\Files\ExecQualityLogger\fills_<account>.csv (어떤 스프레드시트 프로그램으로도 열 수 있습니다).
- 저널: 체결당 한 줄(선택)과 체결이 있었던 서버 일마다 요약 한 줄.
- 알림(선택): 한 체결의 불리한 슬리피지나 지연이 한도에 도달하면 창 및 / 또는 푸시 알림 - 종류별로 분당 최대 1회. 모든 알림은 저널에도 기록됩니다.
- 시작할 때 최근 History_Days일의 계좌 기록을 패널과 CSV로 읽어 새 차트도 데이터를 가지고 시작합니다.
할 수 없는 것 - 꼭 읽어 주세요
- 요청 가격이 없는 경우. 많은 서버("시장가 체결")는 주문이 요청한 가격을 저장하지 않습니다. 이때는 requested n/a로 표시하고(지어낸 0은 절대 표시하지 않음) 주문 시점의 호가를 기준으로 측정하며 이를 명확히 표시합니다(Quote_When_No_Request로 끌 수 있음). 호가는 그 시점 또는 그 이전에 터미널이 가진 마지막 틱이며, 서버가 보내지 않은 호가는 볼 수 없습니다. 상계 청산(close-by)에는 기준이 없습니다(n/a).
- 지연은 서버 자체의 타임스탬프로 측정합니다. 터미널과 서버 사이의 네트워크 시간(터미널 상태 표시줄의 핑 참조)이나 EA가 결정하는 데 걸린 시간은 포함하지 않습니다. 대기 주문의 지연은 n/a입니다(설정 시각은 주문을 낸 시점).
- 스프레드는 체결이 통보될 때 터미널이 가진 호가이며, 기록에서 읽은 체결(터미널이나 유틸리티가 실행되지 않던 동안의 체결)에는 n/a입니다.
- 대기 주문의 슬리피지는 그 가격을 기준으로 측정합니다. 지정가 주문은 그 가격이나 더 유리하게만, 스톱 주문은 그 가격이나 더 불리하게 체결됩니다.
- CSV 파일은 체결마다 커집니다. 오래된 파일은 직접 옮기거나 삭제하세요.
- 한 터미널에서 계좌당 하나. 두 번째 차트의 것은 대기하다가 첫 번째가 닫히면 이어받습니다.
- 전략 테스터: 테스터에서 혼자서는 측정할 것이 없으므로 테스터에서만 하루에 한 번 손절이 있는 최소 거래량 포지션을 열고 6시간 뒤 청산하며 그 체결을 기록합니다(Tester_Demo). 테스터는 이상적인 가격으로 체결하므로 그 수치는 어떤 브로커에 대해서도 아무것도 말해 주지 않습니다.
- 측정만 합니다. 주문이 체결되는 방식을 바꾸지 않으며 어떤 전략도 수익을 내게 만들 수 없습니다.
입력 변수
- Magic_Filter (-1) - 이 매직 넘버의 체결만 기록. -1 = 모든 체결(모든 EA와 수동).
- Symbol_Filter (비움) - 이 심볼만 기록, 예: EURUSD;XAUUSD . 비움 = 모든 심볼.
- History_Days (7) - 시작 시 이 일수만큼 계좌 기록을 읽음. 0 = 끔. (기록에서 읽은 체결에는 스프레드와 호가 기준이 없습니다.)
- Quote_When_No_Request (true) - 브로커가 요청 가격을 저장하지 않을 때, 주문이 서버에 도착한 시점의 호가를 기준으로 측정. false = n/a.
- Show_Panel (true), Panel_X (10), Panel_Y (30), Panel_Font_Size (8) - 패널.
- Write_CSV (true) - 체결당 CSV 한 줄.
- Print_Each_Fill (true) - 체결당 저널 한 줄.
- Daily_Summary (true) - 체결이 있었던 서버 일마다 저널 한 줄.
- Alert_Adverse_Points (0 = 끔) - 한 체결의 불리한 슬리피지가 이 포인트에 도달하면 알림.
- Alert_Latency_Ms (0 = 끔) - 한 체결의 지연이 이 밀리초에 도달하면 알림.
- Alert_Popup (true), Alert_Push (false) - 알림 표시 방법. 푸시 알림에는 도구 - 옵션 - 알림의 MetaQuotes ID가 필요하며, 터미널을 실행하는 컴퓨터가 온라인이어야 합니다.
- Tester_Demo (true) - 전략 테스터 전용: 위에서 설명한 시연 거래.
DLL 없음, 웹 요청 없음. 모든 텍스트는 영어입니다.
