Diese Strategie ist ein quantitatives Handelssystem, das Bollinger Bands Breakout mit gleitenden Durchschnittstrends kombiniert. Das System erfasst automatisch Marktchancen, indem es die Preisbeziehungen mit Bollinger Bands überwacht, während es einen 100-Tage-gleitenden Durchschnitt zur Trendbestätigung verwendet. Es implementiert eine dynamische Positionsgröße basierend auf Kontokapital für automatisches Risikomanagement.
Die Kernlogik beruht auf folgenden Schlüsselelementen:
Diese Strategie baut ein komplettes quantitatives Handelssystem auf, indem sie Bollinger-Bänder und gleitende Durchschnitte kombiniert. Bei gleichzeitiger Einhaltung einer einfachen Logik implementiert sie Kernfunktionalitäten wie Signalgenerierung, Positionsmanagement und Risikokontrolle. Obwohl es Bereiche für Optimierung gibt, ist das Gesamtdesign solide und hat praktischen Anwendungswert. Es wird empfohlen, die Parameter gründlich zu optimieren und vor der Live-Implementierung durch Backtesting zu validieren, wobei Anpassungen entsprechend spezifischen Marktmerkmalen vorgenommen werden.
/*backtest start: 2024-10-01 00:00:00 end: 2024-10-31 23:59:59 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("BB Breakout with MA 100 Strategy", overlay=true) // Parameter Bollinger Bands length = input(20, title="BB Length") stdDev = input(2.0, title="BB Standard Deviation") // Hitung Bollinger Bands basis = ta.sma(close, length) dev = stdDev * ta.stdev(close, length) upperBB = basis + dev lowerBB = basis - dev // Hitung Moving Average 100 ma100 = ta.sma(close, 100) // Logika untuk sinyal beli dan jual longCondition = close > upperBB and close[1] <= upperBB[1] shortCondition = close < lowerBB and close[1] >= lowerBB[1] // Menentukan ukuran posisi (jumlah lot) size = strategy.equity / close // Menentukan ukuran posisi berdasarkan ekuitas saat ini // Eksekusi order if (longCondition) strategy.entry("Long", strategy.long, qty=size) if (shortCondition) strategy.entry("Short", strategy.short, qty=size) // Menutup posisi ketika kondisi terbalik if (longCondition and strategy.position_size < 0) strategy.close("Short") if (shortCondition and strategy.position_size > 0) strategy.close("Long") // Plotting plot(upperBB, color=color.red, title="Upper BB") plot(lowerBB, color=color.green, title="Lower BB") plot(basis, color=color.blue, title="Basis BB") plot(ma100, color=color.orange, title="MA 100") // Menambahkan informasi ke grafik bgcolor(longCondition ? color.new(color.green, 90) : na, title="Buy Signal Background") bgcolor(shortCondition ? color.new(color.red, 90) : na, title="Sell Signal Background")