1. MQL5におけるポジションサイジングとは
【結論】ポジションサイジングは「1回のトレードでどれだけのロットを持つか」を決めるアルゴリズムであり、利益よりもドローダウン管理に直結する最重要要素です。
1.1 ポジションサイジングの定義
【定義】ポジションサイジングとは、口座資金・損切り幅(SL)・市場条件をもとに、適切な取引量(ロット)を決定するルールのことです。
単なる数値計算ではなく、「どのような基準でロットを決めるか」という戦略設計そのものを指します。
たとえば以下はすべてポジションサイジングの一種です。
- 毎回0.1ロット固定で取引する
- 口座残高の1%だけリスクを取る
- ボラティリティ(価格変動)に応じてロットを変える
MQL5では最終的に volume(ロット)として注文に渡しますが、その裏側にあるロジックがポジションサイジングです。
初心者が混同しやすいポイントとして、「ロット計算=ポジションサイジング」と思いがちですが、これは誤りです。
ロット計算はあくまで結果であり、ポジションサイジングはその決め方(アルゴリズム)です。
1.2 ロットサイズ計算との違い
【結論】ロットサイズ計算は「数値を出す処理」、ポジションサイジングは「その数値の決め方」です。
具体的には以下の関係になります。
- ポジションサイジング:戦略(例:1%リスクで取引する)
- ロット計算:実装(例:0.13ロットと計算される)
この違いを理解していないと、EA(自動売買)の設計が崩れます。
例として、同じエントリー条件でも以下で結果は大きく変わります。
- 固定ロット → 安定だが成長しにくい
- リスク連動 → 資金増加とともに利益も増える
つまり、エントリー精度が同じでも、ポジションサイジングで最終損益は大きく変わります。
1.3 なぜ重要か(実務視点)
【結論】ポジションサイジングは「利益最大化」ではなく「破産回避」のために最適化するべきです。
多くの初心者はエントリー手法(インジケーターやシグナル)に注目しますが、実務では以下の影響がより大きくなります。
- ドローダウン(資金減少)の大きさ
- 連敗時の耐久性
- execution(約定品質)によるブレ耐性
例えば、スプレッド(spread)やスリッページ(slippage)が発生すると、想定より損失が増えるケースがあります。
このときロットが大きすぎると、想定以上の資金減少につながります。
特に重要なポイントは以下です。
- ロットが大きいほど、誤差(execution差)の影響も拡大する
- 連敗時に資金曲線が急激に悪化する
- 過大ロットは短期間で口座破綻を引き起こす
逆に、適切なポジションサイジングを行うと以下の効果があります。
- ドローダウンを制御できる
- フォワードテストと実運用の乖離が小さくなる
- 長期的に再現性が高くなる
注意点として、「利益を最大化するロット」は必ずしも最適ではありません。
理論上の最適値(例:ケリー基準)は、実務ではリスクが高すぎることが多いです。
そのため現実的には、
- 低めのリスク(1〜2%)
- execution誤差を考慮
- ブローカー制約(最小ロット・最大ロット・注文条件)を考慮
といった設計が必要になります。
2. MQL5で実装する主要ポジションサイジング手法
【結論】実務で使われるポジションサイジングは「固定ロット」「固定リスク」「ボラティリティ連動(ATR)」の3つが中核です。まずはこの3つを理解すれば、EA設計の大半はカバーできます。
2.1 固定ロット(毎回同じ取引量)
【結論】最もシンプルで再現性が高いが、資金効率は低い手法です。
毎回同じロット(例:0.1ロット)でエントリーする方法です。
バックテストやロジック検証でよく使われます。
実装例
double lot = 0.1;
MqlTradeRequest request;
request.volume = lot;
メリット
- 実装が非常に簡単
- テスト結果が安定(再現性が高い)
デメリット
- 資金が増えてもロットが増えない
- 複利効果が働かない
よくある失敗
- 小さすぎるロットで実運用 → 利益が伸びない
- 大きすぎるロットで固定 → ドローダウン過大
2.2 固定リスク(口座残高の○%)
【結論】最も実務的で推奨される手法。資金管理とロットが自動連動します。
口座残高に対して一定割合(例:1%)だけリスクを取る方法です。
損切り幅(SL)を前提にロットを逆算します。
基本ロジック
- リスク金額 = 残高 × リスク%
- ロット = リスク金額 ÷(SL幅 × 1ロットあたりの損失)
実装例(簡略)
double balance = AccountInfoDouble(ACCOUNT_BALANCE);
double riskPercent = 0.01; // 1%
double riskAmount = balance * riskPercent;
double stopLossPips = 50; // 仮
double pipValue = 10.0; // 通貨ペア依存
double lot = riskAmount / (stopLossPips * pipValue);
メリット
- ドローダウンが制御しやすい
- 資金増加に応じてロットも増える(複利)
デメリット
- SL設定が不適切だと破綻する
- pip価値(通貨ペア・口座通貨)に依存
よくある失敗
- pipValueを固定値で扱う → 計算ミス
- スプレッド(spread)やスリッページ(slippage)未考慮
- 証拠金チェックなしでOrderSend → エラー
2.3 ATRベース(ボラティリティ連動)
【結論】市場の変動に応じてロットを調整できるため、実運用で非常に強い手法です。
ボラティリティ指標である Average True Range を使い、相場の荒さに応じてロットを変えます。
考え方
- ボラが大きい → ロットを小さく
- ボラが小さい → ロットを大きく
実装例
int atrHandle = iATR(_Symbol, PERIOD_CURRENT, 14);
double atr[];
CopyBuffer(atrHandle, 0, 0, 1, atr);
double volatility = atr[0];
double baseLot = 0.1;
double lot = baseLot / volatility;
メリット
- 相場環境に適応できる
- 急変動時のリスク低減
デメリット
- 計算がやや複雑
- ATRの期間設定に依存
よくある失敗
- ATR値をそのまま使用 → ロットが極端になる
- 最小ロット制限を無視 → Invalid volumeエラー
2.4 マーチンゲール型
【結論】短期回収力は高いが、長期的には破綻リスクが極めて高い手法です。
負けるたびにロットを倍増させる方式です。
例
- 0.1 → 0.2 → 0.4 → 0.8 …
メリット
- 1回勝てば損失回収しやすい
デメリット
- ドローダウンが指数関数的に増加
- 証拠金不足で破綻
注意点
- ブローカーの最大ロット制限
- execution遅延による誤作動
2.5 逆マーチン(アンチマーチン)
【結論】勝ちトレードを伸ばす設計で、トレンドフォローEAと相性が良い手法です。
勝ったときだけロットを増やす方式です。
例
- 勝ち → 0.1 → 0.2 → 0.4
- 負け → 初期ロットに戻す
メリット
- トレンドに乗ると利益拡大
- 負け時のリスクは限定
デメリット
- レンジ相場で不利
- 連勝前提の設計になる
2.6 ケリー基準(上級者向け)
【結論】理論上は最適だが、実務ではリスク過大になりやすい手法です。
勝率とリスクリワードから最適ロットを算出します。
概念式
- f = 勝率 − (負率 / リスクリワード)
メリット
- 理論上の最大成長率
デメリット
- 勝率推定が難しい
- 過剰最適化に陥りやすい
実務での扱い
- 半分(1/2ケリー)などに調整するのが一般的
3. ポジションサイジングの仕組み(なぜ機能するのか)
【結論】ポジションサイジングは「期待値を拡大する装置」であり、同時に「破産確率を制御する装置」です。ロットの設計次第で、同じ手法でも結果は大きく変わります。
3.1 期待値とリスクの関係
【結論】ロットは期待値を増幅するが、同時に損失も増幅するため、バランス設計が必要です。
トレードの基本構造は以下で表されます。
- 期待値 = 勝率 × 平均利益 − 負率 × 平均損失
ここでポジションサイジングが影響するのは「平均利益」と「平均損失」のスケールです。
例えば同じロジックでも、
- ロット0.1 → 小さく勝ち、小さく負ける
- ロット1.0 → 大きく勝ち、大きく負ける
つまりロットは「結果を拡大する倍率」です。
重要なポイントは以下です。
- ロットを上げても勝率は変わらない
- ロットを上げるとドローダウンは急増する
- 適正ロットを超えると資金曲線が崩壊する
よくある誤解として「勝てる手法ならロットを上げれば良い」がありますが、これは危険です。
期待値が正でも、ロットが大きすぎると連敗で資金が枯渇します。
3.2 ドローダウンとの関係
【結論】ドローダウンはロットに比例して増加し、過大ロットは回復不能な損失を生みます。
ドローダウン(DD)は資金のピークからの減少幅です。
ポジションサイジングが適切でないと、以下の問題が発生します。
- 連敗時に急激な資金減少
- 回復に必要な利益が非現実的になる
例えば、
- 10%損失 → 約11%で回復
- 50%損失 → 100%で回復
この非線形構造が重要です。
つまり、
- ロットが大きい → DDが深くなる
- DDが深い → 回復が困難
固定リスク(例:1〜2%)が推奨される理由はここにあります。
注意点として、
- スプレッド拡大
- スリッページ
- 約定遅延(execution遅れ)
これらがあると、想定以上にDDが増えることがあります。
3.3 破産確率(リスク・オブ・ルイン)
【結論】ロットが大きいほど破産確率は急増し、特にマーチンゲールは極端に危険です。
破産確率とは「資金がゼロまたは運用不能になる確率」です。
ポジションサイジング別の傾向は以下です。
- 固定ロット → 安定だが成長遅い
- 固定リスク → 破産確率を抑えやすい
- マーチンゲール → ほぼ確実に破綻
重要な考え方は以下です。
- 連敗は必ず発生する
- 連敗時のロットが重要
- 資金が減った後のロット制御が鍵
固定リスク手法は、
- 資金減少 → ロットも減少
となるため、破産確率を抑えられます。
一方マーチンゲールは、
- 負け → ロット増加
となるため、連敗で指数的にリスクが増大します。
3.4 スプレッド・スリッページとの関係
【結論】execution品質(約定条件)が悪いと、理論上のポジションサイジングは成立しません。
実運用では以下の要素が必ず影響します。
- spread(売買価格差)
- slippage(注文価格のズレ)
- execution(約定速度・約定精度)
これらが影響する理由は以下です。
- 想定より不利な価格で約定する
- 実際の損失が増える
- リスク計算がズレる
特にロットが大きい場合、
- スリッページ1pip → 損失が大きくなる
- スプレッド拡大 → エントリー時点で不利
となり、理論上の期待値が崩れます。
実務では以下の対策が必要です。
- スプレッドフィルターを入れる
- 重要指標(ニュース)時は停止
- VPS環境でexecutionを安定化
4. 手法別比較(どれを選ぶべきか)
【結論】実務では「固定リスク」または「ATR連動」を基準に選択すれば大きく外しません。マーチン系は制御前提でのみ採用すべきです。
4.1 ポジションサイジング比較表
【結論】安定性・再現性・execution耐性を重視すると、固定リスクとATR連動が最適解になりやすいです。
| 手法 | 安定性 | 収益性 | ドローダウン耐性 | execution耐性(spread/slippage) | 実装難易度 | 推奨度 |
|---|---|---|---|---|---|---|
| 固定ロット | 高 | 低 | 高 | 高 | 低 | 検証用 |
| 固定リスク | 高 | 中 | 高 | 中 | 中 | ◎ |
| ATR連動 | 高 | 中 | 中〜高 | 中 | 中 | ◎ |
| マーチン | 低 | 高(短期) | 低 | 低 | 低 | △ |
| 逆マーチン | 中 | 中〜高 | 中 | 中 | 中 | ○ |
| ケリー基準 | 低 | 高(理論) | 低 | 低 | 高 | 上級者 |
読み取りポイント
- 固定ロットは「検証用・ベンチマーク」
- 固定リスクは「汎用・実運用の基準」
- ATR連動は「ボラティリティ適応」
- マーチン系は「回収速度と破産リスクのトレードオフ」
4.2 初心者向けの選び方
【結論】最初は「固定リスク(1〜2%)」一択で問題ありません。
選定フロー(迷ったらこの順で判断)
- ステップ1:固定リスク(1%)で運用開始
- ステップ2:ドローダウンが許容範囲か確認
- ステップ3:必要ならATR連動へ拡張
理由は以下です。
- 資金減少時にロットが自動で縮小される
- 連敗時の破産確率が低い
- execution誤差(slippageなど)の影響を抑えやすい
よくある失敗
- 初期からマーチン系を採用
- リスク%を5%以上に設定
- SL未設定で固定リスクを使う(計算が破綻)
4.3 実務(EA開発)での選択基準
【結論】ポジションサイジングは「EAの特性 × 市場環境」で決めます。
代表的な組み合わせ
- トレンドフォローEA
→ 逆マーチン or 固定リスク
理由:勝ちトレードを伸ばせる - レンジEA(逆張り)
→ 固定リスク
理由:連敗時の耐久性が重要 - 高ボラティリティ市場(例:指標時)
→ ATR連動
理由:急変動に自動適応 - スキャルピング
→ 固定ロット or 低リスク固定
理由:spread・slippageの影響が大きい
4.4 他手法との違い・代替手段
【結論】ポジションサイジングは単体ではなく、他のリスク制御と組み合わせて使います。
主な代替・補完手段
- ドローダウン制御(equity stop)
→ 一定DDでEA停止 - 最大ポジション制限
→ 同時保有数を制限 - スプレッドフィルター
→ spreadが広い時はエントリーしない - 約定条件(order条件)制御
→ execution品質が悪い時は取引停止
重要な考え方
- ポジションサイジング単体では不十分
- 「ロット × フィルター × 停止条件」で設計する
5. MQL5での実装手順(How)
【結論】実装は「リスク算出 → ロット計算 → 制約補正 → 証拠金確認 → 注文」の順で行います。順序を崩すとInvalid volumeやNot enough moneyが発生します。
5.1 基本手順(再利用可能)
【結論】固定リスク法をベースに実装すると汎用性が高く、そのままATR連動にも拡張できます。
手順(コピペ可)
- 口座残高を取得
- 許容リスク%を設定
- 損切り幅(SL)を価格差で算出
- 1ロットあたりの損失(tick value)を取得
- ロットを計算
- ロット制約(min/max/step)に合わせて丸め
- 証拠金チェック
- 注文実行
コード例(固定リスク・簡略版)
double CalcLot(double riskPercent, double stopLossPriceDistance)
{
double balance = AccountInfoDouble(ACCOUNT_BALANCE);
double riskAmount = balance * riskPercent;
double tickValue = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE);
double tickSize = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE);
// 1ロットあたりの損失
double lossPerLot = (stopLossPriceDistance / tickSize) * tickValue;
if(lossPerLot <= 0.0) return 0.0;
double lot = riskAmount / lossPerLot;
return lot;
}
補足(なぜこの計算か)
- tickValue:1ティックあたりの損益
- tickSize:1ティックの価格幅
→ これで「価格差 → 損益」に変換できる
よくある失敗
- pipベースで固定値を使う → 通貨ペア依存で崩れる
- SL距離を価格差ではなくpipsで扱う → 計算ズレ
5.2 ロット制約対応(最重要)
【結論】SYMBOL_VOLUME_MIN / MAX / STEPに合わせないと、ほぼ確実にInvalid volumeエラーになります。
ブローカーごとにロット制約があります。
- 最小ロット(SYMBOL_VOLUME_MIN)
- 最大ロット(SYMBOL_VOLUME_MAX)
- ロット刻み(SYMBOL_VOLUME_STEP)
補正コード
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, MathMin(maxLot, lot));
// ステップに合わせて丸め
lot = MathFloor(lot / stepLot) * stepLot;
return NormalizeDouble(lot, 2);
}
なぜ必要か
- ブローカーは任意のロットを受け付けない
- 例:0.01刻みの環境で0.013はエラー
よくある失敗
- NormalizeDoubleだけで対応 → step未対応でエラー
- minLot未満 → 注文拒否
5.3 証拠金チェック(OrderSend前に必須)
【結論】OrderCalcMarginを使わないと、Not enough moneyエラーで止まります。
ロットが正しくても、証拠金不足なら注文できません。
チェックコード
bool CheckMargin(double lot, ENUM_ORDER_TYPE type)
{
double price = (type == ORDER_TYPE_BUY)
? SymbolInfoDouble(_Symbol, SYMBOL_ASK)
: SymbolInfoDouble(_Symbol, SYMBOL_BID);
double margin = 0.0;
if(!OrderCalcMargin(type, _Symbol, lot, price, margin))
return false;
double freeMargin = AccountInfoDouble(ACCOUNT_FREEMARGIN);
return (freeMargin > margin);
}
なぜ必要か
- レバレッジ・口座条件に依存
- 同時ポジション数でも変わる
よくある失敗
- ロット計算だけで注文 → エラー多発
- フォワードでは通るが本番で失敗
5.4 OrderSendまでの統合フロー
【結論】ロット計算 → 正規化 → 証拠金確認の順を厳守します。
統合例
double rawLot = CalcLot(0.01, stopLossDistance);
double lot = NormalizeLot(rawLot);
if(lot <= 0.0) return;
if(!CheckMargin(lot, ORDER_TYPE_BUY)) return;
// 注文処理(簡略)
MqlTradeRequest request;
request.volume = lot;
request.symbol = _Symbol;
request.type = ORDER_TYPE_BUY;
5.5 実務での注意点(execution含む)
【結論】理論通りのロットでも、execution環境で結果は変わります。
考慮すべき要素
- spread(スプレッド)
- slippage(スリッページ)
- execution速度(VPS有無)
対策
- スプレッドフィルターを入れる
- 指標時は取引停止
- VPSで遅延を最小化
よくある失敗
- バックテスト前提で設計 → 実運用で崩壊
- スリッページ未考慮 → リスク過大
6. よくある失敗と注意点
【結論】ポジションサイジングの失敗は「ロット制約・証拠金・execution未考慮」の3点に集中します。ここを外すと、理論が正しくても実運用で破綻します。
6.1 Invalid volumeエラー(ロット不正)
【結論】ロット刻み(SYMBOL_VOLUME_STEP)未対応が主因です。
典型原因
- 0.013のような中途半端なロットを送信
- 最小ロット未満(SYMBOL_VOLUME_MIN未満)
- 最大ロット超過(SYMBOL_VOLUME_MAX超過)
対策
- stepに合わせて丸める(MathFloorベース)
- min/maxでクランプする
- NormalizeDoubleだけに依存しない
チェック例
if(lot < SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MIN)) return;
6.2 証拠金不足(Not enough money)
【結論】OrderCalcMargin未使用、または同時ポジション増加の見落としが原因です。
典型原因
- レバレッジを考慮していない
- 既存ポジションの証拠金を無視
- ロットだけ計算して即OrderSend
対策
- OrderCalcMarginで事前検証
- フリーマージン(ACCOUNT_FREEMARGIN)確認
- 最大ポジション数を制限
注意点
- 通貨ペアやブローカー条件で必要証拠金は変わる
6.3 ストップ距離ミス(Invalid stops)
【結論】ブローカーの最小ストップ距離(Stops level)を無視すると発生します。
典型原因
- SL/TPが現在価格に近すぎる
- スプレッドを考慮していない
対策
- SYMBOL_TRADE_STOPS_LEVELを確認
- spread分を加味してSL設定
補足
- execution時に価格がズレる(slippage)とエラーになりやすい
6.4 スプレッド急拡大による誤作動
【結論】ニュース時や流動性低下時に、想定外の損失が発生します。
典型原因
- spreadが通常の数倍に拡大
- エントリー時点で大きな含み損
対策
- スプレッドフィルターを導入
コード例
double spread = SymbolInfoDouble(_Symbol, SYMBOL_ASK) - SymbolInfoDouble(_Symbol, SYMBOL_BID);
if(spread > maxSpread) return;
なぜ重要か
- ロットが大きいほどspread影響も増幅
- スキャルピング系では致命的
6.5 スリッページによるリスク崩壊
【結論】slippageはロットが大きいほど損失を拡大させます。
典型例
- 想定SL:50pips
- 実際:55pips(slippage発生)
→ リスク計算が崩れる
対策
- リスク計算に余裕を持たせる
- 約定条件(deviation)を設定
- execution品質の良い環境(VPS)を使う
6.6 過剰最適化(バックテスト依存)
【結論】最適なロットは固定ではなく、市場環境で変化します。
典型原因
- 過去データに最適化しすぎる
- 特定期間だけ勝つ設定になる
対策
- フォワードテストを必ず実施
- ロットは保守的に設定
- ATRなどで動的調整
6.7 SL未設定・リスク不明状態
【結論】SLなしではポジションサイジングは成立しません。
理由
- リスク量が計算できない
- 無制限損失になる
対策
- 必ずSL前提でロット計算
- 例外なく強制的に設定する
7. 実務での使いどころ(重要)
【結論】ポジションサイジングは「単体で使うもの」ではなく、EA設計・フォワード検証・ポートフォリオ管理と一体で運用することで効果を発揮します。
7.1 EA設計における役割
【結論】ポジションサイジングはエントリーよりも結果への影響が大きいケースがあります。
多くの初心者は「エントリー精度」を重視しますが、実務では以下の構造になります。
- エントリー → 勝率を決める
- ポジションサイジング → 損益の形を決める
同じエントリーでも、
- 過大ロット → 数回の連敗で破綻
- 適正ロット → 長期で安定
となります。
特にEAでは以下が重要です。
- ロジックの優位性(edge)は限定的
- ポジションサイジングで結果が大きく変わる
- 再現性(再現できる利益)が最優先
実務ポイント
- 固定リスクをベースに設計
- ロットは「攻める」のではなく「守る」ために使う
7.2 フォワードテストでの調整
【結論】ポジションサイジングはバックテストではなく、フォワードで最終調整します。
理由は以下です。
- slippage(約定ズレ)が再現されない
- spread変動が不完全
- execution環境が異なる
そのため、フォワードテストでは以下を確認します。
- ドローダウンの実測値
- 想定リスクとのズレ
- 連敗時の挙動
調整手順
- リスク%を段階的に変更(例:1% → 0.8%)
- ATR係数を微調整
- 最大ロット制限を追加
よくある失敗
- バックテスト結果をそのまま採用
- フォワード期間が短すぎる
7.3 複数EA運用(ポートフォリオ)
【結論】複数EAでは「合計リスク管理」が必須です。
単体EAでは問題なくても、
- EA A:リスク1%
- EA B:リスク1%
- EA C:リスク1%
→ 合計3%リスクになります。
さらに相関(correlation)がある場合、
- 同時に損失発生
- 想定以上のドローダウン
となります。
実務対策
- 総リスク上限を設定(例:2〜3%)
- 同時エントリー制限
- 通貨ペア分散
重要ポイント
- ポジションサイジングは「個別」ではなく「全体」で管理する
7.4 VPS運用・execution影響
【結論】execution環境が悪いと、ポジションサイジングは機能しません。
影響する要素
- 約定速度
- サーバー距離
- ブローカー品質
具体的には、
- slippage増加 → 損失増大
- 約定遅延 → 不利な価格でエントリー
- spread変動 → リスク計算崩壊
対策
- VPSを利用(サーバー近接)
- execution品質の良いブローカー選定
- スプレッド監視
7.5 実務での設計テンプレート
【結論】以下の構成で設計すると、ほぼ全ケースに対応できます。
推奨構成
- ベース:固定リスク(1%)
- 補助:ATR連動で微調整
- 制限:最大ロット制限
- フィルター:spread / 時間 / 指標
- 安全装置:ドローダウン停止
シンプルな設計思想
- ロットは小さく始める
- フォワードで調整する
- 生き残ることを優先する
8. FAQ
【結論】ポジションサイジングの理解は「ロットの決め方=リスク管理」という認識に集約されます。実務で迷いやすいポイントを短く整理します。
8.1 ポジションサイジングとロット計算の違いは?
ポジションサイジングは「ロットの決め方(戦略)」、ロット計算は「その結果としての数値」です。戦略が先で、計算は後です。
8.2 初心者におすすめの手法は?
固定リスク(1〜2%)が最適です。資金減少時にロットも自動縮小され、破産確率を抑えられます。
8.3 マーチンゲールは使うべきですか?
原則非推奨です。短期回収は可能ですが、連敗時にロットが指数的に増え、破綻リスクが極めて高くなります。
8.4 ATR連動はなぜ有効ですか?
ボラティリティ(価格変動)に応じてロットを調整できるため、急変動時のリスクを抑えられます。固定ロットより実運用に適しています。
8.5 最適なリスク%はどれくらいですか?
一般的には1〜2%です。3%以上はドローダウンが急増しやすく、実務では慎重に扱う必要があります。
8.6 バックテストと実運用で結果が違うのはなぜですか?
spread(スプレッド)やslippage(スリッページ)、execution(約定品質)が再現されないためです。実運用では損失が増える方向にズレやすいです。
8.7 SL(損切り)なしでも使えますか?
使えません。ポジションサイジングは「どれだけ負けるか」を前提に設計するため、SLがないとリスク計算が成立しません。
8.8 複数EAを動かす場合の注意点は?
個別ではなく「合計リスク」で管理します。複数EAが同時に損失を出すと、想定以上のドローダウンになります。
9. まとめ(内部リンク誘導)
【結論】ポジションサイジングは「利益を増やす技術」ではなく、「資金を守りながら長期的に増やすための設計」です。固定リスクを基準に、ボラティリティやexecutionを考慮して調整することが実務では最も安定します。
重要ポイントを短く整理します。
- ロットは期待値の倍率であり、過大設定は破綻を招く
- 固定リスク(1〜2%)が最も現実的で再現性が高い
- ATR連動で市場環境(ボラティリティ)に適応できる
- spread・slippage・executionの影響で理論は崩れる
- ロット単体ではなく「フィルター・制御」と組み合わせる
実務では以下の構成が有効です。
- ベース:固定リスク
- 調整:ATR連動
- 制限:最大ロット・同時ポジション
- 保護:ドローダウン制御(equity stop)
- 環境:VPS+execution最適化
次に読むべき重要テーマ(内部リンク推奨)
- ロットサイズ計算(具体的な数式と実装)
- ドローダウン制御(資金曲線の安定化)
- エクイティプロテクション(強制停止ロジック)
- リスク管理(risk per trade設計)
これらを組み合わせることで、EAは「検証で勝つ」だけでなく「実運用で生き残る」設計になります。