یہ ایک انکولی رجحان کی پیروی کرنے والی حکمت عملی ہے جو متعدد تکنیکی اشارے کو یکجا کرتی ہے۔ حکمت عملی میں یو ٹی بوٹ الرٹ سسٹم ، رشتہ دار طاقت انڈیکس (آر ایس آئی) فلٹر ، غیر پینٹنگ اے ٹی آر ٹریلنگ اسٹاپ ، اور ڈونچیان چینل شامل ہیں۔ یہ 15 منٹ کے ٹائم فریم پر کام کرتا ہے ، سگنل کی درستگی کو بہتر بنانے کے لئے ہیکن آشی موم بتیوں کا استعمال کرتا ہے ، اور فیصد پر مبنی باہر نکلنے کے اہداف کو شامل کرتا ہے۔
اس حکمت عملی کا بنیادی مقصد مارکیٹ کے رجحانات کی نشاندہی اور ان کی پیروی کرنے کے لئے متعدد اشارے کا استعمال کرنا ہے جبکہ لچکدار رسک مینجمنٹ میکانزم فراہم کرنا ہے۔ یہ زیادہ جامع اور مضبوط تجارتی فیصلوں کو حاصل کرنے کے لئے رفتار (آر ایس آئی) ، اتار چڑھاؤ (اے ٹی آر) اور رجحان (ڈونچیان چینل) سمیت متعدد جہتوں سے مارکیٹ کی معلومات کو جوڑتا ہے۔
اے ٹی آر ٹریلنگ اسٹاپ: متحرک اسٹاپ نقصان کی سطحوں کا حساب لگانے کے لئے اوسط حقیقی رینج (اے ٹی آر) کا استعمال کرتا ہے ، جو موافقت پذیر رسک کنٹرول فراہم کرتا ہے۔
آر ایس آئی فلٹر: رجحان کی سمت کی تصدیق کے لئے رشتہ دار طاقت انڈیکس (آر ایس آئی) کا استعمال کرتا ہے ، جس سے انٹری سگنلز کی وشوسنییتا میں اضافہ ہوتا ہے۔
ڈونچیان چینل: رجحان کی تصدیق کے لئے ایک اضافی آلہ کے طور پر کام کرتا ہے، مارکیٹ کی مجموعی سمت کی نشاندہی کرنے میں مدد ملتی ہے.
داخلے کی شرائط:
باہر نکلنے کا طریقہ کار: فیصد پر مبنی منافع کے اہداف اور سٹاپ نقصان کی سطح طے کرتا ہے۔
اختیاری ہیکن آشی موم بتیاں: قیمت کے اعداد و شمار کو ہموار کرنے اور جھوٹے سگنل کو کم کرنے کے لئے استعمال کیا جاتا ہے۔
کثیر جہتی تجزیہ: جامع مارکیٹ بصیرت کے لئے رجحان، رفتار، اور اتار چڑھاؤ کے اشارے کو یکجا کرتا ہے.
اعلی موافقت: اے ٹی آر ٹریلنگ اسٹاپ خود بخود مارکیٹ کی اتار چڑھاؤ کو ایڈجسٹ کرتا ہے ، مختلف مارکیٹ کے ماحول کو اپنانے کے لئے۔
مضبوط رسک مینجمنٹ: واضح سٹاپ نقصان اور منافع کے اہداف مؤثر طریقے سے رسک کنٹرول کرتے ہیں۔
بہتر سگنل کی کوالٹی: آر ایس آئی اور ڈونچیان چینل کے ذریعے دوہری تصدیق سے غلط سگنل کم ہوتے ہیں۔
لچک: ہیکن آشی موم بتیاں استعمال کرنے کا اختیار مختلف تجارتی طرزوں کے مطابق ڈھالتا ہے۔
غیر دوبارہ پینٹنگ: اے ٹی آر ٹریلنگ اسٹاپ کا حساب سگنل کی وشوسنییتا اور مستقل مزاجی کو یقینی بناتا ہے۔
سائیڈ ویز مارکیٹ پرفارمنس: رینج سے منسلک یا ہچکچاہٹ والے بازاروں میں کثرت سے غلط سگنل پیدا کرسکتے ہیں۔
تاخیر: متعدد تصدیق کے طریقہ کار سے اندراج میں قدرے تاخیر ہوسکتی ہے۔
زیادہ سے زیادہ اصلاح کا خطرہ: متعدد پیرامیٹرز آسانی سے تاریخی اعداد و شمار کو زیادہ سے زیادہ فٹ ہونے کا باعث بن سکتے ہیں۔
مارکیٹ کے ماحول پر انحصار: تیزی سے الٹ جانے والی منڈیوں میں کم کارکردگی کا مظاہرہ کرسکتا ہے۔
عملدرآمد کی کمی: فیصد پر مبنی اخراجات انتہائی اتار چڑھاؤ والے بازاروں میں عملدرآمد کے چیلنجوں کا سامنا کرسکتے ہیں۔
متحرک پیرامیٹر ایڈجسٹمنٹ: اہم پیرامیٹرز (مثال کے طور پر، RSI کی حد، ATR ضرب) کی خودکار اصلاح کو لاگو کریں.
مارکیٹ کے نظام کی پہچان: حکمت عملی کو متحرک طور پر ایڈجسٹ کرنے کے لئے مارکیٹ کی مختلف حالتوں (ٹرینڈنگ، رینج) کا فیصلہ شامل کریں.
ٹائم فریم ہم آہنگی: فیصلے کی مضبوطی کو بڑھانے کے لئے متعدد ٹائم فریم سے سگنل کو یکجا کریں۔
اتار چڑھاؤ فلٹر: غیر موثر سگنل سے بچنے کے لئے انتہائی کم اتار چڑھاؤ کے ماحول میں تجارت کو روکیں۔
بہتر باہر نکلنے کا طریقہ کار: منافع کے انتظام کو بہتر بنانے کے لئے ٹرائلنگ اسٹاپ یا وقت پر مبنی باہر نکلنے کے قوانین متعارف کروائیں۔
حجم تجزیہ شامل کریں: رجحان کی طاقت کی مزید تصدیق کے لئے حجم کے اشارے کو مربوط کریں۔
مشین لرننگ انٹیگریشن: پیرامیٹر کے انتخاب اور سگنل کی پیداوار کو بہتر بنانے کے لئے مشین لرننگ الگورتھم کا استعمال کریں۔
یہ کثیر اشارے کے موافقت پذیر رجحان کی پیروی کرنے والی حکمت عملی مقداری تجارت میں منظم اور کثیر جہتی تجزیہ کے فوائد کو ظاہر کرتی ہے۔ متعدد اشارے جیسے اے ٹی آر ، آر ایس آئی ، یو ٹی بوٹ ، اور ڈونچیان چینل کو مربوط کرکے ، حکمت عملی مارکیٹ کی حرکیات کو مختلف زاویوں سے گرفت میں لیتی ہے ، جس سے نسبتا comprehensive جامع اور مضبوط تجارتی سگنل فراہم ہوتے ہیں۔ اس کی موافقت پذیر خصوصیات اور اچھی طرح سے ڈیزائن کردہ رسک مینجمنٹ میکانزم اچھی موافقت اور استحکام فراہم کرتے ہیں۔
تاہم ، حکمت عملی کی پیچیدگی سے ممکنہ خطرات جیسے اوور فٹ اور پیرامیٹر حساسیت بھی پیدا ہوتی ہے۔ مستقبل میں اصلاح کو حکمت عملی کی موافقت اور استحکام کو بہتر بنانے پر توجہ دینی چاہئے ، جیسے متحرک پیرامیٹر ایڈجسٹمنٹ اور مارکیٹ کی حالت کی پہچان جیسی جدید خصوصیات متعارف کرانا۔ اس دوران ، ضرورت سے زیادہ پیچیدگی کی وجہ سے استحکام میں کمی سے بچنے کے لئے حکمت عملی کی سادگی اور تشریح کو برقرار رکھنے پر توجہ دی جانی چاہئے۔
مجموعی طور پر ، یہ حکمت عملی رجحان کی پیروی کے لئے ایک جامع اور بصیرت بخش فریم ورک فراہم کرتی ہے۔ مسلسل اصلاح اور محتاط اطلاق کے ذریعے ، اس میں ایک موثر تجارتی آلہ بننے کی صلاحیت ہے۔
/*backtest start: 2023-07-23 00:00:00 end: 2024-07-28 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("UT Bot Alerts - Non-Repainting with RSI Filter and Donchian Channels", overlay=true) // Inputs for UT Bot a = input.int(1, title="Key Value. 'This changes the sensitivity'") c = input.int(10, title="ATR Period") h = input.bool(false, title="Signals from Heikin Ashi Candles") percentage = input.float(0.002, title="Percentage for Exit (0.2% as decimal)") // RSI Inputs rsiPeriod = input.int(14, title="RSI Period") rsiSource = input.source(close, title="RSI Source") // ATR Calculation xATR = ta.atr(c) nLoss = a * xATR // Heikin Ashi Calculation haClose = request.security(syminfo.tickerid, timeframe.period, close, lookahead=barmerge.lookahead_on) haOpen = request.security(syminfo.tickerid, timeframe.period, open, lookahead=barmerge.lookahead_on) haHigh = request.security(syminfo.tickerid, timeframe.period, high, lookahead=barmerge.lookahead_on) haLow = request.security(syminfo.tickerid, timeframe.period, low, lookahead=barmerge.lookahead_on) haCloseSeries = (haOpen + haHigh + haLow + haClose) / 4 src = h ? haCloseSeries : close // RSI Calculation rsiValue = ta.rsi(rsiSource, rsiPeriod) // Non-repainting ATR Trailing Stop Calculation var float xATRTrailingStop = na if (barstate.isconfirmed) xATRTrailingStop := src > nz(xATRTrailingStop[1], 0) and src[1] > nz(xATRTrailingStop[1], 0) ? math.max(nz(xATRTrailingStop[1]), src - nLoss) : src < nz(xATRTrailingStop[1], 0) and src[1] < nz(xATRTrailingStop[1], 0) ? math.min(nz(xATRTrailingStop[1]), src + nLoss) : src > nz(xATRTrailingStop[1], 0) ? src - nLoss : src + nLoss // Position Calculation var int pos = 0 if (barstate.isconfirmed) pos := src[1] < nz(xATRTrailingStop[1], 0) and src > nz(xATRTrailingStop[1], 0) ? 1 : src[1] > nz(xATRTrailingStop[1], 0) and src < nz(xATRTrailingStop[1], 0) ? -1 : nz(pos[1], 0) xcolor = pos == -1 ? color.red : pos == 1 ? color.green : color.blue ema = ta.ema(src, 1) above = ta.crossover(ema, xATRTrailingStop) below = ta.crossover(xATRTrailingStop, ema) // Track entry prices var float entryPrice = na // Donchian Channels length = input.int(20, minval = 1, title="Donchian Channels Length") offset = input.int(0, title="Donchian Channels Offset") lower = ta.lowest(length) upper = ta.highest(length) basis = math.avg(upper, lower) plot(basis, "Basis", color = #FF6D00, offset = offset) u = plot(upper, "Upper", color = #2962FF, offset = offset) l = plot(lower, "Lower", color = #2962FF, offset = offset) fill(u, l, color = color.rgb(33, 150, 243, 95), title = "Background") // Buy and sell conditions with RSI filter and basis condition buy = src > xATRTrailingStop and above and barstate.isconfirmed and rsiValue > 50 and src > basis sell = src < xATRTrailingStop and below and barstate.isconfirmed and rsiValue < 50 and src < basis // Calculate target prices for exit var float buyTarget = na var float sellTarget = na if (buy) entryPrice := src buyTarget := entryPrice * (1 + percentage) sellTarget := entryPrice * (1 - percentage) strategy.entry("Buy", strategy.long) if (sell) entryPrice := src buyTarget := entryPrice * (1 + percentage) sellTarget := entryPrice * (1 - percentage) strategy.entry("Sell", strategy.short) // Exit conditions var bool buyExit = false var bool sellExit = false var bool stopLossExit = false if (strategy.position_size > 0 and barstate.isconfirmed) if (src >= buyTarget) strategy.exit("Take Profit", "Buy", limit=buyTarget) buyExit := true if (src <= sellTarget) strategy.exit("Stoploss exit", "Buy", stop=src) stopLossExit := true if (strategy.position_size < 0 and barstate.isconfirmed) if (src <= sellTarget) strategy.exit("Take Profit", "Sell", limit=sellTarget) sellExit := true if (src >= buyTarget) strategy.exit("Stoploss exit", "Sell", stop=src) stopLossExit := true // Plotting plotshape(buy, title="Buy", text='Buy', style=shape.labelup, location=location.belowbar, color=color.green, textcolor=color.white, size=size.tiny) plotshape(sell, title="Sell", text='Sell', style=shape.labeldown, location=location.abovebar, color=color.red, textcolor=color.white, size=size.tiny) barcolor(src > xATRTrailingStop ? color.green : na) barcolor(src < xATRTrailingStop ? color.red : na) alertcondition(buy, "UT Long", "UT Long") alertcondition(sell, "UT Short", "UT Short") alertcondition(buyExit, "UT Long Exit", "UT Long Exit") alertcondition(sellExit, "UT Short Exit", "UT Short Exit") alertcondition(stopLossExit, "Stoploss exit", "Stoploss exit")