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