یہ حکمت عملی ایک مکمل ٹریڈنگ سسٹم بنانے کے لئے چانڈلیئر ایگزٹ اصول ، زیرو لیگ ہموار چلتی اوسط (ZLSMA) ، اور رشتہ دار حجم (RVOL) چوٹی کا پتہ لگانے کو یکجا کرتی ہے۔ چانڈلیئر ایگزٹ اصول متحرک طور پر اوسط حقیقی رینج (ATR) کی بنیاد پر اسٹاپ نقصان کی پوزیشن کو ایڈجسٹ کرتا ہے ، جس سے اسے مارکیٹ میں ہونے والی تبدیلیوں کے مطابق بہتر طور پر اپنانے کی اجازت ملتی ہے۔ ZLSMA قیمت کے رجحانات کو درست طریقے سے پکڑتا ہے ، جس سے تجارت کے لئے سمت کی رہنمائی ہوتی ہے۔ RVOL چوٹی کا پتہ لگانے سے حکمت عملی کو کم اتار چڑھاؤ والی مارکیٹوں کی استحکام سے بچنے میں مدد ملتی ہے ، جس سے تجارتی معیار میں بہتری آتی ہے۔
زیڈ ایل ایس ایم اے کے ذریعہ تقویت یافتہ چانڈلیئر ایگزٹ حکمت عملی حجم سپائیک کا پتہ لگانے کے ساتھ ایک رجحان کی پیروی کرنے والی حکمت عملی ہے جو تجارتی خطرہ کو کنٹرول کرتی ہے جبکہ متحرک اسٹاپ نقصان ، رجحان فیصلے ، اور حجم سپائیک کا پتہ لگانے کے ذریعے رجحان کے مواقع کو حاصل کرتی ہے۔ حکمت عملی کا منطق واضح اور سمجھنے اور نافذ کرنے میں آسان ہے ، لیکن جب اسے عملی طور پر لاگو کیا جاتا ہے تو اسے مخصوص مارکیٹ کی خصوصیات اور تجارتی آلات کی بنیاد پر بہتر بنانے اور بہتر بنانے کی ضرورت ہے۔ زیادہ سگنل کی تصدیق کے اشارے متعارف کرانے ، باہر نکلنے کی شرائط کو بہتر بنانے ، معقول حد تک پیرامیٹرز کی ترتیب ، اور سخت پوزیشن مینجمنٹ اور رسک کنٹرول کو نافذ کرنے سے ، اس حکمت عملی میں ایک مضبوط اور موثر تجارتی آلے بننے کی صلاحیت ہے۔
/*backtest start: 2024-05-01 00:00:00 end: 2024-05-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Chandelier Exit Strategy with ZLSMA and Volume Spike Detection", shorttitle="CES with ZLSMA and Volume", overlay=true, process_orders_on_close=true, calc_on_every_tick=false) // Chandelier Exit Inputs lengthAtr = input.int(title='ATR Period', defval=1) mult = input.float(title='ATR Multiplier', step=0.1, defval=2.0) useClose = input.bool(title='Use Close Price for Extremums', defval=true) // Calculate ATR atr = mult * ta.atr(lengthAtr) // Calculate Long and Short Stops longStop = (useClose ? ta.highest(close, lengthAtr) : ta.highest(high, lengthAtr)) - atr shortStop = (useClose ? ta.lowest(close, lengthAtr) : ta.lowest(low, lengthAtr)) + atr // Update stops based on previous values longStop := na(longStop[1]) ? longStop : close[1] > longStop[1] ? math.max(longStop, longStop[1]) : longStop shortStop := na(shortStop[1]) ? shortStop : close[1] < shortStop[1] ? math.min(shortStop, shortStop[1]) : shortStop // Determine Direction var int dir = na dir := na(dir[1]) ? (close > shortStop ? 1 : close < longStop ? -1 : na) : close > shortStop[1] ? 1 : close < longStop[1] ? -1 : dir[1] // ZLSMA Inputs lengthZLSMA = input.int(title="ZLSMA Length", defval=50) offsetZLSMA = input.int(title="ZLSMA Offset", defval=0) srcZLSMA = input.source(close, title="ZLSMA Source") // ZLSMA Calculation lsma = ta.linreg(srcZLSMA, lengthZLSMA, offsetZLSMA) lsma2 = ta.linreg(lsma, lengthZLSMA, offsetZLSMA) eq = lsma - lsma2 zlsma = lsma + eq // Plot ZLSMA plot(zlsma, title="ZLSMA", color=color.purple, linewidth=3) // Swing High/Low Calculation swingHigh = ta.highest(high, 5) swingLow = ta.lowest(low, 5) // Relative Volume (RVOL) Calculation rvolLength = input.int(20, title="RVOL Length") rvolThreshold = input.float(1.5, title="RVOL Threshold") avgVolume = ta.sma(volume, rvolLength) rvol = volume / avgVolume // Define buy and sell signals based on ZLSMA and Volume Spike buySignal = (dir == 1 and dir[1] == -1 and close > zlsma and rvol > rvolThreshold) sellSignal = (dir == -1 and dir[1] == 1 and close < zlsma and rvol > rvolThreshold) // Define exit conditions based on ZLSMA exitLongSignal = (close < zlsma) exitShortSignal = (close > zlsma) // Strategy Entries and Exits if (buySignal) strategy.entry("Long", strategy.long, stop=swingLow) if (sellSignal) strategy.entry("Short", strategy.short, stop=swingHigh) if (exitLongSignal) strategy.close("Long") if (exitShortSignal) strategy.close("Short") // Alerts alertcondition(buySignal, title='Alert: CE Buy', message='Chandelier Exit Buy!') alertcondition(sellSignal, title='Alert: CE Sell', message='Chandelier Exit Sell!')