
Esta estratégia é um sistema de negociação quantitativa que combina a ruptura da faixa de Brin e a tendência da linha de equilíbrio. A estratégia capta automaticamente as oportunidades de mercado através da monitorização da relação entre o preço e a descida da faixa de Brin, combinando a linha média de 100 dias como confirmação de tendência. O sistema adota gerenciamento dinâmico de escala de posições, ajustando automaticamente o número de negociações de acordo com os direitos e interesses da conta, para realizar o controle dinâmico do risco.
A lógica central da estratégia é baseada nos seguintes elementos-chave:
A estratégia, em combinação com a faixa de Brin e a linha de equilíbrio, constrói um sistema de negociação quantitativa completo. O sistema realiza funções centrais como geração de sinais, gerenciamento de posições e controle de risco, mantendo a simplicidade lógica. Embora existam algumas áreas que precisam de otimização, o design geral é razoável e tem valor de aplicação prática.
/*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")