英語記事の内容確認用の日本語要旨です。著者のグリッドリスクのアイデアを基に、AI支援で執筆・編集しています。以下は架空の価格・通貨単位を使った再現計算で、商品画面、実口座成績、ブローカー実測値ではありません。
4本目まで保有した買いグリッドについて「5本目を追加できるか」と「追加できなかった後、既存4本がどこでモデル上のストップアウトになるか」を一つの例で追います。
初回価格100、初回0.10ロット、ロット倍率1.5、最初の間隔1、間隔倍率1.2、数量刻み0.01。各ロットは初回数量から直接計算して切り捨てる。並びは0.10、0.15、0.22、0.33、次回候補0.50。前回の切り捨て済み数量をさらに1.5倍すると、5本目は0.49となる。この違いをコードと検証で明示した。
4本のエントリー価格は100、99、97.8、96.36。合計0.80ロット、加重平均97.706。1ロット・価格1単位当たりの損益を100通貨単位と仮定すると、Bidが95の含み損益は−216.48となる。決済済み損益でも、期間収益率でもない。
残高1,000、証拠金1ロット当たり1,000、スプレッド・費用・他のポジションをゼロとする。次の追加価格94.632で、既存4本の有効証拠金は754.08、使用証拠金800。候補0.50ロットに必要な500を加えると合計証拠金1,300となるため、定義した追加ルールでは注文を追加できない。却下された候補を累積数量や加重平均に含めない。
この時点の証拠金維持率は約94.26%。モデルのストップアウト条件を50%とすると、まだストップアウトではない。既存4本を固定して計算を続けると、次式から価格90.206で有効証拠金400、使用証拠金800となる。
1000 + 80 × (価格 − 97.706) = 0.50 × 800
追加が止まる94.632と、既存建玉がモデル閾値に達する90.206は別の値になる。相場が96.36から直接89へ飛んだ場合、有効証拠金は303.52。既存建玉の閾値超過を先に評価し、途中の仮想注文を約定済みとして追加しない。
感応度も実行した。同じ4本を固定し、費用40を一度だけ差し引くと境界は90.706。他の使用証拠金200を加えると91.456。他の含み損100を加える場合も91.456。費用の二重計上や、他の損失を有効証拠金へ足してしまう符号ミスを検出できる。
実口座への適用に関わる制約は本文の該当箇所で説明している。
- 買いはAskで入りBidで評価する。今回の数値はスプレッドゼロ。Ask/Bidで既に反映したスプレッドを別途差し引くと二重計上になる。
OrderCalcMarginは既存ポジションと未決注文を考慮しない。単独注文の見積もりを足しても、実口座のポートフォリオ証拠金や注文可否の検証にはならない。- 通貨換算や銘柄によって損益の傾きが変わるため、固定のtick valueや単一のレバレッジ式を無条件に流用しない。
- ストップアウトの金額モードをパーセント式へ入れない。今回のプログラムは明示したパーセントモードのモデルだけを扱う。
- 90.206は連続価格・固定証拠金での解。実銘柄のtick刻み、ギャップ、強制決済の順序・約定価格を再現する値ではない。
公開したJavaScript再現コードをBunで実行し、29個の計算・境界チェックと9個の不正入力ケースが通過しました。実行出力も確認できます。最初の4本の追加可否、5本目の拒否、境界の上下、ギャップと感応度を検証しています。数量の切り捨てはBigIntの整数除算、価格と通貨の計算は浮動小数点を使い、数値チェックの絶対誤差許容値は0.00000001未満です。
bun grid-margin-boundary.mjs --check
bun grid-margin-boundary.mjs
このコードはMT5に接続せず、銘柄仕様や実口座の注文可否を取得しません。MetaEditorでのコンパイル、MT5実行、ブローカー検証を行ったとは主張しません。英語全文には入力表・約定後の推移表・感応度表と公式資料があります。EAごとの履歴と現在の含み損益の確認は、Magic Number別の記事で別に説明しています。
公式の参考資料
- MQL5 Reference: OrderCalcMargin
- MQL5 Reference: OrderCalcProfit
- MQL5 Reference: Account Properties
- MQL5 Reference: Symbol Properties
ガイド確認日: 2026-10-23