Chiến lược này là một hệ thống giao dịch định lượng kết hợp sự đột phá của Bollinger Bands với xu hướng trung bình động. Hệ thống tự động nắm bắt các cơ hội thị trường bằng cách theo dõi mối quan hệ giá với Bollinger Bands trong khi sử dụng trung bình động 100 ngày để xác nhận xu hướng. Nó thực hiện kích thước vị trí năng động dựa trên vốn chủ sở hữu tài khoản để quản lý rủi ro tự động.
Logic cốt lõi dựa trên các yếu tố chính sau:
Chiến lược này xây dựng một hệ thống giao dịch định lượng hoàn chỉnh bằng cách kết hợp Bollinger Bands và đường trung bình động. Trong khi duy trì logic đơn giản, nó thực hiện các chức năng cốt lõi bao gồm tạo tín hiệu, quản lý vị trí và kiểm soát rủi ro. Mặc dù có các lĩnh vực tối ưu hóa, thiết kế tổng thể là âm thanh và có giá trị ứng dụng thực tế.
/*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")