
La estrategia es un sistema de negociación de ruptura que combina bandas de Bollinger, indicadores relativamente fuertes (RSI) y líneas de K suaves (Heikin Ashi). Mediante el uso combinado de múltiples indicadores técnicos, se filtra eficazmente el ruido del mercado para capturar oportunidades de ruptura de alta probabilidad. La estrategia utiliza el concepto de seguimiento de tendencias y el comercio de dinámica, para entrar en el mercado después de la confirmación de la ruptura, mediante la reversión de la línea de K suave y el RSI como una señal de salida.
La lógica central de la estrategia se basa en la coordinación de los siguientes tres indicadores técnicos:
Las condiciones de entrada deben cumplirse al mismo tiempo:
La condición para la salida es:
Sugerencias para el control de riesgos:
La estrategia, a través de la aplicación combinada de la banda de Brin, el RSI y la línea de K suave, construye un sistema de comercio de seguimiento de tendencias relativamente completo. La lógica de la estrategia es clara, los estándares de ejecución son claros y tienen una buena practicidad. La estabilidad y la fiabilidad de la estrategia se espera que se mejore aún más mediante la optimización de la configuración de los parámetros y el aumento de los indicadores auxiliares.
/*backtest
start: 2024-02-19 00:00:00
end: 2025-02-16 08:00:00
period: 6h
basePeriod: 6h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=6
strategy("Bollinger Bands + RSI + Heikin Ashi Breakout", overlay=true)
// Input Settings
bbLength = input.int(20, title="Bollinger Bands Length")
bbMultiplier = input.float(2, title="Bollinger Bands Multiplier")
rsiLength = input.int(14, title="RSI Length")
rsiOverbought = input.float(70, title="RSI Overbought Level")
// Bollinger Bands
basis = ta.sma(close, bbLength)
dev = bbMultiplier * ta.stdev(close, bbLength)
upperBB = basis + dev
lowerBB = basis - dev
// Heikin Ashi Candle Calculations
var float heikinOpen = na // Declare `heikinOpen` with an undefined initial value
var float heikinClose = na // Declare `heikinClose` with an undefined initial value
// Update Heikin Ashi values
heikinClose := (open + high + low + close) / 4
heikinOpen := na(heikinOpen[1]) ? (open + close) / 2 : (heikinOpen[1] + heikinClose[1]) / 2
heikinHigh = math.max(high, math.max(heikinOpen, heikinClose))
heikinLow = math.min(low, math.min(heikinOpen, heikinClose))
// RSI
rsi = ta.rsi(close, rsiLength)
// Entry Conditions
heikinGreen = heikinClose > heikinOpen
longCondition = heikinGreen and close > upperBB and rsi > 50
// Exit Conditions
heikinRed = heikinClose < heikinOpen
longExitCondition = heikinRed or rsi >= rsiOverbought
// Strategy Execution
if (longCondition)
strategy.entry("Long", strategy.long)
if (longExitCondition)
strategy.close("Long", comment="Exit Long")
// Plotting Bollinger Bands
plot(upperBB, color=color.blue, title="Upper Bollinger Band")
plot(lowerBB, color=color.blue, title="Lower Bollinger Band")
plot(basis, color=color.orange, title="Middle Bollinger Band")
// Heikin Ashi Visualization
plotcandle(heikinOpen, heikinHigh, heikinLow, heikinClose, color=(heikinGreen ? color.green : color.red), title="Heikin Ashi Candles")
// Debugging Signals
plotshape(longCondition, style=shape.labelup, location=location.belowbar, color=color.green, title="Long Entry Signal")
plotshape(longExitCondition, style=shape.labeldown, location=location.abovebar, color=color.red, title="Long Exit Signal")