اس حکمت عملی میں رشتہ دار طاقت انڈیکس (آر ایس آئی) کے ساتھ رفتار کے اشارے کو متحرک ٹریلنگ اسٹاپ میکانزم کے ساتھ مل کر شامل کیا جاتا ہے تاکہ خطرے کو کنٹرول کرتے ہوئے رجحان کی سمت کو حاصل کیا جاسکے۔ جب مضبوط عروج کی رفتار ہوتی ہے تو یہ لمبا ہوتا ہے اور جب مضبوط زوال کی رفتار ہوتی ہے تو مختصر ہوجاتا ہے۔ یہ حکمت عملی منافع میں مقفل ہونے اور نقصان کو کم کرنے کے لئے ٹریلنگ اسٹاپ کا استعمال کرتے ہوئے منافع لینے اور نقصان کو روکنے کی شرائط بھی طے کرتی ہے۔
قیمت کے رجحان کی سمت کا تعین کرنے کے لئے ADX اشارے کا استعمال کریں
ADX 20 سے اوپر رجحان ظاہر کرتا ہے
-DI کے اوپر +DI کراسنگ طویل سگنل ہے
- +DI سے نیچے DI عبور کرنا مختصر سگنل ہے
زیادہ خریدنے / زیادہ فروخت کی نشاندہی کرنے کے لئے RSI
RSI 70 سے اوپر oversold، مختصر سگنل کا مشورہ دیتا ہے
RSI 30 سے نیچے oversold، طویل سگنل کا مشورہ دیتا ہے
جب ADX رجحان + RSI تصدیق سگنل دکھاتا ہے تو طویل / مختصر پوزیشنیں لیں.
حکمت عملی دو پیرامیٹرز کے ساتھ ایک متحرک ٹریلنگ سٹاپ میکانزم کا استعمال کرتا ہے:
ایکٹیویشن لیول: ٹریلنگ اسٹاپ کو چالو کریں جب قیمت داخل ہونے کے بعد مقررہ فیصد تک پہنچ جائے
ٹریلنگ فی صد: سب سے زیادہ منافع سے سٹاپ سطح ٹریلز مقرر فی صد
ایک بار چالو ہوجانے کے بعد ، ٹریلنگ اسٹاپ سب سے زیادہ منافع کی سطح پر عمل کرے گا۔ جیسے جیسے قیمت واپس آتی ہے ، اسٹاپ کی سطح کم ہوجاتی ہے۔ اگر ریٹریکشن ٹریل فیصد سے زیادہ ہے تو ، تمام پوزیشنوں کو بند کرنے کے لئے اسٹاپ کو متحرک کیا جاتا ہے۔
مومنٹم اے ڈی ایکس رجحان کی سمت کا تعین کرتا ہے، جھوٹے بریک آؤٹ سے بچنے کے لئے
آر ایس آئی کی تصدیق سے یہ یقینی بنتا ہے کہ واپسی کے مواقع ضائع نہیں ہوتے ہیں
ایڈجسٹ ٹرائلنگ سٹاپ منافع میں تالے اور نقصانات کو کم سے کم کرتا ہے
سادہ اور واضح حکمت عملی منطق، سمجھنے میں آسان
مختلف مارکیٹوں اور ٹائم فریم پر لاگو
ADX غلط بریک آؤٹ کی نشاندہی کر سکتا ہے
RSI متعدد غلط سگنل دے سکتا ہے
ناقص ٹریلنگ سٹاپ پیرامیٹرز
خالی جگہیں ناکام رکنے کا سبب بن سکتی ہیں
اندراجات کو بہتر بنانے کے لئے ADX/RSI کے مجموعے کی جانچ کریں
مختلف چالو کرنے کی سطحوں اور پگڈنڈی فیصد بیک ٹیسٹ
سگنل کے معیار کو بہتر بنانے کے لئے اضافی فلٹرز شامل کریں
مضبوط پیرامیٹرز تلاش کرنے کے لئے مختلف مارکیٹوں پر ٹیسٹ
اس حکمت عملی میں رفتار تجزیہ ، آر ایس آئی اور ٹریلنگ اسٹاپ کو مربوط کیا گیا ہے تاکہ مؤثر طریقے سے رجحان کی سمت ، اسپاٹ الٹ اور کنٹرول رسک کا تعین کیا جاسکے۔ سیدھا سادہ منطق اسٹاک ، فاریکس ، کریپٹو اور دیگر رجحانات کی منڈیوں میں لاگو کرنے کو آسان بناتا ہے۔ پیرامیٹر کی اصلاح اور فلٹرز کو شامل کرنے کے ذریعے مزید بہتری آسکتی ہے۔ مجموعی طور پر یہ تاجروں کو ایک مضبوط مقداری تجارتی فریم ورک فراہم کرتا ہے۔
/*backtest start: 2023-10-01 00:00:00 end: 2023-10-03 00:00:00 period: 30m basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Trailing Stop with RSI", overlay=true) length = input.int(12, "Momentum Length") price = close momentum(seria, length) => mom = seria - seria[length] mom mom0 = momentum(price, length) mom1 = momentum(mom0, 1) rsiLength = input.int(14, "RSI Length") rsiOverbought = input(70, "RSI Overbought Level") rsiOversold = input(30, "RSI Oversold Level") rsiValue = ta.rsi(close, rsiLength) tsact = input.float(0.0, "Trailing Stop Activation (%)", group="strategy", tooltip="Activates the Trailing Stop once this PnL is reached.") / 100 tsact := tsact ? tsact : na ts = input.float(0.0, "Position Trailing Stop (%)", group="strategy", tooltip="Trails your position with a stop loss at this distance from the highest PnL") / 100 ts := ts ? ts : na in_long = strategy.position_size > 0 in_short = strategy.position_size < 0 var ts_ = array.new_float() ts_size = array.size(ts_) ts_get = ts_size > 0 ? array.get(ts_, ts_size - 1) : 0 if in_long if tsact and high > strategy.position_avg_price + strategy.position_avg_price * tsact if ts_size > 0 and ts_get < high array.push(ts_, high) if ts_size < 1 array.push(ts_, high) if not tsact if ts_size > 0 and ts_get < high array.push(ts_, high) if ts_size < 1 array.push(ts_, high) if in_short if tsact and low < strategy.position_avg_price - strategy.position_avg_price * tsact if ts_size > 0 and ts_get > low array.push(ts_, low) if ts_size < 1 array.push(ts_, low) if not tsact if ts_size > 0 and ts_get > low array.push(ts_, low) if ts_size < 1 array.push(ts_, low) trail = in_long and ts_size > 0 ? low < ts_get - ts_get * ts : in_short and ts_size > 0 ? high > ts_get + ts_get * ts : na if (mom0 > 0 and mom1 > 0) strategy.entry("MomLE", strategy.long, stop=high+syminfo.mintick, comment="MomLE") else strategy.cancel("MomLE") if (mom0 < 0 and mom1 < 0) strategy.entry("MomSE", strategy.short, stop=low-syminfo.mintick, comment="MomSE") else strategy.cancel("MomSE") tsClose = in_long ? ts_get - ts_get * ts : in_short ? ts_get + ts_get * ts : na if trail strategy.close_all() if not strategy.opentrades array.clear(ts_) rsiOverboughtCondition = rsiValue >= rsiOverbought rsiOversoldCondition = rsiValue <= rsiOversold if rsiOverboughtCondition strategy.close("SHORT", "SX") strategy.entry("LONG", strategy.long) if rsiOversoldCondition strategy.close("LONG", "LX") strategy.entry("SHORT", strategy.short) plotchar(ts_get, "GET", "") plot(strategy.position_avg_price > 0 ? strategy.position_avg_price : na, "Average", color.rgb(251, 139, 64), 2, plot.style_cross) plot(tsClose > 0 ? tsClose : na, "Trailing", color.rgb(251, 64, 64), 2, plot.style_cross) plot(strategy.position_avg_price - strategy.position_avg_price * tsact > 0 ? strategy.position_avg_price - strategy.position_avg_price * tsact : na, "TS Activation", color.fuchsia, 2, plot.style_cross)