MagicTradeBot 5.2+は、完全に再設計されたポジションサイジングエンジンを導入しました。資本配分をトレーディングおよびDCAロジックから分離することで、明確さ、柔軟性、リスクコントロールが大幅に向上しています。
このアップデートにより、すべてのポジションサイズ計算が以下に一元化されます:
position_sizing.yaml
🚀 バージョン5.2+での変更点
✅ 1. 新しい専用設定ファイル
取引金額およびエクスポージャーの全ロジックが以下に移動しました:
position_sizing.yaml
これにより以下の点が保証されます:
- よりクリーンなアーキテクチャ
- DCAと資本ロジックの重複なし
- シミュレーションの精度向上
- 将来の高度なサイジングモデル対応(ケリー基準、リスク・オブ・ルイン、ボラティリティベースなど)
✅ 2. 古い設定の置き換え
以下の設定は現在非推奨(deprecated)です:
| 古い設定 | ステータス |
|---|---|
CalculateAmountDynamically |
❌ 削除 |
TradeAmountPer |
❌ 削除 |
これらは完全に以下で置き換えられました:
auto_calculate_initial_amount: true
✅ 3. initial_trade_amountの移動
以前はtrading.yamlにあったものが、現在は以下に移動:
position_sizing.yaml
これでポジションサイズに関するロジックが一箇所に集約されます。
📂 新しい設定構造
# --------------------------------------------------------------------------
# 取引金額 & 資本配分
# --------------------------------------------------------------------------
initial_trade_amount: 10.0
# --------------------------------------------------------------------------
# ポジションサイズ計算
# --------------------------------------------------------------------------
auto_calculate_initial_amount: true
balance: 5000
total_percent_investment_per_trade: 2.0
# --------------------------------------------------------------------------
# 高度なサイジング機能
# --------------------------------------------------------------------------
mode: percent
kelly_fraction: 0.5
target_risk_of_ruin_percent: 1.0
max_drawdown_threshold: 40.0
⚙️ ポジションサイジングの仕組み(ロジックフロー)
1️⃣ 固定モード
もし:
auto_calculate_initial_amount: false
ならばボットは:
initial_trade_amountを使用- エクスポージャー計算を行わない
- DCA計算をスキップ
- パーセントロジックをスキップ
✔ 固定ロットトレーダー向けに最適
✔ シンプルで予測可能
2️⃣ 自動計算モード
もし:
auto_calculate_initial_amount: true
ならば:
- 初期金額が残高から動的に計算される
- 総エクスポージャー(初期+全DCA+Grid DCA)が以下で制限される:
total_percent_investment_per_trade
3️⃣ 高度なモード
ケリー基準(Kelly Criterion)
- 過去の勝率と平均PnL/トレードを使用
- kelly_fractionでケリーの分数の適用が可能
- ボラティリティを抑えつつ成長ポテンシャルを維持
破産リスク(Risk-of-Ruin)
- 口座破産の確率を安全な水準に保つ最大ポジションサイズを計算
- target_risk_of_ruin_percentで制御
- 壊滅的損失を防ぐためのmax_drawdown_thresholdを強制適用
- 長期リスク管理に最適
🧮 エクスポージャー計算ルール
ケースA — DCA無効 + Grid無効
両方無効の場合、ボットは単純に以下を使用:
残高の10%
(幾何計算は適用されません)
ケースB — DCA有効
システムが計算:
- 全DCAオーダーに対する幾何級数
- 乗数ベースのエクスポージャー
- 総ユニット数
資本を比例配分
ケースC — Grid DCA有効
Gridエクスポージャーを追加ユニットとして加算:
grid_orders × order_percent
これらのユニットが総エクスポージャー計算に含まれる
ケースD — DCA + Grid 併用
両方のエクスポージャーモデルを1つの総上限に統合:
総エクスポージャー ≤ total_percent_investment_per_trade % of balance
初期金額は以下から導出:
target_total_investment / total_units
💰 残高の挙動
ライブモード
もし:
balance: 0
ボットは実際の取引所残高を使用します。
デモモード
もし:
balance: 5000
ボットは以下を使用:
balance ± total_pnl
これにより正確な複利シミュレーションが可能になります。
🎯 total_percent_investment_per_trade の説明
これは1トレードあたりの最大総資本エクスポージャーを定義し、以下を含みます:
- 初期エントリー
- すべてのDCAオーダー
- すべてのGrid DCAオーダー
例
| 値 | 特徴 |
|---|---|
| 2.0 | 保守的 |
| 5.0 | バランス型 |
| 10.0 | 積極的 |
🔥 シナリオ例
残高 = 5000
total_percent_investment_per_trade = 2%
許容最大エクスポージャー:
5000 × 2% = 100 USDT
ボットは初期オーダーサイズを以下のように計算します:
初期 + 全DCA + Gridオーダー = 100 USDT
この制限を絶対に超えません。
🏗️ このアーキテクチャが優れている理由
- ✔ 責務の分離がより明確
- ✔ DCAモジュール内に資本ロジックが存在しない
- ✔ 決定論的なリスクコントロール
- ✔ AI最適化との互換性
- ✔ シミュレーションとライブ動作が一致
- ✔ ケリー / 破産リスク対応の将来性
⚠️ マイグレーションチェックリスト(5.1.x → 5.2+)
- 削除:
CalculateAmountDynamicallyTradeAmountPer
- 移動:
initial_trade_amount→position_sizing.yaml
- 移動:
balanceauto_calculate_initial_amounttotal_percent_investment_per_trademodekelly_fractiontarget_risk_of_ruin_percentmax_drawdown_threshold
- 確認:
- DCA設定は
dca.yaml内に残る - トレード実行ロジックは
trading.yaml内に残る
- DCA設定は
📌 おすすめ設定プロファイル
🛡 保守的
auto_calculate_initial_amount: true
total_percent_investment_per_trade: 2.0
mode: percent
⚖ バランス型
auto_calculate_initial_amount: true
total_percent_investment_per_trade: 5.0
mode: percent
🚀 積極的
auto_calculate_initial_amount: true
total_percent_investment_per_trade: 10.0
mode: percent
🧠 上級者向け
バージョン5.2+は以下の基盤を築きます:
- ケリー基準によるサイジング
- 破産リスクターゲティング
- ボラティリティベースのサイジング
- 戦略ごとの資本バケット
- AI最適化エクスポージャー
今後の全モデルはposition_sizing.yamlに統合されます。
✅ まとめ
MagicTradeBot 5.2+は以下を導入:
- 専用ポジションサイジングエンジン
- 旧来の動的サイジングオプションの削除
- 資本コントロールの中央集約
- 決定論的な総エクスポージャー上限
- 高度モード:ケリー & 破産リスク
- 自動モードでのマネーマネジメントモジュールの自動無効化
このアップグレードにより、リスク管理の精度、わかりやすさ、長期的なスケーラビリティが大幅に向上します。