آر ایس آئی ڈائیورجنسی ٹریڈنگ حکمت عملی آر ایس آئی اشارے اور قیمت کی نقل و حرکت کے مابین اختلافات کی نشاندہی کرکے خرید و فروخت کے سگنل پیدا کرتی ہے۔ اس حکمت عملی میں خطرات کو موثر انداز میں سنبھالنے کے لئے اسٹاپ نقصان ، منافع اور ٹریلنگ اسٹاپ نقصان بھی شامل ہے۔
یہ حکمت عملی بنیادی طور پر تجارتی مواقع کی نشاندہی کرنے کے لئے آر ایس آئی اشارے میں اختلافات کا استعمال کرتی ہے۔ خاص طور پر ، حکمت عملی پہلے ایک خاص مدت کے دوران آر ایس آئی کی اقدار کا حساب لگاتی ہے ، پھر آر ایس آئی اشارے اور قیمت دونوں کے لئے رجحان لائنوں کا نقشہ بناتی ہے۔ جب آر ایس آئی لائن قیمت کی لائن سے انحراف کرتی ہے ، یعنی قیمت گرنے کے دوران آر ایس آئی بڑھتی ہے ، یا قیمت بڑھنے کے دوران آر ایس آئی گرتی ہے ، تو حکمت عملی اسے قریب آنے والے رجحان کی تبدیلی کی علامت کے طور پر لیتی ہے اور تجارتی سگنل تیار کرتی ہے۔
اگر حکمت عملی قیمت کی لائن کو ٹاپ کرتے ہوئے آر ایس آئی لائن کی نچلی سطح کا پتہ لگاتی ہے تو ، خرید کا سگنل تیار کیا جاتا ہے۔ اگر قیمت کی لائن ٹاپ ہوتی ہے جبکہ آر ایس آئی لائن ٹاپ ہوتی ہے تو ، فروخت کا سگنل تیار کیا جاتا ہے۔ ایک بار جب تجارتی سگنل آتا ہے تو ، حکمت عملی آر ایس آئی ویلیو سائز کے مطابق تجارت کرسکتی ہے۔
اس کے علاوہ ، اس حکمت عملی میں اسٹاپ نقصان ، منافع اور ٹریلنگ اسٹاپ نقصان کی خصوصیات ہیں۔ اسٹاپ نقصان نیچے والے خطرات کو کنٹرول کرتا ہے ، منافع میں منافع کو مقفل کرتا ہے ، اور ٹریلنگ اسٹاپ منافع کو چلانے کی اجازت دیتا ہے۔ یہ ترتیبات ہر تجارت کے لئے خطرات کو مؤثر طریقے سے سنبھالتی ہیں۔
RSI متغیر ٹریڈنگ کی حکمت عملی میں مندرجہ ذیل فوائد ہیں:
آر ایس آئی کے اختلافات کا پتہ لگانے سے رجحان کی تبدیلیوں کا ابتدائی طور پر پتہ چل سکتا ہے۔
آر ایس آئی کا وسیع پیمانے پر استعمال کیا جاتا ہے اور زیادہ تر تجارتی پلیٹ فارمز میں دستیاب ہے۔ اس حکمت عملی کی اعلی اطلاق ہے۔
RSI پیرامیٹرز لچکدار ہیں اور مختلف مارکیٹ کے حالات کے لئے ایڈجسٹ کیا جا سکتا ہے.
سٹاپ نقصان، منافع لے اور پیچھے سٹاپ نقصان کنٹرول مؤثر طریقے سے خطرہ.
حکمت عملی میں معتدل سگنل فریکوئنسی ہے، زیادہ تجارت سے بچنے کے لئے.
منطق سادہ ہے اور آٹومیشن کے لیے پروگرام کرنا آسان ہے۔
اس حکمت عملی میں کچھ خطرات بھی ہیں:
آر ایس آئی کے اختلافات مکمل طور پر قابل اعتماد نہیں ہیں اور غلط سگنل پیدا کرسکتے ہیں۔ دوسرے فلٹرز کی ضرورت ہے۔
مضبوط رجحانات والے بازاروں میں اختلافات ناکام ہوسکتے ہیں ، جس سے گریز کیا جانا چاہئے۔
RSI کے ناقص پیرامیٹرز کارکردگی کو متاثر کرسکتے ہیں۔ بہت کم مدت میں کثرت اور خطرہ بڑھ جاتا ہے۔
سٹاپ نقصان کی حد بہت سخت ہے اس سے منافع کم ہوتا ہے ۔ بہت چھوٹا خطرہ محدود کرنے میں ناکام رہتا ہے۔ ٹھیک ٹھیک کرنے کی ضرورت ہے۔
ٹریلنگ اسٹاپ غیر مستحکم مارکیٹوں کے دوران قبل از وقت رک سکتا ہے۔ اتار چڑھاؤ کو مدنظر رکھتے ہوئے معقول ٹریلنگ چوڑائی کی ضرورت ہے۔
خطرات کو مندرجہ ذیل طریقوں سے کم کیا جاسکتا ہے:
سگنل فلٹر کرنے اور جھوٹے سگنل کو کم کرنے کے لئے MACD، بولنگر بینڈ جیسے دیگر اشارے شامل کرنا۔
اسٹریٹجی کا استعمال صرف رینج سے منسلک ضمنی بازاروں کے دوران کریں، مضبوط رجحانات سے بچیں.
آر ایس آئی پیرامیٹرز کو بہتر بنانا ، بہترین نظرثانی کے ادوار کا انتخاب مختلف مارکیٹوں کے لئے پیرامیٹرز کی جانچ کرنا۔
معقول سٹاپ نقصان کا تعین اور تاریخی بیک ٹسٹنگ کی بنیاد پر منافع کی سطح لے.
مارکیٹ کی اتار چڑھاؤ اور خطرے کی خواہش کی بنیاد پر پیچھے رکنے کا فاصلہ ایڈجسٹ کرنا۔
اسٹریٹیجی کو مندرجہ ذیل پہلوؤں میں بہتر بنایا جاسکتا ہے:
سگنلز کو فلٹر کرنے اور قابل اعتماد کو بہتر بنانے کے لئے دیگر اشارے شامل کریں.
آر ایس آئی پیرامیٹرز کو خودکار طور پر بہتر بنانے کے لیے مشین لرننگ کا استعمال کریں۔
مارکیٹ کے نظام کے مطابق متحرک سٹاپ نقصان الگورتھم ڈیزائن کریں. رینج کے لئے وسیع سٹاپ، رجحان مارکیٹوں کے لئے تنگ سٹاپ.
پوزیشن کے سائز کو ایڈجسٹ کرنے کے لئے اتار چڑھاؤ پر مبنی متحرک پوزیشن سائزنگ ماڈل بنائیں۔
قیمتوں میں اتار چڑھاؤ کی بنیاد پر ٹریل فاصلے کو مقرر کرنے کے لئے ٹریل اسٹاپ میں اتار چڑھاؤ متعارف کرایا.
فاریکس اور کریپٹو کرنسیوں کی طرح دیگر مارکیٹوں میں حکمت عملی کو تعینات کریں.
آٹومیشن کے لیے ایک مقداری تجارتی نظام تیار کریں۔
آر ایس آئی کے فرق کی تجارتی حکمت عملی آر ایس آئی اور قیمت کے مابین اختلافات کی نشاندہی کرکے سگنل تیار کرتی ہے۔ منطق آسان اور خودکار کرنا آسان ہے۔ اسٹاپ نقصان ، منافع حاصل کریں اور ٹریلنگ اسٹاپ مؤثر طریقے سے خطرات کو کنٹرول کرتا ہے۔ تاہم ، حکمت عملی کی درستگی اور رجحان سازی کی مارکیٹوں میں حدود ہیں۔ پیرامیٹرز کو بہتر بنانے ، فلٹرز اور متحرک اسٹاپ شامل کرنے کے ذریعے بہتری لائی جاسکتی ہے۔ تکنیکی حکمت عملی کے طور پر ، جب یہ منظم ہوجاتی ہے تو یہ رینج سے وابستہ مارکیٹوں کے دوران ایک تکمیل کے طور پر کام کرسکتی ہے۔
/*backtest start: 2023-09-24 00:00:00 end: 2023-10-24 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © faytterro //@version=5 // strategy("RSI Divergence Strategy", overlay=true, scale = scale.none) rsilen=input.int(14, title="rsi length") rsisrc=input(close, title="source") x=ta.rsi(rsisrc,rsilen) len=input.int(14, title="RSI Divergence length", maxval=500) tpb = input.float(25, title="take profit", group = "buy", step = 0.5) sb = input.float(5, title="stop", group = "buy", step = 0.5) tsb = input.float(0.25, title="trailing stop", group = "buy", step = 0.5) tps = input.float(25, title="take profit", group = "sell", step = 0.5) ss =input.float(5, title="stop", group = "sell", step = 0.5) tss = input.float(0.25, title="trailing stop", group = "sell", step = 0.5) src=close extrapolation=0 zoom=input.int(0, title="zoom", maxval=27, minval=-27) hline(300-zoom*10, color=color.rgb(54, 58, 69, 100)) hline(10, color=color.rgb(54, 58, 69, 100)) // for ax+b xo=0.0 yo=0.0 xyo=0.0 xxo=0.0 for i=0 to len-1 xo:= xo + i/(len) yo:= yo + x[len-1-i]/(len) xyo:= xyo + i*x[len-1-i]/(len) xxo:= xxo + i*i/(len) dnm=ta.lowest(low,200) dizi=array.new_float(len*2+1+extrapolation) // linedizi=array.new_line() a=(xo*yo-xyo)/(xo*xo-xxo) b=yo-a*xo for i=0 to len-1+extrapolation array.set(dizi,i,a*i+b) //// for src // for ax+b xo2=0.0 yo2=0.0 xyo2=0.0 xxo2=0.0 for i=0 to len-1 xo2:= xo2 + i/(len) yo2:= yo2 + src[len-1-i]/(len) xyo2:= xyo2 + i*src[len-1-i]/(len) xxo2:= xxo2 + i*i/(len) dizi2=array.new_float(len*2+1+extrapolation) // linedizi2=array.new_line() a2=(xo2*yo2-xyo2)/(xo2*xo2-xxo2) b2=yo2-a*xo2 for i=0 to len-1+extrapolation array.set(dizi2,i,a2*i+b2) ttk=((array.get(dizi,0)<array.get(dizi,1)) and (array.get(dizi2,0)>array.get(dizi2,1)))? 1 : ((array.get(dizi,0)>array.get(dizi,1)) and (array.get(dizi2,0)<array.get(dizi2,1)))? -1 : 0 cg=((array.get(dizi,0)<array.get(dizi,1)) and (array.get(dizi2,0)>array.get(dizi2,1)))// and ta.highest(ttk[1],len/2)<1) cr=((array.get(dizi,0)>array.get(dizi,1)) and (array.get(dizi2,0)<array.get(dizi2,1)))// and ta.lowest(ttk[1],len/2)>-1) bgcolor(color=(cg and ta.highest(ttk[1],len/2)<1)? color.rgb(76, 175, 79, 50) : (cr and ta.lowest(ttk[1],len/2)>-1)? color.rgb(255, 82, 82, 50) : na, offset=0, display=display.none) plot(x) // for ax+b xo3=0.0 yo3=0.0 xyo3=0.0 xxo3=0.0 for i=0 to len-1 xo3:= xo3 + i/(len) yo3:= yo3 + x[len-1-i+(ta.barssince(cg))]/(len) xyo3:= xyo3 + i*x[len-1-i+(ta.barssince(cg))]/(len) xxo3:= xxo3 + i*i/(len) dizi3=array.new_float(len*2+1+extrapolation) // linedizi3=array.new_line() a3=(xo3*yo3-xyo3)/(xo3*xo3-xxo3) b3=yo3-a3*xo3 for i=0 to len-1+extrapolation array.set(dizi3,i,a3*i+b3) // for ax+b xo4=0.0 yo4=0.0 xyo4=0.0 xxo4=0.0 for i=0 to len-1 xo4:= xo4 + i/(len) yo4:= yo4 + x[len-1-i+(ta.barssince(cr))]/(len) xyo4:= xyo4 + i*x[len-1-i+(ta.barssince(cr))]/(len) xxo4:= xxo4 + i*i/(len) dizi4=array.new_float(len*2+1+extrapolation) // linedizi4=array.new_line() a4=(xo4*yo4-xyo4)/(xo4*xo4-xxo4) b4=yo4-a4*xo4 for i=0 to len-1+extrapolation array.set(dizi4,i,a4*i+b4) // line=line.new((last_bar_index-ta.barssince(cg)-len), // array.get(dizi3,0), // last_bar_index-ta.barssince(cg), // array.get(dizi3,len-1), color=color.rgb(0,255,0), width=2) // line2=line.new((last_bar_index-ta.barssince(cr)-len), // array.get(dizi4,0), // last_bar_index-ta.barssince(cr), // array.get(dizi4,len-1), color=color.rgb(255, 0, 0, 0), width=2) // line.delete(line[1]) // line.delete(line2[1]) alert=((array.get(dizi,0)<array.get(dizi,1)) and (array.get(dizi2,0)>array.get(dizi2,1)) and ta.highest(ttk[1],len/2)<1) or ((array.get(dizi,0)>array.get(dizi,1)) and (array.get(dizi2,0)<array.get(dizi2,1)) and ta.lowest(ttk[1],len/2)>-1) alertcondition(alert) hline(50) rs=hline(30) rss=hline(70) fill(rs, rss, color=color.rgb(126, 87, 194, 90), title="RSI Background Fill") longCondition = cg and ta.highest(ttk[1],len/2)<1 if (longCondition) strategy.entry("Long", strategy.long) strategy.exit("exit long", "Long", limit = close*(100+tpb)/100 , stop =close*(100-sb)/100 , trail_price = close , trail_offset = close*tsb) shortCondition = cr and ta.lowest(ttk[1],len/2)>-1 if (shortCondition) strategy.entry("Short", strategy.short) strategy.exit("exit short", "Short", limit = close*(100-tps)/100, stop = close*(100+ss)/100, trail_price = close , trail_offset = close*tss)