یہ حکمت عملی دوہری حرکت پذیر اوسط کراس اوورز اور وقت کی اصلاح پر مبنی رجحان کے بعد ٹریڈنگ کا نظام ہے۔ یہ خرید و فروخت کے سگنل پیدا کرنے کے لئے قلیل مدتی اور طویل مدتی حرکت پذیر اوسط کے تقاطع کا استعمال کرتا ہے ، جبکہ تجارتی عمل درآمد کو بہتر بنانے کے لئے ایک مخصوص تجارتی وقت کی ونڈو کو شامل کرتا ہے۔ اس حکمت عملی میں خطرہ اور منافع کے انتظام کے لئے متعدد ہدف کی قیمتیں اور اسٹاپ نقصان کی سطح بھی شامل ہیں۔
اس حکمت عملی کا بنیادی اصول مارکیٹ کے رجحانات کی نشاندہی کرنے اور تجارتی سگنل پیدا کرنے کے لئے مختلف ادوار کے ساتھ دو چلتے ہوئے اوسط (ایم اے) کا استعمال کرنا ہے۔ خاص طور پر:
قلیل مدتی اور طویل مدتی ایم اے: حکمت عملی میں دو صارف کی طرف سے مقرر کردہ چلتی اوسط مدت کا استعمال کیا جاتا ہے، جو قلیل مدتی اور طویل مدتی مارکیٹ کے رجحانات کی نمائندگی کرتا ہے.
کراس اوور سگنل: خریدنے کا سگنل اس وقت پیدا ہوتا ہے جب قلیل مدتی ایم اے طویل مدتی ایم اے سے اوپر جاتا ہے۔ فروخت کا سگنل اس وقت پیدا ہوتا ہے جب قلیل مدتی ایم اے طویل مدتی ایم اے سے نیچے جاتا ہے۔
ٹائم آپٹیمائزیشن: حکمت عملی میں ٹریڈنگ ٹائم ونڈو کا تصور متعارف کرایا گیا ہے ، جس میں صرف صارف کے ذریعہ مخصوص UTC وقت کی حد میں ہی تجارت کی جاتی ہے ، جس سے مارکیٹ میں زیادہ اتار چڑھاؤ یا کم لیکویڈیٹی کے دوروں سے بچنے میں مدد ملتی ہے۔
متعدد ٹارگٹ قیمتیں: حکمت عملی ہر تجارت کے لئے دو ٹارگٹ قیمتیں (ٹارگٹ_ 1 اور ٹارگٹ_ 2) طے کرتی ہے ، جس سے فائدہ اٹھانے کی اجازت ہوتی ہے۔
خطرے کا انتظام: ہر تجارت کو ممکنہ نقصانات کو محدود کرنے کے لئے سٹاپ نقصان کے ساتھ مقرر کیا جاتا ہے.
نمائش: حکمت عملی خرید و فروخت کے سگنل کو نشان زد کرتی ہے اور چارٹ پر قیمت کے اہداف کو لیبل لگاتی ہے ، جس سے تاجروں کو مارکیٹ کی حرکیات کو بدیہی طور پر سمجھنے کی اجازت ملتی ہے۔
رجحان کی پیروی: حرکت پذیر اوسط کراس اوورز کا استعمال کرتے ہوئے، حکمت عملی مؤثر طریقے سے مارکیٹ کے رجحانات کو پکڑ سکتی ہے، منافع کے مواقع کو بڑھا سکتی ہے.
وقت کی اصلاح: تجارتی وقت کی کھڑکی کو محدود کرکے ، حکمت عملی سب سے زیادہ فعال اور منافع بخش مارکیٹ کے ادوار پر توجہ مرکوز کرسکتی ہے ، جس سے تجارتی کارکردگی میں بہتری آتی ہے۔
رسک مینجمنٹ: متعدد ہدف قیمتوں اور سٹاپ نقصان کی ترتیبات سرمایہ کی حفاظت کرتے ہوئے خطرہ اور منافع کو متوازن کرنے میں مدد کرتی ہیں۔
لچک: صارفین اپنی ذاتی ترجیحات اور مارکیٹ کی خصوصیات کے مطابق ایم اے کی مدت، ہدف کی قیمتوں اور تجارتی وقت کی کھڑکیوں کو ایڈجسٹ کرسکتے ہیں۔
بصری امداد: چارٹ پر خرید / فروخت کے سگنل اور ہدف قیمت کی کامیابیوں کو نوٹ کرکے ، تاجر حکمت عملی کی کارکردگی کو زیادہ بدیہی طور پر سمجھ سکتے ہیں۔
دو طرفہ تجارت: یہ حکمت عملی مختلف مارکیٹ کے ماحول میں مواقع تلاش کرنے کے ل long طویل اور مختصر پوزیشنوں کی حمایت کرتی ہے۔
متضاد مارکیٹ کا خطرہ: سائیڈ ویز مارکیٹس میں، اکثر ایم اے کراس اوورز سے بہت زیادہ غلط سگنل اور تجارتی اخراجات پیدا ہو سکتے ہیں۔
سکڑنے کا خطرہ: تیز رفتار منڈیوں میں ، اصل عملدرآمد کی قیمتیں سگنل کی پیداوار کی قیمتوں سے نمایاں طور پر مختلف ہوسکتی ہیں۔
تاریخی اعداد و شمار پر زیادہ انحصار: حرکت پذیر اوسط پیچھے رہ جانے والے اشارے ہیں اور اچانک مارکیٹ میں تبدیلیوں پر بروقت ردعمل ظاہر نہیں کرسکتے ہیں۔
ٹائم ونڈو کی حدود: سخت تجارتی وقت کی پابندیوں سے اہم مارکیٹ کے مواقع ضائع ہوسکتے ہیں۔
فکسڈ سٹاپ نقصان کا خطرہ: اعلی اتار چڑھاؤ کے ادوار کے دوران فکسڈ پوائنٹ سٹاپ نقصان کا استعمال کافی لچکدار نہیں ہوسکتا ہے۔
اوور ٹریڈنگ: مخصوص مارکیٹ کے حالات میں، حکمت عملی بہت زیادہ ٹریڈنگ سگنل پیدا کر سکتی ہے، جس سے ٹرانزیکشن کی لاگت میں اضافہ ہوتا ہے۔
متحرک پیرامیٹر ایڈجسٹمنٹ: مارکیٹ کی اتار چڑھاؤ کی بنیاد پر ایم اے کی مدت اور تجارتی پیرامیٹرز کو متحرک طور پر ایڈجسٹ کرنے کے لئے موافقت پذیر میکانزم متعارف کرانے پر غور کریں۔
اتار چڑھاؤ فلٹرنگ: کم اتار چڑھاؤ کے ادوار کے دوران زیادہ تجارت سے بچنے کے لئے تجارتی سگنل پیدا کرنے سے پہلے مارکیٹ کی اتار چڑھاؤ کا اندازہ کریں۔
سٹاپ نقصان کا بہتر طریقہ کار: مختلف مارکیٹ کے حالات کو اپنانے کے لیے اے ٹی آر (اوسط حقیقی رینج) پر مبنی متحرک سٹاپ نقصان کا استعمال کرنے پر غور کریں۔
دیگر تکنیکی اشارے کا انضمام: جیسے آر ایس آئی یا ایم اے سی ڈی، رجحان کی طاقت کی تصدیق اور سگنل کے معیار کو بہتر بنانے کے لئے۔
بیک ٹیسٹنگ کی اصلاح: بہترین پیرامیٹر مجموعے اور وقت کی ونڈو کی ترتیبات تلاش کرنے کے لئے زیادہ وسیع تاریخی ڈیٹا بیک ٹیسٹنگ کریں۔
کیپٹل مینجمنٹ کی اصلاح: زیادہ نفیس پوزیشن سائزنگ کی حکمت عملیوں کو نافذ کریں ، جیسے اکاؤنٹ کے سائز اور مارکیٹ کی اتار چڑھاؤ کی بنیاد پر تجارت کے سائز کو متحرک طور پر ایڈجسٹ کرنا۔
بنیادی عوامل پر غور: انتہائی غیر یقینی صورتحال کے دوران تجارت سے بچنے کے لئے اہم معاشی اعداد و شمار کی رہائی سے پہلے اور بعد میں حکمت عملی کے رویے کو ایڈجسٹ کریں۔
مشین لرننگ انٹیگریشن: پیرامیٹر انتخاب اور سگنل جنریشن کے عمل کو بہتر بنانے کے لئے مشین لرننگ الگورتھم کا استعمال کرتے ہوئے دریافت کریں۔
ڈبل موونگ ایوریج مومنٹم ٹریڈنگ حکمت عملی ایک رجحان پر عمل کرنے والا نظام ہے جو تکنیکی تجزیہ کو وقت کی اصلاح کے ساتھ جوڑتا ہے۔ چلتی اوسط کراس اوورز اور احتیاط سے ڈیزائن کردہ تجارتی وقت کی ونڈو کا فائدہ اٹھاتے ہوئے ، اس حکمت عملی کا مقصد مارکیٹ کے رجحانات کو پکڑنا اور تجارت کے عمل کو بہتر بنانا ہے۔ اگرچہ اس حکمت عملی میں بدیہی اور لچک جیسے فوائد ہیں ، لیکن اسے مارکیٹ میں اتار چڑھاؤ اور اوور ٹریڈنگ جیسے خطرات کا بھی سامنا کرنا پڑتا ہے۔ مسلسل اصلاح اور بہتری کے ذریعے ، جیسے متحرک پیرامیٹر ایڈجسٹمنٹ متعارف کرانا ، رسک مینجمنٹ کے طریقہ کار کو بہتر بنانا ، اور زیادہ تکنیکی اشارے کو مربوط کرنا ، اس حکمت عملی میں زیادہ مضبوط اور موثر تجارتی نظام بننے کی صلاحیت ہے۔ اس حکمت عملی کا استعمال کرنے والے تاجروں کو اس کے اصولوں کو مکمل طور پر سمجھنا چاہئے اور ذاتی خطرہ کی ترجیحات اور مارکیٹ کے ماحول کی بنیاد پر پیرامیٹر کی مناسب ایڈجسٹمنٹ کرنا چاہئے۔
/*backtest start: 2024-07-23 00:00:00 end: 2024-07-30 00:00:00 period: 2m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Gold Trend Trader", shorttitle="Gold Trader", overlay=true) // User-defined input for moving averages shortMA = input.int(10, minval=1, title="Short MA Period") longMA = input.int(100, minval=1, title="Long MA Period") target_1 = input.int(100, minval=1, title="Target_1") target_2 = input.int(150, minval=1, title="Target_2") // User-defined input for the start and end times with default values startTimeInput = input.int(12, title="Start Time for Session (UTC, in hours)", minval=0, maxval=23) endTimeInput = input.int(17, title="End Time Session (UTC, in hours)", minval=0, maxval=23) // Convert the input hours to minutes from midnight startTime = startTimeInput * 60 endTime = endTimeInput * 60 // Function to convert the current exchange time to UTC time in minutes toUTCTime(exchangeTime) => exchangeTimeInMinutes = exchangeTime / 60000 // Adjust for UTC time utcTime = exchangeTimeInMinutes % 1440 utcTime // Get the current time in UTC in minutes from midnight utcTime = toUTCTime(time) // Check if the current UTC time is within the allowed timeframe isAllowedTime = (utcTime >= startTime and utcTime < endTime) // Calculating moving averages shortMAValue = ta.sma(close, shortMA) longMAValue = ta.sma(close, longMA) // Plotting the MAs plot(shortMAValue, title="Short MA", color=color.blue) plot(longMAValue, title="Long MA", color=color.red) // Tracking buy and sell signals var float buyEntryPrice_1 = na var float buyEntryPrice_2 = na var float sellEntryPrice_1 = na var float sellEntryPrice_2 = na // Logic for Buy and Sell signals buySignal = ta.crossover(shortMAValue, longMAValue) and isAllowedTime sellSignal = ta.crossunder(shortMAValue, longMAValue) and isAllowedTime // Entry conditions for long and short trades if (buySignal) strategy.entry("Buy_1", strategy.long) strategy.exit("TP_1", "Buy_1", limit=close + target_1, stop=close - 100) strategy.entry("Buy_2", strategy.long) strategy.exit("TP_2", "Buy_2", limit=close + target_2, stop=close - 1500) if (sellSignal) strategy.entry("Sell_1", strategy.short) strategy.exit("TP_3", "Sell_1", limit=close - target_1, stop=close + 100) strategy.entry("Sell_2", strategy.short) strategy.exit("TP_4", "Sell_2", limit=close - target_2, stop=close + 150) // Apply background color for entry candles barcolor(buySignal ? color.green : sellSignal ? color.red : na) // Creating buy and sell labels if (buySignal) label.new(bar_index, low, text="BUY", style=label.style_label_up, color=color.green, textcolor=color.white, yloc=yloc.belowbar) if (sellSignal) label.new(bar_index, high, text="SELL", style=label.style_label_down, color=color.red, textcolor=color.white, yloc=yloc.abovebar) // Creating labels for 100-point movement if (not na(buyEntryPrice_1) and close >= buyEntryPrice_1 + target_1) label.new(bar_index, high, text=str.tostring(target_1), style=label.style_label_down, color=color.green, textcolor=color.white, yloc=yloc.abovebar) buyEntryPrice_1 := na // Reset after label is created if (not na(buyEntryPrice_2) and close >= buyEntryPrice_2 + target_2) label.new(bar_index, high, text=str.tostring(target_2), style=label.style_label_down, color=color.green, textcolor=color.white, yloc=yloc.abovebar) buyEntryPrice_2 := na // Reset after label is created if (not na(sellEntryPrice_1) and close <= sellEntryPrice_1 - target_1) label.new(bar_index, low, text=str.tostring(target_1), style=label.style_label_up, color=color.red, textcolor=color.white, yloc=yloc.belowbar) sellEntryPrice_1 := na // Reset after label is created if (not na(sellEntryPrice_2) and close <= sellEntryPrice_2 - target_2) label.new(bar_index, low, text=str.tostring(target_2), style=label.style_label_up, color=color.red, textcolor=color.white, yloc=yloc.belowbar) sellEntryPrice_2 := na // Reset after label is created