
Esta es una estrategia comercial basada en el análisis de patrones de velas de múltiples períodos, que genera principalmente señales comerciales mediante la identificación de patrones de velas típicos, como envolvente alcista, envolvente bajista y doji. La estrategia opera en un ciclo diario y determina los puntos de inflexión de las tendencias del mercado combinando múltiples indicadores técnicos y características de patrones, encontrando así el momento ideal de entrada al trading.
La lógica central de la estrategia es identificar tres patrones de velas clásicos de forma programática:
Cuando se identifica un patrón envolvente alcista, se muestra una señal de compra debajo de la línea K; cuando se identifica un patrón envolvente bajista, se muestra una señal de venta encima de la línea K; cuando se identifica un patrón doji, se marca en la parte superior de la línea K. La estrategia implementa el etiquetado de señales a través de la función label.new() y mejora la visualización de señales a través de la función plotshape().
Esta estrategia implementa el análisis de patrones clásico de línea K de forma programática y tiene buena operatividad y escalabilidad. Mediante un establecimiento de parámetros razonables y un control de riesgos, puede proporcionar una referencia valiosa para las decisiones comerciales. En el futuro, la estabilidad y confiabilidad de la estrategia se pueden mejorar agregando más indicadores técnicos y optimizando el mecanismo de confirmación de la señal.
/*backtest
start: 2024-01-06 00:00:00
end: 2025-01-04 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Sensex Option Buy/Sell Signals", overlay=true)
// Input parameters
bullishColor = color.new(color.green, 0)
bearishColor = color.new(color.red, 0)
dojiColor = color.new(color.yellow, 0)
// Candlestick pattern identification
isBullishEngulfing = close[1] < open[1] and close > open and close > high[1] and open < low[1]
isBearishEngulfing = close[1] > open[1] and close < open and close < low[1] and open > high[1]
isDoji = math.abs(close - open) <= (high - low) * 0.1
// Plot buy/sell signals
buySignal = isBullishEngulfing
sellSignal = isBearishEngulfing
timeframeCondition = input.timeframe("D", title="Timeframe for signals")
// Buy Signal
if buySignal
label.new(bar_index, high, "Buy", style=label.style_label_up, color=bullishColor, textcolor=color.white)
strategy.entry("Buy", strategy.long)
// Sell Signal
if sellSignal
label.new(bar_index, low, "Sell", style=label.style_label_down, color=bearishColor, textcolor=color.white)
strategy.entry("Sell", strategy.short)
// Highlight Doji candles
if isDoji
label.new(bar_index, high, "Doji", style=label.style_circle, color=dojiColor, textcolor=color.black)
// Alerts
alertcondition(buySignal, title="Buy Alert", message="Bullish Engulfing Pattern Detected")
alertcondition(sellSignal, title="Sell Alert", message="Bearish Engulfing Pattern Detected")
// Add plot shapes for visibility
plotshape(series=buySignal, title="Buy Signal", location=location.belowbar, color=bullishColor, style=shape.labelup, text="BUY")
plotshape(series=sellSignal, title="Sell Signal", location=location.abovebar, color=bearishColor, style=shape.labeldown, text="SELL")