ایکسپونینشل موونگ ایوریج کراس اوور انٹیلجنٹ فکسڈ انویسٹمنٹ چین سٹاپ نقصان سے باخبر رہنے کا نظام

EMA DCA ATR SO SL
تخلیق کی تاریخ: 2025-04-16 15:30:15 آخر میں ترمیم کریں: 2025-07-17 08:57:10
کاپی: 7 کلکس کی تعداد: 387
2
پر توجہ دیں
319
پیروکار

ایکسپونینشل موونگ ایوریج کراس اوور انٹیلجنٹ فکسڈ انویسٹمنٹ چین سٹاپ نقصان سے باخبر رہنے کا نظام ایکسپونینشل موونگ ایوریج کراس اوور انٹیلجنٹ فکسڈ انویسٹمنٹ چین سٹاپ نقصان سے باخبر رہنے کا نظام

جائزہ

انڈیکس منتقل اوسط کراس انٹیلجنٹ سپلائی چینج اسٹاپ ٹریکنگ سسٹم ایک تکنیکی تجزیہ اور نفیس فنڈ مینجمنٹ پر مبنی ایک مقداری تجارتی حکمت عملی ہے۔ اس حکمت عملی میں انڈیکس منتقل اوسط ((EMA) کراس سگنل کا استعمال کیا جاتا ہے تاکہ ممکنہ عروج کا رجحان معلوم کیا جاسکے ، ڈالر کی لاگت اوسط ((DCA) کے ساتھ مل کر اس میں ذہین پوزیشننگ کی جاسکتی ہے ، اور ڈبل ٹریکنگ اسٹاپ نقصان کے طریقہ کار کے ذریعہ منافع کی حفاظت کی جاسکتی ہے۔ اس حکمت عملی کا بنیادی مقصد یہ ہے کہ تیز رفتار EMA اور سست رفتار EMA کے کراس کا استعمال کرتے ہوئے ، جب قیمتوں میں کمی واقع ہوتی ہے تو ، خود بخود دو تک سیفٹی آرڈرز ((سیفٹی آرڈرز) کو خود بخود تعینات کیا جاسکتا ہے ، جس میں اوسطاً حقیقی اتار چڑھاؤ کی حد ((ATR) یا مقررہ فیصد حساب کتاب کی پوزیشننگ کی جاتی ہے ، اور ڈبل ٹریکنگ اسٹاپ سسٹم کے معیار کو استعمال کرتے ہوئے (نقصانات کو روکنے اور منافع

حکمت عملی کا اصول

اس حکمت عملی کے کام کرنے کے اصول چند اہم اجزاء پر مبنی ہیں:

  1. رجحانات کی شناخت کا طریقہ کار: ممکنہ اوپر کی طرف رجحان کی شناخت کے لئے فاسٹ ای ایم اے ((پہلے سے طے شدہ 9 سائیکل) اور سست ای ایم اے ((پہلے سے طے شدہ 21 سائیکل) کا ایک کراس استعمال کریں۔ جب فاسٹ ای ایم اے اوپر کی طرف سست ای ایم اے کو عبور کرتا ہے تو ، نظام خریدنے کا اشارہ دیتا ہے۔

  2. بنیادی آرڈر اور سیکیورٹی آرڈرحکمت عملی: اسٹریٹجک فنڈ مینجمنٹ کا استعمال کرتے ہوئے ، بنیادی آرڈر سے شروع کریں (ڈفالٹ \( 1000) اور قیمتوں میں کمی کے وقت دو اضافی سیکیورٹی آرڈرز شامل کریں (SO1 ڈیفالٹ \) 1250 ، SO2 ڈیفالٹ $ 1750) ۔

  3. متحرک وقفہ حسابسیکیورٹی آرڈرز کے لئے ٹرگر کی قیمت کا حساب دو طریقوں سے لگایا جاسکتا ہے:

    • اے ٹی آر فاصلہ: مارکیٹ میں اتار چڑھاؤ کو ایڈجسٹ کرنے کے لئے اے ٹی آر کو کسی خاص ضرب ((SO1 ڈیفالٹ 1.2 گنا ، SO2 ڈیفالٹ 2.5 گنا) کے ساتھ ضرب کریں
    • مقررہ فیصد وقفہ: قیمتوں میں کمی کا فیصد پہلے سے طے شدہ استعمال کرتے ہوئے ((SO1 ڈیفالٹ 4٪ ، SO2 ڈیفالٹ 8٪)
  4. ڈبل ٹریکنگ سٹاپ نقصان نظام:

    • سٹینڈرڈ ٹریکنگ سٹاپ نقصان: مقرر کردہ فی صد (ڈیفالٹ 8٪)
    • منافع لاک ٹریکنگ اسٹاپ نقصان: منافع کی ایک مخصوص حد تک پہنچنے پر متحرک ہوجاتا ہے (ڈیفالٹ 2.5٪) ، اور اس سے زیادہ قریب سے ٹریکنگ فیصد (ڈیفالٹ 1.5٪) استعمال ہوتا ہے
  5. دستبرداری کی شرائطحکمت عملی:

    • کسی بھی ٹریکنگ نقصان کو متحرک کیا
    • تیز EMA نیچے کی طرف سے سست EMA کے ذریعے (رجحان الٹ)
  6. ٹھنڈک کا دورانیہ اور تاریخ فلٹر: حکمت عملی میں بنیادی آرڈر کے بعد ٹھنڈا ہونے کا دورانیہ (ڈیفالٹ 4 گھنٹے) اور اختیاری تاریخ فلٹرز شامل ہیں تاکہ کسی خاص وقت کی مدت کو محدود کیا جاسکے۔

اسٹریٹجک فوائد

اس حکمت عملی کے کوڈ کا گہرائی سے تجزیہ کرتے ہوئے ، ہم مندرجہ ذیل اہم فوائد کا خلاصہ کرسکتے ہیں:

  1. انکولی فنڈ مینجمنٹ: حکمت عملی میں ڈالر کی لاگت کی اوسط کو متحرک سیکیورٹی آرڈرز کے ساتھ ملایا گیا ہے ، جو مارکیٹ کے حالات کے مطابق پوزیشنوں کو خود بخود ایڈجسٹ کرتی ہے۔ یہ طریقہ خاص طور پر اتار چڑھاؤ والے بازاروں میں موثر ہے ، جس سے اوسط لاگت کی قیمت کو کم کیا جاسکتا ہے اور ممکنہ منافع میں اضافہ ہوتا ہے۔

  2. پوزیشن کی تبدیلی کی بنیاد پر ایڈجسٹمنٹ: اے ٹی آر کے ذریعہ سیکیورٹی آرڈر کی پوزیشنوں کا حساب لگانے سے ، حکمت عملی موجودہ مارکیٹ میں اتار چڑھاؤ کے مطابق خود بخود پوزیشن لگانے کے وقفے کو ایڈجسٹ کرسکتی ہے ، جو مقررہ فیصد کے طریقہ کار سے زیادہ لچکدار ہے۔

  3. منافع کی دوہری حفاظت: ڈبل ٹریکنگ اسٹاپ سسٹم جدید رسک مینجمنٹ مہیا کرتا ہے ، معیاری ٹریکنگ اسٹاپ زیادہ تر فنڈز کی حفاظت کرتا ہے ، جبکہ منافع کو لاک کرنے والا میکانزم مخصوص منافع کے اہداف کو حاصل کرنے کے بعد متحرک ہوتا ہے ، جو حاصل شدہ منافع کو زیادہ مضبوط فیصد کے ساتھ محفوظ کرتا ہے۔

  4. مکمل طور پر مرضی کے مطابق: تمام اہم پیرامیٹرز (ای ایم اے کی لمبائی، آرڈر کا سائز، ٹریکنگ سٹاپ نقصان فی صد، سیکورٹی آرڈر کا وقفہ) تاجر کے خطرے کی ترجیحات اور مارکیٹ کے حالات کے مطابق ایڈجسٹ کیا جا سکتا ہے.

  5. انٹیگریٹڈ ابتدائی انتباہ کا نظاماس حکمت عملی میں فارمیٹڈ انتباہی شرائط شامل ہیں جو تیسری پارٹی کے آٹومیشن پلیٹ فارمز (جیسے 3Commas) کے ساتھ مربوط ہیں تاکہ مکمل طور پر خودکار تجارت کی جاسکے۔

  6. شفاف تعیناتی معلومات: اس میں تفصیلی ڈیبگنگ ٹیبلز شامل ہیں ، جو اہم تجارتی اشارے اور حالت کو ظاہر کرتے ہیں ، جو حقیقی وقت کی نگرانی اور حکمت عملی کو بہتر بنانے میں مدد فراہم کرتے ہیں۔

اسٹریٹجک رسک

اگرچہ اس حکمت عملی کے بہت سے فوائد ہیں ، لیکن اس میں ممکنہ خطرات بھی شامل ہیں:

  1. فنڈز کے نقصان کا خطرہ: ایک شدید نیچے کی طرف رجحان میں، یہاں تک کہ ایک پرتوں میں اضافہ بھی شدید نقصان کا سبب بن سکتا ہے۔ واپسی توقع سے زیادہ ہوسکتی ہے، خاص طور پر مارکیٹ میں اچانک بڑھتی ہوئی اتار چڑھاؤ کی صورت میں۔

حل: ٹریکنگ اسٹاپ نقصان کی فیصد اور سیکیورٹی آرڈر کے وقفے کو مخصوص ٹرانزیکشن کی قسم اور ٹائم فریم کے مطابق ایڈجسٹ کریں۔ اضافی تحفظ کی پرت کے طور پر عالمی سطح پر اسٹاپ نقصان کو شامل کرنے پر غور کریں۔

  1. پیرامیٹر کی حساسیت: حکمت عملی کی کارکردگی ای ایم اے پیرامیٹرز ، اے ٹی آر ضرب اور ٹریکنگ اسٹاپ نقصان کی ترتیبات پر بہت زیادہ انحصار کرتی ہے۔ غلط پیرامیٹرز کی ترتیبات سے اچھے رجحان سے جلد یا دیر سے باہر نکلنے کا سبب بن سکتا ہے۔

حل: ٹرانزیکشن کی مخصوص اقسام اور مارکیٹ کے حالات کے لئے تفصیلی ریٹرننگ اور اصلاحات؛ موافقت پذیر پیرامیٹرز ایڈجسٹمنٹ میکانزم کا نفاذ۔

  1. غیر فعال سیکیورٹی آرڈرز کا خطرہاس کے علاوہ ، یہ بھی کہا گیا ہے کہ اگر آپ کے پاس کوئی آرڈر نہیں ہے تو ، آپ کو اس کے لئے ادائیگی کرنے کی ضرورت نہیں ہے۔

*حل*سیکیورٹی آرڈر ٹرگر کے زیادہ لچکدار میکانزم پر غور کریں ، جیسے وقت پر مبنی لازمی عملدرآمد یا مخصوص مارکیٹ کے حالات میں وقفے کو ایڈجسٹ کرنا۔

  1. زیادہ تجارتای ایم اے کی کراسنگ اکثر افقی مارکیٹوں میں ہوتی ہے جس کی وجہ سے زیادہ تجارت اور کمیشن کی لاگت میں اضافہ ہوتا ہے۔

حل: ٹریڈنگ فلٹرز کو شامل کریں ، جیسے اتار چڑھاؤ کی کمی یا رجحان کی طاقت کی تصدیق؛ تجارت کی تعدد کو کم کرنے کے لئے سرد مدت میں توسیع۔

  1. تکنیکی اشارے پر انحصاریہ حکمت عملی بنیادی عوامل اور میکرو مارکیٹ کے حالات کو نظر انداز کرتے ہوئے ای ایم اے کراسنگ اور قیمت کے عمل پر مکمل طور پر انحصار کرتی ہے۔

حل: بنیادی فلٹرز یا خطرے کے جذبات کے اشارے کو مربوط کرنے پر غور کریں۔ تصدیق کے اشارے کے طور پر کراس مارکیٹ مطابقت کی جانچ پڑتال شامل کریں۔

حکمت عملی کی اصلاح کی سمت

پالیسی کوڈ کے گہرائی سے تجزیہ کے مطابق ، کچھ ممکنہ اصلاحات یہ ہیں:

  1. خود کار طریقے سے پیرامیٹرز کو ایڈجسٹ: مارکیٹ میں اتار چڑھاؤ یا ٹرانزیکشن کی مقدار پر مبنی EMA لمبائی اور ATR ضرب کو خود بخود ایڈجسٹ کرنے کا طریقہ کار۔ مثال کے طور پر ، اعلی اتار چڑھاؤ والے ماحول میں طویل EMA اور بڑے ATR ضرب کا استعمال کریں ، کم اتار چڑھاؤ والے ماحول میں مختصر EMA اور چھوٹے ATR ضرب کا استعمال کریں۔ اس سے مختلف مارکیٹ کے حالات میں حکمت عملی کی موافقت میں اضافہ ہوگا۔

  2. ایک سے زیادہ تصدیق سگنل: اضافی تصدیق کے اشارے شامل کریں ، جیسے نسبتا strong مضبوط انڈیکس ((RSI) ، ٹرانسمیشن حجم یا برلن بینڈ ، جعلی سگنل کو کم کرنے کے لئے۔ فلٹر کو لاگو کیا جاسکتا ہے ، جس میں متعدد تکنیکی اشارے کی ضرورت ہوتی ہے جو ایک ہی وقت میں آنے والے سگنل کی تصدیق کرتے ہیں ، اس طرح سگنل کے معیار کو بہتر بناتے ہیں۔

  3. متحرک فنڈز کی تقسیم: مارکیٹ کے حالات اور تاریخی اتار چڑھاؤ کے مطابق آرڈر کے سائز کو ایڈجسٹ کریں۔ مثال کے طور پر ، کم اتار چڑھاؤ والے یا تاریخی طور پر بڑھنے کے زیادہ امکان والے مارکیٹ کے مراحل میں بنیادی آرڈر کا سائز بڑھائیں ، جبکہ اعلی خطرہ والے ماحول میں اس میں کمی کریں۔

  4. ہوشیار باہر نکلنے کی حکمت عملی: جزوی منافع بخش میکانزم کو لاگو کریں ، جس سے منافع کے مختلف سطحوں پر تدریجی طور پر باہر نکلنے کی اجازت دی جاسکے ، نہ کہ ایک بار کی جگہ۔ یہ متعدد منافع کے اہداف اور اس کے مطابق نکلنے کے فیصد کو ترتیب دے کر حاصل کیا جاسکتا ہے ، جس سے رسک ریٹرن کو بہتر بنایا جاسکتا ہے۔

  5. جذباتی انڈیکس انضمام: مارکیٹ کے جذبات کے تجزیے کو شامل کریں ، جیسے خوف اور لالچ انڈیکس یا حجم تجزیہ ، داخلہ اور باہر نکلنے کے لئے اضافی فلٹرز کے طور پر۔ اس سے حکمت عملی کو انتہائی مارکیٹ کے جذبات کے اوقات میں غیر ضروری تجارت سے بچنے میں مدد ملے گی۔

  6. خطرے کی نمائش کا انتظام: متحرک طور پر زیادہ سے زیادہ رسک کی نمائش کا حساب لگانے کی صلاحیت (تمام ممکنہ سیکیورٹی آرڈرز کا مجموعی) کو لاگو کریں اور زیادہ سے زیادہ رسک کی قابل قبول حد طے کریں۔ اس سے یہ یقینی بنایا جائے گا کہ حکمت عملی کسی بھی وقت کسی بھی تجارت میں زیادہ سے زیادہ فنڈز کی نمائش نہیں کرتی ہے۔

خلاصہ کریں۔

انڈیکس موبائل اوسط کراس انٹیلجنٹ فکسڈ اسپیکرچین اسٹاپ ٹریکنگ سسٹم ایک اچھی طرح سے ڈیزائن کردہ مقداری تجارت کی حکمت عملی ہے جو رجحان کا پتہ لگانے ، پرتوں میں ذخیرہ کرنے اور اعلی درجے کی اسٹاپ مینجمنٹ کو جوڑتی ہے۔ اس کا بنیادی فائدہ مارکیٹ میں اتار چڑھاؤ کو اپنانے کی صلاحیت ، ذہین فنڈ مینجمنٹ اور دوہری منافع کے تحفظ کا نظام ہے۔ یہ حکمت عملی خاص طور پر درمیانے درجے کی اتار چڑھاؤ والی مارکیٹ کے ماحول کے لئے موزوں ہے ، جہاں رجحانات کافی مستقل اور سمت رکھتے ہیں۔

مناسب پیرامیٹرز کو بہتر بنانے اور سفارشات کو بڑھانے کے ذریعہ ، اس حکمت عملی کو اس کی کارکردگی اور استحکام کو مزید بہتر بنایا جاسکتا ہے۔ خاص طور پر ، خود بخود پیرامیٹرز کی ایڈجسٹمنٹ اور متعدد تصدیق کے اشارے سے داخلے کے معیار میں نمایاں اضافہ ہوسکتا ہے ، جبکہ متحرک فنڈز کی تقسیم اور ذہین واپسی کی حکمت عملی سے خطرے سے متعلق واپسی کی خصوصیات کو بہتر بنایا جاسکتا ہے۔

آخر کار ، یہ حکمت عملی ایک متوازن ، مقدار کے ساتھ تجارت کرنے کے طریقہ کار کی نمائندگی کرتی ہے ، جس میں ہر تجارت میں زیادہ سے زیادہ منافع کے حصول کی بجائے فنڈز کے تحفظ اور مستقل مزاجی پر توجہ دی جاتی ہے۔ یہ تاجروں کو ایک مضبوط فریم ورک مہیا کرتا ہے جو انفرادی خطرے کی ترجیحات اور مارکیٹ کے حالات کے مطابق اپنی مرضی کے مطابق بنایا جاسکتا ہے ، جس سے ممکنہ طور پر طویل مدتی پائیدار تجارتی نتائج حاصل ہوسکتے ہیں۔

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2025-04-15 00:00:00
end: 2025-07-13 19:30:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT","balance":200000}]
*/

//@version=5
strategy(
     title="DCA + Dual Trailing Strategy", 
     overlay=true 
     )

// --- Trend ---
fastMALen = input.int(9, title="Fast EMA Length")
slowMALen = input.int(21, title="Slow EMA Length")

// --- Trailing Stops ---
trailStopPerc   = input.float(8.0, title="Standard Trailing Stop (%)", minval=0.1) / 100
lockInThreshold = input.float(2.5,  title="Profit Lock-In Trigger (%)", minval=0.1) / 100
lockInTrailPct  = input.float(1.5,  title="Lock-In Trail (%) after Trigger", minval=0.1) / 100

// --- Safety Orders (SO) ---
useATRSpacing     = input.bool(true, title="Use ATR-Based Spacing?")
atrLength         = input.int(14,   title="ATR Length", minval=1)
atrSo1Multiplier  = input.float(1.2, title="ATR SO1 Multiplier", minval=0.1)
atrSo2Multiplier  = input.float(2.5, title="ATR SO2 Multiplier", minval=0.1)

// --- Fallback SO Spacing (if not using ATR) ---
fallbackSo1Perc = input.float(4.0,  title="Fallback SO1 Drop (%) ", minval=0.1) / 100
fallbackSo2Perc = input.float(8.0, title="Fallback SO2 Drop (%) ", minval=0.1) / 100

// --- Entry Cooldown ---
cooldownBars = input.int(4, "Cooldown Bars After Base Entry", minval=0)

// --- Order Sizes in USD ---
baseUsd = input.float(10000.0, title="Base Order Size (USD)", minval=1.0)
so1Usd  = input.float(12500.0, title="Safety Order 1 Size (USD)", minval=1.0)
so2Usd  = input.float(17500.0, title="Safety Order 2 Size (USD)", minval=1.0)

// 2) CALCULATIONS

// --- Trend & Reversal Detection ---
fastMA    = ta.ema(close, fastMALen)
slowMA    = ta.ema(close, slowMALen)
trendUp   = ta.crossover(fastMA, slowMA)
trendDown = ta.crossunder(fastMA, slowMA)

// --- ATR Value ---
atrValue = ta.atr(atrLength)

// 3) BASE ENTRY LOGIC

// Base Buy Signal: EMA crossover
baseBuySignal = trendUp

var int   lastBuyBar     = na // Tracks the bar index of the last base entry
inCooldown = not na(lastBuyBar) and (bar_index - lastBuyBar < cooldownBars)

var float baseEntryPrice = na // Stores the price of the initial base entry for SO calculations

// --- Execute Base Entry ---
if baseBuySignal and strategy.position_size == 0 and not inCooldown
    baseQty = baseUsd / close // Calculate quantity based on USD
    strategy.order("Base Order", strategy.long, qty=baseQty, comment="Base Entry")
    baseEntryPrice := close
    lastBuyBar     := bar_index

// 4) SAFETY ORDERS LOGIC

// --- Calculate SO Trigger Prices ---
float so1TriggerPrice = na
float so2TriggerPrice = na

if strategy.position_size > 0 // Only calculate if a base order has been placed
    so1TriggerPrice := useATRSpacing ?
         (baseEntryPrice - atrValue * atrSo1Multiplier) :
         (baseEntryPrice * (1 - fallbackSo1Perc))

    so2TriggerPrice := useATRSpacing ?
         (baseEntryPrice - atrValue * atrSo2Multiplier) :
         (baseEntryPrice * (1 - fallbackSo2Perc))


// --- Conditions for SO Execution ---
// Added 'inDateRange' check
// Ensure base order exists, price trigger hit, and the specific SO hasn't filled yet
bool so1Condition = strategy.position_size > 0 and close <= so1TriggerPrice and strategy.opentrades == 1
bool so2Condition = strategy.position_size > 0 and close <= so2TriggerPrice and strategy.opentrades == 2


// --- Execute SO1 ---
if so1Condition
    so1Qty = so1Usd / close // Calculate quantity based on USD
    strategy.order("Safety Order 1", strategy.long, qty=so1Qty, comment="SO1")

// --- Execute SO2 ---
if so2Condition
    so2Qty = so2Usd / close // Calculate quantity based on USD
    strategy.order("Safety Order 2", strategy.long, qty=so2Qty, comment="SO2")

// 5) AVERAGE ENTRY PRICE

// Use the built-in variable for the average price of the open position
avgEntryPrice = strategy.position_avg_price

// 6) DUAL TRAILING STOP LOGIC

// Variables to track trailing stop levels and states
var float highestSinceEntry = na
var float trailStopPrice    = na
var bool  stopHitNormal     = false

var bool  lockInTriggered = false
var float lockInPeak      = na
var float lockInStopPrice = na
var bool  stopHitLockIn   = false

// --- Update Trailing Logic when in a Position ---
if strategy.position_size > 0
    // --- Standard Trail ---
    highestSinceEntry := na(highestSinceEntry) ? close : math.max(highestSinceEntry, close)
    trailStopPrice    := highestSinceEntry * (1 - trailStopPerc)
    stopHitNormal     := close < trailStopPrice

    // --- Lock-In Trail ---
    if not lockInTriggered and close >= avgEntryPrice * (1 + lockInThreshold)
        lockInTriggered := true
        lockInPeak      := close

    if lockInTriggered
        lockInPeak      := math.max(lockInPeak, close)
        lockInStopPrice := lockInPeak * (1 - lockInTrailPct)
        stopHitLockIn   := close < lockInStopPrice
    else
        stopHitLockIn   := false
        lockInStopPrice := na

// --- Reset Variables when Flat ---
else

    highestSinceEntry := na
    trailStopPrice    := na
    stopHitNormal     := false

    lockInTriggered   := false
    lockInPeak        := na
    lockInStopPrice   := na
    stopHitLockIn     := false


    // lastBuyBar is intentionally NOT reset here, cooldown depends on it

// 7) EXIT CONDITIONS

// Added 'inDateRange' check
// Exit if either trailing stop is hit OR if the trend reverses downward
exitCondition = (stopHitNormal or stopHitLockIn or trendDown) and strategy.position_size > 0

if exitCondition
    strategy.close_all(comment="Exit: SL / LockIn / TrendDown")


// 9) PLOTS & DEBUG TABLE

// --- Plot MAs ---
plot(fastMA, color=color.new(color.green, 0), title="Fast EMA", linewidth=2)
plot(slowMA, color=color.new(color.red, 0),   title="Slow EMA", linewidth=2)

// --- Plot Trailing Stops ---
plot(strategy.position_size > 0 ? trailStopPrice : na, color=color.new(color.orange, 0), title="Standard Trailing Stop", style=plot.style_linebr, linewidth=2)
plot(lockInTriggered ? lockInStopPrice : na, color=color.new(color.fuchsia, 0), title="Lock-In Trailing Stop", style=plot.style_linebr, linewidth=2)