MQL5 ロットサイズ計算の基本|1%リスクで安全に運用する方法

目次

1. MQL5のロットサイズ計算とは

【結論】
ロットサイズは「1回の取引でどれだけのリスクを取るか」を決める最重要パラメータです。
適切に計算しない限り、どんな優れたEAでも長期的に生き残ることは困難です。

1.1 ロットサイズの定義

【結論】
ロットサイズとは「注文時に指定する取引数量」であり、損益の大きさを直接決定します。

【定義】
ロットサイズとは、通貨ペアやCFDにおいて「どれだけの量を売買するか」を表す単位です。MQL5ではvolumeとして指定されます。

具体例:

  • 1.00ロット:標準的な取引量(例:10万通貨)
  • 0.10ロット:その10分の1
  • 0.01ロット:最小単位(ブローカー依存)

重要なポイント:

  • ロットが大きい → 利益も損失も大きい
  • ロットが小さい → リスクが抑えられる

初心者がよく誤解する点:

  • 「ロット=利益を増やすための設定」ではない
  • 正しくは「ロット=損失を制御するための設定」

この視点のズレが、ドローダウン(資産の減少)を拡大させる主因になります。

また、MQL5では以下の制約もあります:

  • 最小ロット:SYMBOL_VOLUME_MIN
  • 最大ロット:SYMBOL_VOLUME_MAX
  • ロット刻み:SYMBOL_VOLUME_STEP

これらを無視すると、invalid volumeエラーが発生します。


1.2 なぜロットサイズが重要か

【結論】
ロットサイズは「勝てるかどうか」ではなく、「破産するかどうか」を決める要素です。

理由はシンプルです。

損失は以下で決まります:

  • ロットサイズ
  • ストップロス(損切り幅)
  • pip価値(価格変動の価値)

つまり、ロットサイズは「最大損失額」に直結します。

例:

  • ロット:1.0
  • ストップロス:50pips

→ 損失は非常に大きくなる

一方:

  • ロット:0.1
  • ストップロス:50pips

→ 損失は1/10になる

この差が、長期運用では致命的な差になります。

さらに重要なのは「再現性」です。

裁量トレードでは:

  • 感情でロットが変わる
  • 状況によって判断がブレる

EA(自動売買)では:

  • 同じ条件 → 同じロット
  • 検証結果をそのまま再現できる

この再現性が、バックテスト・フォワードテストの信頼性を支えます。


実務でよくある失敗

ロットサイズに関する典型的なミス:

  • 固定ロットで運用してしまう
    → 資金増減に対応できない
  • ストップロスを考慮しない
    → リスクが定義されていない
  • スプレッド(spread)を無視
    → 実際の損失が想定より大きくなる
  • スリッページ(slippage)未考慮
    → execution価格ズレでリスク増加
  • 証拠金(margin)だけ見て判断
    → レバレッジとリスクを混同

特に初心者は、

「エントリーできる=安全」

と誤解しがちですが、これは完全に別問題です。


なぜEAでは必須なのか

EAにおいてロットサイズ計算は「任意」ではなく「必須」です。

理由:

  • 自動売買は連続でトレードする
  • 小さなリスクのズレが累積する
  • 長期的に破産確率に影響する

そのため、実務では以下が基本になります:

  • 1トレードあたり1〜2%リスク
  • ドローダウン時はロット縮小
  • 相場条件(spread / volatility)で調整

この設計をしないEAは、短期的に勝てても長期では崩壊します。

2. ロットサイズ計算の基本手順

【結論】
ロットサイズは「許容損失額 ÷(ストップロス幅 × 1pip価値)」で計算できます。
この手順をそのままMQL5に実装すれば、再現性のあるリスク管理が可能になります。


2.1 手動計算の基本ステップ

【結論】
ロットサイズは「リスク → ストップロス → pip価値」の順に決めると迷いません。

実務で使う基本手順:

  • ① 許容リスクを決める(%または金額)
  • ② ストップロス幅(pips)を決める
  • ③ 1pipあたりの価値を確認する
  • ④ ロットサイズを計算する

具体例:

  • 口座残高:100,000円
  • リスク:1%(=1,000円)
  • ストップロス:50pips

→ 「50pips動いたら1,000円損するロット」を計算する

この順番が重要です。

よくある間違い:

  • 先にロットを決める
  • ストップロスを後付けする

→ リスクが不明確になる(危険)


2.2 基本計算式

【結論】
ロットサイズは「損失額から逆算」するのが正しい考え方です。

基本式:

ロット = 許容損失額 ÷(ストップロス幅 × 1pip価値)

または:

ロット = (口座残高 × リスク%) ÷(SL幅 × pip価値)

重要ポイント:

  • 「利益」ではなく「損失」から考える
  • pip価値は通貨ペアごとに異なる
  • JPYペアは計算がズレやすい

補足:

  • EURUSD → pip価値は比較的一定
  • USDJPY → 為替レートで変動

この違いを無視すると誤差が出ます。


2.3 MQL5での実装例

【結論】
MQL5ではAccountInfoDouble()SymbolInfoDouble()を使えば必要な値を取得できます。

基本コード例:

double CalculateLot(double risk_percent, double stoploss_pips)
{
    double balance = AccountInfoDouble(ACCOUNT_BALANCE);
    double risk_amount = balance * (risk_percent / 100.0);

    double tick_value = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE);
    double tick_size  = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE);

    double pip_value = tick_value / tick_size;

    double lot = risk_amount / (stoploss_pips * pip_value);

    return lot;
}

使用ポイント:

  • ACCOUNT_BALANCE:口座残高
  • SYMBOL_TRADE_TICK_VALUE:1ティックの価値
  • SYMBOL_TRADE_TICK_SIZE:価格変動単位

注意点:

  • ブローカーによって値が異なる
  • CFDや指数は計算方法が違う場合あり
  • テスト環境と本番で差が出ることがある

2.4 自動計算関数の実務テンプレート

【結論】
実務では「最小ロット・刻み調整」まで含めて初めて安全なロットになります。

改良版テンプレート:

double NormalizeLot(double lot)
{
    double minLot  = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MIN);
    double maxLot  = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MAX);
    double stepLot = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_STEP);

    lot = MathMax(minLot, lot);
    lot = MathMin(maxLot, lot);

    lot = MathFloor(lot / stepLot) * stepLot;

    return lot;
}

double CalculateLotSafe(double risk_percent, double stoploss_pips)
{
    double rawLot = CalculateLot(risk_percent, stoploss_pips);
    return NormalizeLot(rawLot);
}

これを使うことで:

  • invalid volume回避
  • ブローカー制約対応
  • 実運用可能なロット生成

実務でよくある失敗

  • pip価値の計算ミス
    → 通貨ペア依存を無視
  • ロット正規化していない
    → 注文エラー発生
  • スプレッド未考慮
    → 実質SLが狭くなる
  • スリッページ未考慮
    → executionでリスク増加
  • stoploss_pipsが0
    → 計算不能(致命的)

なぜこの手順なのか

この手順は「破産確率を制御するため」に設計されています。

逆に:

  • ロット固定
  • 感覚的な設定

これらは短期的には成立しても、長期では破綻します。

3. ロットサイズ計算の仕組み

【結論】
ロットサイズの計算は「損失額の分解式」を逆算しているだけです。
この構造を理解すれば、通貨ペアやブローカーが変わっても応用できます。


3.1 損失額から逆算する構造

【結論】
損失は「ロット × 値動き × 価値」で決まるため、ロットはそこから逆算できます。

損失の基本構造:

損失額 = ロット × ストップロス幅(pips)× 1pip価値

これをロットについて解くと:

ロット = 損失額 ÷(ストップロス幅 × pip価値)

つまり、前章の式はこの単純な変形です。

重要なポイント:

  • ロットは「結果」であって「入力ではない」
  • 最初に決めるべきは「損失額」

具体的な流れ:

  • 許容損失(例:1,000円)を決める
  • SL幅(例:50pips)を決める
  • → ロットが自動的に決まる

この順序を守ることで、常にリスクが一定になります。


3.2 通貨ペアごとの違い

【結論】
pip価値は通貨ペアごとに異なるため、同じロットでもリスクは変わります。

代表的な違い:

  • EURUSDなど(ドルストレート)
    → pip価値は比較的安定
  • USDJPYなど(円ペア)
    → 為替レートによりpip価値が変動

例:

  • USDJPY 100円 → pip価値が小さい
  • USDJPY 150円 → pip価値が大きい

つまり:

  • 同じロットでも損失額が変わる

これが「固定ロットが危険」と言われる理由です。

MQL5では以下で取得:

SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE);

注意点:

  • ブローカーにより算出方法が異なる
  • CFD・指数・ゴールドは別ロジックの場合あり

3.3 桁数・価格形式の違い

【結論】
5桁・3桁などの違いは「pipの定義」をズラすため、計算ミスの原因になります。

例:

  • EURUSD
    • 1.10000 → 5桁
    • 1pip = 0.0001
  • USDJPY
    • 150.000 → 3桁
    • 1pip = 0.01

よくあるミス:

  • pipsとpointsを混同
  • 10倍ズレる

MQL5では:

  • Point → 最小単位(point)
  • pipは自分で換算する必要あり

対策:

double pip = (_Digits == 3 || _Digits == 5) ? 10 * _Point : _Point;

この処理を入れないと、ロット計算が破綻します。


3.4 レバレッジとロットの関係

【結論】
レバレッジは「取引可能量」を増やすだけであり、リスク自体はロットとSLで決まります。

誤解されやすい点:

  • レバレッジが高い → リスクが高い
    → 正確には「ロットを増やせるだけ」

実際のリスクは:

  • ロットサイズ
  • ストップロス幅

で決まります。

例:

  • レバレッジ1倍でもロットが大きければ危険
  • レバレッジ100倍でもロットが小さければ安全

つまり:

  • レバレッジは「環境」
  • ロットは「意思決定」

実務でよくある失敗

  • pip価値を固定値で扱う
    → 通貨ペア差異を無視
  • pointとpipを混同
    → 10倍の誤差
  • レバレッジでリスクを判断
    → 本質的に誤り
  • CFDをFXと同じ計算で扱う
    → 損失計算がズレる

なぜこの理解が重要か

この仕組みを理解していない場合:

  • 計算はできるが応用できない
  • 相場条件が変わると破綻する

逆に理解していれば:

  • 任意の通貨ペアで対応可能
  • マルチシンボルEAにも対応可能
  • spreadやslippageも組み込める

4. 他のポジションサイジング手法との比較

【結論】
ロットサイズ計算には複数の手法がありますが、「リスク固定(%ベース)」が最も再現性と生存率のバランスに優れます。
固定ロットやマーチンゲールは短期的には機能しても、長期では破綻リスクが高いです。


4.1 固定ロットとリスク固定の違い

【結論】
固定ロットはシンプルですが、資金変動に対応できません。リスク固定は常に一定リスクを維持できます。

比較表:

手法特徴メリットデメリット
固定ロット常に同じロットで取引実装が簡単資金増減に非対応、DD拡大
リスク固定(%)口座残高に応じてロット変動常に一定リスク計算が必要
固定金額毎回同じ損失額管理しやすい複利効果が弱い

重要ポイント:

  • 固定ロットは「資金が減るほど危険になる」
  • リスク固定は「資金に応じて自然に調整される」

例:

  • 100万円 → 1ロット
  • 50万円 → 同じ1ロット

→ 実質リスクは2倍になる(危険)


4.2 マーチンゲールとの違い

【結論】
マーチンゲールは損失回収型ですが、破産確率が急激に上昇します。

特徴:

  • 負けるごとにロットを増やす
  • 一度勝てば回収できる設計

メリット:

  • 短期的に勝率が高く見える

デメリット:

  • ドローダウンが指数関数的に増加
  • 証拠金不足(margin call)で終了

構造的問題:

ロット:1 → 2 → 4 → 8 → 16 → …

→ 数回連敗で資金が耐えられない

実務判断:

  • テストでは優秀に見える
  • 実運用では極めて危険

4.3 ボラティリティ連動型(ATRベース)

【結論】
ATR(平均的な値動き)を使ったロット調整は、相場適応性が高い手法です。

仕組み:

  • ボラティリティが高い → ロットを下げる
  • ボラティリティが低い → ロットを上げる

例:

  • ATRが大きい → 値動きが荒い → 小ロット
  • ATRが小さい → 安定 → 大ロット

メリット:

  • 相場状況に応じたリスク制御
  • ドローダウン抑制

デメリット:

  • 実装が複雑
  • 過剰最適化(overfitting)のリスク

MQL5では:

  • iATR()で取得可能
  • SL幅と連動させる設計が一般的

4.4 実務での最適な選択

【結論】
基本は「リスク固定(%)」を軸にし、必要に応じてボラティリティ調整を組み合わせます。

推奨構成:

  • ベース:1トレード1%リスク
  • 条件付き:
    • spread拡大 → ロット減少
    • slippage増加 → エントリー回避
    • 高ボラ → ロット減少

これにより:

  • 再現性
  • 安定性
  • 相場適応性

のバランスが取れます。


実務でよくある失敗

  • 固定ロットで放置
    → 資金減少時に破綻
  • マーチンゲールを過信
    → 一撃で資金消失
  • ATRを過剰に最適化
    → バックテスト依存
  • spreadやexecution条件を無視
    → 実運用で乖離

他手法との位置づけまとめ

  • 固定ロット → 初心者向け(学習用)
  • リスク固定 → 実務標準
  • ATR連動 → 上級者向け
  • マーチン → 非推奨

5. よくある失敗と注意点

【結論】
ロットサイズ計算の失敗は「pip価値・ロット制約・実行条件(spread / slippage)」の3点に集中します。
これらを無視すると、理論上のリスクと実際の損失が乖離します。


5.1 pip価値の誤計算

【結論】
pip価値を固定値として扱うと、通貨ペアや価格変動により損失計算がズレます。

典型的なミス:

  • 「1pip=1000円」など固定で扱う
  • USDJPYとEURUSDを同じ計算で処理

実際には:

  • pip価値は通貨ペア依存
  • 為替レートで変動

MQL5での取得例:

double tick_value = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE);
double tick_size  = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE);
double pip_value  = tick_value / tick_size;

注意点:

  • ブローカーごとに仕様差あり
  • CFD(ゴールド・指数)は別ロジックになる場合あり

5.2 最小ロット・ステップ未考慮

【結論】
ロットは自由に指定できるわけではなく、ブローカー制約を必ず満たす必要があります。

重要パラメータ:

  • SYMBOL_VOLUME_MIN(最小ロット)
  • SYMBOL_VOLUME_MAX(最大ロット)
  • SYMBOL_VOLUME_STEP(刻み)

失敗例:

  • 0.013ロット → 注文エラー
  • 許容範囲外ロット → invalid volume

対策コード:

double NormalizeLot(double lot)
{
    double minLot  = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MIN);
    double maxLot  = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MAX);
    double stepLot = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_STEP);

    lot = MathMax(minLot, lot);
    lot = MathMin(maxLot, lot);
    lot = MathFloor(lot / stepLot) * stepLot;

    return lot;
}

5.3 スプレッド未考慮

【結論】
スプレッド(spread)を考慮しないと、実質的なストップロスが狭くなります。

例:

  • SL:50pips
  • スプレッド:2pips

→ 実質SLは48pipsになる

影響:

  • 想定より早く損切り
  • リスクが過小評価される

対策:

  • SLにspread分を加算
  • またはロット計算時に調整

5.4 スリッページ未考慮

【結論】
slippage(約定ズレ)は「隠れリスク」としてロット計算に影響します。

発生条件:

  • 指標発表
  • 流動性低下
  • execution遅延

結果:

  • 想定より不利な価格で約定
  • 実際の損失が増加

対策:

  • 高ボラ時はロット縮小
  • 許容スリッページを設定
  • 特定時間帯はトレード回避

5.5 ストップロス未設定

【結論】
ストップロスなしではロット計算は成立しません。

理由:

  • リスク量が定義できない
  • 計算式が成立しない

失敗例:

  • ナンピンEA
  • 無限保有戦略

これらは:

  • 一時的に勝てる
  • 長期的に破綻する

5.6 pointとpipの混同

【結論】
pointとpipを混同すると、ロット計算が10倍ズレるケースがあります。

例:

  • 5桁ブローカー
    • point = 0.00001
    • pip = 0.0001

誤り:

  • pointをそのままpipsとして使用

対策:

double pip = (_Digits == 3 || _Digits == 5) ? 10 * _Point : _Point;

実務でのチェックリスト

ロット計算前に確認:

  • pip価値は正しいか
  • SLは設定されているか
  • ロット制約を満たしているか
  • spread / slippageを考慮しているか
  • 通貨ペアごとの差異を吸収しているか

このチェックを省略すると、バックテストと実運用が乖離します。


なぜこれらが重要か

これらのミスはすべて:

  • 小さく見える
  • しかし積み重なる

結果:

  • 想定外のドローダウン
  • EAの破綻

特に自動売買では「例外」が累積します。

6. 実務での使いどころ

【結論】
ロットサイズ計算は「単体の関数」ではなく、EA全体のリスク制御ロジックとして組み込むことで真価を発揮します。
実務では「リスク固定+条件フィルター+動的調整」の組み合わせが基本です。


6.1 リスク固定型EAへの組み込み

【結論】
最も再現性が高いのは「1トレードあたりのリスク%を固定する設計」です。

基本方針:

  • 1トレードあたり 1〜2% リスク
  • ロットは毎回自動計算
  • ストップロスとセットで決定

実装イメージ:

double lot = CalculateLotSafe(1.0, stoploss_pips);

ポイント:

  • 残高が増えればロット増加(複利)
  • 残高が減ればロット減少(防御)

メリット:

  • ドローダウン制御が自然に効く
  • バックテストと実運用の乖離が少ない

よくある失敗:

  • 勝っているときにロットを手動で増やす
  • EAに任せず裁量介入する

→ 再現性が崩れる


6.2 ドローダウン連動型ロット調整

【結論】
資産が減少したときにロットを自動で下げることで、破産確率を大幅に下げられます。

考え方:

  • ドローダウン(DD)増加 → ロット縮小
  • 資産回復 → 徐々に戻す

例:

double equity = AccountInfoDouble(ACCOUNT_EQUITY);
double balance = AccountInfoDouble(ACCOUNT_BALANCE);

double dd = (balance - equity) / balance * 100.0;

double risk = 1.0;

if (dd > 10) risk = 0.5;
if (dd > 20) risk = 0.25;

double lot = CalculateLotSafe(risk, stoploss_pips);

メリット:

  • 連敗時の損失拡大を抑制
  • 回復可能な範囲に収める

デメリット:

  • 回復が遅くなる
  • 設計を誤ると過剰防御になる

6.3 マルチシンボル対応

【結論】
通貨ペアごとにロットを最適化しないと、同じリスク設計でも結果がバラつきます。

課題:

  • EURUSDとUSDJPYでpip価値が違う
  • ボラティリティ(ATR)も違う

対策:

  • シンボルごとに個別計算
  • pip価値・tick値を都度取得

実装イメージ:

double lot = CalculateLotSafe(risk_percent, stoploss_pips);

_Symbolに依存して自動調整される設計にする

応用:

  • シンボル別リスク配分
  • ポートフォリオ全体のリスク制御

6.4 フィルターとの連携

【結論】
ロットサイズは「市場条件(execution環境)」と連動させることで実運用耐性が上がります。

代表的なフィルター:

  • spread(スプレッド)
  • slippage(約定ズレ)
  • ボラティリティ(ATR)
  • 時間帯(ロンドン・NYなど)

例:

double spread = SymbolInfoInteger(_Symbol, SYMBOL_SPREAD);

if (spread > max_spread)
{
    return; // トレードしない
}

または:

if (spread > threshold)
{
    lot *= 0.5; // ロット半減
}

効果:

  • 不利なexecutionを回避
  • 想定外の損失を抑制

6.5 実務設計のベストプラクティス

【結論】
ロット計算は「単独ではなく、EA全体のリスク管理層として設計する」のが最適です。

推奨構成:

  • 基本:リスク固定(1〜2%)
  • 補助:
    • DD連動調整
    • spreadフィルター
    • ボラティリティ調整

設計イメージ:

ロット = 基本ロット計算
       × DD補正
       × ボラ補正
       × execution補正

この多層構造により:

  • 再現性
  • 安定性
  • 実運用耐性

が同時に成立します。


実務でよくある失敗

  • ロット計算を単独機能で終わらせる
    → 実運用で崩れる
  • フィルターなしで常時トレード
    → spread拡大時に損失増加
  • DD制御なし
    → 連敗で破綻
  • 最適化しすぎる(overfitting)
    → 本番で再現できない

なぜここまで必要か

EAは:

  • 連続でトレードする
  • 市場条件が常に変わる

そのため:

  • 静的なロットでは不十分
  • 動的なリスク制御が必要

これを実装できるかどうかが、
「バックテストEA」と「実運用EA」の分岐点になります。

7. よくある質問

【結論】
ロットサイズに関する疑問は「リスクの定義」「計算方法」「実運用との差」に集中します。
ここを明確にすれば、初心者でも迷わず実装できます。


7.1 ロットサイズはいくつが安全ですか?

【結論】
一般的には「1トレードあたり1〜2%リスク」が安全圏とされています。

理由:

  • 連敗しても資金が急減しにくい
  • ドローダウン(DD)を管理しやすい

例:

  • 1%リスク → 10連敗でも約90%資金残る
  • 5%リスク → 同条件で約60%まで減少

注意:

  • 絶対安全な値は存在しない
  • 手法の勝率・期待値にも依存する

7.2 レバレッジが高いほどロットは増やせますか?

【結論】
増やすことは可能ですが、リスクも比例して増加します。

重要な整理:

  • レバレッジ → 「取引可能量」
  • ロット → 「実際のリスク」

つまり:

  • レバレッジが高くても、ロットを抑えれば安全
  • レバレッジが低くても、ロットが大きければ危険

7.3 pip価値はどう取得すればよいですか?

【結論】
MQL5ではSymbolInfoDouble()を使って動的に取得するのが正解です。

基本コード:

double tick_value = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE);
double tick_size  = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE);
double pip_value  = tick_value / tick_size;

注意点:

  • 通貨ペアごとに値が変わる
  • CFDや指数では別計算になる場合あり

7.4 固定ロットでも問題ありませんか?

【結論】
短期的には問題ありませんが、長期運用には不向きです。

理由:

  • 資金増減に対応できない
  • リスクが一定にならない

例:

  • 資金半減 → 同じロット → リスク2倍

推奨:

  • 学習段階 → 固定ロット
  • 実運用 → リスク固定

7.5 ストップロスなしでもロット計算できますか?

【結論】
できません。ロット計算はストップロス前提です。

理由:

  • リスク量が定義できない
  • 損失上限が存在しない

実務判断:

  • SLなし戦略 → 高リスク
  • 長期運用には不適

7.6 スプレッドやスリッページは考慮すべきですか?

【結論】
必須です。無視すると実際の損失が想定より大きくなります。

影響:

  • spread → 実質SL縮小
  • slippage → 約定価格ズレ

対策:

  • SLに余裕を持たせる
  • 高スプレッド時はトレード回避
  • execution条件をフィルター化

7.7 自動計算と手動設定はどちらが良いですか?

【結論】
EAでは自動計算が必須です。

理由:

  • 再現性が確保できる
  • 人的ミスを排除できる
  • バックテストと一致する

手動の問題:

  • 感情によるブレ
  • 設定ミス
  • 一貫性がない

7.8 ロットサイズは最適化すべきですか?

【結論】
過度な最適化は避けるべきです。

理由:

  • 過去データに過剰適合(overfitting)
  • 本番で再現できない

推奨:

  • シンプルなルール
  • 再現性重視
  • フォワードテストで検証

8. まとめ

【結論】
ロットサイズ計算は「利益を増やすため」ではなく「損失を制御するため」の仕組みです。
EAにおいては必須機能であり、再現性・安定性・生存率を決定します。


8.1 本記事の要点整理

【結論】
ロットサイズは「リスクから逆算する」という一点に集約されます。

重要ポイント:

  • ロットは結果であり、最初に決めるべきは損失額
  • 計算式は「損失額 ÷(SL幅 × pip価値)」
  • pip価値は通貨ペアごとに異なる
  • レバレッジはリスクを決めない

8.2 実務での最適な設計

【結論】
実運用では「リスク固定+動的調整」の組み合わせが最も安定します。

推奨構成:

  • 基本:1トレード1〜2%リスク
  • 補助:
    • ドローダウン連動
    • spread / slippageフィルター
    • ボラティリティ調整

設計イメージ:

ロット = 基本計算
       × リスク調整
       × 市場条件補正

8.3 よくある失敗の本質

【結論】
ロット計算の失敗は「小さなズレの積み重ね」で発生します。

典型パターン:

  • pip価値の誤認
  • ロット制約未対応
  • execution条件(spread・slippage)無視
  • ストップロス未設定

これらは単発では小さく見えても、EAでは累積して致命傷になります。


8.4 最も重要な考え方

【結論】
ロットサイズは「期待値」ではなく「破産確率」を制御するためのパラメータです。

整理:

  • 手法 → 期待値を決める
  • ロット → 生存率を決める

この役割を混同すると:

  • 短期的に勝てても
  • 長期的に崩壊する

8.5 実装優先順位

【結論】
EA開発では、ロジックより先にロット設計を固めるべきです。

優先順位:

  1. ロットサイズ計算
  2. リスク管理設計
  3. エントリーロジック

理由:

  • ロット設計が破綻していれば、どんな手法も無意味

8.6 次のアクション

【結論】
まずは「リスク1%固定ロット計算」を実装し、フォワードテストで検証するのが最短ルートです。

推奨ステップ:

  • 基本ロット計算関数を実装
  • ストップロスと連動
  • デモ口座で検証
  • 実運用へ移行