//version=5
indicator('AAtrading', shorttitle='AAtrading', overlay=true)

// الإعدادات الثابتة (ATR Period = 10, Multiplier = 3)
length = 10 // فترة ATR ثابتة
mult = 3.0 // معامل ATR ثابت
useClose = input.bool(title='Use Close Price for Extremums', defval=true)

showLabels = input.bool(title='Show Buy/Sell Labels', defval=true)
highlightState = input.bool(title='Highlight State', defval=true)

// إعدادات السيولة
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)

// حساب الـ ATR
atr = mult * ta.atr(length)

// حساب نقاط التوقف للمراكز الطويلة والقصيرة
longStop = (useClose ? ta.highest(close, length) : ta.highest(length)) - atr
longStopPrev = nz(longStop[1], longStop)
longStop := close[1] > longStopPrev ? math.max(longStop, longStopPrev) : longStop

shortStop = (useClose ? ta.lowest(close, length) : ta.lowest(length)) + atr
shortStopPrev = nz(shortStop[1], shortStop)
shortStop := close[1] < shortStopPrev ? math.min(shortStop, shortStopPrev) : shortStop

// تحديد الاتجاه (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

// رسم إشارات الشراء والبيع
plotshape(buySignal and showLabels ? longStop : na, title='Buy Label', text='Buy', location=location.absolute, style=shape.labelup, size=size.tiny, color=color.new(buyColor, 0), textcolor=color.white)
plotshape(sellSignal and showLabels ? shortStop : na, title='Sell Label', text='Sell', location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.new(sellColor, 0), textcolor=color.white)

// إشعارات التنبيه (Alerts)
alertcondition(buySignal, title='Buy Alert', message='🚨 Buy Signal from Chandelier Exit + LWMAs!')
alertcondition(sellSignal, title='Sell Alert', message='🚨 Sell Signal from Chandelier Exit + LWMAs!')
Bands and ChannelsChart patterns

نص برمجي للمستخدمين المدعوين فقط

الوصول إلى هذا النص مقيد للمستخدمين المصرح لهم من قبل المؤلف وعادة ما يكون الدفع مطلوباً. يمكنك إضافته إلى مفضلاتك، لكن لن تتمكن من استخدامه إلا بعد طلب الإذن والحصول عليه من مؤلفه. تواصل مع scv6205 للحصول على مزيد من المعلومات، أو اتبع إرشادات المؤلف أدناه.

لا تقترح TradingView الدفع مقابل النصوص البرمجية واستخدامها حتى تثق بنسبة 100٪ في مؤلفها وتفهم كيفية عملها. في كثير من الحالات، يمكنك العثور على بديل جيد مفتوح المصدر مجانًا في نصوص مجتمع الخاصة بنا .

تعليمات المؤلف

원포지션 매매

هل تريد استخدام هذا النص البرمجي على الرسم البياني؟

تحذير: ‎‎‎يرجى القراءة‎‎ قبل طلب الوصول.

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