Symbol Spec Auditor
- ユーティリティ
-
Quoc Dat Quach
Software engineer with 8 years in fintech and mobile, writing MQL4/MQL5 since 2017. I build Expert Advisors, indicators, trade and risk-management panels and utilities for MT4/MT5, and I trade forex and gold on MT5 myself. - バージョン: 1.0
Symbol Spec Auditorは、シンボルの契約仕様のうちポジションサイズと取引コストを左右する部分を、チャート上の一つのパネルにまとめて表示します:ポイント価値、スプレッドコスト、証拠金、スワップ、執行ルール、取引セッション。仕様の生の値は口座通貨での1.00ロットあたりの金額に換算され、ロットサイズを計算するコードを気づかないうちに狂わせるブローカー設定は警告として一覧表示されます。ボタン一つで、気配値表示のすべてのシンボルについて同じ監査をCSVファイルにエクスポートできます。
これはチェック用のツールです。注文は一切出さず、DLLもWebRequestも使用せず、あなたが指示したCSVエクスポート以外のファイルは書き込みません。
このツールが必要な理由:あるブローカーで動くコードが、誰も確認していなかった仕様の細部のせいで、次のブローカーでは誤動作することがよくあります。契約サイズが100 ozではなく1 ozのゴールド、残高とティック値がセント単位のセント口座、価格に近いストップロスを拒否するストップレベル、ポイントと異なるティックサイズ、一日の終わりに削除される未決注文などです。ターミナルはこれらをすべて表示しますが、複数のタブに分散し、生の単位のままなので、二つのブローカーや二つの口座タイプの違いは見落としやすくなります。その結果、通常の契約サイズを前提としたポジションサイズの計算式は、操作ログに何のエラーも出ないまま10倍や100倍も間違うことになります。
チャートのシンボルについてパネルに表示される内容です。毎秒一回更新され、シンボルや時間足を変更すると再構築されます:
- 識別情報:シンボル、説明、パス、計算モード、基本通貨・利益通貨・証拠金通貨、口座通貨、口座のレバレッジ、証拠金モード。
- 価格と契約:桁数、ポイント、ティックサイズ、利益用と損失用のティック値、契約サイズ、満期のある契約の満期日。
- 1.00ロットあたりの金額:ティック値から求めた一ポイントの価値(契約サイズ×ポイント×換算レートと照合)、価格が1.00動いたときの価値、ポイント単位と金額でのスプレッド、チャートの時間足のATR(14)と、それに対するスプレッドの割合(パーセント)。
- 取引数量:最小、ステップ、最大、上限。
- 1.00ロットの証拠金:買いと売りの証拠金、初期証拠金率、想定元本、口座のレバレッジと並べて表示する実効レバレッジ。
- 1.00ロットのスワップ:スワップモード、買いと売りの値、一晩あたりの金額、トリプルスワップの曜日。
- 執行:取引モード、執行モード、フィリングポリシー、許可されている注文タイプ、有効期限モード、GTCモード、ポイントと価格で示したストップレベルとフリーズレベル。
- セッション:サーバー時間での本日の取引セッション。
算出できない値は、もっともらしい数値ではなくn/aと表示されます。ティック値、ポイント価値の照合、スプレッド、ATR、証拠金の各行では、その理由も示されます。例えば、換算用の通貨ペアがない、証拠金率が0である、などです。
Warningsブロックには、改めて確認すべき設定が重大度の順に、それぞれ取引コードへの影響とともに一覧表示されます:資産クラスとして異例の契約サイズ、0のティック値またはティックサイズ、ティック値から求めたポイント価値と契約サイズから求めたポイント価値の不一致、セント口座の通貨、制限された取引モード、満期のある契約、現在の気配値がない、ポイントと異なるティックサイズ、0より大きいストップレベルまたはフリーズレベル、日次のGTCモード、FXおよびCFDシンボルで0.01を超える最小取引数量または取引数量ステップ、ATR(14)に対して指定した割合を超えるスプレッド、資産クラスとして異例のトリプルスワップ曜日。該当するものがなければ、パネルには落とし穴が検出されなかったと表示されます。警告は必ずしもブローカーの誤りではありません。値を仮定せず、仕様から読み取らなければならない箇所を示すものです。
Export CSVボタンは、MQL5\Files\SymbolSpecAudit_<server>_<date_time>.csvを書き出します。気配値表示のシンボルごとに一行、55列で、Warnings列と、ティック値、ポイント価値の照合、証拠金、ATRが欠けている理由を説明するNotes列を含みます。二つのブローカーや二つの口座タイプで取得した二つのエクスポートを一行ずつ比較してから、エキスパートアドバイザを一方から他方へ移すことができます。
パネルの操作:チャートの任意のコーナーに配置でき、一列または二列(デフォルトは自動)、警告のみを表示するコンパクトモード、シンボルや時間足を変更しても状態が保持される折りたたみボタンを備えています。色はデフォルトでチャートに合わせ、明るい背景では明るいパネル、暗い背景では暗いパネルになります。各色は手動でも設定できます。レイアウトは実際のフォントメトリクスから計測されるため、高DPIの画面や他のフォントでも表示が揃ったまま保たれます。
入力パラメーター:パネルのコーナー、XとYのオフセット、レイアウト、フォント名とサイズ、警告のみモード、五つの色、ATR(14)に対する割合で指定するスプレッド警告のしきい値、開始時にCSVをエクスポートするオプション。すべての入力パラメーターは、ターミナル上でそれぞれのコメントにより説明されています。
注意事項と制限。MetaTrader 5ではインジケーターからOrderCalcMarginやOrderCalcProfitを呼び出せないため、証拠金とポイント価値の照合には、計算モードごとに文書化された計算式を使用しています。テストに使用したブローカーのFXおよびCFDシンボルでは、結果は、同じ価格でエキスパートアドバイザから呼び出したOrderCalcMarginとセント単位の丸めの範囲内で一致しました。債券および担保のシンボル、初期証拠金のない先物、通貨が口座通貨と異なる指数CFDでは、証拠金はn/aと表示されます。通貨換算には、リアルタイムの気配値がある気配値表示のシンボルを、直接またはUSD経由で使用します。該当するシンボルがない場合、影響を受ける値はn/aと表示され、不足している通貨ペアが示されます。セント口座は、USCやEUCといった口座通貨コードで判別します。ATRは、チャートの時間足の直近の確定バーのATR(14)です。パネルはティックごとではなく一秒間隔のタイマーで更新され、一つのチャートにつき一つのインスタンスでの使用を想定しています。
