이 전략은 볼링거 밴드 브레이크아웃과 이동 평균 트렌드를 결합한 양적 거래 시스템이다. 시스템은 트렌드 확인을 위해 100일 이동 평균을 사용하여 볼링거 밴드와의 가격 관계를 모니터링함으로써 자동으로 시장 기회를 캡처합니다. 자동 리스크 관리를 위해 계정 자금에 기반한 동적 위치 사이징을 구현합니다.
핵심 논리는 다음과 같은 핵심 요소에 기반합니다.
이 전략은 볼링거 밴드와 이동 평균을 결합하여 완전한 양적 거래 시스템을 구축합니다. 간단한 논리를 유지하면서 신호 생성, 위치 관리 및 리스크 제어 등 핵심 기능을 구현합니다. 최적화 할 수있는 영역이 있지만 전반적인 디자인은 건전하며 실용적인 응용 가치가 있습니다. 특정 시장 특성에 따라 조정을 통해 라이브 구현 전에 매개 변수를 철저히 최적화하고 백테스팅을 통해 검증하는 것이 좋습니다.
/*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")