یہ دوہری سپر ٹرینڈ اشارے پر مبنی ایک کثیر مرحلہ ٹریلنگ ٹیک منافع کی حکمت عملی ہے۔ یہ حکمت عملی مارکیٹ کے رجحانات کا تعین کرنے اور اس کے مطابق طویل یا مختصر تجارت انجام دینے کے لئے مختلف پیرامیٹرز کے ساتھ دو سپر ٹرینڈ اشارے کا استعمال کرتی ہے۔ حکمت عملی کا بنیادی حصہ اس کے کثیر مرحلہ ٹریلنگ ٹیک منافع کے طریقہ کار میں ہے ، جو منافع میں ترقیاتی طور پر تالے لگانے کے لئے متعدد منافع کے اہداف طے کرتا ہے جبکہ پوزیشن کا ایک حصہ بڑی مارکیٹ کی نقل و حرکت کو پکڑنے کے لئے کھلا رہتا ہے۔ اس نقطہ نظر کا مقصد منافع کی صلاحیت کو زیادہ سے زیادہ کرتے ہوئے خطرہ کو کم کرنا ہے۔
ڈبل سپر ٹرینڈ اشارے: حکمت عملی میں رجحانات کی نشاندہی کرنے کے لئے مختلف پیرامیٹرز کی ترتیبات کے ساتھ دو سپر ٹرینڈ اشارے استعمال کیے جاتے ہیں۔ جب دونوں اشارے ایک اپ ٹرینڈ دکھاتے ہیں تو ایک لمبا سگنل ٹرگر ہوتا ہے ، جبکہ جب دونوں نیچے کا رجحان ظاہر کرتے ہیں تو ایک مختصر سگنل ٹرگر ہوتا ہے۔ یہ دوہری تصدیق کا طریقہ کار غلط سگنل کو مؤثر طریقے سے کم کرتا ہے۔
ملٹی اسٹیپ ٹریلنگ ٹیک منافع: یہ حکمت عملی 4 ایڈجسٹ ایبل ٹیک منافع کے اہداف طے کرتی ہے۔ ہر ہدف میں منافع کی اسی فیصد اور پوزیشن بند کرنے کا تناسب ہوتا ہے۔ مثال کے طور پر ، پہلا ہدف 6٪ منافع پر پوزیشن کا 12٪ بند کرسکتا ہے ، دوسرا 12٪ منافع پر 8٪ بند کرسکتا ہے ، اور اسی طرح۔ یہ طریقہ کار منافع کو بتدریج مقفل کرنے کی اجازت دیتا ہے جبکہ پوزیشن کا ایک حصہ مارکیٹ کی مسلسل نقل و حرکت سے فائدہ اٹھانے کے لئے کھلا رہتا ہے۔
لچکدار تجارتی سمت: صارفین مختلف مارکیٹ کے ماحول اور تجارتی ترجیحات کے مطابق صرف طویل، صرف مختصر یا دونوں سمتوں میں تجارت کا انتخاب کرسکتے ہیں۔
متحرک اسٹاپ نقصان: اگرچہ کوڈ میں کوئی واضح اسٹاپ نقصان کی ترتیب نہیں ہے ، لیکن جب سپر ٹرینڈ اشارے الٹ جاتے ہیں تو حکمت عملی خود بخود پوزیشن بند کردیتی ہے ، مؤثر طریقے سے متحرک اسٹاپ نقصان کی حیثیت سے کام کرتی ہے۔
بہتر رسک مینجمنٹ: کثیر مرحلے کے پیچھے منافع لینے کا طریقہ کار حکمت عملی کے خطرے کے منافع کے تناسب کو بہت بہتر بناتا ہے۔ منافع میں بتدریج تالے لگا کر ، حکمت عملی اپسائڈ کی صلاحیت کو برقرار رکھتے ہوئے کھینچنے کے خطرے کو کم کرسکتی ہے۔
کم جھوٹے سگنل: دوہری سپر ٹرینڈ اشارے کا استعمال جھوٹے سگنلز کے اثرات کو نمایاں طور پر کم کرتا ہے ، جس سے تجارت کی درستگی اور وشوسنییتا میں اضافہ ہوتا ہے۔
اعلی موافقت: یہ حکمت عملی صارفین کی ترجیحات اور مارکیٹ کے حالات کی بنیاد پر تجارتی سمت اور منافع کے پیرامیٹرز کو لچکدار طریقے سے ایڈجسٹ کرسکتی ہے ، جس سے یہ مختلف تجارتی آلات اور ٹائم فریم کے لئے موزوں ہے۔
آٹومیشن کی اعلی ڈگری: حکمت عملی مکمل طور پر خودکار ہے ، داخلہ سے لے کر منافع اور باہر نکلنے تک ، جذبات اور آپریشنل غلطیوں کے اثرات کو کم سے کم کرنا۔
لچکدار سرمائے کا انتظام: مختلف منافع لینے کے تناسب کو طے کرکے ، حکمت عملی لچکدار سرمائے کا انتظام حاصل کرتی ہے ، جس سے مارکیٹ کی نقل و حرکت سے فائدہ اٹھانے کے لئے باقی پوزیشن کی اجازت دیتے ہوئے جزوی منافع کا فوری حصول یقینی بنایا جاسکتا ہے۔
پیرامیٹر حساسیت: حکمت عملی کی کارکردگی سپر ٹرینڈ اشارے اور منافع لینے کے پیرامیٹرز کی ترتیبات پر بہت زیادہ منحصر ہے۔ نامناسب پیرامیٹرز سے زیادہ تجارت یا اہم مواقع سے محروم ہوسکتا ہے۔
رجحان پر انحصار: رجحان کی پیروی کرنے والی حکمت عملی کے طور پر ، یہ اکثر متضاد منڈیوں میں داخل اور باہر نکل سکتا ہے ، جس سے غیر ضروری تجارتی اخراجات پیدا ہوتے ہیں۔
اسلیپج کا خطرہ: تیز رفتار مارکیٹوں میں ، کثیر مرحلے کے منافع لینے کے عمل کو اسلیپج سے متاثر کیا جاسکتا ہے ، جس کے نتیجے میں اصل عمل درآمد کی قیمتیں توقعات سے انحراف کرتی ہیں۔
زیادہ سے زیادہ اصلاح کا خطرہ: متعدد سایڈست پیرامیٹرز کے ساتھ ، حکمت عملی زیادہ سے زیادہ اصلاح کا شکار ہے ، جس سے ممکنہ طور پر بیک ٹیسٹنگ کے نتائج اور براہ راست تجارتی کارکردگی کے مابین اہم اختلافات پیدا ہوسکتے ہیں۔
اتار چڑھاؤ فلٹرنگ متعارف کروانا: کم اتار چڑھاؤ کے ادوار کے دوران تجارت کی تعدد کو کم کرنے کے لئے اے ٹی آر یا اتار چڑھاؤ کے دیگر اشارے شامل کرنے پر غور کریں ، تاکہ مارکیٹ کے مختلف حالات میں حکمت عملی کی موافقت کو بہتر بنایا جاسکے۔
متحرک پیرامیٹر ایڈجسٹمنٹ: مارکیٹ کی تبدیلیوں میں بہتر موافقت کے لئے سپر ٹرینڈ پیرامیٹرز اور منافع لینے کے اہداف کو متحرک طور پر ایڈجسٹ کرنے کے لئے موافقت پذیر الگورتھم کا استعمال کرتے ہوئے دریافت کریں۔
سٹاپ نقصان میکانزم کو بہتر بنائیں: اگرچہ سپر ٹرینڈ الٹنا کچھ اسٹاپ نقصان کی فعالیت فراہم کرتا ہے ، لیکن بہتر رسک کنٹرول کے ل more زیادہ لچکدار اسٹاپ نقصان میکانزم شامل کرنے پر غور کریں ، جیسے ٹریلنگ اسٹاپ۔
اضافی تکنیکی اشارے شامل کریں: کثیر اشارے کے اختلاط کے ذریعے انٹری اور آؤٹ پٹ کی درستگی کو بہتر بنانے کے لئے دیگر تکنیکی اشارے جیسے آر ایس آئی یا ایم اے سی ڈی کو شامل کرنے پر غور کریں۔
سرمائے کے انتظام کو بہتر بنانا: زیادہ نفیس سرمائے کے انتظام کی حکمت عملیوں کا پتہ لگانا ، جیسے اکاؤنٹ کی کارکردگی کی بنیاد پر پوزیشن کے سائز کو متحرک طور پر ایڈجسٹ کرنا ، تاکہ خطرہ اور منافع کو بہتر طور پر متوازن کیا جاسکے۔
بیک ٹسٹنگ کی اصلاح: حکمت عملی کے بہترین اطلاق کے منظرنامے اور پیرامیٹر کی ترتیبات کی نشاندہی کرنے کے لئے مختلف ٹائم فریموں اور مارکیٹ کے حالات میں کارکردگی کا تجزیہ سمیت زیادہ جامع بیک ٹسٹ انجام دیں۔
یہ کثیر مرحلہ ٹریلنگ منافع لینے کی حکمت عملی ، جو دوہری سپر ٹرینڈ اشارے پر مبنی ہے ، اس کے لچکدار کثیر مرحلہ منافع لینے کے طریقہ کار کے ذریعہ خطرہ اور انعام کے درمیان توازن حاصل کرتی ہے۔ اس حکمت عملی کے اہم فوائد اس کی بہترین رسک مینجمنٹ کی صلاحیتوں اور رجحانات پر حساسیت میں ہیں۔ تاہم ، صارفین کو اس کو لاگو کرتے وقت پیرامیٹر کی ترتیبات اور مارکیٹ کے ماحول کے اثرات پر توجہ دینے کی ضرورت ہے۔ مزید اصلاح اور بہتر بنانے کے ذریعے ، اس حکمت عملی میں ایک مضبوط اور قابل اعتماد خودکار تجارتی نظام بننے کی صلاحیت ہے۔ عملی درخواست میں ، یہ تجویز کی جاتی ہے کہ تاجر مکمل بیک ٹیسٹنگ اور کاغذی تجارت کریں ، اور مخصوص تجارتی آلات اور مارکیٹ کے حالات کی بنیاد پر پیرامیٹر کی مناسب ایڈجسٹمنٹ کریں۔
/*backtest start: 2024-05-21 00:00:00 end: 2024-06-20 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Strategic Multi-Step Supertrend Trader - Strategy [presentTrading]", overlay=true ) // this strategy utilizes a double Supertrend indicator to determine entry and exit conditions for both long and short trades, with user-configurable take profit levels and trade direction settings. // The strategy dynamically updates highest and lowest prices during trades and exits positions based on multi-step profit targets or opposing Supertrend signals. // User inputs for take profit settings // Grouping Take Profit settings useTakeProfit = input.bool(true, title="Use Take Profit", group="Take Profit Settings") takeProfitPercent1 = input.float(6.0, title="Take Profit % Step 1", group="Take Profit Settings") takeProfitPercent2 = input.float(12.0, title="Take Profit % Step 2", group="Take Profit Settings") takeProfitPercent3 = input.float(18.0, title="Take Profit % Step 3", group="Take Profit Settings") takeProfitPercent4 = input.float(50.0, title="Take Profit % Step 4", group="Take Profit Settings") takeProfitAmount1 = input.float(12, title="Take Profit Amount % Step 1", group="Take Profit Settings") takeProfitAmount2 = input.float(8, title="Take Profit Amount % Step 2", group="Take Profit Settings") takeProfitAmount3 = input.float(4, title="Take Profit Amount % Step 3", group="Take Profit Settings") takeProfitAmount4 = input.float(0, title="Take Profit Amount % Step 4", group="Take Profit Settings") numberOfSteps = input.int(3, title="Number of Take Profit Steps", minval=1, maxval=4, group="Take Profit Settings") // Grouping Trade Direction tradeDirection = input.string("Both", title="Trade Direction", options=["Long", "Short", "Both"], group="Trade Direction") // Grouping Supertrend settings atrPeriod1 = input(10, title="ATR Length for Supertrend 1", group="Supertrend Settings") factor1 = input.float(3.0, title="Factor for Supertrend 1", step=0.01, group="Supertrend Settings") atrPeriod2 = input(5, title="ATR Length for Supertrend 2", group="Supertrend Settings") factor2 = input.float(4.0, title="Factor for Supertrend 2", step=0.01, group="Supertrend Settings") // Function to calculate Supertrend supertrend(factor, atrPeriod) => [a, direction] = ta.supertrend(factor, atrPeriod) direction // Calculate Double Supertrend supertrend1 = supertrend(factor1, atrPeriod1) supertrend2 = supertrend(factor2, atrPeriod2) // Entry conditions longCondition = (supertrend1 < 0 and supertrend2 < 0) and (tradeDirection == "Long" or tradeDirection == "Both") shortCondition = (supertrend1 > 0 and supertrend2 > 0) and (tradeDirection == "Short" or tradeDirection == "Both") // Exit conditions longExitCondition = (supertrend1 > 0 and supertrend2 > 0) and (tradeDirection == "Long" or tradeDirection == "Both") shortExitCondition = (supertrend1 < 0 and supertrend2 < 0) and (tradeDirection == "Short" or tradeDirection == "Both") // Variables to store the highest and lowest prices during the trade var float highestPrice = na var float lowestPrice = na // Get the entry price from open trades entryPrice = strategy.opentrades.entry_price(strategy.opentrades - 1) // Reset highestPrice or lowestPrice when entering new trades if (longCondition and strategy.position_size <= 0) highestPrice := na // Reset the highest price strategy.entry("My Long Entry Id", strategy.long) // Enter long position strategy.close("My Short Entry Id", "Short Exit") // Close short position if any if (shortCondition and strategy.position_size >= 0) lowestPrice := na // Reset the lowest price strategy.entry("My Short Entry Id", strategy.short) // Enter short position strategy.close("My Long Entry Id", "Long Exit") // Close long position if any // Exit trades based on conditions if (longExitCondition and strategy.position_size > 0) strategy.close("My Long Entry Id", "Long Exit") // Exit long position if (shortExitCondition and strategy.position_size < 0) strategy.close("My Short Entry Id", "Short Exit") // Exit short position if (strategy.position_size > 0) // Update the highest price for long positions highestPrice := na(highestPrice) ? high : math.max(highestPrice, high) // Step 1 if (useTakeProfit and numberOfSteps >= 1) strategy.exit("Take Profit 1", from_entry="My Long Entry Id", qty_percent=takeProfitAmount1, limit=entryPrice * (1 + takeProfitPercent1 / 100)) // Step 2 if (useTakeProfit and numberOfSteps >= 2) strategy.exit("Take Profit 2", from_entry="My Long Entry Id", qty_percent=takeProfitAmount2, limit=entryPrice * (1 + takeProfitPercent2 / 100)) // Step 3 if (useTakeProfit and numberOfSteps >= 3) strategy.exit("Take Profit 3", from_entry="My Long Entry Id", qty_percent=takeProfitAmount3, limit=entryPrice * (1 + takeProfitPercent3 / 100)) // Step 4 if (useTakeProfit and numberOfSteps == 4) strategy.exit("Take Profit 4", from_entry="My Long Entry Id", qty_percent=takeProfitAmount4, limit=entryPrice * (1 + takeProfitPercent4 / 100)) if (strategy.position_size < 0) // Update the lowest price for short positions lowestPrice := na(lowestPrice) ? low : math.min(lowestPrice, low) // Step 1 if (useTakeProfit and numberOfSteps >= 1) strategy.exit("Take Profit 1", from_entry="My Short Entry Id", qty_percent=takeProfitAmount1, limit=entryPrice * (1 - takeProfitPercent1 / 100)) // Step 2 if (useTakeProfit and numberOfSteps >= 2) strategy.exit("Take Profit 2", from_entry="My Short Entry Id", qty_percent=takeProfitAmount2, limit=entryPrice * (1 - takeProfitPercent2 / 100)) // Step 3 if (useTakeProfit and numberOfSteps >= 3) strategy.exit("Take Profit 3", from_entry="My Short Entry Id", qty_percent=takeProfitAmount3, limit=entryPrice * (1 - takeProfitPercent3 / 100)) // Step 4 if (useTakeProfit and numberOfSteps == 4) strategy.exit("Take Profit 4", from_entry="My Short Entry Id", qty_percent=takeProfitAmount4, limit=entryPrice * (1 - takeProfitPercent4 / 100))