
یہ حکمت عملی ایک جامع مقداری تجارتی نظام ہے جس کی بنیاد رشتہ دار طاقت انڈیکس (RSI)، ایکسپونینشل موونگ ایوریج (EMA) اور ایوریج ٹرو رینج (ATR) پر ہے۔ حکمت عملی RSI کو ہموار کرنے کے لیے EMA کا استعمال کرتی ہے، کلیدی سطحوں پر RSI بریک تھرو سگنلز کے ذریعے لین دین کو متحرک کرتی ہے، اور مؤثر رسک کنٹرول حاصل کرنے کے لیے اسٹاپ لاس اور ٹیک-پرافٹ کی سطح کو متحرک طور پر سیٹ کرنے کے لیے ATR کا استعمال کرتی ہے۔ ایک ہی وقت میں، حکمت عملی میں تجارتی سگنلوں کی گنتی اور ریکارڈنگ کا کام بھی شامل ہے، جو تاجروں کو حکمت عملیوں کو بیک ٹیسٹ اور بہتر بنانے میں مدد کرتا ہے۔
حکمت عملی کی بنیادی منطق میں درج ذیل اہم حصے شامل ہیں:
یہ حکمت عملی تین کلاسک تکنیکی اشارے: RSI، EMA اور ATR کو ملا کر ایک مکمل مقداری تجارتی نظام بناتی ہے۔ سگنل جنریشن، رسک کنٹرول اور لین دین پر عمل درآمد کے حوالے سے حکمت عملی انتہائی عملی ہے۔ مسلسل اصلاح اور بہتری کے ذریعے، حکمت عملی سے حقیقی تجارت میں مستحکم کارکردگی کی توقع کی جاتی ہے۔ تاہم، صارفین کو حکمت عملی کی کارکردگی پر مارکیٹ کے ماحول کے اثرات پر توجہ دینے کی ضرورت ہے، مناسب طریقے سے پیرامیٹرز مرتب کریں، اور رسک کنٹرول کا اچھا کام کریں۔
/*backtest
start: 2019-12-23 08:00:00
end: 2025-01-04 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=6
strategy("RSI Trading Strategy with EMA and ATR Stop Loss/Take Profit", overlay=true)
length = input.int(14, minval=1, title="RSI Length")
src = input(close, title="Source")
rsi = ta.rsi(src, length)
smoothingLength = input.int(14, minval=1, title="Smoothing Length")
smoothedRsi = ta.ema(rsi, smoothingLength) // استفاده از EMA برای صاف کردن RSI
atrLength = input.int(14, title="ATR Length")
atrMultiplier = input.float(1, title="ATR Multiplier")
atrValue = ta.atr(atrLength) // محاسبه ATR
level1 = 30
level2 = 70
// تنظیمات استراتژی
var table crossingTable = table.new(position.top_right, 2, 5, border_width=1)
var int crossCount = 0
var float crossPrice = na
// شرط ورود به معامله خرید زمانی که RSI از سطح 70 به بالا عبور میکند
if (ta.crossover(smoothedRsi, level2))
strategy.entry("Long", strategy.long)
// تنظیم حد سود و حد ضرر
strategy.exit("Take Profit/Stop Loss", "Long", stop=close - atrMultiplier * atrValue, limit=close + atrMultiplier * atrValue, comment="")
crossCount := crossCount + 1
crossPrice := close
// شرط ورود به معامله فروش زمانی که RSI از سطح 70 به پایین عبور میکند
if (ta.crossunder(smoothedRsi, level2))
strategy.entry("Short", strategy.short)
// تنظیم حد سود و حد ضرر
strategy.exit("Take Profit/Stop Loss", "Short", stop=close + atrMultiplier * atrValue, limit=close - atrMultiplier * atrValue, comment="")
crossCount := crossCount + 1
crossPrice := close
// شرط ورود به معامله خرید زمانی که RSI از سطح 30 به بالا عبور میکند
if (ta.crossover(smoothedRsi, level1))
strategy.entry("Long", strategy.long)
// تنظیم حد سود و حد ضرر
strategy.exit("Take Profit/Stop Loss", "Long", stop=close - atrMultiplier * atrValue, limit=close + atrMultiplier * atrValue, comment="")
crossCount := crossCount + 1
crossPrice := close
// شرط ورود به معامله فروش زمانی که RSI از سطح 30 به پایین عبور میکند
if (ta.crossunder(smoothedRsi, level1))
strategy.entry("Short", strategy.short)
// تنظیم حد سود و حد ضرر
strategy.exit("Take Profit/Stop Loss", "Short", stop=close + atrMultiplier * atrValue, limit=close - atrMultiplier * atrValue, comment="")
crossCount := crossCount + 1
crossPrice := close
if (not na(crossPrice))
table.cell(crossingTable, 0, crossCount % 5, text=str.tostring(crossCount), bgcolor=color.green)
table.cell(crossingTable, 1, crossCount % 5, text=str.tostring(crossPrice), bgcolor=color.green)
// ترسیم خطوط و مقادیر RSI
plot(smoothedRsi, title="Smoothed RSI", color=color.blue)
hline(level1, "Level 30", color=color.red)
hline(level2, "Level 70", color=color.green)