Python動的ポジションサイジング:なぜ固定レバレッジは口座を破壊するのか
手動でのクリックはやめましょう。取引所APIに接続し、本当のポートフォリオボラティリティを計算して、コードにリスク管理を任せましょう。
ボラティリティ急上昇時に固定レバレッジが機能しなくなる理由
常に10倍のレバレッジでエントリーすることは一貫しているように思えますが、市場環境は決して一定ではありません。アベレージ・トゥルー・レンジ(ATR)が一晩で倍増すると、管理可能だったポジションが突然ロスカットの瀬戸際に置かれます。
大半の口座が破綻するのは、方向性の予測を誤ったからではありません。ボラティリティの構造的変化の最中にも、ポジションサイズを同一に保ってしまったからです。
長期的に生き残るためには、市場の混乱が拡大するにつれてエクスポージャーを縮小させなければなりません。固定の倍率をハードコーディングしているだけでは、突然の板の薄さに対応できません。
APIを介したライブ口座残高とATRの取得
サイジングロジックを実行する前に、スクリプトは取引所から正確な利用可能証拠金を照会する必要があります。残高変数をハードコードしていると、ドローダウン時に計算誤差が蓄積します。
次に、直近のローソク足データを取得し、14期間のローリングウィンドウでATRを計算します。この指標は、標準的なパーセンテージ変動よりも資産の実際のドル建ての動きを捉えます。
リアルタイムの証拠金とライブのボラティリティを組み合わせることで、リスク調整済みサイジングに必要な正確な分母が得られます。
Pythonでのポジションサイジング関数の実装
ここでリスクパラメータを実行可能なコードに変換します。注文サイズを勘で決める代わりに、1回のトレードあたりの最大許容リスク(現在の資本の1%など)を定義します。
そのリスク金額を、価格ポイントで測定した計画中のストップロスまでの距離で割ります。さらに現在のATRを考慮して、相場が激しく動いている場合はサイズを動的に抑制します。
この関数の出力は正確な契約数量であり、API拒否エラーを防ぐために取引所の最小ステップサイズに丸められます。
equity = 5000 risk_pct = 0.01 stop_distance = 1500 # Size = (5000 * 0.01) / 1500 = 0.033 units
約定の滑りと取引所API制限への対処
数式を書くのは半分の労力にすぎません。安全に注文を通すには、堅牢な例外処理が必要です。ブレイクアウト時にネットワークのレイテンシが急増すると、スクリプト古い計算を再試行する可能性があります。
資産のロットサイズ制限に一致させるため、常に厳格な丸めロジックを実装してください。許容小数点を超える端数の数量を送信すると、即座にAPI拒否を引き起こします。
フラッシュクラッシュ時に、自動スクリプトが極端なスリッページを防ぐことはできません。流動性が消失した場合、意図したストップロスが計算よりも大幅に悪化して約定する可能性があります。
重い取引所画面でリスクパラメータを推測するのをやめましょう。SizerTradeで瞬時にレバレッジとポジションを計算してください。
計算機を使う →よくある質問
暗号資産先物で固定レバレッジが危険なのはなぜですか?
固定レバレッジは市場のボラティリティの変化を無視します。資産のトゥルーレンジが急拡大すると、静的なポジションサイズは予想よりもはるかに速く証拠金を消耗します。
ポジションサイズの計算においてATRはどのように役立ちますか?
ATRは、特定の期間に資産がドル換算でどれだけ動くかを測定します。式にATRを取り入れることで、市場がボラティリティの高い状態のときにポジションが縮小するようになります。
PythonスクリプトでAPIのタイムアウトが発生した場合どうなりますか?
注文発注中にタイムアウトが発生した場合、スクリプトは二重エントリーを防ぐために、再試行する前にオープンオーダーを確認する必要があります。