
دوہری منتقل اوسط مستحکم تجارت کی حکمت عملی نسبتا strong مضبوط اشارے ((RSI) اور تبدیلی کی شرح اشارے ((ROC) کی دوہری طاقت کو جوڑتی ہے تاکہ وسط اور لمبی لکیری رجحان کی سمت کی نشاندہی کی جاسکے۔ اس حکمت عملی میں فلٹرنگ کی شرائط اور اسٹاپ نقصان کی شرائط ایک ساتھ رکھی گئی ہیں ، جس سے رجحان کی سمت کی تصدیق کی بنیاد پر اندراج ممکن ہوسکتی ہے ، جس سے جھوٹے بریک کے خطرات کو مؤثر طریقے سے کم کیا جاسکتا ہے۔
یہ حکمت عملی آر ایس آئی اشارے اور آر او سی اشارے کے امتزاج پر مبنی ہے جس میں داخلے کا وقت طے کیا جاتا ہے۔ جب قیمت نسبتا oversold علاقے کے قریب ہوتی ہے تو اس کو ساختی موڑ کا نقطہ سمجھا جاتا ہے ، جس میں ایک الٹ کا اشارہ ہوتا ہے۔ جب قیمت نسبتا oversold علاقے میں اتار چڑھاؤ کرتی ہے تو ، اس کا مطلب یہ ہے کہ موجودہ رجحان کچھ عرصے تک جاری رہے گا۔ آر او سی اشارے قیمت میں تبدیلی کے رجحان اور طاقت کا اندازہ لگانے کے لئے شرح کی تبدیلی کے نقطہ نظر سے کام کرتا ہے۔ دونوں کا امتزاج مارکیٹ کی ساخت کے بارے میں فیصلہ کرنے کے لئے باہمی تعاون فراہم کرتا ہے۔
اس کے علاوہ ، اس حکمت عملی میں ایس ایم اے اور قلیل مدتی اسٹاپ لائن دونوں فلٹرنگ شرائط شامل ہیں ، جس سے حکمت عملی صرف درمیانی لمبی لمبی رجحان کی سمت کی تصدیق کرتی ہے اور قلیل مدتی میں کوئی اسٹاپ نقصان کا خطرہ نہیں ہوتا ہے۔ اس ترتیب سے زلزلے کے حالات میں قید ہونے کے امکانات کم ہوجاتے ہیں ، اور تاجروں کے لئے خطرہ قابل کنٹرول ہوتا ہے۔
اس حکمت عملی کے لچکدار ان پٹ کی ترتیب سے تاجروں کو صرف آر ایس آئی یا آر او سی میں سے کسی ایک اشارے کو داخلے کی بنیاد کے طور پر استعمال کرنے کا اختیار ملتا ہے ، یا ان دونوں کے امتزاج کو مختلف اقسام اور حالات کی اقسام کے لئے بہتر بنایا جاسکتا ہے ، جس سے حکمت عملی کے اطلاق کا دائرہ کار مزید وسیع ہوتا ہے۔
اس حکمت عملی کا سب سے بڑا فائدہ یہ ہے کہ رجحان اور الٹ سگنل کے ساتھ مل کر داخلے کا فیصلہ کیا جاتا ہے ، جس میں رجحان کے عوامل کو مدنظر رکھا جاتا ہے اور ساختی مواقع کو بھی مدنظر رکھا جاتا ہے ، جو مارکیٹ کی ساخت میں تبدیلی کی بنیاد پر بنایا گیا ہے ، اس طرح داخلے کے وقت کی درستگی کو یقینی بنایا جاسکتا ہے۔ آر ایس آئی اور آر او سی کے مجموعی استعمال سے حکمت عملی کو مارکیٹ میں بے ترتیب شور کے خلاف بھی زیادہ مزاحمت کرنے کی صلاحیت ملتی ہے ، جب کہ کسی ایک اشارے کے مقابلے میں۔
ایک اور فائدہ یہ ہے کہ حکمت عملی میں شامل رجحان فلٹر (ایس ایم اے) اور قلیل مدتی اسٹاپ نقصان کو مؤثر طریقے سے کم کیا جاسکتا ہے جس میں زلزلے کے حالات میں پھنس جانے کا امکان ہے۔ رجحان کا فیصلہ اور قلیل مدتی اسٹاپ دونوں دفاعی لائنوں کی ترتیب اس کو ایک مستحکم اور صحت مند حکمت عملی بناتی ہے جس کا خطرہ قابو میں ہے۔
آخر میں ، اس حکمت عملی میں متعدد پیرامیٹرز کی ترتیبات کا ایک مجموعہ ہے ، جس میں تاجر مختلف اقسام اور مارکیٹ کی اقسام کے لئے اصلاحات کرسکتے ہیں ، جس سے حکمت عملی کا اطلاق بہت وسیع ہوتا ہے۔ چاہے یہ رجحان سازی کی صورت حال ہو یا اس کی اصلاح کی صورت حال ، اس حکمت عملی کو پیرامیٹرز کے ذریعہ مارکیٹ میں ہونے والی تبدیلیوں کے مطابق ڈھال لیا جاسکتا ہے۔
اس حکمت عملی کا سب سے بڑا خطرہ RSI اور ROC جیسے الٹ سگنل اشارے میں کچھ تاخیر ہے۔ جب رجحان بدل جاتا ہے تو ، ان اشارے میں اکثر کچھ تاخیر ہوتی ہے جس کی وجہ سے پیرامیٹرز مقررہ حد تک پہنچ جاتے ہیں۔ اس تاخیر کی وجہ سے حکمت عملی کے داخلے کا وقت دیر سے ہوتا ہے اور رجحان کے ابتدائی آغاز کے مرحلے کو نہیں پکڑ سکتا ہے۔
ایک اور ممکنہ خطرہ یہ ہے کہ جھٹکے والے رجحانات میں ، آر ایس آئی اور آر او سی کی پیرامیٹرز کی ترتیبات بہت زیادہ حساس ہوسکتی ہیں ، جس کی وجہ سے کچھ غلط سگنل پیدا ہوتے ہیں۔ اگر قلیل مدتی اسٹاپ نقصانات کو متحرک کیا جاتا ہے تو ، یہ غلط سگنل براہ راست حقیقی نقصانات کا سبب بنتے ہیں۔
اس حکمت عملی کو مندرجہ ذیل پہلوؤں سے بہتر بنایا جاسکتا ہے:
مارکیٹ کی ساخت کا اندازہ لگانے کے لئے مزید جہتوں کا استعمال کرتے ہوئے ، اشارے کی درستگی کو بہتر بنانے کے لئے مزید اشارے شامل کریں ، جیسے کے ڈی جے ، ایم اے سی ڈی ، وغیرہ
آر ایس آئی اور آر او سی کے پیرامیٹرز کی ترتیبات میں ایک موافقت پذیر اصلاحی میکانزم شامل کیا گیا ہے ، جس سے اشارے کے پیرامیٹرز کو حقیقی وقت کی اتار چڑھاؤ کے مطابق متحرک طور پر ایڈجسٹ کیا جاسکتا ہے
داخلہ منطق کو بہتر بنائیں ، جب رجحان اشارے اور الٹ اشارے شرائط پر پورا اترتے ہیں تو ایک تصدیق کا طریقہ کار مرتب کریں ، تاکہ جھٹکے میں آنے والے غلط سگنل سے بچا جاسکے
اسٹاپ نقصان کی حد کو بڑھانا یا اسٹاپ نقصان کو زیادہ سے زیادہ کم کرنے کے لئے زیادہ سے زیادہ جگہ دینے کے لئے اسٹاپ نقصان کی حد کو بڑھانا
ڈبل منتقل اوسط مستحکم تجارت کی حکمت عملی کامیابی کے ساتھ رجحان کا فیصلہ اور الٹ اشارے کو یکجا کرتی ہے ، جس کی بنیاد پر طویل اور درمیانی لمبائی کے رجحان کی تصدیق کی جاتی ہے۔ اس حکمت عملی میں بھی مضبوط ترتیب کی اہلیت ہے ، جس میں تاجر انفرادی اسٹاک اور حالات کی اقسام کے لئے پیرامیٹرز کو بہتر بنا سکتے ہیں۔ اس میں ڈبل حفاظتی میکانزم بھی شامل ہے جس سے یہ ایک خطرہ قابل انتظام ہے۔ اس حکمت عملی کی کارکردگی میں توسیع کی گنجائش بھی ہے ، مزید اشارے کو مزید مربوط کرنے ، یا خود بخود پیرامیٹر ایڈجسٹمنٹ میکانیزم کی تشکیل کا انتخاب کرکے۔
/*backtest
start: 2024-01-05 00:00:00
end: 2024-02-04 00:00:00
period: 1h
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/
// © GlobalMarketSignals
//@version=4
strategy("GMS: RSI & ROC Strategy", overlay=true)
LongShort = input(title="Long Only or Short Only or Both?", type=input.string, defval="Both", options=["Both", "Long Only", "Short Only"])
RSIroc = input(title="RSI Only, ROC Only, Both?", type=input.string, defval="Both", options=["Both", "RSI Only", "ROC Only"])
RSILength = input(title="RSI Length", type = input.integer ,defval=14)
RSIUpper = input(title="RSI Upper Threshold", type = input.float ,defval=70)
RSILower = input(title="RSI Lower Threshold", type = input.float ,defval=30)
ROCLength = input(title="ROC Length", type = input.integer ,defval=14)
ROCUpper = input(title="ROC Upper Threshold", type = input.float ,defval=0.01)
ROCLower = input(title="ROC Lower Threshold", type = input.float ,defval=-0.01)
LongExit = input(title="Long Exit SMA Length", type = input.integer ,defval=5)
ShortExit = input(title="Short Exit SMA Length", type = input.integer ,defval=5)
AboveBelow = input(title="Trend SMA Filter?", type=input.string, defval="Above", options=["Above", "Below", "Don't Include"])
TrendLength = input(title="Trend SMA Length", type = input.integer ,defval=200)
//RSI ONLY
//Long Side
if LongShort =="Long Only" and AboveBelow == "Above" and RSIroc == "RSI Only"
strategy.entry("LONG", true, when = rsi(close,RSILength)<RSILower and close< sma(close,LongExit) and close>sma(close,TrendLength))
strategy.close("LONG", when = close>sma(close,LongExit))
if LongShort =="Long Only" and AboveBelow == "Below" and RSIroc == "RSI Only"
strategy.entry("LONG", true, when = rsi(close,RSILength)<RSILower and close< sma(close,LongExit) and close<sma(close,TrendLength))
strategy.close("LONG", when = close>sma(close,LongExit))
if LongShort =="Long Only" and AboveBelow == "Don't Include" and RSIroc == "RSI Only"
strategy.entry("LONG", true, when = rsi(close,RSILength)<RSILower and close< sma(close,LongExit))
strategy.close("LONG", when = close>sma(close,LongExit))
if LongShort =="Both" and AboveBelow == "Above" and RSIroc == "RSI Only"
strategy.entry("LONG", true, when = rsi(close,RSILength)<RSILower and close< sma(close,LongExit) and close>sma(close,TrendLength))
strategy.close("LONG", when = close>sma(close,LongExit))
if LongShort =="Both" and AboveBelow == "Below" and RSIroc == "RSI Only"
strategy.entry("LONG", true, when = rsi(close,RSILength)<RSILower and close< sma(close,LongExit) and close<sma(close,TrendLength))
strategy.close("LONG", when = close>sma(close,LongExit))
if LongShort =="Both" and AboveBelow == "Don't Include" and RSIroc == "RSI Only"
strategy.entry("LONG", true, when = rsi(close,RSILength)<RSILower and close< sma(close,LongExit))
strategy.close("LONG", when = close>sma(close,LongExit))
//RSI ONLY
//SHORT SIDE
if LongShort =="Short Only" and AboveBelow == "Above" and RSIroc == "RSI Only"
strategy.entry("SHORT", false, when = rsi(close,RSILength)>RSIUpper and close> sma(close,ShortExit) and close>sma(close,TrendLength))
strategy.close("SHORT", when = close<sma(close,ShortExit))
if LongShort =="Short Only" and AboveBelow == "Below" and RSIroc == "RSI Only"
strategy.entry("SHORT", false, when = rsi(close,RSILength)>RSIUpper and close> sma(close,ShortExit) and close<sma(close,TrendLength))
strategy.close("SHORT", when = close<sma(close,ShortExit))
if LongShort =="Short Only" and AboveBelow == "Don't Include" and RSIroc == "RSI Only"
strategy.entry("SHORT", false, when = rsi(close,RSILength)>RSIUpper and close> sma(close,ShortExit))
strategy.close("SHORT", when = close<sma(close,ShortExit))
if LongShort =="Both" and AboveBelow == "Above" and RSIroc == "RSI Only"
strategy.entry("SHORT", false, when = rsi(close,RSILength)>RSIUpper and close> sma(close,ShortExit) and close>sma(close,TrendLength))
strategy.close("SHORT", when = close<sma(close,ShortExit))
if LongShort =="Both" and AboveBelow == "Below" and RSIroc == "RSI Only"
strategy.entry("SHORT", false, when = rsi(close,RSILength)>RSIUpper and close> sma(close,ShortExit) and close<sma(close,TrendLength))
strategy.close("SHORT", when = close<sma(close,ShortExit))
if LongShort =="Both" and AboveBelow == "Don't Include" and RSIroc == "RSI Only"
strategy.entry("SHORT", false, when = rsi(close,RSILength)>RSIUpper and close> sma(close,ShortExit))
strategy.close("SHORT", when = close<sma(close,ShortExit))
///////-----------------/////////////
///////-----------------/////////////
///////-----------------/////////////
//ROC ONLY
//Long Side
if LongShort =="Long Only" and AboveBelow == "Above" and RSIroc == "ROC Only"
strategy.entry("LONG", true, when = roc(close,ROCLength)<ROCLower and close< sma(close,LongExit) and close>sma(close,TrendLength))
strategy.close("LONG", when = close>sma(close,LongExit))
if LongShort =="Long Only" and AboveBelow == "Below" and RSIroc == "ROC Only"
strategy.entry("LONG", true, when = roc(close,ROCLength)<ROCLower and close< sma(close,LongExit) and close<sma(close,TrendLength))
strategy.close("LONG", when = close>sma(close,LongExit))
if LongShort =="Long Only" and AboveBelow == "Don't Include" and RSIroc == "ROC Only"
strategy.entry("LONG", true, when = roc(close,ROCLength)<ROCLower and close< sma(close,LongExit))
strategy.close("LONG", when = close>sma(close,LongExit))
if LongShort =="Both" and AboveBelow == "Above" and RSIroc == "ROC Only"
strategy.entry("LONG", true, when = roc(close,ROCLength)<ROCLower and close< sma(close,LongExit) and close>sma(close,TrendLength))
strategy.close("LONG", when = close>sma(close,LongExit))
if LongShort =="Both" and AboveBelow == "Below" and RSIroc == "ROC Only"
strategy.entry("LONG", true, when = roc(close,ROCLength)<ROCLower and close< sma(close,LongExit) and close<sma(close,TrendLength))
strategy.close("LONG", when = close>sma(close,LongExit))
if LongShort =="Both" and AboveBelow == "Don't Include" and RSIroc == "ROC Only"
strategy.entry("LONG", true, when = rsi(close,ROCLength)<ROCLower and close< sma(close,LongExit))
strategy.close("LONG", when = close>sma(close,LongExit))
//ROC ONLY
//SHORT SIDE
if LongShort =="Short Only" and AboveBelow == "Above" and RSIroc == "ROC Only"
strategy.entry("SHORT", false, when = roc(close,ROCLength)>ROCUpper and close> sma(close,ShortExit) and close>sma(close,TrendLength))
strategy.close("SHORT", when = close<sma(close,ShortExit))
if LongShort =="Short Only" and AboveBelow == "Below" and RSIroc == "ROC Only"
strategy.entry("SHORT", false, when = roc(close,ROCLength)>ROCUpper and close> sma(close,ShortExit) and close<sma(close,TrendLength))
strategy.close("SHORT", when = close<sma(close,ShortExit))
if LongShort =="Short Only" and AboveBelow == "Don't Include" and RSIroc == "ROC Only"
strategy.entry("SHORT", false, when = roc(close,ROCLength)>ROCUpper and close> sma(close,ShortExit))
strategy.close("SHORT", when = close<sma(close,ShortExit))
if LongShort =="Both" and AboveBelow == "Above" and RSIroc == "ROC Only"
strategy.entry("SHORT", false, when = roc(close,ROCLength)>ROCUpper and close> sma(close,ShortExit) and close>sma(close,TrendLength))
strategy.close("SHORT", when = close<sma(close,ShortExit))
if LongShort =="Both" and AboveBelow == "Below" and RSIroc == "ROC Only"
strategy.entry("SHORT", false, when = roc(close,ROCLength)>ROCUpper and close> sma(close,ShortExit) and close<sma(close,TrendLength))
strategy.close("SHORT", when = close<sma(close,ShortExit))
if LongShort =="Both" and AboveBelow == "Don't Include" and RSIroc == "ROC Only"
strategy.entry("SHORT", false, when = roc(close,ROCLength)>ROCUpper and close> sma(close,ShortExit))
strategy.close("SHORT", when = close<sma(close,ShortExit))
///////-----------------/////////////
///////-----------------/////////////
///////-----------------/////////////
//BOTH
//Long Side
if LongShort =="Long Only" and AboveBelow == "Above" and RSIroc == "Both"
strategy.entry("LONG", true, when = rsi(close,RSILength)<RSILower and roc(close,ROCLength)<ROCLower and close< sma(close,LongExit) and close>sma(close,TrendLength))
strategy.close("LONG", when = close>sma(close,LongExit))
if LongShort =="Long Only" and AboveBelow == "Below" and RSIroc == "Both"
strategy.entry("LONG", true, when = rsi(close,RSILength)<RSILower and roc(close,ROCLength)<ROCLower and close< sma(close,LongExit) and close<sma(close,TrendLength))
strategy.close("LONG", when = close>sma(close,LongExit))
if LongShort =="Long Only" and AboveBelow == "Don't Include" and RSIroc == "Both"
strategy.entry("LONG", true, when = rsi(close,RSILength)<RSILower and roc(close,ROCLength)<ROCLower and close< sma(close,LongExit))
strategy.close("LONG", when = close>sma(close,LongExit))
if LongShort =="Both" and AboveBelow == "Above" and RSIroc == "Both"
strategy.entry("LONG", true, when = rsi(close,RSILength)<RSILower and roc(close,ROCLength)<ROCLower and close< sma(close,LongExit) and close>sma(close,TrendLength))
strategy.close("LONG", when = close>sma(close,LongExit))
if LongShort =="Both" and AboveBelow == "Below" and RSIroc == "Both"
strategy.entry("LONG", true, when = rsi(close,RSILength)<RSILower and roc(close,ROCLength)<ROCLower and close< sma(close,LongExit) and close<sma(close,TrendLength))
strategy.close("LONG", when = close>sma(close,LongExit))
if LongShort =="Both" and AboveBelow == "Don't Include" and RSIroc == "Both"
strategy.entry("LONG", true, when = rsi(close,RSILength)<RSILower and roc(close,ROCLength)<ROCLower and close< sma(close,LongExit))
strategy.close("LONG", when = close>sma(close,LongExit))
//BOTH
//SHORT SIDE
if LongShort =="Short Only" and AboveBelow == "Above" and RSIroc == "Both"
strategy.entry("SHORT", false, when = rsi(close,RSILength)>RSIUpper and roc(close,ROCLength)>ROCUpper and close> sma(close,ShortExit) and close>sma(close,TrendLength))
strategy.close("SHORT", when = close<sma(close,ShortExit))
if LongShort =="Short Only" and AboveBelow == "Below" and RSIroc == "Both"
strategy.entry("SHORT", false, when = rsi(close,RSILength)>RSIUpper and roc(close,ROCLength)>ROCUpper and close> sma(close,ShortExit) and close<sma(close,TrendLength))
strategy.close("SHORT", when = close<sma(close,ShortExit))
if LongShort =="Short Only" and AboveBelow == "Don't Include" and RSIroc == "Both"
strategy.entry("SHORT", false, when = rsi(close,RSILength)>RSIUpper and roc(close,ROCLength)>ROCUpper and close> sma(close,ShortExit))
strategy.close("SHORT", when = close<sma(close,ShortExit))
if LongShort =="Both" and AboveBelow == "Above" and RSIroc == "Both"
strategy.entry("SHORT", false, when = rsi(close,RSILength)>RSIUpper and roc(close,ROCLength)>ROCUpper and close> sma(close,ShortExit) and close>sma(close,TrendLength))
strategy.close("SHORT", when = close<sma(close,ShortExit))
if LongShort =="Both" and AboveBelow == "Below" and RSIroc == "Both"
strategy.entry("SHORT", false, when = rsi(close,RSILength)>RSIUpper and roc(close,ROCLength)>ROCUpper and close> sma(close,ShortExit) and close<sma(close,TrendLength))
strategy.close("SHORT", when = close<sma(close,ShortExit))
if LongShort =="Both" and AboveBelow == "Don't Include" and RSIroc == "Both"
strategy.entry("SHORT", false, when = rsi(close,RSILength)>RSIUpper and roc(close,ROCLength)>ROCUpper and close> sma(close,ShortExit))
strategy.close("SHORT", when = close<sma(close,ShortExit))