
Esta estrategia es un sistema de comercio cuantitativo que combina brechas de la banda de Brin y tendencias de la línea media. La estrategia capta automáticamente las oportunidades de mercado mediante el monitoreo de la relación entre el precio y la banda de Brin, combinando la línea media de 100 días como confirmación de tendencia. El sistema utiliza una gestión dinámica de la escala de la posición, que ajusta automáticamente la cantidad de operaciones según los intereses de la cuenta para lograr un control dinámico del riesgo.
La lógica central de la estrategia se basa en los siguientes elementos clave:
Esta estrategia, combinada con la banda de Brin y la línea uniforme, construye un sistema de comercio cuantitativo completo. El sistema realiza funciones centrales como la generación de señales, la gestión de la posesión y el control de riesgos, al tiempo que mantiene la sencillez lógica. Aunque hay algunos lugares que necesitan optimización, el diseño general es razonable y tiene valor de aplicación real. Se recomienda una optimización y verificación de los parámetros adecuados antes de su uso en el mundo real, y se realizan ajustes específicos en función de las características específicas del mercado.
/*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")