یہ حکمت عملی ڈائریکشنل موومنٹ انڈیکس (ڈی ایم آئی) DI+ اور DI- کے ساتھ ساتھ اوسط ڈائریکشنل انڈیکس (ADX) اور ایکسپونینشل موونگ اوسط (EMA) کا حساب لگاکر تجارتی سگنل تیار کرتی ہے۔ جب DI+ DI+ سے اوپر اور ADX 20 سے اوپر ہوتا ہے تو یہ ایک لمبا سگنل ٹرگر کرتا ہے۔ جب DI DI+ سے نیچے اور ADX 25 سے اوپر ہوتا ہے تو ایک مختصر سگنل ٹرگر ہوتا ہے۔ اسٹاپ نقصان کا سگنل اس وقت ہوتا ہے جب DI DI DI+ سے اوپر ہوتا ہے اور ADX 30 سے اوپر ہوتا ہے۔
DI +، DI، ADX کا حساب لگائیں
ایکسپونینشل چلتی اوسط کا حساب لگائیں
تجارتی سگنل تیار کریں
سٹاپ نقصان مقرر کریں
خلاصہ یہ ہے کہ یہ حکمت عملی رفتار اور رجحان تجزیہ کے اشارے کو یکجا کرتی ہے جب قیمتوں میں مضبوط رجحانات سامنے آتے ہیں، نقصانات کو محدود کرنے کے لئے نقصانات کو روکنے کے ساتھ.
سٹاپ نقصان کو بڑھا کر، پیرامیٹرز کو ایڈجسٹ کر کے، فلٹرز کو شامل کر کے تعدد بڑھا سکتے ہیں۔
یہ حکمت عملی مضبوط رجحانات کی تجارت کے لئے رفتار اور رجحان تجزیہ کے اشارے کو یکجا کرتی ہے۔ پیرامیٹر کی اصلاح ، اضافی فلٹرز اور آرام دہ اور پرسکون رکاوٹوں کے ذریعہ کارکردگی کو مزید بہتر بنا سکتی ہے۔
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Tamil_FNO_Trader //@version=5 strategy("Overlay Signals by TFOT", overlay=true) // Calculate DMI len = input.int(14, minval=1, title="DI Length") lensig = input.int(14, title="ADX Smoothing", minval=1, maxval=50) [diplus, diminus, adx] = ta.dmi(len, lensig) // Get EMA emalen = input.int(26, minval=1, title = "EMA Length") emasrc = input.source(close, title = "EMA Source") my_ema(src, length) => alpha = 2 / (length + 1) sum = 0.0 sum := na(sum[1]) ? src : alpha * src + (1 - alpha) * nz(sum[1]) EMA2 = my_ema(emasrc, emalen) // Variables var bool buycondition1 = false var bool sellcondition1 = false var int firstbuybar = na var int firstsellbar = na var int buyexitbar = na var int sellexitbar = na var bool buyexit1 = false var bool sellexit1 = false // Buy & Sell Conditions buycondition1 := (ta.crossover(diplus, diminus)) and (adx > 20) and (close > EMA2) and na(firstbuybar) sellcondition1 := (ta.crossover(diminus, diplus)) and (adx > 25) and (close < EMA2) and na(firstsellbar) buyexit1 := ta.crossover(diminus, diplus) and (adx > 30) and na(buyexitbar) sellexit1 := ta.crossover(diplus, diminus) and (adx > 30) and na(sellexitbar) if buycondition1 if(na(firstbuybar)) firstbuybar := bar_index buyexitbar := na firstsellbar := na strategy.entry("Buy", strategy.long) if sellcondition1 if(na(firstsellbar)) firstsellbar := bar_index sellexitbar := na firstbuybar := na strategy.entry("Sell", strategy.short) if buyexit1 and not na(firstbuybar) if(na(buyexitbar)) buyexitbar := bar_index firstbuybar := na firstsellbar := na strategy.close("Buy") if sellexit1 and not na(firstsellbar) if(na(sellexitbar)) sellexitbar := bar_index firstsellbar := na firstbuybar := na strategy.close("Sell") // Plot signals on chart hl = input.bool(defval = true, title = "Signal Labels") plotshape(hl and buycondition1 and bar_index == firstbuybar ? true : na, "Buy", style = shape.labelup, location = location.belowbar, color = color.green, text = "Buy", textcolor = color.white, size = size.tiny) plotshape(hl and sellcondition1 and bar_index == firstsellbar ? true : na, "Sell", style = shape.labeldown, location = location.abovebar, color = color.red, text = "Sell", textcolor = color.white, size = size.tiny) plotshape(hl and buyexit1 and bar_index == buyexitbar ? true : na, "Buy Exit", style = shape.labelup, location = location.belowbar, color = color.red, text = "Buy X", textcolor = color.white, size = size.tiny) plotshape(hl and sellexit1 and bar_index == sellexitbar ? true : na, "Sell Exit", style = shape.labeldown, location = location.abovebar, color = color.red, text = "Sell X", textcolor = color.white, size = size.tiny)