StratCraft
Backtrader インジケーターガイド

Backtrader ATR Position Sizing Strategy

一定期間の高値と安値の平均的な範囲を測定するボラティリティ指標。方向性指標とは異なり、ATR はトレンドの方向を示さずに市場のボラティリティの大きさを測定します。

bt.indicators.ATRRisk Management Strategies

一定期間の高値と安値の平均的な範囲を測定するボラティリティ指標。方向性指標とは異なり、ATR はトレンドの方向を示さずに市場のボラティリティの大きさを測定します。

ATR はポジションサイジングとリスク管理に不可欠です。固定のストップロス距離の代わりに、ATR ベースのストップは現在のボラティリティに適応します。ボラティリティの高い市場ではストップを広くし、穏やかな市場では狭くします。これにより、通常のボラティリティによる早すぎる撤退を防ぎつつ、真の反転から保護します。

Risk Management Strategies について詳しく学ぶ →
Pythonbacktrader
import backtrader as bt

class ATRPositionSizing(bt.Strategy):
    params = (('atr_period', 14), ('risk_multiple', 2.0), ('risk_pct', 0.02))

    def __init__(self):
        self.atr = bt.indicators.ATR(self.data, period=self.p.atr_period)

    def next(self):
        if not self.position:
            # Entry signal (simplified)
            if self.data.close[0] > self.data.close[-1]:
                # Position size based on ATR
                stop_distance = self.p.risk_multiple * self.atr[0]
                risk_per_share = stop_distance
                position_size = (self.broker.getvalue() * self.p.risk_pct) / risk_per_share
                self.buy(size=position_size)
                self.stop_price = self.data.close[0] - stop_distance
        else:
            # ATR-based trailing stop
            if self.data.close[0] < self.stop_price:
                self.close()
パラメーターデフォルト説明
period14ATR ルックバック期間