
اتار چڑھاؤ کی اصلاح شدہ آر ایس آئی میڈین ریورس ٹریڈنگ اسٹریٹجی ایک مقداری تجارتی حکمت عملی ہے جس میں آر ایس آئی (تباہ شدہ کمزور اشارے) میڈین ریورس سگنل ، سمارٹ مارکیٹ فلٹرنگ اور اتار چڑھاؤ کی شرح خود بخود رسک مینجمنٹ کے مطابق ہوتی ہے۔ یہ حکمت عملی بنیادی طور پر اعلی امکانات کے الٹ جانے کے مواقع کی نشاندہی کرتی ہے جب آر ایس آئی انتہائی حد تک پہنچ جاتا ہے (آر ایس آئی ≤30 کے لئے اوور سیل ، آر ایس آئی ≥70 کے لئے اوور خرید) ، لیکن صرف اس وقت تجارت کرتے ہیں جب مارکیٹ کے حالات میڈین ریورس اسٹریٹجی کے لئے موزوں ہوں۔ کوڈ کو گہرائی سے تجزیہ کرنے سے ، ہم دیکھ سکتے ہیں کہ اس حکمت عملی کا مرکز تکنیکی اشارے اور مارکیٹ کی حالت کے تجزیے کو جوڑنے میں ہے تاکہ تجارتی فیصلوں کو بہتر بنایا جاسکے اور مختلف مارکیٹ کے حالات میں کارکردگی کو زیادہ سے زیادہ کیا جاسکے۔
اتار چڑھاؤ کی اصلاح کے لئے RSI میڈین ریٹرن ٹریڈنگ حکمت عملی کے اصول مندرجہ ذیل اہم اجزاء پر مبنی ہیں:
RSI سگنل سسٹم: 14 سائیکل RSI اشارے کا استعمال کرتے ہوئے مارکیٹ میں اوورلوڈ اور اوور سیل کی حالت کی نشاندہی کریں۔ جب RSI 30 سے کم ہوتا ہے تو ، مارکیٹ کو اوورلوڈ سمجھا جاتا ہے ، خریدنے کا اشارہ پیدا ہوتا ہے۔ جب RSI 70 سے زیادہ ہوتا ہے تو ، مارکیٹ کو اوورلوڈ سمجھا جاتا ہے ، فروخت کا اشارہ پیدا ہوتا ہے۔
رجحانات کا تجزیہ: حکمت عملی مارکیٹ کی سمت کا تعین کرنے کے لئے 50 سیکنڈ کی سادہ حرکت پذیر اوسط ((SMA) کا استعمال کرتی ہے۔ قیمتوں میں حرکت پذیر اوسط سے زیادہ بڑھتی ہوئی رجحان کی نشاندہی کی جاتی ہے ، اور قیمتوں میں حرکت پذیر اوسط سے کم گرتی ہوئی رجحان کی نشاندہی کی جاتی ہے۔ اس سے بھی اہم بات یہ ہے کہ حکمت عملی رجحان کی طاقت کا حساب لگاتی ہے ، مضبوط رجحان والے بازاروں میں تجارت سے بچنے کے لئے ((رجحان کی طاقت> 25٪) ، کیونکہ اوسطا regression حکمت عملی عام طور پر ان حالات میں خراب کارکردگی کا مظاہرہ کرتی ہے۔
مارکیٹ کی موافقت کا تجزیہکوڈ حالیہ اتار چڑھاؤ کا حساب لگاتا ہے ، اس بات کو یقینی بناتا ہے کہ مارکیٹ میں اتار چڑھاؤ کافی بڑا ہے ((دن میں اتار چڑھاؤ> 1٪) اوسط واپسی کی حکمت عملی کی حمایت کرنے کے لئے۔ حکمت عملی یہ بھی چیک کرتی ہے کہ آیا رجحان کی طاقت قابل قبول حد تک ہے ((≤ 25٪) ۔ حکمت عملی صرف اس وقت تجارت میں داخل ہونے پر غور کرتی ہے جب مارکیٹ کے حالات ان معیارات پر پورا اترتے ہوں۔
رسک مینجمنٹحکمت عملی: 20٪ اسٹاپ لاگو کریں ، اتار چڑھاؤ والے اثاثوں کی قیمتوں میں اتار چڑھاؤ کے لئے کافی جگہ فراہم کریں ، جبکہ 20٪ منافع کا ہدف طے کریں ، تاکہ 1٪ کا خطرہ / واپسی کا تناسب یقینی بنایا جاسکے۔ ہر تجارت میں 5٪ فنڈ استعمال کیا جاتا ہے ، جس میں زیادہ سے زیادہ دو پوزیشنوں پر ایک پرامڈک اضافی پوزیشن کی اجازت دی جاتی ہے تاکہ مضبوط ترتیب میں پوزیشن کو بڑھایا جاسکے۔
سگنل کی تصدیق اور باہر نکلیں: انٹری سگنل کے لئے آر ایس آئی کو انتہائی حد تک پہنچنے کی ضرورت ہے اور مارکیٹ کے حالات موزوں ہیں۔ باہر نکلنے کی شرائط میں آر ایس آئی کا الٹ ہونا ، مخالف انتہائی حد تک پہنچنا ، اسٹاپ نقصان کا محرک یا منافع کا ہدف حاصل کرنا شامل ہے۔
کوڈ کو گہرائی سے تجزیہ کرتے ہوئے ، اس حکمت عملی میں درج ذیل نمایاں فوائد ہیں:
مارکیٹ کے ماحول کے مطابق موافقتبیس آر ایس آئی حکمت عملی کے برعکس ، یہ حکمت عملی مارکیٹ کی حالت کا تجزیہ کرکے ٹریڈنگ سگنل کو فلٹر کرتی ہے ، جس سے مارکیٹ کے ماحول میں تجارت سے گریز ہوتا ہے جو اوسط واپسی کی حکمت عملی کے لئے موزوں نہیں ہے ، جس سے سگنل کے معیار میں نمایاں اضافہ ہوتا ہے۔
خطرے کے انتظام کے لئے لچکدار شرح20٪ کی حد مقرر کریں ، خاص طور پر اتار چڑھاؤ والے اثاثوں کے لئے ڈیزائن کیا گیا ہے ، تاکہ مارکیٹ میں معمول کے اتار چڑھاؤ کی وجہ سے قبل از وقت باہر نکلنے سے بچا جاسکے ، اور ساتھ ہی کافی حفاظتی اقدامات فراہم کیے جائیں۔
داخلہ کے عین مطابق شرائط: آر ایس آئی کی حد ، رجحان تجزیہ اور اتار چڑھاؤ کی جانچ پڑتال کے ساتھ مل کر ، صرف اعلی امکانات کی ترتیبات میں داخل ہونے کو یقینی بنائیں ، اور جھوٹے سگنل کو کم کریں۔
بصری فیصلہ سازی کی حمایتحکمت عملی: پس منظر کے رنگ میں تبدیلی فراہم کرتی ہے (گرین پس منظر خریدنے کے لئے موزوں علاقوں کو ظاہر کرتا ہے ، سرخ پس منظر فروخت کرنے کے لئے موزوں علاقوں کو ظاہر کرتا ہے) اور انتباہی لیبل (نارنجی انتباہ کا مطلب ہے کہ ایک مضبوط رجحان کا پتہ چلا ہے ، تجارت سے گریز کیا جانا چاہئے) ، جس سے تجارتی فیصلوں میں بصیرت میں اضافہ ہوتا ہے۔
آٹومیٹک دوستی: بلٹ ان مکمل انتباہ کی شرائط کا نظام ، خود کار طریقے سے تجارت کے نفاذ کی حمایت کرتا ہے ، بازار کی نگرانی کے بغیر۔
متحرک معلومات کا جدول: مارکیٹ کی صورتحال اور ٹریڈنگ کی حیثیت کو حقیقی وقت میں دکھاتا ہے ، جس میں موجودہ آر ایس آئی کی قیمت ، رجحان کی طاقت ، اتار چڑھاؤ اور مارکیٹ کی لچک کا جائزہ شامل ہے ، جس سے تاجروں کو مارکیٹ کا ایک جامع نقطہ نظر ملتا ہے۔
اگرچہ یہ حکمت عملی اچھی طرح سے ڈیزائن کی گئی ہے، اس کے کچھ ممکنہ خطرات ہیں:
پیرامیٹر کی حساسیت: حکمت عملی کی کارکردگی ان پٹ پیرامیٹرز پر بہت زیادہ انحصار کرتی ہے ، جیسے کہ آر ایس آئی کی لمبائی ، اوور بُوڈ اوور سیل لیول ، زیادہ سے زیادہ رجحان کی طاقت اور اتار چڑھاؤ کی حد۔ مختلف مارکیٹ کے حالات میں مختلف پیرامیٹرز کی اصلاح کی ضرورت ہوسکتی ہے ، اور غلط پیرامیٹرز حکمت عملی کی ناقص کارکردگی کا سبب بن سکتے ہیں۔
انتہائی مارکیٹ کے حالات: مارکیٹ کے خاتمے یا انتہائی اتار چڑھاؤ کے دوران ، یہاں تک کہ اگر 20٪ کی روک تھام کی گئی ہو تو ، حکمت عملی کو اسکیلپنگ کے خطرے کا سامنا کرنا پڑ سکتا ہے ، جس کی وجہ سے اصل نقصانات توقع سے زیادہ ہوجاتے ہیں۔
فنڈز کی تقسیم کا خطرہڈیفالٹ: ہر تجارت میں 5٪ فنڈ استعمال کیا جاتا ہے اور زیادہ سے زیادہ دو پوزیشنوں کی اجازت دی جاتی ہے (مجموعی طور پر 10٪) ، جو کچھ تاجروں کے لئے بہت زیادہ شدت پسند ہوسکتا ہے ، خاص طور پر جب مارکیٹ میں زیادہ اتار چڑھاؤ ہوتا ہے۔
رجحانات کا اندازہ لگانے میں تاخیر: 50 دوروں کی حرکت پذیری اوسط کا استعمال کرتے ہوئے رجحانات کا تعین کرنے میں تاخیر کا سبب بن سکتا ہے ، جس کی وجہ سے رجحانات میں تبدیلی کے وقت غلط فیصلے ہوتے ہیں۔
ضرورت سے زیادہ پیاز کا خطرہ: سخت مارکیٹ کی موافقت کی جانچ پڑتال ((کمزور رجحانات + کافی اتار چڑھاؤ) ممکنہ طور پر تجارت کے مواقع کو زیادہ سے زیادہ فلٹر کرتی ہے ، جس کی وجہ سے کچھ مارکیٹ کے ماحول میں تجارت کی کم تعدد ہوتی ہے۔
حل میں شامل ہیں: مختلف مارکیٹوں اور ٹائم فریموں کے لئے پیرامیٹرز کو بہتر بنانا؛ انتہائی مارکیٹ کے حالات میں خودکار تجارت کو روکنا؛ انفرادی خطرے کی برداشت کے مطابق فنڈز کی تقسیم کے تناسب کو ایڈجسٹ کرنا؛ رجحانات کے فیصلے میں تاخیر کو کم کرنے کے لئے کم دورانیہ والی متحرک اوسط کا استعمال کرنے پر غور کرنا؛ اور ٹریڈنگ کی کثرت کو بڑھانے کے لئے مارکیٹ کے لچکدار معیار کو مناسب طریقے سے نرمی کرنا۔
کوڈ تجزیہ کی بنیاد پر ، اس حکمت عملی کو مندرجہ ذیل سمتوں میں بہتر بنایا جاسکتا ہے۔
متحرک پیرامیٹرز ایڈجسٹمنٹ: آر ایس آئی کے اوورلوڈ اوورلوڈ تھریڈ کو متحرک متغیر کے طور پر ڈیزائن کیا گیا ہے ، جو تاریخی اتار چڑھاؤ کے مطابق خود بخود ایڈجسٹ ہوتا ہے۔ کم اتار چڑھاؤ والے ماحول میں ایک تنگ ترنگ کی حد کا استعمال کریں (جیسے 35⁄65) ، اور اعلی اتار چڑھاؤ والے ماحول میں ایک وسیع تر ترنگ کی حد کا استعمال کریں (جیسے 25⁄75) ۔ اس سے حکمت عملی کو مختلف مارکیٹ کی حالت میں بہتر طور پر ڈھالنے کی اجازت ہوگی۔
ملٹی ٹائم فریم تجزیہ: ایک سے زیادہ ٹائم فریم تصدیق کے طریقہ کار کو شامل کرنا ، جیسے مارکیٹ کی حالت کو طویل ٹائم فریم پر تصدیق کرنا ، مختصر ٹائم فریم پر انٹری سگنل کی تلاش کرنا۔ اس طریقہ کار سے سگنل کے معیار کو بہتر بنایا جاسکتا ہے اور جعلی توڑ کو کم کیا جاسکتا ہے۔
متحرک سٹاپ نقصان کی حکمت عملی:ATR ((اوسط حقیقی رینج) کی بنیاد پر اسٹاپ نقصان کی سطح مرتب کریں ، نہ کہ ایک مقررہ فیصد۔ اس سے اسٹاپ نقصان کی جگہ کو موجودہ مارکیٹ کے اتار چڑھاؤ کی حالت میں بہتر طور پر ڈھال لیا جائے گا ، اور اعلی اتار چڑھاؤ کے دوران بہت قریب سے روکنے سے بچیں گے ، یا کم اتار چڑھاؤ کے دوران بہت دور سے روکیں گے۔
کچھ منافع بخش میکانزم: مرحلہ وار منافع بخش حکمت عملی کا نفاذ کریں ، نہ کہ پوری پوزیشن 20٪ منافع کے ہدف پر نکل جائے۔ مثال کے طور پر ، 10٪ منافع پر 50٪ پوزیشن سے باہر نکلیں ، 20٪ منافع پر باقی پوزیشن سے باہر نکلیں۔ اس سے کچھ منافع کو لاک کیا جاسکتا ہے ، جبکہ باقی پوزیشنوں کو زیادہ منافع کمانے کی صلاحیت ملتی ہے۔
موسمی اور مارکیٹ کے دورانیہ تجزیہ: مارکیٹ کی موسمی اور دورانیہ تجزیہ کو مربوط کرنا ، تاریخ میں بہتر کارکردگی کا مظاہرہ کرنے والے اوقات میں اوسط واپسی کی حکمت عملی کے ساتھ تجارت کی تعدد میں اضافہ کرنا ، رجحان سازی کے اوقات میں تجارت کی تعدد کو کم کرنا یا پیرامیٹرز کو ایڈجسٹ کرنا۔
مشین لرننگ کی اصلاح: مشین لرننگ ٹکنالوجی کا استعمال کرتے ہوئے متحرک طور پر موجودہ مارکیٹ کے ماحول میں اوسط واپسی کی حکمت عملی کی کامیابی کے امکانات کی پیش گوئی کریں ، اور اسی کے مطابق انٹری کے معیار اور پوزیشن کے سائز کو ایڈجسٹ کریں۔ اس سے حکمت عملی کو مارکیٹ میں تبدیلی کے ل more زیادہ ذہانت سے اپنانے میں مدد ملے گی۔
اتار چڑھاؤ کے لئے موزوں آر ایس آئی میڈین ریٹرن ٹریڈنگ حکمت عملی ایک جامع اور ذہین تجارتی نظام ہے جس نے بنیادی آر ایس آئی حکمت عملی کی اہم خامیوں کو حل کیا ، مارکیٹ کے سیاق و سباق کے تجزیے اور اتار چڑھاؤ کے لچکدار خطرے کے انتظام کو شامل کرکے حکمت عملی کی کارکردگی کو نمایاں طور پر بہتر بنایا۔ یہ حکمت عملی خاص طور پر ان اثاثوں کے لئے موزوں ہے جن میں 1٪ سے زیادہ یومیہ اتار چڑھاؤ ہوتا ہے ، خاص طور پر زون کے اتار چڑھاؤ یا کمزور رجحان کی منڈیوں میں۔
حکمت عملی کا بنیادی فائدہ اس کے ذہین مارکیٹ فلٹرنگ میکانزم میں ہے جو سگنل صرف اس وقت پیدا کرتا ہے جب مارکیٹ کے حالات تجارت کے لئے موزوں ہوں اور مناسب خطرے کے انتظام کے اقدامات کے ذریعہ فنڈز کی حفاظت کریں۔ اس کے ساتھ ہی ، ایک مکمل بصری نظام اور انفارمیشن ٹیبل مارکیٹ کی صورتحال کا واضح جائزہ فراہم کرتا ہے ، جس سے زیادہ سمجھدار تجارتی فیصلے کرنے میں مدد ملتی ہے۔
اگرچہ کچھ خطرات اور اصلاحات کی گنجائش موجود ہے ، لیکن اس حکمت عملی کا بنیادی ڈیزائن مضبوط ہے اور تجویز کردہ اصلاح کی سمت سے اس کی موافقت اور کارکردگی کو مارکیٹ کے مختلف ماحول میں مزید بہتر بنایا جاسکتا ہے۔ یہ ایک قیمتی حکمت عملی کا فریم ورک ہے جو تاجروں کے لئے ہے جو اتار چڑھاؤ والی منڈیوں میں اوسط واپسی کے مواقع پر قبضہ کرنا چاہتے ہیں۔
/*backtest
start: 2024-06-23 00:00:00
end: 2025-06-21 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"DOGE_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © cindycrijns
//@version=6
strategy("RSI Mean Reversion", shorttitle="RSI_MR2", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=5, pyramiding=2)
// Input parameters
rsiLength = input.int(14, "RSI Length")
rsiOversold = input.int(30, "RSI Oversold Level")
rsiOverbought = input.int(70, "RSI Overbought Level")
riskPercent = input.float(20.0, "Max Loss Per Trade (%)", minval=1.0, maxval=50.0)
profitTarget = input.float(20.0, "Profit Target (%)", minval=5.0, maxval=100.0)
// Trend analysis parameters
maLength = input.int(50, "Moving Average Length")
trendStrengthPeriod = input.int(20, "Trend Strength Period")
maxTrendStrength = input.float(25.0, "Max Trend Strength % (avoid above this)", minval=5.0, maxval=50.0)
// Calculate indicators
rsi = ta.rsi(close, rsiLength)
ma = ta.sma(close, maLength)
// Trend analysis
trendStrength = math.abs(close - close[trendStrengthPeriod]) / close[trendStrengthPeriod] * 100
isStrongTrend = trendStrength > maxTrendStrength
isUptrend = close > ma
isDowntrend = close < ma
isWeakTrend = trendStrength <= maxTrendStrength
// Market suitability check
priceAboveMA = close > ma
priceBelowMA = close < ma
recentVolatility = ta.stdev(ta.change(close), 20) / close * 100
isVolatileEnough = recentVolatility > 1.0 // At least 1% daily volatility
// Suitability for mean reversion strategy
isSuitableForStrategy = isWeakTrend and isVolatileEnough
// Enhanced RSI signals with trend filtering
longCondition = rsi <= rsiOversold and (isUptrend or isWeakTrend) and isSuitableForStrategy
shortCondition = rsi >= rsiOverbought and (isDowntrend or isWeakTrend) and isSuitableForStrategy
// Exit conditions
longExitCondition = rsi >= rsiOverbought
shortExitCondition = rsi <= rsiOversold
// Prevent overlapping trades
validLong = longCondition and strategy.position_size == 0
validShort = shortCondition and strategy.position_size == 0
// Strategy entries
if validLong
strategy.entry("Long", strategy.long, comment="RSI Oversold Buy")
if validShort
strategy.entry("Short", strategy.short, comment="RSI Overbought Sell")
// Risk management variables
var float entryPrice = na
var float stopLossPrice = na
var float profitTargetPrice = na
// Set levels when entering a trade
if strategy.position_size != 0 and na(entryPrice)
entryPrice := strategy.position_avg_price
stopLossPrice := strategy.position_size > 0 ? entryPrice * (1 - riskPercent/100) : entryPrice * (1 + riskPercent/100)
profitTargetPrice := strategy.position_size > 0 ? entryPrice * (1 + profitTarget/100) : entryPrice * (1 - profitTarget/100)
// Stop Loss
if strategy.position_size > 0 and close <= stopLossPrice
strategy.close("Long", comment="Stop Loss")
entryPrice := na
if strategy.position_size < 0 and close >= stopLossPrice
strategy.close("Short", comment="Stop Loss")
entryPrice := na
// Profit Target - Close 100% at 20% profit
if strategy.position_size > 0 and close >= profitTargetPrice
strategy.close("Long", comment="20% Profit Target")
entryPrice := na
if strategy.position_size < 0 and close <= profitTargetPrice
strategy.close("Short", comment="20% Profit Target")
entryPrice := na
// Signal-based exits (RSI reversal)
if longExitCondition and strategy.position_size > 0
strategy.close("Long", comment="RSI Exit")
entryPrice := na
if shortExitCondition and strategy.position_size < 0
strategy.close("Short", comment="RSI Exit")
entryPrice := na
// Reset variables when position is closed
if strategy.position_size == 0
entryPrice := na
stopLossPrice := na
profitTargetPrice := na
// Plot moving average and trend analysis
plot(ma, color=isUptrend ? color.green : color.red, linewidth=2, title="Trend MA")
plot(rsi, title="RSI", display=display.none) // Hidden plot for alerts
// Plot signals
plotshape(validLong, style=shape.labelup, location=location.belowbar, color=color.green, text="BUY", title="Long Signal")
plotshape(validShort, style=shape.labeldown, location=location.abovebar, color=color.red, text="SELL", title="Short Signal")
// Plot risk management levels
plot(strategy.position_size != 0 ? stopLossPrice : na, color=color.red, linewidth=1, title="Stop Loss", style=plot.style_linebr)
plot(strategy.position_size != 0 ? profitTargetPrice : na, color=color.green, linewidth=1, title="20% Profit Target", style=plot.style_linebr)
// Background colors for market conditions
bgcolor(rsi <= rsiOversold and isSuitableForStrategy ? color.new(color.green, 90) : na, title="Good Buy Zone")
bgcolor(rsi >= rsiOverbought and isSuitableForStrategy ? color.new(color.red, 90) : na, title="Good Sell Zone")
bgcolor(isStrongTrend ? color.new(color.orange, 95) : na, title="Strong Trend - Avoid Trading")
// Warning labels for unsuitable conditions
plotshape(isStrongTrend and (rsi <= rsiOversold or rsi >= rsiOverbought),
style=shape.xcross, location=location.top, color=color.orange,
text="AVOID\nSTRONG TREND", title="Avoid Strong Trend Warning", size=size.small)
plotshape(not isVolatileEnough and (rsi <= rsiOversold or rsi >= rsiOverbought),
style=shape.diamond, location=location.top, color=color.gray,
text="LOW VOL", title="Low Volatility Warning", size=size.tiny)
// Enhanced info table with market analysis
if strategy.position_size != 0 or not isSuitableForStrategy
var table infoTable = table.new(position.top_right, 2, 7, bgcolor=color.white, border_width=1)
table.cell(infoTable, 0, 0, "Position", text_color=color.black, bgcolor=color.gray)
table.cell(infoTable, 1, 0, strategy.position_size > 0 ? "LONG" : strategy.position_size < 0 ? "SHORT" : "NONE", text_color=color.black)
table.cell(infoTable, 0, 1, "RSI", text_color=color.black, bgcolor=color.gray)
table.cell(infoTable, 1, 1, str.tostring(rsi, "#.##"), text_color=color.black)
table.cell(infoTable, 0, 2, "Trend Strength", text_color=color.black, bgcolor=color.gray)
table.cell(infoTable, 1, 2, str.tostring(trendStrength, "#.##") + "%",
text_color=isStrongTrend ? color.red : color.green)
table.cell(infoTable, 0, 3, "Volatility", text_color=color.black, bgcolor=color.gray)
table.cell(infoTable, 1, 3, str.tostring(recentVolatility, "#.##") + "%",
text_color=isVolatileEnough ? color.green : color.red)
table.cell(infoTable, 0, 4, "Market Status", text_color=color.black, bgcolor=color.gray)
table.cell(infoTable, 1, 4, isSuitableForStrategy ? "GOOD FOR MR" : "AVOID TRADING",
text_color=isSuitableForStrategy ? color.green : color.red)
table.cell(infoTable, 0, 5, "Target", text_color=color.black, bgcolor=color.gray)
table.cell(infoTable, 1, 5, strategy.position_size != 0 ? str.tostring(profitTargetPrice, "#.###") : "N/A", text_color=color.green)
table.cell(infoTable, 0, 6, "P&L", text_color=color.black, bgcolor=color.gray)
table.cell(infoTable, 1, 6, strategy.position_size != 0 ? str.tostring(strategy.openprofit, "#.##") : "N/A",
text_color=strategy.openprofit >= 0 ? color.green : color.red)
// Alert conditions for automated trading
alertcondition(validLong, title="RSI Buy Signal",
message='BUY {{ticker}} at {{close}} - RSI: {{plot_0}} - Strategy: RSI_MR')
alertcondition(validShort, title="RSI Sell Signal",
message='SELL {{ticker}} at {{close}} - RSI: {{plot_0}} - Strategy: RSI_MR')
alertcondition(strategy.position_size > 0 and close >= profitTargetPrice, title="Long Profit Target",
message='CLOSE LONG {{ticker}} at {{close}} - Profit Target Hit')
alertcondition(strategy.position_size < 0 and close <= profitTargetPrice, title="Short Profit Target",
message='CLOSE SHORT {{ticker}} at {{close}} - Profit Target Hit')
alertcondition(strategy.position_size > 0 and close <= stopLossPrice, title="Long Stop Loss",
message='CLOSE LONG {{ticker}} at {{close}} - Stop Loss Hit')
alertcondition(strategy.position_size < 0 and close >= stopLossPrice, title="Short Stop Loss",
message='CLOSE SHORT {{ticker}} at {{close}} - Stop Loss Hit')