Esta estratégia gera sinais de negociação com base no indicador Bollinger Bands %B. Ela fica longa quando o valor %B cai abaixo de um limite pré-definido e adota uma abordagem de média de posição dinâmica para seguir a tendência até que o take profit ou o stop loss seja acionado.
As vantagens desta estratégia são as seguintes:
Há também alguns riscos associados a esta estratégia:
Soluções:
A estratégia pode ser ainda melhorada nos seguintes domínios:
Em geral, esta é uma estratégia de negociação relativamente robusta a longo prazo. Há espaço para melhoria tanto na precisão do sinal quanto no ajuste dos parâmetros. Quando combinada com filtragem adicional de sinal e dimensionamento prudente da posição, esta estratégia pode alcançar resultados decentes nos mercados de tendência.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Bollinger Bands %B Long Strategy", shorttitle="BB %B Long Strategy", overlay=true) // Girdiler length = input.int(20, title="BB Length") src = input(close, title="Source") dev = input.float(2.0, title="Deviation") kar_hedefi = input(5, title="Take Profit") zarar_durumu = input(100, title="Stop Loss") start_date = input(timestamp("01 Jan 2023 00:00 +0000"), "Start Date") end_date = input(timestamp("01 Jan 2024 00:00 +0000"), "End Date") altinda_kalirsa_long = input.float(0, title="hangi degerin altinda long alsin") // Bollinger Bantları %B göstergesi basis = ta.sma(src, length) stdDev = ta.stdev(src, length) upperBand = basis + dev * stdDev lowerBand = basis - dev * stdDev percentB = (src - lowerBand) / (upperBand - lowerBand) // Alım-Satım Sinyalleri longCondition = percentB < altinda_kalirsa_long // Kar/Zarar Hesaplama takeProfit = strategy.position_avg_price * (1 + kar_hedefi / 100) stopLoss = strategy.position_avg_price * (1 - zarar_durumu / 100) // Long (Alım) İşlemi if (longCondition ) strategy.entry("Long", strategy.long) strategy.exit("Take Profit/Stop Loss", "Long", limit=takeProfit, stop=stopLoss) // Take Profit Seviyesi Çizgisi plot(takeProfit, title="Take Profit", color=color.green, linewidth=1, style=plot.style_linebr)