最終更新: 2026年06月
著者: Hedgrow FX編集部(金融工学・システムトレード専門)
FXポジションサイジングとは、1回のトレードで何ロット取引するかを口座残高・リスク率・損切り幅から数理的に決定するプロセスです。代表的な計算方法はリスク固定法・ケリー基準・ATRベース・固定比率法の4手法で、破産確率(Risk of Ruin)との連動で適切なリスク率を逆算します。
「エントリーポイントさえ正確なら勝てる」と考えているうちは、トレードの本質の半分しか見えていない。Van Tharp研究所の報告によれば、トレード収益の変動要因の90%超はポジションサイジングに起因するという。エントリー精度よりも、「何枚建てるか」の意思決定が長期的な口座成長を左右する。
本稿では、基本的なリスク固定法からケリー基準・ATRベースの動的サイジングまで、5つの手法を数式と実装コードで比較する。さらに破産確率(Risk of Ruin)との定量的連結——つまり「なぜリスク率2%が推奨されるのか」の根拠——を示す。FXを始めて1〜3年の読者が「感覚から数理へ」移行するための架け橋になることを意図して書いた。
【内部リンク: FX リスク管理 基礎】
ポジションサイジングとは何か
ポジションサイジングとは、口座残高・許容損失・損切り幅を変数として1トレードあたりの取引量を決定する数理的プロセスです。感覚的なロット決定とは根本的に異なります。
ポジションサイジングとは、1回のトレードで何通貨(何ロット)を取引するかを決定するプロセスを指す。単に「何枚建てるか」という話に聞こえるが、その背後には口座残高・リスク許容量・ボラティリティ・期待値という複数の変数が絡む。
直感的には「自信があるときに多く張る」という発想は自然だ。しかし数理的には、1回の判断ミスや予想外の相場変動が口座全体に与えるダメージを制御する仕組みとして設計されていないと、連敗時に回復不能な損失(ドローダウン)が生じる。
ポジションサイジングと混同しやすいのが「ロット数の直感的な決定」だ。「今月の利益が出ているから少し大きく張る」「資金の10%が余っているから10%分建てる」——これらはポジションサイジングではなく、リスク管理のない賭けに近い。
正確には、ポジションサイジングは以下の3要素から構成される。
- 許容損失額の定義——口座残高に対する損失上限をパーセンテージで決める
- ストップロスとの連動——損切り幅(pips)に基づいてポジションサイズを逆算する
- 手法の一貫した適用——市場条件・心理状態に関わらず同じロジックで計算する
【内部リンク: FX ストップロス 損切り 設定方法】
なぜポジションサイジングが最重要か——学術データによる検証
ポジションサイジングがFX収益の90%超を左右する理由は、リスク率の非線形性にあります。Uppsala大学研究では破産トレーダーの平均リスク率22.9%に対し、生存トレーダーは6.6%と明確な差が確認されています(p<.0001)。
「ポジションサイジングが大事」という言説は多いが、定量的な根拠が示されることはほとんどない。Uppsala大学心理学部の研究が提供するデータは、その根拠として有力なものだ。
同研究では被験者トレーダーを追跡調査し、「破産(資金喪失)」に至ったグループと「生存」したグループのリスク率を比較している。結果は明白だった。
| グループ | 平均リスク率(/トレード) | |---|---| | 破産トレーダー | 22.9% | | 生存トレーダー | 6.6% |
(出典: Uppsala大学心理学部研究、t=19.3, p<.0001)
統計的有意性(p<.0001)は極めて高く、偶然の差とは考えにくい。被験者中の破産率は19.2%に達しており、5人に1人が資金を失った計算になる。
破産グループの平均リスク率22.9%は、感覚的には「少し強気に張った程度」に思えるかもしれない。しかし連敗シナリオで考えると破壊力は凄まじい。仮に10連敗した場合、各トレードで22.9%失うとすると、口座残高は元の約7.3%まで減少する(0.771^10 ≈ 0.073)。同条件でリスク率2%なら、10連敗後でも元の81.7%が残る(0.98^10 ≈ 0.817)。
Van Tharp研究所のシミュレーションでは、一貫したポジションサイジングを適用したトレーダーのドローダウンは未適用グループに比べて40%低減したと報告されている。収益の変動要因の90%超がポジションサイジングに起因するという数値も、同研究所が報告している。
エントリーシグナルの精度を磨く努力と、ポジションサイジングの設計を改善する努力。どちらが長期パフォーマンスに寄与するかは、このデータが示唆している。
【内部リンク: FX ドローダウン 回復 計算】
5つの計算手法——数式・具体例・適用条件の比較
FXポジションサイジングの主要計算手法は5種類です。リスク固定法(初心者向け基本)・ケリー基準(理論的上限)・ATRベース(ボラティリティ連動)・固定比率法(小口座スケールアップ)・期待値確認(全手法の前提チェック)です。
手法1: リスク固定法(基本式)
最も広く使われる手法だ。口座残高の一定比率を「1トレードの最大損失」として定め、損切り幅から逆算してポジションサイズを求める。
ポジションサイズ(通貨数)= 許容損失額 ÷ 損切り幅(pips) ÷ 1pip価値
許容損失額 = 口座残高 × リスク率
具体例: 口座残高100万円、リスク率2%、損切り20pips(USD/JPY、1pip=100円/万通貨)
許容損失額 = 1,000,000 × 0.02 = 20,000円
ポジションサイズ = 20,000 ÷ 20 ÷ 100 = 10ロット(1万通貨×10)
シンプルで実装が容易なため、初めてポジションサイジングを導入する段階に適している。ただし損切り幅が一定でも口座残高が変化すれば自動的にポジションサイズも変わるため、連勝時には自然にサイズが大きくなり、連敗時には小さくなる「アンチマーチンゲール」の性質を持つ。
適用条件: 損切り幅が明確に定義できるシステムトレード・スイングトレード全般
手法2: ケリー基準
情報理論の文脈でJ.L. Kellyが1956年に提唱した公式。期待値最大化を理論的根拠とし、長期複利成長率を最大化するポジションサイズを求める。
f* = p − (1 − p) ÷ RR
f*: 口座残高に対する最適賭け比率p: 勝率(0〜1)RR: リスクリワード比(平均利益 ÷ 平均損失)
具体例: 勝率60%、RR1.5の場合
f* = 0.6 − (1 − 0.6) ÷ 1.5
= 0.6 − 0.267
= 約0.333(33.3%)
理論上、口座残高の33.3%をリスクにさらすことが複利成長を最大化するという計算になる。
しかし実務でこの数値をそのまま使ってはならない。
ケリー基準はいくつかの強い仮定に基づいている。勝率・RRが将来にわたって一定であること、取引コストが無視できること、心理的ドローダウンへの耐性が無限であることなど、実際のFX環境では成立しない前提が多い。
実務では「ハーフケリー」(f*の50%)が推奨される。上記の例であれば16.7%となるが、それでもリスク率としては高水準だ。勝率・RRの推定誤差が10%あれば最適値は大きくずれる。
ケリー基準は「理論的な上限」として参照するにとどめ、実際のリスク率設定は後述の破産確率から逆算する方が合理的だ。
適用条件: 勝率・RRが統計的に安定しているシステムトレードの理論的ベンチマーク
【内部リンク: FX 期待値 計算 システムトレード】
手法3: ATRベースポジションサイジング(タートル方式)
1980年代のタートルトレーダーズが採用した手法。損切り幅を固定pipsではなく、市場のボラティリティ(ATR)に連動させる点が最大の特徴だ。
N = 20日間のATR(指数移動平均)
ユニット数 = (口座資産 × リスク率) ÷ (N × 1ポイントのドル価値)
具体例: 口座100万円、リスク率1%、USD/JPY の20日ATR=50pips
許容損失額 = 1,000,000 × 0.01 = 10,000円
ATRの円換算 = 50pips × 100円 = 5,000円(1万通貨あたり)
ユニット数 = 10,000 ÷ 5,000 = 2ユニット = 20万通貨
高ボラティリティ局面ではポジションが小さくなり、低ボラティリティ局面では大きくなる。これは市場リスクに対して口座の露出を一定に保つという意味で、リスク固定法より精緻だ。
適用条件: トレンドフォロー戦略、複数通貨ペアの同時管理、ボラティリティの変動が大きい環境
【内部リンク: ATR FX 使い方 ボラティリティ】
手法4: 固定比率法(Fixed Ratio — Ryan Jones)
Ryan Jonesが著書『The Trading Game』で提唱した手法。利益が蓄積されるにつれてポジションサイズを段階的に増やす設計になっている。
N = 0.5 × [(1 + 8P/Δ)^0.5 + 1]
N: 取引すべきロット数(コントラクト数)P: 累積利益Δ: デルタ(1ロット増やすために必要な利益)
具体例: デルタ=3,000円、累積利益=9,000円の場合
N = 0.5 × [(1 + 8×9,000/3,000)^0.5 + 1]
= 0.5 × [(1 + 24)^0.5 + 1]
= 0.5 × [5 + 1]
= 3
累積利益9,000円の段階で3ロットが適正サイズとなる。
固定比率法は口座残高の増加に対してポジションサイズの増加が緩やかで、ドローダウン時の損失拡大を抑制しやすい。逆に言えば、利益成長も緩やかになる。
適用条件: 小規模口座からスタートして段階的にスケールアップしたい場合
手法5: 期待値の確認(ポジションサイジング適用前の前提確認)
ポジションサイジングを設計する前に、そのシステムが正の期待値を持つかを確認する必要がある。負の期待値のシステムにどんな精緻なサイジング手法を適用しても、長期的には資金を失う。
期待値 = (勝率 × 平均利益) − (敗率 × 平均損失)
具体例: 勝率52%、平均利益5,500円、平均損失5,000円
期待値 = (0.52 × 5,500) − (0.48 × 5,000)
= 2,860 − 2,400
= 460円/トレード
期待値が正であれば、ポジションサイジングの設計に進む意味がある。負の場合は手法そのものを見直すべきだ。
5手法比較表
| 手法 | 計算の複雑さ | ボラティリティ適応 | 主な用途 | |---|---|---|---| | リスク固定法 | 低 | なし | 初心者〜中級者の全般 | | ケリー基準 | 中 | なし | 理論的上限の参照値 | | ATRベース | 中 | あり | トレンドフォロー・多通貨 | | 固定比率法 | 高 | なし | 小口座のスケールアップ | | 期待値確認 | 低 | — | 全手法の前提チェック |
ポジションサイジングの計算ロジックをEAに組み込んで自動化したい場合、Claudeと会話しながらインジケータが作れるhedgrow-fxはこちら。
破産確率からの逆算——「なぜ2%なのか」の定量的根拠
FXでリスク率2%が推奨される理由は破産確率(Risk of Ruin)の非線形性にあります。勝率52%・RR1.1の条件でリスク率2%の破産確率は約7%ですが、4%に引き上げると約30%まで跳ね上がります(EarnForex算出)。
「リスク率は2%以下に抑えろ」という経験則は広く流通しているが、その根拠が説明されることは少ない。破産確率(Risk of Ruin, RoR)の計算から逆算すると、この数値の意味が明確になる。
破産確率の近似式の一つは以下のように表される(EarnForex Risk of Ruin Guideに基づく)。
RoR ≈ ((1 − Edge) / (1 + Edge))^(Goal / Risk_per_trade)
ただし実務では、勝率・RR・リスク率を変数としたモンテカルロシミュレーションの方が精度が高い。EarnForex Risk of Ruin Guideの試算結果を以下に示す。
条件: 勝率52%、RR1.1(出典: EarnForex Risk of Ruin Guide)
| リスク率 | 破産確率 | |---|---| | 2% | 約7% | | 4% | 約30% |
リスク率を2倍(2%→4%)にしただけで、破産確率は4倍以上に跳ね上がる。これが非線形性の恐ろしさだ。
勝率52%・RR1.1という数値は「辛うじてプラス期待値を持つシステム」の典型的な数値だ。多くのリアルトレードシステムの実績値に近い。このような現実的な条件下でさえ、リスク率4%は破産確率30%を意味する。10人のトレーダーが同じシステムで運用すれば、3人が破産する計算になる。
Uppsala大学研究で確認された「破産トレーダーの平均リスク率22.9%」は、この観点から解釈し直すと説得力が増す。勝率・RRが平均的なシステムでリスク率20%超を使えば、破産確率は理論上ほぼ100%に近づく。
「2%」は保守的な閾値ではなく、「破産確率を一桁台に抑えるための定量的に根拠のある上限」だということが確認できる。
【内部リンク: FX 破産確率 モンテカルロ シミュレーション】
ATRベース実装例——Pythonコード
ATRベースポジションサイジングのPython実装は、口座残高・リスク率・ATR値・pip価値の4変数を入力してロット数を出力する関数として実現できます。
ATRベースのポジションサイジングをPythonで実装した例を示す。
import pandas as pd
def calculate_position_size(account_balance, risk_pct, atr_value, pip_value_per_lot):
"""
ATRベースのポジションサイズ計算
Parameters:
- account_balance: 口座残高(円)
- risk_pct: リスク率(例: 0.01 = 1%)
- atr_value: ATR値(pips)
- pip_value_per_lot: 1ロット1pipの価値(円)
Returns:
- lot_size: 取引ロット数
"""
risk_amount = account_balance * risk_pct
stop_loss_value = atr_value * pip_value_per_lot
lot_size = risk_amount / stop_loss_value
return round(lot_size, 2)
# 使用例: 口座100万円、リスク1%、USD/JPY ATR=50pips、1ロット1pip=100円
lot = calculate_position_size(1_000_000, 0.01, 50, 100)
print(f"推奨ロット数: {lot}ロット")
# 出力: 推奨ロット数: 2.0ロット
注意: このコードは教育目的で作成されたものであり、実際の取引における動作を保証するものではありません。実取引への適用前に、ブローカーの取引仕様・証拠金要件・スリッページを考慮した追加検証が必要です。
このコードの動作を確認したところ、ロジックは単純だが注意点が一つある。pip_value_per_lot はブローカー・通貨ペア・その時点の為替レートによって変動するため、ハードコードするのではなく実行時に動的に取得する設計が本来は望ましい。教育目的のため簡略化している点を断っておく。
ATR値の取得は通常MT4/MT5のインジケーター出力かOANDA・AlpacaなどのブローカーAPIを経由する。本番環境ではこの部分をパイプラインに組み込む必要がある。
【内部リンク: Python MT5 EA 連携 開発】
実践ワークフロー——バックテストとの連携
ポジションサイジングの検証ワークフローは「期待値確認 → 手法選定 → モンテカルロシミュレーション → アウトオブサンプル検証 → フォワードテスト」の5ステップです。バックテストのみでは過学習リスクがあるためモンテカルロが必須です。
ポジションサイジング手法を選定したら、その有効性をバックテストで検証するステップが不可欠だ。ただし「バックテストで高パフォーマンスだったから本番でも同じ」という解釈は危険で、過学習(オーバーフィッティング)のリスクを常に意識する必要がある。
筆者が実装で有効だと確認している検証ワークフローを以下に示す。
ステップ1: 期待値の確認
まずシステムの期待値を計算する。サンプル数は最低200トレード以上を推奨する。サンプルが少ないと勝率・RRの推定誤差が大きくなり、ポジションサイジングの計算結果が実態からずれる。
ステップ2: ポジションサイジング手法の選定
期待値が確認できたら、以下の基準で手法を選ぶ。
- 損切り幅が一定 → リスク固定法
- 損切り幅がボラティリティに依存 → ATRベース
- 小口座からのスケールアップ → 固定比率法
ステップ3: モンテカルロシミュレーション
選定した手法と計算されたリスク率をインプットに、モンテカルロシミュレーションを実行する。トレード結果をランダムな順序でシャッフルして数千回のシミュレーションを行い、最大ドローダウン・破産確率の分布を確認する。
バックテストの連続データとモンテカルロの乱数シャッフルでは結果が異なる。前者は過去の順序に依存するが、後者は「連敗が集中した最悪ケース」も検出できる。実運用に近いリスク評価にはモンテカルロが必須だ。
ステップ4: アウトオブサンプル検証
バックテスト期間(インサンプル)と異なる期間(アウトオブサンプル)でパフォーマンスを確認する。ポジションサイジングのパラメーター(リスク率・デルタ値等)もアウトオブサンプル期間で検証することを忘れてはいけない。インサンプルだけで最適化されたパラメーターは「未来データへの適用」において機能しないことが多い。
ステップ4: フォワードテスト
実際の相場でリアルタイム検証を行う。デモ口座を推奨する。最低3ヶ月・50トレード以上のデータが揃うまではパラメーターを変更しない。変更すると何が効いているか判断できなくなる。
【内部リンク: MT5 バックテスト やり方 完全解説】
よくある質問(FAQ)
Q: FXのポジションサイジングとは何ですか? A: 1回のトレードで何ロット(何通貨)取引するかを、口座残高・リスク率・損切り幅から数理的に決定するプロセスです。感覚的なロット決定とは異なり、連敗時の口座ダメージを制御するために設計します。
Q: ポジションサイジングの計算方法を教えてください。 A: 最も基本的なリスク固定法の計算式は「ポジションサイズ(通貨数)= (口座残高 × リスク率)÷ 損切り幅(pips)÷ 1pip価値」です。例えば口座100万円・リスク率2%・損切り20pips(USD/JPY)の場合、20,000円 ÷ 20pips ÷ 100円 = 10ロットになります。
Q: ポジションサイジングとロット数の決め方は何が違うのですか? A: ロット数の決め方が「感覚・資金の余裕・自信度」に基づく主観的判断なのに対し、ポジションサイジングは口座残高・リスク率・損切り幅・市場ボラティリティを入力変数とした数理的プロセスです。結果として同じロット数になる場合もありますが、根拠の有無が本質的な違いです。
Q: ケリー基準で計算したら40%以上になりました。そのまま使っていいですか? A: 実務では使うべきではありません。ケリー基準はあくまで理論的な最適値であり、勝率・RRの推定誤差・心理的ドローダウン耐性・取引コストを考慮していません。実務ではハーフケリー(計算値の50%)を上限とし、さらにその値が破産確率の観点から許容できるかをRoRシミュレーションで確認してください。
Q: ATRベースでポジションを計算すると、高ボラティリティ時に極端に小さくなります。これは正常ですか? A: 正常な動作です。ATRベースは「市場のリスク量に対して口座の露出を一定に保つ」設計なので、ボラティリティが高い局面では意図的にポジションサイズが小さくなります。これはリスク管理として合理的な挙動ですが、「小さすぎて取引できない」と感じるなら、リスク率を見直すか、そもそもその局面でのトレードを控える判断も一つの選択肢です。
Q: 口座残高が少ない(10万円未満)場合でも2%ルールは有効ですか? A: 有効ですが、計算結果のロット数が取引所の最小単位(例: 1,000通貨)を下回る場合は適用が難しくなります。例えば残高10万円・リスク率2%・損切り20pipsの場合、許容損失額は2,000円で、USD/JPYなら1,000通貨(0.1ロット相当)が適正サイズになります。最小単位を下回る場合は、リスク率を引き上げるよりも口座を育てるか取引頻度を下げる方が長期的には合理的です。
Q: ポジションサイジングを毎回手動で計算するのは面倒です。ツール化するべきですか? A: ツール化は強く推奨します。本稿のPythonコードを参考に、スプレッドシートや簡易スクリプトに実装してください。感覚に頼ったサイジングは感情的な判断(「今日は負け続けているから小さく張る」「調子がいいから大きく張る」)に流れやすく、一貫した統計的根拠に基づく判断を妨げます。計算ロジックを外部化することで、トレード時の認知負荷を下げる副次的な効果もあります。ポジションサイジングのロジック自体をEAに組み込んで自動化したい場合、Claudeと会話しながらインジケータが作れるhedgrow-fxはこちら。
Q: デモ口座と本番口座でポジションサイジングの設計を変えるべきですか? A: 設計ロジック自体は同じにすることを推奨します。ただしデモ口座では損失への心理的リアリティが低いため、「ルール通りに機能するか」の検証には向いていますが「心理的ドローダウン耐性の確認」には不向きです。本番移行時は最初から小さいロットで開始し、設計通りに動作していることを50〜100トレードで確認してから段階的にスケールアップするのが堅実です。
免責事項: FX取引は元本割れリスクがあります。本稿に記載された計算手法・コード・統計データは教育目的であり、特定の投資判断を推奨するものではありません。投資判断は自己責任で行ってください。
ポジションサイジングの計算をEAに実装して検証まで一貫して進めたい方には、Claudeと会話しながらインジケータが作れるhedgrow-fxはこちら。
