
Стратегия представляет собой количественную торговую систему, объединяющую прорывы в поясе бурин и тренды на равной линии. Стратегия автоматически захватывает рыночные возможности путем мониторинга отношений цены и пояса бурин вверх и вниз, в сочетании с 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")