ロット計算・意思決定ガイド · 11

銘柄名や数量表示を移植せず、契約とティックから損失を作り直す

同じエス・アンド・ピー500指数を参照し、同じ「1契約単位」と表示されても、MESは1指数ポイント当たり5米ドル、ESは50米ドルです。20ポイント停止なら1枚の仮想損失は100米ドルと1,000米ドルになり、500米ドル予算で許容できる枚数は5枚と0枚へ分かれます。

先に押さえる三点

  • 銘柄名ではなく契約乗数、ティック幅、ティック価値を取得する。
  • ティック価値 ÷ ティック幅で1価格単位当たり価値を復元し、公開仕様と照合する。
  • 別業者・別取引場所へ数量を移す前に、損失通貨と発効日を含めて再計算する。

長期参照の見取り図

条件が変わるたびに使える三段階

相場予想ではなく、入力・計算・適用外判定の順を固定すると、同じ記事を繰り返し検算に使えます。

  1. 入力と単位をそろえる式と定義へ1価格単位当たり価値・1枚の停止損失・契約枚数
  2. 仮想例で計算を戻す数値表と手順へMESとESを20指数ポイント停止で比較
  3. 適用外と次の確認を決める判断ルールと反例へ商品名ではなく公式契約仕様を取得する。

数量ラベルは経済的な大きさではない

ロットや契約単位は容器の名前です。中に含まれる原資産数量、指数乗数、価格最小刻みが違えば、同じ1という表示でも損益感応度は一致しません。

業者の銘柄接尾辞や似た商品名も同一性を保証しません。銘柄仕様の値と時刻を計算記録へ保存します。

  • 契約サイズまたは契約乗数
  • ティック幅と利益・損失側のティック価値
  • 損益通貨、証拠金通貨、口座通貨
  • 最小数量、数量刻み、最大数量

ティックから1ポイントの価値を再構成する

ティック価値だけを停止ポイント数へ直接掛けると、ティックとポイントが同じ大きさでない商品で誤ります。0.25指数ポイントが1ティックなら、1指数ポイントには4ティックあります。

MESは1.25 ÷ 0.25 = 5米ドル/ポイント、ESは12.50 ÷ 0.25 = 50米ドル/ポイントです。20ポイント停止を掛けると、1枚の損失はそれぞれ100米ドルと1,000米ドルになります。

公開仕様とプラットフォーム値を二方向で照合する

取引所商品では取引所の契約仕様を基準にし、プラットフォームが返すティック幅/価値と一致するか確認します。店頭取引・差金決済取引では取引相手の仕様と接続仕様値を同じ方法で照合します。

一時的な欠測や0のティック価値を推測で埋めず、発注を止めて計算モード、通貨、価格時刻を再取得します。

  • 公式ページの発効日または契約月
  • 接続仕様応答の銘柄とタイムスタンプ
  • 利益側と損失側で異なる価値の有無

最小ロット問題とは順序が違う

記事10は正しい1ロット損失が得られた後で、最小数量と数量刻みが予算内の数量を許すか判定します。本稿はその前段で、1ロットまたは1契約単位が何を意味するかを確定します。記事12の口座通貨換算は、ここで得た損益通貨額を口座通貨へ移す次の段階です。

  • 本稿: 契約・ティックから損益通貨額
  • 記事12: 損益通貨から口座通貨
  • 記事10: 最後に最小数量と数量刻み

仕様変更を数量変更として処理する

契約乗数、ティック、通貨、計算モードのいずれかが変われば、以前のロットを継続しません。旧値、新値、検出時刻、影響した注文を保存し、停止損失と許容数量を再計算します。

計算の骨格

1価格単位当たり価値

先に式の役割を把握し、その後で数値例を追うと判断の流れを確認しやすくなります。

01

1価格単位当たり価値

1価格単位当たり価値 = 1ティック価値 ÷ 1ティックの価格幅
1ティック価値: 1契約単位当たり1ティックの損益通貨価値
1ティックの価格幅: 1ティックに対応する価格変化

式を言葉にすると: 異なるティック表記を共通の1 価格単位当たり価値へ変換する。

この結論を適用しない条件: 1ティック価値と1ティックの価格幅が0より大きい場合だけ計算します。非線形商品、段階ティック、オプションでは適用範囲を商品仕様で確認します。

02

1枚の停止損失

1枚当たり損失 = 損切り距離 × 1価格単位当たり価値
損切り距離: エントリーから停止までの価格距離
1価格単位当たり価値: 1契約単位・1価格単位当たり価値

式を言葉にすると: 停止幅を1枚の損益通貨額へ変える。

この結論を適用しない条件: 損切り距離が0以上、1価格単位当たり価値が0より大きい場合だけ計算します。手数料、滑り、口座通貨換算は別途加えます。

03

契約枚数

契約枚数 = 損失予算 ÷ 1枚当たり損失 を整数へ切り下げ
損失予算: 損益通貨と同じ通貨の損失予算
整数切り下げ: 整数契約単位への切り下げ

式を言葉にすると: 予算内の最大整数枚数を返す。

この結論を適用しない条件: 損失予算が0以上、1枚当たり損失が0より大きい場合だけ計算します。結果0は取引なしであり、1枚へ切り上げません。

検算可能な例

MESとESを20指数ポイント停止で比較

契約乗数とティックはCMEの公開仕様です。20ポイントの停止距離と500米ドルの予算は教育用の仮定で、市場予測ではありません。
商品契約乗数米ドル/指数ポイント/契約単位ティック幅指数ポイントティック価値米ドル/契約単位停止距離指数ポイント1枚の停止損失米ドル500米ドル予算の最大枚数契約単位
マイクロ・イーミニ エス・アンド・ピー500指数 (MES)50.251.25201005
イーミニ エス・アンド・ピー500指数 (ES)500.2512.52010000

計算手順

  1. MESの1ポイント価値は1.25 ÷ 0.25 = 5米ドル/契約単位。

  2. ESの1ポイント価値は12.50 ÷ 0.25 = 50米ドル/契約単位。

  3. 20ポイント停止の1枚損失はMESが20 × 5 = 100米ドル、ESが20 × 50 = 1,000米ドル。

  4. 500米ドル予算では整数切り下げ(500 ÷ 100) = 5 MES、整数切り下げ(500 ÷ 1,000) = 0 ES。

結論: 同じ指数と1契約単位という表示でも、500米ドル予算の結果はMES 5枚、ES 0枚となる。

この結論を適用しない条件: 二つの銘柄で契約乗数、ティック幅/価値、損益通貨、計算モードが同一であることを発注時点に確認できれば、同じ停止距離に対する1枚損失は一致する。

数量の前に商品同一性を証明する

発注画面の「1」は経済的な大きさを表す共通単位ではなく、各銘柄が定義する契約の個数にすぎません。同じ指数を参照する商品でも、取引所先物、小型版、差金決済取引では、一契約が受け持つ指数変化の金額が異なります。したがって数量を別画面へ写す前に、表示名、完全な銘柄コード、取引場所、契約月、口座種別を一つの識別組として確定します。名称の一部が一致することは検索の手掛かりにはなっても、同一仕様の証拠にはなりません。ここを省くと、後段の計算が正確でも別商品の金額を精密に算出するだけになります。さらにウォッチリストの別名や翻訳名は識別子へ使わず、表示層に限定します。再表示時にも完全コードが同じ対象へ解決されたかを照合します。

商品同一性の確認には、値だけでなく、その値がどの対象へ属するかという系譜が必要です。たとえばティック価値が1.25と取得できても、それが現在選択中のMES限月、一契約、損失側、米ドル建ての値だと結び付かなければ利用できません。接続仕様応答の銘柄識別子と発注チケットの銘柄識別子を照合し、仕様取得時刻を保存します。手入力なら公式ページの見出し、契約コード、発効日を記録します。数値の妥当性と参照先の妥当性は別の検査であり、両方が通ったときだけ計算入力へ昇格させます。取得元参照先だけではページ改訂後を再現できないため、確認した欄名と値も保存します。スクリーンショットは補助証拠とし、検索可能な構造化値を主記録にします。

この順序は、数量を先に決めてから似た商品へ合わせようとする操作を防ぎます。移植元で0.50ロットだったという履歴は、移植先の契約乗数を説明しません。必要なのは、移植先の一単位が一価格単位の変化でいくら動くかを、その場の仕様から再構成することです。その結果が移植元と一致すれば同じ数量になる可能性はありますが、一致は計算の結論であって前提ではありません。監査記録では「同名だから採用」ではなく、「識別組と単位が一致したため採用」と読める状態を残します。旧数量は比較用の参考値として隔離し、新しい式の入力欄へ自動投入しません。差が出た場合も、新環境の値を旧値へ近づける調整を禁止します。

商品を確定する段階では、価格チャートの見た目を根拠にしません。二つの系列がほぼ同じ動きをしても、一単位の損益や取引可能時間は異なり得ます。反対にティッカーが違っても、仕様を照合すれば同じ経済単位と判定できる場合があります。そこで同一性判定は名称類似度ではなく、識別組と契約プロパティの一致条件で実装します。判定結果には一致した項目と未確認項目を併記し、単一の緑色表示だけで不確実性を隠しません。比較時に価格系列を使うなら補助的な異常検知へ限定し、契約同一性の決定条件から外します。相関が高いという統計は、法的な契約仕様を代替しないためです。値動きと契約は別物です。

仕様値を独立した事実として収集する

契約サイズ、契約乗数、ティック幅、ティック価値、損益通貨、証拠金通貨は、互いに置き換えられない独立フィールドです。MQL5の銘柄プロパティがこれらを別項目として持つことは、表示名だけで損失額を確定できない理由を示します。取得表では一つの「商品仕様」欄へ文章で詰めず、フィールド名、値、単位、取得元、時刻を分けます。利益側と損失側のティック価値が別に返る環境では、損失見積りに使った側を明示し、便宜的な平均値へ変えません。基準通貨と損益通貨も混同せず、金額が最終的にどの通貨で発生するかを追跡します。未使用フィールドも取得に失敗した事実を消さず、適用範囲の判断材料として残します。

一次資料とプラットフォーム値には役割の違いがあります。取引所の契約仕様は商品の公称構造を示し、プラットフォームのプロパティは当該口座で計算に使われる状態を示します。どちらか一方を無条件に正解とせず、共通の単位へ変換して照合します。一致しない場合は、契約月のずれ、差金決済取引への写像、通貨換算内包、口座固有の計算モード、更新遅延などを候補として切り分けます。理由が確定するまで値を選び取らないことが、都合のよい数値だけを採用する誤りを防ぎます。照合差には絶対値と割合を併記し、丸め誤差と倍率違いを区別します。差の説明を自由記述だけにせず、原因コードを選択して後から集計可能にします。

欠測とゼロは同じ状態ではありません。通信失敗で値が返らない、未購読で権限がない、取引停止中に一時値が返る、真にその費用がゼロである、といった状態は処理を分ける必要があります。特にティック価値が0のまま除算すると、数量が無限大に近づく危険な出力を作ります。入力層では数値型であるだけでなく、正値であること、時刻が新しいこと、識別組に対応することを検査し、失敗時は推測値で継続せず「仕様未確定」という状態を返します。再試行回数には上限を設け、失敗が続いても前回成功値へ黙って後退しません。古い値を参考表示するなら、計算不使用であることを視覚とデータ属性の両方で示します。

収集処理は由来の異なる値を同じ優先順位で上書きしないようにします。公式資料から転記した乗数、端末接続仕様のティック価値、利用者が入力した補正値を別の名前空間に置きます。補正を許す場合は理由、操作者、期限を必須にし、一次値を消去しません。三者のどれが実計算に選ばれたかを選択項目で固定すれば、後から画面表示だけを見て推測せずに済みます。選択規則の変更も版番号を付け、同じ入力から異なる結果が出た理由を追えるようにします。期限切れ補正は自動で一次値へ戻さず、再承認待ちにします。黙った切替でライブ計画の入力が変わることを避けます。差替履歴も残します。

ティックの比率から価格感応度を復元する

ティック価値は一ティック動いたときの金額であり、停止距離が表すポイント数へそのまま掛けられるとは限りません。まず1ティック価値を1ティックの価格幅で割り、契約一単位・価格一単位当たりの価値1価格単位当たり価値へ戻します。0.25指数ポイントが一ティックなら、一指数ポイントには四ティック含まれます。この単位変換を式とともに保存すれば、ポイントをティックと取り違えて四分の一の損失を出したのか、乗数そのものを誤ったのかを後から識別できます。計算欄には値だけでなく分子と分母の単位も表示します。小数精度は中間値で保持し、画面用丸めを比率計算へ戻しません。四捨五入したティック表示から逆算すると、長い距離で差が蓄積するためです。

MESの公開仕様では一ティックが0.25指数ポイント、契約当たり1.25米ドルなので、比率から5米ドル/指数ポイント/契約単位が得られます。ESでは同じ0.25ポイントに12.50米ドルで、50米ドル/指数ポイント/契約単位です。ここで重要なのは答えの5と50を暗記することではなく、二つの独立な公開表現が相互検算になる点です。将来仕様が変わった場合も、固定値の暗記ではなく、取得したティックの組を同じ比率へ通すことで不一致を検知できます。公開乗数と復元値が一致したという判定も、比較に使った桁数と許容差を記録します。文字列の5.0と数値5を別値とする表面的な検査は避けます。

価格感応度が得られた後で、初めて損切り距離を掛けて1枚当たりの価格差損失を作ります。損切り距離はエントリーと停止の差を同じ価格単位に正規化し、負の距離を方向情報の代用にしません。売買方向は別フィールドで扱い、損失距離は非負量にします。損切り距離が0でも手数料や滑りがゼロになるわけではないため、この積を総損失と呼ばず「価格差部分」と記録します。口座通貨換算、費用、執行余裕はそれぞれ後の層で加え、内包関係を明示します。停止価格がティック格子に乗らない場合は、実際に送信可能な方向へ保守的に正規化してから距離を更新します。元の分析価格も残し、格子調整の寄与を分離します。差分も記録します。

比率の次元を自動検査すると、入力欄の取り違えを早期に発見できます。1ティック価値の単位が米ドル/契約単位/ティック、1ティックの価格幅が指数ポイント/ティックなら、割り算後にティックが消えて米ドル/契約単位/指数ポイントが残ります。ここへ停止の指数ポイントを掛ければ米ドル/契約単位です。単位が消えない、または通貨が複数残る式は数量を出す前に拒否します。次元表示は利用者向け説明だけでなく、コード変更時の回帰テストとしても機能します。単位文字列は自由入力にせず、変換可能な列挙型で保持します。ポイントとピップのような類似語も銘柄固有の換算規則がなければ同一視しません。

限月と発効時刻を版管理する

先物の銘柄は限月を持ち、連続足のシンボルと実際に発注する限月コードが同じ契約を指すとは限りません。チャート分析が連続系列でも、注文仕様は選択した限月から取得します。ロール時には旧限月と新限月の乗数が同じでも、ティック、取引時間、価格水準、流動性、必要証拠金が変わり得ます。計算記録へ契約月と仕様時刻を入れずに「ES」とだけ残すと、後日の再現で別限月の状態を参照する可能性があります。数量決定時の版を固定することが、時間をまたぐ監査の前提です。連続足の調整価格を停止距離に使った場合は、その調整方法も別記します。発注限月の実価格との差があれば、分析距離を実注文単位へ写す工程が必要です。

店頭取引や差金決済取引でも版管理は必要です。業者が契約サイズ、最小数量、計算モード、損益通貨を変更した場合、古いテンプレートは自動的には失効しません。仕様の差分を検出したら、旧値、新値、検出時刻、影響する未送信計画とライブ注文を記録し、旧数量を無効状態へ移します。変更後も同じ数値になったとしても再計算を省略しません。同値という結果と、旧入力を流用したという処理は監査上異なり、後者は変更された別フィールドを見落とす余地を残します。通知本文は人が読む証跡として保持し、実際の発効状態は接続仕様再取得で確認します。告知日と適用日が異なる可能性を一つの日時へ潰しません。適用版を分けます。

時刻の鮮度は固定分数だけで決めるより、イベントと結び付ける方が堅牢です。取引開始、日次メンテナンス、契約ロール、業者通知、銘柄再購読の後には再取得を要求します。取得時刻が注文時刻より後なら事前判断の証拠にはならず、注文後の状態を遡及的に貼り付けないよう区別します。保存層では計算開始、仕様応答、数量確定、発注、約定を別タイムスタンプにし、タイムゾーンを固定します。こうすれば「最新」と表示された値が、実際にどの判断へ使われたかを検証できます。端末時計とサーバー時計の差も記録し、順序が逆転して見える事象を補正します。補正前の原時刻を消さず、監査表示で両方を追えるようにします。

版の有効性は、取得成功だけでなく計算完了まで同じである必要があります。数量画面を開いたまま仕様更新イベントが届いた場合、表示済み結果を失効させ、再計算を要求します。旧版で作った未送信注文チケットも送信直前に仕様版を比較し、差があれば破棄します。ライブ注文は勝手に変更せず、影響推定と状態表示へ回します。この実装なら、長時間開いた画面が古い値を保持する問題を、利用者の手動更新へ依存せず検知できます。更新通知を受け取れない環境では送信前の再取得を最終防線にします。再取得失敗時に旧版送信へフォールバックしないことも障害試験で確認します。失効理由を通知欄へ残します。

商品ファミリー名が作る誤認を解剖する

小型、中型、標準という接頭辞は相対的な大きさを示すことがありますが、比率を保証する普遍的な規格ではありません。MESとESでは指数ポイント当たり価値が十倍違うため、同じ20ポイント停止でも一契約の価格差損失は十倍になります。しかし別の商品群で同じ接頭辞が同じ比率になるとは限りません。名称から倍率を推定せず、各行の乗数とティックを個別に読む必要があります。比較画面では商品ファミリーをグループ表示しても、入力値を親行から子行へ継承させない設計が安全です。商品説明の「小型」という語も数量根拠にはせず、数式に入る公称値だけを抽出します。相対語は比較対象が変われば意味が変わるからです。

似た名称は自動補完でも問題を起こします。銘柄検索が最初の候補を選ぶ、接尾辞を除去してキャッシュキーにする、契約月を正規表現で落とすと、仕様が別銘柄へ結び付くことがあります。キャッシュは完全なプロバイダー識別子、口座環境、契約月を含むキーにし、表示用の短縮名とは分離します。ユーザーが表示名を変更しても経済的な識別子が維持されるかをテストします。取り違えは計算式のテストだけでは検出できないため、データ結合のテストケースとして持つべきです。検索結果の並び順を変えても同じ選択が保たれるかを確認し、表示順位を識別規則にしません。お気に入り削除後の再登録でも新しい識別子を読み直します。

数量単位の語も横断利用できません。先物の一契約単位、外国為替の一ロット、株式の一株、暗号資産の一単位は、それぞれ異なる契約構造を持ちます。単位ラベルをすべてロットへ正規化すると見た目は整いますが、契約乗数と数量刻みの由来が隠れます。内部モデルでは契約固有数量と表示数量を分け、換算規則を保存します。出力が5と表示されたとき、それが5契約なのか0.05ロットの内部整数表現なのかを機械的に判別できる状態が、発注インターフェースとの境界を守ります。送信直前のシリアライズ値をログへ残し、画面値と接続仕様値を対にします。小数点位置や整数スケールの変換も単体テストへ含めます。

名称誤認の検出には、意図的に紛らわしい候補集合を使います。小型商品と標準商品、現限月と次限月、取引所先物と同名差金決済取引を同時に返し、選択後の仕様行が完全識別子へ追随するかを確認します。候補を一つに絞ったテストだけでは、自動補完が誤った優先規則を持っていても通過します。さらに言語設定を変え、翻訳された商品名や全角文字がキャッシュキーへ影響しないことを検査します。経済識別子はローカライズ対象から外すべきです。検索欄へ古いコードを貼り付けた場合は、現在無効であることを示し、近似候補へ無通知で置換しません。利用者が置換を確認した時刻も残します。候補差分も提示します。

損益通貨までで計算層を一度閉じる

契約仕様から得られる価値が米ドル建てなら、まず米ドルで一契約の停止価格差損失を確定します。円口座だからといって、途中のティック価値へその場の米ドル/円を混ぜると、公開乗数との照合が難しくなります。商品固有層は損益通貨で閉じ、次の換算層へ金額、通貨コード、取得時刻を渡します。この境界により、契約乗数の誤りと換算率方向の誤りを別々に診断できます。記事12が扱うのは後者であり、本記事の値を円へ移す操作を同じ式へ押し込む必要はありません。中間出力へ通貨=米ドルを必須で付け、表示記号だけに依存しません。換算層が未接続なら米ドル段階で停止し、口座損失と誤称しないようにします。

プラットフォームが既に口座通貨建てティック価値を返す場合は、追加換算が二重計上になる可能性があります。フィールド名だけで判断せず、仕様書の定義、損益通貨、口座通貨、計算モードを確認します。テストでは米ドル口座と円口座で同じ銘柄の返値を比較し、換算内包の有無を観察できます。ただし観察値だけで常時仕様を断定せず、接続仕様定義と併せて記録します。内包済みか未換算かという状態を明示的な列にし、不明なら数量出力を止める方が、換算内包を確認せず二重換算するより検証可能です。口座通貨が同じ場合に係数1となる経路も省略せず記録します。分岐を完全に飛ばすと、後で通貨が変わったときの欠陥を発見しにくくなります。

通貨境界を守ると予算との比較も明瞭になります。損失予算と1枚当たり損失は同じ通貨でなければ割れません。500米ドル予算を使う例では米ドル損失のまま比較でき、MESは一契約100米ドル、ESは一契約1,000米ドルという構造差が直接見えます。円予算なら、どちらか一方を必ず円へ移してから枚数を切り下げます。通貨コードを省いた500という裸の数値は、型検査で拒否します。金額と通貨を一体のデータ型にすれば、画面上の記号が消えても不正な除算を防げます。予算通貨の変更イベントで計算済み候補を失効させ、数字だけが残らないようにします。換算前後の金額を別識別子で追跡し、上書き保存を避けます。

丸めも通貨層ごとに一度だけ行います。ティック価値や契約乗数を表示桁へ丸めてから損失を出し、さらに口座通貨で丸めると誤差が重なります。内部では一次仕様の精度を保持し、最終数量を取引可能刻みへ切り下げた後に、その数量で口座損失を再計算します。表示通貨の小数桁は報告用に限定します。再計算値が予算をわずかに超える場合、誤差扱いで許容せず、入力精度と丸め方向を調べます。監査用構造化データには丸め前値を文字列で保存し、二進浮動小数点の表示変化を避けます。画面とエクスポートの桁規則も一致させます。旧丸め規則の版も残し、過去帳票を再現します。差分理由も必ず併記します。

線形式を適用できない商品を入口で除外する

1ティック価値を1ティックの価格幅で割る手順は、対象範囲で価格変化と損益が線形であることを前提にします。オプションのように感応度が状態で変わる商品、価格帯でティックが変わる商品、契約条件に段階的な価値がある商品へ機械的に適用すると、局所値を全停止距離へ延長してしまいます。仕様に非線形の計算方法が示される場合は、その商品専用モデルへ分岐します。「値が取得できたから計算可能」ではなく、「式の仮定に商品が適合するか」を独立した適用性判定にします。適用性フラグは商品カテゴリ名だけで固定せず、選択した計算モードと仕様属性から導きます。未知のモードは線形扱いへ落とさず、未対応として隔離します。

段階ティックでは、停止距離が複数の価格帯を横切るかを確認します。一つのティック価値だけで全区間を評価できないなら、区間ごとのティック数と価値を合計します。この処理は単純な20ポイント掛け算とは異なるため、標準式の結果欄へ混ぜません。さらに負価格、価格上限、日次値幅制限など、通常範囲外の境界も商品資料で確認します。異常値をゼロへ丸めて継続すると、計算不能状態が低リスクとして見えるため、範囲外フラグとともに処理停止する設計が必要です。区間境界ちょうどの価格を両区間へ重複計上しないよう、開区間と閉区間の規則を固定します。停止が境界を跨ぐ試験値で合計ティック数を照合します。

利益側と損失側でティック価値が異なる環境では、停止方向に対応する損失側を選びます。両者の差が換算経路に由来するなら、その時刻と通貨も保存します。単純に大きい方を選ぶ方法は保守的に見えても、定義が異なる値を混ぜるため再現できません。選択規則を接続仕様フィールドと売買方向へ結び付け、テスト用にロングとショートの両ケースを作ります。対称な市場データで同値になる場合も、分岐が実行されたことをログで確認できるようにし、偶然の一致を検証済みと誤認しません。売買方向が未設定の段階では中立値を仮定せず、両方向の候補を別表示にします。方向確定後に選ばれなかった値も証跡として保持します。

非線形モデルへ分岐した後は、標準記事の検算値を成功基準に使いません。専用モデルが必要とする価格、ボラティリティ、残存期間などの追加状態に時刻を付け、感応度を再評価します。単純式との差を警告値として示すことはできますが、近いから線形で十分という承認にはしません。適用範囲は一次仕様とモデル文書から明示し、範囲外補外を行った場合は数量を確定しない設計にします。モデル版、入力市場、評価時刻を組にし、後日の再計算で現在の状態を混ぜません。近似方法の誤差幅が得られるなら、単一点ではなく範囲として出力します。範囲外理由も返します。再評価条件と担当者を固定します。承認時刻も添えます。

最小数量判定へ渡す値を限定する

一契約損失が確定した後、予算を割って得るのは理論上の最大契約数です。先物のように数量が整数単位なら小数部分を切り捨て、500米ドルを一契約1,000米ドルで割った0.5は0契約になります。この0は失敗ではなく、指定予算と停止条件では発注可能な最小単位がないという有効な判定です。画面都合で1へ切り上げると、数量丸めがリスク制約を上書きします。差金決済取引の小数ロットでは最小値と刻みを使いますが、その処理は正しい一ロット損失を受け取った後に限定します。切り下げ前の理論値と実行候補を別々に保存し、差を丸め損失として可視化します。0件も統計から除外せず、取引不能条件の頻度を評価できます。

記事10の最小ロット問題と本記事を分ける理由は、エラーの所在が異なるからです。本記事では容器一つの経済的価値を確定し、記事10ではその価値に対して取引可能な離散数量が存在するかを判定します。契約乗数が十倍違うのに最小ロットだけ調整しても、根本の換算誤りは直りません。インターフェース上も、仕様無効、換算保留、最小数量未満という状態コードを分けます。利用者は単に注文できないのではなく、どの段階で数量が停止したかを確認できます。状態コードは相互排他にせず、複数原因がある場合は全て保持します。修正後の再検査でどの障害が解消したかを比較できるためです。

最大数量や注文単位にも注意します。理論値が予算内でも、会場上限、口座上限、一注文上限を超える場合があります。分割送信すれば上限を回避できるという意味ではなく、合計ポジション制約と残注文を含めて評価します。本記事の出力は価格差損失に基づく候補数量であり、必要証拠金や集中制限を通過した最終発注量ではありません。後続検査の状態を一覧表示し、途中値を「推奨数量」と命名しないことで、計算層の責任範囲を限定します。上限で削減された場合は最終値だけを返さず、予算由来値と制約由来値を併記します。どの制約が実際に効いたかが、次回計画の検証材料になります。制約時刻も付けます。

整数契約と小数ロットを同じ丸め関数へ渡す場合、刻み値だけでなく基準点を確認します。0.01刻みでも最小0.10から始まる仕様では、単純な小数点切り捨てが無効数量を作ることがあります。数量 = 最小数量 + 区分番号 × 刻みという格子を検証し、最大値も同時に適用します。浮動小数点誤差で0.30が0.29へ落ちないよう十進数または整数スケールを利用し、送信文字列までテストします。最小未満の理論値は最小へ切り上げず0候補とします。格子上の直前値と直後値を用いた境界試験で、常に予算側へ丸められるかを確かめます。負数量も拒否します。ゼロを明示します。

仕様取得処理を失敗させて検証する

正常値だけのテストでは、最も危険な仕様取り違えを見つけにくいため、入力を意図的に壊します。1ティックの価格幅を0、ティック価値を欠測、通貨を空欄、契約月を一つ前、銘柄識別子を似た別商品にしたケースを与え、数量が出ないことを確認します。0除算が無限大になって後段で最大数量へ丸められないか、非数が0として保存されないかも観察します。エラー表示だけでなく、発注接続仕様へ候補値が渡っていないことまで確認して初めて、停止制御が機能したと評価できます。失敗ケースで前回の正常値が画面に残らないかも調べます。表示が残るなら無効化属性と計算版を確認し、再送操作で使われないことを証明します。

整合性テストでは、ティック価値 ÷ ティック幅と公開契約乗数を比較します。許容差は通貨換算や丸めの内包関係を踏まえて定義し、差があれば自動でどちらかへ寄せません。MESの1.25 ÷ 0.25が5、ESの12.50 ÷ 0.25が50になるケースは、計算経路の基本確認に使えます。さらにティック価値だけを十倍にした変異ケースを入れ、照合エラーになるか試します。結果値が既知であることより、不一致が確実に閉鎖状態を作ることが実装品質を示します。境界値では許容差の直下と直上を与え、比較演算子が仕様どおりかを確認します。相対誤差と絶対誤差の使い分けも小値で検証します。

キャッシュ境界も敵対的に試します。別口座へ切り替えた直後、限月ロール直後、ネットワーク復旧直後に、古い仕様が再利用されないかを確認します。応答の順序を入れ替え、新しい要求より古い応答が後着した場合に上書きされないよう要求識別子を照合します。画面上の選択銘柄と内部仕様が一瞬でもずれる可能性があるため、数量計算時に識別組を再検査します。非同期処理の競合は算術テストでは再現できず、イベント順序を操作する統合テストが必要です。キャッシュ期限だけを短くして解決したとせず、無効化キーが口座と契約月を含むかを検査します。同時に二画面を開いた状態も再現します。

監査テストは期待値を手計算と別実装の二系統で用意します。本番関数と同じ補助関数から期待値を作ると、共通の誤りで同時に通過するからです。公開仕様の小さな固定標本、性質ベースのランダム入力、過去に発見した障害再現を組み合わせます。予算を増やせば切り下げ前数量が減らない、契約価値を増やせば許容枚数が増えない、といった単調性も確認し、個別数値以外の構造を検査します。ランダム標本の乱数種を保存し、失敗例を同じ入力で再現可能にします。テスト件数より、どの仮定と境界を覆ったかを一覧化します。レビュー日と担当も残します。変更理由、実行環境、結果ハッシュを必ず添えます。

一件の誤発注をデータ系譜から再現する

事後監査では、最終数量だけを見ても原因を特定できません。注文識別子から数量決定記録へ遡り、そこで参照した銘柄識別子、契約月、ティックの組、停止距離、損益通貨、予算、丸めを時系列に並べます。次に約定時点の公式仕様と比較し、入力誤り、古いキャッシュ、画面選択の競合、単位変換のどこで差が生じたかを切り分けます。後日の現在仕様で再計算した結果を当時値と混ぜず、当時再現と現行比較を二つの列にすることが重要です。ログに値がなければ現在値で穴埋めせず、再現不能として明示します。不明部分を仮定する場合は範囲を置き、確定事実とは別色で表示します。推定者と根拠日も記録します。

たとえば想定より十倍大きい損失が出ても、直ちに契約乗数の誤りとは断定できません。停止価格を飛び越えた約定、数量の重複送信、通貨換算、費用も同じ倍率に見えることがあります。まず価格差、実約定数量、契約価値を分解し、理論損益と実現損益の差を残差として求めます。契約仕様の寄与が確認できた場合にのみ、この層の障害として分類します。原因を名称の印象で決めず、数量×距離×価値の各因子を置換する反実仮想で影響額を算出します。各因子を一つずつ当時の正しい値へ戻し、差額がどこで消えるかを見ます。複数障害が相殺して見える可能性も残差分析で確認します。符号と処理順も照合します。

修正記録にはコード変更だけでなく、影響範囲と再発防止条件を含めます。どの銘柄、口座、期間、注文が同じ誤った仕様を参照した可能性があるかをキャッシュキーとログから抽出し、未約定計画も確認します。再計算で差がなかった注文も、調査対象に含めた根拠を残します。テストは発見した一例へ固定せず、識別子の衝突や応答逆転を一般化したケースへ変換します。これにより、銘柄名を変えただけで同じ不具合が戻ることを防げます。修正版の公開前には旧データで再生し、当該ケースが閉じる一方、正しかった計算が変わらないかを比較します。差分件数と最大影響額を報告します。未解決件も列挙します。

事故が発生していない期間も標本監査を行います。一定数の注文を銘柄群、口座通貨、限月、取得経路で層化抽出し、保存仕様から一契約損失を独立再計算します。成功率だけでなく、再現に必要なフィールドが欠けた割合を測ります。結果一致でも証跡欠落なら監査通過とせず、記録設計の欠陥として扱います。無事故という運用結果は、仕様結合が正しかった直接証拠ではないためです。取引頻度が低い商品も標本から消えないよう層ごとの最低件数を設定します。発見事項は重要度と影響可能期間を付けて追跡します。是正期限と再検査日も設定し、未完了を可視化します。対象母集団と抽出法を開示し、偏りも評価します。

別業者へ移すときは数量ではなく入力を移す

取引環境を変更するときに再利用できるのは、損失予算、分析上の停止理由、計算方法などの方針であり、旧業者のロット数ではありません。新環境では銘柄検索から始め、完全識別子、契約構造、ティック、損益通貨、数量刻みを新たに取得します。旧値との比較表は差分確認に役立ちますが、新値の代替にはしません。同じ名称が見つからない場合に最も似た候補へ自動写像せず、経済的な対応関係が確認できるまで移行状態を未完了とします。移行チェックリストには「一致」のほか「相違を説明済み」「未対応」を設けます。未対応項目が一つでも数量へ影響するなら完了ボタンを有効にしません。承認者も明示します。

移行テストには既知の小さな仮想距離を使い、一単位の理論損益を新環境のプレビューや仕様計算機と照合します。実注文を必要としない接続仕様があるならそれを用い、利用できない場合も実取引で検証することを前提にしません。比較するのは価格方向、単位、通貨であり、証拠金額だけを損失価値の代理にしません。証拠金はレバレッジや規則で変わり、停止価格差損失とは別概念です。一致しない値があれば、その差を説明できるまで数量の移植を保留します。価格プレビューが換算や手数料を含む場合は、理論値へ同じ成分を足して比較します。異なる範囲の値をそのまま一致判定しません。比較範囲を注記します。

テンプレートを共有する場合は、固定数値ではなく必須フィールドと検証規則を共有します。契約乗数を空欄のままにし、利用環境から取得できたときだけ計算が有効になる形式なら、古い値の持ち込みを減らせます。エクスポートには取得元環境と時刻を埋め込み、インポート先が異なれば警告ではなく再取得を要求します。警告を無視して続行できる設計は、運用が忙しい場面で常態化しやすいため、仕様未検証の数量を発注可能状態へ遷移させない制御が必要です。共有ファイルへ口座固有識別子や認証情報を含めず、検証に必要な非機密の仕様だけを移します。受信側はファイル値を信頼済みにせず、比較対象として読み込みます。

移行完了後もしばらくは差分監視を続けます。同じ分析距離と予算を新旧計算器へ与え、仕様差で説明できる出力変化だけが生じるかを確認します。これは旧数量へ合わせるためではなく、未発見の通貨内包や単位スケールを見つける比較です。差が期待どおりでも、実注文の約定を損失上限の証明には使いません。約定条件は別変数であり、契約仕様の移行検証とは分離します。監視終了条件は期間だけでなく、主要銘柄と境界ケースが所定回数通ったことにします。未解決差分があれば期限到来で自動終了させません。例外一覧を管理し、終了承認者を分けます。継続理由、次回確認日、残る対象範囲を監視台帳へ記録します。

一致した場合と一致しない場合の結論を分ける

二つの商品で契約乗数、ティック幅、損失側ティック価値、損益通貨、計算モードが同一で、停止距離も同じ単位にそろっていれば、一契約の価格差損失は一致します。この反例は「商品が違えば必ず数量も違う」という過度な一般化を防ぎます。ただし一致の根拠は銘柄名ではなく、発注時点に取得した各フィールドです。一つでも未確認なら、同じ結果が出たことは偶然かもしれず、仕様同等性の証明にはなりません。一致判定には数量刻みや最大値を含めるかを目的別に分けます。一契約感応度が同じでも、発注可能数量の集合は違うことがあるためです。目的欄を必須にし、比較版も保存します。

一方、MESとESのように乗数が十倍違えば、同じ指数、同じ20ポイント停止でも一契約損失が100米ドルと1,000米ドルへ分かれます。500米ドルの価格差予算から整数契約を切り下げると5と0になりますが、これは教育用仮定の算術結果であって、商品選択の優劣や取引判断を示しません。手数料、滑り、必要証拠金、取引時間、口座通貨換算を含む最終条件は別途必要です。例の役割を仕様差の可視化に限定し、将来の損益を示す表現へ広げません。公開数値を使った部分と仮定した停止・予算を明確に分け、一次資料が仮想条件を支持すると誤読させないようにします。観測値とも呼びません。

最終的な検証可能性は、入力、適用式、除外条件、出力状態を第三者が追えるかで判断します。1ティック価値と1ティックの価格幅が正値でない、線形性が確認できない、識別組が不一致、仕様が古い、通貨が未確定のいずれかなら数量を返しません。通過した場合も結果を上限候補とし、他のリスク検査が残ることを表示します。本稿の範囲は契約とティックから損益感応度を再構成することであり、特定商品、業者、枚数を推奨せず、停止価格での約定や損失上限を保証しません。検査結果は通過だけでなく、使用した仕様版と計算コード版に結び付けます。版が変われば過去の通過を現在の承認へ流用しません。

判断記録の終点では、なぜその数量になったかと同じ重さで、なぜ数量を出さなかったかを保存します。0契約、仕様不明、非線形未対応、換算待ちを一つの空欄へまとめると、改善すべき問題と正しい見送りを区別できません。状態別の件数を継続観測すれば、データ供給の劣化や特定銘柄の未対応を発見できます。運用指標は注文数ではなく、再現可能な入力で閉じた割合を中心にします。保留を人為的に通過へ変える管理操作にも理由と期限を要求します。ただし未検証仕様から数量を生成する権限は与えず、調査状態だけを変更可能にします。監査ログは消去不可にし、閲覧履歴も権限区分別に分けます。保管期間も明示します。

判断・管理ルール

  1. 商品名ではなく公式契約仕様を取得する。
  2. ティック価値 ÷ ティック幅を契約乗数と照合する。
  3. 停止距離を同じ価格単位へ正規化する。
  4. 仕様値が欠測・0・矛盾なら発注せず再取得する。
  5. 仕様変更後は旧ロットを破棄して再計算する。

誤りやすい点

  • 0.25ポイントを1ポイントとしてティック価値を直接掛ける。
  • 似た銘柄名を同一契約とみなす。
  • 契約サイズだけをコピーし損益通貨を確認しない。
  • 先物1契約単位と差金決済取引 1ロットを同じ単位として扱う。

根拠資料

  1. MQL5 Reference — Symbol Properties

    この資料が支える範囲: 契約サイズ、ティック幅、利益時・損失時のティック価値、基準通貨・損益通貨・証拠金通貨が個別の銘柄プロパティであり、表示名だけでは損失換算できないことを支える。

  2. CME Group — Micro E-mini S&P 500 Contract Specs

    この資料が支える範囲: MESの契約乗数がエス・アンド・ピー500指数の1ポイント当たり5米ドル、最小ティックが0.25ポイントであるという公開商品仕様を支える。

  3. CME Group — E-mini Equity Index Frequently Asked Questions

    この資料が支える範囲: 基礎となるイーミニ エス・アンド・ピー500指数先物の取引単位が指数1ポイント当たり50米ドル、0.25ポイントが12.50米ドルであることをCMEが明示している。

よくある確認

ティック価値と契約乗数は両方必要ですか。

はい。相互に再計算すると、単位の誤りや古い仕様を検出できます。商品計算モードによっては追加フィールドも必要です。

同じ業者なら仕様は固定ですか。

固定とは限りません。商品、口座種別、契約月、仕様変更で異なり得るため、発注時点の値を保存します。

ESが0枚なら1枚へ切り上げますか。

いいえ。この例では1枚損失1,000米ドルが500米ドル予算を超えるため、結果は取引なしです。

円口座ならこの表をそのまま使えますか。

使えません。表は米ドル損失までです。記事12の方法で、方向と時刻を明示した米ドル→円換算が必要です。

現在の入力値で再計算する

ロット計算機へ契約サイズまたはティック幅/価値を入力する前に、公式仕様とプラットフォーム値を照合してください。

重要事項: 本稿は公開契約仕様の読み方を示す教育資料で、MES、ESその他の商品取引を勧めません。仕様、手数料、必要証拠金、取引時間は変更され得るため、発注時点の一次資料を確認してください。