
La estrategia es un sistema de seguimiento de tendencias basado en el diferencial estándar de la banda de Brin. La estrategia determina la fuerza de la tendencia observando la relación entre la posición de tres hilos consecutivos en relación con la posición de la banda de Brin en el tren descendente y realiza operaciones cuando la tendencia se establece. El sistema utiliza una relación de ganancias y riesgos fijos para administrar el riesgo de cada operación.
La lógica central de la estrategia se basa en los siguientes puntos:
Esta es una estrategia de seguimiento de tendencias de diseño razonable para capturar las tendencias del mercado a través de la banda de Brin y el mecanismo de confirmación múltiple. El marco de gestión de riesgos de la estrategia es perfecto, los estándares de ejecución son claros. Aunque hay un cierto retraso, la estabilidad y la rentabilidad de la estrategia se pueden mejorar aún más mediante la dirección de optimización recomendada.
/*backtest
start: 2024-11-01 00:00:00
end: 2025-02-18 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
//@version=6
strategy("Bollinger Band Buy and Sell Strategy (Entry at Close of 3rd Candle)", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10, pyramiding=0)
// Bollinger Band settings
length = input.int(20, "Bollinger Band Length")
mult = input.float(2.0, "Standard Deviation Multiplier")
basis = ta.sma(close, length)
dev = mult * ta.stdev(close, length)
upper_band = basis + dev
lower_band = basis - dev
// Plot Bollinger Bands
plot(upper_band, "Upper Band", color.blue)
plot(lower_band, "Lower Band", color.red)
// Initialize variables
var float buyEntryPrice = na
var float buyStopLoss = na
var float buyTargetPrice = na
var float sellEntryPrice = na
var float sellStopLoss = na
var float sellTargetPrice = na
// Buy Condition: Last 3 candles closed above upper band
buyCondition = close[2] > upper_band[2] and
close[1] > upper_band[1] and
close > upper_band
// Sell Condition: Last 3 candles closed below lower band
sellCondition = close[2] < lower_band[2] and close[1] < lower_band[1] and close < lower_band
// Buy Logic
if buyCondition and strategy.position_size == 0
buyEntryPrice := close // Entry at the close of the 3rd candle
buyStopLoss := low[2] // Low of the earliest candle in the 3-candle sequence
buyTargetPrice := buyEntryPrice + (buyEntryPrice - buyStopLoss)
strategy.entry("Buy", strategy.long)
strategy.exit("Buy Exit", "Buy", stop=buyStopLoss, limit=buyTargetPrice)
// Plot buy signal arrow on the entry candle
label.new(bar_index, low, "▲", color=color.green, style=label.style_label_up, yloc=yloc.belowbar)
// Sell Logic
if sellCondition and strategy.position_size == 0
sellEntryPrice := close // Entry at the close of the 3rd candle
sellStopLoss := high[2] // High of the earliest candle in the 3-candle sequence
sellTargetPrice := sellEntryPrice - (sellStopLoss - sellEntryPrice)
strategy.entry("Sell", strategy.short)
strategy.exit("Sell Exit", "Sell", stop=sellStopLoss, limit=sellTargetPrice)
// Plot sell signal arrow on the entry candle
label.new(bar_index, high, "▼", color=color.red, style=label.style_label_down, yloc=yloc.abovebar)
// Plot stop loss and target levels for buy trades
plot(strategy.position_size > 0 ? buyStopLoss : na, "Buy Stop Loss", color.red, 2, plot.style_linebr)
plot(strategy.position_size > 0 ? buyTargetPrice : na, "Buy Target", color.green, 2, plot.style_linebr)
// Plot stop loss and target levels for sell trades
plot(strategy.position_size < 0 ? sellStopLoss : na, "Sell Stop Loss", color.red, 2, plot.style_linebr)
plot(strategy.position_size < 0 ? sellTargetPrice : na, "Sell Target", color.green, 2, plot.style_linebr)