StratCraft
Backtrader Gösterge Kılavuzu

Backtrader ATR Position Sizing Strategy

Belirli bir dönemdeki yüksek ve düşük fiyatlar arasındaki ortalama aralığı ölçen oynaklık göstergesi. Yönlü göstergelerin aksine ATR, yön belirtmeden piyasa oynaklığının büyüklüğünü ölçer.

bt.indicators.ATRRisk Management Strategies

Belirli bir dönemdeki yüksek ve düşük fiyatlar arasındaki ortalama aralığı ölçen oynaklık göstergesi. Yönlü göstergelerin aksine ATR, yön belirtmeden piyasa oynaklığının büyüklüğünü ölçer.

ATR, pozisyon büyüklüğü ve risk yönetimi için temeldir. Sabit durdurma (stop-loss) mesafeleri yerine, ATR tabanlı durdurmalar mevcut oynaklığa uyum sağlar: oynak piyasalarda daha geniş durdurmalar, sakin piyasalarda daha dar durdurmalar. Bu, normal oynaklık sırasında erken çıkışları önlerken gerçek dönüşlere karşı koruma sağlar.

Risk Management Strategies hakkında daha fazla bilgi edinin →
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()
ParametreVarsayılanAçıklama
period14ATR bakış süresi