Order Type Ledger
- 유틸리티
- 버전: 1.0
- 활성화: 10
Order Type Ledger는 이 계좌의 거래 이력이 아니라 주문 이력을 읽어, 제출된 각 주문에 실제로 어떤 일이 일어났는지 집계하는 도구입니다. 예측도, 조언도 하지 않습니다. 매매 결과는 전혀 보지 않으며, 오직 주문의 결과만 셉니다: 체결, 취소, 만료, 거부.
왜 필요한가: 대부분의 트레이딩 도구는 체결된 거래만 되돌아봅니다. 건드려지지 않은 채 만료된 지정가 주문, 거부된 역지정가 주문, 체결되기까지 몇 시간을 기다린 주문 - 이런 것들은 거래 이력 요약에 전혀 나타나지 않습니다. 애초에 거래가 되지 않았기 때문입니다. 주문 이력 탭에는 이들이 하나씩 나열되지만, 아무도 합산하지 않습니다. "지난달에 낸 지정가 주문의 37퍼센트는 한 번도 체결되지 않았다" - 이것은 이 계좌가 이미 가지고 있는 사실이지만, 지금까지 한 번도 집계된 적이 없습니다.
설정 방법:
1. 어떤 차트에든 EA를 드래그해서 붙입니다. 심볼과 시간대는 상관없습니다. 실행 중인 차트가 아니라 계좌의 전체 주문 이력을 읽습니다.
2. 패널이 좌측 상단에 나타나며, 이 계좌 자체의 주문 이력으로 채워집니다.
3. 주문 건수가 바뀔 때만 다시 계산하며, 60초마다 확인합니다. 시작하거나 설정할 것이 없습니다.
4. 그 외에는 아무것도 필요하지 않습니다. 조정해야 할 수치 설정이 없습니다.
입력값(네 개, 이 순서대로):
InpShowPanel(기본값 true) - 패널 표시 여부.
InpPanelCorner(기본값 좌측 상단) - 차트 네 모서리 중 패널이 위치할 곳.
InpPanelFontSize(기본값 9) - 패널 글자 크기. 화면 표시에만 영향.
InpColorText(기본값 흰색) - 패널 글자 색상.
수치 임계값은 어디에도 없습니다. 365일의 집계 기간, 60초마다의 재확인, 중앙값 계산에 필요한 최소 표본 수는 모두 고정되어 있으며 바꿀 수 없습니다.
패널에 표시되는 내용: 최근 365일 동안의 모든 주문은 유형별로 네 개 그룹(Market, Limit, Stop, Stop-Limit) 중 하나로 분류되고, 결과별로 집계됩니다(Filled, Cancelled, Expired, Rejected). 각 그룹 옆의 Unfilled는 체결되지 않은 비율을 보여줍니다(취소·만료·거부를 그 그룹 전체 건수로 나눈 값이며, 부분 체결은 체결된 쪽으로 계산). 5건 미만인 그룹은 의미가 없는 표본으로 간주해 백분율 대신 대시로 표시합니다.
그 아래 Median wait to fill은 체결된 주문이 제출부터 체결까지 일반적으로 얼마나 기다렸는지를 보여주며, 시장가 주문(Market)과 대기 주문(Limit, Stop, Stop-Limit을 합친 것)을 따로 계산합니다. 둘은 완전히 다른 시간 단위로 움직이기 때문입니다. 시장가 주문은 보통 1초 미만에 체결되지만, 대기 주문은 몇 시간에서 며칠까지 기다릴 수 있습니다. 둘을 섞으면 중앙값이 무의미해집니다. 해당 범주에서 체결된 주문이 5건 미만이면 어느 쪽 값이든 대시로 표시됩니다.
보고서 파일: 감지된 결과는 MQL5\Files\OrderTypeLedger\order_report.csv 에 CSV 파일로 기록되며, 월·심볼·주문 그룹별로 나뉘고 열은 Month, Symbol, OrderGroup, State, Count, MedianWaitSeconds 입니다. 매번 전체를 새로 작성하며(추가하지 않음), 따라서 중복이 생기지 않습니다. 파일의 전체 경로는 패널에 표시됩니다.
테스트하기 전에: 전략 테스터는 그 한 번의 테스트 실행에서 나온 주문 이력만 가지고 있으므로, 거기에 표시되는 내용은 테스트 기간을 반영할 뿐 이 계좌의 실제 주문 이력이 아닙니다. 오류 없이 동작하는지 확인하는 데는 유용하지만, 그 수치를 실제 계좌 데이터로 읽어서는 안 됩니다.
하지 않는 일: 주문을 체결하거나 청산하거나 수정하는 일은 전혀 하지 않습니다. 터미널의 거래 기능과는 아무런 연결이 없습니다. 매매 결과는 어디에서도 사용하지 않으며, 오직 주문의 유형·상태·심볼·시각만 사용합니다. 주문이 왜 거부되거나 만료되었는지는 알려주지 않습니다. 브로커의 판단 근거는 항상 얻을 수 있는 것이 아니며, 터미널이 실제로 기록한 것만 집계합니다. 심볼끼리 비교하지도, 주문을 내는 방식을 바꾸라고 제안하지도 않습니다. 하나의 터미널에 있는 하나의 계좌만 읽으며, 거슬러 올라갈 수 있는 범위는 이 계좌 자체의 주문 이력이 남아 있는 만큼까지입니다.
