یہ حکمت عملی EMA کراس اوور پر مبنی خودکار تجارت کو نافذ کرنے کے لئے تیز EMA اور سست EMA لائنوں کے کراس اوور کو خرید اور فروخت سگنل کے طور پر استعمال کرتی ہے۔ تیز EMA لائن قیمت کی کارروائی کی قریب سے پیروی کرتی ہے جبکہ سست EMA لائن قیمت کی کارروائی کو ہموار کرتی ہے۔ جب تیز EMA لائن نیچے سے سست EMA لائن کے اوپر سے عبور کرتی ہے تو ، خرید کا سگنل تیار ہوتا ہے۔ جب تیز EMA لائن اوپر سے سست EMA لائن کے نیچے سے عبور کرتی ہے تو ، فروخت کا سگنل تیار ہوتا ہے۔ یہ حکمت عملی تیز اور سست EMA کے پیرامیٹرز کو ایڈجسٹ کرکے لچکدار اور اپنی مرضی کے مطابق ہے تاکہ اندراجات اور باہر نکلنے کے لئے کسٹم سگنل پوائنٹس کی وضاحت کی جاسکے۔
یہ حکمت عملی بنیادی طور پر تیز رفتار اور سست ای ایم اے لائنز کا حساب کتاب کرکے اور ان کے تعلقات کا موازنہ کرکے تجارتی سگنل تیار کرتی ہے۔
سب سے پہلے ، تیز EMA emaFast کی مدت کو ان پٹ پیرامیٹرز میں 1 پر مقرر کیا جاتا ہے تاکہ یہ قیمت کی تبدیلیوں کی قریب سے پیروی کرسکے۔ اسی وقت ، سست EMAs کی مدت مقرر کی جاتی ہے - خرید سگنل پیدا کرنے کے لئے emaSlowBuy اور فروخت سگنل کے لئے emaSlowSell۔
اس کے بعد ، تیز EMA اور سست EMA ان پٹ ادوار کے مطابق حساب لگایا جاتا ہے۔ تیز EMA کی قیمتوں کی قریب سے پیروی کرنے کے لئے 1 کا ایک مقررہ دورانیہ ہوتا ہے جبکہ سست EMA قیمتوں کے اعداد و شمار کو ہموار کرنے کے لئے ایڈجسٹ پیرامیٹرز ہوتے ہیں۔
اگلا ، تیز EMA اور سست EMAs کے مابین تعلقات کا موازنہ کراس اوورز کا تعین کرنے کے لئے کیا جاتا ہے۔ اگر تیز EMA سست EMA کے اوپر عبور کرتا ہے ، ایک سنہری کراس تشکیل دیتا ہے تو ، خریدنے کی شرط پوری ہوجاتی ہے۔ اگر تیز EMA سست EMA کے نیچے عبور کرتا ہے ، موت کی کراس تشکیل دیتا ہے تو ، فروخت کی شرط پوری ہوجاتی ہے۔
آخر میں ، جب خریداری اور فروخت کی شرائط پوری ہوجاتی ہیں تو انٹری اور ایگزٹ آرڈرز پر عملدرآمد کیا جاتا ہے۔ اس دوران ، یہ چیک کرتا ہے کہ موجودہ وقت بیک ٹسٹ کی تاریخ کی حد کے اندر ہے تاکہ تاریخ کی حد سے باہر غلط تجارتوں سے بچ سکے۔
خطرات کو کم کرنے کے لئے ممکنہ بہتری:
EMA کراس اوور سگنلز کی توثیق کرنے اور جھوٹے سگنلز سے بچنے کے لئے دیگر اشارے کا استعمال کرتے ہوئے فلٹرز شامل کریں
تجارتی تعدد کو کم کرنے کے لئے مارکیٹ کی اتار چڑھاؤ کی بنیاد پر ای ایم اے کے ادوار کو ایڈجسٹ کریں
خطرہ کو کنٹرول کرنے کے لئے اسٹاپ نقصان اور منافع حاصل کریں
مخصوص مارکیٹ کے حالات میں بہتر کارکردگی کے لئے تیز EMA مدت کو بہتر بنائیں
مختلف مارکیٹوں میں زیادہ تجارت سے بچنے کے لئے رجحان کا تعین شامل کریں
کچھ طریقوں سے حکمت عملی کو مزید بہتر بنایا جاسکتا ہے:
زیادہ سے زیادہ ترتیبات تلاش کرنے کے لئے مختلف مدت کے مجموعے کی جانچ کرکے EMA پیرامیٹرز کو بہتر بنائیں
سگنلز کی توثیق کے لئے MACD، KDJ، بولنگر بینڈ جیسے دیگر اشارے کا استعمال کرتے ہوئے فلٹرز شامل کریں
مختلف مارکیٹوں سے بچنے کے لئے اے ٹی آر جیسے رجحان میٹرکس کو شامل کریں
بہتر خطرہ اور منافع بخش کے لئے سٹاپ نقصان اور منافع لینے کی حکمت عملی کو بہتر بنائیں
بہتر پیرامیٹرز تلاش کرنے کے لئے دیگر ای ایم اے کے مجموعے جیسے ڈبل یا ٹرپل ای ایم اے کی جانچ کریں
مختلف مارکیٹ سائیکلوں کے لئے متحرک طور پر پیرامیٹرز کو ایڈجسٹ کریں جیسے رجحانات کے لئے تیز EMAs اور ہلکی مارکیٹوں کے لئے سست EMAs
ای ایم اے کراس اوور حکمت عملی میں داخلے اور باہر نکلنے کا تعین کرنے کے لئے قائم تکنیکی اشارے کا استعمال کرتے ہوئے واضح ، سمجھنے میں آسان منطق ہے۔ یہ مختلف مارکیٹ کے حالات میں اصلاح کے لئے ای ایم اے پیرامیٹر ٹوننگ کے ذریعے انتہائی حسب ضرورت ہے۔ تاہم ، ای ایم اے سگنلز میں تاخیر ہوتی ہے اور بہترین پیرامیٹرز تلاش کرنے کے لئے وسیع پیمانے پر جانچ کی ضرورت ہوتی ہے۔ اس کے علاوہ ، سگنل فلٹرز شامل کرکے ، اسٹاپ کو بہتر بنانے اور مارکیٹوں کی حد سے بچنے سے خطرات کو کم کرنے کے لئے مزید بہتری کی ضرورت ہے۔ مسلسل اصلاح اور جانچ کے ساتھ ، اس حکمت عملی میں مضبوط تجارتی کارکردگی کی صلاحیت ہے۔
/*backtest start: 2023-10-10 00:00:00 end: 2023-11-09 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy( "EMA Cross Strategy with Custom Buy/Sell Conditions", overlay=true ) // INPUT: // Options to enter fast Exponential Moving Average (EMA) value emaFast = 1 // Options to enter slow EMAs for buy and sell signals slowEMABuy = input(title="Slow EMA for Buy Signals", defval=20, minval=1, maxval=9999) slowEMASell = input(title="Slow EMA for Sell Signals", defval=30, minval=1, maxval=9999) // Option to select trade directions tradeDirection = input(title="Trade Direction", options=["Long", "Short", "Both"], defval="Both") // Options that configure the backtest date range startDate = input(title="Start Date", type=input.time, defval=timestamp("01 Jan 2018 00:00")) endDate = input(title="End Date", type=input.time, defval=timestamp("31 Dec 2025 23:59")) // CALCULATIONS: // Use a fixed fast EMA of 1 and calculate slow EMAs for buy and sell signals fastEMA = ema(close, emaFast) slowEMABuyValue = ema(close, slowEMABuy) slowEMASellValue = ema(close, slowEMASell) // PLOT: // Draw the EMA lines on the chart plot(series=fastEMA, color=color.orange, linewidth=2) plot(series=slowEMABuyValue, color=color.blue, linewidth=2, title="Slow EMA for Buy Signals") plot(series=slowEMASellValue, color=color.red, linewidth=2, title="Slow EMA for Sell Signals") // CONDITIONS: // Check if the close time of the current bar falls inside the date range inDateRange = true // Translate input into trading conditions for buy and sell signals buyCondition = crossunder(slowEMABuyValue, fastEMA) sellCondition = crossover(slowEMASellValue, fastEMA) // Translate input into overall trading conditions longOK = (tradeDirection == "Long") or (tradeDirection == "Both") shortOK = (tradeDirection == "Short") or (tradeDirection == "Both") // ORDERS: // Submit entry (or reverse) orders based on buy and sell conditions if (buyCondition and inDateRange) strategy.entry("Buy", strategy.long) if (sellCondition and inDateRange) strategy.close("Buy") // Submit exit orders based on opposite trade conditions if (strategy.position_size > 0 and sellCondition) strategy.close("Sell") if (strategy.position_size < 0 and buyCondition) strategy.close("Sell")