口座通貨換算&ロット計算

MT5 クロス通貨ペアにおける口座通貨建て損益・証拠金・ロット計算の正確な実装

決済通貨と口座通貨が異なるペアで為替換算を省略すると、%リスク計算やドローダウンが大きく歪みます。MT5 と一致する換算手順を整理します。

読了目安 5 分 · 更新日: 2026-11-13

エンジニアリング要点

  • 決済通貨建ての損益は、各時点の為替レートで口座通貨(JPY・USD・EUR)へ正確に換算する必要があります。
  • 取引ペアに口座通貨が含まれる場合(例:JPY 口座での USDJPY)、自身のティック列から正確な換算レートを導出できます。
  • クロス通貨(例:USD 口座での GBPJPY)では、換算用ペア(USDJPY)をインポートすることで MT5 と完全一致します。

1. クロス通貨検証で起きやすい換算ミス

EURUSD を JPY 口座で運用する場合や GBPJPY を USD 口座で検証する場合、決済通貨の損益をそのまま口座残高へ加算するとリスク率が大きく狂います。

ストップ幅に対する % リスクでロットを算出するには、その時点の口座通貨建て 1 ピップ価値が不可欠です。

2. Azimuth Studio における換算優先順位

エンジンはまず対象ティック列からの直接導出を行い、純粋なクロスペアではインポート済みの換算ペア時系列を参照します。

また RoboFolio では計算整合性を守るため、口座通貨が異なる戦略の混在を自動的にブロックします。

3. ブローカーのロット刻み(0.01 ロット)と必要最小資金

MetaTrader 5 の発注数量は最小ロット(通常 0.01)およびロットステップ単位へ丸められます。

ポートフォリオ配分時は、最小ウェイトの戦略でも 0.01 ロットを下回らない推奨最小資金を確認してください。

数式・検証プロトコル
口座通貨ピップ価値(t) = (pip_size * contract_size) * 決済通貨_口座通貨レート(t)
理論ロット(t) = (口座有効証拠金(t) * risk_pct) / (SL_pips * 口座通貨ピップ価値(t))
MT5発注ロット = max(lot_min, floor(理論ロット / lot_step) * lot_step)

よくある技術的な質問

USD 口座で GBPJPY を正確にバックテストするには何が必要ですか?

JPY から USD への時系列換算を行うため、同じブローカーの USDJPY ヒストリカルデータを併せてインポートしてください。

JPY 口座用の戦略と USD 口座用の戦略を RoboFolio で合成できますか?

いいえ。合成エクイティ曲線と .set ウェイトの正確性を保つため、同一口座通貨の戦略のみを組み合わせます。

関連する技術ガイド

ご自身の MT5 ティックデータで検証する

ログイン後、CSV / Parquet ヒストリカルデータのインポート、または内部合成データ DEMOFX でお試しいただけます。