この戦略は,ボリンジャーバンドのブレイクアウトと移動平均トレンドを組み合わせた定量的な取引システムである.システムは,トレンド確認のために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")