Die Strategie ist ein quantitatives Handelssystem, das Bollinger Bandbrechungen und Gleichgewichtstrends kombiniert. Die Strategie erfasst automatisch Marktchancen durch die Überwachung der Beziehung zwischen dem Preis und dem Bollinger Band und der 100-Tage-Mittellinie als Trendbestätigung. Das System verwendet eine dynamische Haltungsgrößenverwaltung, die die Anzahl der Geschäfte automatisch an die Konto-Interessen anpasst, um eine dynamische Kontrolle des Risikos zu erzielen.
Die Kernlogik der Strategie basiert auf den folgenden Schlüsselelementen:
Die Strategie kombiniert die Brin-Band- und die Gleichschleife, um ein vollständiges quantitatives Handelssystem zu erstellen. Das System realisiert Kernfunktionen wie Signalgenerierung, Lagerhaltung und Risikokontrolle, während die Logik einfach bleibt. Obwohl einige Optimierungsmöglichkeiten vorhanden sind, ist die Gesamtkonstruktion vernünftig und hat praktische Anwendungswerte. Vor dem Einsatz in der Praxis wird empfohlen, die Parameter ausreichend zu optimieren und zu überprüfen.
/*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")