
Esta é uma estratégia de negociação baseada na análise de padrões de velas multiperíodo, que gera principalmente sinais de negociação identificando padrões de velas típicos, como engolfo de alta, engolfo de baixa e doji. A estratégia opera em um ciclo diário e determina os pontos de inflexão das tendências de mercado combinando vários indicadores técnicos e características de padrões, encontrando assim o momento ideal de entrada na negociação.
A lógica central da estratégia é identificar programaticamente três padrões clássicos de velas:
Quando um padrão de engolfo de alta é identificado, um sinal de compra é exibido abaixo da linha K; quando um padrão de engolfo de baixa é identificado, um sinal de venda é exibido acima da linha K; quando um padrão doji é identificado, ele é marcado no topo da linha K. A estratégia implementa a rotulagem de sinais por meio da função label.new() e aprimora a visualização de sinais por meio da função plotshape().
Essa estratégia implementa a análise clássica do padrão K-line de forma programática e tem boa operabilidade e escalabilidade. Por meio de configuração razoável de parâmetros e controle de risco, ele pode fornecer uma referência valiosa para decisões de negociação. No futuro, a estabilidade e a confiabilidade da estratégia podem ser melhoradas adicionando mais indicadores técnicos e otimizando o mecanismo de confirmação de sinal.
/*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")