最終更新: 2026年06月
Photo by Maxim Hopman on Unsplash
FXロット計算(ポジションサイジング)とは、1回のトレードで何通貨(何ロット)を建てるかを、口座残高・リスク率・損切り幅の数式から決定するプロセスです。感覚的なロット決定と異なり、連敗時の破産確率を定量的に管理できます。本記事では計算方法5選と、リスク率2%が推奨される数学的根拠を解説します。
「エントリーポイントさえ正確なら勝てる」——正直、私もかつてそう思っていた。でもトレードを重ねるうちに、その認識が半分しか正しくないことに気づいた。Van Tharp研究所の報告によれば、ポジションサイジングがトレード収益の変動に最も大きく寄与するという。エントリー精度を磨くより先に、「何枚建てるか」の設計が長期的な口座の命運を握っている。
本稿では、基本的なリスク固定法からケリー基準・ATRベースの動的サイジングまで、5つの手法を数式と実装コードで比較する。加えて破産確率(Risk of Ruin)との定量的な連結——「なぜリスク率2%が推奨されるのか」の根拠——もきちんと示す。FXを始めて1〜3年、感覚でロットを決めている人が「数理的な判断基準」へ移行するための一助になれば十分だ。
FXロット計算(ポジションサイジング)とは何か
FXロット計算(ポジションサイジング)とは、口座残高・許容損失率・損切り幅を変数として、1トレードのロット数を数式で決定するリスク管理手法です。
1回のトレードで何通貨(何ロット)を取引するかを決める——文字にすると単純だが、その裏には口座残高・リスク許容量・ボラティリティ・期待値という変数が絡み合っている。
「自信があるときに多く張る」という発想は人間として自然だ。直感的にわかる。ただしその発想には、1回の判断ミスや想定外の相場変動が口座全体を直撃したときに「どこまで耐えられるか」という視点が欠けている。数理的に設計されていないサイジングは、連敗が続いた局面で回復不能なドローダウンを招く。
ポジションサイジングと混同されやすいのが「ロット数の直感的な決定」だ。「今月プラスだから少し大きく張ろう」「資金の10%が余っているから10%分建てよう」——こういった判断はポジションサイジングではなく、リスク管理のない賭けに限りなく近い。
正確には、ポジションサイジングは以下の3要素から成り立つ。
- 許容損失額の定義——口座残高に対する損失上限をパーセンテージで決める
- ストップロスとの連動——損切り幅(pips)に基づいてポジションサイズを逆算する
- 手法の一貫した適用——市場条件・心理状態に関わらず同じロジックで計算する
【内部リンク: FX リスク管理 基礎】 【内部リンク: FX ストップロス 設定方法】
なぜポジションサイジングが最重要か——学術データによる検証
Photo by Carlos Muza on Unsplash
「ポジションサイジングが大事」という話は至るところで聞く。ただ、定量的な根拠が示される場面はほとんどない。その数少ない例がUppsala大学心理学部の研究だ。破産に至ったトレーダーの平均リスク率は22.9%/トレードだったのに対し、生存したトレーダーは6.6%(t=19.3, p<.0001)——Van Tharp研究所が指摘する「ポジションサイジングは収益変動に最も大きく寄与する」という主張を裏付ける具体的な数字だ。
同研究は被験者トレーダーを追跡し、「破産(資金喪失)」に至ったグループと「生存」したグループのリスク率を比較した実験だ(出典: Ginyard, J., 2001, Uppsala大学心理学部修士論文。学生52名による模擬株式取引シミュレーション実験。なお本研究は実験室環境でのシミュレーションであり、実際のFX市場とは取引条件が異なる点に留意されたい)。結果はかなり明確だった。
| グループ | 平均リスク率(/トレード) |
|---|---|
| 破産トレーダー | 22.9% |
| 生存トレーダー | 6.6% |
(出典: Ginyard, 2001, Uppsala大学心理学部修士論文、t=19.3, p<.0001)
統計的有意性(p<.0001)は極めて高く、偶然の差とは考えにくい。被験者中の破産率は19.2%——5人に1人が資金を失った計算だ。
破産グループの平均リスク率22.9%、感覚的には「少し強気に張った程度」かもしれない。連敗シナリオに当てはめると、その破壊力がよくわかる。10連敗した場合、各トレードで22.9%失うとすると口座残高は元の約7.4%まで消える(0.771^10 ≈ 0.074)。同条件でリスク率2%なら、10連敗後でも元の81.7%が残る(0.98^10 ≈ 0.817)。
Van Tharp研究所については、シミュレーションにおいて一貫したポジションサイジングがドローダウンの大幅な低減に寄与し、収益変動に最も大きく寄与する要因だと報告している(Van Tharp研究所)。
エントリーシグナルの精度を磨く努力と、ポジションサイジングの設計を改善する努力。どちらが長期パフォーマンスに効くかは、このデータが示している。
5つの計算手法——数式・具体例・適用条件の比較
Photo by Aaron Lefler on Unsplash
代表的な手法は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が統計的に安定しているシステムトレードの理論的ベンチマーク
手法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円/トレード
期待値が正であれば、ポジションサイジングの設計に進む意味がある。負の場合は手法そのものを見直す段階だ。
【内部リンク: FX 期待値 計算方法】
5手法比較表
| 手法 | 計算の複雑さ | ボラティリティ適応 | 主な用途 |
|---|---|---|---|
| リスク固定法 | 低 | なし | 初心者〜中級者の全般 |
| ケリー基準 | 中 | なし | 理論的上限の参照値 |
| ATRベース | 中 | あり | トレンドフォロー・多通貨 |
| 固定比率法 | 高 | なし | 小口座のスケールアップ |
| 期待値確認 | 低 | — | 全手法の前提チェック |
破産確率からの逆算——「なぜ2%なのか」の定量的根拠
勝率52%・RR1.1の条件下で、リスク率2%の破産確率は約7%ですが、リスク率4%では約30%に跳ね上がります(参考: EarnForex Risk of Ruin Guide — https://www.earnforex.com/guides/risk-of-ruin/)。この非線形的な増加が2%ルールの数学的根拠です。
「リスク率は2%以下に抑えろ」という経験則はよく耳にする。ただ、その根拠をきちんと説明してもらえる場面はほとんどない。破産確率(Risk of Ruin, RoR)の計算から逆算すると、この数値の意味がようやくはっきりする。
破産確率の近似式の一つは以下の通りだ。
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値・1pip価値を引数に渡せば、数行で適正ロット数を返せる。
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 連携 開発環境】
実践ワークフロー——バックテストとの連携
手法を選んだら終わりではない。その有効性をバックテストで確かめるステップが不可欠だ。ただし「バックテストで高パフォーマンスだったから本番でも同じ」という解釈は危ない。過学習(オーバーフィッティング)のリスクは常にある。実運用に適用する前には、期待値確認→手法選定→モンテカルロシミュレーション→アウトオブサンプル検証→フォワードテストという5ステップを踏むことを勧めている。
実装経験から有効だと感じている検証ワークフローを以下に示す。
ステップ1: 期待値の確認
まずシステムの期待値を計算する。サンプル数は最低200トレード以上が目安だ。サンプルが少ないと勝率・RRの推定誤差が大きくなり、ポジションサイジングの計算結果が実態から外れる。
ステップ2: ポジションサイジング手法の選定
期待値が確認できたら、以下の基準で手法を選ぶ。
- 損切り幅が一定 → リスク固定法
- 損切り幅がボラティリティに依存 → ATRベース
- 小口座からのスケールアップ → 固定比率法
ステップ3: モンテカルロシミュレーション
選定した手法と計算されたリスク率をインプットに、モンテカルロシミュレーションを走らせる。トレード結果をランダムな順序でシャッフルして数千回のシミュレーションを行い、最大ドローダウン・破産確率の分布を確認する。
バックテストの連続データとモンテカルロの乱数シャッフルでは結果が変わる。前者は過去の順序に依存するが、後者は「連敗が集中した最悪ケース」も見えてくる。実運用に近いリスク評価にはモンテカルロが欠かせないと感じている。
ステップ4: アウトオブサンプル検証
バックテスト期間(インサンプル)と異なる期間(アウトオブサンプル)でパフォーマンスを確認する。ポジションサイジングのパラメーター(リスク率・デルタ値等)もアウトオブサンプル期間で検証することが重要だ。インサンプルだけで最適化したパラメーターは、未来データに対してまず機能しない。
ステップ5: フォワードテスト
実際の相場でリアルタイム検証を行う。デモ口座を使うのが現実的だ。最低3ヶ月・50トレード以上のデータが揃うまではパラメーターを変更しない方がいい。途中で変更すると何が効いているか判断できなくなる。
【内部リンク: MT5 バックテスト 設定方法】
あわせて2%ルールの基本、リスクリワード比の設定方法についても取り上げているので、気になる方は目を通してみてほしい。
よくある質問(FAQ)
Q: FXのポジションサイジングとは何ですか? A: 1回のトレードで何ロット(何通貨)を取引するかを、口座残高・許容リスク率・損切り幅の数式に基づいて決定するプロセスです。感覚的なロット決定とは異なり、連敗時の破産確率を定量的に管理します。
Q: FXのポジションサイジングの計算方法を教えてください。 A: 基本式は「ポジションサイズ(通貨数)= 許容損失額 ÷ 損切り幅(pips) ÷ 1pip価値」です。許容損失額は「口座残高 × リスク率(例: 2%)」で求めます。例えば口座100万円・リスク率2%・損切り20pipsの場合、20,000 ÷ 20 ÷ 100 = 10ロット(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コードを参考に、スプレッドシートや簡易スクリプトに実装してください。感覚に頼ったサイジングは感情的な判断(「今日は負け続けているから小さく張る」「調子がいいから大きく張る」)に流れやすく、一貫した統計的根拠に基づく判断を妨げます。計算ロジックを外部化することで、トレード時の認知負荷を下げる副次的な効果もあります。
Q: デモ口座と本番口座でポジションサイジングの設計を変えるべきですか? A: 設計ロジック自体は同じにすることを推奨します。ただしデモ口座では損失への心理的リアリティが低いため、「ルール通りに機能するか」の検証には向いていますが「心理的ドローダウン耐性の確認」には不向きです。本番移行時は最初から小さいロットで開始し、設計通りに動作していることを50〜100トレードで確認してから段階的にスケールアップするのが堅実です。
免責事項: FX取引は元本割れリスクがあります。本稿に記載された計算手法・コード・統計データは教育目的であり、特定の投資判断を推奨するものではありません。投資判断は自己責任で行ってください。
本記事は情報提供を目的としており、投資・取引の勧誘を意図するものではありません。FX取引には元本損失リスクがあります。具体的なポジションサイジング戦略を実運用に適用する前に、ご自身のリスク許容度を確認し、専門家への相談を検討してください。
