یہ حکمت عملی خرید و فروخت کے اشاروں کی نشاندہی کرنے کے لئے ٹی 3 چلتی اوسط ، اے ٹی آر اشارے اور ہائکن ایشی کے امتزاج کا استعمال کرتی ہے ، اور ٹریڈنگ کے بعد رجحان کے لئے اسٹاپ نقصان اور منافع کی سطح کا حساب لگانے کے لئے اے ٹی آر کا استعمال کرتی ہے۔ اس حکمت عملی کا فائدہ یہ ہے کہ تجارتی خطرہ پر قابو پانے کے دوران فوری ردعمل ہے۔
T3 چلتی اوسط: رجحان کی سمت کا تعین کرنے کے لئے ایک ہموار T3 چلتی اوسط (ڈیفالٹ مدت 100) کا حساب لگاتا ہے
اے ٹی آر: اوسط حقیقی رینج کا حساب لگاتا ہے، جو سٹاپ نقصان / منافع لینے کے سائز کا تعین کرنے کے لئے استعمال کیا جاتا ہے
ATR ٹریلنگ اسٹاپ: ATR پر مبنی اسٹاپ نقصان کا حساب لگاتا ہے جو قیمت کی نقل و حرکت اور اتار چڑھاؤ کی بنیاد پر ایڈجسٹ ہوتا ہے۔
خریدنے کا اشارہ: اس وقت شروع ہوتا ہے جب بندش ATR ٹریلنگ اسٹاپ سے اوپر کی طرف بڑھتی ہے اور T3 چلتی اوسط سے نیچے ہوتی ہے۔
فروخت کا اشارہ: اس وقت شروع ہوتا ہے جب بندش ATR ٹریلنگ اسٹاپ سے نیچے کراس ہوتی ہے اور T3 چلتی اوسط سے اوپر ہوتی ہے۔
اسٹاپ نقصان/منافع حاصل کرنا: اندراج کے بعد، اسٹاپ نقصان اور منافع حاصل کرنے کی قیمتیں جو اے ٹی آر اور صارف کے متعین کردہ رسک/ریوارڈ تناسب کی بنیاد پر شمار کی جاتی ہیں۔
لانگ انٹری: اسٹاپ نقصان انٹری قیمت ہے کم ATR، منافع لے لو انٹری قیمت ہے زیادہ ATR * خطرہ / منافع کا تناسب
مختصر اندراج: سٹاپ نقصان اندراج کی قیمت ہے اور اے ٹی آر، منافع حاصل کرنا اندراج کی قیمت ہے اور اے ٹی آر * رسک/ریوارڈ تناسب ہے۔
باہر نکلیں جب قیمت سٹاپ نقصان یا منافع لینے کی سطح پر پہنچ جاتی ہے
T3 چلتی اوسط ڈیفالٹ مدت 100 ہے، قیمت کی تبدیلیوں پر تیزی سے ردعمل کے لئے عام چلتی اوسط سے زیادہ حساس ہے
اے ٹی آر ٹریلنگ اسٹاپ مارکیٹ کی اتار چڑھاؤ کے ساتھ چلتا ہے تاکہ اسے روکنے سے بچایا جاسکے۔ اے ٹی آر پر مبنی اسٹاپ نقصان / منافع حاصل کریں جو ہر تجارت کے لئے خطرہ / انعام کو کنٹرول کرتا ہے۔
اے ٹی آر ٹریلنگ سٹاپ رجحان کی پیروی کرتا ہے، مختصر مدت کے pullbacks کے دوران بھی قبل از وقت باہر نکلنے سے بچتا ہے
مضبوطی کو بہتر بنانے کے لئے مختلف مارکیٹوں کے لئے T3 اور ATR دونوں کے لئے ادوار کو بہتر بنایا جاسکتا ہے
شدید قیمت کی نقل و حرکت نقصان کا سبب بننے والے نقصان کو روک سکتی ہے۔ اے ٹی آر کی مدت اور اسٹاپ فاصلے کو بڑھا سکتی ہے۔
نقصانات ممکن ہیں اگر رجحان الٹ جاتا ہے اور قیمت ٹیلنگ اسٹاپ کو عبور کرتی ہے۔ الٹ جانے کی نشاندہی کرنے کے لئے دوسرے اشارے شامل کرسکتے ہیں۔
پیرامیٹر کی اصلاح سے محدود تاریخی اعداد و شمار کو زیادہ فٹ ہونے کا خطرہ ہے۔ مارکیٹوں / ٹائم فریموں میں مضبوط اصلاح کی ضرورت ہے۔
حساسیت اور استحکام کے بہترین توازن کو تلاش کرنے کے لئے مختلف T3 چلتی اوسط ادوار کی جانچ کریں
بہترین خطرہ کنٹرول اور توازن کے بعد رجحان تلاش کرنے کے لئے ATR مدت کو بہتر بنائیں
غلط تجارت سے بچنے کے لئے RSI، MACD کو شامل کریں
بہترین خودکار پیرامیٹرز کے لئے مشین لرننگ ، دستی تعصب کو کم کرنا
خطرے کو بہتر کنٹرول کرنے کے لئے پوزیشن سائزنگ کے قواعد شامل کریں
یہ حکمت عملی T3 اور ATR کے فوائد کو یکجا کرتی ہے تاکہ خطرے کے کنٹرول کے ساتھ تیز رفتار ردعمل کو ممکن بنایا جاسکے۔ پیرامیٹر کی اصلاح اور اضافی فلٹرز کے ذریعہ استحکام اور کارکردگی میں مزید بہتری ممکن ہے۔ لیکن تاجروں کو اب بھی الٹ اور بریک اینڈ کے خطرات پر نظر رکھنا چاہئے ، اور بیک ٹیسٹ کے نتائج پر زیادہ انحصار کرنے سے گریز کرنا چاہئے۔
/*backtest start: 2022-10-31 00:00:00 end: 2023-11-06 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(title='UT Bot Alerts (QuantNomad) Strategy w/ NinjaView', overlay=true) T3 = input(100)//600 // Input for Long Settings // Input for Long Settings xPrice3 = close xe1 = ta.ema(xPrice3, T3) xe2 = ta.ema(xe1, T3) xe3 = ta.ema(xe2, T3) xe4 = ta.ema(xe3, T3) xe5 = ta.ema(xe4, T3) xe6 = ta.ema(xe5, T3) b3 = 0.7 c1 = -b3*b3*b3 c2 = 3*b3*b3+3*b3*b3*b3 c3 = -6*b3*b3-3*b3-3*b3*b3*b3 c4 = 1+3*b3+b3*b3*b3+3*b3*b3 nT3Average = c1 * xe6 + c2 * xe5 + c3 * xe4 + c4 * xe3 //plot(nT3Average, color=color.white, title="T3") // Buy Signal - Price is below T3 Average buySignal3 = xPrice3 < nT3Average sellSignal3 = xPrice3 > nT3Average // Inputs a = input(1, title='Key Value. "This changes the sensitivity"') c = input(50, title='ATR Period') h = input(true, title='Signals from Heikin Ashi Candles') riskRewardRatio = input(1, title='Risk Reward Ratio') xATR = ta.atr(c) nLoss = a * xATR src = h ? request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, close, lookahead=barmerge.lookahead_off) : close xATRTrailingStop = 0.0 iff_1 = src > nz(xATRTrailingStop[1], 0) ? src - nLoss : src + nLoss iff_2 = src < nz(xATRTrailingStop[1], 0) and src[1] < nz(xATRTrailingStop[1], 0) ? math.min(nz(xATRTrailingStop[1]), src + nLoss) : iff_1 xATRTrailingStop := src > nz(xATRTrailingStop[1], 0) and src[1] > nz(xATRTrailingStop[1], 0) ? math.max(nz(xATRTrailingStop[1]), src - nLoss) : iff_2 pos = 0 iff_3 = src[1] > nz(xATRTrailingStop[1], 0) and src < nz(xATRTrailingStop[1], 0) ? -1 : nz(pos[1], 0) pos := src[1] < nz(xATRTrailingStop[1], 0) and src > nz(xATRTrailingStop[1], 0) ? 1 : iff_3 xcolor = pos == -1 ? color.red : pos == 1 ? color.green : color.blue ema = ta.ema(src, 1) above = ta.crossover(ema, xATRTrailingStop) below = ta.crossunder(ema, xATRTrailingStop) buy = src > xATRTrailingStop and above sell = src < xATRTrailingStop and below barbuy = src > xATRTrailingStop barsell = src < xATRTrailingStop plotshape(buy, title='Buy', text='Buy', style=shape.labelup, location=location.belowbar, color=color.new(color.green, 0), textcolor=color.new(color.white, 0), size=size.tiny) plotshape(sell, title='Sell', text='Sell', style=shape.labeldown, location=location.abovebar, color=color.new(color.red, 0), textcolor=color.new(color.white, 0), size=size.tiny) barcolor(barbuy ? color.new(color.green, 90) : na) barcolor(barsell ? color.new(color.red, 90) : na) var float entryPrice = na var float takeProfitLong = na var float stopLossLong = na var float takeProfitShort = na var float stopLossShort = na if buy and buySignal3 entryPrice := src takeProfitLong := entryPrice + nLoss * riskRewardRatio stopLossLong := entryPrice - nLoss takeProfitShort := na stopLossShort := na if sell and sellSignal3 entryPrice := src takeProfitShort := entryPrice - nLoss * riskRewardRatio stopLossShort := entryPrice + nLoss takeProfitLong := na stopLossLong := na // Strategy order conditions acct = "Sim101" ticker = "ES 12-23" qty = 1 OCOMarketLong = '{ "alert": "OCO Market Long", "account": "' + str.tostring(acct) + '", "ticker": "' + str.tostring(ticker) + '", "qty": "' + str.tostring(qty) + '", "take_profit_price": "' + str.tostring(takeProfitLong) + '", "stop_price": "' + str.tostring(stopLossLong) + '", "tif": "DAY" }' OCOMarketShort = '{ "alert": "OCO Market Short", "account": "' + str.tostring(acct) + '", "ticker": "' + str.tostring(ticker) + '", "qty": "' + str.tostring(qty) + '", "take_profit_price": "' + str.tostring(takeProfitShort) + '", "stop_price": "' + str.tostring(stopLossShort) + '", "tif": "DAY" }' CloseAll = '{ "alert": "Close All", "account": "' + str.tostring(acct) + '", "ticker": "' + str.tostring(ticker) + '" }' strategy.entry("Long", strategy.long, when=buy ,alert_message=OCOMarketLong) strategy.entry("Short", strategy.short, when=sell , alert_message=OCOMarketShort) // Setting the take profit and stop loss for long trades strategy.exit("Take Profit/Stop Loss", "Long", stop=stopLossLong, limit=takeProfitLong,alert_message=CloseAll) // Setting the take profit and stop loss for short trades strategy.exit("Take Profit/Stop Loss", "Short", stop=stopLossShort, limit=takeProfitShort,alert_message=CloseAll) // Plot trade setup boxes bgcolor(buy ? color.new(color.green, 90) : na, transp=0, offset=-1) bgcolor(sell ? color.new(color.red, 90) : na, transp=0, offset=-1) longCondition = buy and not na(entryPrice) shortCondition = sell and not na(entryPrice) var line longTakeProfitLine = na var line longStopLossLine = na var line shortTakeProfitLine = na var line shortStopLossLine = na if longCondition longTakeProfitLine := line.new(bar_index, takeProfitLong, bar_index + 1, takeProfitLong, color=color.green, width=2) longStopLossLine := line.new(bar_index, stopLossLong, bar_index + 1, stopLossLong, color=color.red, width=2) label.new(bar_index + 1, takeProfitLong, str.tostring(takeProfitLong, "#.#####"), color=color.green, style=label.style_none, textcolor=color.green, size=size.tiny) label.new(bar_index + 1, stopLossLong, str.tostring(stopLossLong, "#.#####"), color=color.red, style=label.style_none, textcolor=color.red, size=size.tiny) if shortCondition shortTakeProfitLine := line.new(bar_index, takeProfitShort, bar_index + 1, takeProfitShort, color=color.green, width=2) shortStopLossLine := line.new(bar_index, stopLossShort, bar_index + 1, stopLossShort, color=color.red, width=2) label.new(bar_index + 1, takeProfitShort, str.tostring(takeProfitShort, "#.#####"), color=color.green, style=label.style_none, textcolor=color.green, size=size.tiny) label.new(bar_index + 1, stopLossShort, str.tostring(stopLossShort, "#.#####"), color=color.red, style=label.style_none, textcolor=color.red, size=size.tiny) alertcondition(buy, 'UT Long', 'UT Long') alertcondition(sell, 'UT Short', 'UT Short')