Esta estrategia genera señales comerciales basadas en el indicador Bollinger Bands %B. Se hace larga cuando el valor de %B cae por debajo de un umbral preestablecido y adopta un enfoque de promedio de posición dinámica para seguir la tendencia hasta que se activa el take profit o stop loss. La estrategia es adecuada para identificar oportunidades de retroceso después de que se rompa el soporte de la banda inferior de Bollinger.
Las ventajas de esta estrategia son:
También hay algunos riesgos asociados con esta estrategia:
Soluciones:
La estrategia puede optimizarse aún más en los siguientes ámbitos:
En general, esta es una estrategia comercial relativamente robusta a largo plazo. Hay margen de mejora tanto en la precisión de la señal como en la puesta a punto de los parámetros. Cuando se combina con un filtrado de señal adicional y un tamaño de posición prudente, esta estrategia puede lograr resultados decentes en los mercados de tendencia.
/*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)