
یہ حکمت عملی ایک رجحان ٹریڈنگ سسٹم ہے جو ایک مضبوط اور نسبتا weak کمزور اشارے ((RSI) پر مبنی ہے۔ یہ RSI کے بہتر ورژن کا حساب کتاب کرکے اور اس کی سگنل لائنوں کے ساتھ مل کر ، مختلف مارکیٹ کے ادوار میں رجحان الٹ جانے کے مواقع پر قبضہ کرتا ہے۔ حکمت عملی نہ صرف اشارے کی قیمت کا حساب کرتی ہے ، بلکہ بصری طور پر اوور بیئر اور اوور سیل زون کی نمائش کے ذریعہ ، تاجر کو مارکیٹ کی حالت کا زیادہ بصری انداز میں فیصلہ کرنے میں مدد دیتی ہے۔
اس حکمت عملی کا بنیادی اصول مارکیٹ کے رجحانات کی نشاندہی کرنا ہے جس میں RSI ((ARSI) کا حساب کتاب کیا جاتا ہے۔ اس میں شامل ہیں:
یہ ایک منظم ، منطقی اور واضح رجحان کی پیروی کرنے والی حکمت عملی ہے۔ یہ ایک قابل اعتماد تجارتی نظام تشکیل دیتا ہے جس میں متعدد تکنیکی اشارے کے فوائد کے ساتھ مل کر ، RSI کو بڑھانے کے لئے جدید حساب کتاب کے طریقوں کا استعمال کیا جاتا ہے۔ اگرچہ اس میں کچھ موروثی خطرات موجود ہیں ، لیکن معقول اصلاح اور خطرے کے انتظام کے اقدامات کے ذریعہ ، اس حکمت عملی میں عملی کے استعمال کے اچھے امکانات ہیں۔ یہ مشورہ دیا جاتا ہے کہ جب تاجر اس کا استعمال کرتا ہے تو ، اس کے پیرامیٹرز کی ترتیبات کو اچھی طرح سے جانچنے کی ضرورت ہوتی ہے اور مارکیٹ کے ماحول کے مطابق حکمت عملی کی تشکیل کو مناسب طریقے سے ایڈجسٹ کیا جاسکتا ہے۔
/*backtest
start: 2024-02-19 00:00:00
end: 2025-02-16 08:00:00
period: 4h
basePeriod: 4h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=6
strategy("Ultimate RSI [LuxAlgo] Strategy", shorttitle="ULT RSI Strat", overlay=false, initial_capital=10000, currency=currency.USD, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
//------------------------------------------------------------------------------
// Settings
//------------------------------------------------------------------------------
length = input.int(14, minval=2, title="RSI Length")
smoType1 = input.string("RMA", title="Method", options=["EMA", "SMA", "RMA", "TMA"])
src = input(close, title="Source")
arsiCss = input.color(color.silver, "RSI Color", inline="rsicss")
autoCss = input.bool(true, "Auto", inline="rsicss")
// Signal Line settings
smooth = input.int(14, minval=1, title="Signal Smooth", group="Signal Line")
smoType2 = input.string("EMA", title="Method", options=["EMA", "SMA", "RMA", "TMA"], group="Signal Line")
signalCss = input.color(color.new(#ff5d00, 0), "Signal Color", group="Signal Line")
// Overbought/Oversold style
obValue = input.float(80, "Overbought", inline="ob", group="OB/OS Style")
obCss = input.color(color.new(#089981, 0), "", inline="ob", group="OB/OS Style")
obAreaCss = input.color(color.new(#089981, 80), "", inline="ob", group="OB/OS Style")
osValue = input.float(20, "Oversold", inline="os", group="OB/OS Style")
osCss = input.color(color.new(#f23645, 0), "", inline="os", group="OB/OS Style")
osAreaCss = input.color(color.new(#f23645, 80), "", inline="os", group="OB/OS Style")
//------------------------------------------------------------------------------
// Function: Moving Average (selectable type)
//------------------------------------------------------------------------------
ma(x, len, maType)=>
switch maType
"EMA" => ta.ema(x, len)
"SMA" => ta.sma(x, len)
"RMA" => ta.rma(x, len)
"TMA" => ta.sma(ta.sma(x, len), len)
//------------------------------------------------------------------------------
// Augmented RSI Calculation
//------------------------------------------------------------------------------
upper = ta.highest(src, length)
lower = ta.lowest(src, length)
r = upper - lower
d = src - src[1]
diff = upper > upper[1] ? r : lower < lower[1] ? -r : d
num = ma(diff, length, smoType1)
den = ma(math.abs(diff), length, smoType1)
arsi = den != 0 ? num / den * 50 + 50 : 50 // safeguard against division by zero
signal = ma(arsi, smooth, smoType2)
//------------------------------------------------------------------------------
// Strategy Entry Conditions
//------------------------------------------------------------------------------
// Long entry: Ultimate RSI crosses above its signal when it is below 50 (lower half)
// Short entry: Ultimate RSI crosses below its signal when it is above 50 (upper half)
longCondition = ta.crossover(arsi, signal) and arsi < 50
shortCondition = ta.crossunder(arsi, signal) and arsi > 50
// Close opposite positions when conditions occur
if shortCondition
strategy.close("Long")
if longCondition
strategy.close("Short")
// Place new entries based on the conditions
if longCondition
strategy.entry("Long", strategy.long)
if shortCondition
strategy.entry("Short", strategy.short)
// //------------------------------------------------------------------------------
// // Plots and Constant Lines
// //------------------------------------------------------------------------------
// // Plot the Ultimate RSI and its Signal
// plot_rsi = plot(arsi, title="Ultimate RSI",
// color = arsi > obValue ? obCss : arsi < osValue ? osCss : autoCss ? chart.fg_color : arsiCss,
// linewidth=2)
// plot(signal, title="Signal Line", color=signalCss, linewidth=2)
// // Instead of using hline, create constant plots for OB, Midline, and OS
// plot_ob = plot(obValue, title="Overbought", color=obCss, style=plot.style_line, linewidth=1)
// plot_mid = plot(50, title="Midline", color=color.gray, style=plot.style_line, linewidth=1)
// plot_os = plot(osValue, title="Oversold", color=osCss, style=plot.style_line, linewidth=1)
// //------------------------------------------------------------------------------
// // Fill OB/OS Areas for Visual Clarity
// //------------------------------------------------------------------------------
// fill(plot_rsi, plot_ob, color=arsi > obValue ? obAreaCss : na)
// fill(plot_os, plot_rsi, color=arsi < osValue ? osAreaCss : na)