Order Type Ledger
- ユーティリティ
- バージョン: 1.0
- アクティベーション: 10
Order Type Ledger は、この口座の取引履歴ではなく注文履歴を読み、出された注文がそれぞれどうなったかを数えるツールです。予測も助言もしません。損益は一切見ません。数えるのは結果だけです:約定(filled)・取消(cancelled)・期限切れ(expired)・拒否(rejected)。
なぜ必要か: ほとんどの取引ツールは、約定した取引だけを振り返ります。触れられずに期限切れになった指値注文、拒否された逆指値注文、約定するまで何時間も待たされた注文——これらは取引履歴の集計には一切現れません。取引にならなかったからです。注文履歴タブには1件ずつ並びますが、誰も合計しません。「先月出した指値注文の37パーセントは一度も約定しなかった」——これはこの口座がすでに持っている事実ですが、数えられたことがないだけです。
セットアップ:
1. どのチャートでもよいのでEAをドラッグして取り付けます。銘柄も時間足も無関係です。稼働しているチャートではなく、この口座の注文履歴全体を読みます。
2. パネルが左上に表示され、この口座自身の注文履歴から埋まっていきます。
3. 注文の件数が変わったときだけ再計算します(60秒ごとに確認)。起動や設定は不要です。
4. それ以外の操作は不要です。調整すべき数値の設定はありません。
入力(4つ・この順):
InpShowPanel(既定 true)— パネルの表示/非表示。
InpPanelCorner(既定 左上)— パネルを置くチャートの隅。
InpPanelFontSize(既定 9)— パネルの文字サイズ。表示のみ。
InpColorText(既定 白)— パネルの文字色。
数値のしきい値は一切ありません。365日の集計期間、60秒ごとの再確認、中央値を出すための最低サンプル数はいずれも固定で変更できません。
パネルに表示される内容: 直近365日のすべての注文を、種類ごとに4つのグループ(Market・Limit・Stop・Stop-Limit)に分け、結果ごとに数えます(Filled・Cancelled・Expired・Rejected)。各グループの横には、約定しなかった割合を示す Unfilled が表示されます(取消・期限切れ・拒否をそのグループの総数で割ったもの。部分約定は約定した側に数えます)。件数が5件未満のグループは、意味を持たない小さすぎるサンプルとして、パーセントの代わりにダッシュを表示します。
その下には、約定までの中央待ち時間(Median wait to fill)が表示されます。成行注文(Market)と待機注文(Limit・Stop・Stop-Limitをまとめたもの)は別々に計算されます。両者はまったく異なる時間スケールで動くためです。成行注文は通常1秒未満で約定しますが、待機注文は何時間、何日も待つことがあります。混ぜてしまうと中央値の意味がなくなります。いずれの数値も、そのカテゴリで約定した注文が5件未満の場合はダッシュを表示します。
レポートファイル: CSVファイルが MQL5\Files\OrderTypeLedger\order_report.csv に書き出され、月・銘柄・注文グループ別に、列は Month, Symbol, OrderGroup, State, Count, MedianWaitSeconds です。毎回すべて書き直すため(追記ではない)、重複が生じることはありません。ファイルの完全なパスはパネルに表示されます。
テストする前に: ストラテジーテスターには、そのテスト実行中の注文履歴しかありません。そこで表示されるのはテスト期間の結果であり、この口座の実際の注文履歴ではありません。エラーなく動作することを確認するには役立ちますが、実際の口座データとして数字を読むためのものではありません。
このツールがしないこと: 発注・決済・変更のいずれも一切行いません。取引側の機能とは接続していません。損益や取引の結果はどこにも使いません。使うのは注文の種類・状態・銘柄・タイミングだけです。なぜ拒否・期限切れになったかは説明しません。ブローカーの理由が常に取得できるとは限らず、端末が実際に記録したものだけを数えます。銘柄同士を比較することも、注文の出し方を変えるよう提案することもありません。1つの端末上の1つの口座だけを読み、遡れるのはこの口座自身の注文履歴が届く範囲までです。
