‏//version=5
‏indicator("SMI with Highlighted Crossover Candles and MACD Sync", "SMI_MACD", overlay=true)

// إعدادات مؤشر SMI
‏lengthK = input.int(10, "%K Length", minval = 1, maxval = 15000)
‏lengthD = input.int(3, "%D Length", minval = 1, maxval = 4999)
‏lengthEMA = input.int(3, "EMA Length", minval = 1, maxval = 4999)

// إعدادات مؤشر MACD
‏macdFastLength = input.int(3, "MACD Fast Length", minval = 1, maxval = 4999)
‏macdSlowLength = input.int(7, "MACD Slow Length", minval = 1, maxval = 4999)
‏macdSignalLength = input.int(10, "MACD Signal Length", minval = 1, maxval = 4999)

// دالة لحساب EMA مزدوج
‏emaEma(source, length) => ta.ema(ta.ema(source, length), length)

// حساب مؤشر SMI
‏highestHigh = ta.highest(lengthK)
‏lowestLow = ta.lowest(lengthK)
‏highestLowestRange = highestHigh - lowestLow
‏relativeRange = close - (highestHigh + lowestLow) / 2
‏smi = 200 * (emaEma(relativeRange, lengthD) / emaEma(highestLowestRange, lengthD))

// حساب EMA المستند إلى SMI
‏smiEma = ta.ema(smi, lengthEMA)

// إشارات تقاطع SMI
‏isBuySignalSMI = ta.crossover(smi, smiEma) // تقاطع صعودي
‏isSellSignalSMI = ta.crossunder(smi, smiEma) // تقاطع هبوطي

// حساب مؤشر MACD
‏macdLine = ta.ema(close, macdFastLength) - ta.ema(close, macdSlowLength)
‏macdSignalLine = ta.ema(macdLine, macdSignalLength)
‏macdHistogram = macdLine - macdSignalLine

// إشارات تقاطع MACD
‏isBuySignalMACD = ta.crossover(macdLine, macdSignalLine) // تقاطع صعودي
‏isSellSignalMACD = ta.crossunder(macdLine, macdSignalLine) // تقاطع هبوطي

// تحديد الشموع التي يحدث فيها تقاطع SMI مع MACD في نفس الشمعة
‏isSyncBuySignal = isBuySignalSMI and isBuySignalMACD
‏isSyncSellSignal = isSellSignalSMI and isSellSignalMACD

// رسم خطوط SMI و EMA
‏plot(smi, "SMI", color=color.blue)
‏plot(smiEma, "SMI-based EMA", color=color.orange)

// رسم خطوط MACD
‏plot(macdLine, "MACD Line", color=color.green)
‏plot(macdSignalLine, "MACD Signal Line", color=color.red)
‏hline(0, "MACD Zero Line", color=color.gray)

// تلوين الشمعة التي يحدث فيها تزامن التقاطعات باللون الأسود
‏barcolor(isSyncBuySignal or isSyncSellSignal ? color.black : na, title="Synchronized Crossover Candle Color")

// إضافة رمز لتحديد الشموع المتزامنة
‏plotshape(series=isSyncBuySignal, title="Synchronized Buy Crossover", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
‏plotshape(series=isSyncSellSignal, title="Synchronized Sell Crossover", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)

// خطوط مرجعية
‏hline(40, "Overbought Line", color=color.gray)
‏hline(-40, "Oversold Line", color=color.gray)
‏hline(0, "Middle Line", color=color.new(color.gray, 50))
Technical IndicatorsTrend Analysis

إخلاء المسؤولية