اے ڈی ایکس انٹیلجنٹ ٹرینڈ ٹریکنگ اسٹریٹیجی اوسط سمت انڈیکس (ADX) کا استعمال کرتی ہے تاکہ رجحانات کی طاقت کا اندازہ لگایا جاسکے اور جب وہ کمزور ہوں تو رجحانات کو پکڑیں اور منافع کے ل strong مضبوط رجحانات کی پیروی کریں۔ یہ حکمت عملی قیمت کی پیشرفت کو جوڑتے ہوئے رجحانات کی طاقت کا اندازہ لگاتے ہوئے تجارتی سگنل تیار کرتی ہے اور یہ ایک قسم کی رجحان ٹریکنگ حکمت عملی سے تعلق رکھتی ہے۔
اس حکمت عملی کا مرکز بنیادی طور پر اوسط سمت اشاریہ (ADX) پر مبنی ہے تاکہ موجودہ رجحان کی طاقت کا اندازہ لگایا جاسکے۔ ADX رجحان کی طاقت کی نمائندگی کرنے کے لئے ایک خاص مدت کے دوران قیمتوں میں اتار چڑھاؤ کے سمت اشارے کی اوسط قدر کا حساب لگاتا ہے۔ جب ADX کی قیمت مقررہ حد سے نیچے ہوتی ہے تو ، ہم سمجھتے ہیں کہ مارکیٹ مستحکم ہو رہی ہے۔ اس وقت ، باکس رینج کا تعین کیا جاتا ہے۔ اگر قیمت باکس کی اوپری اور نچلی ریلوں سے ٹوٹ جاتی ہے تو ، تجارتی سگنل تیار ہوتا ہے۔
خاص طور پر ، حکمت عملی سب سے پہلے 14 سائیکل ADX کی قیمت کا حساب لگاتی ہے۔ جب یہ 18 سے کم ہوتا ہے تو ، یہ سمجھا جاتا ہے کہ رجحان کمزور ہے۔ اس کے بعد یہ پچھلے 20 K لائنوں کی سب سے زیادہ اور سب سے کم قیمتوں سے بنی باکس کی حد کا حساب لگاتا ہے۔ جب قیمت اس باکس کو توڑتی ہے تو ، خرید و فروخت کے سگنل پیدا ہوتے ہیں۔ اسٹاپ نقصان کا فاصلہ باکس کے سائز کا 50٪ ہے ، اور منافع لینے کا فاصلہ باکس کے سائز کا 100٪ ہے۔
یہ حکمت عملی رجحان کی طاقت کے فیصلے اور اختتامی سگنلز کو جوڑتی ہے تاکہ رجحانات کو جب وہ کمزور ہوں اور استحکام میں داخل ہوں تو ، بے ترتیبی والے بازاروں میں کثرت سے تجارت سے گریز کیا جاسکے۔ اور جب ایک مضبوط رجحان ظاہر ہوتا ہے تو ، وسیع تر منافع کا ہدف زیادہ منافع حاصل کرسکتا ہے۔
ADX ، باکس رینج ، اسٹاپ نقصان کے گتانک جیسے پیرامیٹرز کو بہتر بنایا جاسکتا ہے تاکہ اسے مختلف مصنوعات اور مارکیٹ کے ماحول کے لئے زیادہ موزوں بنایا جاسکے۔ اسی وقت ، بڑے نقصانات سے بچنے کے لئے سنگل اسٹاپ نقصان کے تناسب پر قابو پانے کے لئے سخت منی مینجمنٹ بھی ضروری ہے۔
اے ڈی ایکس انٹیلجنٹ ٹرینڈ ٹریکنگ حکمت عملی عام طور پر ایک نسبتا stable مستحکم ٹرینڈ ٹریکنگ حکمت عملی ہے۔ یہ عام طور پر ٹرینڈ ٹریکنگ حکمت عملی میں عام طور پر پائے جانے والے اعلی درجے کی پیروی کرنے اور کم سے کم مارنے جیسے مسائل سے بچنے کے لئے ٹرینڈ کی طاقت کے فیصلے اور قیمت کی پیشرفت کے اشاروں کو جوڑتا ہے۔ پیرامیٹر کی اصلاح اور سخت منی مینجمنٹ کے ذریعے ، حکمت عملی مستحکم منافع حاصل کرسکتی ہے۔
/*backtest start: 2023-11-20 00:00:00 end: 2023-11-27 00:00:00 period: 5m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Developer: Andrew Palladino. //Creator: Rob Booker. //Date: 9/29/2017 //@version=5 //Date: 08/10/2022 //Updated to V5 from V1, default cash settings added and indicators made more easily visible by: // @ Powerscooter strategy("Rob Booker - ADX Breakout", shorttitle="ADX Breakout V5", overlay=true, default_qty_type = strategy.cash, default_qty_value = 100000, initial_capital = 100000) adxSmoothPeriod = input(14, title="ADX Smoothing Period", group = "ADX Settings") adxPeriod = input(14, title="ADX Period", group = "ADX Settings") adxLowerLevel = input(18, title="ADX Lower Level", group = "ADX Settings") boxLookBack = input(20, title="BreakoutBox Lookback Period", group = "BreakoutBox") profitTargetMultiple = input(1.0, title="Profit Target Box Width Multiple", group = "Take Profit and Stop Loss") stopLossMultiple = input(0.5, title="Stop Loss Box Width Multiple", group = "Take Profit and Stop Loss") enableDirection = input(0, title="Both(0), Long(1), Short(-1)", group = "Trade Direction") // When the ADX drops below threshold limit, then we consider the pair in consolidation. // Set Box around highs and lows of the last 20 candles. with upper and lower boundaries. // When price breaks outside of box, a trade is taken. (on close or on touch?) // Stop is placed, default 50%, of the size of the box. So if box is 200 pips, stop is at 100 pips. // Profit target is 100% of the size of the box. Default. User can set a profit target of 0.5, 1 full size, 2 or 3. dirmov(len) => up = ta.change(high) down = -ta.change(low) truerange = ta.rma(ta.tr, len) plus = fixnan(100 * ta.rma(up > down and up > 0 ? up : 0, len) / truerange) minus = fixnan(100 * ta.rma(down > up and down > 0 ? down : 0, len) / truerange) [plus, minus] adx(dilen, adxlen) => [plus, minus] = dirmov(dilen) sum = plus + minus adx = 100 * ta.rma(math.abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen) adxHigh(dilen, adxlen) => [plus, minus] = dirmov(dilen) plus adxLow(dilen, adxlen) => [plus, minus] = dirmov(dilen) minus sig = adx(adxSmoothPeriod, adxPeriod) //sigHigh = adxHigh(dilen, adxlen) //sigLow = adxLow(dilen, adxlen) isADXLow = sig < adxLowerLevel //boxUpperLevel = ta.highest(high, boxLookBack)[1] //boxLowerLevel = ta.lowest(low, boxLookBack)[1] var float boxUpperLevelCarry = 0 var float boxLowerLevelCarry = 0 boxUpperLevel = strategy.position_size == 0 ? ta.highest(high, boxLookBack)[1] : boxUpperLevelCarry boxUpperLevelCarry := boxUpperLevel boxLowerLevel = strategy.position_size == 0 ? ta.lowest(low, boxLookBack)[1] : boxLowerLevelCarry boxLowerLevelCarry := boxLowerLevel boxWidth = boxUpperLevel - boxLowerLevel profitTarget = strategy.position_size > 0 ? strategy.position_avg_price + profitTargetMultiple*boxWidth : strategy.position_size < 0 ? strategy.position_avg_price - profitTargetMultiple*boxWidth : na stopLoss = strategy.position_size > 0 ? strategy.position_avg_price - stopLossMultiple*boxWidth : strategy.position_size < 0 ? strategy.position_avg_price + stopLossMultiple*boxWidth : na plot(strategy.position_size == 0 ? boxUpperLevel : na, color=color.white, style = plot.style_linebr) plot(strategy.position_size == 0 ? boxLowerLevel : na, color=color.white, style = plot.style_linebr) bgcolor(isADXLow ? color.purple : na, transp=72, title = "ADX limit") plot(stopLoss, color=color.red, linewidth=2, style = plot.style_linebr, title="StopLossLine") plot(profitTarget, color=color.blue, linewidth=2, style = plot.style_linebr, title="ProfitTargetLine") isBuyValid = strategy.position_size == 0 and ta.cross(close, boxUpperLevel) and isADXLow //Long Entry Condition strategy.exit("close_long", from_entry="open_long", limit = profitTarget, stop = stopLoss) if isBuyValid and strategy.opentrades == 0 and (enableDirection == -1 or enableDirection == 0) strategy.entry("open_long", strategy.long) isSellValid = strategy.position_size == 0 and ta.cross(close, boxLowerLevel) and isADXLow //Short Entry condition strategy.exit(id="close_short", from_entry="open_short", limit = profitTarget, stop = stopLoss) if isSellValid and strategy.opentrades == 0 and (enableDirection == 1 or enableDirection == 0) strategy.entry("open_short", strategy.short)