یہ ایک رجحان کی پیروی کرنے والی حکمت عملی ہے جو سپر ٹرینڈ اشارے ، ایکسپونینشیل موونگ ایوریج (ای ایم اے) اور اوسط سچے رینج (اے ٹی آر) پر مبنی ہے۔ یہ حکمت عملی متعدد تکنیکی اشارے ، ابتدائی اسٹاپ نقصان اور ٹریلنگ اسٹاپ نقصان کے امتزاج کے ذریعے متحرک رجحان سے باخبر رہنے اور خطرے پر قابو پانے کو حاصل کرتی ہے۔ حکمت عملی کا بنیادی مقصد سپر ٹرینڈ اشارے کا استعمال کرتے ہوئے رجحان کی سمت میں ہونے والی تبدیلیوں کو پکڑنا ہے ، جبکہ ای ایم اے کو رجحان کی تصدیق کے لئے استعمال کرتے ہوئے اور منافع کی حفاظت کے لئے دوہری اسٹاپ نقصان کے طریقہ کار کو ترتیب دینا ہے۔
یہ حکمت عملی مندرجہ ذیل بنیادی اجزاء پر مبنی ہے: ٹرینڈ کی سمت میں تبدیلیوں کی نشاندہی کرنے کے لئے سپر ٹرینڈ اشارے، جو ATR مدت 16 اور عنصر 3.02 کے ساتھ شمار کیا جاتا ہے رجحان کی سمت کی تصدیق کے لئے رجحان فلٹر کے طور پر 49 پیریڈ ای ایم اے 3۔ ہر تجارت کے لئے بنیادی تحفظ فراہم کرنے کے لئے 50 پوائنٹس پر مقرر ابتدائی اسٹاپ نقصان ٹریلنگ سٹاپ نقصان 70 پوائنٹس منافع کے بعد چالو، متحرک طور پر قیمت کی تبدیلیوں کو ٹریک
سسٹم طویل سگنل پیدا کرتا ہے جب سپر ٹرینڈ سمت نیچے کی طرف موڑتی ہے اور اختتامی قیمت EMA سے اوپر ہوتی ہے ، بشرطیکہ کوئی موجودہ پوزیشن نہ ہو۔ اس کے برعکس ، مختصر سگنل پیدا ہوتے ہیں جب سپر ٹرینڈ سمت اوپر کی طرف موڑتی ہے اور اختتامی قیمت EMA سے نیچے ہوتی ہے۔
یہ ایک مکمل تجارتی حکمت عملی ہے جس میں متعدد تکنیکی اشارے اور رسک کنٹرول میکانزم کو جوڑ دیا گیا ہے۔ یہ سپر ٹرینڈ اشارے کے ساتھ رجحان کی گرفتاری ، ای ایم اے کے ساتھ سمت کی تصدیق ، دوہری اسٹاپ نقصان کے میکانزم کے ساتھ مل کر ایک سازگار رسک - انعام تناسب حاصل کرتا ہے۔ حکمت عملی کی اصلاح کی صلاحیت بنیادی طور پر متحرک پیرامیٹر ایڈجسٹمنٹ ، مارکیٹ کے ماحول کی تشخیص ، اور رسک مینجمنٹ سسٹم کو بہتر بنانے میں ہے۔ عملی درخواست میں ، تاریخی ڈیٹا بیک ٹیسٹنگ کو مکمل طور پر انجام دینے اور مخصوص تجارتی آلہ کی خصوصیات کے مطابق پیرامیٹرز کو ایڈجسٹ کرنے کی سفارش کی جاتی ہے۔
/*backtest start: 2024-01-17 00:00:00 end: 2025-01-15 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=5 strategy(" nifty supertrend triton", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100) // Input parameters atrPeriod = input.int(16, "ATR Length", step=1) factor = input.float(3.02, "Factor", step=0.01) maPeriod = input.int(49, "Moving Average Period", step=1) trailPoints = input.int(70, "Trailing Points", step=1) // Points after which trailing stop activates initialStopLossPoints = input.int(50, "Initial Stop Loss Points", step=1) // Initial stop loss of 50 points // Calculate Supertrend [_, direction] = ta.supertrend(factor, atrPeriod) // Calculate EMA ema = ta.ema(close, maPeriod) // Variables to track stop loss levels var float trailStop = na var float entryPrice = na var float initialStopLoss = na // To track the initial stop loss // Generate buy and sell signals if ta.change(direction) < 0 and close > ema if strategy.position_size == 0 // Only open a new long position if no current position strategy.entry("Buy", strategy.long) entryPrice := close // Record the entry price for the long position initialStopLoss := entryPrice - initialStopLossPoints // Set initial stop loss for long position trailStop := na // Reset trailing stop for long if ta.change(direction) > 0 and close < ema if strategy.position_size == 0 // Only open a new short position if no current position strategy.entry("Sell", strategy.short) entryPrice := close // Record the entry price for the short position initialStopLoss := entryPrice + initialStopLossPoints // Set initial stop loss for short position trailStop := na // Reset trailing stop for short // Apply initial stop loss for long positions if (strategy.position_size > 0) // Check if in a long position if close <= initialStopLoss // If the price drops to or below the initial stop loss strategy.close("Buy", "Initial Stop Loss Hit") // Exit the long position // Apply trailing stop logic for long positions if (strategy.position_size > 0) // Check if in a long position if (close - entryPrice >= trailPoints) // If the price has moved up by the threshold trailStop := na(trailStop) ? close - trailPoints : math.max(trailStop, close - trailPoints) // Adjust trailing stop upwards if not na(trailStop) and close < trailStop // If the price drops below the trailing stop strategy.close("Buy", "Trailing Stop Hit") // Exit the long position // Apply initial stop loss for short positions if (strategy.position_size < 0) // Check if in a short position if close >= initialStopLoss // If the price rises to or above the initial stop loss strategy.close("Sell", "Initial Stop Loss Hit") // Exit the short position // Apply trailing stop logic for short positions if (strategy.position_size < 0) // Check if in a short position if (entryPrice - close >= trailPoints) // If the price has moved down by the threshold trailStop := na(trailStop) ? close + trailPoints : math.min(trailStop, close + trailPoints) // Adjust trailing stop downwards if not na(trailStop) and close > trailStop // If the price rises above the trailing stop strategy.close("Sell", "Trailing Stop Hit") // Exit the short position