// --- Indicators --- atr = ta.atr(lengthATR) // ATR for volatility ema = ta.ema(close, lengthEMA) // EMA for trend volMA = ta.sma(volume, lengthVolume) // Volume moving average
// --- Candlestick Pattern Detection (Manually Defined) --- // Bullish Engulfing: Current close > current open and previous close < previous open and current close > previous open bullishEngulfing = close > open and close[1] < open[1] and close > open[1] and open < close[1]
// Bearish Engulfing: Current close < current open and previous close > previous open and current close < previous open bearishEngulfing = close < open and close[1] > open[1] and close < open[1] and open > close[1]
// Doji Pattern: Current close is within a small range of the open (doji condition) doji = math.abs(close - open) < (high - low) * 0.1
// --- Trend Identification --- uptrend = close > ema // Price above EMA = uptrend downtrend = close < ema // Price below EMA = downtrend
// --- Triangle Pattern & Trendline Breakout (Simplified) --- // Calculate recent highest and lowest closes for breakout detection highestHigh = ta.highest(high, 3) // Highest high of the last 3 bars lowestLow = ta.lowest(low, 3) // Lowest low of the last 3 bars
// Detect breakouts triangleBreakoutUp = close > highestHigh // Breakout above the highest high triangleBreakoutDown = close < lowestLow // Breakdown below the lowest low
// --- Momentum Catalysts (Simulated) --- momentumBullish = highVolume and bullishEngulfing momentumBearish = highVolume and bearishEngulfing
// --- Buy (Long Position) Conditions --- longCondition = (uptrend and bullishEngulfing and highVolume and close > ema) longMomentumCondition = (momentumBullish and highVolume and close > ema)
// --- Sell (Short Position) Conditions --- shortCondition = (downtrend and bearishEngulfing and highVolume and close < ema) shortMomentumCondition = (momentumBearish and highVolume and close < ema)
// --- Exit Conditions (Close Long and Short Positions) --- sellLongCondition = (downtrend and bearishEngulfing and close < ema) // Exit long position buyShortCondition = (uptrend and bullishEngulfing and close > ema) // Exit short position