// إعدادات السيولة outlierThreshold = input.int(title='Outlier Threshold Length', defval=10) fastMovingAverageLength = 100 // فترة MA السريع ثابتة slowMovingAverageLength = 200 // فترة MA البطيء ثابتة
// خيارات الألوان buyColor = input.color(title='Buy Signal Color', defval=color.green) sellColor = input.color(title='Sell Signal Color', defval=color.red)
// تحديد الاتجاه (1=شراء, -1=بيع) var int dir = 1 dir := close > shortStopPrev ? 1 : close < longStopPrev ? -1 : dir
// حساب السيولة (Liquidity) بناءً على الحركة السعرية priceMovementLiquidity = volume / math.abs(close - open)
// حساب الحدود لتحديد السيولة المتطرفة liquidityBoundary = ta.ema(priceMovementLiquidity, outlierThreshold) + ta.stdev(priceMovementLiquidity, outlierThreshold)
// إنشاء مصفوفة لتخزين قيم السيولة var liquidityValues = array.new_float(5)
// التحقق إذا كانت السيولة تتجاوز الحدود if ta.crossover(priceMovementLiquidity, liquidityBoundary) array.insert(liquidityValues, 0, close)
// حساب المتوسطات المتحركة (EMAs) على آخر قيمة سيولة fastEMA = ta.ema(array.get(liquidityValues, 0), fastMovingAverageLength) slowEMA = ta.ema(array.get(liquidityValues, 0), slowMovingAverageLength)
// رسم المتوسطات المتحركة (EMAs) بناءً على السيولة fastPlot = plot(fastEMA, color = fastEMA > slowEMA ? color.new(buyColor, 50) : color.new(sellColor, 50)) slowPlot = plot(slowEMA, color = fastEMA > slowEMA ? color.new(buyColor, 50) : color.new(sellColor, 50))
// إنشاء تظليل بين EMAs fill(fastPlot, slowPlot, fastEMA, slowEMA, fastEMA > slowEMA ? color.new(buyColor, 50) : color.new(sellColor, 50), color.new(chart.bg_color, 80))
// إشارات الشراء والبيع بناءً على المتوسطات والسيولة buySignal = dir == 1 and dir[1] == -1 and fastEMA > slowEMA sellSignal = dir == -1 and dir[1] == 1 and fastEMA < slowEMA