概要
このガイドでは、tradesettings.yamlの一般設定にあるレバレッジ設定オプションを使用して、取引所のすべての取引シンボルに対してレバレッジを管理する方法を説明します。
1. SetLeverageStartup
SetLeverageStartup: false
目的: ボット起動時に定義されたレバレッジをすべての取引シンボルに適用する。
有効にするタイミング (true)
- ✅ 初回設定: すべてのシンボルに対して最初にレバレッジを設定する必要がある場合
- ✅ レバレッジ設定変更後: 希望するレバレッジを変更した場合
- ✅ 新しいシンボル追加後: 取引所に新しい取引ペアが追加された場合
無効にするタイミング (false)
- ✅ レバレッジ更新成功後: 不要なAPI呼び出しを避けるため
- ✅ 通常運用: 再起動ごとにレバレッジをリセットしないようにするため
- ✅ レバレッジがすでに設定済みの場合: すべてのシンボルが正しいレバレッジを持っている場合
⚠️ 重要な注意事項
-
レバレッジが正常に更新された後は常に
falseに設定して、以下を避けてください:- 初期化ごとの不要なAPI呼び出し
- 取引所からの潜在的なレート制限
- 起動時間の遅延
# ステップ1: レバレッジ更新のために有効化
SetLeverageStartup: true
# ステップ2: ボットを起動 (レバレッジが適用される)
# ステップ3: ボットを停止
# ステップ4: 次回起動前に無効化
SetLeverageStartup: false
ワークフロー例
1. 設定で希望するレバレッジを設定 (例: 10x)
2. SetLeverageStartup: true を有効化
3. ボットを起動 → すべてのシンボルにレバレッジが適用
4. ボットを停止
5. SetLeverageStartup: false を無効化
6. 通常の取引のためにボットを再起動
2. SetMaxLeverage
SetMaxLeverage: false
目的: 設定されたレバレッジ値の代わりに、各シンボルに対して取引所が許可する最大レバレッジを自動的に使用する。
仕組み
falseの場合 (デフォルト):
- すべてのシンボルに対して設定されたレバレッジ値を使用
- サポートされていない場合、API呼び出しが失敗する可能性がある
trueの場合:
- 各シンボルに対してサポートされる最大レバレッジを取得
- 設定値と取引所の最大値の低い方を使用
シナリオ例
# シナリオ1: シンボルがあなたのレバレッジをサポート
あなたの設定: 20x
シンボル最大: 50x
結果: 20x
# シナリオ2: シンボルの最大レバレッジが低い場合
あなたの設定: 20x
シンボル最大: 5x
結果: 5x
ボット出力: "ℹ️ XYZUSDTの最大レバレッジは5x、20xの代わりに5xを使用"
# シナリオ3: シンボルの最大レバレッジが高い場合
あなたの設定: 10x
シンボル最大: 125x
結果: 10x
有効にするタイミング (true)
- ✅ レバレッジ関連のエラーを避ける安全なアプローチ
- ✅ 異なるレバレッジ制限を持つ混合シンボルタイプ
- ✅ 制限に自動調整する保守的な取引
- ✅ 異なるルールを持つ複数取引所ボット
無効にするタイミング (false)
- ✅ すべてのシンボルで一貫したレバレッジがサポートされている場合
- ✅ 戦略が正確なレバレッジ値を必要とする場合
- ✅ パフォーマンス最適化 (API呼び出しの削減)
symbols.jsonとの統合
レバレッジ更新の流れ
1. ボットがtradesettings.yamlからレバレッジを読み込む
2. SetMaxLeverage: true の場合 → 最大レバレッジを取得
3. 最終レバレッジを計算 (設定値と最大値の最小値)
4. 取引所APIを介してレバレッジを適用
5. ✅ 実際に適用されたレバレッジでsymbols.jsonを更新
6. ボットは取引にsymbols.jsonのレバレッジを使用
symbols.json更新が重要な理由
- 取引所との一貫性を保証
- 再起動間で持続
- 実際に使用されたレバレッジの可視的追跡
⚠️ 重要: 同期タイミング
# ❌ 間違った方法
SetLeverageStartup: true
SetMaxLeverage: true
# ✅ 正しい方法 (一回限りの更新)
SetLeverageStartup: true
SetMaxLeverage: true
# 成功後:
SetLeverageStartup: false
SetMaxLeverage: false
推奨される設定ワークフロー
初期設定 (新規ボット)
# tradesettings.yaml
Leverage: 10
SetLeverageStartup: true
SetMaxLeverage: true
- 上記の設定を構成
- ボットを起動 → レバレッジが適用され、symbols.jsonが更新
- ボットを停止
- 両方の設定を無効化
- 通常運用のために再起動
レバレッジ値の変更
# tradesettings.yaml
Leverage: 15
SetLeverageStartup: true
SetMaxLeverage: true
- レバレッジ値を更新
SetLeverageStartupを有効化- ボットを起動 → 新しいレバレッジが適用
- ボットを停止
- 次回起動前に再度無効化
通常運用 (推奨)
# tradesettings.yaml
Leverage: 10
SetLeverageStartup: false
SetMaxLeverage: false
ボットはすでに設定および更新済みのsymbols.jsonからレバレッジを読み込みます。
新しいシンボルの追加
# tradesettings.yaml
Leverage: 10
SetLeverageStartup: true
SetMaxLeverage: true
- 取引所に新しいシンボルを追加
SetLeverageStartupを有効化- ボットを起動 → すべてのシンボルにレバレッジ適用
- ボットを停止
- 通常取引前に無効化
トラブルシューティング
- 問題: ボットがレバレッジをリセットし続ける
原因:SetLeverageStartup: trueが有効のまま
解決策: 初期設定後にfalseに設定 - 問題: レバレッジが適用されない
原因: 更新中にSetLeverageStartup: false
解決策: 一時的に有効化して再起動 - 問題: レバレッジ制限に関するAPIエラー
原因: 設定されたレバレッジが取引所の最大値を超過
解決策:SetMaxLeverage: trueを有効化 - 問題:
symbols.jsonの不一致
原因: 手動変更または同期の問題
解決策:SetLeverageStartup: trueを一度有効にして再同期
ベストプラクティス
✅ やるべきこと
- 更新成功後に
SetLeverageStartup: falseを設定 - 初回設定で
SetMaxLeverage: trueを使用 symbols.jsonのレバレッジ値を確認- 変更前にバックアップを保持
- すべてのシンボルに適用する前に1つのシンボルでテスト
❌ やってはいけないこと
- 通常運用で
SetLeverageStartup: trueを維持 SetLeverageStartupを有効にせずにレバレッジを変更symbols.jsonを手動で編集- 両方を繰り返し有効化 (APIの負荷を引き起こす)
クイックリファレンス表
| シナリオ | SetLeverageStartup | SetMaxLeverage | 使用タイミング |
|---|---|---|---|
| 初期設定 | true |
true |
ボットを初めて実行する場合 |
| 通常取引 | false |
false |
日常的な運用 |
| レバレッジ変更 | true |
true |
レバレッジ値の変更後 |
| 新しいシンボル追加 | true |
true |
取引所に新しいペアが追加された場合 |
| 保守モード | false |
true |
取引所の制限に自動調整 |
| パフォーマンスモード | false |
false |
API呼び出しの最小化 |
サポート
- ボットのログでエラーを確認
- 取引所のAPI権限にレバレッジ変更が含まれているか確認
- すべてのシンボルが取引所に存在するか確認
symbols.jsonで正しいレバレッジを確認- 取引所固有のレバレッジ制限を確認