آر ایس آئی پر مبنی آٹو ٹریڈنگ کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-02-29 14:14:01
ٹیگز:

img

جائزہ

یہ حکمت عملی آر ایس آئی اشارے پر مبنی طویل اور مختصر پوزیشنوں دونوں کے لئے ایک خودکار تجارتی نظام تیار کرتی ہے۔ جب آر ایس آئی زیادہ خرید یا زیادہ فروخت کی سطح دکھاتا ہے تو وہ تجارت میں داخل ہوتا ہے ، اور مخصوص حالات کی وجہ سے اسٹاپ نقصانات کے ساتھ باہر نکل جاتا ہے۔

حکمت عملی منطق

یہ حکمت عملی اوور بکڈ / اوور سیلڈ مارکیٹ کے حالات کی نشاندہی کرنے کے لئے آر ایس آئی اشارے کا استعمال کرتی ہے۔ خاص طور پر ، جب آر ایس آئی اوور سیلڈ لائن سے نیچے آجاتا ہے تو ، یہ لمبی پوزیشنوں میں داخل ہوتا ہے۔ جب آر ایس آئی اوور بکڈ لائن سے تجاوز کرتا ہے تو ، یہ مختصر پوزیشنوں میں داخل ہوتا ہے۔

اس کے علاوہ ، حکمت عملی میں باہر نکلنے کے قواعد مرتب کیے گئے ہیں۔ اگر لانگ پوزیشن کھولنے کے بعد ، اگر آر ایس آئی ایک بار پھر اوور بُک لائن سے تجاوز کرتا ہے تو ، یہ لانگ کو بند کرنے کے لئے اسٹاپ نقصانات کو متحرک کرے گا۔ اسی طرح ، شارٹس کھولنے کے بعد ، اگر آر ایس آئی ایک بار پھر اوور سیل لائن سے نیچے عبور کرتا ہے تو ، یہ شارٹس کو بند کردے گا۔

فوائد کا تجزیہ

اس حکمت عملی کا سب سے بڑا فائدہ یہ ہے کہ اوور بُک / اوور سیلڈ منظرناموں کا فیصلہ کرنے کے لئے آر ایس آئی اشارے کا استعمال کیا جاتا ہے ، جو کہ مقداری تجارت میں نسبتا mature پختہ اور قابل اعتماد تکنیکی تجزیہ کا طریقہ ہے۔ سادہ حرکت پذیر اوسط حکمت عملیوں کے مقابلے میں ، یہ حکمت عملی مارکیٹ کے موڑ کے مقامات کو زیادہ درست طریقے سے پکڑ سکتی ہے ، اس طرح تجارتی نظام کی منافع کی صلاحیت میں اضافہ ہوتا ہے۔

اس کے علاوہ ، اسٹاپ نقصان کا طریقہ کار مضبوط یکطرفہ رجحانات کے دوران نیچے کی طرف کے خطرے کو مؤثر طریقے سے کنٹرول کرتا ہے ، جو روایتی رجحانات کی پیروی کرنے والی حکمت عملیوں کے برعکس ہے جہاں دوڑنے والے آسانی سے پریشانی میں پڑ سکتے ہیں۔

خطرے کا تجزیہ

سب سے بڑا خطرہ یہ ہے کہ آر ایس آئی اشارے کبھی کبھار غلط تجارتی سگنل دے سکتا ہے۔ آر ایس آئی سمیت مارکیٹ کی نقل و حرکت کی پیش گوئی کرنے میں کوئی تکنیکی اشارے 100٪ درست نہیں ہوسکتا ہے۔ جب آر ایس آئی زیادہ خرید / زیادہ فروخت کی حیثیت پر غلط فیصلے کرتا ہے تو ، اس سے حکمت عملی کے لئے غلط اندراجات پیدا ہوں گے۔

اس طرح کے خطرے کو کم کرنے کے لئے ، اسٹاپ نقصانات کو حکمت عملی میں نافذ کیا جاتا ہے۔ لیکن مضبوط رجحانات کے دوران اسٹاپ نقصانات کو متحرک کرنے کی مشکلات اب بھی زیادہ ہوسکتی ہیں ، اور غلط پوزیشنوں کو بند کرنے کے لئے دستی مداخلت کی ضرورت ہوگی۔ عام طور پر ، خودکار نظام کو زیادہ سے زیادہ کارکردگی حاصل کرنے کے ل human انسانی نگرانی اور ایڈجسٹمنٹ کی ضرورت ہے۔

اصلاح کی ہدایات

مزید اصلاحات کے لئے گنجائش باقی ہے:

  1. داخلہ سگنل کی تصدیق اور صرف RSI سے غلط اندراجات سے بچنے کے لئے دیگر اشارے شامل کریں۔ حرکت پذیر اوسط وغیرہ شامل کیے جاسکتے ہیں۔

  2. RSI پیرامیٹرز کو بہتر بنانے کے لئے بہتر لمبائی کی اقدار کو زیادہ درست خریدا / oversold پتہ لگانے کے لئے تلاش کریں.

  3. نقصانات کی روک تھام اور قبل از وقت باہر نکلنے سے بچنے کے درمیان توازن کے لئے سٹاپ نقصان کی جگہ کو ٹھیک کریں.

نتیجہ

مجموعی طور پر ، آر ایس آئی پر مبنی اس خودکار تجارتی حکمت عملی کا فائدہ یہ ہے کہ اس سے زیادہ خریدنے اور زیادہ فروخت ہونے والی مارکیٹ کی حالتوں کی مؤثر طریقے سے نشاندہی کی جاسکتی ہے۔ انتہائی آر ایس آئی کی سطح کے دوران طویل اور مختصر پوزیشنوں میں داخل ہو کر ، اس کا مقصد مارکیٹ کے الٹ سے فائدہ اٹھانا ہے۔ اسٹاپ نقصان کا طریقہ کار مضبوط یکطرفہ رجحانات کے دوران نقصانات کو محدود کرنے میں بھی مدد کرتا ہے۔ تاہم ، آر ایس آئی سگنلز کی غلط تشخیص کا خطرہ برقرار رہتا ہے۔ تصدیق کرنے والے اشارے ، آر ایس آئی پیرامیٹرز اور اسٹاپ نقصان کی جگہ پر مزید اصلاحات سے حکمت عملی کی منافع بخش اور رسک کنٹرول میں اضافہ ہوسکتا ہے۔ تمام خودکار نظاموں کی طرح ، خصوصی مارکیٹ کی صورتحال میں مداخلت کے لئے بھی انسانی نگرانی کی ضرورت ہے۔


/*backtest
start: 2023-02-22 00:00:00
end: 2024-02-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=4

strategy("Soran Strategy 2 - LONG SIGNALS", pyramiding=1, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=50, overlay=false)


// ----------------- Inputs ----------------- //

reso = input(title="Resolution", type=input.resolution, defval="")
length = input(20, title="RSI Length", type=input.integer)
ovrsld = input(30, "RSI Oversold level", type=input.float)
ovrbgt = input(85, "RSI Overbought level", type=input.float)
lateleave = input(28, "Number of candles", type=input.integer)
// lateleave : numbers of bars in overbought/oversold zones where the position is closed. The position is closed when this number is reached or when the zone is left (the first condition).

// best parameters BTCUSDTPERP M15 : 20 / 30 / 85 / 28


stratbull = input(title="Enter longs ?", type = input.bool, defval=true)
stratbear = input(title="Enter shorts ?", type = input.bool, defval=true)

stratyear = input(2020, title = "Strategy Start Year")
stratmonth = input(1, title = "Strategy Start Month")
stratday = input(1, title = "Strategy Start Day")
stratstart = timestamp(stratyear,stratmonth,stratday,0,0)


// --------------- Laguerre ----------------- //

laguerre = input(title="Use Laguerre on RSI ?", type=input.bool, defval=false)
gamma = input(0.06, title="Laguerre Gamma")

laguerre_cal(s,g) =>
    l0 = 0.0
    l1 = 0.0
    l2 = 0.0
    l3 = 0.0
    l0 := (1 - g)*s+g*nz(l0[1])
    l1 := -g*l0+nz(l0[1])+g*nz(l1[1])
    l2 := -g*l1+nz(l1[1])+g*nz(l2[1])
    l3 := -g*l2+nz(l2[1])+g*nz(l3[1])
    (l0 + 2*l1 + 2*l2 + l3)/6


// ---------------- Rsi VWAP ---------------- //

rsiV = security(syminfo.tickerid, reso, rsi(vwap(close), length))

rsiVWAP = laguerre ? laguerre_cal(rsiV,gamma) : rsiV


// ------------------ Plots ----------------- //

prsi = plot(rsiVWAP, color = rsiVWAP>ovrbgt ? color.red : rsiVWAP<ovrsld ? color.green : color.white, title="RSI on VWAP", linewidth=1, style=plot.style_line)
hline = plot(ovrbgt, color = color.gray, style=plot.style_line)
lline = plot(ovrsld, color = color.gray, style=plot.style_line)
fill(prsi,hline, color = rsiVWAP > ovrbgt ? color.red : na, transp = 30)
fill(prsi,lline, color = rsiVWAP < ovrsld ? color.green : na, transp = 30)


// ---------------- Positions: only shows Buy and close Buy positions --------------- //

timebull = stratbull 
timebear = stratbear 

strategy.entry("Long", true, when = timebull and crossover(rsiVWAP, ovrsld), comment="")
strategy.close("Long", when = timebull and crossover(rsiVWAP, ovrbgt)[lateleave] or crossunder(rsiVWAP, ovrbgt), comment="")


مزید